event refactor, landing on HEAD!
authorivan <ivan>
Wed, 1 Aug 2007 22:26:52 +0000 (22:26 +0000)
committerivan <ivan>
Wed, 1 Aug 2007 22:26:52 +0000 (22:26 +0000)
481 files changed:
ANNOUNCE.1.5 [deleted file]
CREDITS
FS/FS/AccessRight.pm
FS/FS/Conf.pm
FS/FS/Cron/bill.pm
FS/FS/Cron/expire_user_pref.pm [new file with mode: 0644]
FS/FS/Record.pm
FS/FS/Schema.pm
FS/FS/Setup.pm
FS/FS/access_group.pm
FS/FS/access_user.pm
FS/FS/access_user_pref.pm
FS/FS/agent.pm
FS/FS/cust_bill.pm
FS/FS/cust_credit.pm
FS/FS/cust_event.pm [new file with mode: 0644]
FS/FS/cust_main.pm
FS/FS/cust_pay.pm
FS/FS/cust_pay_batch.pm
FS/FS/cust_pkg.pm
FS/FS/cust_refund.pm
FS/FS/m2name_Common.pm
FS/FS/option_Common.pm
FS/FS/part_bill_event.pm
FS/FS/part_event.pm [new file with mode: 0644]
FS/FS/part_event/Action.pm [new file with mode: 0644]
FS/FS/part_event/Action/addpost.pm [new file with mode: 0644]
FS/FS/part_event/Action/apply.pm [new file with mode: 0644]
FS/FS/part_event/Action/bill.pm [new file with mode: 0644]
FS/FS/part_event/Action/cancel.pm [new file with mode: 0644]
FS/FS/part_event/Action/collect.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_batch.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_comp.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_fee_percent.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_realtime_card.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_realtime_check.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_realtime_lec.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_send.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_send_agent.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_send_alternate.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_send_csv_ftp.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_send_if_newest.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_spool_csv.pm [new file with mode: 0644]
FS/FS/part_event/Action/cust_bill_suspend_if_balance.pm [new file with mode: 0644]
FS/FS/part_event/Action/fee.pm [new file with mode: 0644]
FS/FS/part_event/Action/suspend.pm [new file with mode: 0644]
FS/FS/part_event/Action/suspend_if_pkgpart.pm [new file with mode: 0644]
FS/FS/part_event/Action/suspend_unless_pkgpart.pm [new file with mode: 0644]
FS/FS/part_event/Condition.pm [new file with mode: 0644]
FS/FS/part_event/Condition/agent.pm [new file with mode: 0644]
FS/FS/part_event/Condition/agent_type.pm [new file with mode: 0644]
FS/FS/part_event/Condition/balance.pm [new file with mode: 0644]
FS/FS/part_event/Condition/balance_age.pm [new file with mode: 0644]
FS/FS/part_event/Condition/balance_under.pm [new file with mode: 0644]
FS/FS/part_event/Condition/cust_bill_age.pm [new file with mode: 0644]
FS/FS/part_event/Condition/cust_bill_owed.pm [new file with mode: 0644]
FS/FS/part_event/Condition/cust_bill_owed_under.pm [new file with mode: 0644]
FS/FS/part_event/Condition/cust_pay_batch_declined.pm [new file with mode: 0644]
FS/FS/part_event/Condition/cust_status.pm [new file with mode: 0644]
FS/FS/part_event/Condition/every.pm [new file with mode: 0644]
FS/FS/part_event/Condition/once.pm [new file with mode: 0644]
FS/FS/part_event/Condition/payby.pm [new file with mode: 0644]
FS/FS/part_event/Condition/pkg_class.pm [new file with mode: 0644]
FS/FS/part_event/Condition/pkg_status.pm [new file with mode: 0644]
FS/FS/part_event_condition.pm [new file with mode: 0644]
FS/FS/part_event_condition_option.pm [new file with mode: 0644]
FS/FS/part_event_condition_option_option.pm [new file with mode: 0644]
FS/FS/part_event_option.pm [new file with mode: 0644]
FS/FS/part_export/textradius.pm
FS/FS/part_pkg/flat.pm
FS/FS/part_pkg/flat_delayed.pm
FS/FS/part_pkg/prorate.pm
FS/FS/part_pkg/prorate_delayed.pm [new file with mode: 0644]
FS/FS/part_pkg/subscription.pm
FS/FS/pay_batch.pm
FS/FS/payby.pm
FS/FS/pkg_referral.pm [new file with mode: 0644]
FS/FS/svc_Common.pm
FS/FS/svc_acct.pm
FS/FS/svc_domain.pm
FS/FS/svc_forward.pm
FS/FS/svc_www.pm
FS/MANIFEST
FS/README [deleted file]
FS/bin/freeside-daily
FS/bin/freeside-monthly
FS/t/cust_event.t [new file with mode: 0644]
FS/t/part_event-Action.t [new file with mode: 0644]
FS/t/part_event-Condition.t [new file with mode: 0644]
FS/t/part_event.t [new file with mode: 0644]
FS/t/part_event_condition.t [new file with mode: 0644]
FS/t/part_event_condition_option.t [new file with mode: 0644]
FS/t/part_event_condition_option_option.t [new file with mode: 0644]
FS/t/part_event_option.t [new file with mode: 0644]
FS/t/pkg_referral.t [new file with mode: 0644]
bin/freeside-migrate-events [new file with mode: 0644]
eg/part_event-Action-template.pm [new file with mode: 0644]
eg/part_event-Condition-template.pm [new file with mode: 0644]
fs_selfservice/DEPLOY
htetc/handler.pl
httemplate/browse/access_group.html
httemplate/browse/access_user.html
httemplate/browse/agent.cgi
httemplate/browse/invoice_template.html [new file with mode: 0644]
httemplate/browse/part_bill_event.cgi
httemplate/browse/part_event.html [new file with mode: 0644]
httemplate/browse/part_pkg.cgi
httemplate/browse/part_referral.html
httemplate/browse/pkg_class.html
httemplate/browse/reason.html
httemplate/config/config-process.cgi
httemplate/config/config-view.cgi
httemplate/config/config.cgi
httemplate/edit/access_group.html
httemplate/edit/agent.cgi
httemplate/edit/cust_main.cgi
httemplate/edit/elements/edit.html
httemplate/edit/invoice_logo.html [new file with mode: 0644]
httemplate/edit/invoice_template.html [new file with mode: 0644]
httemplate/edit/part_bill_event.cgi
httemplate/edit/part_event.html [new file with mode: 0644]
httemplate/edit/part_pkg.cgi
httemplate/edit/part_referral.html
httemplate/edit/process/access_group.html
httemplate/edit/process/elements/process.html
httemplate/edit/process/invoice_logo.html [new file with mode: 0644]
httemplate/edit/process/invoice_template.html [new file with mode: 0644]
httemplate/edit/process/part_event.html [new file with mode: 0644]
httemplate/edit/process/quick-cust_pkg.cgi
httemplate/edit/reason.html
httemplate/elements/checkboxes-table-name.html
httemplate/elements/fckeditor/editor/css/behaviors/disablehandles.htc [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/behaviors/showtableborders.htc [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/fck_editorarea.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/fck_internal.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/fck_showtableborders_gecko.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/images/fck_anchor.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/images/fck_flashlogo.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/images/fck_hiddenfield.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/css/images/fck_pagebreak.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/fcknumericfield.htc [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/images/locked.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/images/reset.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/images/unlocked.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/common/moz-bindings.xml [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_about.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fredck.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_anchor.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_button.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_checkbox.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_colorselector.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_docprops.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_find.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_flash.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_form.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_hiddenfield.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_image.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image_preview.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_link.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_link/fck_link.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_listprop.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_paste.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_radiobutton.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_replace.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_select.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_select/fck_select.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_smiley.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_source.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_specialchar.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_table.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_tablecell.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_template.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_template/images/template1.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_template/images/template2.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_template/images/template3.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_textarea.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/dialog/fck_textfield.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/fckdebug.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/fckdialog.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/fckeditor.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/fckeditor.original.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmactualfolder.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmfolders.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourceslist.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourcetype.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/frmupload.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder32.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/html.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/js.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/png.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/images/spacer.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/js/common.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/browser/default/js/fckxml.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/filemanager/upload/test.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/anchor.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/arrow_ltr.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/arrow_rtl.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/angel_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/angry_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/broken_heart.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/cake.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/confused_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/cry_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/devil_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/embaressed_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/envelope.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/heart.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/kiss.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/lightbulb.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/omg_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/regular_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/sad_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/shades_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/teeth_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_down.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_up.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/tounge_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/smiley/msn/wink_smile.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/images/spacer.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/js/fckeditorcode_gecko.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/js/fckeditorcode_ie.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/_getfontformat.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/_translationstatus.txt [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/af.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ar.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/bg.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/bn.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/bs.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ca.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/cs.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/da.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/de.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/el.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/en-au.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/en-ca.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/en-uk.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/en.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/eo.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/es.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/et.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/eu.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/fa.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/fi.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/fo.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/fr.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/gl.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/he.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/hi.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/hr.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/hu.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/it.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ja.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/km.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ko.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/lt.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/lv.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/mn.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ms.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/nb.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/nl.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/no.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/pl.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/pt-br.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/pt.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ro.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/ru.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/sk.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/sl.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/sr-latn.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/sr.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/sv.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/th.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/tr.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/uk.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/vi.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/zh-cn.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/lang/zh.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/autogrow/fckplugin.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/fck_placeholder.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/fckplugin.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/lang/de.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/lang/en.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/lang/fr.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/lang/it.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/lang/pl.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/placeholder/placeholder.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/simplecommands/fckplugin.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/plugins/tablecommands/fckplugin.js [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/_fckviewstrips.html [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/fck_dialog.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/fck_editor.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/fck_strip.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.arrowright.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.collapse.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.end.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.expand.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.separator.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/default/images/toolbar.start.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/fck_dialog.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/fck_editor.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/fck_strip.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.bg.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.end.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.expand.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.separator.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.start.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/fck_dialog.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/fck_editor.css [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/fck_strip.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.collapse.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.end.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.expand.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.separator.gif [new file with mode: 0644]
httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.start.gif [new file with mode: 0644]
httemplate/elements/fckeditor/fckconfig.js [new file with mode: 0644]
httemplate/elements/fckeditor/fckeditor.js [new file with mode: 0644]
httemplate/elements/fckeditor/fckpackager.xml [new file with mode: 0644]
httemplate/elements/fckeditor/fckstyles.xml [new file with mode: 0644]
httemplate/elements/fckeditor/fcktemplates.xml [new file with mode: 0644]
httemplate/elements/freeside.css
httemplate/elements/hidden.html [new file with mode: 0644]
httemplate/elements/menu.html
httemplate/elements/select-agent.html
httemplate/elements/select-agent_type.html [new file with mode: 0644]
httemplate/elements/select-cust_main-status.html [new file with mode: 0644]
httemplate/elements/select-cust_pkg-status.html
httemplate/elements/select-part_referral.html
httemplate/elements/select-pkg_class.html
httemplate/elements/select-table.html
httemplate/elements/selectlayers.html [new file with mode: 0644]
httemplate/elements/table-grid.html
httemplate/elements/tr-checkbox-multiple.html [new file with mode: 0644]
httemplate/elements/tr-checkbox.html [new file with mode: 0644]
httemplate/elements/tr-fixed.html [new file with mode: 0644]
httemplate/elements/tr-freq.html [new file with mode: 0644]
httemplate/elements/tr-input-money.html [new file with mode: 0644]
httemplate/elements/tr-input-text.html [new file with mode: 0644]
httemplate/elements/tr-password.html [new file with mode: 0644]
httemplate/elements/tr-select-agent.html
httemplate/elements/tr-select-agent_type.html [new file with mode: 0644]
httemplate/elements/tr-select-cust_main-status.html [new file with mode: 0644]
httemplate/elements/tr-select-cust_pkg-status.html
httemplate/elements/tr-select-invoice_template.html [new file with mode: 0644]
httemplate/elements/tr-select-part_pkg.html [new file with mode: 0644]
httemplate/elements/tr-select-part_referral.html
httemplate/elements/tr-select-pkg_class.html
httemplate/elements/tr-select-reason.html
httemplate/elements/tr-select-taxclass.html
httemplate/elements/tr-select.html [new file with mode: 0644]
httemplate/elements/tr-selectlayers.html [new file with mode: 0644]
httemplate/elements/tr-selectmultiple-part_pkg.html
httemplate/elements/tr-td-label.html [new file with mode: 0644]
httemplate/elements/tr-title.html [new file with mode: 0644]
httemplate/graph/report_cust_bill_pkg.html
httemplate/graph/report_money_time.html
httemplate/misc/cancel_cust.html [new file with mode: 0644]
httemplate/misc/cancel_pkg.html
httemplate/misc/cust_main-cancel.cgi
httemplate/misc/cust_main-import.cgi
httemplate/misc/email_events.cgi [new file with mode: 0644]
httemplate/misc/fax_events.cgi [new file with mode: 0644]
httemplate/misc/order_pkg.html [new file with mode: 0644]
httemplate/misc/print_events.cgi [new file with mode: 0644]
httemplate/misc/process/cancel_pkg.html
httemplate/pref/pref-process.html
httemplate/search/cust_bill.html
httemplate/search/cust_bill_event.cgi
httemplate/search/cust_bill_event.html
httemplate/search/cust_event.html [new file with mode: 0644]
httemplate/search/elements/search.html
httemplate/search/report_cust_bill.html
httemplate/search/report_cust_credit.html
httemplate/search/report_cust_event.html [new file with mode: 0644]
httemplate/search/report_cust_main-zip.html
httemplate/search/report_cust_pay.html
httemplate/search/report_cust_pay_batch.html
httemplate/search/report_cust_pkg.html
httemplate/search/svc_acct.cgi
httemplate/search/svc_broadband.cgi
httemplate/search/svc_domain.cgi
httemplate/search/svc_forward.cgi
httemplate/search/svc_phone.cgi
httemplate/search/svc_www.cgi
httemplate/view/cust_bill-logo.cgi
httemplate/view/cust_bill.cgi
httemplate/view/cust_main.cgi
httemplate/view/cust_main/order_pkg.html [deleted file]
httemplate/view/cust_main/packages.html
httemplate/view/cust_main/payment_history.html
httemplate/view/logo.cgi [new file with mode: 0644]
httemplate/view/svc_Common.html
test/cgi-test

diff --git a/ANNOUNCE.1.5 b/ANNOUNCE.1.5
deleted file mode 100644 (file)
index 36c78e1..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-- broadband (dsl/wireless) tracking, etc etc
-- Extended description on invoice for time/data charges
-- Multiple, named taxes
-- */*FIX
-- extended reported and graphing
-- integrated RT ticketing system
-- one-time payments (in signup server too).  DCRD and DCHK on-demand payment types
-- credit report
-- reseller interface
-
-1.5.0pre6:
-- RADIUS session viewing
-- Major updates for reseller interface
-- Credit card and ACH refunds (w/supported processor module)
-- Proper email payment receipts (not invoice copies)
-- modular price plans, rewrote package add/edit page
-- fixed up tax report - should be correct for edge cases with named taxes,
-  tax classes, etc.
-- Documentation updates
-
-1.5.7:
-- version numbering change, now even/odd like Perl or Linux
-- fix bug that could cause mis-billing on upgrades! (new installs ok)
-- updated install documentation
-- historical late notice viewing in web interface
-- VoIP billing for CDRs from RADIUS
-- promotional codes for signup
-- lots of RT integration, integrated RT upgraded to 3.2.2, preliminary RT 
-  add-on docs
-- one-time referral credits
-- invoices now use history records (don't lose details)
-- option to credit for remaining service upon package cancel/change
-  (peter bowen)
-- one-time registration codes
-- "selfservice_server-session_module" config value can be set to
-  "Cache::FileCache" on FreeBSD or elsewhere IPC::ShareLite has trouble.
-- package changes don't re-charge setup fee
-- per-agent payment and credit reports
-- CSV and Excel export of most reports, others to be migrated to new report template
-- prepaid card support updated: now includes a web generator, agent-specific
-  prepaid cards, and creates *payments*, not credits
-- preliminary setup for Slony-1 PostgreSQL replication
-- reformatted latex invoice templates w/Text::Template (khoff) and removed
-  some useless fields (quantity/unit price)
-- simplified upgrade instructions
-- add export to vpopmail SQL
-- html invoices
-- big self-service updates (recharge w/prepaid card, change info, more)
-- significant freeside-daily speedup
-
-notyet (1.5.8?):
-- account merging UI in exports (for example, to consolidate passwd files from
-  multiple servers)
-
diff --git a/CREDITS b/CREDITS
index b3ae265..768a27c 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -171,5 +171,8 @@ by Erik Arvidsson, licensed under the terms of the GNU GPL.
 Contains public domain artwork from openclipart.org by mimooh and other
 authors.
 
+Contains FCKeditor by Frederico Caldeira Knabben, licensed under the terms of
+the GNU GPL.
+
 Everything else is my (Ivan Kohler <ivan@420.am>) fault.
 
index de3423a..fb7e538 100644 (file)
@@ -12,6 +12,14 @@ FS::AccessRight - Access control rights.
 
   use FS::AccessRight;
 
+  my @rights = FS::AccessRight->rights;
+
+  #my %rights = FS::AccessRight->rights_categorized;
+  tie my %rights, 'Tie::IxHash', FS::AccessRight->rights_categorized;
+  foreach my $category ( keys %rights ) {
+    my @category_rights = @{ $rights{$category} };
+  }
+
 =head1 DESCRIPTION
 
 Access control rights - Permission to perform specific actions that can be
@@ -75,131 +83,202 @@ assigned to users and/or groups.
 #
 ##turn it into a more hash-like structure, but ordered via IxHash
 
-#well, this is what we have for now.  could be ordered better, could be lots of
-# things better, but this ACL system does 99% of what folks need and the UI
-# isn't *that* bad
-# 
-# okay, well it *really* needs some catgorization in the UI.  badly.
-@rights = (
-
-##
-# basic customer rights
-##
-  'New customer',
-  'View customer',
-  #'View Customer | View tickets',
-  'Edit customer',
-  'Cancel customer',
-  'Complimentary customer', #aka users-allow_comp 
-  'Delete customer', #aka. deletecustomers #Enable customer deletions. Be very careful! Deleting a customer will remove all traces that this customer ever existed! It should probably only be used when auditing a legacy database. Normally, you cancel all of a customers' packages if they cancel service.
-  'Add customer note', #NEW
-  'Edit customer note', #NEW
-
-###
-# customer package rights
-###
-  'View customer packages', #NEW
-  'Order customer package',
-  'One-time charge',
-  'Change customer package',
-  'Bulk change customer packages',
-  'Edit customer package dates',
-  'Customize customer package',
-  'Suspend customer package',
-  'Suspend customer package later',
-  'Unsuspend customer package',
-  'Cancel customer package immediately',
-  'Cancel customer package later',
-  'Add on-the-fly cancel reason', #NEW
-  'Add on-the-fly suspend reason', #NEW
-
-###
-# customer service rights
-###
-  'Edit usage', #NEW
-  'Edit home dir', #NEW
-  'Edit www config', #NEW
-  'View customer services', #NEW
-  'Provision customer service',
-  'Recharge customer service', #NEW
-  'Unprovision customer service',
-
-  'View/link unlinked services', #not agent-virtualizable without more work
-
-###
-# customer invoice/financial info rights
-###
-  'View invoices',
-  'View customer tax exemptions', #yow
-  'View customer batched payments', #NEW
-
-###
-# customer payment rights
-###
-  'Post payment',
-  'Post payment batch',
-  'Unapply payment', #aka. unapplypayments Enable "unapplication" of unclosed payments.
-  'Process payment',
-  'Refund payment',
-
-  'Delete payment', #aka. deletepayments - Enable deletion of unclosed payments. Be very careful! Only delete payments that were data-entry errors, not adjustments. Optionally specify one or more comma-separated email addresses to be notified when a payment is deleted.
-
-  'Delete refund', #NEW
-
-###
-# customer credit rights
-###
-  'Post credit',
-  #'Apply credit',
-  'Unapply credit', #aka unapplycredits Enable "unapplication" of unclosed credits.
-  'Delete credit', #aka. deletecredits Enable deletion of unclosed credits. Be very careful! Only delete credits that were data-entry errors, not adjustments. Optionally specify one or more comma-separated email addresses to be notified when a credit is deleted.
-
-###
-# customer voiding rights..
-###
-  'Credit card void', #aka. cc-void #Enable local-only voiding of echeck payments in addition to refunds against the payment gateway
-  'Echeck void', #aka. echeck-void #Enable local-only voiding of echeck payments in addition to refunds against the payment gateway
-  'Regular void',
-  'Unvoid', #aka. unvoid #Enable unvoiding of voided payments
-
-###
-# report/listing rights...
-###
-  'List customers',
-  'List zip codes', #NEW
-  'List invoices',
-  'List packages',
-  'List services',
-
-  'List rating data',  # 'Usage reports',
-  'Billing event reports',
-  'Financial reports',
-
-###
-# misc rights
-###
-  'Job queue',         # these are not currently agent-virtualized
-  'Process batches',   # NEW
-  'Reprocess batches', # NEW
-  'Import',            #
-  'Export',            #
-
-###
-# misc misc rights
-###
-  'Raw SQL', #NEW
-
-###
-# setup/config rights
-###
-  'Edit advertising sources',
-  'Edit global advertising sources',
-
-  'Configuration', #most of the rest of the configuraiton is not
-                   # agent-virtualized
-);
-
-sub rights {
-  @rights;
+#well, this is what we have for now.  getting better.
+tie my %rights, 'Tie::IxHash',
+  
+  ###
+  # basic customer rights
+  ###
+  'Customer rights' => [
+    'New customer',
+    'View customer',
+    #'View Customer | View tickets',
+    'Edit customer',
+    'Cancel customer',
+    'Complimentary customer', #aka users-allow_comp 
+    { rightname=>'Delete customer', desc=>"Enable customer deletions. Be very careful! Deleting a customer will remove all traces that this customer ever existed! It should probably only be used when auditing a legacy database. Normally, you cancel all of a customer's packages if they cancel service." }, #aka. deletecustomers
+    'Add customer note', #NEW
+    'Edit customer note', #NEW
+  ],
+  
+  ###
+  # customer package rights
+  ###
+  'Customer package rights' => [
+    'View customer packages', #NEW
+    'Order customer package',
+    'One-time charge',
+    'Change customer package',
+    'Bulk change customer packages',
+    'Edit customer package dates',
+    'Customize customer package',
+    'Suspend customer package',
+    'Suspend customer package later',
+    'Unsuspend customer package',
+    'Cancel customer package immediately',
+    'Cancel customer package later',
+    'Add on-the-fly cancel reason', #NEW
+    'Add on-the-fly suspend reason', #NEW
+  ],
+  
+  ###
+  # customer service rights
+  ###
+  'Customer service rights' => [
+    'Edit usage', #NEW
+    'Edit home dir', #NEW
+    'Edit www config', #NEW
+    'View customer services', #NEW
+    'Provision customer service',
+    'Recharge customer service', #NEW
+    'Unprovision customer service',
+  
+    { rightname=>'View/link unlinked services', global=>1 }, #not agent-virtualizable without more work
+  ],
+  
+  ###
+  # customer invoice/financial info rights
+  ###
+  'Customer invoice / financial info rights' => [
+    'View invoices',
+    'View customer tax exemptions', #yow
+    'View customer batched payments', #NEW
+    'View customer billing events', #NEW
+  ],
+  
+  ###
+  # customer payment rights
+  ###
+  'Customer payment rights' => [
+    'Post payment',
+    'Post payment batch',
+    { rightname=>'Unapply payment', desc=>'Enable "unapplication" of unclosed payments from specific invoices.' }, #aka. unapplypayments
+    'Process payment',
+    'Refund payment',
+  
+    { rightname=>'Delete payment', desc=>'Enable deletion of unclosed payments. Be very careful!  Only delete payments that were data-entry errors, not adjustments.' }, #aka. deletepayments Optionally specify one or more comma-separated email addresses to be notified when a payment is deleted.
+  
+  ],
+  
+  ###
+  # customer credit rights
+  ###
+  'Customer credit and refund rights' => [
+    'Post credit',
+    #'Apply credit',
+    { rightname=>'Unapply credit', desc=>'Enable "unapplication" of unclosed credits.' }, #aka unapplycredits
+    { rightname=>'Delete credit', desc=>'Enable deletion of unclosed credits. Be very careful!  Only delete credits that were data-entry errors, not adjustments.' }, #aka. deletecredits Optionally specify one or more comma-separated email addresses to be notified when a credit is deleted.
+    'Delete refund', #NEW
+  ],
+  
+  ###
+  # customer voiding rights..
+  ###
+  'Customer void rights' => [
+    { rightname=>'Credit card void', desc=>'Enable local-only voiding of echeck payments in addition to refunds against the payment gateway.' }, #aka. cc-void 
+    { rightname=>'Echeck void', desc=>'Enable local-only voiding of echeck payments in addition to refunds against the payment gateway.' }, #aka. echeck-void
+    'Regular void',
+    { rightname=>'Unvoid', desc=>'Enable unvoiding of voided payments' }, #aka. unvoid 
+    
+  
+  ],
+  
+  ###
+  # report/listing rights...
+  ###
+  'Reprting/listing rights' => [
+    'List customers',
+    'List zip codes', #NEW
+    'List invoices',
+    'List packages',
+    'List services',
+  
+    { rightname=> 'List rating data', desc=>'Usage reports', global=>1 },
+    'Billing event reports',
+    'Financial reports',
+  ],
+  
+  ###
+  # misc rights
+  ###
+  'Miscellaneous rights' => [
+    { rightname=>'Job queue', global=>1 },
+    { rightname=>'Process batches', global=>1 },
+    { rightname=>'Reprocess batches', global=>1 },
+    { rightname=>'Import', global=>1 }, #some of these are ag-virt'ed now?  give em their own ACLs
+    { rightname=>'Export', global=>1 },
+  #],
+  #
+  ###
+  # misc misc rights
+  ###
+  #'Database access rights' => [
+    { rightname=>'Raw SQL', global=>1 }, #NEW
+  ],
+  
+  ###
+  # setup/config rights
+  ###
+  'Configuration rights' => [
+    'Edit advertising sources',
+    { rightname=>'Edit global advertising sources', global=>1 },
+  
+    'Edit billing events',
+    { rightname=>'Edit global billing events', global=>1 },
+  
+    { rightname=>'Configuration', global=>1 }, #most of the rest of the configuraiton is not agent-virtualized
+  ],
+  
+;
+  
+=head1 CLASS METHODS
+  
+=over 4
+  
+=item rights
+
+Returns a list of right names.
+
+=cut
+  
+  sub rights {
+  #my $class = shift;
+  map { ref($_) ? $_->{'rightname'} : $_ } map @{ $rights{$_} }, keys %rights;
+  }
+  
+=item rights_info
+
+Returns a list of key-value pairs suitable for assigning to a hash.  Keys are
+category names and values are list references of rights.  Each element of the
+list reference scalar right name or a hashref with the following keys:
+
+=over 4
+
+=item rightname - Right name
+
+=item desc - Extended right description
+
+=item global - Global flag, indicates that this access right provides access to global data which is shared among all agents.
+
+=back
+
+=cut
+
+sub rights_info {
+  %rights;
 }
 
+=back
+
+=head1 BUGS
+
+Damn those infernal six-legged creatures!
+
+=head1 SEE ALSO
+
+L<FS::access_right>, L<FS::access_group>, L<FS::access_user>
+
+=cut
+
+1;
+
index f797f27..7f64058 100644 (file)
@@ -171,6 +171,30 @@ sub config_orbase {
   }
 }
 
+=item invoice_templatenames
+
+Returns all possible invoice template names.
+
+=cut
+
+sub invoice_templatenames {
+  my( $self ) = @_;
+
+  my %templatenames = ();
+  foreach my $item ( $self->config_items ) {
+    foreach my $base ( @base_items ) {
+      my( $main, $ext) = split(/\./, $base);
+      $ext = ".$ext" if $ext;
+      if ( $item->key =~ /^${main}_(.+)$ext$/ ) {
+      $templatenames{$1}++;
+      }
+    }
+  }
+  
+  sort keys %templatenames;
+
+}
+
 =item touch KEY [ AGENT ];
 
 Creates the specified configuration key if it does not exist.
@@ -498,6 +522,21 @@ httemplate/docs/config.html
                    logo.eps
                  );
 
+@base_items = qw (
+                   invoice_template
+                   invoice_latex
+                   invoice_latexreturnaddress
+                   invoice_latexfooter
+                   invoice_latexsmallfooter
+                   invoice_latexnotes
+                   invoice_html
+                   invoice_htmlreturnaddress
+                   invoice_htmlfooter
+                   invoice_htmlnotes
+                   logo.png
+                   logo.eps
+                 );
+
 @config_items = map { new FS::ConfItem $_ } (
 
   {
@@ -1912,6 +1951,25 @@ httemplate/docs/config.html
   },
 
   {
+    'key'         => 'disable-fuzzy',
+    'section'     => 'UI',
+    'description' => 'Disable fuzzy searching.  Speeds up searching for large sites, but only shows exact matches.',
+    'type'        => 'checkbox',
+  },
+
+  { 'key'         => 'pkg_referral',
+    'section'     => '',
+    'description' => 'Enable package-specific advertising sources.',
+    'type'        => 'checkbox',
+  },
+
+  { 'key'         => 'pkg_referral-multiple',
+    'section'     => '',
+    'description' => 'In addition, allow multiple advertising sources to be associated with a single package.',
+    'type'        => 'checkbox',
+  },
+
+  {
     'key'         => 'dashboard-toplist',
     'section'     => 'UI',
     'description' => 'List of items to display on the top of the front page',
index 3ba1b53..1576edc 100644 (file)
@@ -6,6 +6,8 @@ use Exporter;
 use Date::Parse;
 use FS::Record qw(qsearch qsearchs);
 use FS::cust_main;
+use FS::part_event;
+use FS::part_event_condition;
 
 @ISA = qw( Exporter );
 @EXPORT_OK = qw ( bill );
@@ -14,7 +16,11 @@ sub bill {
 
   my %opt = @_;
 
+  my $check_freq = $opt{'check_freq'} || '1d';
+
   $FS::cust_main::DEBUG = 1 if $opt{'v'};
+  $FS::cust_main::DEBUG = $opt{'l'} if $opt{'l'};
+  #$FS::cust_event::DEBUG = $opt{'l'} if $opt{'l'};
   
   my %search = ();
   $search{'payby'}    = $opt{'p'} if $opt{'p'};
@@ -38,91 +44,76 @@ sub bill {
                   )
         )
 END
-  
-  # or
-  my $where_bill_event = <<"END";
-    0 < ( select count(*) from cust_bill
-            where cust_main.custnum = cust_bill.custnum
-              and 0 < charged
-                      - coalesce(
-                                  ( select sum(amount) from cust_bill_pay
-                                      where cust_bill.invnum = cust_bill_pay.invnum )
-                                  ,0
-                                )
-                      - coalesce(
-                                  ( select sum(amount) from cust_credit_bill
-                                      where cust_bill.invnum = cust_credit_bill.invnum )
-                                  ,0
-                                )
-              and 0 < ( select count(*) from part_bill_event
-                          where payby = cust_main.payby
-                            and ( disabled is null or disabled = '' )
-                            and seconds <= $time - cust_bill._date
-                            and 0 = ( select count(*) from cust_bill_event
-                                       where cust_bill.invnum = cust_bill_event.invnum
-                                         and part_bill_event.eventpart = cust_bill_event.eventpart
-                                         and status = 'done'
-                                    )
-  
-                      )
-        )
-END
-  
-  my $extra_sql = ( scalar(%search) ? ' AND ' : ' WHERE ' ). "( $where_pkg OR $where_bill_event )";
-  
+
+  my $where_event = join(' OR ', map {
+    my $eventtable = $_;
+
+    my $join  = FS::part_event_condition->join_conditions_sql(  $eventtable );
+    my $where = FS::part_event_condition->where_conditions_sql( $eventtable,
+                                                                'time'=>$time,
+                                                              );
+
+    my $are_part_event = 
+      "0 < ( SELECT COUNT(*) FROM part_event $join
+               WHERE check_freq = '$check_freq'
+                 AND eventtable = '$eventtable'
+                 AND ( disabled = '' OR disabled IS NULL )
+                 AND $where
+           )
+      ";
+
+    if ( $eventtable eq 'cust_main' ) { 
+      $are_part_event;
+    } else {
+      "0 < ( SELECT COUNT(*) FROM $eventtable
+               WHERE cust_main.custnum = $eventtable.custnum
+                 AND $are_part_event
+           )
+      ";
+    }
+
+  } FS::part_event->eventtables);
+
+  my $extra_sql = ( scalar(%search) ? ' AND ' : ' WHERE ' ).
+                  "( $where_pkg OR $where_event )";
+
   my @cust_main;
   if ( @ARGV ) {
     @cust_main = map { qsearchs('cust_main', { custnum => $_, %search } ) } @ARGV
   } else {
-    @cust_main = qsearch('cust_main', \%search, '', $extra_sql );
+
+    warn "searching for customers:\n".
+         join("\n", map "  $_ => ".$search{$_}, keys %search). "\n".
+         "  $extra_sql\n"
+      if $opt{'v'} || $opt{'l'};
+
+    @cust_main = qsearch({
+      'table'     => 'cust_main',
+      'hashref'   => \%search,
+      'extra_sql' => $extra_sql,
+    });
+
   }
-  ;
   
   my($cust_main,%saw);
   foreach $cust_main ( @cust_main ) {
 
-    my $custnum = $cust_main->custnum;
-  
-    # $^T not $time because -d is for pre-printing invoices
-    foreach my $cust_pkg (
-      grep { $_->expire && $_->expire <= $^T } $cust_main->ncancelled_pkgs
-    ) {
-      my $error = $cust_pkg->cancel;
-      warn "Error cancelling expired pkg ". $cust_pkg->pkgnum.
-           " for custnum $custnum: $error"
-        if $error;
-    }
-    # $^T not $time because -d is for pre-printing invoices
-    foreach my $cust_pkg (
-      grep { (    $_->part_pkg->is_prepaid && $_->bill && $_->bill < $^T
-               || $_->adjourn && $_->adjourn <= $^T
-             )
-             && ! $_->susp
-           }
-           $cust_main->ncancelled_pkgs
-    ) {
-      my $action = $cust_pkg->part_pkg->option('recur_action') || 'suspend';
-      my $error = $cust_pkg->$action();
-      warn "Error suspending package ". $cust_pkg->pkgnum.
-           " for custnum $custnum: $error"
-        if $error;
+    if ( $opt{'m'} ) {
+
+      die "XXX multi-process mode not yet completed";
+      #add job to queue that calls bill_and_collect with options
+
+    } else {
+
+      $cust_main->bill_and_collect(
+        'time'         => $time,
+        'invoice_time' => $invoice_time,
+        'check_freq'   => $check_freq,
+        'resetup'      => $opt{'s'},
+      );
+
     }
-  
-    my $error = $cust_main->bill( 'time'         => $time,
-                                  'invoice_time' => $invoice_time,
-                                  'resetup'      => $opt{'s'},
-                                );
-    warn "Error billing, custnum $custnum: $error" if $error;
-  
-    $error = $cust_main->apply_payments_and_credits;
-    warn "Error applying payments and credits, custnum $custnum: $error"
-      if $error;
-  
-    $error = $cust_main->collect( 'invoice_time' => $time,
-                                  'freq'         => $opt{'freq'},
-                                );
-    warn "Error collecting, custnum $custnum: $error" if $error;
-  
+
   }
 
 }
diff --git a/FS/FS/Cron/expire_user_pref.pm b/FS/FS/Cron/expire_user_pref.pm
new file mode 100644 (file)
index 0000000..7ab73d2
--- /dev/null
@@ -0,0 +1,17 @@
+package FS::Cron::expire_user_pref;
+
+use vars qw( @ISA @EXPORT_OK);
+use Exporter;
+use FS::UID qw(dbh);
+
+@ISA = qw( Exporter );
+@EXPORT_OK = qw( expire_user_pref );
+
+sub expire_user_pref {
+  my $sql = "DELETE FROM access_user_pref WHERE expiration IS NOT NULL".
+                                          " AND expiration < ?";
+  my $sth = dbh->prepare($sql) or die dbh->errstr;
+  $sth->execute(time) or die $sth->errstr;
+}
+
+1;
index d14762c..f8711d0 100644 (file)
@@ -213,6 +213,7 @@ The preferred usage is to pass a hash reference of named parameters:
                            #these are optional...
                            'select'    => '*',
                            'extra_sql' => 'AND field ',
+                           'order_by'  => 'ORDER BY something',
                            #'cache_obj' => '', #optional
                            'addl_from' => 'LEFT JOIN othtable USING ( field )',
                          }
@@ -235,13 +236,14 @@ fine in the common case where there are only two parameters:
 =cut
 
 sub qsearch {
-  my($stable, $record, $select, $extra_sql, $cache, $addl_from );
+  my($stable, $record, $select, $extra_sql, $order_by, $cache, $addl_from );
   if ( ref($_[0]) ) { #hashref for now, eventually maybe accept a list too
     my $opt = shift;
     $stable    = $opt->{'table'}     or die "table name is required";
     $record    = $opt->{'hashref'}   || {};
     $select    = $opt->{'select'}    || '*';
     $extra_sql = $opt->{'extra_sql'} || '';
+    $order_by  = $opt->{'order_by'}  || '';
     $cache     = $opt->{'cache_obj'} || '';
     $addl_from = $opt->{'addl_from'} || '';
   } else {
@@ -362,6 +364,7 @@ sub qsearch {
   }
 
   $statement .= " $extra_sql" if defined($extra_sql);
+  $statement .= " $order_by"  if defined($order_by);
 
   warn "[debug]$me $statement\n" if $DEBUG > 1;
   my $sth = $dbh->prepare($statement)
@@ -2143,7 +2146,7 @@ sub loadRSA {
     $rsa_module = 'Crypt::OpenSSL::RSA'; # The Default
 
     my $conf = new FS::Conf;
-    if ($conf->exists('encryptionmodule') && $conf->config('encryptionmodule') ne '') {
+    if ($conf->exists('encryptionmodule') && $conf->config_binary('encryptionmodule') ne '') {
       $rsa_module = $conf->config('encryptionmodule');
     }
 
@@ -2152,13 +2155,13 @@ sub loadRSA {
        $rsa_loaded++;
     }
     # Initialize Encryption
-    if ($conf->exists('encryptionpublickey') && $conf->config('encryptionpublickey') ne '') {
+    if ($conf->exists('encryptionpublickey') && $conf->config_binary('encryptionpublickey') ne '') {
       my $public_key = join("\n",$conf->config('encryptionpublickey'));
       $rsa_encrypt = $rsa_module->new_public_key($public_key);
     }
     
     # Intitalize Decryption
-    if ($conf->exists('encryptionprivatekey') && $conf->config('encryptionprivatekey') ne '') {
+    if ($conf->exists('encryptionprivatekey') && $conf->config_binary('encryptionprivatekey') ne '') {
       my $private_key = join("\n",$conf->config('encryptionprivatekey'));
       $rsa_decrypt = $rsa_module->new_private_key($private_key);
     }
index cddc520..bcfe907 100644 (file)
@@ -265,15 +265,17 @@ sub tables_hashref {
 
     'agent' => {
       'columns' => [
-        'agentnum', 'serial',            '',     '', '', '', 
-        'agent',    'varchar',           '',     $char_d, '', '', 
-        'typenum',  'int',            '',     '', '', '', 
-        'freq',     'int',       'NULL', '', '', '', 
-        'prog',     @perl_type, '', '', 
-        'disabled',     'char', 'NULL', 1, '', '', 
-        'username', 'varchar',       'NULL',     $char_d, '', '', 
-        '_password','varchar',       'NULL',     $char_d, '', '', 
-        'ticketing_queueid', 'int', 'NULL', '', '', '', 
+        'agentnum',          'serial',    '',       '', '', '', 
+        'agent',            'varchar',    '',  $char_d, '', '', 
+        'typenum',              'int',    '',       '', '', '', 
+        'disabled',            'char', 'NULL',       1, '', '', 
+        'ticketing_queueid',    'int', 'NULL',      '', '', '', 
+        'invoice_template', 'varchar', 'NULL', $char_d, '', '',
+        'username',         'varchar', 'NULL', $char_d, '', '', #deprecated
+        '_password',        'varchar', 'NULL', $char_d, '', '', #deprecated
+        'freq',              'int', 'NULL', '', '', '', #deprecated (never used)
+        'prog',                     @perl_type, '', '', #deprecated (never used)
+
       ],
       'primary_key' => 'agentnum',
       'unique' => [],
@@ -349,6 +351,84 @@ sub tables_hashref {
       'index' => [ ['payby'], ['disabled'], ],
     },
 
+    'part_event' => {
+      'columns' => [
+        'eventpart',   'serial',      '',      '', '', '', 
+        'agentnum',    'int',     'NULL',      '', '', '', 
+        'event',       'varchar',     '', $char_d, '', '', 
+        'eventtable',  'varchar',     '', $char_d, '', '',
+        'check_freq',  'varchar', 'NULL', $char_d, '', '', 
+        'weight',      'int',         '',      '', '', '', 
+        'action',      'varchar',     '', $char_d, '', '',
+        'disabled',     'char',   'NULL',       1, '', '', 
+      ],
+      'primary_key' => 'eventpart',
+      'unique' => [],
+      'index' => [ ['agentnum'], ['eventtable'], ['check_freq'], ['disabled'], ],
+    },
+
+    'part_event_option' => {
+      'columns' => [
+        'optionnum', 'serial', '', '', '', '', 
+        'eventpart', 'int', '', '', '', '', 
+        'optionname', 'varchar', '', $char_d, '', '', 
+        'optionvalue', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'optionnum',
+      'unique'      => [],
+      'index'       => [ [ 'eventpart' ], [ 'optionname' ] ],
+    },
+
+    'part_event_condition' => {
+      'columns' => [
+        'eventconditionnum', 'serial', '', '', '', '', 
+        'eventpart', 'int', '', '', '', '', 
+        'conditionname', 'varchar', '', $char_d, '', '', 
+      ],
+      'primary_key' => 'eventconditionnum',
+      'unique'      => [],
+      'index'       => [ [ 'eventpart' ], [ 'conditionname' ] ],
+    },
+
+    'part_event_condition_option' => {
+      'columns' => [
+        'optionnum', 'serial', '', '', '', '', 
+        'eventconditionnum', 'int', '', '', '', '', 
+        'optionname', 'varchar', '', $char_d, '', '', 
+        'optionvalue', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'optionnum',
+      'unique'      => [],
+      'index'       => [ [ 'eventconditionnum' ], [ 'optionname' ] ],
+    },
+
+    'part_event_condition_option_option' => {
+      'columns' => [
+        'optionoptionnum', 'serial', '', '', '', '', 
+        'optionnum', 'int', '', '', '', '', 
+        'optionname', 'varchar', '', $char_d, '', '', 
+        'optionvalue', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'optionoptionnum',
+      'unique'      => [],
+      'index'       => [ [ 'optionnum' ], [ 'optionname' ] ],
+    },
+
+    'cust_event' => {
+      'columns' => [
+        'eventnum',    'serial',  '', '', '', '', 
+        'eventpart',   'int',  '', '', '', '', 
+        'tablenum',   'int',  '', '', '', '', 
+        '_date',     @date_type, '', '', 
+        'status', 'varchar', '', $char_d, '', '', 
+        'statustext', 'text', 'NULL', '', '', '', 
+      ],
+      'primary_key' => 'eventnum',
+      #no... there are retries now #'unique' => [ [ 'eventpart', 'invnum' ] ],
+      'unique' => [],
+      'index' => [ ['eventpart'], ['tablenum'], ['status'] ],
+    },
+
     'cust_bill_pkg' => {
       'columns' => [
         'billpkgnum', 'serial', '', '', '', '', 
@@ -681,7 +761,10 @@ sub tables_hashref {
       ],
       'primary_key' => 'pkgnum',
       'unique' => [],
-      'index' => [ ['custnum'], ['pkgpart'] ],
+      'index' => [ ['custnum'], ['pkgpart'],
+                   ['setup'], ['last_bill'], ['bill'], ['susp'], ['adjourn'],
+                   ['expire'], ['cancel']
+                 ],
     },
 
     'cust_pkg_option' => {
@@ -1731,6 +1814,16 @@ sub tables_hashref {
       'index' => [],
     },
 
+    'pkg_referral' => {
+      'columns' => [
+        'pkgrefnum',     'serial', '', '', '', '',
+        'pkgnum',        'int',    '', '', '', '',
+        'refnum',        'int',    '', '', '', '',
+      ],
+      'primary_key' => 'pkgrefnum',
+      'unique'      => [ [ 'pkgnum', 'refnum' ] ],
+      'index'       => [ [ 'pkgnum' ], [ 'refnum' ] ],
+    },
     # name type nullability length default local
 
     #'new_table' => {
index 17101a7..55984d4 100644 (file)
@@ -161,51 +161,52 @@ sub initial_data {
       { 'groupname' => 'Superuser' },
     ],
 
-    #billing events
-    'part_bill_event' => [
-      { 'payby'     => 'CARD',
-        'event'     => 'Batch card',
-        'seconds'   => 0,
-        'eventcode' => '$cust_bill->batch_card(%options);',
-        'weight'    => 40,
-        'plan'      => 'batch-card',
-      },
-      { 'payby'     => 'BILL',
-        'event'     => 'Send invoice',
-        'seconds'   => 0,
-        'eventcode' => '$cust_bill->send();',
-        'weight'    => 50,
-        'plan'      => 'send',
-      },
-      { 'payby'     => 'DCRD',
-        'event'     => 'Send invoice',
-        'seconds'   => 0,
-        'eventcode' => '$cust_bill->send();',
-        'weight'    => 50,
-        'plan'      => 'send',
-      },
-      { 'payby'     => 'DCHK',
-        'event'     => 'Send invoice',
-        'seconds'   => 0,
-        'eventcode' => '$cust_bill->send();',
-        'weight'    => 50,
-        'plan'      => 'send',
-      },
-      { 'payby'     => 'DCLN',
-        'event'     => 'Suspend',
-        'seconds'   => 0,
-        'eventcode' => '$cust_bill->suspend();',
-        'weight'    => 40,
-        'plan'      => 'suspend',
-      },
-      #{ 'payby'     => 'DCLN',
-      #  'event'     => 'Retriable',
-      #  'seconds'   => 0,
-      #  'eventcode' => '$cust_bill_event->retriable();',
-      #  'weight'    => 60,
-      #  'plan'      => 'retriable',
-      #},
-    ],
+#XXX need default new-style billing events
+#    #billing events
+#    'part_bill_event' => [
+#      { 'payby'     => 'CARD',
+#        'event'     => 'Batch card',
+#        'seconds'   => 0,
+#        'eventcode' => '$cust_bill->batch_card(%options);',
+#        'weight'    => 40,
+#        'plan'      => 'batch-card',
+#      },
+#      { 'payby'     => 'BILL',
+#        'event'     => 'Send invoice',
+#        'seconds'   => 0,
+#        'eventcode' => '$cust_bill->send();',
+#        'weight'    => 50,
+#        'plan'      => 'send',
+#      },
+#      { 'payby'     => 'DCRD',
+#        'event'     => 'Send invoice',
+#        'seconds'   => 0,
+#        'eventcode' => '$cust_bill->send();',
+#        'weight'    => 50,
+#        'plan'      => 'send',
+#      },
+#      { 'payby'     => 'DCHK',
+#        'event'     => 'Send invoice',
+#        'seconds'   => 0,
+#        'eventcode' => '$cust_bill->send();',
+#        'weight'    => 50,
+#        'plan'      => 'send',
+#      },
+#      { 'payby'     => 'DCLN',
+#        'event'     => 'Suspend',
+#        'seconds'   => 0,
+#        'eventcode' => '$cust_bill->suspend();',
+#        'weight'    => 40,
+#        'plan'      => 'suspend',
+#      },
+#      #{ 'payby'     => 'DCLN',
+#      #  'event'     => 'Retriable',
+#      #  'seconds'   => 0,
+#      #  'eventcode' => '$cust_bill_event->retriable();',
+#      #  'weight'    => 60,
+#      #  'plan'      => 'retriable',
+#      #},
+#    ],
     
     #you must create a service definition. An example of a service definition
     #would be a dial-up account or a domain. First, it is necessary to create a
index 2519040..b5b693a 100644 (file)
@@ -140,7 +140,7 @@ test if this group has the given RIGHTNAME.
 =cut
 
 sub access_right {
-  my( $self, $name ) = shift;
+  my( $self, $name ) = @_;
   qsearchs('access_right', { 'righttype'   => 'FS::access_group',
                              'rightobjnum' => $self->groupnum,
                              'rightname'   => $name,
index cb43b37..8e4ad46 100644 (file)
@@ -308,22 +308,34 @@ Returns a hashref of agentnums this user can view.
 
 sub agentnums_href {
   my $self = shift;
-  { map { $_ => 1 } $self->agentnums };
+  scalar( { map { $_ => 1 } $self->agentnums } );
 }
 
-=item agentnums_sql
+=item agentnums_sql [ HASHREF | OPTION => VALUE ... ]
 
 Returns an sql fragement to select only agentnums this user can view.
 
+Options are passed as a hashref or a list.  Available options are:
+
+=over 4
+
+=item null - The frament will also allow the selection of null agentnums.
+
+=item null_right - The fragment will also allow the selection of null agentnums if the current user has the provided access right
+
+=back
+
 =cut
 
 sub agentnums_sql {
-  my $self = shift;
+  my( $self ) = shift;
+  my %opt = ref($_[0]) ? %{$_[0]} : @_;
 
   my @agentnums = map { "agentnum = $_" } $self->agentnums;
 
   push @agentnums, 'agentnum IS NULL'
-    if $self->access_right('View/link unlinked services');
+    if $opt{'null'}
+    || ( $opt{'null_right'} && $self->access_right($opt{'null_right'}) );
 
   return ' 1 = 0 ' unless scalar(@agentnums);
   '( '. join( ' OR ', @agentnums ). ' )';
index ff957f2..31cd4b3 100644 (file)
@@ -27,19 +27,22 @@ FS::access_user_pref - Object methods for access_user_pref records
 
 =head1 DESCRIPTION
 
-An FS::access_user_pref object represents an example.  FS::access_user_pref inherits from
-FS::Record.  The following fields are currently supported:
+An FS::access_user_pref object represents an per-user preference.  Preferenaces
+are also used to store transient state information (server-side "cookies").
+FS::access_user_pref inherits from FS::Record.  The following fields are
+currently supported:
 
 =over 4
 
 =item prefnum - primary key
 
-=item usernum - 
+=item usernum - Internal access user (see L<FS::access_user>)
 
 =item prefname - 
 
 =item prefvalue - 
 
+=item expiration - 
 
 =back
 
@@ -49,7 +52,7 @@ FS::Record.  The following fields are currently supported:
 
 =item new HASHREF
 
-Creates a new example.  To add the example to the database, see L<"insert">.
+Creates a new preference.  To add the example to the database, see L<"insert">.
 
 Note that this stores the hash reference, not a distinct copy of the hash it
 points to.  You can ask the object for a copy with the I<hash> method.
@@ -88,7 +91,7 @@ returns the error, otherwise returns false.
 
 =item check
 
-Checks all fields to make sure this is a valid example.  If there is
+Checks all fields to make sure this is a valid preference.  If there is
 an error, returns the error, otherwise returns false.  Called by the insert
 and replace methods.
 
@@ -104,7 +107,8 @@ sub check {
     $self->ut_numbern('prefnum')
     || $self->ut_number('usernum')
     || $self->ut_text('prefname')
-    || $self->ut_textn('prefvalue')
+    #|| $self->ut_textn('prefvalue')
+    || $self->ut_anything('prefvalue')
   ;
   return $error if $error;
 
@@ -115,11 +119,9 @@ sub check {
 
 =head1 BUGS
 
-The author forgot to customize this manpage.
-
 =head1 SEE ALSO
 
-L<FS::Record>, schema.html from the base documentation.
+L<FS::access_user>, L<FS::Record>, schema.html from the base documentation.
 
 =cut
 
index e40ef09..57cc945 100644 (file)
@@ -117,6 +117,7 @@ sub check {
       || $self->ut_number('typenum')
       || $self->ut_numbern('freq')
       || $self->ut_textn('prog')
+      || $self->ut_textn('invoice_template')
   ;
   return $error if $error;
 
index 82023f6..f6dbc3d 100644 (file)
@@ -24,6 +24,7 @@ use FS::cust_credit_bill;
 use FS::pay_batch;
 use FS::cust_pay_batch;
 use FS::cust_bill_event;
+use FS::cust_event;
 use FS::part_pkg;
 use FS::cust_bill_pay;
 use FS::cust_bill_pay_batch;
@@ -271,8 +272,7 @@ sub open_cust_bill_pkg {
 
 =item cust_bill_event
 
-Returns the completed invoice events (see L<FS::cust_bill_event>) for this
-invoice.
+Returns the completed invoice events (deprecated, old-style events - see L<FS::cust_bill_event>) for this invoice.
 
 =cut
 
@@ -281,6 +281,54 @@ sub cust_bill_event {
   qsearch( 'cust_bill_event', { 'invnum' => $self->invnum } );
 }
 
+=item num_cust_bill_event
+
+Returns the number of completed invoice events (deprecated, old-style events - see L<FS::cust_bill_event>) for this invoice.
+
+=cut
+
+sub num_cust_bill_event {
+  my $self = shift;
+  my $sql =
+    "SELECT COUNT(*) FROM cust_bill_event WHERE invnum = ?";
+  my $sth = dbh->prepare($sql) or die  dbh->errstr. " preparing $sql"; 
+  $sth->execute($self->invnum) or die $sth->errstr. " executing $sql";
+  $sth->fetchrow_arrayref->[0];
+}
+
+=item cust_event
+
+Returns the new-style customer billing events (see L<FS::cust_event>) for this invoice.
+
+=cut
+
+#false laziness w/cust_pkg.pm
+sub cust_event {
+  my $self = shift;
+  qsearch({
+    'table'     => 'cust_event',
+    'addl_from' => 'JOIN part_event USING ( eventpart )',
+    'hashref'   => { 'tablenum' => $self->invnum },
+    'extra_sql' => " AND eventtable = 'cust_bill' ",
+  });
+}
+
+=item num_cust_event
+
+Returns the number of new-style customer billing events (see L<FS::cust_event>) for this invoice.
+
+=cut
+
+#false laziness w/cust_pkg.pm
+sub num_cust_event {
+  my $self = shift;
+  my $sql =
+    "SELECT COUNT(*) FROM cust_event JOIN part_event USING ( eventpart ) ".
+    "  WHERE tablenum = ? AND eventtable = 'cust_bill'";
+  my $sth = dbh->prepare($sql) or die  dbh->errstr. " preparing $sql"; 
+  $sth->execute($self->invnum) or die $sth->errstr. " executing $sql";
+  $sth->fetchrow_arrayref->[0];
+}
 
 =item cust_main
 
@@ -2577,6 +2625,8 @@ sub _items_payments {
 
 =back
 
+
+
 =head1 SUBROUTINES
 
 =over 4
@@ -2698,6 +2748,34 @@ sub re_X {
 
 =back
 
+=head1 CLASS METHODS
+
+=over 4
+
+=item owed_sql
+
+Returns an SQL fragment to retreived the amount owed.
+
+=cut
+
+sub owed_sql {
+  #my $class = shift;
+
+  "charged
+           - COALESCE(
+                       ( SELECT SUM(amount) FROM cust_bill_pay
+                           WHERE cust_bill.invnum = cust_bill_pay.invnum )
+                       ,0
+                     )
+           - COALESCE(
+                       ( SELECT SUM(amount) FROM cust_credit_bill
+                           WHERE cust_bill.invnum = cust_credit_bill.invnum )
+                       ,0
+                     )
+  ";
+
+}
+
 =head1 BUGS
 
 The delete method.
index 84ca79d..e07461d 100644 (file)
@@ -333,10 +333,43 @@ sub cust_main {
 
 =back
 
+=head1 CLASS METHODS
+
+=over 4
+
+=item credited_sql
+
+Returns an SQL fragment to retreive the unapplied amount.
+
+=cut
+
+sub credited_sql {
+  #my $class = shift;
+
+  "amount
+        - COALESCE(
+                    ( SELECT SUM(amount) FROM cust_credit_refund
+                        WHERE cust_credit.crednum = cust_credit_refund.crednum )
+                    ,0
+                  )
+        - COALESCE(
+                    ( SELECT SUM(amount) FROM cust_credit_bill
+                        WHERE cust_credit.crednum = cust_credit_bill.crednum )
+                    ,0
+                  )
+  ";
+
+}
+
+=back
+
 =head1 BUGS
 
 The delete method.  The replace method.
 
+B<credited> and B<credited_sql> should probably be called B<unapplied> and
+B<unapplied_sql>.
+
 =head1 SEE ALSO
 
 L<FS::Record>, L<FS::cust_credit_refund>, L<FS::cust_refund>,
diff --git a/FS/FS/cust_event.pm b/FS/FS/cust_event.pm
new file mode 100644 (file)
index 0000000..bebd72a
--- /dev/null
@@ -0,0 +1,407 @@
+package FS::cust_event;
+
+use strict;
+use vars qw( @ISA $DEBUG );
+use Carp qw( croak confess );
+use FS::Record qw( qsearch qsearchs dbdef );
+use FS::cust_main_Mixin;
+use FS::part_event;
+#for cust_X
+use FS::cust_main;
+use FS::cust_pkg;
+use FS::cust_bill;
+
+@ISA = qw(FS::cust_main_Mixin FS::Record);
+
+$DEBUG = 0;
+
+=head1 NAME
+
+FS::cust_event - Object methods for cust_event records
+
+=head1 SYNOPSIS
+
+  use FS::cust_event;
+
+  $record = new FS::cust_event \%hash;
+  $record = new FS::cust_event { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::cust_event object represents an completed event.  FS::cust_event
+inherits from FS::Record.  The following fields are currently supported:
+
+=over 4
+
+=item eventnum - primary key
+
+=item eventpart - event definition (see L<FS::part_event>)
+
+=item tablenum - customer, package or invoice, depending on the value of part_event.eventtable (see L<FS::cust_main>, L<FS::cust_pkg>, and L<FS::cust_bill>)
+
+=item _date - specified as a UNIX timestamp; see L<perlfunc/"time">.  Also see
+L<Time::Local> and L<Date::Parse> for conversion functions.
+
+=item status - event status: B<new>, B<locked>, B<done> or B<failed>.  Note: B<done> indicates the event is complete and should not be retried (statustext may still be set to an optional message), while B<failed> indicates the event failed and should be retried.
+
+=item statustext - additional status detail (i.e. error or progress message)
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new completed invoice event.  To add the compelted invoice event to
+the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'cust_event'; }
+
+sub cust_linked { $_[0]->cust_main_custnum; } 
+sub cust_unlinked_msg {
+  my $self = shift;
+  "WARNING: can't find cust_main.custnum ". $self->custnum;
+  #' (cust_bill.invnum '. $self->invnum. ')';
+}
+sub custnum {
+  my $self = shift;
+  $self->cust_main_custnum(@_) || $self->SUPER::custnum(@_);
+}
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid completed invoice event.  If
+there is an error, returns the error, otherwise returns false.  Called by the
+insert and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = $self->ut_numbern('eventnum')
+    || $self->ut_foreign_key('eventpart', 'part_event', 'eventpart')
+  ;
+  return $error if $error;
+
+  my $eventtable = $self->part_event->eventtable;
+  my $dbdef_eventtable = dbdef->table( $eventtable );
+
+  $error = 
+       $self->ut_foreign_key( 'tablenum',
+                              $eventtable,
+                              $dbdef_eventtable->primary_key
+                            )
+    || $self->ut_number('_date')
+    || $self->ut_enum('status', [qw( new locked done failed )])
+    || $self->ut_textn('statustext')
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+=item part_event
+
+Returns the event definition (see L<FS::part_event>) for this completed event.
+
+=cut
+
+sub part_event {
+  my $self = shift;
+  qsearchs( 'part_event', { 'eventpart' => $self->eventpart } );
+}
+
+=item cust_X
+
+Returns the customer, package, invoice or batched payment (see
+L<FS::cust_main>, L<FS::cust_pkg>, L<FS::cust_bill> or L<FS::cust_pay_batch>)
+for this completed invoice event.
+
+=cut
+
+sub cust_bill {
+  croak "FS::cust_event::cust_bill called";
+}
+
+sub cust_X {
+  my $self = shift;
+  my $eventtable = $self->part_event->eventtable;
+  my $dbdef_table = dbdef->table( $eventtable );
+  my $primary_key = $dbdef_table->primary_key;
+  qsearchs( $eventtable, { $primary_key => $self->tablenum } );
+}
+
+=item test_conditions [ OPTION => VALUE ... ]
+
+Tests conditions for this event, returns true if all conditions are satisfied,
+false otherwise.
+
+=cut
+
+sub test_conditions {
+  my( $self, %opt ) = @_;
+  my $part_event = $self->part_event;
+  my $object = $self->cust_X;
+  my @conditions = $part_event->part_event_condition;
+
+  #no unsatisfied conditions
+  #! grep ! $_->condition( $object, %opt ), @conditions;
+  my @unsatisfied = grep ! $_->condition( $object, %opt ), @conditions;
+
+  if ( $opt{'stats_hashref'} ) {
+    foreach my $unsat (@unsatisfied) {
+      $opt{'stats_hashref'}->{$unsat->conditionname}++;
+    }
+  } 
+
+  ! @unsatisfied;
+}
+
+=item do_event
+
+Runs the event action.
+
+=cut
+
+sub do_event {
+  my $self = shift;
+
+  my $part_event = $self->part_event;
+
+  my $object = $self->cust_X;
+  my $obj_pkey = $object->primary_key;
+  my $for = "for ". $object->table. " ". $object->$obj_pkey();
+  warn "running cust_event ". $self->eventnum.
+       " (". $part_event->action. ") $for\n"
+    if $DEBUG;
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+
+  my $error;
+  {
+    local $SIG{__DIE__}; # don't want Mason __DIE__ handler active
+    $error = eval { $part_event->do_action($object); };
+  }
+
+  my $status = '';
+  my $statustext = '';
+  if ( $@ ) {
+    $status = 'failed';
+    #$statustext = $@;
+    $statustext = "Error running ". $part_event->action. " action: $@";
+  } elsif ( $error ) {
+    $status = 'done';
+    $statustext = $error;
+  } else {
+    $status = 'done';
+  }
+
+  #replace or add myself
+  $self->_date(time);
+  $self->status($status);
+  $self->statustext($statustext);
+
+  $error = $self->eventnum ? $self->replace : $self->insert;
+  if ( $error ) {
+    #this is why we need that locked state...
+    my $e = 'WARNING: Event run but database not updated - '.
+            'error replacing or inserting cust_event '. $self->eventnum.
+            " $for: $error\n";
+    warn $e;
+    return $e;
+  }
+
+  '';
+
+}
+
+=item retry
+
+Changes the status of this event from B<done> to B<failed>, allowing it to be
+retried.
+
+=cut
+
+sub retry {
+  my $self = shift;
+  return '' unless $self->status eq 'done';
+  my $old = ref($self)->new( { $self->hash } );
+  $self->status('failed');
+  $self->replace($old);
+}
+
+#=item retryable
+#
+#Changes the statustext of this event to B<retriable>, rendering it 
+#retriable (should retry be called).
+#
+#=cut
+
+sub retriable {
+  confess "cust_event->retriable called";
+  my $self = shift;
+  return '' unless $self->status eq 'done';
+  my $old = ref($self)->new( { $self->hash } );
+  $self->statustext('retriable');
+  $self->replace($old);
+}
+
+=back
+
+=head1 SUBROUTINES
+
+=over 4
+
+=item reprint
+
+=cut
+
+sub process_reprint {
+  process_re_X('print', @_);
+}
+
+=item reemail
+
+=cut
+
+sub process_reemail {
+  process_re_X('email', @_);
+}
+
+=item refax
+
+=cut
+
+sub process_refax {
+  process_re_X('fax', @_);
+}
+
+use Storable qw(thaw);
+use Data::Dumper;
+use MIME::Base64;
+sub process_re_X {
+  my( $method, $job ) = ( shift, shift );
+
+  my $param = thaw(decode_base64(shift));
+  warn Dumper($param) if $DEBUG;
+
+  re_X(
+    $method,
+    $param->{'beginning'},
+    $param->{'ending'},
+    $param->{'failed'},
+    $job,
+  );
+
+}
+
+sub re_X {
+  my($method, $beginning, $ending, $failed, $job) = @_;
+
+  my $from = 'LEFT JOIN part_event USING ( eventpart )';
+
+              # yuck!  hardcoed *AND* sequential scans!
+  my $where = " WHERE action LIKE 'cust_bill_send%'".
+              "   AND cust_event._date >= $beginning".
+              "   AND cust_event._date <= $ending";
+  $where .= " AND statustext != '' AND statustext IS NOT NULL"
+    if $failed;
+
+  my @cust_event = qsearch({
+    'table'     => 'cust_event',
+    'addl_from' => $from,
+    'hashref'   => {},
+    'extra_sql' => $where,
+  });
+
+  my( $num, $last, $min_sec ) = (0, time, 5); #progresbar foo
+  foreach my $cust_event ( @cust_event ) {
+
+    # XXX 
+    $cust_event->cust_bill->$method(
+      $cust_event->part_event->templatename
+      || $cust_event->cust_main->agent_template
+    );
+
+    if ( $job ) { #progressbar foo
+      $num++;
+      if ( time - $min_sec > $last ) {
+        my $error = $job->update_statustext(
+          int( 100 * $num / scalar(@cust_event) )
+        );
+        die $error if $error;
+        $last = time;
+      }
+    }
+
+  }
+
+  #this doesn't work, but it would be nice
+  #if ( $job ) { #progressbar foo
+  #  my $error = $job->update_statustext(
+  #    scalar(@cust_event). " invoices re-${method}ed"
+  #  );
+  #  die $error if $error;
+  #}
+
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<FS::part_event>, L<FS::cust_bill>, L<FS::Record>, schema.html from the
+base documentation.
+
+=cut
+
+1;
+
index 7238e97..fb64fa3 100644 (file)
@@ -1,5 +1,6 @@
 package FS::cust_main;
 
+require 5.006;
 use strict;
 use vars qw( @ISA @EXPORT_OK $DEBUG $me $conf @encrypted_fields
              $import $skip_fuzzyfiles $ignore_expired_card @paytypes);
@@ -7,13 +8,9 @@ use vars qw( $realtime_bop_decline_quiet ); #ugh
 use Safe;
 use Carp;
 use Exporter;
-BEGIN {
-  eval "use Time::Local;";
-  die "Time::Local minimum version 1.05 required with Perl versions before 5.6"
-    if $] < 5.006 && !defined($Time::Local::VERSION);
-  #eval "use Time::Local qw(timelocal timelocal_nocheck);";
-  eval "use Time::Local qw(timelocal_nocheck);";
-}
+use Time::Local qw(timelocal_nocheck);
+use Data::Dumper;
+use Tie::IxHash;
 use Digest::MD5 qw(md5_base64);
 use Date::Format;
 use Date::Parse;
@@ -32,6 +29,7 @@ use FS::cust_bill;
 use FS::cust_bill_pkg;
 use FS::cust_pay;
 use FS::cust_pay_void;
+use FS::cust_pay_batch;
 use FS::cust_credit;
 use FS::cust_refund;
 use FS::part_referral;
@@ -43,8 +41,9 @@ use FS::cust_bill_pay;
 use FS::prepay_credit;
 use FS::queue;
 use FS::part_pkg;
-use FS::part_bill_event qw(due_events);
-use FS::cust_bill_event;
+use FS::part_event;
+use FS::part_event_condition;
+#use FS::cust_event;
 use FS::cust_tax_exempt;
 use FS::cust_tax_exempt_pkg;
 use FS::type_pkgs;
@@ -1423,11 +1422,10 @@ sub check {
     $payinfo =~ s/[^\d\@]//g;
     if ( $conf->exists('echeck-nonus') ) {
       $payinfo =~ /^(\d+)\@(\d+)$/ or return 'invalid echeck account@aba';
-      $payinfo = "$1\@$2";
     } else {
       $payinfo =~ /^(\d+)\@(\d{9})$/ or return 'invalid echeck account@aba';
-      $payinfo = "$1\@$2";
     }
+    $payinfo = "$1\@$2";
     $self->payinfo($payinfo);
     $self->paycvv('');
 
@@ -1547,6 +1545,16 @@ sub all_pkgs {
   sort sort_packages @cust_pkg;
 }
 
+=item cust_pkg
+
+Synonym for B<all_pkgs>.
+
+=cut
+
+sub cust_pkg {
+  shift->all_pkgs(@_);
+}
+
 =item ncancelled_pkgs
 
 Returns all non-cancelled packages (see L<FS::cust_pkg>) for this customer.
@@ -1561,11 +1569,18 @@ sub ncancelled_pkgs {
   my @cust_pkg = ();
   if ( $self->{'_pkgnum'} ) {
 
+    warn "$me ncancelled_pkgs: returning cached objects"
+      if $DEBUG > 1;
+
     @cust_pkg = grep { ! $_->getfield('cancel') }
                 values %{ $self->{'_pkgnum'}->cache };
 
   } else {
 
+    warn "$me ncancelled_pkgs: searching for packages for custnum ".
+         $self->custnum
+      if $DEBUG > 1;
+
     @cust_pkg =
       qsearch( 'cust_pkg', {
                              'custnum' => $self->custnum,
@@ -1683,10 +1698,20 @@ sub suspend {
   grep { $_->suspend(@_) } $self->unsuspended_pkgs;
 }
 
-=item suspend_if_pkgpart PKGPART [ , PKGPART ... ]
+=item suspend_if_pkgpart HASHREF | PKGPART [ , PKGPART ... ]
 
 Suspends all unsuspended packages (see L<FS::cust_pkg>) matching the listed
-PKGPARTs (see L<FS::part_pkg>).
+PKGPARTs (see L<FS::part_pkg>).  Preferred usage is to pass a hashref instead
+of a list of pkgparts; the hashref has the following keys:
+
+=over 4
+
+=item pkgparts - listref of pkgparts
+
+=item (other options are passed to the suspend method)
+
+=back
+
 
 Returns a list: an empty list on success or a list of errors.
 
@@ -1706,10 +1731,19 @@ sub suspend_if_pkgpart {
       $self->unsuspended_pkgs;
 }
 
-=item suspend_unless_pkgpart PKGPART [ , PKGPART ... ]
+=item suspend_unless_pkgpart HASHREF | PKGPART [ , PKGPART ... ]
 
 Suspends all unsuspended packages (see L<FS::cust_pkg>) unless they match the
-listed PKGPARTs (see L<FS::part_pkg>).
+given PKGPARTs (see L<FS::part_pkg>).  Preferred usage is to pass a hashref
+instead of a list of pkgparts; the hashref has the following keys:
+
+=over 4
+
+=item pkgparts - listref of pkgparts
+
+=item (other options are passed to the suspend method)
+
+=back
 
 Returns a list: an empty list on success or a list of errors.
 
@@ -1733,22 +1767,31 @@ sub suspend_unless_pkgpart {
 
 Cancels all uncancelled packages (see L<FS::cust_pkg>) for this customer.
 
-Available options are: I<quiet>, I<reasonnum>, and I<ban>
+Available options are:
 
-I<quiet> can be set true to supress email cancellation notices.
+=over 4
 
-# I<reasonnum> can be set to a cancellation reason (see L<FS::cancel_reason>)
+=item quiet - can be set true to supress email cancellation notices.
 
-I<ban> can be set true to ban this customer's credit card or ACH information,
-if present.
+=item reason - can be set to a cancellation reason (see L<FS:reason>), either a reasonnum of an existing reason, or passing a hashref will create a new reason.  The hashref should have the following keys: typenum - Reason type (see L<FS::reason_type>, reason - Text of the new reason.
+
+=item ban - can be set true to ban this customer's credit card or ACH information, if present.
+
+=back
 
 Always returns a list: an empty list on success or a list of errors.
 
 =cut
 
 sub cancel {
-  my $self = shift;
-  my %opt = @_;
+  my( $self, %opt ) = @_;
+
+  warn "$me cancel called on customer ". $self->custnum. " with options ".
+       join(', ', map { "$_: $opt{$_}" } keys %opt ). "\n"
+    if $DEBUG;
+
+  return ( 'access denied' )
+    unless $FS::CurrentUser::CurrentUser->access_right('Cancel customer');
 
   if ( $opt{'ban'} && $self->payby =~ /^(CARD|DCRD|CHEK|DCHK)$/ ) {
 
@@ -1763,7 +1806,13 @@ sub cancel {
 
   }
 
-  grep { $_ } map { $_->cancel(@_) } $self->ncancelled_pkgs;
+  my @pkgs = $self->ncancelled_pkgs;
+
+  warn "$me cancelling ". scalar($self->ncancelled_pkgs). "/".
+       scalar(@pkgs). " packages for customer ". $self->custnum. "\n"
+    if $DEBUG;
+
+  grep { $_ } map { $_->cancel(%opt) } $self->ncancelled_pkgs;
 }
 
 sub _banned_pay_hashref {
@@ -1810,10 +1859,87 @@ sub agent {
   qsearchs( 'agent', { 'agentnum' => $self->agentnum } );
 }
 
+=item bill_and_collect 
+
+Cancels and suspends any packages due, generates bills, applies payments and
+cred
+
+Warns on errors (Does not currently: If there is an error, returns the error, otherwise returns false.)
+
+Options are passed as name-value pairs.  Currently available options are:
+
+=over 4
+
+=item time - bills the customer as if it were that time.  Specified as a UNIX timestamp; see L<perlfunc/"time">).  Also see L<Time::Local> and L<Date::Parse> for conversion functions.  For example:
+
+ use Date::Parse;
+ ...
+ $cust_main->bill( 'time' => str2time('April 20th, 2001') );
+
+=item invoice_time - used in conjunction with the I<time> option, this option specifies the date of for the generated invoices.  Other calculations, such as whether or not to generate the invoice in the first place, are not affected.
+
+=item check_freq - "1d" for the traditional, daily events (the default), or "1m" for the new monthly events (part_event.check_freq)
+
+=item resetup - if set true, re-charges setup fees.
+
+=back
+
+=cut
+
+sub bill_and_collect {
+  my( $self, %options ) = @_;
+
+  ###
+  # cancel packages
+  ###
+
+  #$^T not $options{time} because freeside-daily -d is for pre-printing invoices
+  foreach my $cust_pkg (
+    grep { $_->expire && $_->expire <= $^T } $self->ncancelled_pkgs
+  ) {
+    my $error = $cust_pkg->cancel;
+    warn "Error cancelling expired pkg ". $cust_pkg->pkgnum.
+         " for custnum ". $self->custnum. ": $error"
+      if $error;
+  }
+
+  ###
+  # suspend packages
+  ###
+
+  #$^T not $options{time} because freeside-daily -d is for pre-printing invoices
+  foreach my $cust_pkg (
+    grep { (    $_->part_pkg->is_prepaid && $_->bill && $_->bill < $^T
+             || $_->adjourn && $_->adjourn <= $^T
+           )
+           && ! $_->susp
+         }
+         $self->ncancelled_pkgs
+  ) {
+    my $error = $cust_pkg->suspend;
+    warn "Error suspending package ". $cust_pkg->pkgnum.
+         " for custnum ". $self->custnum. ": $error"
+      if $error;
+  }
+
+  ###
+  # bill and collect
+  ###
+
+  my $error = $self->bill( %options );
+  warn "Error billing, custnum ". $self->custnum. ": $error" if $error;
+
+  $self->apply_payments_and_credits;
+
+  $error = $self->collect( %options );
+  warn "Error collecting, custnum". $self->custnum. ": $error" if $error;
+
+}
+
 =item bill OPTIONS
 
 Generates invoices (see L<FS::cust_bill>) for this customer.  Usually used in
-conjunction with the collect method.
+conjunction with the collect method by calling B<bill_and_collect>.
 
 If there is an error, returns the error, otherwise returns false.
 
@@ -1829,6 +1955,10 @@ Options are passed as name-value pairs.  Currently available options are:
  ...
  $cust_main->bill( 'time' => str2time('April 20th, 2001') );
 
+=item pkg_list - An array ref of specific packages (objects) to attempt billing, instead trying all of them.
+
+ $cust_main->bill( pkg_list => [$pkg1, $pkg2] );
+
 =item invoice_time - used in conjunction with the I<time> option, this option specifies the date of for the generated invoices.  Other calculations, such as whether or not to generate the invoice in the first place, are not affected.
 
 =back
@@ -1940,6 +2070,13 @@ sub bill {
          ( $cust_pkg->getfield('bill') || 0 ) <= $time
     ) {
 
+      # XXX should this be a package event?  probably.  events are called
+      # at collection time at the moment, though...
+      if ( $part_pkg->can('reset_usage') ) {
+        warn "    resetting usage counters" if $DEBUG > 1;
+        $part_pkg->reset_usage($cust_pkg);
+      }
+
       warn "    bill recur\n" if $DEBUG > 1;
 
       # XXX shared with $recur_prog
@@ -2190,6 +2327,18 @@ sub bill {
 
   unless ( $cust_bill->cust_bill_pkg ) {
     $cust_bill->delete; #don't create an invoice w/o line items
+
+   # XXX this seems to be broken
+   #( DBD::Pg::st execute failed: ERROR:  syntax error at or near "hcb" )
+#   # get rid of our fake history too, waste of unecessary space
+#    my $h_cleanup_query = q{
+#      DELETE FROM h_cust_bill hcb
+#       WHERE hcb.invnum = ?
+#      AND NOT EXISTS ( SELECT 1 FROM cust_bill cb where cb.invnum = hcb.invnum )
+#    };
+#    my $h_sth = $dbh->prepare($h_cleanup_query);
+#    $h_sth->execute($invnum);
+
     $dbh->commit or die $dbh->errstr if $oldAutoCommit;
     return '';
   }
@@ -2244,12 +2393,9 @@ sub bill {
 (Attempt to) collect money for this customer's outstanding invoices (see
 L<FS::cust_bill>).  Usually used after the bill method.
 
-Depending on the value of `payby', this may print or email an invoice (I<BILL>,
-I<DCRD>, or I<DCHK>), charge a credit card (I<CARD>), charge via electronic
-check/ACH (I<CHEK>), or just add any necessary (pseudo-)payment (I<COMP>).
-
-Most actions are now triggered by invoice events; see L<FS::part_bill_event>
-and the invoice events web interface.
+Actions are now triggered by billing events; see L<FS::part_event> and the
+billing events web interface.  Old-style invoice events (see
+L<FS::part_bill_event>) have been deprecated.
 
 If there is an error, returns the error, otherwise returns false.
 
@@ -2257,19 +2403,17 @@ Options are passed as name-value pairs.
 
 Currently available options are:
 
-invoice_time - Use this time when deciding when to print invoices and
-late notices on those invoices.  The default is now.  It is specified as a UNIX timestamp; see L<perlfunc/"time">).  Also see L<Time::Local> and L<Date::Parse>
-for conversion functions.
+=over 4
+
+=item invoice_time - Use this time when deciding when to print invoices and late notices on those invoices.  The default is now.  It is specified as a UNIX timestamp; see L<perlfunc/"time">).  Also see L<Time::Local> and L<Date::Parse> for conversion functions.
 
-retry - Retry card/echeck/LEC transactions even when not scheduled by invoice
-events.
+=item retry - Retry card/echeck/LEC transactions even when not scheduled by invoice events.
 
-quiet - set true to surpress email card/ACH decline notices.
+=item quiet - set true to surpress email card/ACH decline notices.
 
-freq - "1d" for the traditional, daily events (the default), or "1m" for the
-new monthly events
+=item check_freq - "1d" for the traditional, daily events (the default), or "1m" for the new monthly events (part_event.check_freq)
 
-payby - allows for one time override of normal customer billing method
+=item payby - allows for one time override of normal customer billing method
 
 =cut
 
@@ -2291,12 +2435,9 @@ sub collect {
 
   $self->select_for_update; #mutex
 
-  my $balance = $self->balance;
-  warn "$me collect customer ". $self->custnum. ": balance $balance\n"
-    if $DEBUG;
-  unless ( $balance > 0 ) { #redundant?????
-    $dbh->rollback if $oldAutoCommit; #hmm
-    return '';
+  if ( $DEBUG ) {
+    my $balance = $self->balance;
+    warn "$me collect customer ". $self->custnum. ": balance $balance\n"
   }
 
   if ( exists($options{'retry_card'}) ) {
@@ -2311,51 +2452,233 @@ sub collect {
     }
   }
 
-  my $extra_sql = '';
-  if ( defined $options{'freq'} && $options{'freq'} eq '1m' ) {
-    $extra_sql = " AND freq = '1m' ";
-  } else {
-    $extra_sql = " AND ( freq = '1d' OR freq IS NULL OR freq = '' ) ";
-  }
-
-  foreach my $cust_bill ( $self->open_cust_bill ) {
-
-    # don't try to charge for the same invoice if it's already in a batch
-    #next if qsearchs( 'cust_pay_batch', { 'invnum' => $cust_bill->invnum } );
+  # false laziness w/pay_batch::import_results
 
-    last if $self->balance <= 0;
-
-    warn "  invnum ". $cust_bill->invnum. " (owed ". $cust_bill->owed. ")\n"
-      if $DEBUG > 1;
+  my $due_cust_event = $self->due_cust_event(
+    'time'       => $invoice_time,
+    'check_freq' => $options{'check_freq'},
+  );
+  unless( ref($due_cust_event) ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $due_cust_event;
+  }
 
-    foreach my $part_bill_event ( due_events ( $cust_bill,
-                                               exists($options{'payby'}) 
-                                                ? $options{'payby'}
-                                                : $self->payby,
-                                              $invoice_time,
-                                              $extra_sql ) ) {
+  foreach my $cust_event ( @$due_cust_event ) {
 
-      last if $cust_bill->owed <= 0  # don't run subsequent events if owed<=0
-           || $self->balance   <= 0; # or if balance<=0
+    #XXX lock event
+    
+    #re-eval event conditions (a previous event could have changed things)
+    next unless $cust_event->test_conditions( 'time' => $invoice_time );
 
-      {
-        local $realtime_bop_decline_quiet = 1 if $options{'quiet'};
-        warn "  do_event " .  $cust_bill . " ". (%options) .  "\n"
-          if $DEBUG > 1;
+    {
+      local $realtime_bop_decline_quiet = 1 if $options{'quiet'};
+      warn "  running cust_event ". $cust_event->eventnum. "\n"
+        if $DEBUG > 1;
 
-        if (my $error = $part_bill_event->do_event($cust_bill, %options)) {
+      
+      #if ( my $error = $cust_event->do_event(%options) ) { #XXX %options?
+      if ( my $error = $cust_event->do_event() ) {
+        #XXX wtf is this?  figure out a proper dealio with return value
+        #from do_event
          # gah, even with transactions.
          $dbh->commit if $oldAutoCommit; #well.
          return $error;
        }
+    }
+
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+  '';
+
+}
+
+=item due_cust_event [ HASHREF | OPTION => VALUE ... ]
+
+Inserts database records for and returns an ordered listref of new events due
+for this customer, as FS::cust_event objects (see L<FS::cust_event>).  If no
+events are due, an empty listref is returned.  If there is an error, returns a
+scalar error message.
+
+To actually run the events, call each event's test_condition method, and if
+still true, call the event's do_event method.
+
+Options are passed as a hashref or as a list of name-value pairs.  Available
+options are:
+
+=over 4
+
+=item check_freq - Search only for events of this check frequency (how often events of this type are checked); currently "1d" (daily, the default) and "1m" (monthly) are recognized.
+
+=item time - "Current time" for the events.
+
+=item debug - Debugging level.  Default is 0 (no debugging), or can be set to 1 (passed-in options), 2 (traces progress), or 3 (more information)
+
+=item eventtable - Only return events for the specified eventtable (by default, events of all eventtables are returned)
+
+=item objects - Explicitly pass the objects to be tested (typically used with eventtable).
+
+=back
+
+=cut
+
+sub due_cust_event {
+  my $self = shift;
+  my %opt = ref($_[0]) ? %{ $_[0] } : @_;
+
+  #???
+  #my $DEBUG = $opt{'debug'}
+  local($DEBUG) = $opt{'debug'}
+    if defined($opt{'debug'}) && $opt{'debug'} > $DEBUG;
+
+  warn "$me due_cust_event called with options ".
+       join(', ', map { "$_: $opt{$_}" } keys %opt). "\n"
+    if $DEBUG;
+
+  $opt{'time'} ||= time;
+
+  local $SIG{HUP} = 'IGNORE';
+  local $SIG{INT} = 'IGNORE';
+  local $SIG{QUIT} = 'IGNORE';
+  local $SIG{TERM} = 'IGNORE';
+  local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  $self->select_for_update; #mutex
+
+  ###
+  # 1: find possible events (initial search)
+  ###
+  
+  my @cust_event = ();
+
+  my @eventtable = $opt{'eventtable'}
+                     ? ( $opt{'eventtable'} )
+                     : FS::part_event->eventtables_runorder;
+
+  foreach my $eventtable ( @eventtable ) {
+
+    my @objects;
+    if ( $opt{'objects'} ) {
+
+      @objects = @{ $opt{'objects'} };
+
+    } else {
+
+      #my @objects = $self->eventtable(); # sub cust_main { @{ [ $self ] }; }
+      @objects = ( $eventtable eq 'cust_main' )
+                   ? ( $self )
+                   : ( $self->$eventtable() );
+
+    }
+
+    my @e_cust_event = ();
+
+    my $cross = "CROSS JOIN $eventtable";
+    $cross .= ' LEFT JOIN cust_main USING ( custnum )'
+      unless $eventtable eq 'cust_main';
+
+    foreach my $object ( @objects ) {
+
+      #this first search uses the condition_sql magic for optimization.
+      #the more possible events we can eliminate in this step the better
+
+      my $cross_where = '';
+      my $pkey = $object->primary_key;
+      $cross_where = "$eventtable.$pkey = ". $object->$pkey();
+
+      my $join = FS::part_event_condition->join_conditions_sql( $eventtable );
+      my $extra_sql =
+        FS::part_event_condition->where_conditions_sql( $eventtable,
+                                                        'time'=>$opt{'time'}
+                                                      );
+      my $order = FS::part_event_condition->order_conditions_sql( $eventtable );
+
+      $extra_sql = "AND $extra_sql" if $extra_sql;
+
+      #here is the agent virtualization
+      $extra_sql .= " AND (    part_event.agentnum IS NULL
+                            OR part_event.agentnum = ". $self->agentnum. ' )';
+
+      $extra_sql .= " $order";
+
+      my @part_event = qsearch( {
+        'select'    => 'part_event.*',
+        'table'     => 'part_event',
+        'addl_from' => "$cross $join",
+        'hashref'   => { 'check_freq' => ( $opt{'check_freq'} || '1d' ),
+                         'eventtable' => $eventtable,
+                         'disabled'   => '',
+                       },
+        'extra_sql' => "AND $cross_where $extra_sql",
+      } );
+
+      if ( $DEBUG > 2 ) {
+        my $pkey = $object->primary_key;
+        warn "      ". scalar(@part_event).
+             " possible events found for $eventtable ". $object->$pkey(). "\n";
       }
 
+      push @e_cust_event, map { $_->new_cust_event($object) } @part_event;
+
     }
 
+    warn "    ". scalar(@e_cust_event).
+         " subtotal possible cust events found for $eventtable"
+      if $DEBUG > 1;
+
+    push @cust_event, @e_cust_event;
+
+  }
+
+  warn "  ". scalar(@cust_event).
+       " total possible cust events found in initial search\n"
+    if $DEBUG; # > 1;
+
+  ##
+  # 2: test conditions
+  ##
+  
+  my %unsat = ();
+
+  @cust_event = grep $_->test_conditions( 'time'          => $opt{'time'},
+                                          'stats_hashref' => \%unsat ),
+                     @cust_event;
+
+  warn "  ". scalar(@cust_event). " cust events left satisfying conditions\n"
+    if $DEBUG; # > 1;
+
+  warn "    invalid conditions not eliminated with condition_sql:\n".
+       join('', map "      $_: ".$unsat{$_}."\n", keys %unsat );
+
+  ##
+  # 3: insert
+  ##
+
+  foreach my $cust_event ( @cust_event ) {
+
+    my $error = $cust_event->insert();
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return $error;
+    }
+                                       
   }
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
-  '';
+
+  ##
+  # 4: return
+  ##
+
+  warn "  returning events: ". Dumper(@cust_event). "\n"
+    if $DEBUG > 2;
+
+  \@cust_event;
 
 }
 
@@ -2366,9 +2689,9 @@ events for for retry.  Useful if card information has changed or manual
 retry is desired.  The 'collect' method must be called to actually retry
 the transaction.
 
-Implementation details: For each of this customer's open invoices, changes
-the status of the first "done" (with statustext error) realtime processing
-event to "failed".
+Implementation details: For either this customer, or for each of this
+customer's open invoices, changes the status of the first "done" (with
+statustext error) realtime processing event to "failed".
 
 =cut
 
@@ -2386,25 +2709,52 @@ sub retry_realtime {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  foreach my $cust_bill (
-    grep { $_->cust_bill_event }
-      $self->open_cust_bill
-  ) {
-    my @cust_bill_event =
-      sort { $a->part_bill_event->seconds <=> $b->part_bill_event->seconds }
-        grep {
-               #$_->part_bill_event->plan eq 'realtime-card'
-               $_->part_bill_event->eventcode =~
-                   /\$cust_bill\->(batch|realtime)_(card|ach|lec)/
-                 && $_->status eq 'done'
-                 && $_->statustext
-             }
-          $cust_bill->cust_bill_event;
-    next unless @cust_bill_event;
-    my $error = $cust_bill_event[0]->retry;
+  #a little false laziness w/due_cust_event (not too bad, really)
+
+  my $join = FS::part_event_condition->join_conditions_sql;
+  my $order = FS::part_event_condition->order_conditions_sql;
+
+  #here is the agent virtualization
+  my $agent_virt = " (    part_event.agentnum IS NULL
+                       OR part_event.agentnum = ". $self->agentnum. ' )';
+
+  #XXX this shouldn't be hardcoded, actions should declare it...
+  my @realtime_events = qw(
+    cust_bill_realtime_card
+    cust_bill_realtime_check
+    cust_bill_realtime_lec
+    cust_bill_batch
+  );
+
+  my $is_realtime_event = ' ( '. join(' OR ', map "part_event.action = '$_'",
+                                                  @realtime_events
+                                     ).
+                          ' ) ';
+
+  my @cust_event = qsearchs({
+    'table'     => 'cust_event',
+    'addl_from' => "LEFT JOIN part_event USING ( eventpart ) $join",
+    'hashref'   => { 'status' => 'done' },
+    'extra_sql' => " AND statustext IS NOT NULL AND statustext != '' ".
+                   " AND $is_realtime_event AND $agent_virt $order" # LIMIT 1"
+  });
+
+  my %seen_invnum = ();
+  foreach my $cust_event (@cust_event) {
+
+    #max one for the customer, one for each open invoice
+    my $cust_X = $cust_event->cust_X;
+    next if $seen_invnum{ $cust_event->part_event->eventtable eq 'cust_bill'
+                          ? $cust_X->invnum
+                          : 0
+                        }++
+         or $cust_event->part_event->eventtable eq 'cust_bill'
+            && ! $cust_X->owed;
+
+    my $error = $cust_event->retry;
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
-      return "error scheduling invoice event for retry: $error";
+      return "error scheduling event for retry: $error";
     }
 
   }
@@ -2457,6 +2807,22 @@ sub realtime_bop {
                   ? $options{'payinfo'}
                   : $self->payinfo;
 
+  my %method2payby = (
+    'CC'     => 'CARD',
+    'ECHECK' => 'CHEK',
+    'LEC'    => 'LECB',
+  );
+
+  ###
+  # check for banned credit card/ACH
+  ###
+
+  my $ban = qsearchs('banned_pay', {
+    'payby'   => $method2payby{$method},
+    'payinfo' => md5_base64($payinfo),
+  } );
+  return "Banned credit card" if $ban;
+
   ###
   # select a gateway
   ###
@@ -3596,17 +3962,38 @@ sub total_unapplied_payments {
   sprintf( "%.2f", $total_unapplied );
 }
 
+=item total_unapplied_refunds
+
+Returns the total unrefunded refunds (see L<FS::cust_refund>) for this
+customer.  See L<FS::cust_refund/unapplied>.
+
+=cut
+
+sub total_unapplied_refunds {
+  my $self = shift;
+  my $total_unapplied = 0;
+  foreach my $cust_refund ( qsearch('cust_refund', {
+    'custnum' => $self->custnum,
+  } ) ) {
+    $total_unapplied += $cust_refund->unapplied;
+  }
+  sprintf( "%.2f", $total_unapplied );
+}
+
 =item balance
 
-Returns the balance for this customer (total_owed minus total_credited
-minus total_unapplied_payments).
+Returns the balance for this customer (total_owed plus total_unrefunded, minus
+total_credited minus total_unapplied_payments).
 
 =cut
 
 sub balance {
   my $self = shift;
   sprintf( "%.2f",
-    $self->total_owed - $self->total_credited - $self->total_unapplied_payments
+      $self->total_owed
+    + $self->total_unapplied_refunds
+    - $self->total_credited
+    - $self->total_unapplied_payments
   );
 }
 
@@ -3624,7 +4011,8 @@ sub balance_date {
   my $self = shift;
   my $time = shift;
   sprintf( "%.2f",
-    $self->total_owed_date($time)
+        $self->total_owed_date($time)
+      + $self->total_unapplied_refunds
       - $self->total_credited
       - $self->total_unapplied_payments
   );
@@ -4068,6 +4456,17 @@ sub cust_pay_void {
     qsearch( 'cust_pay_void', { 'custnum' => $self->custnum } )
 }
 
+=item cust_pay_batch
+
+Returns all batched payments (see L<FS::cust_pay_void>) for this customer.
+
+=cut
+
+sub cust_pay_batch {
+  my $self = shift;
+  sort { $a->_date <=> $b->_date }
+    qsearch( 'cust_pay_batch', { 'custnum' => $self->custnum } )
+}
 
 =item cust_refund
 
@@ -4206,13 +4605,13 @@ Returns a hex triplet color string for this customer's status.
 =cut
 
 use vars qw(%statuscolor);
-%statuscolor = (
+tie my %statuscolor, 'Tie::IxHash',
   'prospect'  => '7e0079', #'000000', #black?  naw, purple
   'active'    => '00CC00', #green
   'inactive'  => '0000CC', #blue
   'suspended' => 'FF9900', #yellow
   'cancelled' => 'FF0000', #red
-);
+;
 
 sub statuscolor { shift->cust_statuscolor(@_); }
 
@@ -4227,6 +4626,20 @@ sub cust_statuscolor {
 
 =over 4
 
+=item statuses
+
+Class method that returns the list of possible status strings for customers
+(see L<the status method|/status>).  For example:
+
+  @statuses = FS::cust_main->statuses();
+
+=cut
+
+sub statuses {
+  #my $self = shift; #could be class...
+  keys %statuscolor;
+}
+
 =item prospect_sql
 
 Returns an SQL expression identifying prospective cust_main records (customers
@@ -4329,6 +4742,65 @@ sub uncancel_sql { "
   )
 "; }
 
+=item balance_sql
+
+Returns an SQL fragment to retreive the balance.
+
+=cut
+
+sub balance_sql { "
+    COALESCE( ( SELECT SUM(charged) FROM cust_bill
+                  WHERE cust_bill.custnum   = cust_main.custnum ), 0)
+  - COALESCE( ( SELECT SUM(paid)    FROM cust_pay
+                  WHERE cust_pay.custnum    = cust_main.custnum ), 0)
+  - COALESCE( ( SELECT SUM(amount)  FROM cust_credit
+                  WHERE cust_credit.custnum = cust_main.custnum ), 0)
+  + COALESCE( ( SELECT SUM(refund)  FROM cust_refund
+                   WHERE cust_refund.custnum = cust_main.custnum ), 0)
+"; }
+
+=item balance_date_sql TIME
+
+Returns an SQL fragment to retreive the balance for this customer, only
+considering invoices with date earlier than TIME. (total_owed_date minus total_credited minus
+total_unapplied_payments).  TIME is specified as an SQL fragment or a numeric
+UNIX timestamp; see L<perlfunc/"time">).  Also see L<Time::Local> and
+L<Date::Parse> for conversion functions.
+
+=cut
+
+sub balance_date_sql {
+  my( $class, $time ) = @_;
+
+  my $owed_sql         = FS::cust_bill->owed_sql;
+  my $unapp_refund_sql = FS::cust_refund->unapplied_sql;
+  #my $unapp_credit_sql = FS::cust_credit->unapplied_sql;
+  my $unapp_credit_sql = FS::cust_credit->credited_sql;
+  my $unapp_pay_sql    = FS::cust_pay->unapplied_sql;
+
+  "
+      COALESCE( ( SELECT SUM($owed_sql) FROM cust_bill
+                    WHERE cust_bill.custnum   = cust_main.custnum
+                      AND cust_bill._date    <= $time             )
+                ,0
+              )
+    + COALESCE( ( SELECT SUM($unapp_refund_sql) FROM cust_refund
+                    WHERE cust_refund.custnum = cust_main.custnum )
+                ,0
+              )
+    - COALESCE( ( SELECT SUM($unapp_credit_sql) FROM cust_credit
+                    WHERE cust_credit.custnum = cust_main.custnum )
+                ,0
+              )
+    - COALESCE( ( SELECT SUM($unapp_pay_sql) FROM cust_pay
+                    WHERE cust_pay.custnum = cust_main.custnum )
+                ,0
+              )
+
+  ";
+
+}
+
 =item fuzzy_search FUZZY_HASHREF [ HASHREF, SELECT, EXTRA_SQL, CACHE_OBJ ]
 
 Performs a fuzzy (approximate) search and returns the matching FS::cust_main
@@ -4552,9 +5024,10 @@ sub smart_search {
       'extra_sql' => "$sql AND $agentnums_sql", #agent virtualization
     } );
 
-    #always do substring & fuzzy,
-    #getting complains searches are not returning enough
-    unless ( @cust_main && $skip_fuzzy ) {  #no exact match, trying substring/fuzzy
+    #no exact match, trying substring/fuzzy
+    #always do substring & fuzzy (unless they're explicity config'ed off)
+    #getting complaints searches are not returning enough
+    unless ( @cust_main  && $skip_fuzzy || $conf->exists('disable-fuzzy') ) {
 
       #still some false laziness w/ search/cust_main.cgi
 
@@ -5158,7 +5631,7 @@ sub generate_letter {
 
   unless(exists($letter_data{returnaddress})){
     my $retadd = join("\n", $conf->config_orbase( 'invoice_latexreturnaddress',
-                                                  $self->_agent_template)
+                                                  $self->agent_template)
                      );
 
     $letter_data{returnaddress} = length($retadd) ? $retadd : '~';
@@ -5227,32 +5700,53 @@ sub agent_invoice_from {
 sub _agent_plandata {
   my( $self, $option ) = @_;
 
-  my $part_bill_event = qsearchs( 'part_bill_event',
-    {
-      'payby'     => $self->payby,
-      'plan'      => 'send_agent',
-      'plandata'  => { 'op'    => '~',
-                       'value' => "(^|\n)agentnum ".
-                                   '([0-9]*, )*'.
-                                  $self->agentnum.
-                                   '(, [0-9]*)*'.
-                                  "(\n|\$)",
-                     },
-    },
-    '',
-    'ORDER BY seconds LIMIT 1'
-  );
-
-  return '' unless $part_bill_event;
-
-  if ( $part_bill_event->plandata =~ /^$option (.*)$/m ) {
-    return $1;
-  } else {
-    warn "can't parse part_bill_event eventpart#". $part_bill_event->eventpart.
-         " plandata for $option";
+  #yuck.  this whole thing needs to be reconciled better with 1.9's idea of
+  #agent-specific Conf
+  
+  my $agentnum = $self->agentnum;
+
+  my $part_event_option =
+    qsearchs({
+      'table'     => 'part_event_option',
+      'addl_from' => q{
+        LEFT JOIN part_event USING ( eventpart )
+        LEFT JOIN part_event_option AS peo_agentnum
+          ON ( part_event.eventpart = peo_agentnum.eventpart
+               AND peo_agentnum.optionname = 'agentnum'
+               AND peo_agentnum.optionvalue ~ '(^|,)agentnum(,|$)'
+             )
+        LEFT JOIN part_event_option AS peo_cust_bill_age
+          ON ( part_event.eventpart = peo_cust_bill_age.eventpart
+               AND peo_cust_bill_age.optionname = 'cust_bill_age'
+             )
+      },
+      #'hashref'   => { 'optionname' => $option },
+      'hashref'   => { 'part_event_option.optionname' => $option },
+      'extra_sql' => " AND event = 'cust_bill_send_agent' ".
+                     " AND peo_agentnum.optionname = 'agentnum' ".
+                     " AND agentnum IS NULL OR agentnum = $agentnum ".
+                     " ORDER BY
+                        CASE WHEN peo_cust_bill_age.optionname != 'cust_bill_age'
+                        THEN -1
+                        ELSE EXTRACT( EPOCH FROM
+                                        REPLACE( peo_cust_bill_age.optionvalue,
+                                                 'm',
+                                                 'mon'
+                                               )::interval
+                                    )
+                       END
+                       , part_event.weight".
+                     " LIMIT 1"
+    });
+    
+  unless ( $part_event_option ) {
+    return $self->agent->invoice_template || ''
+      if $option eq '$agent_templatename';
     return '';
   }
 
+  $part_event_option->optionvalue;
+
 }
 
 =back
@@ -5279,6 +5773,8 @@ Birthdates rely on negative epoch values.
 The payby for card/check batches is broken.  With mixed batching, bad
 things will happen.
 
+B<collect> I<invoice_time> should be renamed I<time>, like B<bill>.
+
 =head1 SEE ALSO
 
 L<FS::Record>, L<FS::cust_pkg>, L<FS::cust_bill>, L<FS::cust_credit>
index 23bcdd9..5d31d2c 100644 (file)
@@ -550,6 +550,36 @@ sub cust_main {
 
 =back
 
+=head1 CLASS METHODS
+
+=over 4
+
+=item unapplied_sql
+
+Returns an SQL fragment to retreive the unapplied amount.
+
+=cut 
+
+sub unapplied_sql {
+  #my $class = shift;
+
+  "paid
+        - COALESCE( 
+                    ( SELECT SUM(amount) FROM cust_bill_pay
+                        WHERE cust_pay.paynum = cust_bill_pay.paynum )
+                    ,0
+                  )
+        - COALESCE(
+                    ( SELECT SUM(amount) FROM cust_pay_refund
+                        WHERE cust_pay.paynum = cust_pay_refund.paynum )
+                    ,0
+                  )
+  ";
+
+}
+
+=back
+
 =head1 BUGS
 
 Delete and replace methods.  
index 573f06f..9ef1e1c 100644 (file)
@@ -2,11 +2,14 @@ package FS::cust_pay_batch;
 
 use strict;
 use vars qw( @ISA $DEBUG );
+use Carp qw( confess );
+use Business::CreditCard 0.28;
 use FS::Record qw(dbh qsearch qsearchs);
 use FS::payinfo_Mixin;
-use Business::CreditCard 0.28;
+use FS::cust_main;
+use FS::cust_bill;
 
-@ISA = qw( FS::Record FS::payinfo_Mixin );
+@ISA = qw( FS::payinfo_Mixin FS::Record );
 
 # 1 is mostly method/subroutine entry and options
 # 2 traces progress of some operations
@@ -32,7 +35,7 @@ FS::cust_pay_batch - Object methods for batch cards
 
   $error = $record->check;
 
-  $error = $record->retriable;
+  #deprecated# $error = $record->retriable;
 
 =head1 DESCRIPTION
 
@@ -201,19 +204,27 @@ sub cust_main {
   qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
 }
 
-=item retriable
-
-Marks the corresponding event (see L<FS::cust_bill_event>) for this batched
-credit card payment as retriable.  Useful if the corresponding financial
-institution account was declined for temporary reasons and/or a manual 
-retry is desired.
+#you know what, screw this in the new world of events.  we should be able to
+#get the event defs to retry (remove once.pm condition, add every.pm) without
+#mucking about with statuses of previous cust_event records.  right?
+#
+#=item retriable
+#
+#Marks the corresponding event (see L<FS::cust_bill_event>) for this batched
+#credit card payment as retriable.  Useful if the corresponding financial
+#institution account was declined for temporary reasons and/or a manual 
+#retry is desired.
+#
+#Implementation details: For the named customer's invoice, changes the
+#statustext of the 'done' (without statustext) event to 'retriable.'
+#
+#=cut
 
-Implementation details: For the named customer's invoice, changes the
-statustext of the 'done' (without statustext) event to 'retriable.'
+sub retriable {
 
-=cut
+  confess "deprecated method cust_pay_batch->retriable called; try removing ".
+          "the once condition and adding an every condition?";
 
-sub retriable {
   my $self = shift;
 
   local $SIG{HUP} = 'IGNORE';        #Hmm
index f2b0395..571bf0e 100644 (file)
@@ -7,6 +7,7 @@ use Tie::IxHash;
 use FS::UID qw( getotaker dbh );
 use FS::Misc qw( send_email );
 use FS::Record qw( qsearch qsearchs );
+use FS::m2m_Common;
 use FS::cust_main_Mixin;
 use FS::cust_svc;
 use FS::part_pkg;
@@ -14,6 +15,7 @@ use FS::cust_main;
 use FS::type_pkgs;
 use FS::pkg_svc;
 use FS::cust_bill_pkg;
+use FS::cust_event;
 use FS::h_cust_svc;
 use FS::reg_code;
 use FS::part_svc;
@@ -31,7 +33,7 @@ use FS::svc_forward;
 # for sending cancel emails in sub cancel
 use FS::Conf;
 
-@ISA = qw( FS::cust_main_Mixin FS::option_Common FS::Record );
+@ISA = qw( FS::m2m_Common FS::cust_main_Mixin FS::option_Common FS::Record );
 
 $DEBUG = 0;
 
@@ -157,6 +159,12 @@ If the additional field I<promo_code> is defined instead of I<pkgpart>, it
 will be used to look up the package definition and agent restrictions will be
 ignored.
 
+If the additional field I<refnum> is defined, an FS::pkg_referral record will
+be created and inserted.  Multiple FS::pkg_referral records can be created by
+setting I<refnum> to an array reference of refnums or a hash reference with
+refnums as keys.  If no I<refnum> is defined, a default FS::pkg_referral
+record will be created corresponding to cust_main.refnum.
+
 The following options are available: I<change>
 
 I<change>, if set true, supresses any referral credit to a referring customer.
@@ -183,6 +191,13 @@ sub insert {
     return $error;
   }
 
+  $self->refnum($self->cust_main->refnum) unless $self->refnum;
+  $self->refnum( [ $self->refnum ] ) unless ref($self->refnum);
+  $self->process_m2m( 'link_table'   => 'pkg_referral',
+                      'target_table' => 'part_referral',
+                      'params'       => $self->refnum,
+                    );
+
   #if ( $self->reg_code ) {
   #  my $reg_code = qsearchs('reg_code', { 'code' => $self->reg_code } );
   #  $error = $reg_code->delete;
@@ -315,7 +330,7 @@ sub replace {
   foreach my $method ( qw(adjourn expire) ) {  # How many reasons?
     if ($options{'reason'} && $new->$method && $old->$method ne $new->$method) {
       my $error = $new->insert_reason( 'reason' => $options{'reason'},
-                                       'date'      => $new->$method,
+                                       'date'   => $new->$method,
                                      );
       if ( $error ) {
         dbh->rollback if $oldAutoCommit;
@@ -441,9 +456,17 @@ Cancels and removes all services (see L<FS::cust_svc> and L<FS::part_svc>)
 in this package, then cancels the package itself (sets the cancel field to
 now).
 
-Available options are: I<quiet>
+Available options are:
+
+=over 4
+
+=item quiet - can be set true to supress email cancellation notices.
 
-I<quiet> can be set true to supress email cancellation notices.
+=item time -  can be set to cancel the package based on a specific future or historical date.  Using time ensures that the remaining amount is calculated correctly.  Note however that this is an immediate cancel and just changes the date.  You are PROBABLY looking to expire the account instead of using this.
+
+=item reason - can be set to a cancellation reason (see L<FS:reason>), either a reasonnum of an existing reason, or passing a hashref will create a new reason.  The hashref should have the following keys: typenum - Reason type (see L<FS::reason_type>, reason - Text of the new reason.
+
+=back
 
 If there is an error, returns the error, otherwise returns false.
 
@@ -451,7 +474,10 @@ If there is an error, returns the error, otherwise returns false.
 
 sub cancel {
   my( $self, %options ) = @_;
-  my $error;
+
+  warn "cust_pkg::cancel called with options".
+       join(', ', map { "$_: $options{$_}" } keys %options ). "\n"
+    if $DEBUG;
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -463,8 +489,12 @@ sub cancel {
   my $oldAutoCommit = $FS::UID::AutoCommit;
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
+  
+  my $cancel_time = $options{'time'} || time;
 
-  if ($options{'reason'}) {
+  my $error;
+
+  if ( $options{'reason'} ) {
     $error = $self->insert_reason( 'reason' => $options{'reason'} );
     if ( $error ) {
       dbh->rollback if $oldAutoCommit;
@@ -489,23 +519,22 @@ sub cancel {
     }
   }
 
-  # Add a credit for remaining service
-  my $remaining_value = $self->calc_remain();
-  if ( $remaining_value > 0 ) {
-    my $error = $self->cust_main->credit(
-      $remaining_value,
-      'Credit for unused time on '. $self->part_pkg->pkg,
-    );
-    if ($error) {
-      $dbh->rollback if $oldAutoCommit;
-      return "Error crediting customer \$$remaining_value for unused time on".
-             $self->part_pkg->pkg. ": $error";
-    }                                                                          
-  }                                                                            
-
   unless ( $self->getfield('cancel') ) {
+    # Add a credit for remaining service
+    my $remaining_value = $self->calc_remain(time=>$cancel_time);
+    if ( $remaining_value > 0 && !$options{'no_credit'} ) {
+      my $error = $self->cust_main->credit(
+                                           $remaining_value,
+                                           'Credit for unused time on '. $self->part_pkg->pkg,
+                                           );
+      if ($error) {
+        $dbh->rollback if $oldAutoCommit;
+        return "Error crediting customer \$$remaining_value for unused time on".
+          $self->part_pkg->pkg. ": $error";
+      }                                                                          
+    }                                                                            
     my %hash = $self->hash;
-    $hash{'cancel'} = time;
+    $hash{'cancel'} = $cancel_time;
     my $new = new FS::cust_pkg ( \%hash );
     $error = $new->replace( $self, options => { $self->options } );
     if ( $error ) {
@@ -533,18 +562,43 @@ sub cancel {
 
 }
 
-=item suspend
+=item cancel_if_expired [ NOW_TIMESTAMP ]
+
+Cancels this package if its expire date has been reached.
+
+=cut
+
+sub cancel_if_expired {
+  my $self = shift;
+  my $time = shift || time;
+  return '' unless $self->expire && $self->expire <= $time;
+  my $error = $self->cancel;
+  if ( $error ) {
+    return "Error cancelling expired pkg ". $self->pkgnum. " for custnum ".
+           $self->custnum. ": $error";
+  }
+  '';
+}
+
+=item suspend  [ OPTION => VALUE ... ]
 
 Suspends all services (see L<FS::cust_svc> and L<FS::part_svc>) in this
 package, then suspends the package itself (sets the susp field to now).
 
+Available options are:
+
+=over 4
+
+=item reason - can be set to a cancellation reason (see L<FS:reason>), either a reasonnum of an existing reason, or passing a hashref will create a new reason.  The hashref should have the following keys: typenum - Reason type (see L<FS::reason_type>, reason - Text of the new reason.
+
+=back
+
 If there is an error, returns the error, otherwise returns false.
 
 =cut
 
 sub suspend {
   my( $self, %options ) = @_;
-  my $error ;
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -557,7 +611,9 @@ sub suspend {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  if ($options{'reason'}) {
+  my $error;
+
+  if ( $options{'reason'} ) {
     $error = $self->insert_reason( 'reason' => $options{'reason'} );
     if ( $error ) {
       dbh->rollback if $oldAutoCommit;
@@ -796,6 +852,40 @@ sub cust_bill_pkg {
   qsearch( 'cust_bill_pkg', { 'pkgnum' => $self->pkgnum } );
 }
 
+=item cust_event
+
+Returns the new-style customer billing events (see L<FS::cust_event>) for this invoice.
+
+=cut
+
+#false laziness w/cust_bill.pm
+sub cust_event {
+  my $self = shift;
+  qsearch({
+    'table'     => 'cust_event',
+    'addl_from' => 'JOIN part_event USING ( eventpart )',
+    'hashref'   => { 'tablenum' => $self->pkgnum },
+    'extra_sql' => " AND eventtable = 'cust_pkg' ",
+  });
+}
+
+=item num_cust_event
+
+Returns the number of new-style customer billing events (see L<FS::cust_event>) for this invoice.
+
+=cut
+
+#false laziness w/cust_bill.pm
+sub num_cust_event {
+  my $self = shift;
+  my $sql =
+    "SELECT COUNT(*) FROM cust_event JOIN part_event USING ( eventpart ) ".
+    "  WHERE tablenum = ? AND eventtable = 'cust_pkg'";
+  my $sth = dbh->prepare($sql) or die  dbh->errstr. " preparing $sql"; 
+  $sth->execute($self->pkgnum) or die $sth->errstr. " executing $sql";
+  $sth->fetchrow_arrayref->[0];
+}
+
 =item cust_svc [ SVCPART ]
 
 Returns the services for this package, as FS::cust_svc objects (see
@@ -1023,7 +1113,7 @@ sub status {
 
 =item statuses
 
-Class method that returns the list of possible status strings for pacakges
+Class method that returns the list of possible status strings for packages
 (see L<the status method|/status>).  For example:
 
   @statuses = FS::cust_pkg->statuses();
@@ -1449,7 +1539,7 @@ sub cancel_sql {
 
 =over 4
 
-=item order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF [ RETURN_CUST_PKG_ARRAYREF ] ]
+=item order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF [ RETURN_CUST_PKG_ARRAYREF [ REFNUM ] ] ]
 
 CUSTNUM is a customer (see L<FS::cust_main>)
 
@@ -1466,10 +1556,16 @@ parameter.
 RETURN_CUST_PKG_ARRAYREF, if specified, will be filled in with the
 newly-created cust_pkg objects.
 
+REFNUM, if specified, will specify the FS::pkg_referral record to be created
+and inserted.  Multiple FS::pkg_referral records can be created by
+setting I<refnum> to an array reference of refnums or a hash reference with
+refnums as keys.  If no I<refnum> is defined, a default FS::pkg_referral
+record will be created corresponding to cust_main.refnum.
+
 =cut
 
 sub order {
-  my ($custnum, $pkgparts, $remove_pkgnum, $return_cust_pkg) = @_;
+  my ($custnum, $pkgparts, $remove_pkgnum, $return_cust_pkg, $refnum) = @_;
 
   my $conf = new FS::Conf;
 
@@ -1504,6 +1600,7 @@ sub order {
   foreach my $pkgpart (@$pkgparts) {
     my $cust_pkg = new FS::cust_pkg { custnum => $custnum,
                                       pkgpart => $pkgpart,
+                                      refnum  => $refnum,
                                       %hash,
                                     };
     $error = $cust_pkg->insert( 'change' => $change );
@@ -1557,11 +1654,54 @@ sub order {
   '';
 }
 
+=item insert_reason
+
+Associates this package with a (suspension or cancellation) reason (see
+L<FS::cust_pkg_reason>, possibly inserting a new reason on the fly (see
+L<FS::reason>).
+
+Available options are:
+
+=over 4
+
+=item reason - can be set to a cancellation reason (see L<FS:reason>), either a reasonnum of an existing reason, or passing a hashref will create a new reason.  The hashref should have the following keys: typenum - Reason type (see L<FS::reason_type>, reason - Text of the new reason.
+
+=item date
+
+=back
+
+If there is an error, returns the error, otherwise returns false.
+
+=cut
+
 sub insert_reason {
   my ($self, %options) = @_;
 
   my $otaker = $FS::CurrentUser::CurrentUser->username;
 
+  my $reasonnum;
+  if ( $options{'reason'} =~ /^(\d+)$/ ) {
+
+    $reasonnum = $1;
+
+  } elsif ( ref($options{'reason'}) ) {
+  
+    return 'Enter a new reason (or select an existing one)'
+      unless $options{'reason'}->{'reason'} !~ /^\s*$/;
+
+    my $reason = new FS::reason({
+      'reason_type' => $options{'reason'}->{'typenum'},
+      'reason'      => $options{'reason'}->{'reason'},
+    });
+    my $error = $reason->insert;
+    return $error if $error;
+
+    $reasonnum = $reason->reasonnum;
+
+  } else {
+    return "Unparsable reason: ". $options{'reason'};
+  }
+
   my $cust_pkg_reason =
     new FS::cust_pkg_reason({ 'pkgnum'    => $self->pkgnum,
                               'reasonnum' => $options{'reason'}, 
@@ -1570,7 +1710,8 @@ sub insert_reason {
                                               ? $options{'date'}
                                               : time,
                            });
-  return $cust_pkg_reason->insert;
+
+  $cust_pkg_reason->insert;
 }
 
 =item set_usage USAGE_VALUE_HASHREF 
index 9cd9bf8..53c6bac 100644 (file)
@@ -221,7 +221,8 @@ Currently unimplemented (accounting reasons).
 =cut
 
 sub replace {
-   return "Can't (yet?) modify cust_refund records!";
+  my $self = shift;
+  $self->SUPER::replace(@_);
 }
 
 =item check
@@ -307,6 +308,36 @@ sub unapplied {
 
 =back
 
+=head1 CLASS METHODS
+
+=over 4
+
+=item unapplied_sql
+
+Returns an SQL fragment to retreive the unapplied amount.
+
+=cut 
+
+sub unapplied_sql {
+  #my $class = shift;
+
+  "refund
+    - COALESCE( 
+                ( SELECT SUM(amount) FROM cust_credit_refund
+                    WHERE cust_refund.refundnum = cust_credit_refund.refundnum )
+                ,0
+              )
+    - COALESCE(
+                ( SELECT SUM(amount) FROM cust_pay_refund
+                    WHERE cust_refund.refundnum = cust_pay_refund.refundnum )
+                ,0
+              )
+  ";
+
+}
+
+=back
+
 =head1 BUGS
 
 Delete and replace methods.
index 7c9637e..e9dcee9 100644 (file)
@@ -1,34 +1,51 @@
 package FS::m2name_Common;
 
 use strict;
-use vars qw( @ISA $DEBUG );
+use vars qw( $DEBUG $me );
+use Carp;
 use FS::Schema qw( dbdef );
-use FS::Record qw( qsearch qsearchs ); #dbh );
-
-@ISA = qw( FS::Record );
+use FS::Record qw( qsearchs ); #qsearch dbh );
 
 $DEBUG = 0;
 
+$me = '[FS::m2name_Common]';
+
 =head1 NAME
 
-FS::m2name_Common - Base class for tables with a related table listing names
+FS::m2name_Common - Mixin class for tables with a related table listing names
 
 =head1 SYNOPSIS
 
 use FS::m2name_Common;
 
-@ISA = qw( FS::m2name_Common );
+@ISA = qw( FS::m2name_Common FS::Record );
 
 =head1 DESCRIPTION
 
-FS::m2name_Common is intended as a base class for classes which have a
+FS::m2name_Common is intended as a mixin class for classes which have a
 related table that lists names.
 
 =head1 METHODS
 
 =over 4
 
-=item process_m2name
+=item process_m2name OPTION => VALUE, ...
+
+Available options:
+
+link_table (required) - Table into which the records are inserted.
+
+num_col (optional) - Column in link_table which links to the primary key of the base table.  If not specified, it is assumed this has the same name.
+
+name_col (required) - Name of the column in link_table that stores the string names.
+
+names_list (required) - List reference of the possible string name values.
+
+params (required) - Hashref of keys and values, often passed as C<scalar($cgi->Vars)> from a form.  Processing is controlled by the B<param_style param> option.
+
+param_style (required) - Controls processing of B<params>.  I<'link_table.value checkboxes'> specifies that parameters keys are in the form C<link_table.name>, and the values are booleans controlling whether or not to insert that name into link_table.  I<'name_colN values'> specifies that parameter keys are in the form C<name_col0>, C<name_col1>, and so on, and values are the names inserted into link_table.
+
+args_callback (optional) - Coderef.  Optional callback that may modify arguments for insert and replace operations.  The callback is run with four arguments: the first argument is object being inserted or replaced (i.e. FS::I<link_table> object), the second argument is a prefix to use when retreiving CGI arguements from the params hashref, the third argument is the params hashref (see above), and the final argument is a listref of arguments that the callback should modify.
 
 =cut
 
@@ -42,21 +59,61 @@ sub process_m2name {
 
   my $link_static = $opt{'link_static'} || {};
 
+  warn "$me processing m2name from ". $self->table. ".$link_sourcekey".
+       " to $link_table\n"
+    if $DEBUG;
+
   foreach my $name ( @{ $opt{'names_list'} } ) {
 
+    warn "$me   checking $name\n" if $DEBUG;
+
+    my $name_col = $opt{'name_col'};
+
     my $obj = qsearchs( $link_table, {
         $link_sourcekey  => $self->$self_pkey(),
-        $opt{'name_col'} => $name,
+        $name_col        => $name,
         %$link_static,
     });
 
-    if ( $obj && ! $opt{'params'}->{"$link_table.$name"} ) {
+    my $param = '';
+    my $prefix = '';
+    if ( $opt{'param_style'} =~ /link_table.value\s+checkboxes/i ) {
+      #access_group.html style
+      my $paramname = "$link_table.$name";
+      $param = $opt{'params'}->{$paramname};
+    } elsif ( $opt{'param_style'} =~ /name_colN values/i ) {
+      #part_event.html style
+      
+      my @fields = grep { /^$name_col\d+$/ }
+                        keys %{$opt{'params'}};
+
+      $param = grep { $name eq $opt{'params'}->{$_} } @fields;
+
+      if ( $param ) {
+        #this depends on their being one condition per name...
+        #which needs to be enforced on the edit page...
+        #(it is on part_event and access_group edit)
+        foreach my $field (@fields) {
+          $prefix = "$field." if $name eq $opt{'params'}->{$field};
+        }
+        warn "$me     prefix $prefix\n" if $DEBUG;
+      }
+    } else { #??
+      croak "unknown param_style: ". $opt{'param_style'};
+      $param = $opt{'params'}->{$name};
+    }
+
+    if ( $obj && ! $param ) {
+
+      warn "$me   deleting $name\n" if $DEBUG;
 
       my $d_obj = $obj; #need to save $obj for below.
       my $error = $d_obj->delete;
       die "error deleting $d_obj for $link_table.$name: $error" if $error;
 
-    } elsif ( $opt{'params'}->{"$link_table.$name"} && ! $obj ) {
+    } elsif ( $param && ! $obj ) {
+
+      warn "$me   inserting $name\n" if $DEBUG;
 
       #ok to clobber it now (but bad form nonetheless?)
       #$obj = new "FS::$link_table" ( {
@@ -65,8 +122,33 @@ sub process_m2name {
         $opt{'name_col'} => $name,
         %$link_static,
       });
-      my $error = $obj->insert;
+
+      my @args = ();
+      if ( $opt{'args_callback'} ) { #edit/process/part_event.html
+        &{ $opt{'args_callback'} }( $obj,
+                                    $prefix,
+                                    $opt{'params'},
+                                    \@args
+                                  );
+      }
+
+      my $error = $obj->insert( @args );
       die "error inserting $obj for $link_table.$name: $error" if $error;
+
+    } elsif ( $param && $obj && $opt{'args_callback'} ) {
+
+      my @args = ();
+      if ( $opt{'args_callback'} ) { #edit/process/part_event.html
+        &{ $opt{'args_callback'} }( $obj,
+                                    $prefix,
+                                    $opt{'params'},
+                                    \@args
+                                  );
+      }
+
+      my $error = $obj->replace( $obj, @args );
+      die "error replacing $obj for $link_table.$name: $error" if $error;
+
     }
 
   }
index 2950b28..441e798 100644 (file)
@@ -79,10 +79,13 @@ sub insert {
   my $valuecol = $self->_option_valuecol;
 
   foreach my $optionname ( keys %{$options} ) {
+
+    my $optionvalue = $options->{$optionname};
+
     my $href = {
       $pkey     => $self->get($pkey),
       $namecol  => $optionname,
-      $valuecol => $options->{$optionname},
+      $valuecol => ( ref($optionvalue) || $optionvalue ),
     };
 
     #my $option_record = eval "new FS::$option_table \$href";
@@ -92,11 +95,15 @@ sub insert {
     #}
     my $option_record = "FS::$option_table"->new($href);
 
-    $error = $option_record->insert;
+    my @args = ();
+    push @args, $optionvalue if ref($optionvalue); #only hashes supported so far
+
+    $error = $option_record->insert(@args);
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
       return $error;
     }
+
   }
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
@@ -154,8 +161,8 @@ sub delete {
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
-If a list hash reference of options is supplied, part_export_option records are
-created or modified (see L<FS::part_export_option>).
+If a list hash reference of options is supplied, option records are created or
+modified.
 
 =cut
 
@@ -208,10 +215,15 @@ sub replace {
         $namecol => $optionname,
     } );
 
+    my $optionvalue = $options->{$optionname};
+
+    my %oldhash = $oldopt ? $oldopt->hash : ();
+
     my $href = {
+        %oldhash,
         $pkey     => $self->get($pkey),
         $namecol  => $optionname,
-        $valuecol => $options->{$optionname},
+        $valuecol => ( ref($optionvalue) || $optionvalue ),
     };
 
     #my $newopt = eval "new FS::$option_table \$href";
@@ -224,10 +236,15 @@ sub replace {
     my $opt_pkey = $newopt->primary_key;
 
     $newopt->$opt_pkey($oldopt->$opt_pkey) if $oldopt;
+
+    my @args = ();
+    push @args, $optionvalue if ref($optionvalue); #only hashes supported so far
+
     warn "FS::option_Common::replace: ".
          ( $oldopt ? "$newopt -> replace($oldopt)" : "$newopt -> insert" )
       if $DEBUG > 2;
-    my $error = $oldopt ? $newopt->replace($oldopt) : $newopt->insert;
+    my $error = $oldopt ? $newopt->replace($oldopt, @args)
+                        : $newopt->insert( @args);
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
       return $error;
index 683f484..1d48af9 100644 (file)
@@ -2,6 +2,7 @@ package FS::part_bill_event;
 
 use strict;
 use vars qw( @ISA $DEBUG @EXPORT_OK );
+use Carp qw(cluck confess);
 use FS::Record qw( dbh qsearch qsearchs );
 use FS::Conf;
 
@@ -37,10 +38,10 @@ FS::part_bill_event - Object methods for part_bill_event records
 
 =head1 DESCRIPTION
 
-An FS::part_bill_event object represents an invoice event definition -
-a callback which is triggered when an invoice is a certain amount of time
-overdue.  FS::part_bill_event inherits from
-FS::Record.  The following fields are currently supported:
+An FS::part_bill_event object represents a deprecated, old-style invoice event
+definition - a callback which is triggered when an invoice is a certain amount
+of time overdue.  FS::part_bill_event inherits from FS::Record.  The following
+fields are currently supported:
 
 =over 4
 
@@ -66,6 +67,11 @@ FS::Record.  The following fields are currently supported:
 
 =back
 
+=head1 NOTE
+
+Old-style invoice events are only useful for legacy migrations - if you are
+looking for current events see L<FS::part_event>.
+
 =head1 METHODS
 
 =over 4
@@ -226,6 +232,10 @@ Requires record and payby, but event_time and extra_sql are optional.
 
 sub due_events {
   my ($record, $payby, $event_time, $extra_sql) = @_;
+
+  #cluck "DEPRECATED: FS::part_bill_event::due_events called on $record";
+  confess "DEPRECATED: FS::part_bill_event::due_events called on $record";
+
   my $interval = 0;
   if ($record->_date){ 
     $event_time = time unless $event_time;
@@ -261,6 +271,10 @@ Should only be performed inside a transaction.
 
 sub do_event {
   my ($self, $object, %options) = @_;
+
+  #cluck "DEPRECATED: FS::part_bill_event::do_event called on $self";
+  confess "DEPRECATED: FS::part_bill_event::do_event called on $self";
+
   warn " calling event (". $self->eventcode. ") for " . $object->table . " " ,
     $object->get($object->dbdef_table->primary_key) . "\n" if $DEBUG > 1;
   my $oldAutoCommit = $FS::UID::AutoCommit;
diff --git a/FS/FS/part_event.pm b/FS/FS/part_event.pm
new file mode 100644 (file)
index 0000000..09104cd
--- /dev/null
@@ -0,0 +1,427 @@
+package FS::part_event;
+
+use strict;
+use vars qw( @ISA $DEBUG );
+use Carp qw(confess);
+use FS::Record qw( dbh qsearch qsearchs );
+use FS::option_Common;
+use FS::m2name_Common;
+use FS::Conf;
+use FS::part_event_option;
+use FS::part_event_condition;
+use FS::cust_event;
+use FS::agent;
+
+@ISA = qw( FS::m2name_Common FS::option_Common ); # FS::Record );
+$DEBUG = 0;
+
+=head1 NAME
+
+FS::part_event - Object methods for part_event records
+
+=head1 SYNOPSIS
+
+  use FS::part_event;
+
+  $record = new FS::part_event \%hash;
+  $record = new FS::part_event { 'column' => 'value' };
+
+  $error = $record->insert( { 'option' => 'value' } );
+  $error = $record->insert( \%options );
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+  $error = $record->do_event( $direct_object );
+  
+=head1 DESCRIPTION
+
+An FS::part_event object represents an event definition - a billing, collection
+or other callback which is triggered when certain customer, invoice, package or
+other conditions are met.  FS::part_event inherits from FS::Record.  The
+following fields are currently supported:
+
+=over 4
+
+=item eventpart - primary key
+
+=item agentnum - Optional agentnum (see L<FS::agent>)
+
+=item event - event name
+
+=item eventtable - table name against which this event is triggered; currently "cust_bill" (the traditional invoice events), "cust_main" (customer events) or "cust_pkg (package events)
+
+=item check_freq - how often events of this type are checked; currently "1d" (daily) and "1m" (monthly) are recognized.  Note that the apprioriate freeside-daily and/or freeside-monthly cron job needs to be in place.
+
+=item weight - ordering for events
+
+=item action - event action (like part_bill_event.plan - eventcode plan)
+
+=item disabled - Disabled flag, empty or `Y'
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new invoice event definition.  To add the invoice event definition to
+the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'part_event'; }
+
+=item insert [ HASHREF ]
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+If a list or hash reference of options is supplied, part_export_option records
+are created (see L<FS::part_event_option>).
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD [ HASHREF | OPTION => VALUE ... ]
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+If a list or hash reference of options is supplied, part_event_option
+records are created or modified (see L<FS::part_event_option>).
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid invoice event definition.  If
+there is an error, returns the error, otherwise returns false.  Called by the
+insert and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  $self->weight(0) unless $self->weight;
+
+  my $error = 
+       $self->ut_numbern('eventpart')
+    || $self->ut_text('event')
+    || $self->ut_enum('eventtable', [ 'cust_bill', 'cust_main', 'cust_pkg' ] )
+    || $self->ut_enum('check_freq', [ '1d', '1m' ])
+    || $self->ut_number('weight')
+    || $self->ut_alpha('action')
+    || $self->ut_enum('disabled', [ '', 'Y' ] )
+  ;
+  return $error if $error;
+
+  #XXX check action to make sure a module exists?
+  # well it'll die in _rebless...
+
+  $self->SUPER::check;
+}
+
+=item _rebless
+
+Reblesses the object into the FS::part_event::Action::ACTION class, where
+ACTION is the object's I<action> field.
+
+=cut
+
+sub _rebless {
+  my $self = shift;
+  my $action = $self->action or return $self;
+  #my $class = ref($self). "::$action";
+  my $class = "FS::part_event::Action::$action";
+  eval "use $class";
+  die $@ if $@;
+  bless($self, $class); # unless $@;
+  $self;
+}
+
+=item part_event_condition
+
+Returns the conditions associated with this event, as FS::part_event_condition
+objects (see L<FS::part_event_condition>)
+
+=cut
+
+sub part_event_condition {
+  my $self = shift;
+  qsearch( 'part_event_condition', { 'eventpart' => $self->eventpart } );
+}
+
+=item new_cust_event OBJECT
+
+Creates a new customer event (see L<FS::cust_event>) for the provided object.
+
+=cut
+
+sub new_cust_event {
+  my( $self, $object ) = @_;
+
+  confess "**** $object is not a ". $self->eventtable
+    if ref($object) ne "FS::". $self->eventtable;
+
+  my $pkey = $object->primary_key;
+
+  new FS::cust_event {
+    'eventpart' => $self->eventpart,
+    'tablenum'  => $object->$pkey(),
+    '_date'     => time, #i think we always want the real "now" here.
+    'status'    => 'new',
+  };
+}
+
+#surely this doesn't work
+sub reasontext { confess "part_event->reasontext deprecated"; }
+#=item reasontext
+#
+#Returns the text of any reason associated with this event.
+#
+#=cut
+#
+#sub reasontext {
+#  my $self = shift;
+#  my $r = qsearchs('reason', { 'reasonnum' => $self->reason });
+#  if ($r){
+#    $r->reason;
+#  }else{
+#    '';
+#  }
+#}
+
+=item agent 
+
+Returns the associated agent for this event, if any, as an FS::agent object.
+
+=cut
+
+sub agent {
+  my $self = shift;
+  qsearchs('agent', { 'agentnum' => $self->agentnum } );
+}
+
+=item templatename
+
+Returns the alternate invoice template name, if any, or false if there is
+no alternate template for this event.
+
+=cut
+
+sub templatename {
+
+  my $self = shift;
+  if (    $self->action   =~ /^cust_bill_send_(alternate|agent)$/
+          && (    $self->option('agent_templatename')
+               || $self->option('templatename')       )
+     )
+  {
+       $self->option('agent_templatename')
+    || $self->option('templatename');
+
+  } else {
+    '';
+  }
+}
+
+=back
+
+=head1 CLASS METHODS
+
+=over 4
+
+=item eventtable_labels
+
+Returns a hash reference of labels for eventtable values,
+i.e. 'cust_main'=>'Customer'
+
+=cut
+
+sub eventtable_labels {
+  #my $class = shift;
+
+  tie my %hash, 'Tie::IxHash',
+    'cust_pkg'       => 'Package',
+    'cust_bill'      => 'Invoice',
+    'cust_main'      => 'Customer',
+    'cust_pay_batch' => 'Batch payment',
+  ;
+
+  \%hash
+}
+
+=item eventtable_pkey_sql
+
+Returns a hash reference of full SQL primary key names for eventtable values,
+i.e. 'cust_main'=>'cust_main.custnum'
+
+=cut
+
+sub eventtable_pkey_sql {
+  #my $class = shift;
+
+  my %hash = (
+    'cust_main'      => 'cust_main.custnum',
+    'cust_bill'      => 'cust_bill.invnum',
+    'cust_pkg'       => 'cust_pkg.pkgnum',
+    'cust_pay_batch' => 'cust_pay_batch.paybatchnum',
+  );
+
+  \%hash;
+}
+
+
+=item eventtables
+
+Returns a list of eventtable values (default ordering; suited for display).
+
+=cut
+
+sub eventtables {
+  my $class = shift;
+  my $eventtables = $class->eventtable_labels;
+  keys %$eventtables;
+}
+
+=item eventtables_runorder
+
+Returns a list of eventtable values (run order).
+
+=cut
+
+sub eventtables_runorder {
+  shift->eventtables; #same for now
+}
+
+=item check_freq_labels
+
+Returns a hash reference of labels for check_freq values,
+i.e. '1d'=>'daily'
+
+=cut
+
+sub check_freq_labels {
+  #my $class = shift;
+
+  #Tie::IxHash??
+  {
+    '1d' => 'daily',
+    '1m' => 'monthly',
+  };
+}
+
+=item actions [ EVENTTABLE ]
+
+Return information about the available actions.  If an eventtable is specified,
+only return information about actions available for that eventtable.
+
+Information is returned as key-value pairs.  Keys are event names.  Values are
+hashrefs with the following keys:
+
+=over 4
+
+=item description
+
+=item eventtable_hashref
+
+=item option_fields
+
+=item default_weight
+
+=item deprecated
+
+=back
+
+See L<FS::part_event::Action> for more information.
+
+=cut
+
+#false laziness w/part_event_condition.pm
+#some false laziness w/part_export & part_pkg
+my %actions;
+foreach my $INC ( @INC ) {
+  foreach my $file ( glob("$INC/FS/part_event/Action/*.pm") ) {
+    warn "attempting to load Action from $file\n" if $DEBUG;
+    $file =~ /\/(\w+)\.pm$/ or do {
+      warn "unrecognized file in $INC/FS/part_event/Action/: $file\n";
+      next;
+    };
+    my $mod = $1;
+    eval "use FS::part_event::Action::$mod;";
+    if ( $@ ) {
+      die "error using FS::part_event::Action::$mod (skipping): $@\n" if $@;
+      #warn "error using FS::part_event::Action::$mod (skipping): $@\n" if $@;
+      #next;
+    }
+    $actions{$mod} = {
+      ( map { $_ => "FS::part_event::Action::$mod"->$_() }
+            qw( description eventtable_hashref default_weight deprecated )
+            #option_fields_hashref
+      ),
+      'option_fields' => [ "FS::part_event::Action::$mod"->option_fields() ],
+    };
+  }
+}
+
+sub actions {
+  my( $class, $eventtable ) = @_;
+  (
+    map  { $_ => $actions{$_} }
+    sort { $actions{$a}->{'default_weight'}<=>$actions{$b}->{'default_weight'} }
+    $class->all_actions( $eventtable )
+  );
+
+}
+
+=item all_actions [ EVENTTABLE ]
+
+Returns a list of just the action names
+
+=cut
+
+sub all_actions {
+  my ( $class, $eventtable ) = @_;
+
+  grep { !$eventtable || $actions{$_}->{'eventtable_hashref'}{$eventtable} }
+       keys %actions
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<FS::part_event_option>, L<FS::part_event_condition>, L<FS::cust_main>,
+L<FS::cust_pkg>, L<FS::cust_bill>, L<FS::cust_bill_event>, L<FS::Record>,
+schema.html from the base documentation.
+
+=cut
+
+1;
+
diff --git a/FS/FS/part_event/Action.pm b/FS/FS/part_event/Action.pm
new file mode 100644 (file)
index 0000000..bdb9df6
--- /dev/null
@@ -0,0 +1,224 @@
+package FS::part_event::Action;
+
+use strict;
+use base qw( FS::part_event );
+use Tie::IxHash;
+
+=head1 NAME
+
+FS::part_event::Action - Base class for event actions
+
+=head1 SYNOPSIS
+
+package FS::part_event::Action::myaction;
+
+use base FS::part_event::Action;
+
+=head1 DESCRIPTION
+
+FS::part_event::Action is a base class for event action classes.
+
+=head1 METHODS
+
+These methods are implemented in each action class.
+
+=over 4
+
+=item description
+
+Action classes must define a description method.  This method should return a
+scalar description of the action.
+
+=item eventtable_hashref
+
+Action classes must define a eventtable_hashref method if they can only be
+triggered against some kinds of tables.  This method should return a hash
+reference of eventtables (values set true indicate the action can be performed):
+
+  sub eventtable_hashref {
+    { 'cust_main'      => 1,
+      'cust_bill'      => 1,
+      'cust_pkg'       => 0,
+      'cust_pay_batch' => 0,
+    };
+  }
+
+=cut
+
+#fallback
+sub eventtable_hashref {
+    { 'cust_main'      => 1,
+      'cust_bill'      => 1,
+      'cust_pkg'       => 1,
+      'cust_pay_batch' => 1,
+    };
+}
+
+=item option_fields
+
+Action classes may define an option_fields method to indicate that they
+accept one or more options.
+
+This method should return a list of option names and option descriptions.
+Each option description can be a scalar description, for simple options, or a
+hashref with the following values:
+
+=item label - Description
+
+=item type - Currently text, money, checkbox, checkbox-multiple, select, select-agent, select-pkg_class, select-part_referral, select-table, fixed, hidden, (others can be implemented as httemplate/elements/tr-TYPE.html mason components).  Defaults to text.
+
+=item size - Size for text fields
+
+=item options - For checkbox-multiple and select, a list reference of available option values.
+
+=item option_labels - For select, a hash reference of availble option values and labels.
+
+=item value - for checkbox, fixed, hidden
+
+=item table - for select-table
+
+=item name_col - for select-table
+
+=item NOTE: See httemplate/elements/select-table.html for a full list of the optinal options for the select-table type
+
+=back
+
+NOTE: A database connection is B<not> yet available when this subroutine is
+executed.
+
+Example:
+
+  sub option_fields {
+    (
+      'field'         => 'description',
+
+      'another_field' => { 'label'=>'Amount', 'type'=>'money', },
+
+      'third_field'   => { 'label'         => 'Types',
+                           'type'          => 'select',
+                           'options'       => [ 'h', 's' ],
+                           'option_labels' => { 'h' => 'Happy',
+                                                's' => 'Sad',
+                                              },
+    );
+  }
+
+=cut
+
+#fallback
+sub option_fields {
+  ();
+}
+
+=item default_weight
+
+Action classes may define a default weighting.  Weights control execution order
+relative to other actions (that are triggered at the same time).
+
+=cut
+
+#fallback
+sub default_weight {
+  100;
+}
+
+=item deprecated
+
+Action classes may define a deprecated method that returns true, indicating
+that this action is deprecated.
+
+=cut
+
+#default
+sub deprecated {
+  0;
+}
+
+=item do_action CUSTOMER_EVENT_OBJECT
+
+Action classes must define an action method.  This method is triggered if
+all conditions have been met.
+
+The object which triggered the event (an FS::cust_main, FS::cust_bill or
+FS::cust_pkg object) is passed as an argument.
+
+To retreive option values, call the option method on the desired option, i.e.:
+
+  my( $self, $cust_object ) = @_;
+  $value_of_field = $self->option('field');
+
+To indicate sucessful completion, simply return.  Optionally, you can return a
+string of information status information about the sucessful completion, or
+simply return the empty string.
+
+To indicate a failure and that this event should retry, die with the desired
+error message.
+
+=back
+
+=head1 BASE METHODS
+
+These methods are defined in the base class for use in action classes.
+
+=over 4
+
+=item cust_main CUST_OBJECT
+
+Return the customer object (see L<FS::cust_main>) associated with the provided
+object (the object itself if it is already a customer object).
+
+=cut
+
+sub cust_main {
+  my( $self, $cust_object ) = @_;
+
+  $cust_object->isa('FS::cust_main') ? $cust_object : $cust_object->cust_main;
+
+}
+
+=item option_label OPTIONNAME
+
+Returns the label for the specified option name.
+
+=cut
+
+sub option_label {
+  my( $self, $optionname ) = @_;
+
+  my %option_fields = $self->option_fields;
+
+  ref( $option_fields{$optionname} )
+    ? $option_fields{$optionname}->{'label'}
+    : $option_fields{$optionname}
+  or $optionname;
+}
+
+=item option_fields_hashref
+
+Returns the option fields as an (ordered) hash reference.
+
+=cut
+
+sub option_fields_hashref {
+  my $self = shift;
+  tie my %hash, 'Tie::IxHash', $self->option_fields;
+}
+
+=item option_fields_listref
+
+Returns just the option field names as a list reference.
+
+=cut
+
+sub option_fields_listref {
+  my $self = shift;
+  my $hashref = $self->option_fields_hashref;
+  [ keys %$hashref ];
+}
+
+=back
+
+=cut
+
+1;
+
diff --git a/FS/FS/part_event/Action/addpost.pm b/FS/FS/part_event/Action/addpost.pm
new file mode 100644 (file)
index 0000000..e0e3fa8
--- /dev/null
@@ -0,0 +1,24 @@
+package FS::part_event::Action::addpost;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Add postal invoicing';
+}
+
+sub default_weight {
+  20;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  $cust_main->invoicing_list_addpost();
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/apply.pm b/FS/FS/part_event/Action/apply.pm
new file mode 100644 (file)
index 0000000..f91c604
--- /dev/null
@@ -0,0 +1,28 @@
+package FS::part_event::Action::apply;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Apply unapplied payments and credits';
+}
+
+sub deprecated {
+  1;
+}
+
+sub default_weight {
+  70;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  $cust_main->apply_payments_and_credits;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/bill.pm b/FS/FS/part_event/Action/bill.pm
new file mode 100644 (file)
index 0000000..fec025f
--- /dev/null
@@ -0,0 +1,30 @@
+package FS::part_event::Action::bill;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  #'Generate invoices (normally only used with a <i>Late Fee</i> event)';
+  'Generate invoices (normally only used with a Late Fee event)';
+}
+
+sub deprecated {
+  1;
+}
+
+sub default_weight {
+  60;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my $error = $cust_main->bill;
+  die $error if $error;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cancel.pm b/FS/FS/part_event/Action/cancel.pm
new file mode 100644 (file)
index 0000000..94f3146
--- /dev/null
@@ -0,0 +1,35 @@
+package FS::part_event::Action::cancel;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Cancel';
+}
+
+sub option_fields {
+  ( 
+    'reasonnum' => { 'label'        => 'Reason',
+                     'type'         => 'select-reason',
+                     'reason_class' => 'C',
+                   },
+  );
+
+};
+
+sub default_weight {
+  20;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my $error = $cust_main->cancel( 'reason' => $self->option('reasonnum') );
+  die $error if $error;
+  
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/collect.pm b/FS/FS/part_event/Action/collect.pm
new file mode 100644 (file)
index 0000000..fa94b7d
--- /dev/null
@@ -0,0 +1,30 @@
+package FS::part_event::Action::collect;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  #'Collect on invoices (normally only used with a <i>Late Fee</i> and <i>Generate Invoice</i> events)';
+  'Collect on invoices (normally only used with a Late Fee and Generate Invoice events)';
+}
+
+sub deprecated {
+  1;
+}
+
+sub default_weight {
+  80;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my $error = $cust_main->collect;
+  die $error if $error;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_batch.pm b/FS/FS/part_event/Action/cust_bill_batch.pm
new file mode 100644 (file)
index 0000000..aec0925
--- /dev/null
@@ -0,0 +1,31 @@
+package FS::part_event::Action::cust_bill_batch;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Add card or check to a pending batch';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  40;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->batch_card; # ( %options ); #XXX options??
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_comp.pm b/FS/FS/part_event/Action/cust_bill_comp.pm
new file mode 100644 (file)
index 0000000..636a66d
--- /dev/null
@@ -0,0 +1,34 @@
+package FS::part_event::Action::cust_bill_comp;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Pay invoice with a complimentary "payment"';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  30;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  my $error = $cust_bill->comp;
+  die $error if $error;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_fee_percent.pm b/FS/FS/part_event/Action/cust_bill_fee_percent.pm
new file mode 100644 (file)
index 0000000..100fc8b
--- /dev/null
@@ -0,0 +1,40 @@
+package FS::part_event::Action::cust_bill_fee_percent;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Late fee (percentage of invoice)';
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  ( 
+    'percent' => { label=>'Percent', size=>2, },
+    'reason'  => 'Reason',
+  );
+}
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  my $error = $cust_main->charge(
+    sprintf('%.2f', $cust_bill->owed * $self->option('percent') / 100 ),
+    $self->option('reason')
+  );
+  die $error if $error;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_realtime_card.pm b/FS/FS/part_event/Action/cust_bill_realtime_card.pm
new file mode 100644 (file)
index 0000000..471c946
--- /dev/null
@@ -0,0 +1,32 @@
+package FS::part_event::Action::cust_bill_realtime_card;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  #'Run card with a <a href="http://420.am/business-onlinepayment/">Business::OnlinePayment</a> realtime gateway';
+  'Run card with a Business::OnlinePayment realtime gateway';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  30;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->realtime_card;
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_realtime_check.pm b/FS/FS/part_event/Action/cust_bill_realtime_check.pm
new file mode 100644 (file)
index 0000000..9a52830
--- /dev/null
@@ -0,0 +1,32 @@
+package FS::part_event::Action::cust_bill_realtime_check;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  #'Run check with a <a href="http://420.am/business-onlinepayment/">Business::OnlinePayment</a> realtime gateway';
+  'Run check with a Business::OnlinePayment realtime gateway';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  30;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->realtime_ach;
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_realtime_lec.pm b/FS/FS/part_event/Action/cust_bill_realtime_lec.pm
new file mode 100644 (file)
index 0000000..db091da
--- /dev/null
@@ -0,0 +1,32 @@
+package FS::part_event::Action::cust_bill_realtime_lec;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  #'Run phone bill ("LEC") billing with a <a href="http://420.am/business-onlinepayment/">Business::OnlinePayment</a> realtime gateway';
+  'Run phone bill ("LEC") billing with a Business::OnlinePayment realtime gateway';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  30;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->realtime_lec;
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_send.pm b/FS/FS/part_event/Action/cust_bill_send.pm
new file mode 100644 (file)
index 0000000..9330c61
--- /dev/null
@@ -0,0 +1,27 @@
+package FS::part_event::Action::cust_bill_send;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Send invoice (email/print/fax)';
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->send;
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_send_agent.pm b/FS/FS/part_event/Action/cust_bill_send_agent.pm
new file mode 100644 (file)
index 0000000..fcf0007
--- /dev/null
@@ -0,0 +1,44 @@
+package FS::part_event::Action::cust_bill_send_agent;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Send invoice (email/print/fax) with alternate template, for specific agents';
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  (
+    'agentnum'           => { label    => 'Only for agent(s)',
+                              type     => 'select-agent',
+                              multiple => 1
+                            },
+    'agent_templatename' => { label    => 'Template',
+                              type     => 'select-invoice_template',
+                            },
+    'agent_invoice_from' => 'Invoice email From: address',
+  );
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->send(
+    $self->option('agent_templatename'),
+    [ split(/\s*,\s*/, $self->option('agentnum') ) ],
+    $self->option('agent_invoice_from'),
+  );
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_send_alternate.pm b/FS/FS/part_event/Action/cust_bill_send_alternate.pm
new file mode 100644 (file)
index 0000000..6afb89a
--- /dev/null
@@ -0,0 +1,35 @@
+package FS::part_event::Action::cust_bill_send_alternate;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Send invoice (email/print/fax) with alternate template';
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  (
+    'templatename' => { label    => 'Template',
+                        type     => 'select-invoice_template',
+                      },
+  );
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->send( $self->option('templatename') );
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_send_csv_ftp.pm b/FS/FS/part_event/Action/cust_bill_send_csv_ftp.pm
new file mode 100644 (file)
index 0000000..db3554e
--- /dev/null
@@ -0,0 +1,56 @@
+package FS::part_event::Action::cust_bill_send_csv_ftp;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Upload CSV invoice data to an FTP server';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  (
+    'ftpformat'   => { label   => 'Format',
+                       type    =>'select',
+                       options => ['default', 'billco'],
+                       option_labels => { 'default' => 'Default',
+                                          'billco'  => 'Billco',
+                                        },
+                     },
+    'ftpserver'   => 'FTP server',
+    'ftpusername' => 'FTP username',
+    'ftppassword' => 'FTP password',
+    'ftpdir'      => 'FTP directory',
+  );
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->send_csv(
+    'protocol'   => 'ftp',
+    'server'     => $self->option('ftpserver'),
+    'username'   => $self->option('ftpusername'),
+    'password'   => $self->option('ftppassword'),
+    'dir'        => $self->option('ftpdir'),
+    'format'     => $self->option('ftpformat'),
+  );
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_send_if_newest.pm b/FS/FS/part_event/Action/cust_bill_send_if_newest.pm
new file mode 100644 (file)
index 0000000..916983e
--- /dev/null
@@ -0,0 +1,40 @@
+package FS::part_event::Action::cust_bill_send_if_newest;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Send invoice (email/print/fax) with alternate template, if it is still the newest invoice (useful for late notices - set to 31 days or later)';
+}
+
+# XXX is this handled better by something against customers??
+#sub deprecated {
+#  1;
+#}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  (
+    'if_newest_templatename' => { label    => 'Template',
+                                  type     => 'select-invoice_template',
+                                },
+  );
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->send( $self->option('templatename') );
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_spool_csv.pm b/FS/FS/part_event/Action/cust_bill_spool_csv.pm
new file mode 100644 (file)
index 0000000..4300b61
--- /dev/null
@@ -0,0 +1,64 @@
+package FS::part_event::Action::cust_bill_spool_csv;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Spool CSV invoice data';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  (
+    'spoolformat'       => { label   => 'Format',
+                             type    => 'select',
+                             options => ['default', 'billco'],
+                             option_labels => { 'default' => 'Default',
+                                                'billco'  => 'Billco',
+                                              },
+                           },
+    'spooldest'         => { label   => 'For destination',
+                             type    => 'select',
+                             options => [ '', qw( POST EMAIL FAX ) ],
+                             option_labels => { ''      => '(all)',
+                                                'POST'  => 'Postal Mail',
+                                                'EMAIL' => 'Email',
+                                                'FAX'   => 'Fax',
+                                              },
+                           },
+    'spoolbalanceover'  => { label =>
+                               'If balance (this invoice and previous) over',
+                             type  => 'money',
+                           },
+    'spoolagent_spools' => { label => 'Individual per-agent spools',
+                             type  => 'checkbox',
+                           },
+  );
+}
+
+sub default_weight {
+  50;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  $cust_bill->spool_csv(
+    'format'       => $self->option('spoolformat'),
+    'dest'         => $self->option('spooldest'),
+    'balanceover'  => $self->option('spoolbalanceover'),
+    'agent_spools' => $self->option('spoolagent_spools'),
+  );
+}
+
+1;
diff --git a/FS/FS/part_event/Action/cust_bill_suspend_if_balance.pm b/FS/FS/part_event/Action/cust_bill_suspend_if_balance.pm
new file mode 100644 (file)
index 0000000..6559949
--- /dev/null
@@ -0,0 +1,48 @@
+package FS::part_event::Action::cust_bill_suspend_if_balance;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Suspend if balance (this invoice and previous) over';
+}
+
+sub deprecated {
+  1;
+}
+
+sub eventtable_hashref {
+  { 'cust_bill' => 1 };
+}
+
+sub option_fields {
+  ( 
+    'balanceover' => { label=>'Balance over', type=>'money', }, # size=>7 },
+    'reasonnum' => { 'label'        => 'Reason',
+                     'type'         => 'select-reason',
+                     'reason_class' => 'S',
+                   },
+  );
+};
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_bill ) = @_;
+
+  #my $cust_main = $self->cust_main($cust_bill);
+  my $cust_main = $cust_bill->cust_main;
+
+  my @err = $cust_bill->cust_suspend_if_balance_over(
+    $self->option('balanceover'),
+    'reason' => $self->option('reasonnum'),
+  );
+
+  die join(' / ', @err) if scalar(@err);
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/fee.pm b/FS/FS/part_event/Action/fee.pm
new file mode 100644 (file)
index 0000000..81a8449
--- /dev/null
@@ -0,0 +1,33 @@
+package FS::part_event::Action::fee;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Late fee (flat)';
+}
+
+sub option_fields {
+  ( 
+    'charge' => { label=>'Amount', type=>'money', }, # size=>7, },
+    'reason' => 'Reason',
+  );
+};
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my $error = $cust_main->charge( $self->option('charge'), $self->option('reason') );
+
+  die $error if $error;
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/suspend.pm b/FS/FS/part_event/Action/suspend.pm
new file mode 100644 (file)
index 0000000..ec440ff
--- /dev/null
@@ -0,0 +1,36 @@
+package FS::part_event::Action::suspend;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Suspend';
+}
+
+sub option_fields {
+  ( 
+    'reasonnum' => { 'label'        => 'Reason',
+                     'type'         => 'select-reason',
+                     'reason_class' => 'S',
+                   },
+  );
+};
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my @err = $cust_main->suspend( 'reason' => $self->option('reasonnum') );
+
+  die join(' / ', @err) if scalar(@err);
+
+  '';
+
+}
+
+1;
diff --git a/FS/FS/part_event/Action/suspend_if_pkgpart.pm b/FS/FS/part_event/Action/suspend_if_pkgpart.pm
new file mode 100644 (file)
index 0000000..9bdc9be
--- /dev/null
@@ -0,0 +1,42 @@
+package FS::part_event::Action::suspend_if_pkgpart;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Suspend packages';
+}
+
+sub option_fields {
+  ( 
+    'if_pkgpart' => { 'label'    => 'Suspend packages:',
+                      'type'     => 'select-part_pkg',
+                      'multiple' => 1,
+                    },
+    'reasonnum' => { 'label'        => 'Reason',
+                     'type'         => 'select-reason',
+                     'reason_class' => 'S',
+                   },
+  );
+};
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my @err = $cust_main->suspend_if_pkgpart( {
+    'pkgparts' => [ split(/\s*,\s*/, $self->option('if_pkgpart') ) ],
+    'reason'   => $self->option('reasonnum'),
+  } );
+
+  die join(' / ', @err) if scalar(@err);
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Action/suspend_unless_pkgpart.pm b/FS/FS/part_event/Action/suspend_unless_pkgpart.pm
new file mode 100644 (file)
index 0000000..f9bf1e8
--- /dev/null
@@ -0,0 +1,42 @@
+package FS::part_event::Action::suspend_unless_pkgpart;
+
+use strict;
+use base qw( FS::part_event::Action );
+
+sub description {
+  'Suspend packages except';
+}
+
+sub option_fields {
+  ( 
+    'unless_pkgpart' => { 'label'    => 'Suspend packages except:',
+                          'type'     => 'select-part_pkg',
+                          'multiple' => 1,
+                        },
+    'reasonnum' => { 'label'        => 'Reason',
+                     'type'         => 'select-reason',
+                     'reason_class' => 'S',
+                   },
+  );
+};
+
+sub default_weight {
+  10;
+}
+
+sub do_action {
+  my( $self, $cust_object ) = @_;
+
+  my $cust_main = $self->cust_main($cust_object);
+
+  my @err = $cust_main->suspend_unless_pkgpart( {
+    'pkgparts' => [ split(/\s*,\s*/, $self->option('unless_pkgpart') ) ],
+    'reason'   => $self->option('reasonnum'),
+  } );
+
+  die join(' / ', @err) if scalar(@err);
+
+  '';
+}
+
+1;
diff --git a/FS/FS/part_event/Condition.pm b/FS/FS/part_event/Condition.pm
new file mode 100644 (file)
index 0000000..268b9e6
--- /dev/null
@@ -0,0 +1,268 @@
+package FS::part_event::Condition;
+
+use strict;
+use base qw( FS::part_event_condition );
+
+=head1 NAME
+
+FS::part_event::Condition - Base class for event conditions
+
+=head1 SYNOPSIS
+
+package FS::part_event::Condition::mycondition;
+
+use base FS::part_event::Condition;
+
+=head1 DESCRIPTION
+
+FS::part_event::Condition is a base class for event conditions classes.
+
+=head1 METHODS
+
+These methods are implemented in each condition class.
+
+=over 4
+
+=item description
+
+Condition classes must define a description method.  This method should return
+a scalar description of the condition.
+
+=item eventtable_hashref
+
+Condition classes must define an eventtable_hashref method if they can only be
+tested against some kinds of tables. This method should return a hash reference
+of eventtables (values set true indicate the condition can be tested):
+
+  sub eventtable_hashref {
+    { 'cust_main'      => 1,
+      'cust_bill'      => 1,
+      'cust_pkg'       => 0,
+      'cust_pay_batch' => 0,
+    };
+  }
+
+=cut
+
+#fallback
+sub eventtable_hashref {
+    { 'cust_main'      => 1,
+      'cust_bill'      => 1,
+      'cust_pkg'       => 1,
+      'cust_pay_batch' => 1,
+    };
+}
+
+=item option_fields
+
+Condition classes may define an option_fields method to indicate that they
+accept one or more options.
+
+This method should return a list of option names and option descriptions.
+Each option description can be a scalar description, for simple options, or a
+hashref with the following values:
+
+=over 4
+
+=item label - Description
+
+=item type - Currently text, money, checkbox, checkbox-multiple, select, select-agent, select-pkg_class, select-part_referral, select-table, fixed, hidden, (others can be implemented as httemplate/elements/tr-TYPE.html mason components).  Defaults to text.
+
+=item options - For checkbox-multiple and select, a list reference of available option values.
+
+=item option_labels - For checkbox-multiple (and select?), a hash reference of availble option values and labels.
+
+=item value - for checkbox, fixed, hidden (also a default for text, money, more?)
+
+=item table - for select-table
+
+=item name_col - for select-table
+
+=item NOTE: See httemplate/elements/select-table.html for a full list of the optinal options for the select-table type
+
+=back
+
+NOTE: A database connection is B<not> yet available when this subroutine is
+executed.
+
+Example:
+
+  sub option_fields {
+    (
+      'field'         => 'description',
+
+      'another_field' => { 'label'=>'Amount', 'type'=>'money', },
+
+      'third_field'   => { 'label'         => 'Types',
+                           'type'          => 'checkbox-multiple',
+                           'options'       => [ 'h', 's' ],
+                           'option_labels' => { 'h' => 'Happy',
+                                                's' => 'Sad',
+                                              },
+    );
+  }
+
+=cut
+
+#fallback
+sub option_fields {
+  ();
+}
+
+=item condition CUSTOMER_EVENT_OBJECT
+
+Condition classes must define a condition method.  This method is evaluated
+to determine if the condition has been met.  The object which triggered the
+event (an FS::cust_main, FS::cust_bill or FS::cust_pkg object) is passed as
+the first argument.  Additional arguments are list of key-value pairs.
+
+To retreive option values, call the option method on the desired option, i.e.:
+
+  my( $self, $cust_object, %opts ) = @_;
+  $value_of_field = $self->option('field');
+
+Available additional arguments:
+
+  $time = $opt{'time'}; #use this instead of time or $^T
+
+Return a true value if the condition has been met, and a false value if it has
+not.
+
+=item condition_sql EVENTTABLE
+
+Condition classes may optionally define a condition_sql method.  This B<class>
+method should return an SQL fragment that tests for this condition.  The
+fragment is evaluated and a true value of this expression indicates that the
+condition has been met.  The event table (cust_main, cust_bill or cust_pkg) is
+passed as an argument.
+
+This method is used for optimizing event queries.  You may want to add indices
+for any columns referenced.  It is acceptable to return an SQL fragment which
+partially tests the condition; doing so will still reduce the number of
+records which much be returned and tested with the B<condition> method.
+
+=cut
+
+# fallback.
+sub condition_sql {
+  my( $class, $eventtable ) = @_;
+  #...
+  'true';
+}
+
+=item implicit_flag
+
+This is used internally by the I<once> and I<balance> conditions.  You probably
+do B<not> want to define this method for new custom conditions, unless you're
+sure you want B<every> new action to start with your condition.
+
+Condition classes may define an implicit_flag method that returns true to
+indicate that all new events should start with this condition.  (Currently,
+condition classes which do so should be applicable to all kinds of
+I<eventtable>s.)  The numeric value of the flag also defines the ordering of
+implicit conditions.
+
+=cut
+
+#fallback
+sub implicit_flag { 0; }
+
+=item remove_warning
+
+Again, used internally by the I<once> and I<balance> conditions; probably not
+a good idea for new custom conditions.
+
+Condition classes may define a remove_warning method containing a string
+warning message to enable a confirmation dialog triggered when the condition
+is removed from an event.
+
+=cut
+
+#fallback
+sub remove_warning { ''; }
+
+=item order_sql
+
+This is used internally by the I<balance_age> and I<cust_bill_age> conditions
+to declare ordering; probably not of general use for new custom conditions.
+
+=item order_sql_weight
+
+In conjunction with order_sql, this defines which order the ordering fragments
+supplied by different B<order_sql> should be used.
+
+=cut
+
+sub order_sql_weight { ''; }
+
+=back
+
+=head1 BASE METHODS
+
+These methods are defined in the base class for use in condition classes.
+
+=over 4 
+
+=item cust_main CUST_OBJECT
+
+Return the customer object (see L<FS::cust_main>) associated with the provided
+object (the object itself if it is already a customer object).
+
+=cut
+
+sub cust_main {
+  my( $self, $cust_object ) = @_;
+
+  $cust_object->isa('FS::cust_main') ? $cust_object : $cust_object->cust_main;
+
+}
+
+=item option_label OPTIONNAME
+
+Returns the label for the specified option name.
+
+=cut
+
+sub option_label {
+  my( $self, $optionname ) = @_;
+
+  my %option_fields = $self->option_fields;
+
+  ref( $option_fields{$optionname} )
+    ? $option_fields{$optionname}->{'label'}
+    : $option_fields{$optionname}
+  or $optionname;
+}
+
+=back
+
+=item condition_sql_option
+
+This is a class method that returns an SQL fragment for retreiving a condition
+option.  It is primarily intended for use in B<condition_sql>.
+=cut
+
+sub condition_sql_option {
+  my( $class, $option ) = @_;
+
+  ( my $condname = $class ) =~ s/^.*:://;
+
+  "( SELECT optionvalue FROM part_event_condition_option
+      WHERE part_event_condition_option.eventconditionnum =
+            cond_$condname.eventconditionnum
+        AND part_event_condition_option.optionname = '$option'
+   )";
+}
+
+
+=head1 NEW CONDITION CLASSES
+
+A module should be added in FS/FS/part_event/Condition/ which implements the
+methods desribed above in L</METHODS>.  An example may be found in the
+eg/part_event-Condition-template.pm file.
+
+=cut
+
+1;
+
+
diff --git a/FS/FS/part_event/Condition/agent.pm b/FS/FS/part_event/Condition/agent.pm
new file mode 100644 (file)
index 0000000..da428c1
--- /dev/null
@@ -0,0 +1,37 @@
+package FS::part_event::Condition::agent;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+
+# see the FS::part_event::Condition manpage for full documentation on each
+# of the required and optional methods.
+
+sub description {
+  'Agent';
+}
+
+sub option_fields {
+  (
+    'agentnum'   => { label=>'Agent', type=>'select-agent', },
+  );
+}
+
+sub condition {
+  my($self, $object, %opt) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $agentnum = $self->option('agentnum');
+
+  $cust_main->agentnum == $agentnum;
+
+}
+
+#sub condition_sql {
+#  my( $self, $table ) = @_;
+#
+#  'true';
+#}
+
+1;
diff --git a/FS/FS/part_event/Condition/agent_type.pm b/FS/FS/part_event/Condition/agent_type.pm
new file mode 100644 (file)
index 0000000..54c8932
--- /dev/null
@@ -0,0 +1,40 @@
+package FS::part_event::Condition::agent_type;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+
+# see the FS::part_event::Condition manpage for full documentation on each
+# of the required and optional methods.
+
+sub description {
+  'Agent Type';
+}
+
+sub option_fields {
+  (
+    'typenum'   => { label         => 'Agent Type',
+                     type          => 'select-agent_type',
+                     disable_empty => 1,
+                   },
+  );
+}
+
+sub condition {
+  my($self, $object, %opt) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $typenum = $self->option('typenum');
+
+  $cust_main->agent->typenum == $typenum;
+
+}
+
+#sub condition_sql {
+#  my( $self, $table ) = @_;
+#
+#  'true';
+#}
+
+1;
diff --git a/FS/FS/part_event/Condition/balance.pm b/FS/FS/part_event/Condition/balance.pm
new file mode 100644 (file)
index 0000000..2639413
--- /dev/null
@@ -0,0 +1,48 @@
+package FS::part_event::Condition::balance;
+
+use strict;
+use FS::cust_main;
+
+use base qw( FS::part_event::Condition );
+
+sub description { 'Customer balance'; }
+
+sub implicit_flag { 20; }
+
+sub remove_warning {
+  'Are you sure you want to remove this condition?  Doing so will allow this event to run even if the customer has no outstanding balance.  Perhaps you want to reset "Balance over" to 0 instead of removing the condition entirely?'; #better error msg?
+}
+
+sub option_fields {
+  (
+    'balance' => { 'label'      => 'Balance over',
+                   'type'       => 'money',
+                   'value'      => '0.00', #default
+                 },
+  );
+}
+
+sub condition {
+  my($self, $object) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $over = $self->option('balance');
+  $over = 0 unless length($over);
+
+  $cust_main->balance > $over;
+}
+
+sub condition_sql {
+  my( $class, $table ) = @_;
+
+  my $over = $class->condition_sql_option('balance');
+
+  my $balance_sql = FS::cust_main->balance_sql;
+
+  "$balance_sql > $over";
+
+}
+
+1;
+
diff --git a/FS/FS/part_event/Condition/balance_age.pm b/FS/FS/part_event/Condition/balance_age.pm
new file mode 100644 (file)
index 0000000..94f231e
--- /dev/null
@@ -0,0 +1,83 @@
+package FS::part_event::Condition::balance_age;
+
+require 5.006;
+use strict;
+use Time::Local qw(timelocal_nocheck);
+
+use base qw( FS::part_event::Condition );
+
+sub description { 'Customer balance age'; }
+
+sub option_fields {
+  (
+    'balance' => { 'label'      => 'Balance over',
+                   'type'       => 'money',
+                   'value'      => '0.00', #default
+                 },
+    'age'     => { 'label'      => 'Age',
+                   'type'       => 'freq',
+                 },
+  );
+}
+
+sub condition {
+  my($self, $object, %opt) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $over = $self->option('balance');
+  $over = 0 unless length($over);
+
+  #false laziness w/cust_bill_age
+  my $time = $opt{'time'};
+  my $age = $self->option('age');
+  $age = '0m' unless length($age);
+
+  my ($sec,$min,$hour,$mday,$mon,$year) = (localtime($time) )[0,1,2,3,4,5];
+  if ( $age =~ /^(\d+)m$/i ) {
+    $mon -= $1;
+    until ( $mon >= 0 ) { $mon += 12; $year--; }
+  } elsif ( $age =~ /^(\d+)y$/i ) {
+    $year -= $1;
+  } elsif ( $age =~ /^(\d+)w$/i ) {
+    $mday -= $1 * 7;
+  } elsif ( $age =~ /^(\d+)d$/i ) {
+    $mday -= $1;
+  } elsif ( $age =~ /^(\d+)h$/i ) {
+    $hour -= $hour;
+  } else {
+    die "unparsable age: $age";
+  }
+  my $age_date = timelocal_nocheck($sec,$min,$hour,$mday,$mon,$year);
+
+  $cust_main->balance_date($age_date) > $over;
+}
+
+sub condition_sql {
+  my( $class, $table, %opt ) = @_;
+
+  my $time = $opt{'time'};
+
+  my $over = $class->condition_sql_option('balance');
+  my $age = $class->condition_sql_option('age');
+  my $age_sql =
+    "$time - EXTRACT( EPOCH FROM REPLACE( $age, 'm', 'mon')::interval )";
+
+  my $balance_sql = FS::cust_main->balance_date_sql( $age_sql );
+
+  "$balance_sql > $over";
+
+}
+
+sub order_sql {
+  my( $class ) = @_;
+
+  my $age = $class->condition_sql_option('age');
+  "EXTRACT( EPOCH FROM REPLACE( $age, 'm', 'mon')::interval )";
+}
+
+sub order_sql_weight {
+  10;
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/balance_under.pm b/FS/FS/part_event/Condition/balance_under.pm
new file mode 100644 (file)
index 0000000..5e19034
--- /dev/null
@@ -0,0 +1,42 @@
+package FS::part_event::Condition::balance_under;
+
+use strict;
+use FS::cust_main;
+
+use base qw( FS::part_event::Condition );
+
+sub description { 'Customer balance (under)'; }
+
+sub option_fields {
+  (
+    'balance' => { 'label'      => 'Balance under (or equal to)',
+                   'type'       => 'money',
+                   'value'      => '0.00', #default
+                 },
+  );
+}
+
+sub condition {
+  my($self, $object) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $under = $self->option('balance');
+  $under = 0 unless length($under);
+
+  $cust_main->balance <= $under;
+}
+
+sub condition_sql {
+  my( $class, $table ) = @_;
+
+  my $under = $class->condition_sql_option('balance');
+
+  my $balance_sql = FS::cust_main->balance_sql;
+
+  "$balance_sql <= $under";
+
+}
+
+1;
+
diff --git a/FS/FS/part_event/Condition/cust_bill_age.pm b/FS/FS/part_event/Condition/cust_bill_age.pm
new file mode 100644 (file)
index 0000000..9af6bdd
--- /dev/null
@@ -0,0 +1,83 @@
+package FS::part_event::Condition::cust_bill_age;
+
+require 5.006;
+use strict;
+use Time::Local qw(timelocal_nocheck);
+
+use base qw( FS::part_event::Condition );
+
+sub description {
+  'Invoice age';
+}
+
+sub eventtable_hashref {
+    { 'cust_main' => 0,
+      'cust_bill' => 1,
+      'cust_pkg'  => 0,
+    };
+}
+
+#something like this
+sub option_fields {
+  (
+    #'days' => { label=>'Days', size=>3, },
+    'age' => { label=>'Age', type=>'freq', },
+  );
+}
+
+sub condition {
+  my( $self, $cust_bill, %opt ) = @_;
+
+  #false laziness w/balance_age
+  my $time = $opt{'time'};
+  my $age = $self->option('age');
+  $age = '0m' unless length($age);
+
+  my ($sec,$min,$hour,$mday,$mon,$year) = (localtime($time) )[0,1,2,3,4,5];
+  if ( $age =~ /^(\d+)m$/i ) {
+    $mon -= $1;
+    until ( $mon >= 0 ) { $mon += 12; $year--; }
+  } elsif ( $age =~ /^(\d+)y$/i ) {
+    $year -= $1;
+  } elsif ( $age =~ /^(\d+)w$/i ) {
+    $mday -= $1 * 7;
+  } elsif ( $age =~ /^(\d+)d$/i ) {
+    $mday -= $1;
+  } elsif ( $age =~ /^(\d+)h$/i ) {
+    $hour -= $hour;
+  } else {
+    die "unparsable age: $age";
+  }
+  my $age_date = timelocal_nocheck($sec,$min,$hour,$mday,$mon,$year);
+
+  $cust_bill->_date <= $age_date;
+
+}
+
+#                            and seconds <= $time - cust_bill._date
+
+sub condition_sql {
+  my( $class, $table, %opt ) = @_;
+
+  my $time = $opt{'time'};
+
+  my $age = $class->condition_sql_option('age');
+  my $age_sql = 
+    "$time - EXTRACT( EPOCH FROM REPLACE( $age, 'm', 'mon')::interval )";
+
+  "cust_bill._date <= $age_sql";
+
+}
+
+sub order_sql {
+  my( $class ) = @_;
+
+  my $age = $class->condition_sql_option('age');
+  "EXTRACT( EPOCH FROM REPLACE( $age, 'm', 'mon')::interval )";
+}
+
+sub order_sql_weight {
+  0;
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/cust_bill_owed.pm b/FS/FS/part_event/Condition/cust_bill_owed.pm
new file mode 100644 (file)
index 0000000..e90d3db
--- /dev/null
@@ -0,0 +1,48 @@
+package FS::part_event::Condition::cust_bill_owed;
+
+use strict;
+use FS::cust_bill;
+
+use base qw( FS::part_event::Condition );
+
+sub description {
+  'Amount owed on specific invoice';
+}
+
+sub eventtable_hashref {
+    { 'cust_main' => 0,
+      'cust_bill' => 1,
+      'cust_pkg'  => 0,
+    };
+}
+
+sub option_fields {
+  (
+    'owed' => { 'label'      => 'Amount owed over',
+                'type'       => 'money',
+                'value'      => '0.00', #default
+              },
+  );
+}
+
+sub condition {
+  #my($self, $cust_bill, %opt) = @_;
+  my($self, $cust_bill) = @_;
+
+  my $over = $self->option('owed');
+  $over = 0 unless length($over);
+
+  $cust_bill->owed > $over;
+}
+
+sub condition_sql {
+  my( $class, $table ) = @_;
+  
+  my $over = $class->condition_sql_option('owed');
+
+  my $owed_sql = FS::cust_bill->owed_sql;
+
+  "$owed_sql > $over";
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/cust_bill_owed_under.pm b/FS/FS/part_event/Condition/cust_bill_owed_under.pm
new file mode 100644 (file)
index 0000000..460e6a4
--- /dev/null
@@ -0,0 +1,49 @@
+package FS::part_event::Condition::cust_bill_owed_under;
+
+use strict;
+use FS::cust_bill;
+
+use base qw( FS::part_event::Condition );
+
+sub description {
+  'Amount owed on specific invoice (under)';
+}
+
+sub eventtable_hashref {
+    { 'cust_main' => 0,
+      'cust_bill' => 1,
+      'cust_pkg'  => 0,
+    };
+}
+
+sub option_fields {
+  (
+    'owed' => { 'label'      => 'Amount owed under (or equal to)',
+                'type'       => 'money',
+                'value'      => '0.00', #default
+              },
+  );
+}
+
+sub condition {
+  #my($self, $cust_bill, %opt) = @_;
+  my($self, $cust_bill) = @_;
+
+  my $under = $self->option('owed');
+  $under = 0 unless length($under);
+
+  $cust_bill->owed <= $under;
+
+}
+
+sub condition_sql {
+  my( $class, $table ) = @_;
+  
+  my $under = $class->condition_sql_option('owed');
+
+  my $owed_sql = FS::cust_bill->owed_sql;
+
+  "$owed_sql <= $under";
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/cust_pay_batch_declined.pm b/FS/FS/part_event/Condition/cust_pay_batch_declined.pm
new file mode 100644 (file)
index 0000000..b3a8d70
--- /dev/null
@@ -0,0 +1,51 @@
+package FS::part_event::Condition::cust_pay_batch_declined;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+
+sub description {
+  'Batch payment declined';
+}
+
+sub eventtable_hashref {
+    { 'cust_main'      => 0,
+      'cust_bill'      => 0,
+      'cust_pkg'       => 0,
+      'cust_pay_batch' => 1,
+    };
+}
+
+#sub option_fields {
+#  (
+#    'field'         => 'description',
+#
+#    'another_field' => { 'label'=>'Amount', 'type'=>'money', },
+#
+#    'third_field'   => { 'label'         => 'Types',
+#                         'type'          => 'checkbox-multiple',
+#                         'options'       => [ 'h', 's' ],
+#                         'option_labels' => { 'h' => 'Happy',
+#                                              's' => 'Sad',
+#                                            },
+#  );
+#}
+
+sub condition {
+  my($self, $cust_pay_batch, %opt) = @_;
+
+  #my $cust_main = $self->cust_main($object);
+  #my $value_of_field = $self->option('field');
+  #my $time = $opt{'time'}; #use this instead of time or $^T
+
+  $cust_pay_batch->status =~ /Declined/i;
+
+}
+
+#sub condition_sql {
+#  my( $class, $table ) = @_;
+#  #...
+#  'true';
+#}
+
+1;
diff --git a/FS/FS/part_event/Condition/cust_status.pm b/FS/FS/part_event/Condition/cust_status.pm
new file mode 100644 (file)
index 0000000..fbdff25
--- /dev/null
@@ -0,0 +1,32 @@
+package FS::part_event::Condition::cust_status;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+use FS::Record qw( qsearch );
+
+sub description {
+  'Customer Status';
+}
+
+#something like this
+sub option_fields {
+  (
+    'status'  => { 'label'    => 'Customer Status',
+                   'type'     => 'select-cust_main-status',
+                   'multiple' => 1,
+                 },
+  );
+}
+
+sub condition {
+  my( $self, $object) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  #XXX test
+  my $hashref = $self->option('status') || {};
+  $hashref->{ $cust_main->status };
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/every.pm b/FS/FS/part_event/Condition/every.pm
new file mode 100644 (file)
index 0000000..3408b0a
--- /dev/null
@@ -0,0 +1,67 @@
+package FS::part_event::Condition::every;
+
+use strict;
+use FS::UID qw( dbh );
+use FS::Record qw( qsearch );
+use FS::cust_event;
+
+use base qw( FS::part_event::Condition );
+
+sub description { "Don't retry failures more often than specified interval"; }
+
+sub option_fields {
+  (
+    'retry_delay' => { label=>'Retry after', type=>'freq', value=>'1d', },
+    'max_tries'   => { label=>'Maximum # of attempts', type=>'text', size=>3, },
+  );
+}
+
+my %after = (
+  'h' =>     3600,
+  'd' =>    86400,
+  'w' =>   604800,
+  'm' =>  2592000, #well, 30 days... presumably people would mostly use d or w
+  ''  =>  2592000,
+  'y' => 31536000, #well, 365 days...
+);
+
+my $sql =
+  "SELECT COUNT(*) FROM cust_event WHERE eventpart = ? AND tablenum = ?";
+
+sub condition {
+  my($self, $object, %opt) = @_;
+
+  my $obj_pkey = $object->primary_key;
+  my $tablenum = $object->$obj_pkey();
+
+  if ( $self->option('max_tries') =~ /^\s*(\d+)\s*$/ ) {
+    my $max_tries = $1;
+    my $sth = dbh->prepare($sql)
+      or die dbh->errstr. " preparing: $sql";
+    $sth->execute($self->eventpart, $tablenum)
+      or die $sth->errstr. " executing: $sql";
+    my $tries = $sth->fetchrow_arrayref->[0];
+    return 0 if $tries >= $max_tries;
+  }
+
+  my $time = $opt{'time'};
+  my $retry_delay = $self->option('retry_delay');
+  $retry_delay =~ /^(\d+)([hdwmy]?)$/
+    or die "unparsable retry_delay: $retry_delay";
+  my $date_after = $time - $1 * $after{$2};
+
+  my $sth = dbh->prepare("$sql AND date > ?") # AND status = 'failed' "
+    or die  dbh->errstr. " preparing: $sql";
+  $sth->execute($self->eventpart, $tablenum, $date_after)
+    or die $sth->errstr. " executing: $sql";
+  ! $sth->fetchrow_arrayref->[0];
+
+}
+
+#sub condition_sql {
+#  my( $self, $table ) = @_;
+#
+#  'true';
+#}
+
+1;
diff --git a/FS/FS/part_event/Condition/once.pm b/FS/FS/part_event/Condition/once.pm
new file mode 100644 (file)
index 0000000..8c24e83
--- /dev/null
@@ -0,0 +1,48 @@
+package FS::part_event::Condition::once;
+
+use strict;
+use FS::Record qw( qsearch );
+use FS::part_event;
+use FS::cust_event;
+
+use base qw( FS::part_event::Condition );
+
+sub description { "Don't run this event again after it has completed sucessfully"; }
+
+sub implicit_flag { 10; }
+
+sub remove_warning {
+  'Are you sure you want to remove this condition?  Doing so will allow this event to run every time the other conditions are satisfied, even if it has already run sucessfully.'; #better error msg?
+}
+
+sub condition {
+  my($self, $object) = @_;
+
+  my $obj_pkey = $object->primary_key;
+  my $tablenum = $object->$obj_pkey();
+  
+  my @existing = qsearch( 'cust_event', {
+    'eventpart' => $self->eventpart,
+    'tablenum'  => $tablenum,
+    'status'    => { op=>'!=', value=>'failed' },
+  } );
+
+  ! scalar(@existing);
+
+}
+
+sub condition_sql {
+  my( $self, $table ) = @_;
+
+  my %tablenum = %{ FS::part_event->eventtable_pkey_sql };
+
+  "0 = ( SELECT COUNT(*) FROM cust_event
+           WHERE cust_event.eventpart = part_event.eventpart
+             AND cust_event.tablenum = $tablenum{$table}
+             AND status != 'failed'
+       )
+  ";
+
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/payby.pm b/FS/FS/part_event/Condition/payby.pm
new file mode 100644 (file)
index 0000000..d931568
--- /dev/null
@@ -0,0 +1,50 @@
+package FS::part_event::Condition::payby;
+
+use strict;
+use Tie::IxHash;
+use FS::payby;
+
+use base qw( FS::part_event::Condition );
+
+sub description {
+  #'customer payment types: ';
+  'Customer payment type';
+}
+
+#something like this
+tie my %payby, 'Tie::IxHash', FS::payby->cust_payby2longname;
+sub option_fields {
+  (
+    'payby' => { 
+                 label         => 'Customer payment type',
+                 #type          => 'select-multiple',
+                 type          => 'checkbox-multiple',
+                 options       => [ keys %payby ],
+                 option_labels => \%payby,
+               },
+  );
+}
+
+sub condition {
+  my( $self, $object ) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  #uuh.. all right?  test this.
+  my $hashref = $self->option('payby') || {};
+  $hashref->{ $cust_main->payby };
+
+}
+
+#sub condition_sql {
+#  my( $self, $table ) = @_;
+#
+#  #uuh... yeah... something like this.  test it for sure.
+#
+#  my @payby = keys %{ $self->option('payby') };
+#
+#  ' ( '. join(' OR ', map { "cust_main.payby = '$_'" } @payby ). ' ) ';
+#
+#}
+
+1;
diff --git a/FS/FS/part_event/Condition/pkg_class.pm b/FS/FS/part_event/Condition/pkg_class.pm
new file mode 100644 (file)
index 0000000..8c9031c
--- /dev/null
@@ -0,0 +1,38 @@
+package FS::part_event::Condition::pkg_class;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+use FS::Record qw( qsearch );
+use FS::pkg_class;
+
+sub description {
+  'Package Class';
+}
+
+sub eventtable_hashref {
+    { 'cust_main' => 0,
+      'cust_bill' => 0,
+      'cust_pkg'  => 1,
+    };
+}
+
+#something like this
+sub option_fields {
+  (
+    'pkgclass'  => { 'label'    => 'Package Class',
+                     'type'     => 'select-pkg_class',
+                     'multiple' => 1,
+                   },
+  );
+}
+
+sub condition {
+  my( $self, $cust_pkg ) = @_;
+
+  #XXX test
+  my $hashref = $self->option('pkgclass') || {};
+  $hashref->{ $cust_pkg->part_pkg->classnum };
+}
+
+1;
diff --git a/FS/FS/part_event/Condition/pkg_status.pm b/FS/FS/part_event/Condition/pkg_status.pm
new file mode 100644 (file)
index 0000000..6c1c9cc
--- /dev/null
@@ -0,0 +1,37 @@
+package FS::part_event::Condition::pkg_status;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+use FS::Record qw( qsearch );
+
+sub description {
+  'Package Status';
+}
+
+sub eventtable_hashref {
+    { 'cust_main' => 0,
+      'cust_bill' => 0,
+      'cust_pkg'  => 1,
+    };
+}
+
+#something like this
+sub option_fields {
+  (
+    'status'  => { 'label'    => 'Package Status',
+                   'type'     => 'select-cust_pkg-status',
+                   'multiple' => 1,
+                 },
+  );
+}
+
+sub condition {
+  my( $self, $cust_pkg ) = @_;
+
+  #XXX test
+  my $hashref = $self->option('status') || {};
+  $hashref->{ $cust_pkg->status };
+}
+
+1;
diff --git a/FS/FS/part_event_condition.pm b/FS/FS/part_event_condition.pm
new file mode 100644 (file)
index 0000000..1efd0f8
--- /dev/null
@@ -0,0 +1,343 @@
+package FS::part_event_condition;
+
+use strict;
+use vars qw( @ISA $DEBUG );
+use FS::UID qw(dbh);
+use FS::Record qw( qsearch qsearchs );
+use FS::option_Common;
+use FS::part_event; #for order_conditions_sql...
+
+@ISA = qw( FS::option_Common ); # FS::Record );
+$DEBUG = 0;
+
+=head1 NAME
+
+FS::part_event_condition - Object methods for part_event_condition records
+
+=head1 SYNOPSIS
+
+  use FS::part_event_condition;
+
+  $record = new FS::part_event_condition \%hash;
+  $record = new FS::part_event_condition { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::part_event_condition object represents an event condition.
+FS::part_event_condition inherits from FS::Record.  The following fields are
+currently supported:
+
+=over 4
+
+=item eventconditionnum - primary key
+
+=item eventpart - Event definition (see L<FS::part_event>)
+
+=item conditionname - Condition name - defines which FS::part_event::Condition::I<conditionname> evaluates this condition
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new event.  To add the example to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'part_event_condition'; }
+
+=item insert [ HASHREF | OPTION => VALUE ... ]
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+If a list or hash reference of options is supplied, part_event_condition_option
+records are created (see L<FS::part_event_condition_option>).
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD [ HASHREF | OPTION => VALUE ... ]
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+If a list or hash reference of options is supplied, part_event_condition_option
+records are created or modified (see L<FS::part_event_condition_option>).
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid example.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('eventconditionnum')
+    || $self->ut_foreign_key('eventpart', 'part_event', 'eventpart')
+    || $self->ut_alpha('conditionname')
+  ;
+  return $error if $error;
+
+  #XXX check conditionname to make sure a module exists?
+  # well it'll die in _rebless...
+
+  $self->SUPER::check;
+}
+
+
+=item _rebless
+
+Reblesses the object into the FS::part_event::Condition::CONDITIONNAME class,
+where CONDITIONNAME is the object's I<conditionname> field.
+
+=cut
+
+sub _rebless {
+  my $self = shift;
+  my $conditionname = $self->conditionname;
+  #my $class = ref($self). "::$conditionname";
+  my $class = "FS::part_event::Condition::$conditionname";
+  eval "use $class";
+  die $@ if $@;
+  bless($self, $class); #unless $@;
+  $self;
+}
+
+=back
+
+=head1 CLASS METHODS
+
+=over 4
+
+=item conditions [ EVENTTABLE ]
+
+Return information about the available conditions.  If an eventtable is
+specified, only return information about conditions available for that
+eventtable.
+
+Information is returned as key-value pairs.  Keys are condition names.  Values
+are hashrefs with the following keys:
+
+=over 4
+
+=item description
+
+=item option_fields
+
+# =item default_weight
+
+# =item deprecated
+
+=back
+
+See L<FS::part_event::Condition> for more information.
+
+=cut
+
+#false laziness w/part_event.pm
+#some false laziness w/part_export & part_pkg
+my %conditions;
+foreach my $INC ( @INC ) {
+  foreach my $file ( glob("$INC/FS/part_event/Condition/*.pm") ) {
+    warn "attempting to load Condition from $file\n" if $DEBUG;
+    $file =~ /\/(\w+)\.pm$/ or do {
+      warn "unrecognized file in $INC/FS/part_event/Condition/: $file\n";
+      next;
+    };
+    my $mod = $1;
+    my $fullmod = "FS::part_event::Condition::$mod";
+    eval "use $fullmod;";
+    if ( $@ ) {
+      die "error using $fullmod (skipping): $@\n" if $@;
+      #warn "error using $fullmod (skipping): $@\n" if $@;
+      #next;
+    }
+    #my $full_condition_sql = $fullmod. '::condition_sql';
+    my $condition_sql_coderef = sub { $fullmod->condition_sql(@_) };
+    my $order_sql_coderef = $fullmod->can('order_sql')
+                              ? sub { $fullmod->order_sql(@_) }
+                              : '';
+    $conditions{$mod} = {
+      ( map { $_ => $fullmod->$_() }
+            qw( description eventtable_hashref
+                implicit_flag remove_warning
+                order_sql_weight
+              )
+            # deprecated
+            #option_fields_hashref
+      ),
+      'option_fields' => [ $fullmod->option_fields() ],
+      'condition_sql' => $condition_sql_coderef,
+      'order_sql'     => $order_sql_coderef,
+    };
+  }
+}
+
+sub conditions {
+  my( $class, $eventtable ) = @_;
+  (
+    map  { $_ => $conditions{$_} }
+#    sort { $conditions{$a}->{'default_weight'}<=>$conditions{$b}->{'default_weight'} }
+#    sort by ?
+    $class->all_conditionnames( $eventtable )
+  );
+
+}
+
+=item all_conditionnames [ EVENTTABLE ]
+
+Returns a list of just the condition names 
+
+=cut
+
+sub all_conditionnames {
+  my ( $class, $eventtable ) = @_;
+
+  grep { !$eventtable || $conditions{$_}->{'eventtable_hashref'}{$eventtable} }
+       keys %conditions
+}
+
+=item join_conditions_sql [ EVENTTABLE ]
+
+Returns an SQL fragment selecting joining all condition options for an event as
+tables titled "cond_I<conditionname>".  Typically used in conjunction with
+B<where_conditions_sql>.
+
+=cut
+
+sub join_conditions_sql {
+  my ( $class, $eventtable ) = @_;
+  my %conditions = $class->conditions( $eventtable );
+
+  join(' ',
+    map {
+          "LEFT JOIN part_event_condition AS cond_$_".
+          "  ON ( part_event.eventpart = cond_$_.eventpart".
+          "       AND cond_$_.conditionname = ". dbh->quote($_).
+          "     )";
+        }
+        keys %conditions
+  );
+
+}
+
+=item where_conditions_sql [ EVENTTABLE [ , OPTION => VALUE, ... ] ]
+
+Returns an SQL fragment to select events which have unsatisfied conditions.
+Must be used in conjunction with B<join_conditions_sql>.
+
+The only current option is "time", the current time (or "pretend" current time
+as passed to freeside-daily), as a UNIX timestamp.
+
+=cut
+
+sub where_conditions_sql {
+  my ( $class, $eventtable, %options ) = @_;
+
+  my $time = $options{'time'};
+
+  my %conditions = $class->conditions( $eventtable );
+
+  my $where = join(' AND ',
+    map {
+          my $conditionname = $_;
+          my $coderef = $conditions{$conditionname}->{condition_sql};
+          my $sql = &$coderef( $eventtable, 'time'=>$time );
+          die "$coderef is not a CODEREF" unless ref($coderef) eq 'CODE';
+          "( cond_$conditionname.conditionname IS NULL OR $sql )";
+        }
+        keys %conditions
+  );
+
+  $where;
+}
+
+=item order_conditions_sql [ EVENTTABLE ]
+
+Returns an SQL fragment to order selected events.  Must be used in conjunction
+with B<join_conditions_sql>.
+
+=cut
+
+sub order_conditions_sql {
+  my( $class, $eventtable ) = @_;
+
+  my %conditions = $class->conditions( $eventtable );
+
+  my $eventtables = join(' ', FS::part_event->eventtables_runorder);
+
+  my $order_by = join(', ',
+    "position( part_event.eventtable in ' $eventtables ')",
+    ( map  {
+             my $conditionname = $_;
+             my $coderef = $conditions{$conditionname}->{order_sql};
+             my $sql = &$coderef( $eventtable );
+             "CASE WHEN cond_$conditionname.conditionname IS NULL
+                 THEN -1
+                 ELSE $sql
+              END
+             ";
+           }
+      sort {     $conditions{$a}->{order_sql_weight}
+             <=> $conditions{$b}->{order_sql_weight}
+           }
+      grep { $conditions{$_}->{order_sql} }
+           keys %conditions
+    ),
+    'part_event.weight'
+  );
+
+  "ORDER BY $order_by";
+
+}
+
+=back
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::part_event::Condition>, L<FS::part_event>, L<FS::Record>, schema.html from
+the base documentation.
+
+=cut
+
+1;
+
diff --git a/FS/FS/part_event_condition_option.pm b/FS/FS/part_event_condition_option.pm
new file mode 100644 (file)
index 0000000..3256dc0
--- /dev/null
@@ -0,0 +1,151 @@
+package FS::part_event_condition_option;
+
+use strict;
+use vars qw( @ISA );
+use FS::Record qw( qsearch qsearchs );
+use FS::option_Common;
+use FS::part_event_condition;
+
+@ISA = qw( FS::option_Common ); # FS::Record);
+
+=head1 NAME
+
+FS::part_event_condition_option - Object methods for part_event_condition_option records
+
+=head1 SYNOPSIS
+
+  use FS::part_event_condition_option;
+
+  $record = new FS::part_event_condition_option \%hash;
+  $record = new FS::part_event_condition_option { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::part_event_condition_option object represents an event condition option.
+FS::part_event_condition_option inherits from FS::Record.  The following fields
+are currently supported:
+
+=over 4
+
+=item optionnum - primary key
+
+=item eventconditionnum - Event condition (see L<FS::part_event_condition>)
+
+=item optionname - Option name
+
+=item optionvalue - Option value
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new record.  To add the record to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'part_event_condition_option'; }
+
+=item insert [ HASHREF | OPTION => VALUE ... ]
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+If a list or hash reference of options is supplied,
+part_event_condition_option_option records are created (see
+L<FS::part_event_condition_option_option>).
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD [ HASHREF | OPTION => VALUE ... ]
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+If a list or hash reference of options is supplied,
+part_event_condition_option_option records are created or modified (see
+L<FS::part_event_condition_option_option>).
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid record.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('optionnum')
+    || $self->ut_foreign_key('eventconditionnum',
+                               'part_event_condition', 'eventconditionnum')
+    || $self->ut_text('optionname')
+    || $self->ut_textn('optionvalue')
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+#this makes the nested options magically show up as perl refs
+#move it to a mixin class if we need nested options again
+sub optionvalue {
+  my $self = shift;
+  if ( scalar(@_) ) { #setting, no magic (here, insert takes care of it)
+    $self->set('optionvalue', @_);
+  } else { #getting, magic
+    my $optionvalue = $self->get('optionvalue');
+    if ( $optionvalue eq 'HASH' ) {
+      return { $self->options };
+    } else {
+      $optionvalue;
+    }
+  }
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<FS::part_event_condition>, L<FS::part_event_condition_option_option>, 
+L<FS::Record>, schema.html from the base documentation.
+
+=cut
+
+1;
+
diff --git a/FS/FS/part_event_condition_option_option.pm b/FS/FS/part_event_condition_option_option.pm
new file mode 100644 (file)
index 0000000..7396c22
--- /dev/null
@@ -0,0 +1,129 @@
+package FS::part_event_condition_option_option;
+
+use strict;
+use vars qw( @ISA );
+use FS::Record qw( qsearch qsearchs );
+use FS::part_event_condition_option;
+
+@ISA = qw(FS::Record);
+
+=head1 NAME
+
+FS::part_event_condition_option_option - Object methods for part_event_condition_option_option records
+
+=head1 SYNOPSIS
+
+  use FS::part_event_condition_option_option;
+
+  $record = new FS::part_event_condition_option_option \%hash;
+  $record = new FS::part_event_condition_option_option { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::part_event_condition_option_option object represents a nested event
+condition option.  FS::part_event_condition_option_option inherits from
+FS::Record.  The following fields are currently supported:
+
+=over 4
+
+=item optionoptionnum - primary key
+
+=item optionnum - Parent option (see L<FS::part_event_option>)
+
+=item optionname - Option name
+
+=item optionvalue - Option value
+
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new record.  To add the record to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'part_event_condition_option_option'; }
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid record.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('optionoptionnum')
+    || $self->ut_foreign_key('optionnum',
+                               'part_event_condition_option', 'optionnum' )
+    || $self->ut_text('optionname')
+    || $self->ut_textn('optionvalue')
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+=back
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::part_event_condition_option>, L<FS::Record>, schema.html from the base
+documentation.
+
+=cut
+
+1;
+
diff --git a/FS/FS/part_event_option.pm b/FS/FS/part_event_option.pm
new file mode 100644 (file)
index 0000000..43e1da9
--- /dev/null
@@ -0,0 +1,213 @@
+package FS::part_event_option;
+
+use strict;
+use vars qw( @ISA );
+use FS::UID qw( dbh );
+use FS::Record qw( qsearch qsearchs );
+use FS::part_event;
+use FS::reason;
+
+@ISA = qw(FS::Record);
+
+=head1 NAME
+
+FS::part_event_option - Object methods for part_event_option records
+
+=head1 SYNOPSIS
+
+  use FS::part_event_option;
+
+  $record = new FS::part_event_option \%hash;
+  $record = new FS::part_event_option { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::part_event_option object represents an event definition option (action
+option).  FS::part_event_option inherits from FS::Record.  The following fields
+are currently supported:
+
+=over 4
+
+=item optionnum - primary key
+
+=item eventpart - Event definition (see L<FS::part_event>)
+
+=item optionname - Option name
+
+=item optionvalue - Option value
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new record.  To add the record to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'part_event_option'; }
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+sub insert {
+  my $self = shift;
+
+  local $SIG{HUP} = 'IGNORE';
+  local $SIG{INT} = 'IGNORE';
+  local $SIG{QUIT} = 'IGNORE';
+  local $SIG{TERM} = 'IGNORE';
+  local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  if ( $self->optionname eq 'reasonnum' && $self->optionvalue eq 'HASH' ) {
+
+    my $error = $self->insert_reason(@_);
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return $error;
+    }
+
+  }
+
+  my $error = $self->SUPER::insert;
+  if ( $error ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
+  '';
+
+}
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace [ OLD_RECORD ]
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+sub replace {
+  my $self = shift;
+
+  local $SIG{HUP} = 'IGNORE';
+  local $SIG{INT} = 'IGNORE';
+  local $SIG{QUIT} = 'IGNORE';
+  local $SIG{TERM} = 'IGNORE';
+  local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
+
+  my $oldAutoCommit = $FS::UID::AutoCommit;
+  local $FS::UID::AutoCommit = 0;
+  my $dbh = dbh;
+
+  my $old = ( blessed($_[0]) && $_[0]->isa('FS::Record') )
+              ? shift
+              : $self->replace_old;
+
+  if ( $self->optionname eq 'reasonnum' ) {
+    warn "reasonnum: ". $self->optionvalue;
+  }
+  if ( $self->optionname eq 'reasonnum' && $self->optionvalue eq 'HASH' ) {
+
+    my $error = $self->insert_reason(@_);
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return $error;
+    }
+
+  }
+
+  my $error = $self->SUPER::replace($old);
+  if ( $error ) {
+    $dbh->rollback if $oldAutoCommit;
+    return $error;
+  }
+
+  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
+  '';
+
+}
+
+=item check
+
+Checks all fields to make sure this is a valid record.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('optionnum')
+    || $self->ut_foreign_key('eventpart', 'part_event', 'eventpart' )
+    || $self->ut_text('optionname')
+    || $self->ut_textn('optionvalue')
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+sub insert_reason {
+  my( $self, $reason ) = @_;
+
+  my $reason_obj = new FS::reason({
+    'reason_type' => $reason->{'typenum'},
+    'reason'      => $reason->{'reason'},
+  });
+
+  $reason_obj->insert or $self->optionvalue( $reason_obj->reasonnum ) and '';
+
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<FS::part_event>, L<FS::Record>, schema.html from the base documentation.
+
+=cut
+
+1;
+
index 65936ea..3cd7039 100644 (file)
@@ -30,7 +30,7 @@ operation</a>.
 END
 );
 
-$prefix = "/usr/local/etc/freeside/export.";
+$prefix = "%%%FREESIDE_CONF%%%/export.";
 
 sub rebless { shift; }
 
index 31658cd..6d1fbde 100644 (file)
@@ -86,18 +86,24 @@ sub calc_setup {
 
 sub calc_recur {
   my($self, $cust_pkg) = @_;
-  $self->reset_usage($cust_pkg);
   $self->base_recur($cust_pkg);
 }
 
 sub base_recur {
   my($self, $cust_pkg) = @_;
-  $self->option('recur_fee');
+  $self->option('recur_fee', 1) || 0;
 }
 
 sub calc_remain {
-  my ($self, $cust_pkg) = @_;
-  my $time = time;  #should be able to pass this in for credit calculation
+  my ($self, $cust_pkg, %options) = @_;
+
+  my $time;
+  if ($options{'time'}) {
+    $time = $options{'time'};
+  } else {
+    $time = time;
+  }
+
   my $next_bill = $cust_pkg->getfield('bill') || 0;
   my $last_bill = $cust_pkg->last_bill || 0;
   return 0 if    ! $self->base_recur
index caade40..8ac1682 100644 (file)
@@ -48,4 +48,21 @@ sub calc_setup {
   $self->option('setup_fee');
 }
 
+sub calc_remain {
+  my ($self, $cust_pkg, %options) = @_;
+  my $next_bill = $cust_pkg->getfield('bill') || 0;
+  my $last_bill = $cust_pkg->last_bill || 0;
+  my $free_days = $self->option('free_days');
+
+  return 0 if    $last_bill + (86400 * $free_days) == $next_bill
+              && $last_bill == $cust_pkg->setup;
+
+  return 0 if    ! $self->base_recur
+              || ! $self->option('unused_credit', 1)
+              || ! $last_bill
+              || ! $next_bill;
+
+  return $self->SUPER::calc_remain($cust_pkg, %options);
+}
+
 1;
index 0c264e0..02ce6b9 100644 (file)
@@ -21,7 +21,7 @@ use FS::part_pkg::flat;
                                    ' of service at cancellation',
                          'type' => 'checkbox',
                        },
-    'cutoff_day' => { 'name' => 'billing day',
+    'cutoff_day' => { 'name' => 'Billing_Day (1 - 28)',
                         'default' => 1,
                                            },
     'seconds'       => { 'name' => 'Time limit for this package',
diff --git a/FS/FS/part_pkg/prorate_delayed.pm b/FS/FS/part_pkg/prorate_delayed.pm
new file mode 100644 (file)
index 0000000..ee66432
--- /dev/null
@@ -0,0 +1,61 @@
+package FS::part_pkg::prorate_delayed;
+
+use strict;
+use vars qw(@ISA %info);
+#use FS::Record qw(qsearch qsearchs);
+use FS::part_pkg;
+
+@ISA = qw(FS::part_pkg::prorate);
+
+%info = (
+  'name' => 'Free (or setup fee) for X days, then prorate, then flat-rate ' .
+         '(1st of month billing)',
+  'fields' =>  {
+    'setup_fee' => { 'name' => 'Setup fee for this package',
+                     'default' => 0,
+                   },
+    'free_days' => { 'name' => 'Initial free days',
+                     'default' => 0,
+                   },
+    'recur_fee' => { 'name' => 'Recurring fee for this package',
+                     'default' => 0,
+                    },
+    'unused_credit' => { 'name' => 'Credit the customer for the unused portion'.
+                                   ' of service at cancellation',
+                         'type' => 'checkbox',
+                       },
+  },
+  'fieldorder' => [ 'free_days', 'setup_fee', 'recur_fee', 'unused_credit' ],
+  #'setup' => '\'my $d = $cust_pkg->bill || $time; $d += 86400 * \' + what.free_days.value + \'; $cust_pkg->bill($d); $cust_pkg_mod_flag=1; \' + what.setup_fee.value',
+  #'recur' => 'what.recur_fee.value',
+  'weight' => 50,
+);
+
+sub calc_setup {
+  my($self, $cust_pkg, $time ) = @_;
+
+  my $d = $cust_pkg->bill || $time;
+  $d += 86400 * $self->option('free_days');
+  $cust_pkg->bill($d);
+  
+  $self->option('setup_fee');
+}
+
+sub calc_remain {
+  my ($self, $cust_pkg, %options) = @_;
+  my $next_bill = $cust_pkg->getfield('bill') || 0;
+  my $last_bill = $cust_pkg->last_bill || 0;
+  my $free_days = $self->option('free_days');
+
+  return 0 if    $last_bill + (86400 * $free_days) == $next_bill
+              && $last_bill == $cust_pkg->setup;
+
+  return 0 if    ! $self->base_recur
+              || ! $self->option('unused_credit', 1)
+              || ! $last_bill
+              || ! $next_bill;
+
+  return $self->SUPER::calc_remain($cust_pkg, %options);
+}
+
+1;
index 0ed9782..00d15cd 100644 (file)
@@ -89,8 +89,6 @@ sub calc_recur {
 
   $$sdate = timelocal(0,0,0,$cutoff_day,$mon,$year);
 
-  $self->reset_usage($cust_pkg);
-
   $self->option('recur_fee');
 }
 
index 86ef7b0..8ae46ef 100644 (file)
@@ -6,7 +6,6 @@ use Time::Local;
 use Text::CSV_XS;
 use FS::Record qw( dbh qsearch qsearchs );
 use FS::cust_pay;
-use FS::part_bill_event qw(due_events);
 
 @ISA = qw(FS::Record);
 
@@ -454,6 +453,20 @@ sub import_results {
 
       $new_cust_pay_batch->status('Approved');
 
+    } elsif ( &{$declined_condition}(\%hash) ) {
+
+      $new_cust_pay_batch->status('Declined');
+
+    }
+
+    my $error = $new_cust_pay_batch->replace($cust_pay_batch);
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return "error updating status of paybatchnum $hash{'paybatchnum'}: $error\n";
+    }
+
+    if ( $new_cust_pay_batch->status =~ /Approved/i ) {
+
       my $cust_pay = new FS::cust_pay ( {
         'custnum'  => $custnum,
        'payby'    => $payby,
@@ -469,33 +482,38 @@ sub import_results {
   
       $cust_pay->cust_main->apply_payments;
 
-    } elsif ( &{$declined_condition}(\%hash) ) {
+    } elsif ( $new_cust_pay_batch->status =~ /Declined/i ) {
 
-      $new_cust_pay_batch->status('Declined');
+      #false laziness w/cust_main::collect
 
-      foreach my $part_bill_event ( due_events ( $new_cust_pay_batch,
-                                                 'DCLN',
-                                                '',
-                                                '') ) {
+      my $due_cust_event = $new_cust_pay_batch->cust_main->due_cust_event(
+        #'check_freq' => '1d', #?
+        'eventtable' => 'cust_pay_batch',
+        'objects'    => [ $new_cust_pay_batch ],
+      );
+      unless( ref($due_cust_event) ) {
+        $dbh->rollback if $oldAutoCommit;
+        return $due_cust_event;
+      }
 
-        # don't run subsequent events if balance<=0
-        last if $cust_pay_batch->cust_main->balance <= 0;
+      foreach my $cust_event ( @$due_cust_event ) {
+        
+        #XXX lock event
+    
+        #re-eval event conditions (a previous event could have changed things)
+        next unless $cust_event->test_conditions;
 
-       if (my $error = $part_bill_event->do_event($new_cust_pay_batch)) {
+       if ( my $error = $cust_event->do_event() ) {
          # gah, even with transactions.
-         $dbh->commit if $oldAutoCommit; #well.
-         return $error;
+         #$dbh->commit if $oldAutoCommit; #well.
+         $dbh->rollback if $oldAutoCommit;
+          return $error;
        }
 
       }
 
     }
 
-    my $error = $new_cust_pay_batch->replace($cust_pay_batch);
-    if ( $error ) {
-      $dbh->rollback if $oldAutoCommit;
-      return "error updating status of paybatchnum $hash{'paybatchnum'}: $error\n";
-    }
 
   }
   
index 28afd03..6684c95 100644 (file)
@@ -112,16 +112,6 @@ tie %hash, 'Tie::IxHash',
     longname  => 'Chargeback',
     cust_main => '', # not a customer type
   },
-  'DCLN' => {  # This is only an event.
-    tinyname  => 'declined',
-    shortname => 'Batch declined payment',
-    longname  => 'Batch declined payment',
-
-    #its neither of these..
-    cust_main => '',
-    cust_pay  => '',
-
-  },
 ;
 
 sub payby {
diff --git a/FS/FS/pkg_referral.pm b/FS/FS/pkg_referral.pm
new file mode 100644 (file)
index 0000000..333c2bf
--- /dev/null
@@ -0,0 +1,126 @@
+package FS::pkg_referral;
+
+use strict;
+use vars qw( @ISA );
+use FS::Record qw( qsearch qsearchs );
+
+@ISA = qw(FS::Record);
+
+=head1 NAME
+
+FS::pkg_referral - Object methods for pkg_referral records
+
+=head1 SYNOPSIS
+
+  use FS::pkg_referral;
+
+  $record = new FS::pkg_referral \%hash;
+  $record = new FS::pkg_referral { 'column' => 'value' };
+
+  $error = $record->insert;
+
+  $error = $new_record->replace($old_record);
+
+  $error = $record->delete;
+
+  $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::pkg_referral object represents the association of an advertising source
+with a specific customer package (purchase).  FS::pkg_referral inherits from
+FS::Record.  The following fields are currently supported:
+
+=over 4
+
+=item pkgrefnum - primary key
+
+=item pkgnum - Customer package.  See L<FS::cust_pkg>
+
+=item refnum - Advertising source.  See L<FS::part_referral>
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new record.  To add the record to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to.  You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+# the new method can be inherited from FS::Record, if a table method is defined
+
+sub table { 'pkg_referral'; }
+
+=item insert
+
+Adds this record to the database.  If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+# the insert method can be inherited from FS::Record
+
+=item delete
+
+Delete this record from the database.
+
+=cut
+
+# the delete method can be inherited from FS::Record
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database.  If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+# the replace method can be inherited from FS::Record
+
+=item check
+
+Checks all fields to make sure this is a valid record.  If there is
+an error, returns the error, otherwise returns false.  Called by the insert
+and replace methods.
+
+=cut
+
+# the check method should currently be supplied - FS::Record contains some
+# data checking routines
+
+sub check {
+  my $self = shift;
+
+  my $error = 
+    $self->ut_numbern('pkgrefnum')
+    || $self->ut_foreign_key('pkgnum', 'cust_pkg',      'pkgnum' )
+    || $self->ut_foreign_key('refnum', 'part_referral', 'refnum' )
+  ;
+  return $error if $error;
+
+  $self->SUPER::check;
+}
+
+=back
+
+=head1 BUGS
+
+Multiple pkg_referral records for a single package (configured off by default)
+still seems weird.
+
+=head1 SEE ALSO
+
+L<FS::part_referral>, L<FS::cust_pkg>, L<FS::Record>, schema.html from the
+base documentation.
+
+=cut
+
+1;
+
index fd3a46a..787acee 100644 (file)
@@ -187,6 +187,9 @@ If I<depend_jobnum> is set (to a scalar jobnum or an array reference of
 jobnums), all provisioning jobs will have a dependancy on the supplied
 jobnum(s) (they will not run until the specific job(s) complete(s)).
 
+If I<export_args> is set to an array reference, the referenced list will be
+passed to export commands.
+
 =cut
 
 sub insert {
@@ -279,8 +282,10 @@ sub insert {
     warn "[$me] insert: \$FS::queue::jobnums is $FS::queue::jobnums\n"
       if $DEBUG;
 
+    my $export_args = $options{'export_args'} || [];
+
     foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
-      my $error = $part_export->export_insert($self);
+      my $error = $part_export->export_insert($self, @$export_args);
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
         return "exporting to ". $part_export->exporttype.
@@ -314,7 +319,7 @@ sub insert {
   '';
 }
 
-=item delete
+=item delete [ , OPTION => VALUE ... ]
 
 Deletes this account from the database.  If there is an error, returns the
 error, otherwise returns false.
@@ -325,7 +330,8 @@ The corresponding FS::cust_svc record will be deleted as well.
 
 sub delete {
   my $self = shift;
-  my $error;
+  my %options = @_;
+  my $export_args = $options{'export_args'} || [];
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -338,10 +344,10 @@ sub delete {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  $error =    $self->SUPER::delete
-           || $self->export('delete')
-          || $self->return_inventory
-          || $self->cust_svc->delete
+  my $error =    $self->SUPER::delete
+              || $self->export('delete', @$export_args)
+             || $self->return_inventory
+             || $self->cust_svc->delete
   ;
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
@@ -362,6 +368,7 @@ otherwise returns false.
 
 sub replace {
   my ($new, $old) = (shift, shift);
+  my %options = @_;
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -392,6 +399,8 @@ sub replace {
   #new-style exports!
   unless ( $noexport_hack ) {
 
+    my $export_args = $options{'export_args'} || [];
+
     #not quite false laziness, but same pattern as FS::svc_acct::replace and
     #FS::part_export::sqlradius::_export_replace.  List::Compare or something
     #would be useful but too much of a pain in the ass to deploy
@@ -407,7 +416,7 @@ sub replace {
     foreach my $delete_part_export (
       grep { ! $new_exportnum{$_->exportnum} } @old_part_export
     ) {
-      my $error = $delete_part_export->export_delete($old);
+      my $error = $delete_part_export->export_delete($old, @$export_args);
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
         return "error deleting, export to ". $delete_part_export->exporttype.
@@ -418,7 +427,8 @@ sub replace {
     foreach my $replace_part_export (
       grep { $old_exportnum{$_->exportnum} } @new_part_export
     ) {
-      my $error = $replace_part_export->export_replace($new,$old);
+      my $error =
+        $replace_part_export->export_replace( $new, $old, @$export_args);
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
         return "error exporting to ". $replace_part_export->exporttype.
@@ -429,7 +439,7 @@ sub replace {
     foreach my $insert_part_export (
       grep { ! $old_exportnum{$_->exportnum} } @new_part_export
     ) {
-      my $error = $insert_part_export->export_insert($new);
+      my $error = $insert_part_export->export_insert($new, @$export_args );
       if ( $error ) {
         $dbh->rollback if $oldAutoCommit;
         return "error inserting export to ". $insert_part_export->exporttype.
@@ -443,7 +453,6 @@ sub replace {
   '';
 }
 
-
 =item setfixed
 
 Sets any fixed fields for this service (see L<FS::part_svc>).  If there is an
@@ -681,7 +690,9 @@ Runs export_suspend callbacks.
 
 sub suspend {
   my $self = shift;
-  $self->export('suspend');
+  my %options = @_;
+  my $export_args = $options{'export_args'} || [];
+  $self->export('suspend', @$export_args);
 }
 
 =item unsuspend
@@ -692,7 +703,9 @@ Runs export_unsuspend callbacks.
 
 sub unsuspend {
   my $self = shift;
-  $self->export('unsuspend');
+  my %options = @_;
+  my $export_args = $options{'export_args'} || [];
+  $self->export('unsuspend', @$export_args);
 }
 
 =item export HOOK [ EXPORT_ARGS ]
index 2e5da78..fc950fa 100644 (file)
@@ -779,7 +779,7 @@ sub replace {
     }
   }
 
-  $error = $new->SUPER::replace($old);
+  $error = $new->SUPER::replace($old, @_);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error if $error;
@@ -845,7 +845,7 @@ Called by the suspend method of FS::cust_pkg (see L<FS::cust_pkg>).
 sub suspend {
   my $self = shift;
   return "can't suspend system account" if $self->_check_system;
-  $self->SUPER::suspend;
+  $self->SUPER::suspend(@_);
 }
 
 =item unsuspend
@@ -867,7 +867,7 @@ sub unsuspend {
     return $error if $error;
   }
 
-  $self->SUPER::unsuspend;
+  $self->SUPER::unsuspend(@_);
 }
 
 =item cancel
@@ -898,7 +898,7 @@ sub cancel {
     }
   }
 
-  $self->SUPER::cancel;
+  $self->SUPER::cancel(@_);
 }
 
 
index 5291271..803ebef 100644 (file)
@@ -271,7 +271,7 @@ sub delete {
     }
   }
 
-  my $error = $self->SUPER::delete;
+  my $error = $self->SUPER::delete(@_);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
@@ -298,7 +298,7 @@ sub replace {
 
   # Better to do it here than to force the caller to remember that svc_domain is weird.
   $new->setfield(action => 'M');
-  my $error = $new->SUPER::replace($old);
+  my $error = $new->SUPER::replace($old, @_);
   return $error if $error;
 }
 
index 91e251f..3250f8a 100644 (file)
@@ -195,7 +195,7 @@ sub delete {
   local $FS::UID::Autocommit = 0;
   my $dbh = dbh;
 
-  my $error = $self->SUPER::delete;
+  my $error = $self->SUPER::delete(@_);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
@@ -235,7 +235,7 @@ sub replace {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  my $error = $new->SUPER::replace($old);
+  my $error = $new->SUPER::replace($old, @_);
   if ($error) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
index 49c5ea9..53225bb 100644 (file)
@@ -176,7 +176,7 @@ sub delete {
   my $self = shift;
   my $error;
 
-  $error = $self->SUPER::delete;
+  $error = $self->SUPER::delete(@_);
   return $error if $error;
 
   '';
@@ -193,7 +193,7 @@ sub replace {
   my ( $new, $old ) = ( shift, shift );
   my $error;
 
-  $error = $new->SUPER::replace($old);
+  $error = $new->SUPER::replace($old, @_);
   return $error if $error;
 
   '';
index 6a4c1ce..c30cd15 100644 (file)
@@ -2,7 +2,6 @@ Changes
 MANIFEST
 MANIFEST.SKIP
 Makefile.PL
-README
 bin/freeside-addoutsource
 bin/freeside-addoutsourceuser
 bin/freeside-addgroup
@@ -371,6 +370,20 @@ FS/reason.pm
 t/reason.t
 FS/reason_type.pm
 t/reason_type.t
+FS/pkg_referral.pm
+t/pkg_referral.t
+FS/part_event_option.pm
+t/part_event_option.t
+FS/part_event_condition.pm
+t/part_event_condition.t
+FS/part_event_condition_option.pm
+t/part_event_condition_option.t
+FS/part_event.pm
+t/part_event.t
+FS/cust_event.pm
+t/cust_event.t
+FS/part_event_condition_option_option.pm
+t/part_event_condition_option_option.t
 FS/cust_pkg_option.pm
 t/cust_pkg_option.t
 FS/conf.pm
diff --git a/FS/README b/FS/README
deleted file mode 100644 (file)
index d4c35ac..0000000
--- a/FS/README
+++ /dev/null
@@ -1,6 +0,0 @@
-This is the Perl module section of Freeside.
-
-perl Makefile.PL
-make
-make test
-make install
index d5748d6..f0ec9f0 100755 (executable)
@@ -6,7 +6,7 @@ use FS::UID qw(adminsuidsetup);
 
 &untaint_argv; #what it sounds like  (eww)
 use vars qw(%opt);
-getopts("p:a:d:vsy:n", \%opt);
+getopts("p:a:d:vl:sy:n", \%opt);
 
 my $user = shift or die &usage;
 adminsuidsetup $user;
@@ -14,9 +14,14 @@ adminsuidsetup $user;
 use FS::Cron::bill qw(bill);
 bill(%opt);
 
+#what to do about the below when using -m?  that is the question.
+
 use FS::Cron::notify qw(notify_flat_delay);
 notify_flat_delay(%opt);
 
+use FS::Cron::expire_user_pref qw(expire_user_pref);
+expire_user_pref();
+
 use FS::Cron::vacuum qw(vacuum);
 vacuum();
 
@@ -50,7 +55,7 @@ freeside-daily - Run daily billing and invoice collection events.
 
 =head1 SYNOPSIS
 
-  freeside-daily [ -d 'date' ] [ -y days ] [ -p 'payby' ] [ -a agentnum ] [ -s ] [ -v ] user [ custnum custnum ... ]
+  freeside-daily [ -d 'date' ] [ -y days ] [ -p 'payby' ] [ -a agentnum ] [ -s ] [ -v ] [ -l level ] user [ custnum custnum ... ]
 
 =head1 DESCRIPTION
 
@@ -80,6 +85,10 @@ the bill and collect methods of a cust_main object.  See L<FS::cust_main>.
 
   -v: enable debugging
 
+  -l: debugging level
+
+  -m: Experimental multi-process mode uses the job queue for multi-process and/or multi-machine billing.
+
 user: From the mapsecrets file - see config.html from the base documentation
 
 custnum: if one or more customer numbers are specified, only bills those
index a6c75e7..1e41b78 100755 (executable)
@@ -13,7 +13,7 @@ my $user = shift or die &usage;
 adminsuidsetup $user;
 
 use FS::Cron::bill qw(bill);
-bill(%opt, 'freq'=>'1m' );
+bill(%opt, 'check_freq'=>'1m' );
 
 ###
 # subroutines
diff --git a/FS/t/cust_event.t b/FS/t/cust_event.t
new file mode 100644 (file)
index 0000000..7812c5b
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::cust_event;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event-Action.t b/FS/t/part_event-Action.t
new file mode 100644 (file)
index 0000000..a665277
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event::Action;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event-Condition.t b/FS/t/part_event-Condition.t
new file mode 100644 (file)
index 0000000..c44a438
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event::Condition;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event.t b/FS/t/part_event.t
new file mode 100644 (file)
index 0000000..027b20c
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event_condition.t b/FS/t/part_event_condition.t
new file mode 100644 (file)
index 0000000..fa5a05c
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event_condition;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event_condition_option.t b/FS/t/part_event_condition_option.t
new file mode 100644 (file)
index 0000000..492fc82
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event_condition_option;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event_condition_option_option.t b/FS/t/part_event_condition_option_option.t
new file mode 100644 (file)
index 0000000..f714011
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event_condition_option_option;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/part_event_option.t b/FS/t/part_event_option.t
new file mode 100644 (file)
index 0000000..546a78f
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::part_event_option;
+$loaded=1;
+print "ok 1\n";
diff --git a/FS/t/pkg_referral.t b/FS/t/pkg_referral.t
new file mode 100644 (file)
index 0000000..ff047ba
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::pkg_referral;
+$loaded=1;
+print "ok 1\n";
diff --git a/bin/freeside-migrate-events b/bin/freeside-migrate-events
new file mode 100644 (file)
index 0000000..74732b7
--- /dev/null
@@ -0,0 +1,217 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+use FS::UID qw(adminsuidsetup);
+use FS::Record qw( qsearch );
+use FS::part_bill_event;
+use FS::part_event;
+use FS::cust_bill_event;
+use FS::cust_event;
+
+my $user = shift or die &usage;
+adminsuidsetup($user);
+
+my %plan2action = (
+  'fee'                    => 'fee',
+  'fee_percent'            => 'NOTYET', #XXX need fee_percent action
+  'suspend'                => 'suspend',
+  'suspend-if-balance'     => 'NOTYET', #XXX "if balance" becomes a balance condition
+  'suspend-if-pkgpart'     => 'suspend_if_pkgpart',
+  'suspend-unless-pkgpart' => 'suspend_unless_pkgpart',
+  'cancel'                 => 'cancel',
+  'addpost'                => 'addpost',
+  'comp'                   => 'NOTYET', #XXX or N/A or something
+  'credit'                 => 'NOTYET',
+  'realtime-card'          => 'cust_bill_realtime_card',
+  'realtime-check'         => 'cust_bill_realtime_check',
+  'realtime-lec'           => 'cust_bill_realtime_lec',
+  'batch-card'             => 'cust_bill_batch',
+  #?'retriable'             =>
+  'send'                   => 'cust_bill_send',
+  'send_email'             => 'NOTYET', 
+  'send_alternate'         => 'cust_bill_send_alternate',
+  'send_if_newest'         => 'cust_bill_send_if_newest',
+  'send_agent'             => 'cust_bill_send_agent',
+  'send_csv_ftp'           => 'cust_bill_send_csv_ftp',
+  'spool_csv',             => 'cust_bill_spool_csv',
+  'bill'                   => 'bill',
+  'apply'                  => 'apply',
+  'collect'                => 'collect',
+);
+
+#XXX may need to fudge some plandata2option names!!!
+
+foreach my $part_bill_event (
+  qsearch({
+    'table'   => 'part_bill_event',
+  })
+) {
+
+  print $part_bill_event->event;
+
+  my $action = $plan2action{ $part_bill_event->plan };
+
+  if ( $action eq 'NOTYET' ) {
+    warn "not migrating part_bill_event.eventpart ".$part_bill_event->eventpart.
+         "; ". $part_bill_event->plan. " plan not (yet) handled";
+    next;
+  } elsif ( ! $action ) {
+    warn "not migrating part_bill_event.eventpart ".$part_bill_event->eventpart.
+         "; unknown plan ". $part_bill_event->plan;
+    next;
+  }
+
+  my $part_event = new FS::part_event {
+    'event'      => $part_bill_event->event,
+    'eventtable' => 'cust_bill',
+    'check_freq' => $part_bill_event->freq || '1d',
+    'weight'     => $part_bill_event->weight,
+    'action'     => $action,
+    'disabled'   => $part_bill_event->disabled,
+  };
+
+  my $error = $part_event->insert;
+  die "error inserting part_event: $error\n" if $error;
+
+  print ' '. $part_event->eventpart;
+
+  my $once = new FS::part_event_condition {
+    'eventpart'     => $part_event->eventpart,
+    'conditionname' => 'once'
+  };
+  $error = $once->insert;
+  die $error if $error;
+  
+  my $balance = new FS::part_event_condition {
+    'eventpart'     => $part_event->eventpart,
+    'conditionname' => 'balance'
+  };
+  $error = $balance->insert( 'balance' => 0 );
+  die $error if $error;
+
+  my $payby = new FS::part_event_condition {
+    'eventpart'     => $part_event->eventpart,
+    'conditionname' => 'payby'
+  };
+  $error = $payby->insert( 'payby' => { $part_bill_event->payby => 1 } );
+  die $error if $error;
+
+  if ( $part_bill_event->seconds ) {
+
+    my $age = new FS::part_event_condition { 
+      'eventpart'     => $part_event->eventpart,
+      'conditionname' => 'cust_bill_age'
+    };
+    $error = $payby->insert( 'age' => ($part_bill_event->seconds/86400 ).'d' );
+    die $error if $error;
+
+  }
+  
+  #my $derror = $part_bill_event->delete;
+  #die "error removing part_bill_event: $derror\n" if $derror;
+
+  foreach my $cust_bill_event (
+    qsearch({
+      'table'     => 'cust_bill_event',
+      'hashref'   => { 'eventpart' => $part_bill_event->eventpart, },
+    })
+  ) {
+
+    my $cust_event = new FS::cust_event {
+      'eventpart'  => $part_event->eventpart,
+      'tablenum'   => $cust_bill_event->invnum,
+      '_date'      => $cust_bill_event->_date,
+      'status'     => $cust_bill_event->status,
+      'statustext' => $cust_bill_event->statustext,
+    };
+
+    my $cerror = $cust_event->insert;
+    die "error inserting cust_event: $cerror\n" if $cerror;
+  
+    #my $dcerror = $cust_bill_event->delete;
+    #die "error removing cust_bill_event: $dcerror\n" if $dcerror;
+
+    print ".";
+
+  }
+
+  print "\n";
+
+}
+
+sub usage {
+  die "Usage:\n  freeside-migrate-events user\n"; 
+}
+
+=head1 NAME
+
+freeside-migrate-events - Migrates 1.7/1.8-style invoice events to
+                          1.9/2.0-style billing events
+
+=head1 SYNOPSIS
+
+  freeside-migrate-events
+
+=head1 DESCRIPTION
+
+Migrates events from L<FS::part_bill_event> to L<FS::part_event> and friends,
+and from L<FS::cust_bill_event> records to L<FS::cust_event>
+
+=head1 BUGS
+
+Doesn't migrate any action options yet.
+
+Doesn't translate option names that changed.
+
+Doesn't migrate reasons.
+
+Doesn't delete the old events (which is not a big deal, since the new code
+won't run them...)
+
+=head1 SEE ALSO
+
+=cut
+
+1;
+
+__END__
+
+#part_bill_event      part_event
+#
+#eventpart            n/a
+#event                event
+#freq                 check_freq
+#payby                part_event_condition.conditionname = payby
+#eventcode            PARSE_WITH_REGEX (probably can just get from plandata)
+#seconds              part_event_condition.conditionname = cust_bill_age
+#plandata             PARSE_WITH_REGEX (along with eventcode, yuck)
+#reason               part_event_option.optionname = reason
+#disabled             disabled
+#
+
+    #these might help parse existing eventcode
+
+    $c =~ /^\s*\$cust_main\->(suspend|cancel|invoicing_list_addpost|bill|collect)\(\);\s*("";)?\s*$/
+
+      or $c =~ /^\s*\$cust_bill\->(comp|realtime_(card|ach|lec)|batch_card|send)\((%options)*\);\s*$/
+
+      or $c =~ /^\s*\$cust_bill\->send(_if_newest)?\(\'[\w\-\s]+\'\s*(,\s*(\d+|\[\s*\d+(,\s*\d+)*\s*\])\s*,\s*'[\w\@\.\-\+]*'\s*)?\);\s*$/
+
+#      or $c =~ /^\s*\$cust_main\->apply_payments; \$cust_main->apply_credits; "";\s*$/
+      or $c =~ /^\s*\$cust_main\->apply_payments_and_credits; "";\s*$/
+
+      or $c =~ /^\s*\$cust_main\->charge\( \s*\d*\.?\d*\s*,\s*\'[\w \!\@\#\$\%\&\(\)\-\+\;\:\"\,\.\?\/]*\'\s*\);\s*$/
+
+      or $c =~ /^\s*\$cust_main\->suspend_(if|unless)_pkgpart\([\d\,\s]*\);\s*$/
+
+      or $c =~ /^\s*\$cust_bill\->cust_suspend_if_balance_over\([\d\.\s]*\);\s*$/
+
+      or do {
+        #log
+        return "illegal eventcode: $c";
+      };
+
+  }
+
+
diff --git a/eg/part_event-Action-template.pm b/eg/part_event-Action-template.pm
new file mode 100644 (file)
index 0000000..c2f5ba5
--- /dev/null
@@ -0,0 +1,55 @@
+package FS::part_event::Action::myaction;
+
+use strict;
+
+use base qw( FS::part_event::Action );
+
+# see the FS::part_event::Action manpage for full documentation on each
+# of the required and optional methods.
+
+sub description {
+  'New action (the author forgot to change this description)';
+}
+
+#sub eventtable_hashref {
+#    { 'cust_main' => 1,
+#      'cust_bill' => 1,
+#      'cust_pkg'  => 1,
+#    };
+#}
+
+#sub option_fields {
+#  (
+#    'field'         => 'description',
+#
+#    'another_field' => { 'label'=>'Amount', 'type'=>'money', },
+#
+#    'third_field'   => { 'label'         => 'Types',
+#                         'type'          => 'select',
+#                         'options'       => [ 'h', 's' ],
+#                         'option_labels' => { 'h' => 'Happy',
+#                                              's' => 'Sad',
+#                                            },
+#  );
+#}
+
+#sub default_weight {
+#  100;
+#}
+
+
+sub do_action {
+  my( $self, $object ) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $value_of_field = $self->option('field');
+
+  #do your action
+  
+  #die "Error: $error";
+  return 'Null example action completed sucessfully.';
+
+}
+
+1;
diff --git a/eg/part_event-Condition-template.pm b/eg/part_event-Condition-template.pm
new file mode 100644 (file)
index 0000000..cc05843
--- /dev/null
@@ -0,0 +1,57 @@
+package FS::part_event::Condition::mycondition;
+
+use strict;
+
+use base qw( FS::part_event::Condition );
+
+# see the FS::part_event::Condition manpage for full documentation on each
+# of the required and optional methods.
+
+sub description {
+  'New condition (the author forgot to change this description)';
+}
+
+#sub eventtable_hashref {
+#    { 'cust_main'      => 1,
+#      'cust_bill'      => 1,
+#      'cust_pkg'       => 1,
+#      'cust_pay_batch' => 1,
+#    };
+#}
+
+#sub option_fields {
+#  (
+#    'field'         => 'description',
+#
+#    'another_field' => { 'label'=>'Amount', 'type'=>'money', },
+#
+#    'third_field'   => { 'label'         => 'Types',
+#                         'type'          => 'checkbox-multiple',
+#                         'options'       => [ 'h', 's' ],
+#                         'option_labels' => { 'h' => 'Happy',
+#                                              's' => 'Sad',
+#                                            },
+#  );
+#}
+
+sub condition {
+  my($self, $object, %opt) = @_;
+
+  my $cust_main = $self->cust_main($object);
+
+  my $value_of_field = $self->option('field');
+
+  my $time = $opt{'time'}; #use this instead of time or $^T
+
+  #test your condition
+  1;
+
+}
+
+#sub condition_sql {
+#  my( $class, $table ) = @_;
+#  #...
+#  'true';
+#}
+
+1;
index f39c505..c93ed0f 100755 (executable)
@@ -25,3 +25,5 @@ cd ..
        #chmod 755 /var/www/signup/signup.cgi
        #ln -s /var/www/signup/signup.cgi /var/www/signup/index.cgi || true
 
+
+chmod 755 /var/www/selfservice/*.cgi
index 755e664..2596241 100644 (file)
@@ -7,7 +7,7 @@
 package HTML::Mason;
 
 # Bring in main Mason package.
-use HTML::Mason 1.1;
+use HTML::Mason 1.27; #http://www.masonhq.com/?ApacheModPerl2Redirect
 
 # Bring in ApacheHandler, necessary for mod_perl integration.
 # Uncomment the second line (and comment the first) to use
@@ -92,7 +92,9 @@ sub handler
       use vars qw( %session );
       use CGI 2.47 qw(-private_tempfiles);
       #use CGI::Carp qw(fatalsToBrowser);
+      use CGI::Cookie;
       use List::Util qw( max min );
+      use Data::Dumper;
       use Date::Format;
       use Date::Parse;
       use Time::Local;
@@ -104,9 +106,11 @@ sub handler
       use URI::Escape;
       use HTML::Entities;
       use JSON;
+      use MIME::Base64;
       use IO::Handle;
       use IO::File;
       use IO::Scalar;
+      #not actually using this yet anyway...# use IPC::Run3 0.036;
       use Net::Whois::Raw qw(whois);
       if ( $] < 5.006 ) {
         eval "use Net::Whois::Raw 0.32 qw(whois)";
@@ -150,6 +154,8 @@ sub handler
       use FS::cust_svc;
       use FS::nas;
       use FS::part_bill_event;
+      use FS::part_event;
+      use FS::part_event_condition;
       use FS::part_pkg;
       use FS::part_referral;
       use FS::part_svc;
@@ -187,6 +193,7 @@ sub handler
       use FS::inventory_item;
       use FS::pkg_class;
       use FS::access_user;
+      use FS::access_user_pref;
       use FS::access_group;
       use FS::access_usergroup;
       use FS::access_groupagent;
@@ -217,7 +224,6 @@ sub handler
           use RT::Interface::Web;
           use MIME::Entity;
           use Text::Wrapper;
-          use CGI::Cookie;
           use Time::ParseDate;
           use HTML::Scrubber;
           use Text::Quoted;
@@ -226,7 +232,14 @@ sub handler
       }
 
       *CGI::redirect = sub {
-        my( $self, $location ) = @_;
+        my $self = shift;
+        my $cookie = '';
+        if ( $_[0] eq '-cookie' ) { #this isn't actually used at the moment
+          (my $x, $cookie) = (shift, shift);
+          $HTML::Mason::r->err_headers_out->add( 'Set-cookie' => $cookie );
+        }
+        my $location = shift;
+
         use vars qw($m);
 
         # false laziness w/below
@@ -333,7 +346,15 @@ sub handler
       return -1 if defined( $r->content_type ) && $r->content_type !~ m!(^text/|\bxml\b)!io;
 
     } else {
-      $ah->interp->set_escape( 'h' => sub { ${$_[0]}; } );
+      #$ah->interp->set_escape( 'h' => sub { ${$_[0]}; } );
+      $ah->interp->set_escape( 'h' => sub {} );
+
+      $ah->interp->set_escape( 'js_string' => sub {
+        #${$_[0]} =~ s/(['\\\n])/'\\'.($1 eq "\n" ? 'n' : $1)/ge;
+        ${$_[0]} =~ s/(['\\])/\\$1/g;
+        ${$_[0]} =~ s/\n/\\n/g;
+        ${$_[0]} = "'". ${$_[0]}. "'";
+      } );
     }
 
     $ah->interp->ignore_warnings_expr('.');
index ca162a0..ccb64e1 100644 (file)
                                   ],
              )
 %>
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+<%once>
 
 my $html_init = 
   "Internal access groups control access to the back-office interface.<BR><BR>".
@@ -58,20 +55,45 @@ my $agents_sub = sub {
   
 };
 
+tie my %rights, 'Tie::IxHash', FS::AccessRight->rights_info;
+
 my $rights_sub = sub {
   my $access_group = shift;
 
-  [ map { my $access_right = $_;
-          [
-            { 
-              'data'  => $access_right->rightname,
-              'align' => 'left',
-            },
-          ];
-        }
-    $access_group->access_rights,
+  #[ map { my $access_right = $_;
+  #        [
+  #          { 
+  #            'data'  => $access_right->rightname,
+  #            'align' => 'left',
+  #          },
+  #        ];
+  #      }
+  #  $access_group->access_rights,
+  #];
 
-  ];
+  #some false laziness w/edit/access_group.html
+  my $columns = 3;
+  my $count = 0;
+
+  #include('/elements/table-grid.html', bgcolor=>'#cccccc' ).
+  '<TABLE>'.
+  '<TR>'. join( '', map {
+    
+    '<TD CLASS="inv" VALIGN="top"><TABLE WIDTH=100%>'.
+    '<TR><TH BGCOLOR="#dcdcdc">'. $_. '</TH></TR>'.
+    '<TR><TD>'.
+
+     join('<BR>', grep { warn "$access_group->access_right($_): ".
+                              $access_group->access_right($_). "\n";
+                         $access_group->access_right($_); }
+                   map { ref($_) ? $_->{'rightname'} : $_; }
+                       @{ $rights{$_} }
+         ).
+
+    '</TD></TR></TABLE></TD>'.
+    ( ++$count % $columns ? '' : '</TR><TR>')
+  
+  } keys %rights ). '</TR></TABLE>';
 
 };
 
@@ -79,4 +101,10 @@ my $count_query = 'SELECT COUNT(*) FROM access_group';
 
 my $link = [ $p.'edit/access_group.html?', 'groupnum' ];
 
+</%once>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
 </%init>
index 8eb3e33..83fc363 100644 (file)
@@ -1,20 +1,21 @@
 <% include( 'elements/browse.html',
-                 'title'          => 'Internal Users',
-                 'menubar'        => [ #'Main menu' => $p,
-                                       'Internal access groups' => $p.'browse/access_group.html',
-                                     ],
-                 'html_init'      => $html_init,
-                 'html_posttotal' => $posttotal,
-                 'name'           => 'internal users',
-                 'query'          => { 'table'     => 'access_user',
-                                       'hashref'   => \%search,
-                                       'extra_sql' => 'ORDER BY last, first',
-                                     },
-                 'count_query'    => $count_query,
-                 'header'         => \@header,
-                 'fields'         => \@fields,
-                 'links'          => \@links,
-                 'style'          => \@style,
+                 'title'              => 'Internal Users',
+                 'menubar'            => [ #'Main menu' => $p,
+                                           'Internal access groups' => $p.'browse/access_group.html',
+                                         ],
+                 'html_init'          => $html_init,
+                 'name'               => 'internal users',
+                 'disableable'        => 1,
+                 'disabled_statuspos' => 2,
+                 'query'              => { 'table'     => 'access_user',
+                                           'hashref'   => {},
+                                           'extra_sql' => 'ORDER BY last, first'
+                                         },
+                 'count_query'        => $count_query,
+                 'header'             => \@header,
+                 'fields'             => \@fields,
+                 'links'              => \@links,
+                 'align'              => $align,
              )
 %>
 <%init>
@@ -26,14 +27,6 @@ my $html_init =
   "Internal users have access to the back-office interface.  Typically, this is your employees and contractors, but in a VISP setup, you can also add accounts for your reseller's employees.  It is <B>highly recommended</B> to add a <B>separate account for each person</B> rather than using role accounts.<BR><BR>".
   qq!<A HREF="${p}edit/access_user.html"><I>Add an internal user</I></A><BR><BR>!;
 
-#false laziness w/part_pkg.cgi
-my %search = ();
-my $search = '';
-unless ( $cgi->param('showdisabled') ) {
-  %search = ( 'disabled' => '' );
-  $search = "( disabled = '' OR disabled IS NULL )";
-}
-
 #false laziness w/access_group.html & agent_type.cgi
 my $groups_sub = sub {
   my $access_user = shift;
@@ -58,45 +51,13 @@ my $groups_sub = sub {
 
 };
 
-my $posttotal;
-if ( $cgi->param('showdisabled') ) {
-  $cgi->param('showdisabled', 0);
-  $posttotal = '( <a href="'. $cgi->self_url. '">hide disabled users</a> )';
-  $cgi->param('showdisabled', 1);
-} else {
-  $cgi->param('showdisabled', 1);
-  $posttotal = '( <a href="'. $cgi->self_url. '">show disabled users</a> )';
-  $cgi->param('showdisabled', 0);
-}
-
 my $count_query = 'SELECT COUNT(*) FROM access_user';
-$count_query .= " WHERE $search"
-  if $search;
 
 my $link = [ $p.'edit/access_user.html?', 'usernum' ];
 
-my @header = ( '#', 'Username' );
-my @fields = ( 'usernum', 'username' );
-my $align = 'rl';
-my @links = ( $link, $link );
-my @style = ( '', '' );
-
-#false laziness w/part_pkg.cgi
-#unless ( $cgi->param('showdisabled') ) { #its been reversed already
-if ( $cgi->param('showdisabled') ) { #its been reversed already
-  push @header, 'Status';
-  push @fields, sub { shift->disabled
-                        ? '<FONT COLOR="#FF0000">DISABLED</FONT>'
-                        : '<FONT COLOR="#00CC00">Active</FONT>'
-                    };
-  push @links, '';
-  $align .= 'c';
-  push @style, 'b';
-}
-
-push @header, 'Full name', 'Groups';
-push @fields, 'name',      $groups_sub;
-push @links,  $link,       '';
-$align .= 'll';
+my @header = ( '#',       'Username', 'Full name', 'Groups'    );
+my @fields = ( 'usernum', 'username', 'name',      $groups_sub );
+my $align = 'rlll';
+my @links = ( $link, $link, $link, '' );
 
 </%init>
index 83e79a2..46a9244 100755 (executable)
@@ -27,10 +27,11 @@ full offerings (via their type).<BR><BR>
 <TR>
   <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% ( $cgi->param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent</TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Type</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Invoice<BR>Template</FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Customers</TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Customer<BR>packages</FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Reports</TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc">Registration codes</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Registration<BR>codes</FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Prepaid cards</TH>
 % if ( $conf->config('ticket_system') ) { 
 
@@ -39,8 +40,6 @@ full offerings (via their type).<BR><BR>
 
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH>
   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Configuration Overrides</FONT></TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Freq.</FONT></TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Prog.</FONT></TH>
 </TR>
 % 
 %#        <TH><FONT SIZE=-1>Agent #</FONT></TH>
@@ -66,18 +65,29 @@ full offerings (via their type).<BR><BR>
 
 
       <TR>
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
-          <% $agent->agentnum %></A></TD>
-% if ( dbdef->table('agent')->column('disabled')
-%        && !$cgi->param('showdisabled')           ) { 
 
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->disabled ? 'DISABLED' : '' %></TD>
-% } 
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>"><% $agent->agentnum %></A>
+        </TD>
+
+%       if ( dbdef->table('agent')->column('disabled')
+%            && !$cgi->param('showdisabled')           ) { 
+          <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+            <% $agent->disabled ? 'DISABLED' : '' %>
+          </TD>
+%       } 
+
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>"><% $agent->agent %></A>
+        </TD>
 
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A>
+        </TD>
 
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
-          <% $agent->agent %></A></TD>
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A></TD>
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <% $agent->invoice_template || '(Default)' %>
+        </TD>
 
         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
@@ -366,11 +376,6 @@ Unused
           </TABLE>
         </TD>
 
-<!--
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->freq %></TD>
-        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->prog %></TD>
--->
-
       </TR>
 % } 
 
diff --git a/httemplate/browse/invoice_template.html b/httemplate/browse/invoice_template.html
new file mode 100644 (file)
index 0000000..0bbfb24
--- /dev/null
@@ -0,0 +1,124 @@
+<% include("/elements/header.html", 'Invoice templates') %>
+
+<% include('/elements/table-grid.html') %>
+% my $bgcolor1 = '#eeeeee';
+%   my $bgcolor2 = '#ffffff';
+%   my $bgcolor = '';
+
+<TR>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Template</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">HTML</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Print/PDF (typeset)</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Plaintext</TH>
+</TR>
+
+% foreach my $templatename ( '', @templatenames ) {
+%   my $tname = length($templatename) ? "_$templatename" : '';
+%
+%   if ( $bgcolor eq $bgcolor1 ) {
+%     $bgcolor = $bgcolor2;
+%   } else {
+%     $bgcolor = $bgcolor1;
+%   }
+%
+%   my $display = length($templatename) ? $templatename : '<i>(Default)</i>';
+
+    <TR>
+
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+        <% $display %>
+      </TD>
+
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+
+%       my( $logo_label, $logo_link_label)= length( $templatename )
+%                                             ? labels("logo_$templatename.png")
+%                                             : ( '', 'edit' );
+        <% $logo_label %> Logo
+        (<A HREF="<% $p %>edit/invoice_logo.html?type=png;name=<% $templatename %>"><% $logo_link_label %></A>)
+        <BR>
+
+%       foreach my $suffix (qw( returnaddress notes footer), '' ) {
+%         my $file = "invoice_html$suffix$tname";
+%         my($label, $link_label) = length($templatename)
+%                                     ? labels($file)
+%                                     : ( '', 'edit' );
+
+          <% $label %> <% $suffix2name{$suffix} %>
+          (<A HREF="<% $p %>edit/invoice_template.html?type=html;suffix=<% $suffix %>;name=<% $templatename %>"><% $link_label %></A>)
+          <BR>
+
+%       }
+
+      </TD>
+
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+
+%       my( $logo_label, $logo_link_label)= length( $templatename )
+%                                             ? labels("logo_$templatename.eps")
+%                                             : ( '', 'edit' );
+        <% $logo_label %> Logo
+        (<A HREF="<% $p %>edit/invoice_logo.html?type=eps;name=<% $templatename %>"><% $logo_link_label %></A>)
+        <BR>
+
+%       foreach my $suffix (qw( returnaddress notes footer smallfooter), '' ) {
+%         my $file = "invoice_latex$suffix$tname";
+%         my($label, $link_label) = length($templatename)
+%                                     ? labels($file)
+%                                     : ( '', 'edit' );
+
+          <% $label %> <% $suffix2name{$suffix} %>
+          (<A HREF="<% $p %>edit/invoice_template.html?type=latex;suffix=<% $suffix %>;name=<% $templatename %>"><% $link_label %></A>)
+          <BR>
+
+%       }
+
+      </TD>
+
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+
+%       my( $txt_label, $txtlink_label)=
+%         length( $templatename )
+%           ? labels("invoice_template_$templatename.png")
+%           : ( 'Main template', 'edit' );
+        <% $txt_label %> 
+        (<A HREF="<% $p %>edit/invoice_template.html?type=text;name=<% $templatename %>"><% $txtlink_label %></A>)
+
+      </TD>
+
+    </TR>
+
+% }
+
+<% include("/elements/footer.html") %>
+
+<%once>
+
+my %suffix2name = (
+  'returnaddress' => 'Return address',
+  'notes'         => 'Notes',
+  'footer'        => 'Footer',
+  'smallfooter'   => 'Small footer',
+  ''              => 'Main template',
+);
+
+my $conf = new FS::Conf;
+
+sub labels {
+  my $filename = shift;
+  if ( $conf->exists($filename) ) {
+    ( 'Custom', 'edit' );
+  } else {
+    ( 'Standard', 'customize' );
+  }
+}
+
+</%once>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my @templatenames = $conf->invoice_templatenames;
+
+</%init>
index 682058b..a7071bc 100755 (executable)
@@ -1,6 +1,6 @@
 <% include("/elements/header.html",'Invoice Event Listing', menubar( 'Main Menu' => $p) ) %>
 
-    Invoice events are actions taken on open invoices.<BR><BR>
+    <FONT SIZE="+1">Invoice events are the deprecated, old-style actions taken on open invoices.  Any events still listed here should be migrated to new-style events.</FONT><BR><BR>
 
 <A HREF="<% $p %>edit/part_bill_event.cgi"><I>Add a new invoice event</I></A>
 <BR><BR>
diff --git a/httemplate/browse/part_event.html b/httemplate/browse/part_event.html
new file mode 100644 (file)
index 0000000..4a05826
--- /dev/null
@@ -0,0 +1,157 @@
+<% include( 'elements/browse.html',
+                'title'              => 'Billing Event Definitions',
+                'html_init'          => $html_init,
+                'name'               => 'billing event definitions',
+                'disableable'        => 1,
+                'disabled_statuspos' => 2,
+                'agent_virt'         => 1,
+                'agent_null_right'   => 'Edit global billing events',
+                'agent_pos'          => 3,
+                'query'              => { 'select'    => 'part_event.*',
+                                          'table'     => 'part_event',
+                                          'addl_from' => $join_conditions,
+                                          'hashref'   => {},
+                                          'order_by'  => $order_conditions,
+                                        },
+                'count_query'        => $count_query,
+                'header'             => [ '#',
+                                          'Event',
+                                          'Type',
+                                          'Check freq.',
+                                          'Conditions',
+                                          'Action',
+                                        ],
+                'fields'             => [ 'eventpart',
+                                          'event',
+                                          $eventtable_sub,
+                                          $check_freq_sub,
+                                          $conditions_sub,
+                                          $action_sub,
+                                        ],
+                'links'              => [ $link,
+                                          $link,
+                                          '',
+                                          '',
+                                          '',
+                                          '',
+                                        ],
+                'align'              => 'rllccc',
+          )
+%>
+<%once>
+
+my $eventtable_labels = FS::part_event->eventtable_labels;
+my $eventtable_sub = sub { $eventtable_labels->{ shift->eventtable }; };
+
+my $check_freq_labels = FS::part_event->check_freq_labels;
+my $check_freq_sub = sub { $check_freq_labels->{ shift->check_freq }; };
+
+my $conditions_sub = sub {
+  my $part_event = shift;
+  my $addl = 0;
+
+  [
+    map {
+           my $part_event_condition = $_;
+           my %options = $part_event_condition->options;
+
+           [
+             {
+               'data'       => $part_event_condition->description,
+               'width'      => '100%',
+               'align'      => 'center',
+               'colspan'    => 2,
+               'style'      => ( $addl++ ? 'border-top: 1px solid gray' : '' ), 
+             },
+           ],
+
+           map {
+
+             my $data = $options{$_};
+             if ( ref($data) ) {
+               $data = join('<BR>', keys %$data); #XXX display hash values too?
+             }
+
+             [
+               {
+                 'data'   => $part_event_condition->option_label($_). ':',
+                 'align'  => 'right',
+                 'valign' => 'top',
+                 'size'   => '-1',
+               },
+               {
+                 'data'  => $data,
+                 'align' => 'left',
+                 'size'  => '-1',
+               },
+             ];
+
+           } keys %options
+
+        }
+        $part_event->part_event_condition
+
+  ];
+
+};
+
+my $action_sub = sub {
+  my $part_event = shift;
+
+  my %options = $part_event->options;
+  
+  [
+
+    [
+      {
+        'data'       => $part_event->description,
+        'width'      => '100%',
+        'align'      => 'center',
+        'colspan'    => 2,
+      },
+    ],
+
+    map {
+          [
+            {
+              'data'  => $part_event->option_label($_). ':',
+              'align' => 'right',
+              'size'  => '-1',
+            },
+            {
+             'data'  => $options{$_},
+             'align' => 'left',
+              'size'  => '-1',
+            },
+          ];
+        }
+
+        keys %options
+  ];
+
+};
+
+my $link = [ $p.'edit/part_event.html?', 'eventpart' ];
+
+</%once>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Edit billing events')
+      || $FS::CurrentUser::CurrentUser->access_right('Edit global billing events');
+
+my $html_init =
+  #XXX better description
+  'Events are billing, collection or other actions triggered when certain '.
+  'customer, invoice, package or other conditions are met.<BR><BR>'.
+  qq!<A HREF="${p}edit/part_event.html"><I>Add a new event</I></A><BR><BR>!;
+     
+my $count_query = 'SELECT COUNT(*) FROM part_event WHERE '.
+                  $FS::CurrentUser::CurrentUser->agentnums_sql(
+                    'null_right' => 'Edit global billing events',
+                  );
+
+my $join_conditions  = FS::part_event_condition->join_conditions_sql;
+my $order_conditions = FS::part_event_condition->order_conditions_sql;
+
+</%init>
index 5acf17e..0b83fc0 100755 (executable)
@@ -1,20 +1,20 @@
 <% include( 'elements/browse.html',
-                 'title'          => 'Package Definitions',
-                 'menubar'        => [ 'Main Menu' => $p ],
-                 'html_init'      => $html_init,
-                 'html_posttotal' => $posttotal,
-                 'name'           => 'package definitions',
-                 'query'          => { 'select'    => $select,
-                                       'table'     => 'part_pkg',
-                                       'hashref'   => \%search,
-                                       'extra_sql' => "ORDER BY $orderby",
-                                     },
-                 'count_query'    => $count_query,
-                 'header'         => \@header,
-                 'fields'         => \@fields,
-                 'links'          => \@links,
-                 'align'          => $align,
-                 'style'          => \@style,
+                 'title'              => 'Package Definitions',
+                 'menubar'            => [ 'Main Menu' => $p ],
+                 'html_init'          => $html_init,
+                 'name'               => 'package definitions',
+                 'disableable'        => 1,
+                 'disabled_statuspos' => 3,
+                 'query'              => { 'select'    => $select,
+                                           'table'     => 'part_pkg',
+                                           'hashref'   => {},
+                                           'extra_sql' => "ORDER BY $orderby",
+                                         },
+                 'count_query'        => $count_query,
+                 'header'             => \@header,
+                 'fields'             => \@fields,
+                 'links'              => \@links,
+                 'align'              => $align,
              )
 %>
 <%init>
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
-#false laziness w/access_user.html
-my %search = ();
-my $search = '';
-unless ( $cgi->param('showdisabled') ) {
-  %search = ( 'disabled' => '' );
-  $search = "( disabled = '' OR disabled IS NULL )";
-}
-
 my $select = '*';
 my $orderby = 'pkgpart';
 if ( $cgi->param('active') ) {
@@ -72,18 +64,6 @@ my $html_init;
   !;
 #}
 
-my $posttotal;
-if ( $cgi->param('showdisabled') ) {
-  $cgi->param('showdisabled', 0);
-  $posttotal = '( <a href="'. $cgi->self_url. '">hide disabled packages</a> )';
-  $cgi->param('showdisabled', 1);
-} else {
-  $cgi->param('showdisabled', 1);
-  $posttotal = '( <a href="'. $cgi->self_url. '">show disabled packages</a> )';
-  $cgi->param('showdisabled', 0);
-}
-
-
 # ------
 
 my $link = [ $p.'edit/part_pkg.cgi?', 'pkgpart' ];
@@ -92,20 +72,6 @@ my @header = ( '#', 'Package', 'Comment' );
 my @fields = ( 'pkgpart', 'pkg', 'comment' );
 my $align = 'rll';
 my @links = ( $link, $link, '' );
-my @style = ( '', '', '' );
-
-#false laziness w/access_user.html
-#unless ( $cgi->param('showdisabled') ) { #its been reversed already
-if ( $cgi->param('showdisabled') ) { #its been reversed already
-  push @header, 'Status';
-  push @fields, sub { shift->disabled
-                        ? '<FONT COLOR="#FF0000">DISABLED</FONT>'
-                        : '<FONT COLOR="#00CC00">Active</FONT>'
-                    };
-  push @links, '';
-  $align .= 'c';
-  push @style, 'b';
-}
 
 unless ( 0 ) { #already showing only one class or something?
   push @header, 'Class';
@@ -255,7 +221,5 @@ $align .= 'lrl'; #rr';
 # --------
 
 my $count_query = 'SELECT COUNT(*) FROM part_pkg';
-$count_query .= " WHERE $search"
-  if $search;
 
 </%init>
index 065d8c1..21ee873 100755 (executable)
@@ -5,54 +5,11 @@ Where a customer heard about your service. Tracked for informational purposes.
 
 <A HREF="<% $p %>edit/part_referral.html"><I>Add a new advertising source</I></A>
 <BR><BR>
-%
-%  my $today = timelocal(0, 0, 0, (localtime(time))[3..5] );
-%  my %after;
-%  tie %after, 'Tie::IxHash',
-%    'Today'         =>        0,
-%    'Yesterday'     =>    86400, # 60sec * 60min * 24hrs
-%    'Past week'     =>   518400, # 60sec * 60min * 24hrs * 6days
-%    'Past 30 days'  =>  2505600, # 60sec * 60min * 24hrs * 29days 
-%    'Past 60 days'  =>  5097600, # 60sec * 60min * 24hrs * 59days 
-%    'Past 90 days'  =>  7689600, # 60sec * 60min * 24hrs * 89days 
-%    'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days 
-%    'Past year'     => 31486000, # 60sec * 60min * 24hrs * 364days 
-%    'Total'         => $today,
-%  ;
-%  my %before = (
-%    'Today'         =>   86400, # 60sec * 60min * 24hrs
-%    'Yesterday'     =>       0,
-%    'Past week'     =>   86400, # 60sec * 60min * 24hrs
-%    'Past 30 days'  =>   86400, # 60sec * 60min * 24hrs
-%    'Past 60 days'  =>   86400, # 60sec * 60min * 24hrs
-%    'Past 90 days'  =>   86400, # 60sec * 60min * 24hrs
-%    'Past 6 months' =>   86400, # 60sec * 60min * 24hrs
-%    'Past year'     =>   86400, # 60sec * 60min * 24hrs
-%    'Total'         =>   86400, # 60sec * 60min * 24hrs
-%  );
-%
-%  my $curuser = $FS::CurrentUser::CurrentUser;
-%
-%  my $statement = "SELECT COUNT(*) FROM h_cust_main
-%                    WHERE history_action = 'insert'
-%                      AND refnum = ?
-%                      AND history_date >= ?
-%                    AND history_date < ?
-%                    AND ". $curuser->agentnums_sql;
-%  my $sth = dbh->prepare($statement)
-%    or die dbh->errstr;
-%
-%  my $show_agentnums = scalar($curuser->agentnums);
-%
-%
-
 
 <% include('/elements/table-grid.html') %>
 % my $bgcolor1 = '#eeeeee';
 %   my $bgcolor2 = '#ffffff';
 %   my $bgcolor = '';
-%
-
 
 <TR>
   <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=2 ROWSPAN=2>Advertising source</TH>
@@ -61,7 +18,7 @@ Where a customer heard about your service. Tracked for informational purposes.
     <TH CLASS="grid" BGCOLOR="#cccccc" ROWSPAN=2>Agent</TH>
 % } 
 
-  <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% scalar(keys %after) %>>Customers</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% scalar(keys %after) %>>Customers and Packages</TH>
 </TR>
 % for my $period ( keys %after ) { 
 
@@ -69,7 +26,7 @@ Where a customer heard about your service. Tracked for informational purposes.
 % } 
 
 </TR>
-%
+
 %foreach my $part_referral ( FS::part_referral->all_part_referral(1) ) {
 %
 %  if ( $bgcolor eq $bgcolor1 ) {
@@ -79,8 +36,6 @@ Where a customer heard about your service. Tracked for informational purposes.
 %  }
 %
 %  $a = 0;
-%
-%
 
       <TR>
 
@@ -105,34 +60,63 @@ Where a customer heard about your service. Tracked for informational purposes.
           <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $part_referral->agentnum ? $part_referral->agent->agent : '(global)' %></TD>
 % } 
 % for my $period ( keys %after ) {
-%          $sth->execute( $part_referral->refnum,
-%                         $today-$after{$period},
-%                         $today+$before{$period},
-%          ) or die $sth->errstr;
-%          my $number = $sth->fetchrow_arrayref->[0];
-%        
-
-          <TD CLASS="grid" BGCOLOR="<% $bgcolor %>" ALIGN="right"><% $number %></TD>
+%          my @param = ( $part_referral->refnum,
+%                        $today-$after{$period},
+%                        $today+$before{$period},
+%                      );
+%          $cust_sth->execute(@param) or die $cust_sth->errstr;
+%          my $num_cust = $cust_sth->fetchrow_arrayref->[0];
+%          $pkg_sth->execute(@param) or die $pkg_sth->errstr;
+%          my $num_pkg = $pkg_sth->fetchrow_arrayref->[0];
+
+          <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" ALIGN="right">
+            <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
+              <TR>
+                <TD ALIGN="right"><B><% $num_cust %></B></TD>
+                <TD ALIGN="left">customers</TD>
+              </TR>
+              <TR>
+                <TD ALIGN="right"><B><% $num_pkg %></B></TD>
+                <TD ALIGN="left">packages</TD>
+              </TR>
+            </TABLE>
+          </TD>
 % } 
 
       </TR>
 % } 
 %
-%  $statement =~ s/AND refnum = \?//;
-%  $sth = dbh->prepare($statement)
+%  $cust_statement =~ s/AND refnum = \?//;
+%  $cust_sth = dbh->prepare($cust_statement)
+%    or die dbh->errstr;
+%  $pkg_statement =~ s/AND h_pkg_referral\.refnum = \?//;
+%  $pkg_sth = dbh->prepare($pkg_statement)
 %    or die dbh->errstr;
-%
 
       <TR>
         <TD BGCOLOR="#dddddd" ALIGN="center" COLSPAN=3><B>Total</B></TD>
 % for my $period ( keys %after ) {
-%          $sth->execute( $today-$after{$period},
-%                         $today+$before{$period},
-%          ) or die $sth->errstr;
-%          my $number = $sth->fetchrow_arrayref->[0];
-%        
+%          my @param = ( $today-$after{$period},
+%                        $today+$before{$period},
+%                      );
+%          $cust_sth->execute( @param ) or die $cust_sth->errstr;
+%          my $num_cust = $cust_sth->fetchrow_arrayref->[0];
+%          $pkg_sth->execute(@param) or die $pkg_sth->errstr;
+%          my $num_pkg = $pkg_sth->fetchrow_arrayref->[0];
+
+          <TD CLASS="inv" BGCOLOR="#dddddd" ALIGN="right">
+            <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
+              <TR>
+                <TD ALIGN="right"><B><% $num_cust %></B></TD>
+                <TD ALIGN="left">customers</TD>
+              </TR>
+              <TR>
+                <TD ALIGN="right"><B><% $num_pkg %></B></TD>
+                <TD ALIGN="left">packages</TD>
+              </TR>
+            </TABLE>
+          </TD>
 
-          <TD BGCOLOR="#dddddd" ALIGN="right"><B><% $number %><B></TD>
 % } 
 
       </TR>
@@ -140,8 +124,59 @@ Where a customer heard about your service. Tracked for informational purposes.
   </BODY>
 </HTML>
 <%init>
+
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration')
       || $FS::CurrentUser::CurrentUser->access_right('Edit advertising sources')
       || $FS::CurrentUser::CurrentUser->access_right('Edit global advertising sources');
+
+my $today = timelocal(0, 0, 0, (localtime(time))[3..5] );
+
+tie my %after, 'Tie::IxHash',
+  'Today'         =>        0,
+  'Yesterday'     =>    86400, # 60sec * 60min * 24hrs
+  'Past week'     =>   518400, # 60sec * 60min * 24hrs * 6days
+  'Past 30 days'  =>  2505600, # 60sec * 60min * 24hrs * 29days 
+  'Past 60 days'  =>  5097600, # 60sec * 60min * 24hrs * 59days 
+  'Past 90 days'  =>  7689600, # 60sec * 60min * 24hrs * 89days 
+  'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days 
+  'Past year'     => 31486000, # 60sec * 60min * 24hrs * 364days 
+  'Total'         => $today,
+;
+my %before = (
+  'Today'         =>   86400, # 60sec * 60min * 24hrs
+  'Yesterday'     =>       0,
+  'Past week'     =>   86400, # 60sec * 60min * 24hrs
+  'Past 30 days'  =>   86400, # 60sec * 60min * 24hrs
+  'Past 60 days'  =>   86400, # 60sec * 60min * 24hrs
+  'Past 90 days'  =>   86400, # 60sec * 60min * 24hrs
+  'Past 6 months' =>   86400, # 60sec * 60min * 24hrs
+  'Past year'     =>   86400, # 60sec * 60min * 24hrs
+  'Total'         =>   86400, # 60sec * 60min * 24hrs
+);
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+my $show_agentnums = ( scalar($curuser->agentnums) > 1 );
+
+my $cust_statement = "SELECT COUNT(*) FROM h_cust_main
+                       WHERE history_action = 'insert'
+                         AND refnum = ?
+                         AND history_date >= ?
+                         AND history_date < ?
+                         AND ". $curuser->agentnums_sql;
+my $cust_sth = dbh->prepare($cust_statement)
+  or die dbh->errstr;
+
+my $pkg_statement = "SELECT COUNT(*) FROM h_pkg_referral
+                       LEFT JOIN cust_pkg  USING ( pkgnum )
+                       LEFT JOIN cust_main USING ( custnum )
+                       WHERE history_action = 'insert'
+                         AND h_pkg_referral.refnum = ?
+                         AND history_date >= ?
+                         AND history_date < ?
+                         AND ". $curuser->agentnums_sql;
+my $pkg_sth = dbh->prepare($pkg_statement)
+  or die dbh->errstr;
+
 </%init>
index 886029d..4f02ca2 100644 (file)
@@ -3,6 +3,7 @@
                  'html_init'   => $html_init,
                  'name'        => 'package classes',
                  'disableable' => 1,
+                 'disabled_statuspos' => 2,
                  'query'       => { 'table'     => 'pkg_class',
                                     'hashref'   => {},
                                     'extra_sql' => 'ORDER BY classnum',
index b017f8f..94141ee 100644 (file)
@@ -7,10 +7,12 @@
                                   ],
                  'html_init'   => $html_init,
                  'name'        => $classname . ' reasons',
+                 'disableable' => 1,
+                 'disabled_statuspos' => 3,
                  'query'       => { 'table'     => 'reason',
                                     'hashref'   => {},
-                                    'extra_sql' => $where_clause 
-                                                  'ORDER BY reason_type', 
+                                    'extra_sql' => $where_clause. 
+                                                  ' ORDER BY reason_type', 
                                     'addl_from' => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type', 
                                   },
                  'count_query' => $count_query,
@@ -47,18 +49,7 @@ my $html_init = ucfirst($classname) .
 qq!<A HREF="${p}edit/reason.html?class=$class">!.
 "<I>Add a $classname reason</I></A><BR><BR>";
 
-my $where_clause = "WHERE class='$class'";
-$where_clause .= " AND (disabled = '' OR disabled IS NULL)"
-unless $cgi->param('showdisabled');
-
-my $disabledurl = $cgi->param('showdisabled')
-   ? do { $cgi->param('showdisabled', 0);
-         '( <a href="'. $cgi->self_url. '">hide disabled reasons</a> )'; }
-   : do { $cgi->param('showdisabled', 1);
-         '( <a href="'. $cgi->self_url. '">show disabled reasons</a> )'; }
-   ;
-
-$html_init .= $disabledurl;
+my $where_clause = " WHERE class='$class' ";
 
 my $count_query = 'SELECT COUNT(*) FROM reason LEFT JOIN reason_type on ' .
                 'reason_type.typenum = reason.reason_type ' . $where_clause;
index 0210d85..b0c8a74 100644 (file)
@@ -4,7 +4,8 @@ die "access denied\n"
 
 my $conf = new FS::Conf;
 $FS::Conf::DEBUG = 1;
-my @config_items = $conf->config_items;
+my @config_items = grep { $_->key != ~/^invoice_(html|latex|template)/ }
+                        $conf->config_items;
 my %confitems = map { $_->key => $_ } $conf->config_items;
 
 my $agentnum = $cgi->param('agentnum');
index 4d709e8..bca1f16 100644 (file)
@@ -38,7 +38,7 @@
 % } 
 
   </FONT><BR>
-  <% table("#cccccc", 2) %>
+  <% include('/elements/table.html', '#cccccc' ) %>
   <tr>
     <th colspan="2" bgcolor="#dcdcdc">
       <% ucfirst($section || 'unclassified') %> configuration options
 
 </body></html>
 <%init>
+
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
-my ($conf, $title, @config_items, $agentnum);
-
+my $agentnum = '';
 if ($cgi->param('agentnum') =~ /^(\d+)$/) {
   $agentnum = $1;
 }
 
+my $title;
 if ($agentnum) {
   my $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
   die "Agent $agentnum not found!" unless $agent;
@@ -132,7 +133,10 @@ if ($agentnum) {
   $title = 'Global Configuration';
 }
 
-$conf = new FS::Conf;
-@config_items = grep { $agentnum ? $_->per_agent : 1 } $conf->config_items; 
-
+my $conf = new FS::Conf;
+my @config_items = grep { $agentnum ? $_->per_agent : 1 }
+                   grep { $_->key != ~/^invoice_(html|latex|template)/ }
+                        $conf->config_items; 
 </%init>
index 10bbada..485565e 100644 (file)
@@ -267,11 +267,15 @@ Setting <% $key %>
 </BODY>
 </HTML>
 <%once>
+
 my $conf = new FS::Conf;
-my %confitems = map { $_->key => $_ } $conf->config_items;
-</%once>
+my @config_items = grep { $_->key != ~/^invoice_(html|latex|template)/ }
+                        $conf->config_items; 
+my %confitems = map { $_->key => $_ } @config_items;
 
+</%once>
 <%init>
+
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
index d447512..4686a62 100644 (file)
@@ -1,46 +1,80 @@
 <% include( 'elements/edit.html',
-                 'name'   => 'Internal Access Group',
-                 'table'  => 'access_group',
-                 'labels' => { 
-                               'groupnum'   => 'Group number',
-                               'groupname'  => 'Group name',
-                             },
-
-                 'viewall_dir' => 'browse',
-
-                 'html_bottom' =>
-                   sub {
-                     my $access_group = shift;
-
-                     "<BR>Group virtualized to customers of agents:<BR>".
-                     ntable("#cccccc",2).
-                     '<TR><TD>'.
-                     include( '/elements/checkboxes-table.html',
-                                'source_obj'   => $access_group,
-                                'link_table'   => 'access_groupagent',
-                                'target_table' => 'agent',
-                                'name_col'     => 'agent',
-                                'target_link'  => $p.'edit/agent.cgi?',
-                                'disable-able' => 1,
-                            ).
-                     '</TR></TD></TABLE>'.
-
-                     "<BR>Group rights:<BR>".
-                     ntable("#cccccc",2).
-                     '<TR><TD>'.
-                     include( '/elements/checkboxes-table-name.html',
-                                'source_obj'   => $access_group,
-                                'link_table'   => 'access_right',
-                                'link_static'  => { 'righttype' =>
-                                                      'FS::access_group',
-                                                  },
-                                'num_col'      => 'rightobjnum',
-                                'name_col'     => 'rightname',
-                                'names_list'   => [ FS::AccessRight->rights() ],
-                            ).
-                     '</TR></TD></TABLE>'
-
-                     ;
-                   },
-           )
+              'name'   => 'Internal Access Group',
+              'table'  => 'access_group',
+              'labels' => { 
+                            'groupnum'   => 'Group number',
+                            'groupname'  => 'Group name',
+                          },
+
+              'viewall_dir' => 'browse',
+
+              'html_bottom' => $html_bottom_sub,
+          )
 %>
+<%once>
+
+tie my %rights, 'Tie::IxHash', FS::AccessRight->rights_info;
+
+</%once>
+<%init>
+
+my $html_bottom_sub = sub {
+  my $access_group = shift;
+
+  #some false laziness w/browse/access_group.html
+  my $columns = 3;
+  my $count = 0;
+
+  '<BR>'.
+  '<FONT SIZE="+1">Group limited to these agent(s)</FONT><BR>'.
+  'Employees in this group will only see customers of the selected agents in the system and reports.<BR>'.
+  ntable("#cccccc",2).
+  '<TR><TD>'.
+  include( '/elements/checkboxes-table.html',
+             'source_obj'   => $access_group,
+             'link_table'   => 'access_groupagent',
+             'target_table' => 'agent',
+             'name_col'     => 'agent',
+             'target_link'  => $p.'edit/agent.cgi?',
+             'disable-able' => 1,
+         ).
+  '</TD></TR></TABLE>'.
+
+  '<BR><FONT SIZE="+1">Group access rights</FONT><BR>'.
+  include('/elements/table-grid.html', bgcolor=>'#cccccc' ).
+  '<TR>'. join( '', map {
+    '<TD CLASS="inv" VALIGN="top"><TABLE BGCOLOR="#cccccc" WIDTH=100%>'.
+    '<TR><TH BGCOLOR="#dcdcdc">'. $_. '</TH></TR>'.
+    '<TR><TD>'.
+    include( '/elements/checkboxes-table-name.html',
+               'source_obj'   => $access_group,
+               'link_table'   => 'access_right',
+               'link_static'  => { 'righttype' =>
+                                     'FS::access_group',
+                                 },
+               'num_col'      => 'rightobjnum',
+               'name_col'     => 'rightname',
+               'names_list'   => [ map { 
+                                         my $rn =
+                                           ref($_) ? $_->{'rightname'} : $_;
+                                         my %hash = ();
+                                         $hash{'note'} = '&nbsp;*'
+                                           if ref($_) && $_->{'global'};
+                                         $hash{'desc'} = $_->{'desc'}
+                                           if ref($_) &&  $_->{'desc'};
+                                         [ $rn => \%hash ];
+                                       }
+                                       @{ $rights{$_} }
+                                 ],
+           ).
+    '<BR>'.
+    '</TD></TR></TABLE></TD>'.
+    ( ++$count % $columns ? '' : '</TR><TR>')
+  
+  } keys %rights ). '</TR></TABLE>'.
+  
+  '* Global rights.  These rights provide access to global data which is shared among all agents.  Their use is not recommended for groups which are limited to a subset of agents.<BR>';
+
+};
+
+</%init>
index 5992bfa..830862f 100755 (executable)
@@ -1,25 +1,3 @@
-%
-%
-%my $agent;
-%if ( $cgi->param('error') ) {
-%  $agent = new FS::agent ( {
-%    map { $_, scalar($cgi->param($_)) } fields('agent')
-%  } );
-%} elsif ( $cgi->keywords ) {
-%  my($query) = $cgi->keywords;
-%  $query =~ /^(\d+)$/;
-%  $agent = qsearchs( 'agent', { 'agentnum' => $1 } );
-%} else { #adding
-%  $agent = new FS::agent {};
-%}
-%my $action = $agent->agentnum ? 'Edit' : 'Add';
-%my $hashref = $agent->hashref;
-%
-%my $conf = new FS::Conf;
-%
-%
-
-
 <% include("/elements/header.html","$action Agent", menubar(
   'Main Menu' => $p,
   'View all agents' => $p. 'browse/agent.cgi',
 
 
 <FORM ACTION="<%popurl(1)%>process/agent.cgi" METHOD=POST>
-<INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $hashref->{agentnum} %>">
-Agent #<% $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)" %>
+<INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $agent->agentnum %>">
+Agent #<% $agent->agentnum ? $agent->agentnum : "(NEW)" %>
 
 <% &ntable("#cccccc", 2, '') %>
 
-<TR>
-  <TH ALIGN="right">Agent</TH>
-  <TD><INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="<% $hashref->{agent} %>"></TD>
-</TR>
+  <TR>
+    <TH ALIGN="right">Agent</TH>
+    <TD><INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="<% $agent->agent %>"></TD>
+  </TR>
 
   <TR>
     <TH ALIGN="right">Agent type</TH>
-    <TD><SELECT NAME="typenum" SIZE=1>
-% foreach my $agent_type (qsearch('agent_type',{})) { 
+    <TD>
+      <SELECT NAME="typenum" SIZE=1>
+%       foreach my $agent_type (qsearch('agent_type',{})) { 
 
-    <OPTION VALUE="<% $agent_type->typenum %>"<% ( $hashref->{typenum} && ( $hashref->{typenum} == $agent_type->typenum ) ) ? ' SELECTED' : '' %>>
+          <OPTION VALUE="<% $agent_type->typenum %>"<% ( $agent->typenum && ( $agent->typenum == $agent_type->typenum ) ) ? ' SELECTED' : '' %>>
     <% $agent_type->getfield('typenum') %>: <% $agent_type->getfield('atype') %>
-% } 
-
+%       } 
   
-  </SELECT></TD>
+      </SELECT>
+    </TD>
   </TR>
-  
+
   <TR>
     <TD ALIGN="right">Disable</TD>
-    <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>></TD>
-  </TR>
-  
-  <TR>
-    <TD ALIGN="right"><!--Frequency--></TD>
-    <TD><INPUT TYPE="hidden" NAME="freq" VALUE="<% $hashref->{freq} %>"></TD>
+    <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $agent->disabled eq 'Y' ? ' CHECKED' : '' %>></TD>
   </TR>
+
+  <% include('/elements/tr-select-invoice_template.html',
+               'label'      => 'Invoice template',
+               'field'      => 'invoice_template',
+               'curr_value' => $agent->invoice_template,
+            )
+  %>
   
-  <TR>
-    <TD ALIGN="right"><!--Program--></TD>
-    <TD><INPUT TYPE="hidden" NAME="prog" VALUE="<% $hashref->{prog} %>"></TD>
-  </TR>
 % if ( $conf->config('ticket_system') ) {
 %    my $default_queueid = $conf->config('ticket_system-default_queueid');
 %    my $default_queue = FS::TicketSystem->queue($default_queueid);
@@ -92,24 +69,33 @@ Agent #<% $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)" %>
     </TR>
 % } 
 
-  
-  <TR>
-    <TD ALIGN="right">(DEPRECATED) Agent interface username</TD>
-    <TD>
-      <INPUT TYPE="text" NAME="username" VALUE="<% $hashref->{username} %>">
-    </TD>
-  </TR>
-  
-  <TR>
-    <TD ALIGN="right">(DEPRECATED) Agent interface password</TD>
-    <TD>
-      <INPUT TYPE="text" NAME="_password" VALUE="<% $hashref->{_password} %>">
-    </TD>
-  </TR>
-
 </TABLE>
 
-<BR><INPUT TYPE="submit" VALUE="<% $hashref->{agentnum} ? "Apply changes" : "Add agent" %>">
-    </FORM>
-  </BODY>
-</HTML>
+<BR>
+<INPUT TYPE="submit" VALUE="<% $agent->agentnum ? "Apply changes" : "Add agent" %>">
+
+</FORM>
+
+<% include('/elements/footer.html') %>
+
+<%init>
+
+my $agent;
+if ( $cgi->param('error') ) {
+  $agent = new FS::agent ( {
+    map { $_, scalar($cgi->param($_)) } fields('agent')
+  } );
+} elsif ( $cgi->keywords ) {
+  my($query) = $cgi->keywords;
+  $query =~ /^(\d+)$/;
+  $agent = qsearchs( 'agent', { 'agentnum' => $1 } );
+} else { #adding
+  $agent = new FS::agent {};
+}
+my $action = $agent->agentnum ? 'Edit' : 'Add';
+
+my $conf = new FS::Conf;
+
+</%init>
+
+
index 0a7a8c0..d13732a 100755 (executable)
 
 <!-- agent -->
 
-<% include('/elements/tr-select-agent.html', $cust_main->agentnum,
+<% include('/elements/tr-select-agent.html', 
+              'curr_value'  => $cust_main->agentnum,
               'label'       => "<B>${r}Agent</B>",
               'empty_label' => 'Select agent',
            )
index 17c5ad3..d7d55a2 100644 (file)
-%
-%
-%  # options example...
-%  #
-%  # 'name'  =>
-%  # 'table' =>
-%  # #? 'primary_key' => #required when the dbdef doesn't know...???
-%  # 'labels' => {
-%  #               'column' => 'Label',
-%  #             }
-%  #
-%  # listref - each item is a literal column name (or method) or hashref
-%  #                                                          or (notyet) coderef
-%  # if not specified all columns (except for the primary key) will be editable
-%  # 'fields' => [
-%  #               'columname',
-%  #               { 'field' => 'another_columname',
-%  #                 'type'  => 'text', #text
-%  #                                    #checkbox
-%  #                                    #select
-%  #                                    #hidden - hidden value from object
-%  #                                    #fixed - display fixed value from here
-%  #                                    #fixedhidden - hidden value from here
-%  #                 'value' => 'Y', #for checkbox, fixed, fixedhidden
-%  #               },
-%  #             ]
-%  #
-%  # 'menubar'     => '', #menubar arrayref
-%  #
-%  # #run when re-displaying with an error
-%  # 'error_callback' => sub { my( $cgi, $object ) = @_; },
-%  #
-%  # #run when editing
-%  # 'edit_callback' => sub { my( $cgi, $object ) = @_; },
-%  #
-%  # # returns a hashref for the new object
-%  # 'new_hashref_callback'
-%  #
-%  # #run when adding
-%  # 'new_callback' => sub { my( $cgi, $object ) = @_; },
-%  #
-%  # #XXX describe
-%  # 'field_callback' => sub { },
-%  #
-%  # #string or coderef of additional HTML to add before </TABLE>
-%  # 'html_table_bottom' => '',
-%  #
-%  # 'viewall_dir' => '', #'search' or 'browse', defaults to 'search'
-%  #
-%  # 'html_bottom' => '', #string
-%  # 'html_bottom' => sub {
-%  #                        my $object = shift;
-%  #                        # ...
-%  #                        "html_string";
-%  #                      },
-%  #
-%  # # overrides default popurl(1)."process/$table.html"
-%  # 'post_url' => popurl(1).'process/something', 
-%
-%  my(%opt) = @_;
-%
-%  #false laziness w/process.html
-%  my $table = $opt{'table'};
-%  my $class = "FS::$table";
-%  my $pkey = dbdef->table($table)->primary_key; #? $opt{'primary_key'} || 
-%  my $fields = $opt{'fields'}
-%               #|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
-%               || [ grep { $_ ne $pkey } fields($table) ];
-%  #my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
-%
-%  my $object;
-%  if ( $cgi->param('error') ) {
-%
-%    $object = $class->new( {
-%      map { $_ => scalar($cgi->param($_)) } fields($table)
-%    });
-%
-%    &{$opt{'error_callback'}}($cgi, $object)
-%      if $opt{'error_callback'};
-%
-%  } elsif ( $cgi->keywords || $cgi->param($pkey) ) { #editing
-%
-%    my $value;
-%    if ( $cgi->param($pkey) ) {
-%      $value = $cgi->param($pkey)
-%    } else { 
-%      my( $query ) = $cgi->keywords;
-%      $value = $query;
-%    }
-%    $value =~ /^(\d+)$/ or die "unparsable $pkey";
-%    $object = qsearchs( $table, { $pkey => $1 } );
-%    warn "$table $pkey => $1"
-%      if $opt{'debug'};
-%
-%    &{$opt{'edit_callback'}}($cgi, $object)
-%      if $opt{'edit_callback'};
-%
-%  } else { #adding
-%
-%    my $hashref = $opt{'new_hashref_callback'}
-%                    ? &{$opt{'new_hashref_callback'}}
-%                    : {};
-%
-%    $object = $class->new( $hashref );
-%
-%    &{$opt{'new_callback'}}($cgi, $object)
-%      if $opt{'new_callback'};
-%
-%  }
-%
-%  my $action = $object->$pkey() ? 'Edit' : 'Add';
-%
-%  my $title = "$action $opt{'name'}";
-%
-%  my $viewall_url = $p . ( $opt{'viewall_dir'} || 'search' ) . "/$table.html";
-%  $viewall_url = $opt{'viewall_url'} if $opt{'viewall_url'};  
-%
-%  my @menubar = ();
-%  if ( $opt{'menubar'} ) {
-%    @menubar = @{ $opt{'menubar'} };
-%  } else {
-%    @menubar = (
-%      'Main menu' => $p, #eventually get rid of this when the ACL/UI update is done
-%      #eventually use Lingua::bs to pluralize
-%      "View all $opt{'name'}s" => $viewall_url,
-%    );
-%  }
-%
-%
+<%doc>
+
+Example:
+
+  include( 'elements/edit.html',  
+    'name'  =>
+    'table' =>
+    #? 'primary_key' => #required when the dbdef doesn't know...???
+    'labels' => {
+                  'column' => 'Label',
+                }
+   
+    listref - each item is a literal column name (or method) or hashref
+                                                             or (notyet) coderef
+    if not specified all columns (except for the primary key) will be editable
+    'fields' => [
+                  'columname',
+                  { 'field' => 'another_columname',
+                    'type'  => 'text', #text
+                                       #money
+                                       #checkbox
+                                       #select
+                                       #selectlayers
+                                       #title
+                                       #hidden - hidden value from object
+                                       #fixed - display fixed value from here
+                                       #fixedhidden - hidden value from here
+                    'value' => 'Y', #for checkbox, title, fixed, fixedhidden
+                    'disabled' => 0,
+                    'onchange' => 'javascript_function',
+                    'm2name_table'   => 'table_name',   #only tested w/
+                                                        # selectlayers so far
+                                                        # might work w/select
+                                                        # dunno others
+                    'm2name_namecol' => 'name_column',  # 
+                    'm2name_label'   => 'Label',        #
+                    'm2name_new_default' => \@table_name_objects, #default
+                                                                  #m2name
+                                                                  #objects for
+                                                                  #new records
+                    'm2name_error_callback' => sub { my($cgi, $object) = @_; },
+                    'm2name_remove_warnings' => \%warnings, #hashref of warning
+                                                            #messages for
+                                                            #m2name removal
+                    'm2name_new_js' => 'function_name', #javascript function
+                                                        #called on spawned rows
+                                                        #(one arg: new_element)
+                    'm2name_remove_js' => 'function_name', #js function called
+                                                           #when a row is
+                                                           #deleted
+                                                           #(three args:
+                                                           # value, text,
+                                                           #  'no_match')
+                    #layer_fields & layer_values_callback only for selectlayer
+                    'layer_fields' => [
+                                        'fieldname'     => 'Label',
+                                        'another_field' => {
+                                          label=>'Label',
+                                          type =>'text', #text, money
+                                        },
+                                      ],
+                    'layer_values_callback' =>
+                      sub {
+                            my( $cgi, $object ) = @_;
+                            { 'layer'  => { 'fieldname'  => 'current_value',
+                                            'fieldname2' => 'field2value',
+                                            ...
+                                          },
+                              'layer2' => { 'l2fieldname' => 'l2value',
+                                            ...
+                                          },
+                              ...
+                            };
+                          },
+                  },
+                ]
+   
+    'menubar'     => '', #menubar arrayref
+
+    #agent virtualization
+    'agent_virt'       => 1,
+    'agent_null_right' => 'Access Right Name',
+   
+    #run when re-displaying with an error
+    'error_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; },
+   
+    #run when editing
+    'edit_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; },
+   
+    # returns a hashref for the new object
+    'new_hashref_callback'
+   
+    #run when adding
+    'new_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; },
+   
+    #XXX describe
+    'field_callback' => sub { },
+   
+    #string or coderef of additional HTML to add before </TABLE>
+    'html_table_bottom' => '',
+   
+    'viewall_dir' => '', #'search' or 'browse', defaults to 'search'
+   
+    'html_bottom' => '', #string
+    'html_bottom' => sub {
+                           my $object = shift;
+                           # ...
+                           "html_string";
+                         },
+   
+    # overrides default popurl(1)."process/$table.html"
+    'post_url' => popurl(1).'process/something', 
+  );
+
+</%doc>
+
 <% include("/elements/header.html", $title,
               include( '/elements/menubar.html', @menubar )
            )
 %>
-% if ( $cgi->param('error') ) { 
 
+% if ( $cgi->param('error') ) { 
   <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
   <BR><BR>
 % } 
 
 % my $url = $opt{'post_url'} || popurl(1)."process/$table.html";
 
-<FORM ACTION="<% $url %>" METHOD=POST>
+<FORM ACTION="<% $url %>" METHOD=POST NAME="edit_topform">
+
 <INPUT TYPE="hidden" NAME="svcdb" VALUE="<% $table %>">
 <INPUT TYPE="hidden" NAME="<% $pkey %>" VALUE="<% $object->$pkey() %>">
+
 <% ( $opt{labels} && exists $opt{labels}->{$pkey} )
       ? $opt{labels}->{$pkey}
       : $pkey
 %>
 #<% $object->$pkey() || "(NEW)" %>
 
-<% ntable("#cccccc",2) %>
+%# <% ntable("#cccccc",0) %>
+<TABLE ID="OneTrueTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0>
+
+% my $g_row = 0;
 % foreach my $f ( map { ref($_) ? $_ : {'field'=>$_} }
 %                       @$fields
 %                 ) {
 %
-%    &{ $opt{'field_callback'} }( $f )
-%      if $opt{'field_callback'};
+%   &{ $opt{'field_callback'} }( $f )
+%     if $opt{'field_callback'};
+%
+%   my $field = $f->{'field'};
+%   my $type = $f->{'type'} ||= 'text';
+%
+%   my $label = ( $opt{labels} && exists $opt{labels}->{$field} )
+%                   ? $opt{labels}->{$field}
+%                   : $field;
+%
+%   my $onchange = $f->{'onchange'};
+%
+%   my $layer_values = {};
+%   if ( $f->{'layer_values_callback'} && ! $f->{'m2name_table'} ) {
+%     $layer_values = &{ $f->{'layer_values_callback'} }( $cgi, $object );
+%   }
+%   warn "layer values: ". Dumper($layer_values)
+%     if $opt{'debug'};
+%
+%   my %include_common = (
+%     #checkbox, title
+%     #& deprecated weird value hashref used only by reason.html
+%     'value'         => $f->{'value'},
+%
+%     #select(-*)
+%     'options'       => $f->{'options'},
+%     'labels'        => $f->{'labels'},
+%     'multiple'      => $f->{'multiple'},
+%     'disable_empty' => $f->{'disable_empty'},
+%     #select-reason
+%     'reason_class'  => $f->{'reason_class'},
 %
-%    my $field = $f->{'field'};
-%    my $type = $f->{'type'} ||= 'text';
+%     #selectlayers
+%     'layer_fields'  => $f->{'layer_fields'},
+%     'layer_values'  => $layer_values,
+%     'html_between'  => $f->{'html_between'},
+%   );
 %
+%   my $layer_prefix_on = '';
 %
+%   my $include_sub = sub {
+%     my %opt = @_;
+%
+%     my $fieldnum   = delete $opt{'fieldnum'};
+%
+%     my $include = $type;
+%     $include = "input-$include" if $include =~ /^(text|money)$/;
+%     $include = "tr-$include" unless $include eq 'hidden';
+%
+%     $include_common{'layer_prefix'} = "$field$fieldnum."
+%       if $layer_prefix_on;
+%
+%     my @include = 
+%     ( "/elements/$include.html",
+%         'field'      => "$field$fieldnum",
+%         'id'         => "$field$fieldnum", #separate?
+%         'label_id'   => $field."_label$fieldnum", #don't want field0_label0...
+%         %include_common,
+%         %opt,
+%     );
+%     @include;
+%   };
+%
+%   $g_row++;
+%   $g_row++ if $type eq 'title';
+%
+%   my $fieldnum = '';
+%   my $curr_value = '';
+%   if ( $f->{'m2name_table'} ) { #XXX test this for all types of fields
+%     my $table = $f->{'m2name_table'};
+%     my $col   = $f->{'m2name_namecol'};
+%     $fieldnum = 0;
+%     $layer_prefix_on = 1;
+%     #print out the fields for the existing m2names
+%     my @existing = ();
+%     if ( $mode eq 'error' ) {
+%       @existing = &{ $f->{'m2name_error_callback'} }( $cgi, $object );
+%     } elsif ( $object->$pkey() ) { # $mode eq 'edit'
+%       @existing = $object->$table();
+%     } elsif ( $f->{'m2name_new_default'} ) { # && $mode eq 'new'
+%       @existing = @{ $f->{'m2name_new_default'} };
+%     }
+%     foreach my $name_obj ( @existing ) {
+%
+%       my $ex_label = '<INPUT TYPE="button" VALUE="X" TITLE="Remove this '.
+%                      lc($f->{'m2name_label'}).
+%                      qq(" onClick="remove_$field($fieldnum);").
+%                      ' STYLE="color:#ff0000;font-weight:bold;'.
+%                              'padding-left:2px;padding-right:2px"'.
+%                      '>&nbsp;'. ($f->{'m2name_label'} || $field ). ' ';
+%       
+%       if ( $f->{'layer_values_callback'} ) {
+%         my %switches = ( 'mode' => $mode );
+%         $layer_values =
+%           &{ $f->{'layer_values_callback'} }( $cgi, $name_obj, \%switches );
+%       }
+%       warn "layer values: ". Dumper($layer_values)
+%         if $opt{'debug'};
+%
+%       my @existing = &{ $include_sub }(
+%         'label'        => $ex_label,
+%         'fieldnum'     => $fieldnum,
+%         'curr_value'   => $name_obj->$col(),
+%         'onchange'     => $onchange,
+%         'layer_values' => $layer_values,
+%         'cell_style'   => ( $fieldnum ? 'border-top:1px solid black' : '' ),
+%       );
+
+        <% include( @existing ) %>
 
+%       $fieldnum++;
+%       $g_row++;
+%     }
+%     #$field .= $fieldnum;
+%     $onchange .= "\nspawn_$field(what);";
+%   } else {
+%     $curr_value = $object->$field();
+%   }
+%
+%   my @include = &{ $include_sub }(
+%     'label'      => $label,
+%     'fieldnum'   => $fieldnum,
+%     'curr_value' => $curr_value,
+%     'onchange'   => $onchange,
+%     'cell_style'   => ( $fieldnum ? 'border-top:1px solid black' : '' ),
+%   );
 
-  <TR>
+    <% include( @include ) %>
 
-    <TD ALIGN="right">
-      <% ( $opt{labels} && exists $opt{labels}->{$field} )
-              ? $opt{labels}->{$field}
-              : $field
-      %>
-    </TD>
+%   if ( $f->{'m2name_table'} ) {
 
-% if ( $type eq 'fixed' ) { 
+      <SCRIPT TYPE="text/javascript">
 
-      <TD BGCOLOR="#dddddd"><% $f->{'value'} %></TD>
-      <INPUT TYPE="hidden" NAME="<% $field %>" VALUE="<% $f->{'value'} %>">
+        var rownum = <% $g_row %>;
+        var fieldnum = <% $fieldnum %>;
 
-% } elsif ( $type eq 'fixedhidden' ) {
+        function spawn_<%$field%>(what) {
 
-      <INPUT TYPE="hidden" NAME="<% $field %>" VALUE="<% $f->{'value'} %>">
+          // only spawn if we're the last element... return if not
 
-% } elsif ( $type eq 'checkbox' ) { 
+          var field_regex = /(\d+)$/;
+          var match = field_regex.exec(what.name);
+          if ( !match ) {
+            alert(what.name + " didn't match?!");
+            return;
+          }
+          if ( match[1] != fieldnum ) {
+            return;
+          }
 
-      <TD>
-        <INPUT TYPE="checkbox" NAME="<% $field %>" VALUE="<% $f->{'value'} %>" <% $object->$field() eq $f->{'value'} ? ' CHECKED' : '' %>>
-      </TD>
+          // change the label on the last entry & add a remove button
+          var prev_label = document.getElementById('<% $field %>_label' + fieldnum );
+          prev_label.innerHTML = '<INPUT TYPE="button" VALUE="X" TITLE="Remove this <% lc($f->{'m2name_label'}) %>" onClick="remove_<% $field %>(' + fieldnum + ');" STYLE="color:#ff0000;font-weight:bold;padding-left:2px;padding-right:2px" >&nbsp;<% $f->{'m2name_label'} || $field %>';
 
-% } elsif ( $type eq 'select' ) { 
+          fieldnum++;
 
-      <TD>
-        <SELECT NAME="<% $field %>" 
-%     my $aref = $f->{'value'}{'values'};
-%     my $vkey = $f->{'value'}{'vcolumn'};
-%     my $ckey = $f->{'value'}{'ccolumn'};
-%     foreach my $v (@$aref) {
-         <OPTION <% ($object->$field() eq $v->$vkey) ? 'SELECTED' : '' %>
-           VALUE="<% $v->$vkey %>"><% $v->$ckey %></OPTION>
-%     }
-       </SELECT>
-      </TD>
+          //get the new widget
 
-% } else { 
+%         $include[0] =~ s(^/elements/tr-)(/elements/);
+%         my @layer_opt = ( @include,
+%                           'field'        => $field."MAGIC_NUMBER",
+%                           'layer_prefix' => $field."MAGIC_NUMBER.",
+%                         );
 
-      <TD>
-        <INPUT TYPE="<% $type %>" NAME="<% $field %>" VALUE="<% $object->$field() %>">
-      <TD>
+          var newrow =  <% include(@layer_opt, html_only=>1) |js_string %>;
 
-% } 
+%         if ( $type eq 'selectlayers' ) { #until the rest have html/js_only
+            var newfunc = <% include(@layer_opt, js_only  =>1) |js_string %>;
+%         } else {
+            var newfunc = '';
+%         }
+
+          // substitute in the new field name
+          var magic_regex = /MAGIC_NUMBER/g;
+          newrow  = newrow.replace(  magic_regex, fieldnum );
+          newfunc = newfunc.replace( magic_regex, fieldnum );
+
+          // evaluate new_func
+          if (window.ActiveXObject) {
+            window.execScript(newfunc);
+          } else { /* (window.XMLHttpRequest) */
+            //window.eval(newfunc);
+            setTimeout(newfunc, 0);
+          }
+
+          // add new row
+
+          var table = document.getElementById('OneTrueTable');
+
+          var row = table.insertRow(rownum++);
+
+          var label_cell = document.createElement('TD');
 
-  </TR>
+          label_cell.id = '<% $field %>_label' + fieldnum;
+
+          label_cell.style.textAlign = "right";
+          label_cell.style.verticalAlign = "top";
+          label_cell.style.borderTop = "1px solid black";
+          label_cell.style.paddingTop = "5px";
+
+          label_cell.innerHTML = '<% $label %>';
+
+          row.appendChild(label_cell);
+          
+          var widget_cell = document.createElement('TD');
+
+          widget_cell.style.borderTop = "1px solid black";
+          widget_cell.style.paddingTop = "3px";
+
+          widget_cell.innerHTML = newrow;
+
+          row.appendChild(widget_cell);
+
+%         if ( $f->{'m2name_new_js'} ) {
+            // take out items selected in previous dropdowns
+            var new_element = document.getElementById("<%$field%>" + fieldnum );
+            <% $f->{'m2name_new_js'} %>(new_element);
+
+            if ( new_element.length < 2 ) {
+              //just the ** Select new **, so don't display the row
+              row.style.display = 'none';
+            }
+%         }
+
+        }
+
+        function remove_<%$field%>(remove_fieldnum) {
+          //alert("remove <%$field%> " + remove_fieldnum);
+          var select = document.getElementById('<%$field%>' + remove_fieldnum);
+
+%         my $warnings = $f->{'m2name_remove_warnings'};
+%         if ( $warnings ) {
+            var sel_value = select.options[select.selectedIndex].value;
+%           foreach my $value ( keys %$warnings ) {
+              if ( sel_value == '<% $value %>' ) {
+                if ( ! confirm( <% $warnings->{$value} |js_string %> ) ) {
+                  return;
+                }
+              }
+%           }
+%         }
+
+          select.disabled = 'disabled'; // this seems to prevent it from being submitted on tested browsers so far (IE, moz, konq at least)
+          var label_td = document.getElementById('<%$field%>_label' + remove_fieldnum );
+          label_td.parentNode.style.display = 'none';
+
+%         if ( $f->{m2name_remove_js} ) {
+            var opt = select.options[select.selectedIndex];
+            <% $f->{m2name_remove_js} %>( opt.value, opt.text, 'no_match');
+%         }
+
+        }
+
+      </SCRIPT>
+
+%   }
 
 % } 
 
 
 <BR>
 
-<INPUT TYPE="submit" VALUE="<% $object->$pkey() ? "Apply changes" : "Add $opt{'name'}" %>">
+<INPUT TYPE="submit" ID="submit" VALUE="<% $object->$pkey() ? "Apply changes" : "Add $opt{'name'}" %>">
 
 </FORM>
 
 <% include("/elements/footer.html") %>
+<%init>
+
+my(%opt) = @_;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+#false laziness w/process.html
+my $table = $opt{'table'};
+my $class = "FS::$table";
+my $pkey = dbdef->table($table)->primary_key; #? $opt{'primary_key'} || 
+my $fields = $opt{'fields'}
+             #|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
+             || [ grep { $_ ne $pkey } fields($table) ];
+#my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
+
+if ( $cgi->param('redirect') ) {
+  my $session = $cgi->param('redirect');
+  my $pref = $curuser->option("redirect$session");
+  die "unknown redirect session $session\n" unless length($pref);
+  $cgi = new CGI($pref);
+}
+
+my $object;
+my $mode;
+if ( $cgi->param('error') ) {
+
+  $mode = 'error';
+
+
+  $object = $class->new( {
+    map { $_ => scalar($cgi->param($_)) } fields($table)
+  });
+
+  &{$opt{'error_callback'}}($cgi, $object, $fields)
+    if $opt{'error_callback'};
+
+} elsif ( $cgi->keywords || $cgi->param($pkey) ) { #editing
+
+  $mode = 'edit';
+
+  my $value;
+  if ( $cgi->param($pkey) ) {
+    $value = $cgi->param($pkey)
+  } else { 
+    my( $query ) = $cgi->keywords;
+    $value = $query;
+  }
+  $value =~ /^(\d+)$/ or die "unparsable $pkey";
+  $object = qsearchs({
+    'table'     => $table,
+    'hashref'   => { $pkey => $1 },
+    'extra_sql' => ( $opt{'agent_virt'}
+                       ? ' AND '. $curuser->agentnums_sql(
+                                    'null_right' => $opt{'agent_null_right'}
+                                  )
+                       : ''
+                   ),
+  });
+  warn "$table $pkey => $1"
+    if $opt{'debug'};
+
+  &{$opt{'edit_callback'}}($cgi, $object, $fields)
+    if $opt{'edit_callback'};
+
+} else { #adding
+
+  $mode = 'new';
+
+  my $hashref = $opt{'new_hashref_callback'}
+                  ? &{$opt{'new_hashref_callback'}}
+                  : {};
+
+  $object = $class->new( $hashref );
+
+  &{$opt{'new_callback'}}($cgi, $object, $fields)
+    if $opt{'new_callback'};
+
+}
+
+my $action = $object->$pkey() ? 'Edit' : 'Add';
+
+my $title = "$action $opt{'name'}";
+
+my $viewall_url = $p . ( $opt{'viewall_dir'} || 'search' ) . "/$table.html";
+$viewall_url = $opt{'viewall_url'} if $opt{'viewall_url'};  
+
+my @menubar = ();
+if ( $opt{'menubar'} ) {
+  @menubar = @{ $opt{'menubar'} };
+} else {
+  @menubar = (
+    #eventually use Lingua::bs to pluralize
+    "View all $opt{'name'}s" => $viewall_url,
+  );
+}
 
+</%init>
diff --git a/httemplate/edit/invoice_logo.html b/httemplate/edit/invoice_logo.html
new file mode 100644 (file)
index 0000000..0c45e4b
--- /dev/null
@@ -0,0 +1,136 @@
+<% include("/elements/header.html", "Edit $type2desc{$type} invoice logo",
+             menubar(
+               'View all invoice templates' => $p.'browse/invoice_template.html'
+             )
+          )
+%>
+
+% if ( $error ) { 
+  <FONT SIZE="+1" COLOR="#ff0000">Error: <% $error %></FONT>
+  <BR><BR>
+% } 
+
+% if ( $cgi->param('msg') ) { 
+  <FONT SIZE="+1"><B><% $cgi->param('msg') |h %></B></FONT>
+  <BR><BR>
+% } 
+
+% if ( $mode eq 'upload' ) {
+  <FORM ACTION="invoice_logo.html" METHOD="POST" ENCTYPE="multipart/form-data">
+  <INPUT TYPE="hidden" NAME="mode" VALUE="preview">
+% } elsif ( $mode eq 'preview' ) {
+  <FORM ACTION="process/invoice_logo.html" METHOD="POST">
+  <INPUT TYPE="hidden" NAME="preview_session" VALUE="<% $session %>">
+% }
+
+<INPUT TYPE="hidden" NAME="type" VALUE="<% $type %>">
+<INPUT TYPE="hidden" NAME="name" VALUE="<% $name %>">
+
+<% include('/elements/table-grid.html') %>
+
+<TR>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Current logo</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">New logo preview</TH>
+</TR>
+
+<TR>
+
+  <TD CLASS="grid" BGCOLOR="#ffffff">
+
+%   if ( $type eq 'png' ) {
+
+      <IMG SRC="<% $p %>view/logo.cgi?type=png;name=<% $name %>">
+
+%   } elsif ( $type eq 'eps' ) {
+
+     <i>EPS preview not yet supported</i>
+
+%   }
+
+  </TD>
+
+  <TD CLASS="grid" BGCOLOR="#ffffff">
+
+% if ( $mode eq 'upload' ) {
+
+    Upload new logo (PNG format): <INPUT TYPE="file" NAME="new_logo">
+    <BR><INPUT TYPE="submit" NAME="submit" VALUE="Upload">
+
+% } elsif ( $mode eq 'preview' ) {
+
+    <IMG SRC="<% $p %>view/logo.cgi?type=png;preview_session=<% $session %>">
+
+% }
+
+  </TD>
+
+
+</TR>
+
+</TABLE>
+
+% if ( $mode eq 'preview' ) {
+  <BR>
+  <INPUT TYPE="submit" NAME="submit" VALUE="Change logo">
+% }
+
+</FORM>
+
+<% include("/elements/footer.html") %>
+
+<%once>
+
+my %type2desc = (
+  'png'  => 'online',
+  'eps'  => 'Print/PDF (typeset)',
+);
+
+</%once>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $conf = new FS::Conf;
+
+my $type = $cgi->param('type');
+
+$cgi->param('name') =~ /^([^\.\/]*)$/ or die "illegal name";
+my $name = $1;
+
+$cgi->param('mode') =~ /^(\w*)$/ or die "illegal mode";
+my $mode = $1 || 'upload';
+
+my $error = '';
+my $session = '';
+if ( $mode eq 'preview' ) {
+
+  my $fh = $cgi->upload('new_logo');
+
+  if ( defined $fh ) {
+
+    local $/;
+    my $logo_data = <$fh>;
+
+    $session = int(rand(4294967296)); #XXX
+    my $pref = new FS::access_user_pref({
+      'usernum'    => $FS::CurrentUser::CurrentUser->usernum,
+      'prefname'   => "logo_preview$session",
+      'prefvalue'  => encode_base64($logo_data),
+      'expiration' => time + 3600, #1h?  1m?
+    });
+    my $pref_error = $pref->insert;
+    if ( $pref_error ) {
+      die "FATAL: couldn't set preview cookie: $pref_error\n";
+    }
+
+  } else {
+
+    $mode = 'upload';
+    $error = 'No file uploaded';
+
+  }
+
+}
+
+</%init>
diff --git a/httemplate/edit/invoice_template.html b/httemplate/edit/invoice_template.html
new file mode 100644 (file)
index 0000000..851ab5e
--- /dev/null
@@ -0,0 +1,80 @@
+<% include("/elements/header.html", "Edit $type2desc{$type} invoice template",
+             menubar(
+               'View all invoice templates' => $p.'browse/invoice_template.html'
+             )
+          )
+%>
+
+<FORM ACTION="process/invoice_template.html" METHOD="POST">
+<INPUT TYPE="hidden" NAME="confname" VALUE="<% $confname %>">
+
+% if ( $type eq 'html' ) {
+
+% #init
+  <SCRIPT TYPE="text/javascript" src="<% $p %>elements/fckeditor/fckeditor.js">
+  </SCRIPT>
+
+% #editor
+  <SCRIPT TYPE="text/javascript">
+    var oFCKeditor = new FCKeditor('value');
+    oFCKeditor.Value = <% $value |js_string %>;
+
+    oFCKeditor.BasePath = '<% $p %>elements/fckeditor/';
+    oFCKeditor.Config['SkinPath'] = '<% $p %>elements/fckeditor/editor/skins/silver/';
+    oFCKeditor.Height = '800';
+    oFCKeditor.Config['StartupFocus'] = true;
+
+    oFCKeditor.Create();
+
+  </SCRIPT>
+
+% } else {
+
+  <TEXTAREA NAME="value" ROWS=30 COLS=80 WRAP="off"><%$value |h %></TEXTAREA>
+
+% }
+
+<BR><BR>
+<INPUT TYPE="submit" VALUE="Change template">
+
+</FORM>
+
+<% include("/elements/footer.html") %>
+
+<%once>
+
+my %type2desc = (
+  'html'  => 'HTML',
+  'latex' => 'Print/PDF (typeset)',
+  'text'  => 'Plaintext',
+);
+
+my %type2base = (
+  'html'  => 'invoice_html',
+  'latex' => 'invoice_latex',
+  'text'  => 'invoice_template',
+);
+
+</%once>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $type = $cgi->param('type');
+my $name = $cgi->param('name');
+my $suffix = $cgi->param('suffix');
+
+#XXX type handling, just testing this out for now
+
+my $conf = new FS::Conf;
+
+my $value = length($name)
+              ? join("\n", $conf->config_orbase($type2base{$type}.$suffix, $name) )
+              : join("\n", $conf->config($type2base{$type}.$suffix) );
+
+my $confname = length($name)
+                 ? $type2base{$type}.$suffix. '_'. $name
+                 : $type2base{$type}.$suffix;
+
+</%init>
index 0921a95..ff0e0a3 100755 (executable)
@@ -504,7 +504,14 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %>
 <TABLE BGCOLOR="#cccccc" BORDER=0 WIDTH="100%">
 <TR><TD>
 <TABLE BORDER=0 id="Ctable" style="display:<% $currentreasonclass eq 'C' ? 'inline' : 'none' %>">
-<% include('/elements/tr-select-reason.html', 'creason', 'C', $creason, $newcreasonT, $newcreason) %>
+<% include('/elements/tr-select-reason.html',
+             'field'          => 'creason',
+             'reason_class'   => 'C',
+             'curr_value'     => $creason,
+             'init_type'      => $newcreasonT,
+             'init_newreason' => $newcreason
+          )
+%>
 </TABLE>
 </TR></TD>
 </TABLE>
@@ -512,7 +519,14 @@ Invoice Event #<% $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)" %>
 <TABLE BGCOLOR="#cccccc" BORDER=0 WIDTH="100%">
 <TR><TD>
 <TABLE BORDER=0 id="Stable" style="display:<% $currentreasonclass eq 'S' ? 'inline' : 'none' %>">
-<% include('/elements/tr-select-reason.html', 'sreason', 'S', $sreason, $newsreasonT, $newsreason) %>
+<% include('/elements/tr-select-reason.html',
+             'field'          => 'sreason',
+             'reason_class'   => 'S',
+             'curr_value'     => $sreason,
+             'init_type'      => $newsreasonT,
+             'init_newreason' => $newsreason
+          )
+%>
 </TABLE>
 </TR></TD>
 </TABLE>
diff --git a/httemplate/edit/part_event.html b/httemplate/edit/part_event.html
new file mode 100644 (file)
index 0000000..c94da61
--- /dev/null
@@ -0,0 +1,642 @@
+<% include( 'elements/edit.html',
+              'name'   => 'Billing event definition',
+              'table'  => 'part_event',
+              'fields' => [
+                            'event',
+                            { field   => 'eventtable',
+                              type    => 'select',
+                              options => [ FS::part_event->eventtables ],
+                              labels  => $eventtable_labels,
+                              onchange => 'eventtable_changed',
+                            },
+                            { field   => 'agentnum',
+                              type    => 'select-agent',
+                              disable_empty => $disable_empty_agent,
+                            },
+                            { field   => 'check_freq',
+                              type    => 'select',
+                              options => [ '1d', '1m' ],
+                              labels  => $check_freq_labels,
+                            },
+                            { field   => 'disabled',
+                              type    => 'checkbox',
+                              value   => 'Y',
+                            },
+                            { type    => 'title',
+                              value   => 'Event Conditions',
+                            },
+                            { field   => 'conditionname',
+                              type    => 'selectlayers',
+                              options => [ keys %all_conditions ],
+                              labels  => \%condition_labels,
+                              onchange => 'condition_changed(what);',
+                              layer_fields => \%condition_fields,
+                              layer_values_callback => $condition_layer_values,
+                              html_between       => n_a('action'),
+                              m2name_table       => 'part_event_condition',
+                              m2name_namecol     => 'conditionname',
+                              m2name_label       => 'Condition',
+                              m2name_new_default => \@implicit_condition_objs,
+                              m2name_error_callback  =>
+                                $condition_error_callback,
+                              m2name_remove_warnings =>
+                                \%condition_remove_warnings,
+                              m2name_new_js      => 'condition_repop',
+                              m2name_remove_js   => 'condition_add',
+                            },
+                            { type    => 'title',
+                              value   => 'Event Action',
+                            },
+                            { field   => 'action',
+                              type     => 'selectlayers',
+                              options  => [ keys %all_actions ],
+                              labels   => \%action_labels,
+                              onchange => 'action_changed(what);',
+                              layer_fields => \%action_fields,
+                              layer_values_callback => $action_layer_values,
+                              html_between => n_a('action'),
+                            },
+
+                          ],
+              'labels' => {
+                            'eventpart'  => 'Event',
+                            'event'      => 'Event name',
+                            'eventtable' => 'Type',
+                            'agentnum'   => 'Agent',
+                            'check_freq' => 'Check frequency',
+                            'disabled'   => 'Disable event',
+
+                            'conditionname' => 'Add&nbsp;new&nbsp;condition',
+                            #'weight',
+                            'action'     => 'Action',
+                          },
+              'viewall_dir' => 'browse',
+              'new_callback' => sub { #start empty for new events only
+                my( $cgi, $object, $fields_listref ) = @_; 
+                unshift @{ $fields_listref->[1]{'options'} }, '';
+              },
+              'error_callback' => $error_callback,
+
+              'agent_virt'       => 1,
+              'agent_null_right' => 'Edit global billing events',
+          )
+%>
+<SCRIPT TYPE="text/javascript">
+
+  window.onload = function () { eventtable_changed(document.getElementById('eventtable')) };
+  var notonload = 0;
+
+  function eventtable_changed(what) {
+
+%   if ( $JS_DEBUG ) {
+      alert('eventtable_changed called on ' + what );
+%   }
+
+    var eventtable = what.options[what.selectedIndex].value;
+    var eventdesc  = what.options[what.selectedIndex].text;
+
+    //remove the ** Select type **
+    if ( what.options[0].value == '' && notonload++ > 0 ) {
+      what.options[0] = null;
+    }
+
+    ////
+    // XXX gray out conditions that can't apply?
+    ////
+
+    ////
+    // update condition selects
+    ////
+
+    for ( var cnum=0; document.getElementById('conditionname'+cnum); cnum++ ) {
+      var cond_id = 'conditionname' + cnum;
+      var cond_select = document.getElementById(cond_id);
+
+%     if ( $JS_DEBUG ) {
+        alert('updating ' + cond_id);
+%     }
+
+      // save off the current value
+      var conditionname = cond_select.options[cond_select.selectedIndex].value;
+      var cond_desc     = cond_select.options[cond_select.selectedIndex].text;
+
+      var seen_condition = condition_repop(cond_select);
+
+      var warning = document.getElementById(cond_id + '_warning');
+%     if ( $JS_DEBUG ) {
+        alert('turning off warning; setting style.display of '+ cond_id +
+              '_warning (' + warning + ') to none');
+%     }
+      warning.style.display = 'none';
+
+      if ( ! seen_condition && conditionname != '') {
+        // add the current (not valid) condition back
+        opt(cond_select, conditionname, cond_desc, true );
+        if ( true <% @implicit_conditions
+                       ? ( ' && '. join(' && ', map { "conditionname != '$_'" }
+                                                    @implicit_conditions
+                                       )
+                         )
+                       : ''
+                  %> ) {
+          // turn on a warning and gray out the condition row
+%         if ( $JS_DEBUG ) {
+            alert('turning on warning; setting style.display of '+ cond_id +
+                  '_warning (' + warning + ') to none');
+%         }
+          warning.innerHTML = 'Not applicable to ' + eventdesc + ' events';
+          warning.style.display = '';
+        }
+      }
+
+    }
+
+
+    ////
+    // update action select
+    ////
+
+    // save off the current value first!!
+    var action = what.form.action.options[what.form.action.selectedIndex].value;
+    var a_desc = what.form.action.options[what.form.action.selectedIndex].text;
+    var seen_action = false;
+
+    // blank the current action select
+    for ( var i = what.form.action.length; i >= 0; i-- )
+      what.form.action.options[i] = null;
+
+    if ( action == '' ) {
+      opt(what.form.action, action, a_desc, true );
+    }
+
+    // repopulate it
+%   foreach my $eventtable ( FS::part_event->eventtables ) {
+%     tie my %actions, 'Tie::IxHash', FS::part_event->actions($eventtable);
+%     #use Data::Dumper; warn Dumper(%actions);
+
+      if ( eventtable == '<% $eventtable %>' ) {
+
+%       foreach my $action ( keys %actions ) {
+%         ( my $description = $actions{$action}->{'description'} ) =~ s/'/\\'/g;
+
+          var sel = false;
+          if ( action == '<% $action %>' ) {
+            seen_action = true;
+            sel = true;
+          }
+          opt( what.form.action, '<% $action %>', '<% $description %>', sel );
+%       }
+
+      }
+
+%   }
+
+    // by default, turn off warnings and enable the submit button
+    var warning = document.getElementById('action_warning');
+    warning.style.display = 'none';
+    var submit_button = document.getElementById('submit');
+    submit_button.disabled = '';
+
+    if ( ! seen_action && action != '' ) {
+      // add the current (not valid) action back
+      opt( what.form.action, action, a_desc, true );
+      // turn on a warning and disable the submit button
+      //warning.innerHTML = a_desc + ' event not available as a ' +
+      warning.innerHTML = 'Not available as a ' + eventdesc + ' action';
+      warning.style.display = '';
+      submit_button.disabled = 'disabled';
+    }
+
+  }
+
+  function opt(what,value,text,selected) {
+    var optionName = new Option(text, value, false, selected);
+    var length = what.length;
+    what.options[length] = optionName;
+  }
+
+  function action_changed(what) {
+    // remove '** Select new **'
+    if ( what.options[0].value == '' ) {
+       what.options[0] = null;
+    }
+    // remove the warning, remove the invalid action, enable the submit button
+    var warning = document.getElementById('action_warning');
+    if ( warning.style.display == '' ) {
+      warning.style.display = 'none';
+      what.options[what.length-1] = null;
+      document.getElementById('submit').disabled = '';
+    }
+  }
+
+  function condition_changed(what) {
+    // remove '** Select new **'
+    if ( what.options[0].value == '' ) {
+       what.options[0] = null;
+    }
+
+    var previousValue = what.getAttribute('previousValue');
+    var previousText = what.getAttribute('previousText');
+    var value = what.options[what.selectedIndex].value;
+    var text = what.options[what.selectedIndex].text;
+
+%   foreach my $value ( keys %condition_remove_warnings ) {
+      if ( previousValue == '<% $value %>' ) {
+        if ( !confirm( <% $condition_remove_warnings{$value} |js_string %> ) ) {
+          for ( var i=0; i < what.length; i++ ) {
+            if ( what.options[i].value == previousValue ) {
+              what.selectedIndex = i;
+            }
+          }
+          return false;
+        }
+      }
+%   }
+
+    //alert(previous + ' changed to ' + value);
+
+    var field_regex = /(\d+)$/;
+    var match = field_regex.exec(what.name);
+    if ( !match ) {
+      alert(what.name + " didn't match?!");
+      return;
+    }
+
+    //add the previous condition *back* to all the other selects...
+    condition_add(previousValue, previousText, match[1]);
+
+    what.setAttribute('previousValue', value);
+    what.setAttribute('previousText', text);
+
+    // remove the new condition from all other selects
+    condition_remove(value, match[1]);
+
+  }
+
+  function condition_avail(check_cond, curnum) {
+    for ( var cnum=0; document.getElementById('conditionname'+cnum); cnum++ ) {
+      if ( cnum == curnum ) continue;
+
+      var cond_id = 'conditionname' + cnum;
+      var cond_select = document.getElementById(cond_id);
+
+      //alert("checking " + cond_id + " (" + cond_select.disabled + ")");
+
+      if ( cond_select.disabled ) continue;
+
+      // the current value
+      var conditionname = cond_select.options[cond_select.selectedIndex].value;
+
+      if ( check_cond == conditionname ) return false;
+
+    }
+
+    return true;
+
+  }
+
+  function condition_remove(remove_cond, curnum) {
+
+    if ( remove_cond.length == 0 ) return;
+
+    for ( var cnum=0; document.getElementById('conditionname'+cnum); cnum++ ) {
+      if ( cnum == curnum ) continue;
+
+      var cond_id = 'conditionname' + cnum;
+      var cond_select = document.getElementById(cond_id);
+
+      //for ( var i = cond_select.length; i >= 0; i-- ) {
+      for ( var i=0; i < cond_select.length; i++ ) {
+        if ( cond_select.options[i].value == remove_cond ) {
+          cond_select.options[i] = null;
+        }
+      }
+
+    }
+
+  }
+
+  function condition_add(add_condname, add_conddesc, curnum) {
+
+    if ( add_condname.length == 0 ) return;
+
+    var eventtable_el = document.getElementById('eventtable');
+    var eventtable = eventtable_el.options[eventtable_el.selectedIndex].value;
+
+    var in_eventtable = false;
+
+%   foreach my $eventtable ( FS::part_event->eventtables ) {
+%     tie my %conditions, 'Tie::IxHash',
+%       FS::part_event_condition->conditions($eventtable);
+
+      if ( eventtable == '<% $eventtable %>' ) {
+
+%       foreach my $conditionname ( keys %conditions ) {
+%         my $description = $conditions{$conditionname}->{'description'};
+%         $description =~ s/'/\\'/g;
+
+          if ( add_condname == '<% $conditionname %>' ) {
+            in_eventtable = true;
+          }
+
+%       }
+
+      }
+
+%   }
+
+    if ( ! in_eventtable ) return;
+
+    for ( var cnum=0; document.getElementById('conditionname'+cnum); cnum++ ) {
+      if ( cnum == curnum ) continue;
+
+      var cond_id = 'conditionname' + cnum;
+      var cond_select = document.getElementById(cond_id);
+
+      if ( cond_select.disabled ) continue;
+
+      //alert("adding " + add_condname + " to " + cond_id);
+
+      opt(cond_select, add_condname, add_conddesc, false );
+
+      cond_select.parentNode.parentNode.style.display = '';
+
+    }
+
+  }
+
+  function condition_repop(cond_select) {
+
+    var eventtable_el = document.getElementById('eventtable');
+    var eventtable = eventtable_el.options[eventtable_el.selectedIndex].value;
+
+    // save off the current value
+    var conditionname = cond_select.options[cond_select.selectedIndex].value;
+    var cond_desc     = cond_select.options[cond_select.selectedIndex].text;
+    var seen_condition = false;
+
+    if ( cond_select.disabled ) return false; //skip deleted conditions
+
+    var field_regex = /(\d+)$/;
+    var match = field_regex.exec(cond_select.name);
+    if ( !match ) {
+      alert(what.name + " didn't match?!");
+      return;
+    }
+    var cnum = match[1];
+
+    // blank the current condition select
+    for ( var i = cond_select.length; i >= 0; i-- )
+      cond_select.options[i] = null;
+
+    if ( conditionname == '' ) {
+      opt(cond_select, conditionname, cond_desc, true );
+    }
+
+    // repopulate it
+%   foreach my $eventtable ( FS::part_event->eventtables ) {
+%     tie my %conditions, 'Tie::IxHash',
+%       FS::part_event_condition->conditions($eventtable);
+
+      if ( eventtable == '<% $eventtable %>' ) {
+
+%       foreach my $conditionname ( keys %conditions ) {
+%         my $description = $conditions{$conditionname}->{'description'};
+%         $description =~ s/'/\\'/g;
+
+          var sel = false;
+          if ( conditionname == '<% $conditionname %>' ) {
+            seen_condition = true;
+            sel = true;
+          }
+
+          if ( condition_avail("<% $conditionname %>", cnum) ) {
+            opt(cond_select, '<% $conditionname %>', '<% $description %>', sel);
+          }
+
+%       }
+
+      }
+        
+%   }
+
+    if ( cond_select.length > 1 || cond_select.length == 1 && cond_select.options[0].value.length > 0 ) {
+       
+      cond_select.parentNode.parentNode.style.display = '';
+
+    } else {
+      cond_select.parentNode.parentNode.style.display = 'none';
+    }
+
+    return seen_condition;
+
+  }
+
+</SCRIPT>
+<%once>
+
+#misc (eventtable, check_freq)
+
+my $eventtable_labels = FS::part_event->eventtable_labels;
+$eventtable_labels->{''} = '** Select type **';
+
+my $check_freq_labels = FS::part_event->check_freq_labels;
+
+#conditions
+
+tie my %all_conditions, 'Tie::IxHash', 
+  '' => { 'description' => '*** Select new condition ***', },
+  FS::part_event_condition->conditions();
+
+my %condition_labels = map { $_ => $all_conditions{$_}->{'description'} }
+                           keys %all_conditions;
+
+#my %condition_fields = map { $_ => $all_conditions{$_}->{option_fields} } 
+#                           keys %all_conditions;
+my %condition_fields = map { my $c = $_;
+                             tie my %opts, 'Tie::IxHash',
+                               @{ $all_conditions{$c}->{'option_fields'} || []};
+                             %opts = ( map { ( "$c.$_" => $opts{$_} ); }
+                                           keys %opts
+                                     );
+                             ( $c => [ %opts ] );
+                           } 
+                           keys %all_conditions;
+
+my @implicit_conditions = sort { $all_conditions{$a}->{'implicit_flag'} <=>
+                                 $all_conditions{$b}->{'implicit_flag'}
+                               }
+                          grep { $all_conditions{$_}->{'implicit_flag'} }
+                          keys %all_conditions;
+
+my @implicit_condition_objs = map {
+                                    new FS::part_event_condition {
+                                      'conditionname' => $_,
+                                    };
+                                  }
+                                  @implicit_conditions;
+
+my %condition_remove_warnings =
+  map  { ( $_ => $all_conditions{$_}->{'remove_warning'} ); }
+  grep { $all_conditions{$_}->{'remove_warning'} }
+  keys %all_conditions;
+
+#actions
+
+tie my %all_actions, 'Tie::IxHash', 
+  '' => { 'description' => '*** Select event action ***', },
+  FS::part_event->actions();
+
+my %action_labels = map { $_ => $all_actions{$_}->{'description'} }
+                        keys %all_actions;
+
+#my %action_fields = map { $_ => $all_actions{$_}->{option_fields} }
+#                        keys %all_actions;
+my %action_fields = map { my $action = $_;
+                          tie my %opts, 'Tie::IxHash',
+                            @{ $all_actions{$action}->{option_fields} || [] };
+                          %opts = ( map { ( "$action.$_" => $opts{$_} ); }
+                                        keys %opts
+                                  );
+                          ( $action => [ %opts ] );
+                        }
+                        keys %all_actions;
+
+#subs
+
+sub n_a {
+  my $t = shift;
+
+  return sub {
+    my $field = shift;
+    qq( <FONT ID="${field}_warning" STYLE="display:none" COLOR="#FF0000">).
+      "Party Party Join us Join us".
+      '</FONT>';
+  };
+}
+
+my $action_layer_values = sub {
+  my( $cgi, $part_event ) = @_;
+  my $action = $cgi->param('action') || $part_event->action;
+  return {} unless $action;
+  scalar( #force hashref
+    {
+      #map { $_ => { $part_event->options } }
+      #    keys %action_fields
+      map { my $action = $_;
+            my %fields = @{ $action_fields{$action} };
+            my %obj_opts = $part_event->options;
+            %obj_opts = map { ( "$action.$_" => $obj_opts{$_} ); }
+                            keys %obj_opts;
+            my %opts =
+              map { #false laziness w/process/part_event.html
+                    my $option = $_;
+                    my $value = scalar($cgi->param($_)) || $obj_opts{$_};
+
+                    if ( $option =~ /^(.*)\.reasonnum$/ && $value == -1 ) {
+                      $value = {
+                        'typenum' => scalar( $cgi->param( "new${option}T" ) ),
+                        'reason'  => scalar( $cgi->param( "new${option}"  ) ),
+                      };
+                    }
+
+                    ( $option => $value );
+
+                  }
+                  keys %fields;
+            ( $action => \%opts );
+          }
+          keys %action_fields
+    }
+  );
+};
+
+tie my %cgi_conditions, 'Tie::IxHash';
+
+my $error_callback = sub {
+  my( $cgi, $object, $fields_listref ) = @_;
+
+  my @cond_params = grep /^conditionname\d+$/, $cgi->param;
+
+  %cgi_conditions = map {
+    my $param = $_;
+    my $conditionname = $cgi->param($param);
+    $conditionname => {
+      map { 
+
+        my $cgi_key = $_;
+        $cgi_key =~ /^$param\.$conditionname\.(.*)$/ or die 'wtf!';
+        my $key = $1;
+        #my $value = $cgi->param($_);
+
+        #my $info = $all_conditions->{$conditionname}
+        my %cond_opts =
+          @{ $all_conditions{$conditionname}->{'option_fields'} || []};
+        my $info = $cond_opts{$key};
+
+        my $value;
+        #false laziness w/process/part_event.html
+        if (      $info->{'type'} =~ /^(select|checkbox)-?multiple$/
+               or $info->{'type'} =~ /^select/ && $info->{'multiple'} ) {
+          $value = { map { $_ => 1 } $cgi->param($cgi_key) };
+        } elsif ( $info->{'type'} eq 'freq' ) {
+          $value = $cgi->param($cgi_key). $cgi->param($cgi_key.'_units');
+        } else {
+          $value = $cgi->param($cgi_key);
+        }
+
+        $key => $value;
+
+      } grep /^$param\.$conditionname\./, $cgi->param
+    };
+  } grep $cgi->param($_), grep /^conditionname\d+$/, $cgi->param;
+
+};
+
+my $condition_error_callback = sub {
+  map {
+    new FS::part_event_condition { 'conditionname' => $_, };
+  } keys %cgi_conditions;
+};
+
+my $condition_layer_values = sub {
+  #m2name_table option causes this to be
+  # part_event_condition instead of part_event
+  my ( $cgi, $part_event_condition, $switches ) = @_;
+  scalar( #force hashref
+    {
+      #map { $_ => { $part_event_condition->options } }
+      #    keys %condition_fields
+      map { my $conditionname = $_;
+            my %opts = $switches->{'mode'} eq 'error'
+                       ? %{ $cgi_conditions{$conditionname} || {} }
+                       : $part_event_condition->options;
+            %opts = (
+              map { ( "$conditionname.$_" => $opts{$_} ); }
+                  keys %opts
+            );
+            ( $conditionname => \%opts );
+          }
+          keys %condition_fields
+    }
+  );
+};
+
+
+</%once>
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('Edit billing events')
+      || $curuser->access_right('Edit global billing events');
+
+my $disable_empty_agent= ! $curuser->access_right('Edit global billing events');
+
+%cgi_conditions = ();
+my $use_cgi_conditions = 0;
+
+my $JS_DEBUG = 0;
+
+</%init>
index bdd3f30..90e328d 100755 (executable)
@@ -89,7 +89,10 @@ Package information
       <INPUT TYPE="text" NAME="comment" SIZE=32 VALUE="<%$part_pkg->comment%>">
     </TD>
   </TR>
-  <% include( '/elements/tr-select-pkg_class.html', $part_pkg->classnum ) %>
+  <% include( '/elements/tr-select-pkg_class.html',
+                'curr_value' => $part_pkg->classnum,
+            )
+  %>
   <TR>
     <TD ALIGN="right">Promotional code</TD>
     <TD>
@@ -290,7 +293,7 @@ Reseller information
 %  'form_action'    => 'process/part_pkg.cgi',
 %  'form_elements'  => \@form_elements,
 %  'form_text'      => [ qw(pkg comment promo_code clone pkgnum pkgpart),
-%                        qw(pay_weight credit_weight),
+%                        qw(pay_weight credit_weight), #keys(%weight),
 %                        @fixups,
 %                      ],
 %  'form_checkbox'  => [ qw(setuptax recurtax disabled) ],
index 7ce5217..f4572c0 100755 (executable)
@@ -1,9 +1,12 @@
 <% include( 'elements/edit.html',
                 'name'        => 'Advertising source',
                 'table'       => 'part_referral',
-                'fields'      => [ 'referral' ],
-                'labels'      => { 'referral' => 'Advertising source' },
+                'fields'      => [ 'referral',
+                                   { field=>'agentnum', type=>'select-agent', },
+                                 ],
+                'labels'      => { 'referral' => 'Advertising source',
+                                   'agentnum' => 'Agent',
+                                 },
                 'viewall_dir' => 'browse',
-                'html_table_bottom' => include('/elements/tr-select-agent.html'),
            )
 %>
index c803115..581b50f 100644 (file)
@@ -10,6 +10,7 @@
                      'num_col'      => 'rightobjnum',
                      'name_col'     => 'rightname',
                      'names_list'   => [ FS::AccessRight->rights() ],
+                     'param_style'  => 'link_table.value checkboxes',
                },
            )
 %>
index e388c67..19d3fbe 100644 (file)
-%
-%
-%  # options example...
-%  # 
-%  ###
-%  ##req
-%  ##
-%  #
-%  # 'table' => 
-%  #
-%  # #? 'primary_key' => #required when the dbdef doesn't know...???
-%  # #? 'fields' => []
-%  #
-%  ###
-%  ##opt
-%  ###
-%  #
-%  # 'viewall_dir' => '', #'search' or 'browse', defaults to 'search'
-%  # OR
-%  # 'redirect'    => 'view/table.cgi?', # value of primary key is appended
-%  #
-%  # 'error_redirect' => popurl(2).'edit/table.cgi?', #query string appended
-%  #
-%  # 'edit_ext' => 'html', #defaults to 'html', you might want 'cgi' while the
-%  #                       #naming is still inconsistent
-%  # 
-%  # 'copy_on_empty'  => [ 'old_field_name', 'another_old_field', ... ],
-%  # 
-%  # 'clear_on_error' => [ 'form_field1', 'form_field2', ... ],
-%  # 
-%  # 'process_m2m' => { 'link_table'   => 'link_table_name',
-%  #                    'target_table' => 'target_table_name',
-%  #                  },
-%  # 'process_m2name' => { 'link_table'   => 'link_table_name',
-%  #                       'link_static' => { 'column' => 'value' },
-%  #                       'num_col' => 'column', #if column name is different in
-%  #                                              #link_table than source_table 
-%  #                       'name_col' => 'name_column',
-%  #                       'names_list' => [ 'list', 'names' ],
-%  #                     },
-%
-%  my(%opt) = @_;
-%
-%  #false laziness w/edit.html
-%  my $table = $opt{'table'};
-%  my $class = "FS::$table";
-%  my $pkey = dbdef->table($table)->primary_key; #? $opt{'primary_key'} || 
-%  my $fields = $opt{'fields'}
-%               #|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
-%               || [ fields($table) ];
-%
-%  my $pkeyvalue = $cgi->param($pkey);
-%
-%  my $old = qsearchs( $table, { $pkey => $pkeyvalue } ) if $pkeyvalue;
-%
-%  my $new = $class->new( {
-%    map {
-%      $_, scalar($cgi->param($_));
-%    } @$fields
-%  } );
-%
-%  if ($old && exists($opt{'copy_on_empty'})) {
-%    foreach my $field (@{$opt{'copy_on_empty'}}) {
-%      $new->set($field, $old->get($field))
-%        unless scalar($cgi->param($field));
-%    }
-%  }
-%
-%  my $error;
-%  if ( $pkeyvalue ) {
-%    $error = $new->replace($old);
-%  } else {
-%    $error = $new->insert;
-%    $pkeyvalue = $new->getfield($pkey);
-%  }
-%
-%  if ( !$error && $opt{'process_m2m'} ) {
-%    $error = $new->process_m2m( %{ $opt{'process_m2m'} },
-%                                'params' => scalar($cgi->Vars),
-%                              );
-%  }
-%
-%  if ( !$error && $opt{'process_m2name'} ) {
-%    $error = $new->process_m2name( %{ $opt{'process_m2name'} },
-%                                   'params' => scalar($cgi->Vars),
-%                                 );
-%  }
-%
-%  # XXX print?!?!
-%
-%  if ( $error ) {
-%    $cgi->param('error', $error);
-%    if (scalar(@{$opt{'clear_on_error'}})) {
-%      foreach my $field (@{$opt{'clear_on_error'}}) {
-%        $cgi->param($field, '')
-%      }
-%    }
-%    my $edit_ext = $opt{'edit_ext'} || 'html';
-%    my $url = $opt{'error_redirect'} || popurl(2)."$table.$edit_ext?";
-%    print $cgi->redirect($url. $cgi->query_string );
-%  } elsif ( $opt{'redirect'} ) {
-%    print $cgi->redirect( $opt{'redirect'}. $pkeyvalue );
-%  } else { 
-%    print $cgi->redirect( popurl(3).
-%                          ( $opt{'viewall_dir'} || 'search' ).
-%                          "/$table.html"
-%                        );
-%  }
-%
-%
+<%doc>
 
+Example:
+
+ include( 'elements/process.html',
+
+   ###
+   # required
+   ###
+
+  'table' => 'tablename',
+
+   #? 'primary_key' => #required when the dbdef doesn't know...???
+   #? 'fields' => []   #""
+
+   ###
+   # optional
+   ###
+
+   'viewall_dir' => '', #'search' or 'browse', defaults to 'search'
+   OR
+   'redirect'    => 'view/table.cgi?', # value of primary key is appended
+
+   'error_redirect' => popurl(2).'edit/table.cgi?', #query string appended
+
+   'edit_ext' => 'html', #defaults to 'html', you might want 'cgi' while the
+                         #naming is still inconsistent
+
+   'copy_on_empty'  => [ 'old_field_name', 'another_old_field', ... ],
+
+   'clear_on_error' => [ 'form_field1', 'form_field2', ... ],
+
+   'process_m2m' => { 'link_table'   => 'link_table_name',
+                      'target_table' => 'target_table_name',
+                    },
+   'process_m2name' => { 'link_table'   => 'link_table_name',
+                         'link_static' => { 'column' => 'value' },
+                         'num_col' => 'column', #if column name is different in
+                                                #link_table than source_table 
+                         'name_col' => 'name_column',
+                         'names_list' => [ 'list', 'names' ],
+                         
+                         'param_style' => 'link_table.value checkboxes',
+                         #or#
+                         'param_style' => 'name_colN values',
+
+
+                       },
+
+   #supplies arguments to insert() and replace()
+   # for use with tables that are FS::option_Common
+   'args_callback' => sub { my( $cgi, $object ) = @_; },
+
+   'debug' => 1, #turns on debugging output
+
+   #agent virtualization
+   'agent_virt'       => 1,
+   'agent_null_right' => 'Access Right Name',
+
+ )
+
+</%doc>
+<%once>
+
+  my $me = 'process.html:';
+
+</%once>
+<%init>
+
+my(%opt) = @_;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+#false laziness w/edit.html
+my $table = $opt{'table'};
+my $class = "FS::$table";
+my $pkey = dbdef->table($table)->primary_key; #? $opt{'primary_key'} || 
+my $fields = $opt{'fields'}
+             #|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
+             || [ fields($table) ];
+
+my $pkeyvalue = $cgi->param($pkey);
+
+my $old = '';
+if ( $pkeyvalue ) {
+  $old = qsearchs({
+    'table'   => $table,
+    'hashref' => { $pkey => $pkeyvalue },
+    'extra_sql' => ( $opt{'agent_virt'}
+                       ? ' AND '. $curuser->agentnums_sql(
+                                    'null_right' => $opt{'agent_null_right'}
+                                  )
+                       : ''
+                   ),
+  });
+}
+
+my %hash = map { $_ => scalar($cgi->param($_)) } @$fields;
+
+my $new = $class->new( \%hash );
+
+if ( $opt{'agent_virt'} ) {
+  die "illegal agentnum"
+    unless $curuser->agentnums_href->{$new->agentnum}
+        or $opt{'agent_null_right'}
+           && ! $new->agentnum
+           && $curuser->access_right($opt{'agent_null_right'});
+}
+
+if ($old && exists($opt{'copy_on_empty'})) {
+  foreach my $field (@{$opt{'copy_on_empty'}}) {
+    $new->set($field, $old->get($field))
+      unless scalar($cgi->param($field));
+  }
+}
+
+my $error = $new->check;
+
+my @args = ();
+if ( !$error && $opt{'args_callback'} ) {
+  @args = &{ $opt{'args_callback'} }( $cgi, $new );
+}
+
+if ( !$error && $opt{'debug'} ) {
+  warn "$me updating record in $table table using $class class\n";
+  warn Dumper(\%hash);
+  warn "with args: \n". Dumper(\@args) if @args;
+}
+
+if ( !$error ) {
+  if ( $pkeyvalue ) {
+    $error = $new->replace($old, @args);
+  } else {
+    $error = $new->insert(@args);
+    $pkeyvalue = $new->getfield($pkey);
+  }
+}
+
+if ( !$error && $opt{'process_m2m'} ) {
+
+  if ( $opt{'debug'} ) {
+    warn "$me processing m2m:\n". Dumper( %{ $opt{'process_m2m'} },
+                                          'params' => scalar($cgi->Vars),
+                                        );
+  }
+
+  $error = $new->process_m2m( %{ $opt{'process_m2m'} },
+                              'params' => scalar($cgi->Vars),
+                            );
+}
+
+if ( !$error && $opt{'process_m2name'} ) {
+
+  if ( $opt{'debug'} ) {
+    warn "$me processing m2name:\n". Dumper( %{ $opt{'process_m2name'} },
+                                             'params' => scalar($cgi->Vars),
+                                           );
+  }
+
+  $error = $new->process_m2name( %{ $opt{'process_m2name'} },
+                                 'params' => scalar($cgi->Vars),
+                               );
+}
+
+# XXX print?!?!
+
+if ( $error ) {
+  $cgi->param('error', $error);
+  if ( $opt{'clear_on_error'} && scalar(@{$opt{'clear_on_error'}}) ) {
+    foreach my $field (@{$opt{'clear_on_error'}}) {
+      $cgi->param($field, '')
+    }
+  }
+  my $edit_ext = $opt{'edit_ext'} || 'html';
+  my $url = $opt{'error_redirect'} || popurl(2)."$table.$edit_ext";
+  if ( length($cgi->query_string) > 1920 ) { #stupid IE 2083 URL limit
+
+    my $session = int(rand(4294967296)); #XXX
+    my $pref = new FS::access_user_pref({
+      'usernum'    => $FS::CurrentUser::CurrentUser->usernum,
+      'prefname'   => "redirect$session",
+      'prefvalue'  => $cgi->query_string,
+      'expiration' => time + 3600, #1h?  1m?
+    });
+    my $pref_error = $pref->insert;
+    if ( $pref_error ) {
+      die "FATAL: couldn't even set redirect cookie: $pref_error".
+          " attempting to set redirect$session to ". $cgi->query_string."\n";
+    }
+    print $cgi->redirect("$url?redirect=$session");
+  } else {
+    print $cgi->redirect("$url?". $cgi->query_string );
+  } 
+} elsif ( $opt{'redirect'} ) {
+  print $cgi->redirect( $opt{'redirect'}. $pkeyvalue );
+} else { 
+  print $cgi->redirect( popurl(3).
+                        ( $opt{'viewall_dir'} || 'search' ).
+                        "/$table.html"
+                      );
+}
+
+</%init>
diff --git a/httemplate/edit/process/invoice_logo.html b/httemplate/edit/process/invoice_logo.html
new file mode 100644 (file)
index 0000000..d641a99
--- /dev/null
@@ -0,0 +1,26 @@
+<%init>
+
+my $curuser =  $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('Configuration');
+
+my $conf = new FS::Conf;
+
+$cgi->param('type') =~ /^(png|eps)$/ or die "illegal type";
+my $type = $1;
+
+$cgi->param('name') =~ /^([^\.\/]*)$/ or die "illegal name";
+my $tname = my $name = $1;
+$tname = "_$tname" if length($tname);
+
+$cgi->param('preview_session') =~ /^(\w*)$/ or die "illegal preview_session";
+my $session = $1;
+my $data = decode_base64( $curuser->option("logo_preview$session") );
+
+$conf->set("logo$name.$type", $data);
+
+$cgi->redirect(popurl(3). "edit/invoice_logo.html?type=$type;name=$name;msg=Logo%20changed");
+
+</%init>
+
diff --git a/httemplate/edit/process/invoice_template.html b/httemplate/edit/process/invoice_template.html
new file mode 100644 (file)
index 0000000..6c9371a
--- /dev/null
@@ -0,0 +1,15 @@
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $conf = new FS::Conf;
+
+my $confname = $cgi->param('confname');
+my $value = $cgi->param('value');
+
+$conf->set($confname, $value);
+
+$cgi->redirect(popurl(3). 'browse/invoice_template.html');
+
+</%init> 
diff --git a/httemplate/edit/process/part_event.html b/httemplate/edit/process/part_event.html
new file mode 100644 (file)
index 0000000..428025f
--- /dev/null
@@ -0,0 +1,86 @@
+<% include( 'elements/process.html',
+    #'debug'          => 1,
+    'table'          => 'part_event',
+    'viewall_dir'    => 'browse',
+    'process_m2name' =>
+      {
+        'link_table'    => 'part_event_condition',
+        'num_col'       => 'eventpart',
+        'name_col'      => 'conditionname',
+        'names_list'    => [ FS::part_event_condition->all_conditionnames() ],
+        'param_style'   => 'name_colN values',
+        'args_callback' => sub { # FS/FS/m2name_Common.pm
+          my( $object, $prefix, $params, $listref ) = @_;
+          #warn "$object $prefix $params $listref\n";
+
+          my $cond = $object->conditionname;
+
+          my %option_fields = $object->option_fields;
+
+          push @$listref, map {
+                                my $field = $_;
+
+                                my $cgi_field = "$prefix$cond.$field";
+
+                                my $value = $params->{$cgi_field};
+
+                                my $info = $option_fields{$_};
+                                $info = { label=>$info, type=>'text' }
+                                  unless ref($info);
+
+                                if ( $info->{'type'} =~
+                                       /^(select|checkbox)-?multiple$/
+                                     or $info->{'type'} =~ /^select/
+                                        && $info->{'multiple'}
+                                   )
+                                {
+                                  #special processing for compound fields
+                                  $value = { map { $_ => 1 }
+                                                 split(/\0/, $value)
+                                           };
+                                } elsif ( $info->{'type'} eq 'freq' ) {
+                                  $value .= $params->{$cgi_field.'_units'};
+                                }
+
+                                #warn "value of $cgi_field is $value\n";
+
+                                ( $field => $value );
+                              }
+                              keys %option_fields;
+        },
+      },
+
+    'args_callback' => sub {
+
+      my( $cgi, $object ) = @_;
+
+      my $prefix = $object->action.'.';
+
+      map { my $option = $_;
+            #my $value = scalar( $cgi->param( "$prefix$option" ) );
+            my $value = join(',', $cgi->param( "$prefix$option" ) );
+
+            if ( $option eq 'reasonnum' && $value == -1 ) {
+              $value = {
+                'typenum' => scalar( $cgi->param( "new$prefix${option}T" ) ),
+                'reason'  => scalar( $cgi->param( "new$prefix${option}"  ) ),
+              };
+            }
+
+            ( $option => $value );
+          }
+          @{ $object->option_fields_listref };
+
+    },
+
+    'agent_virt'       => 1,
+    'agent_null_right' => 'Edit global billing events',
+)
+%>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Edit billing events')
+      || $FS::CurrentUser::CurrentUser->access_right('Edit global billing events');
+
+</%init>
index 7afc9f2..66d02e3 100644 (file)
@@ -1,5 +1,3 @@
-%
-%
 %#untaint custnum
 %$cgi->param('custnum') =~ /^(\d+)$/
 %  or die 'illegal custnum '. $cgi->param('custnum');
@@ -9,19 +7,21 @@
 %my $pkgpart = $1;
 %
 %my @cust_pkg = ();
-%my $error = FS::cust_pkg::order($custnum, [ $pkgpart ], [], \@cust_pkg, );
+%my $error = FS::cust_pkg::order($custnum, [ $pkgpart ], [], \@cust_pkg, [ $cgi->param('refnum') ] );
 %
 %if ($error) {
-%
-
-<!-- mason kludge -->
-%
-%  eidiot($error);
+%  $cgi->param('error', $error);
+%  print $cgi->redirect(popurl(2). 'misc/order_pkg.html?'. $cgi->query_string );
 %} else {
-%  print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum".
-%                       "#cust_pkg". $cust_pkg[0]->pkgnum );
-%}
-%
-%
+%  my $frag = "cust_pkg". $cust_pkg[0]->pkgnum;
+<% header('Package ordered') %>
+  <SCRIPT TYPE="text/javascript">
+    // XXX fancy ajax rebuild table at some point, but a page reload will do for now
 
+    // XXX chop off trailing #target and replace... ?
+    window.top.location = '<% popurl(3). "view/cust_main.cgi?keywords=$custnum;fragment=$frag#$frag" %>';
 
+  </SCRIPT>
+
+  </BODY></HTML>
+%}
index 7c0722c..c652a08 100644 (file)
@@ -25,6 +25,8 @@
                 'fields' => [
                               { 'field' => 'reason_type',
                                 'type'  => 'select',
+                                 #XXX use something more sane than a hashref
+                                 #then fix tr-select.html
                                 'value' => { 'vcolumn' => 'typenum',
                                              'ccolumn' => 'type',
                                              'values'  => \@types,
@@ -32,7 +34,7 @@
                               },
                               'reason',
                               { 'field' => 'class',
-                                'type'  => 'fixedhidden',
+                                'type'  => 'hidden',
                                 'value' => $class,
                               },
                               { 'field' => 'disabled',
index 0a92e45..1638b9c 100644 (file)
@@ -1,56 +1,54 @@
+<%doc>
+
+Example:
+
+  include( '/elements/checkboxes-table-name.html',
+
+    ###
+    # required
+    ###
+    'link_table'      => 'table_name',
+   
+    'name_col' => 'name_column',
+    #or
+    'name_callback' => sub { },
+   
+    'names_list' => [ 'value',
+                      'other value',
+                      [ 'complex value' => { 'desc' => "Add'l description",
+                                             'note' => '&nbsp;*',
+                                           }
+                      ],
+                    ],
+   
+    ###
+    # recommended (required?)
+    ###
+    'source_obj'   => $obj,
+    #or?
+    #'source_table' => 'table_name',
+    #'sourcenum'    => '4', #current value of primary key in source_table
+    #                       # (none is okay, just pass it if you have it)
+
+    ###
+    # optional
+    ###
+    'num_col' => 'col_name' #if column name is different in link_table than
+                            #source_table
+    'link_static' => { 'column' => 'value' },
+
+  )
+
+</%doc>
+
+<TABLE CELLSPACING=0 CELLPADDING=0>
+
+% foreach my $item ( @{ $opt{'names_list'} } ) {
 %
-%
-%  ##
-%  # required
-%  ##
-%  # 'link_table'      => 'table_name',
-%  #
-%  # 'name_col' => 'name_column',
-%  # #or
-%  # 'name_callback' => sub { },
-%  #
-%  # 'names_list' => [ 'value', 'other value' ],
-%  #
-%  ##
-%  # recommended (required?)
-%  ##
-%  # 'source_obj'   => $obj,
-%  # #or?
-%  # #'source_table' => 'table_name',
-%  # #'sourcenum'    => '4', #current value of primary key in source_table
-%  # #                       # (none is okay, just pass it if you have it)
-%  ##
-%  # optional
-%  ##
-%  # 'num_col' => 'col_name' #if column name is different in link_table than
-%  #                         #source_table
-%  # 'link_static' => { 'column' => 'value' },
-%
-%  my( %opt ) = @_;
-%
-%  my( $source_pkey, $sourcenum, $source_obj );
-%  if ( $opt{'source_obj'} ) {
-%
-%    $source_obj = $opt{'source_obj'};
-%    #$source_table = $source_obj->dbdef_table->table;
-%    $source_pkey = $source_obj->dbdef_table->primary_key;
-%    $sourcenum = $source_obj->$source_pkey();
-%
-%  } else {
-%
-%    #$source_obj?
-%    $source_pkey = $opt{'source_table'}
-%                     ? dbdef->table($opt{'source_table'})->primary_key
-%                     : '';
-%    $sourcenum = $opt{'sourcenum'};
-%  }
-%
-%  $source_pkey = $opt{'num_col'} || $source_pkey;
-%
-%  my $link_static = $opt{'link_static'} || {};
-%
-%
-% foreach my $name ( @{ $opt{'names_list'} } ) {
+%     my $name = ref($item) ? $item->[0] : $item;
+%     ( my $display = $name ) =~ s/ /&nbsp;/g;
+%     $display .= $item->[1]{note} if ref($item) && $item->[1]{note};
+%     my $desc = ref($item) && $item->[1]{desc} ? $item->[1]{desc} : '';
 %
 %     my $checked;
 %     if ( $cgi->param('error') ) {
 %                    : ''
 %
 %     }
-%
-%
 
+  <TR>
+    <TD VALIGN="top">
+      <INPUT TYPE="checkbox" NAME="<% $opt{'link_table'}. ".$name" %>" <% $checked %> VALUE="ON">
+    </TD>
+    <TD><% $display %>
+%     if ( $desc ) {
+        <BR><FONT SIZE="-2"><% $desc %></FONT>
+%     }
+    </TD>
+  </TR>
+
+% } 
 
-  <INPUT TYPE="checkbox" NAME="<% $opt{'link_table'}. ".$name" %>" <% $checked %> VALUE="ON">
+</TABLE>
 
-  <% $name %>
+<%init>
 
-  <BR>
-% } 
+my( %opt ) = @_;
+
+my( $source_pkey, $sourcenum, $source_obj );
+if ( $opt{'source_obj'} ) {
+
+  $source_obj = $opt{'source_obj'};
+  #$source_table = $source_obj->dbdef_table->table;
+  $source_pkey = $source_obj->dbdef_table->primary_key;
+  $sourcenum = $source_obj->$source_pkey();
+
+} else {
+
+  #$source_obj?
+  $source_pkey = $opt{'source_table'}
+                   ? dbdef->table($opt{'source_table'})->primary_key
+                   : '';
+  $sourcenum = $opt{'sourcenum'};
+}
+
+$source_pkey = $opt{'num_col'} || $source_pkey;
 
+my $link_static = $opt{'link_static'} || {};
 
+</%init>
diff --git a/httemplate/elements/fckeditor/editor/css/behaviors/disablehandles.htc b/httemplate/elements/fckeditor/editor/css/behaviors/disablehandles.htc
new file mode 100644 (file)
index 0000000..8dfb661
--- /dev/null
@@ -0,0 +1,15 @@
+<public:component lightweight="true">\r
+\r
+<script language="javascript">\r
+\r
+function CancelEvent()\r
+{\r
+       return false ;\r
+}\r
+\r
+this.onresizestart = CancelEvent ;\r
+this.onbeforeeditfocus = CancelEvent ;\r
+\r
+</script>\r
+\r
+</public:component>\r
diff --git a/httemplate/elements/fckeditor/editor/css/behaviors/showtableborders.htc b/httemplate/elements/fckeditor/editor/css/behaviors/showtableborders.htc
new file mode 100644 (file)
index 0000000..77418b9
--- /dev/null
@@ -0,0 +1,36 @@
+<public:component lightweight="true">\r
+\r
+<public:attach event="oncontentready" onevent="ShowBorders()" />\r
+<public:attach event="onpropertychange" onevent="OnPropertyChange()" />\r
+\r
+<script language="javascript">\r
+\r
+var oClassRegex = /\s*FCK__ShowTableBorders/ ;\r
+\r
+function ShowBorders()\r
+{\r
+       if ( this.border == 0 )\r
+       {\r
+               if ( !oClassRegex.test( this.className ) )\r
+                       this.className += ' FCK__ShowTableBorders' ;\r
+       }\r
+       else\r
+       {\r
+               if ( oClassRegex.test( this.className ) )\r
+               {\r
+                       this.className = this.className.replace( oClassRegex, '' ) ;\r
+                       if ( this.className.length == 0 )\r
+                               this.removeAttribute( 'className', 0 ) ;\r
+               }\r
+       }\r
+}\r
+\r
+function OnPropertyChange()\r
+{\r
+       if ( event.propertyName == 'border' || event.propertyName == 'className' )\r
+               ShowBorders.call(this) ;\r
+}\r
+\r
+</script>\r
+\r
+</public:component>\r
diff --git a/httemplate/elements/fckeditor/editor/css/fck_editorarea.css b/httemplate/elements/fckeditor/editor/css/fck_editorarea.css
new file mode 100644 (file)
index 0000000..8539aa4
--- /dev/null
@@ -0,0 +1,91 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the default CSS file used by the editor area. It defines the\r
+ * initial font of the editor and background color.\r
+ *\r
+ * A user can configure the editor to use another CSS file. Just change\r
+ * the value of the FCKConfig.EditorAreaCSS key in the configuration\r
+ * file.\r
+ */\r
+\r
+/*\r
+    The "body" styles should match your editor web site, mainly regarding\r
+    background color and font family and size.\r
+*/\r
+\r
+body\r
+{\r
+       background-color: #ffffff;\r
+       padding: 5px 5px 5px 5px;\r
+       margin: 0px;\r
+}\r
+\r
+body, td\r
+{\r
+       font-family: Arial, Verdana, Sans-Serif;\r
+       font-size: 12px;\r
+}\r
+\r
+a[href]\r
+{\r
+       color: #0000FF !important;      /* For Firefox... mark as important, otherwise it becomes black */\r
+}\r
+\r
+/*\r
+       Just uncomment the following block if you want to avoid spaces between\r
+       paragraphs. Remember to apply the same style in your output front end page.\r
+*/\r
+\r
+/*\r
+p, ul, li\r
+{\r
+       margin-top: 0px;\r
+       margin-bottom: 0px;\r
+}\r
+*/\r
+\r
+/*\r
+    The following are some sample styles used in the "Styles" toolbar command.\r
+    You should instead remove them, and include the styles used by the site\r
+    you are using the editor in.\r
+*/\r
+\r
+.Bold\r
+{\r
+       font-weight: bold;\r
+}\r
+\r
+.Title\r
+{\r
+       font-weight: bold;\r
+       font-size: 18px;\r
+       color: #cc3300;\r
+}\r
+\r
+.Code\r
+{\r
+       border: #8b4513 1px solid;\r
+       padding-right: 5px;\r
+       padding-left: 5px;\r
+       color: #000066;\r
+       font-family: 'Courier New' , Monospace;\r
+       background-color: #ff9933;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/css/fck_internal.css b/httemplate/elements/fckeditor/editor/css/fck_internal.css
new file mode 100644 (file)
index 0000000..e686560
--- /dev/null
@@ -0,0 +1,111 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This CSS Style Sheet defines rules used by the editor for its internal use.\r
+ */\r
+\r
+/* Fix to allow putting the caret at the end of the\r
+content in Firefox if clicking below the content */\r
+html\r
+{\r
+       min-height: 100%;\r
+}\r
+\r
+\r
+table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th\r
+{\r
+       border: #d3d3d3 1px solid;\r
+}\r
+\r
+form\r
+{\r
+       border: 1px dotted #FF0000;\r
+       padding: 2px;\r
+}\r
+\r
+.FCK__Flash\r
+{\r
+       border: #a9a9a9 1px solid;\r
+       background-position: center center;\r
+       background-image: url(images/fck_flashlogo.gif);\r
+       background-repeat: no-repeat;\r
+       width: 80px;\r
+       height: 80px;\r
+}\r
+\r
+/* Empty anchors images */\r
+.FCK__Anchor\r
+{\r
+       border: 1px dotted #00F;\r
+       background-position: center center;\r
+       background-image: url(images/fck_anchor.gif);\r
+       background-repeat: no-repeat;\r
+       width: 16px;\r
+       height: 15px;\r
+       vertical-align: middle;\r
+}\r
+\r
+/* Anchors with content */\r
+.FCK__AnchorC\r
+{\r
+       border: 1px dotted #00F;\r
+       background-position: 1px center;\r
+       background-image: url(images/fck_anchor.gif);\r
+       background-repeat: no-repeat;\r
+       padding-left: 18px;\r
+}\r
+\r
+/* Any anchor for non-IE, if we combine it\r
+   with the previous rule IE ignores all. */\r
+a[name]\r
+{\r
+       border: 1px dotted #00F;\r
+       background-position: 0 center;\r
+       background-image: url(images/fck_anchor.gif);\r
+       background-repeat: no-repeat;\r
+       padding-left: 18px;\r
+}\r
+\r
+.FCK__PageBreak\r
+{\r
+       background-position: center center;\r
+       background-image: url(images/fck_pagebreak.gif);\r
+       background-repeat: no-repeat;\r
+       clear: both;\r
+       display: block;\r
+       float: none;\r
+       width: 100%;\r
+       border-top: #999999 1px dotted;\r
+       border-bottom: #999999 1px dotted;\r
+       border-right: 0px;\r
+       border-left: 0px;\r
+       height: 5px;\r
+}\r
+\r
+/* Hidden fields */\r
+.FCK__InputHidden\r
+{\r
+       width: 19px;\r
+       height: 18px;\r
+       background-image: url(images/fck_hiddenfield.gif);\r
+       background-repeat: no-repeat;\r
+       vertical-align: text-bottom;\r
+       background-position: center center;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/css/fck_showtableborders_gecko.css b/httemplate/elements/fckeditor/editor/css/fck_showtableborders_gecko.css
new file mode 100644 (file)
index 0000000..5947114
--- /dev/null
@@ -0,0 +1,42 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This CSS Style Sheet defines the rules to show table borders on Gecko.\r
+ */\r
+\r
+/* For tables with the "border" attribute set to "0" */\r
+table[border="0"],\r
+table[border="0"] > tr > td, table[border="0"] > tr > th,\r
+table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th,\r
+table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th,\r
+table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th\r
+{\r
+       border: #d3d3d3 1px dotted ;\r
+}\r
+\r
+/* For tables with no "border" attribute set */\r
+table:not([border]),\r
+table:not([border]) > tr > td, table:not([border]) > tr > th,\r
+table:not([border]) > tbody > tr > td, table:not([border]) > tbody > tr > th,\r
+table:not([border]) > thead > tr > td, table:not([border]) > thead > tr > th,\r
+table:not([border]) > tfoot > tr > td, table:not([border]) > tfoot > tr > th\r
+{\r
+       border: #d3d3d3 1px dotted ;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/css/images/fck_anchor.gif b/httemplate/elements/fckeditor/editor/css/images/fck_anchor.gif
new file mode 100644 (file)
index 0000000..5aa797b
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/css/images/fck_anchor.gif differ
diff --git a/httemplate/elements/fckeditor/editor/css/images/fck_flashlogo.gif b/httemplate/elements/fckeditor/editor/css/images/fck_flashlogo.gif
new file mode 100644 (file)
index 0000000..141aac4
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/css/images/fck_flashlogo.gif differ
diff --git a/httemplate/elements/fckeditor/editor/css/images/fck_hiddenfield.gif b/httemplate/elements/fckeditor/editor/css/images/fck_hiddenfield.gif
new file mode 100644 (file)
index 0000000..953f643
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/css/images/fck_hiddenfield.gif differ
diff --git a/httemplate/elements/fckeditor/editor/css/images/fck_pagebreak.gif b/httemplate/elements/fckeditor/editor/css/images/fck_pagebreak.gif
new file mode 100644 (file)
index 0000000..8d1cffd
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/css/images/fck_pagebreak.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.css b/httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.css
new file mode 100644 (file)
index 0000000..c1db114
--- /dev/null
@@ -0,0 +1,83 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the CSS file used for interface details in some dialog\r
+ * windows.\r
+ */\r
+\r
+.ImagePreviewArea\r
+{\r
+       border: #000000 1px solid;\r
+       overflow: auto;\r
+       width: 100%;\r
+       height: 170px;\r
+       background-color: #ffffff;\r
+}\r
+\r
+.FlashPreviewArea\r
+{\r
+       border: #000000 1px solid;\r
+       padding: 5px;\r
+       overflow: auto;\r
+       width: 100%;\r
+       height: 170px;\r
+       background-color: #ffffff;\r
+}\r
+\r
+.BtnReset\r
+{\r
+       float: left;\r
+       background-position: center center;\r
+       background-image: url(images/reset.gif);\r
+       width: 16px;\r
+       height: 16px;\r
+       background-repeat: no-repeat;\r
+       border: 1px none;\r
+       font-size: 1px ;\r
+}\r
+\r
+.BtnLocked, .BtnUnlocked\r
+{\r
+       float: left;\r
+       background-position: center center;\r
+       background-image: url(images/locked.gif);\r
+       width: 16px;\r
+       height: 16px;\r
+       background-repeat: no-repeat;\r
+       border: none 1px;\r
+       font-size: 1px ;\r
+}\r
+\r
+.BtnUnlocked\r
+{\r
+       background-image: url(images/unlocked.gif);\r
+}\r
+\r
+.BtnOver\r
+{\r
+       border: outset 1px;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}\r
+\r
+.FCK__FieldNumeric\r
+{\r
+       behavior: url(common/fcknumericfield.htc) ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.js b/httemplate/elements/fckeditor/editor/dialog/common/fck_dialog_common.js
new file mode 100644 (file)
index 0000000..26b5628
--- /dev/null
@@ -0,0 +1,154 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Useful functions used by almost all dialog window pages.\r
+ */\r
+\r
+var GECKO_BOGUS = '<br type="_moz">' ;\r
+\r
+// Gets a element by its Id. Used for shorter coding.\r
+function GetE( elementId )\r
+{\r
+       return document.getElementById( elementId )  ;\r
+}\r
+\r
+function ShowE( element, isVisible )\r
+{\r
+       if ( typeof( element ) == 'string' )\r
+               element = GetE( element ) ;\r
+       element.style.display = isVisible ? '' : 'none' ;\r
+}\r
+\r
+function SetAttribute( element, attName, attValue )\r
+{\r
+       if ( attValue == null || attValue.length == 0 )\r
+               element.removeAttribute( attName, 0 ) ;                 // 0 : Case Insensitive\r
+       else\r
+               element.setAttribute( attName, attValue, 0 ) ;  // 0 : Case Insensitive\r
+}\r
+\r
+function GetAttribute( element, attName, valueIfNull )\r
+{\r
+       var oAtt = element.attributes[attName] ;\r
+\r
+       if ( oAtt == null || !oAtt.specified )\r
+               return valueIfNull ? valueIfNull : '' ;\r
+\r
+       var oValue = element.getAttribute( attName, 2 ) ;\r
+\r
+       if ( oValue == null )\r
+               oValue = oAtt.nodeValue ;\r
+\r
+       return ( oValue == null ? valueIfNull : oValue ) ;\r
+}\r
+\r
+// Functions used by text fiels to accept numbers only.\r
+function IsDigit( e )\r
+{\r
+       if ( !e )\r
+               e = event ;\r
+\r
+       var iCode = ( e.keyCode || e.charCode ) ;\r
+\r
+       return (\r
+                       ( iCode >= 48 && iCode <= 57 )          // Numbers\r
+                       || (iCode >= 37 && iCode <= 40)         // Arrows\r
+                       || iCode == 8                                           // Backspace\r
+                       || iCode == 46                                          // Delete\r
+       ) ;\r
+}\r
+\r
+String.prototype.Trim = function()\r
+{\r
+       return this.replace( /(^\s*)|(\s*$)/g, '' ) ;\r
+}\r
+\r
+String.prototype.StartsWith = function( value )\r
+{\r
+       return ( this.substr( 0, value.length ) == value ) ;\r
+}\r
+\r
+String.prototype.Remove = function( start, length )\r
+{\r
+       var s = '' ;\r
+\r
+       if ( start > 0 )\r
+               s = this.substring( 0, start ) ;\r
+\r
+       if ( start + length < this.length )\r
+               s += this.substring( start + length , this.length ) ;\r
+\r
+       return s ;\r
+}\r
+\r
+String.prototype.ReplaceAll = function( searchArray, replaceArray )\r
+{\r
+       var replaced = this ;\r
+\r
+       for ( var i = 0 ; i < searchArray.length ; i++ )\r
+       {\r
+               replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;\r
+       }\r
+\r
+       return replaced ;\r
+}\r
+\r
+function OpenFileBrowser( url, width, height )\r
+{\r
+       // oEditor must be defined.\r
+\r
+       var iLeft = ( oEditor.FCKConfig.ScreenWidth  - width ) / 2 ;\r
+       var iTop  = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;\r
+\r
+       var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;\r
+       sOptions += ",width=" + width ;\r
+       sOptions += ",height=" + height ;\r
+       sOptions += ",left=" + iLeft ;\r
+       sOptions += ",top=" + iTop ;\r
+\r
+       // The "PreserveSessionOnFileBrowser" because the above code could be\r
+       // blocked by popup blockers.\r
+       if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               // The following change has been made otherwise IE will open the file\r
+               // browser on a different server session (on some cases):\r
+               // http://support.microsoft.com/default.aspx?scid=kb;en-us;831678\r
+               // by Simone Chiaretta.\r
+               var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;\r
+\r
+               if ( oWindow )\r
+               {\r
+                       // Detect Yahoo popup blocker.\r
+                       try\r
+                       {\r
+                               var sTest = oWindow.name ; // Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.\r
+                               oWindow.opener = window ;\r
+                       }\r
+                       catch(e)\r
+                       {\r
+                               alert( oEditor.FCKLang.BrowseServerBlocked ) ;\r
+                       }\r
+               }\r
+               else\r
+                       alert( oEditor.FCKLang.BrowseServerBlocked ) ;\r
+    }\r
+    else\r
+               window.open( url, 'FCKBrowseWindow', sOptions ) ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/fcknumericfield.htc b/httemplate/elements/fckeditor/editor/dialog/common/fcknumericfield.htc
new file mode 100644 (file)
index 0000000..74f26d0
--- /dev/null
@@ -0,0 +1,24 @@
+<public:component lightweight="true">\r
+\r
+<script language="javascript">\r
+\r
+function CheckIsDigit()\r
+{\r
+       var iCode = event.keyCode ;\r
+\r
+       event.returnValue =\r
+               (\r
+                       ( iCode >= 48 && iCode <= 57 )          // Numbers\r
+                       || (iCode >= 37 && iCode <= 40)         // Arrows\r
+                       || iCode == 8                                           // Backspace\r
+                       || iCode == 46                                          // Delete\r
+               ) ;\r
+\r
+       return event.returnValue ;\r
+}\r
+\r
+this.onkeypress = CheckIsDigit ;\r
+\r
+</script>\r
+\r
+</public:component>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/images/locked.gif b/httemplate/elements/fckeditor/editor/dialog/common/images/locked.gif
new file mode 100644 (file)
index 0000000..ea07870
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/common/images/locked.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/images/reset.gif b/httemplate/elements/fckeditor/editor/dialog/common/images/reset.gif
new file mode 100644 (file)
index 0000000..5e9a2fc
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/common/images/reset.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/images/unlocked.gif b/httemplate/elements/fckeditor/editor/dialog/common/images/unlocked.gif
new file mode 100644 (file)
index 0000000..801e423
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/common/images/unlocked.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/common/moz-bindings.xml b/httemplate/elements/fckeditor/editor/dialog/common/moz-bindings.xml
new file mode 100644 (file)
index 0000000..a457577
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<bindings xmlns="http://www.mozilla.org/xbl">\r
+       <binding id="numericfield">\r
+               <implementation>\r
+                       <constructor>\r
+                               this.keypress = CheckIsDigit ;\r
+                       </constructor>\r
+                       <method name="CheckIsDigit">\r
+                               <body>\r
+                                       <![CDATA[\r
+                                       var iCode = keyCode ;\r
+\r
+                                       var bAccepted =\r
+                                               (\r
+                                                       ( iCode >= 48 && iCode <= 57 )          // Numbers\r
+                                                       || (iCode >= 37 && iCode <= 40)         // Arrows\r
+                                                       || iCode == 8                                           // Backspace\r
+                                                       || iCode == 46                                          // Delete\r
+                                               ) ;\r
+\r
+                                       return bAccepted ;\r
+                                       ]]>\r
+                               </body>\r
+                       </method>\r
+               </implementation>\r
+               <events>\r
+                       <event type="keypress" value="CheckIsDigit()" />\r
+               </events>\r
+       </binding>\r
+</bindings>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_about.html b/httemplate/elements/fckeditor/editor/dialog/fck_about.html
new file mode 100644 (file)
index 0000000..a5825ce
--- /dev/null
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * "About" dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+var FCKLang    = oEditor.FCKLang ;\r
+\r
+window.parent.AddTab( 'About', FCKLang.DlgAboutAboutTab ) ;\r
+window.parent.AddTab( 'License', FCKLang.DlgAboutLicenseTab ) ;\r
+window.parent.AddTab( 'BrowserInfo', FCKLang.DlgAboutBrowserInfoTab ) ;\r
+\r
+// Function called when a dialog tag is selected.\r
+function OnDialogTabChange( tabCode )\r
+{\r
+       ShowE('divAbout', ( tabCode == 'About' ) ) ;\r
+       ShowE('divLicense', ( tabCode == 'License' ) ) ;\r
+       ShowE('divInfo' , ( tabCode == 'BrowserInfo' ) ) ;\r
+}\r
+\r
+function SendEMail()\r
+{\r
+       var eMail = 'mailto:' ;\r
+       eMail += 'fredck' ;\r
+       eMail += '@' ;\r
+       eMail += 'fckeditor' ;\r
+       eMail += '.' ;\r
+       eMail += 'net' ;\r
+\r
+       window.location = eMail ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       // Translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <div id="divAbout">\r
+               <table cellpadding="0" cellspacing="0" border="0" width="100%" style="height: 100%">\r
+                       <tr>\r
+                               <td>\r
+                                       <img alt="" src="fck_about/logo_fckeditor.gif" width="236" height="41" align="left" />\r
+                                       <table width="80" border="0" cellspacing="0" cellpadding="5" bgcolor="#ffffff" align="right">\r
+                                               <tr>\r
+                                                       <td align="center" nowrap="nowrap" style="border-right: #000000 1px solid; border-top: #000000 1px solid;\r
+                                                               border-left: #000000 1px solid; border-bottom: #000000 1px solid">\r
+                                                               <span fcklang="DlgAboutVersion">version</span>\r
+                                                               <br />\r
+                                                               <b>2.4.3</b><br />\r
+                                                               Build 15657</td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+                       <tr style="height: 100%">\r
+                               <td align="center">\r
+                                       &nbsp;<br />\r
+                                       <span style="font-size: 14px" dir="ltr">\r
+                                               <br />\r
+                                               <b><a href="http://www.fckeditor.net/?about" target="_blank" title="Visit the FCKeditor web site">\r
+                                                       Support <b>Open Source</b> Software</a></b> </span>\r
+                                       <br />\r
+                                       <br />\r
+                                       <br />\r
+                                       <span fcklang="DlgAboutInfo">For further information go to</span> <a href="http://www.fckeditor.net/?About"\r
+                                               target="_blank">http://www.fckeditor.net/</a>.\r
+                                       <br />\r
+                                       Copyright &copy; 2003-2007 <a href="#" onclick="SendEMail();">Frederico Caldeira Knabben</a>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td align="center">\r
+                                       <img alt="" src="fck_about/logo_fredck.gif" width="87" height="36" />\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+       <div id="divLicense" style="display: none">\r
+                       <p>\r
+                               Licensed under the terms of any of the following licenses at your\r
+                               choice:\r
+                       </p>\r
+                       <ul>\r
+                               <li style="margin-bottom:15px">\r
+                                       <b>GNU General Public License</b> Version 2 or later (the "GPL")<br />\r
+                                       <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a>\r
+                               </li>\r
+                               <li style="margin-bottom:15px">\r
+                                       <b>GNU Lesser General Public License</b> Version 2.1 or later (the "LGPL")<br />\r
+                                       <a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">http://www.gnu.org/licenses/lgpl.html</a>\r
+                               </li>\r
+                               <li>\r
+                                       <b>Mozilla Public License</b> Version 1.1 or later (the "MPL")<br />\r
+                                       <a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html</a>\r
+                          </li>\r
+                       </ul>\r
+       </div>\r
+       <div id="divInfo" style="display: none" dir="ltr">\r
+               <table align="center" width="80%" border="0">\r
+                       <tr>\r
+                               <td>\r
+                                       <script type="text/javascript">\r
+<!--\r
+document.write( '<b>User Agent<\/b><br />' + window.navigator.userAgent + '<br /><br />' ) ;\r
+document.write( '<b>Browser<\/b><br />' + window.navigator.appName + ' ' + window.navigator.appVersion + '<br /><br />' ) ;\r
+document.write( '<b>Platform<\/b><br />' + window.navigator.platform + '<br /><br />' ) ;\r
+\r
+var sUserLang = '?' ;\r
+\r
+if ( window.navigator.language )\r
+       sUserLang = window.navigator.language.toLowerCase() ;\r
+else if ( window.navigator.userLanguage )\r
+       sUserLang = window.navigator.userLanguage.toLowerCase() ;\r
+\r
+document.write( '<b>User Language<\/b><br />' + sUserLang ) ;\r
+//-->\r
+                                       </script>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif b/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif
new file mode 100644 (file)
index 0000000..b7d6bc6
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fredck.gif b/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fredck.gif
new file mode 100644 (file)
index 0000000..3108dd9
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/fck_about/logo_fredck.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_anchor.html b/httemplate/elements/fckeditor/editor/dialog/fck_anchor.html
new file mode 100644 (file)
index 0000000..a9f2f50
--- /dev/null
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Anchor dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Anchor Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor    = window.parent.InnerDialogLoaded() ;\r
+var FCK                = oEditor.FCK ;\r
+var FCKBrowserInfo = oEditor.FCKBrowserInfo ;\r
+var FCKTools = oEditor.FCKTools ;\r
+var FCKRegexLib = oEditor.FCKRegexLib ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oFakeImage = FCK.Selection.GetSelectedElement() ;\r
+var oAnchor ;\r
+\r
+if ( oFakeImage )\r
+{\r
+       if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') )\r
+               oAnchor = FCK.GetRealElement( oFakeImage ) ;\r
+       else\r
+               oFakeImage = null ;\r
+}\r
+\r
+//Search for a real anchor\r
+if ( !oFakeImage )\r
+{\r
+       oAnchor = FCK.Selection.MoveToAncestorNode( 'A' ) ;\r
+       if ( oAnchor )\r
+               FCK.Selection.SelectNode( oAnchor ) ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oAnchor )\r
+               GetE('txtName').value = oAnchor.name ;\r
+       else\r
+               oAnchor = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       var sNewName = GetE('txtName').value ;\r
+\r
+       // Remove any illegal character in a name attribute:\r
+       // A name should start with a letter, but the validator passes anyway.\r
+       sNewName = sNewName.replace( /[^\w-_\.:]/g, '_' ) ;\r
+\r
+       if ( sNewName.length == 0 )\r
+       {\r
+               // Remove the anchor if the user leaves the name blank\r
+               if ( oAnchor )\r
+               {\r
+                       RemoveAnchor() ;\r
+                       return true ;\r
+               }\r
+\r
+               alert( oEditor.FCKLang.DlgAnchorErrorName ) ;\r
+               return false ;\r
+       }\r
+\r
+       oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       if ( oAnchor )  // Modifying an existent anchor.\r
+       {\r
+               ReadjustLinksToAnchor( oAnchor.name, sNewName );\r
+\r
+               // Buggy explorer, bad bad browser. http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/\r
+               // Instead of just replacing the .name for the existing anchor (in order to preserve the content), we must remove the .name\r
+               // and assign .name, although it won't appear until it's specially processed in fckxhtml.js\r
+\r
+               // We remove the previous name\r
+               oAnchor.removeAttribute( 'name' ) ;\r
+               // Now we set it, but later we must process it specially\r
+               oAnchor.name = sNewName ;\r
+\r
+               return true ;\r
+       }\r
+\r
+       // Create a new anchor preserving the current selection\r
+       var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ;\r
+\r
+       if ( aNewAnchors.length == 0 )\r
+       {\r
+               // Nothing was selected, so now just create a normal A\r
+               aNewAnchors.push( oEditor.FCK.CreateElement( 'a' ) ) ;\r
+       }\r
+       else\r
+       {\r
+               // Remove the fake href\r
+               for ( var i = 0 ; i < aNewAnchors.length ; i++ )\r
+                       aNewAnchors[i].removeAttribute( 'href' ) ;\r
+       }\r
+\r
+       // More than one anchors may have been created, so interact through all of them (see #220).\r
+       for ( var i = 0 ; i < aNewAnchors.length ; i++ )\r
+       {\r
+               oAnchor = aNewAnchors[i] ;\r
+\r
+               // Set the name\r
+               oAnchor.name = sNewName ;\r
+\r
+               // IE does require special processing to show the Anchor's image\r
+               // Opera doesn't allow to select empty anchors\r
+               if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )\r
+               {\r
+                       if ( oAnchor.innerHTML != '' )\r
+                       {\r
+                               if ( FCKBrowserInfo.IsIE )\r
+                                       oAnchor.className += ' FCK__AnchorC' ;\r
+                       }\r
+                       else\r
+                       {\r
+                               // Create a fake image for both IE and Opera\r
+                               var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;\r
+                               oImg.setAttribute( '_fckanchor', 'true', 0 ) ;\r
+\r
+                               oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;\r
+                               oAnchor.parentNode.removeChild( oAnchor ) ;\r
+                       }\r
+\r
+               }\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+// Removes the current anchor from the document\r
+function RemoveAnchor()\r
+{\r
+       // If it's also a link, then just remove the name and exit\r
+       if ( oAnchor.href.length != 0 )\r
+       {\r
+               oAnchor.removeAttribute( 'name' ) ;\r
+               // Remove temporary class for IE\r
+               if ( FCKBrowserInfo.IsIE )\r
+                       oAnchor.className = oAnchor.className.replace( FCKRegexLib.FCK_Class, '' ) ;\r
+               return ;\r
+       }\r
+\r
+       // We need to remove the anchor\r
+       // If we got a fake image, then just remove it and we're done\r
+       if ( oFakeImage )\r
+       {\r
+               oFakeImage.parentNode.removeChild( oFakeImage ) ;\r
+               return ;\r
+       }\r
+       // Empty anchor, so just remove it\r
+       if ( oAnchor.innerHTML.length == 0 )\r
+       {\r
+               oAnchor.parentNode.removeChild( oAnchor ) ;\r
+               return ;\r
+       }\r
+       // Anchor with content, leave the content\r
+       FCKTools.RemoveOuterTags( oAnchor ) ;\r
+}\r
+\r
+// Checks all the links in the current page pointing to the current name and changes them to the new name\r
+function ReadjustLinksToAnchor( sCurrent, sNew )\r
+{\r
+       var oDoc = FCK.EditorDocument ;\r
+\r
+       var aLinks = oDoc.getElementsByTagName( 'A' ) ;\r
+\r
+       var sReference = '#' + sCurrent ;\r
+       // The url of the document, so we check absolute and partial references.\r
+       var sFullReference = oDoc.location.href.replace( /(#.*$)/, '') ;\r
+       sFullReference += sReference ;\r
+\r
+       var oLink ;\r
+       var i = aLinks.length - 1 ;\r
+       while ( i >= 0 && ( oLink = aLinks[i--] ) )\r
+       {\r
+               var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;\r
+               if ( sHRef == null )\r
+                       sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;\r
+\r
+               if ( sHRef == sReference || sHRef == sFullReference )\r
+               {\r
+                       oLink.href = '#' + sNew ;\r
+                       SetAttribute( oLink, '_fcksavedurl', '#' + sNew ) ;\r
+               }\r
+       }\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style="OVERFLOW: hidden" scroll="no">\r
+               <table height="100%" width="100%">\r
+                       <tr>\r
+                               <td align="center">\r
+                                       <table border="0" cellpadding="0" cellspacing="0" width="80%">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgAnchorName">Anchor Name</span><BR>\r
+                                                               <input id="txtName" style="WIDTH: 100%" type="text">\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_button.html b/httemplate/elements/fckeditor/editor/dialog/fck_button.html
new file mode 100644 (file)
index 0000000..6e5c2bb
--- /dev/null
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Button dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Button Properties</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName.toUpperCase() == "INPUT" && ( oActiveEl.type == "button" || oActiveEl.type == "submit" || oActiveEl.type == "reset" ) )\r
+       {\r
+               GetE('txtName').value   = oActiveEl.name ;\r
+               GetE('txtValue').value  = oActiveEl.value ;\r
+               GetE('txtType').value   = oActiveEl.type ;\r
+\r
+               GetE('txtType').disabled = true ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+               oActiveEl.type = GetE('txtType').value ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       oActiveEl.name = GetE('txtName').value ;\r
+       SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table width="100%" style="height: 100%">\r
+               <tr>\r
+                       <td align="center">\r
+                               <table border="0" cellpadding="0" cellspacing="0" width="80%">\r
+                                       <tr>\r
+                                               <td colspan="">\r
+                                                       <span fcklang="DlgCheckboxName">Name</span><br />\r
+                                                       <input type="text" size="20" id="txtName" style="width: 100%" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgButtonText">Text (Value)</span><br />\r
+                                                       <input type="text" id="txtValue" style="width: 100%" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgButtonType">Type</span><br />\r
+                                                       <select id="txtType">\r
+                                                               <option fcklang="DlgButtonTypeBtn" value="button" selected="selected">Button</option>\r
+                                                               <option fcklang="DlgButtonTypeSbm" value="submit">Submit</option>\r
+                                                               <option fcklang="DlgButtonTypeRst" value="reset">Reset</option>\r
+                                                       </select>\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_checkbox.html b/httemplate/elements/fckeditor/editor/dialog/fck_checkbox.html
new file mode 100644 (file)
index 0000000..ac7b4f3
--- /dev/null
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Checkbox dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Checkbox Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'checkbox' )\r
+       {\r
+               GetE('txtName').value           = oActiveEl.name ;\r
+               GetE('txtValue').value          = oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;\r
+               GetE('txtSelected').checked     = oActiveEl.checked ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+               oActiveEl.type = 'checkbox' ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       if ( GetE('txtName').value.length > 0 )\r
+               oActiveEl.name = GetE('txtName').value ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+               oActiveEl.value = GetE('txtValue').value ;\r
+       else\r
+               SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;\r
+\r
+       var bIsChecked = GetE('txtSelected').checked ;\r
+       SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;   // For Firefox\r
+       oActiveEl.checked = bIsChecked ;\r
+\r
+       return true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style="OVERFLOW: hidden" scroll="no">\r
+               <table height="100%" width="100%">\r
+                       <tr>\r
+                               <td align="center">\r
+                                       <table border="0" cellpadding="0" cellspacing="0" width="80%">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgCheckboxName">Name</span><br>\r
+                                                               <input type="text" size="20" id="txtName" style="WIDTH: 100%">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgCheckboxValue">Value</span><br>\r
+                                                               <input type="text" size="20" id="txtValue" style="WIDTH: 100%">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_colorselector.html b/httemplate/elements/fckeditor/editor/dialog/fck_colorselector.html
new file mode 100644 (file)
index 0000000..1778f51
--- /dev/null
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Color Selection dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+               <meta name="robots" content="noindex, nofollow" />\r
+               <style TYPE="text/css">\r
+                       #ColorTable             { cursor: pointer ; cursor: hand ; }\r
+                       #hicolor                { height: 74px ; width: 74px ; border-width: 1px ; border-style: solid ; }\r
+                       #hicolortext    { width: 75px ; text-align: right ; margin-bottom: 7px ; }\r
+                       #selhicolor             { height: 20px ; width: 74px ; border-width: 1px ; border-style: solid ; }\r
+                       #selcolor               { width: 75px ; height: 20px ; margin-top: 0px ; margin-bottom: 7px ; }\r
+                       #btnClear               { width: 75px ; height: 22px ; margin-bottom: 6px ; }\r
+                       .ColorCell              { height: 15px ; width: 15px ; }\r
+               </style>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+function OnLoad()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       CreateColorTable() ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+function CreateColorTable()\r
+{\r
+       // Get the target table.\r
+       var oTable = document.getElementById('ColorTable') ;\r
+\r
+       // Create the base colors array.\r
+       var aColors = ['00','33','66','99','cc','ff'] ;\r
+\r
+       // This function combines two ranges of three values from the color array into a row.\r
+       function AppendColorRow( rangeA, rangeB )\r
+       {\r
+               for ( var i = rangeA ; i < rangeA + 3 ; i++ )\r
+               {\r
+                       var oRow = oTable.insertRow(-1) ;\r
+\r
+                       for ( var j = rangeB ; j < rangeB + 3 ; j++ )\r
+                       {\r
+                               for ( var n = 0 ; n < 6 ; n++ )\r
+                               {\r
+                                       AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       // This function create a single color cell in the color table.\r
+       function AppendColorCell( targetRow, color )\r
+       {\r
+               var oCell = targetRow.insertCell(-1) ;\r
+               oCell.className = 'ColorCell' ;\r
+               oCell.bgColor = color ;\r
+\r
+               oCell.onmouseover = function()\r
+               {\r
+                       document.getElementById('hicolor').style.backgroundColor = this.bgColor ;\r
+                       document.getElementById('hicolortext').innerHTML = this.bgColor ;\r
+               }\r
+\r
+               oCell.onclick = function()\r
+               {\r
+                       document.getElementById('selhicolor').style.backgroundColor = this.bgColor ;\r
+                       document.getElementById('selcolor').value = this.bgColor ;\r
+               }\r
+       }\r
+\r
+       AppendColorRow( 0, 0 ) ;\r
+       AppendColorRow( 3, 0 ) ;\r
+       AppendColorRow( 0, 3 ) ;\r
+       AppendColorRow( 3, 3 ) ;\r
+\r
+       // Create the last row.\r
+       var oRow = oTable.insertRow(-1) ;\r
+\r
+       // Create the gray scale colors cells.\r
+       for ( var n = 0 ; n < 6 ; n++ )\r
+       {\r
+               AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;\r
+       }\r
+\r
+       // Fill the row with black cells.\r
+       for ( var i = 0 ; i < 12 ; i++ )\r
+       {\r
+               AppendColorCell( oRow, '#000000' ) ;\r
+       }\r
+}\r
+\r
+function Clear()\r
+{\r
+       document.getElementById('selhicolor').style.backgroundColor = '' ;\r
+       document.getElementById('selcolor').value = '' ;\r
+}\r
+\r
+function ClearActual()\r
+{\r
+       document.getElementById('hicolor').style.backgroundColor = '' ;\r
+       document.getElementById('hicolortext').innerHTML = '&nbsp;' ;\r
+}\r
+\r
+function UpdateColor()\r
+{\r
+       try               { document.getElementById('selhicolor').style.backgroundColor = document.getElementById('selcolor').value ; }\r
+       catch (e) { Clear() ; }\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( typeof(window.parent.dialogArguments.CustomValue) == 'function' )\r
+               window.parent.dialogArguments.CustomValue( document.getElementById('selcolor').value ) ;\r
+\r
+       return true ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body onload="OnLoad()" scroll="no" style="OVERFLOW: hidden">\r
+               <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">\r
+                       <tr>\r
+                               <td align="center" valign="middle">\r
+                                       <table border="0" cellspacing="5" cellpadding="0" width="100%">\r
+                                               <tr>\r
+                                                       <td valign="top" align="center" nowrap width="100%">\r
+                                                               <table id="ColorTable" border="0" cellspacing="0" cellpadding="0" width="270" onmouseout="ClearActual();">\r
+                                                               </table>\r
+                                                       </td>\r
+                                                       <td valign="top" align="left" nowrap>\r
+                                                               <span fckLang="DlgColorHighlight">Highlight</span>\r
+                                                               <div id="hicolor"></div>\r
+                                                               <div id="hicolortext">&nbsp;</div>\r
+                                                               <span fckLang="DlgColorSelected">Selected</span>\r
+                                                               <div id="selhicolor"></div>\r
+                                                               <input id="selcolor" type="text" maxlength="20" onchange="UpdateColor();">\r
+                                                               <br>\r
+                                                               <input id="btnClear" type="button" fckLang="DlgColorBtnClear" value="Clear" onclick="Clear();" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_docprops.html b/httemplate/elements/fckeditor/editor/dialog/fck_docprops.html
new file mode 100644 (file)
index 0000000..3083466
--- /dev/null
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Link dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKLang            = oEditor.FCKLang ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+\r
+//#### Dialog Tabs\r
+\r
+// Set the dialog tabs.\r
+window.parent.AddTab( 'General'                , FCKLang.DlgDocGeneralTab ) ;\r
+window.parent.AddTab( 'Background'     , FCKLang.DlgDocBackTab ) ;\r
+window.parent.AddTab( 'Colors'         , FCKLang.DlgDocColorsTab ) ;\r
+window.parent.AddTab( 'Meta'           , FCKLang.DlgDocMetaTab ) ;\r
+\r
+// Function called when a dialog tag is selected.\r
+function OnDialogTabChange( tabCode )\r
+{\r
+       ShowE( 'divGeneral'             , ( tabCode == 'General' ) ) ;\r
+       ShowE( 'divBackground'  , ( tabCode == 'Background' ) ) ;\r
+       ShowE( 'divColors'              , ( tabCode == 'Colors' ) ) ;\r
+       ShowE( 'divMeta'                , ( tabCode == 'Meta' ) ) ;\r
+\r
+       ShowE( 'ePreview'               , ( tabCode == 'Background' || tabCode == 'Colors' ) ) ;\r
+}\r
+\r
+//#### Get Base elements from the document: BEGIN\r
+\r
+// The HTML element of the document.\r
+var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;\r
+\r
+// The HEAD element of the document.\r
+var oHead = oHTML.getElementsByTagName('head')[0] ;\r
+\r
+var oBody = FCK.EditorDocument.body ;\r
+\r
+// This object contains all META tags defined in the document.\r
+var oMetaTags = new Object() ;\r
+\r
+// Get all META tags defined in the document.\r
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('meta') ) ;\r
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('fck:meta') ) ;\r
+\r
+function AppendMetaCollection( targetObject, metaCollection )\r
+{\r
+       // Loop throw all METAs and put it in the HashTable.\r
+       for ( var i = 0 ; i < metaCollection.length ; i++ )\r
+       {\r
+               // Try to get the "name" attribute.\r
+               var sName = GetAttribute( metaCollection[i], 'name', GetAttribute( metaCollection[i], '___fcktoreplace:name', '' ) ) ;\r
+\r
+               // If no "name", try with the "http-equiv" attribute.\r
+               if ( sName.length == 0 )\r
+               {\r
+                       if ( oEditor.FCKBrowserInfo.IsIE )\r
+                       {\r
+                               // Get the http-equiv value from the outerHTML.\r
+                               var oHttpEquivMatch = metaCollection[i].outerHTML.match( oEditor.FCKRegexLib.MetaHttpEquiv ) ;\r
+                               if ( oHttpEquivMatch )\r
+                                       sName = oHttpEquivMatch[1] ;\r
+                       }\r
+                       else\r
+                               sName = GetAttribute( metaCollection[i], 'http-equiv', '' ) ;\r
+               }\r
+\r
+               if ( sName.length > 0 )\r
+                       targetObject[ sName.toLowerCase() ] = metaCollection[i] ;\r
+       }\r
+}\r
+\r
+//#### END\r
+\r
+// Set a META tag in the document.\r
+function SetMetadata( name, content, isHttp )\r
+{\r
+       if ( content.length == 0 )\r
+       {\r
+               RemoveMetadata( name ) ;\r
+               return ;\r
+       }\r
+\r
+       var oMeta = oMetaTags[ name.toLowerCase() ] ;\r
+\r
+       if ( !oMeta )\r
+       {\r
+               oMeta = oHead.appendChild( FCK.EditorDocument.createElement('META') ) ;\r
+\r
+               if ( isHttp )\r
+                       SetAttribute( oMeta, 'http-equiv', name ) ;\r
+               else\r
+               {\r
+                       // On IE, it is not possible to set the "name" attribute of the META tag.\r
+                       // So a temporary attribute is used and it is replaced when getting the\r
+                       // editor's HTML/XHTML value. This is sad, I know :(\r
+                       if ( oEditor.FCKBrowserInfo.IsIE )\r
+                               SetAttribute( oMeta, '___fcktoreplace:name', name ) ;\r
+                       else\r
+                               SetAttribute( oMeta, 'name', name ) ;\r
+               }\r
+\r
+               oMetaTags[ name.toLowerCase() ] = oMeta ;\r
+       }\r
+\r
+       SetAttribute( oMeta, 'content', content ) ;\r
+//     oMeta.content = content ;\r
+}\r
+\r
+function RemoveMetadata( name )\r
+{\r
+       var oMeta = oMetaTags[ name.toLowerCase() ] ;\r
+\r
+       if ( oMeta && oMeta != null )\r
+       {\r
+               oMeta.parentNode.removeChild( oMeta ) ;\r
+               oMetaTags[ name.toLowerCase() ] = null ;\r
+       }\r
+}\r
+\r
+function GetMetadata( name )\r
+{\r
+       var oMeta = oMetaTags[ name.toLowerCase() ] ;\r
+\r
+       if ( oMeta && oMeta != null )\r
+               return oMeta.getAttribute( 'content', 2 ) ;\r
+       else\r
+               return '' ;\r
+}\r
+\r
+window.onload = function ()\r
+{\r
+       // Show/Hide the "Browse Server" button.\r
+       GetE('tdBrowse').style.display = oEditor.FCKConfig.ImageBrowser ? "" : "none";\r
+\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       FillFields() ;\r
+\r
+       UpdatePreview() ;\r
+\r
+       // Show the "Ok" button.\r
+       window.parent.SetOkButton( true ) ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+function FillFields()\r
+{\r
+       // ### General Info\r
+       GetE('txtPageTitle').value = FCK.EditorDocument.title ;\r
+\r
+       GetE('selDirection').value      = GetAttribute( oHTML, 'dir', '' ) ;\r
+       GetE('txtLang').value           = GetAttribute( oHTML, 'xml:lang', GetAttribute( oHTML, 'lang', '' ) ) ;        // "xml:lang" takes precedence to "lang".\r
+\r
+       // Character Set Encoding.\r
+//     if ( oEditor.FCKBrowserInfo.IsIE )\r
+//             var sCharSet = FCK.EditorDocument.charset ;\r
+//     else\r
+               var sCharSet = GetMetadata( 'Content-Type' ) ;\r
+\r
+       if ( sCharSet != null && sCharSet.length > 0 )\r
+       {\r
+//             if ( !oEditor.FCKBrowserInfo.IsIE )\r
+                       sCharSet = sCharSet.match( /[^=]*$/ ) ;\r
+\r
+               GetE('selCharSet').value = sCharSet ;\r
+\r
+               if ( GetE('selCharSet').selectedIndex == -1 )\r
+               {\r
+                       GetE('selCharSet').value = '...' ;\r
+                       GetE('txtCustomCharSet').value = sCharSet ;\r
+\r
+                       CheckOther( GetE('selCharSet'), 'txtCustomCharSet' ) ;\r
+               }\r
+       }\r
+\r
+       // Document Type.\r
+       if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )\r
+       {\r
+               GetE('selDocType').value = FCK.DocTypeDeclaration ;\r
+\r
+               if ( GetE('selDocType').selectedIndex == -1 )\r
+               {\r
+                       GetE('selDocType').value = '...' ;\r
+                       GetE('txtDocType').value = FCK.DocTypeDeclaration ;\r
+\r
+                       CheckOther( GetE('selDocType'), 'txtDocType' ) ;\r
+               }\r
+       }\r
+\r
+       // Document Type.\r
+       GetE('chkIncXHTMLDecl').checked = ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 ) ;\r
+\r
+       // ### Background\r
+       GetE('txtBackColor').value = GetAttribute( oBody, 'bgColor'             , '' ) ;\r
+       GetE('txtBackImage').value = GetAttribute( oBody, 'background'  , '' ) ;\r
+       GetE('chkBackNoScroll').checked = ( GetAttribute( oBody, 'bgProperties', '' ).toLowerCase() == 'fixed' ) ;\r
+\r
+       // ### Colors\r
+       GetE('txtColorText').value              = GetAttribute( oBody, 'text'   , '' ) ;\r
+       GetE('txtColorLink').value              = GetAttribute( oBody, 'link'   , '' ) ;\r
+       GetE('txtColorVisited').value   = GetAttribute( oBody, 'vLink'  , '' ) ;\r
+       GetE('txtColorActive').value    = GetAttribute( oBody, 'aLink'  , '' ) ;\r
+\r
+       // ### Margins\r
+       GetE('txtMarginTop').value              = GetAttribute( oBody, 'topMargin'              , '' ) ;\r
+       GetE('txtMarginLeft').value             = GetAttribute( oBody, 'leftMargin'             , '' ) ;\r
+       GetE('txtMarginRight').value    = GetAttribute( oBody, 'rightMargin'    , '' ) ;\r
+       GetE('txtMarginBottom').value   = GetAttribute( oBody, 'bottomMargin'   , '' ) ;\r
+\r
+       // ### Meta Data\r
+       GetE('txtMetaKeywords').value           = GetMetadata( 'keywords' ) ;\r
+       GetE('txtMetaDescription').value        = GetMetadata( 'description' ) ;\r
+       GetE('txtMetaAuthor').value                     = GetMetadata( 'author' ) ;\r
+       GetE('txtMetaCopyright').value          = GetMetadata( 'copyright' ) ;\r
+}\r
+\r
+// Called when the "Ok" button is clicked.\r
+function Ok()\r
+{\r
+       // ### General Info\r
+       FCK.EditorDocument.title = GetE('txtPageTitle').value ;\r
+\r
+       var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;\r
+\r
+       SetAttribute( oHTML, 'dir'              , GetE('selDirection').value ) ;\r
+       SetAttribute( oHTML, 'lang'             , GetE('txtLang').value ) ;\r
+       SetAttribute( oHTML, 'xml:lang' , GetE('txtLang').value ) ;\r
+\r
+       // Character Set Enconding.\r
+       var sCharSet = GetE('selCharSet').value ;\r
+       if ( sCharSet == '...' )\r
+               sCharSet = GetE('txtCustomCharSet').value ;\r
+\r
+       if ( sCharSet.length > 0 )\r
+                       sCharSet = 'text/html; charset=' + sCharSet ;\r
+\r
+//     if ( oEditor.FCKBrowserInfo.IsIE )\r
+//             FCK.EditorDocument.charset = sCharSet ;\r
+//     else\r
+               SetMetadata( 'Content-Type', sCharSet, true ) ;\r
+\r
+       // Document Type\r
+       var sDocType = GetE('selDocType').value ;\r
+       if ( sDocType == '...' )\r
+               sDocType = GetE('txtDocType').value ;\r
+\r
+       FCK.DocTypeDeclaration = sDocType ;\r
+\r
+       // XHTML Declarations.\r
+       if ( GetE('chkIncXHTMLDecl').checked )\r
+       {\r
+               if ( sCharSet.length == 0 )\r
+                       sCharSet = 'utf-8' ;\r
+\r
+               FCK.XmlDeclaration = '<?xml version="1.0" encoding="' + sCharSet + '"?>' ;\r
+\r
+               SetAttribute( oHTML, 'xmlns', 'http://www.w3.org/1999/xhtml' ) ;\r
+       }\r
+       else\r
+       {\r
+               FCK.XmlDeclaration = null ;\r
+               oHTML.removeAttribute( 'xmlns', 0 ) ;\r
+       }\r
+\r
+       // ### Background\r
+       SetAttribute( oBody, 'bgcolor'          , GetE('txtBackColor').value ) ;\r
+       SetAttribute( oBody, 'background'       , GetE('txtBackImage').value ) ;\r
+       SetAttribute( oBody, 'bgproperties'     , GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;\r
+\r
+       // ### Colors\r
+       SetAttribute( oBody, 'text'     , GetE('txtColorText').value ) ;\r
+       SetAttribute( oBody, 'link'     , GetE('txtColorLink').value ) ;\r
+       SetAttribute( oBody, 'vlink', GetE('txtColorVisited').value ) ;\r
+       SetAttribute( oBody, 'alink', GetE('txtColorActive').value ) ;\r
+\r
+       // ### Margins\r
+       SetAttribute( oBody, 'topmargin'        , GetE('txtMarginTop').value ) ;\r
+       SetAttribute( oBody, 'leftmargin'       , GetE('txtMarginLeft').value ) ;\r
+       SetAttribute( oBody, 'rightmargin'      , GetE('txtMarginRight').value ) ;\r
+       SetAttribute( oBody, 'bottommargin'     , GetE('txtMarginBottom').value ) ;\r
+\r
+       // ### Meta data\r
+       SetMetadata( 'keywords'         , GetE('txtMetaKeywords').value ) ;\r
+       SetMetadata( 'description'      , GetE('txtMetaDescription').value ) ;\r
+       SetMetadata( 'author'           , GetE('txtMetaAuthor').value ) ;\r
+       SetMetadata( 'copyright'        , GetE('txtMetaCopyright').value ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+var bPreviewIsLoaded = false ;\r
+var oPreviewWindow ;\r
+var oPreviewBody ;\r
+\r
+// Called by the Preview page when loaded.\r
+function OnPreviewLoad( previewWindow, previewBody )\r
+{\r
+       oPreviewWindow  = previewWindow ;\r
+       oPreviewBody    = previewBody ;\r
+\r
+       bPreviewIsLoaded = true ;\r
+       UpdatePreview() ;\r
+}\r
+\r
+function UpdatePreview()\r
+{\r
+       if ( !bPreviewIsLoaded )\r
+               return ;\r
+\r
+       // ### Background\r
+       SetAttribute( oPreviewBody, 'bgcolor'           , GetE('txtBackColor').value ) ;\r
+       SetAttribute( oPreviewBody, 'background'        , GetE('txtBackImage').value ) ;\r
+       SetAttribute( oPreviewBody, 'bgproperties'      , GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;\r
+\r
+       // ### Colors\r
+       SetAttribute( oPreviewBody, 'text', GetE('txtColorText').value ) ;\r
+\r
+       oPreviewWindow.SetLinkColor( GetE('txtColorLink').value ) ;\r
+       oPreviewWindow.SetVisitedColor( GetE('txtColorVisited').value ) ;\r
+       oPreviewWindow.SetActiveColor( GetE('txtColorActive').value ) ;\r
+}\r
+\r
+function CheckOther( combo, txtField )\r
+{\r
+       var bNotOther = ( combo.value != '...' ) ;\r
+\r
+       GetE(txtField).style.backgroundColor = ( bNotOther ? '#cccccc' : '' ) ;\r
+       GetE(txtField).disabled = bNotOther ;\r
+}\r
+\r
+function SetColor( inputId, color )\r
+{\r
+       GetE( inputId ).value = color + '' ;\r
+       UpdatePreview() ;\r
+}\r
+\r
+function SelectBackColor( color )              { SetColor('txtBackColor', color ) ; }\r
+function SelectColorText( color )              { SetColor('txtColorText', color ) ; }\r
+function SelectColorLink( color )              { SetColor('txtColorLink', color ) ; }\r
+function SelectColorVisited( color )   { SetColor('txtColorVisited', color ) ; }\r
+function SelectColorActive( color )            { SetColor('txtColorActive', color ) ; }\r
+\r
+function SelectColor( wich )\r
+{\r
+       switch ( wich )\r
+       {\r
+               case 'Back'                     : oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectBackColor, window ) ; return ;\r
+               case 'ColorText'        : oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorText, window ) ; return ;\r
+               case 'ColorLink'        : oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorLink, window ) ; return ;\r
+               case 'ColorVisited'     : oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorVisited, window ) ; return ;\r
+               case 'ColorActive'      : oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorActive, window ) ; return ;\r
+       }\r
+}\r
+\r
+function BrowseServerBack()\r
+{\r
+       OpenFileBrowser( FCKConfig.ImageBrowserURL, FCKConfig.ImageBrowserWindowWidth, FCKConfig.ImageBrowserWindowHeight ) ;\r
+}\r
+\r
+function SetUrl( url )\r
+{\r
+       GetE('txtBackImage').value = url ;\r
+       UpdatePreview() ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">\r
+               <tr>\r
+                       <td valign="top" style="height: 100%">\r
+                               <div id="divGeneral">\r
+                                       <span fcklang="DlgDocPageTitle">Page Title</span><br />\r
+                                       <input id="txtPageTitle" style="width: 100%" type="text" />\r
+                                       <br />\r
+                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fcklang="DlgDocLangDir">Language Direction</span><br />\r
+                                                               <select id="selDirection">\r
+                                                                       <option value="" selected="selected"></option>\r
+                                                                       <option value="ltr" fcklang="DlgDocLangDirLTR">Left to Right (LTR)</option>\r
+                                                                       <option value="rtl" fcklang="DlgDocLangDirRTL">Right to Left (RTL)</option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td>\r
+                                                               &nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td>\r
+                                                               <span fcklang="DlgDocLangCode">Language Code</span><br />\r
+                                                               <input id="txtLang" type="text" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <br />\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td style="white-space: nowrap">\r
+                                                               <span fcklang="DlgDocCharSet">Character Set Encoding</span><br />\r
+                                                               <select id="selCharSet" onchange="CheckOther( this, 'txtCustomCharSet' );">\r
+                                                                       <option value="" selected="selected"></option>\r
+                                                                       <option value="us-ascii">ASCII</option>\r
+                                                                       <option fcklang="DlgDocCharSetCE" value="iso-8859-2">Central European</option>\r
+                                                                       <option fcklang="DlgDocCharSetCT" value="big5">Chinese Traditional (Big5)</option>\r
+                                                                       <option fcklang="DlgDocCharSetCR" value="iso-8859-5">Cyrillic</option>\r
+                                                                       <option fcklang="DlgDocCharSetGR" value="iso-8859-7">Greek</option>\r
+                                                                       <option fcklang="DlgDocCharSetJP" value="iso-2022-jp">Japanese</option>\r
+                                                                       <option fcklang="DlgDocCharSetKR" value="iso-2022-kr">Korean</option>\r
+                                                                       <option fcklang="DlgDocCharSetTR" value="iso-8859-9">Turkish</option>\r
+                                                                       <option fcklang="DlgDocCharSetUN" value="utf-8">Unicode (UTF-8)</option>\r
+                                                                       <option fcklang="DlgDocCharSetWE" value="iso-8859-1">Western European</option>\r
+                                                                       <option fcklang="DlgOpOther" value="...">&lt;Other&gt;</option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td>\r
+                                                               &nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td width="100%">\r
+                                                               <span fcklang="DlgDocCharSetOther">Other Character Set Encoding</span><br />\r
+                                                               <input id="txtCustomCharSet" style="width: 100%; background-color: #cccccc" disabled="disabled"\r
+                                                                       type="text" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td colspan="3">\r
+                                                               &nbsp;</td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td nowrap="nowrap">\r
+                                                               <span fcklang="DlgDocDocType">Document Type Heading</span><br />\r
+                                                               <select id="selDocType" name="selDocType" onchange="CheckOther( this, 'txtDocType' );">\r
+                                                                       <option value="" selected="selected"></option>\r
+                                                                       <option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'>HTML\r
+                                                                               4.01 Transitional</option>\r
+                                                                       <option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'>\r
+                                                                               HTML 4.01 Strict</option>\r
+                                                                       <option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'>\r
+                                                                               HTML 4.01 Frameset</option>\r
+                                                                       <option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'>\r
+                                                                               XHTML 1.0 Transitional</option>\r
+                                                                       <option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'>\r
+                                                                               XHTML 1.0 Strict</option>\r
+                                                                       <option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'>\r
+                                                                               XHTML 1.0 Frameset</option>\r
+                                                                       <option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'>\r
+                                                                               XHTML 1.1</option>\r
+                                                                       <option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'>HTML 3.2</option>\r
+                                                                       <option value='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'>HTML 2.0</option>\r
+                                                                       <option value="..." fcklang="DlgOpOther">&lt;Other&gt;</option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td>\r
+                                                       </td>\r
+                                                       <td width="100%">\r
+                                                               <span fcklang="DlgDocDocTypeOther">Other Document Type Heading</span><br />\r
+                                                               <input id="txtDocType" style="width: 100%; background-color: #cccccc" disabled="disabled"\r
+                                                                       type="text" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <br />\r
+                                       <input id="chkIncXHTMLDecl" type="checkbox" />\r
+                                       <label for="chkIncXHTMLDecl" fcklang="DlgDocIncXHTML">\r
+                                               Include XHTML Declarations</label>\r
+                               </div>\r
+                               <div id="divBackground" style="display: none">\r
+                                       <span fcklang="DlgDocBgColor">Background Color</span><br />\r
+                                       <input id="txtBackColor" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" />&nbsp;<input\r
+                                               id="btnSelBackColor" onclick="SelectColor( 'Back' )" type="button" value="Select..."\r
+                                               fcklang="DlgCellBtnSelect" /><br />\r
+                                       <br />\r
+                                       <span fcklang="DlgDocBgImage">Background Image URL</span><br />\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td width="100%">\r
+                                                               <input id="txtBackImage" style="width: 100%" type="text" onchange="UpdatePreview();"\r
+                                                                       onkeyup="UpdatePreview();" /></td>\r
+                                                       <td id="tdBrowse" nowrap="nowrap">\r
+                                                               &nbsp;<input id="btnBrowse" onclick="BrowseServerBack();" type="button" fcklang="DlgBtnBrowseServer"\r
+                                                                       value="Browse Server" /></td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <input id="chkBackNoScroll" type="checkbox" onclick="UpdatePreview();" />\r
+                                       <label for="chkBackNoScroll" fcklang="DlgDocBgNoScroll">\r
+                                               Nonscrolling Background</label>\r
+                               </div>\r
+                               <div id="divColors" style="display: none">\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fcklang="DlgDocCText">Text</span><br />\r
+                                                               <input id="txtColorText" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input\r
+                                                                       onclick="SelectColor( 'ColorText' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />\r
+                                                               <br />\r
+                                                               <span fcklang="DlgDocCLink">Link</span><br />\r
+                                                               <input id="txtColorLink" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input\r
+                                                                       onclick="SelectColor( 'ColorLink' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />\r
+                                                               <br />\r
+                                                               <span fcklang="DlgDocCVisited">Visited Link</span><br />\r
+                                                               <input id="txtColorVisited" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input\r
+                                                                       onclick="SelectColor( 'ColorVisited' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />\r
+                                                               <br />\r
+                                                               <span fcklang="DlgDocCActive">Active Link</span><br />\r
+                                                               <input id="txtColorActive" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input\r
+                                                                       onclick="SelectColor( 'ColorActive' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />\r
+                                                       </td>\r
+                                                       <td valign="middle" align="center">\r
+                                                               <table cellspacing="2" cellpadding="0" border="0">\r
+                                                                       <tr>\r
+                                                                               <td>\r
+                                                                                       <span fcklang="DlgDocMargins">Page Margins</span></td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td style="border: #000000 1px solid; padding: 5px">\r
+                                                                                       <table cellpadding="0" cellspacing="0" border="0" dir="ltr">\r
+                                                                                               <tr>\r
+                                                                                                       <td align="center" colspan="3">\r
+                                                                                                               <span fcklang="DlgDocMaTop">Top</span><br />\r
+                                                                                                               <input id="txtMarginTop" type="text" size="3" />\r
+                                                                                                       </td>\r
+                                                                                               </tr>\r
+                                                                                               <tr>\r
+                                                                                                       <td align="left">\r
+                                                                                                               <span fcklang="DlgDocMaLeft">Left</span><br />\r
+                                                                                                               <input id="txtMarginLeft" type="text" size="3" />\r
+                                                                                                       </td>\r
+                                                                                                       <td>\r
+                                                                                                               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\r
+                                                                                                       <td align="right">\r
+                                                                                                               <span fcklang="DlgDocMaRight">Right</span><br />\r
+                                                                                                               <input id="txtMarginRight" type="text" size="3" />\r
+                                                                                                       </td>\r
+                                                                                               </tr>\r
+                                                                                               <tr>\r
+                                                                                                       <td align="center" colspan="3">\r
+                                                                                                               <span fcklang="DlgDocMaBottom">Bottom</span><br />\r
+                                                                                                               <input id="txtMarginBottom" type="text" size="3" />\r
+                                                                                                       </td>\r
+                                                                                               </tr>\r
+                                                                                       </table>\r
+                                                                               </td>\r
+                                                                       </tr>\r
+                                                               </table>\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </div>\r
+                               <div id="divMeta" style="display: none">\r
+                                       <span fcklang="DlgDocMeIndex">Document Indexing Keywords (comma separated)</span><br />\r
+                                       <textarea id="txtMetaKeywords" style="width: 100%" rows="2" cols="20"></textarea>\r
+                                       <br />\r
+                                       <span fcklang="DlgDocMeDescr">Document Description</span><br />\r
+                                       <textarea id="txtMetaDescription" style="width: 100%" rows="4" cols="20"></textarea>\r
+                                       <br />\r
+                                       <span fcklang="DlgDocMeAuthor">Author</span><br />\r
+                                       <input id="txtMetaAuthor" style="width: 100%" type="text" /><br />\r
+                                       <br />\r
+                                       <span fcklang="DlgDocMeCopy">Copyright</span><br />\r
+                                       <input id="txtMetaCopyright" type="text" style="width: 100%" />\r
+                               </div>\r
+                       </td>\r
+               </tr>\r
+               <tr id="ePreview" style="display: none">\r
+                       <td>\r
+                               <span fcklang="DlgDocPreview">Preview</span><br />\r
+                               <iframe id="frmPreview" src="fck_docprops/fck_document_preview.html" width="100%"\r
+                                       height="100"></iframe>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html b/httemplate/elements/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
new file mode 100644 (file)
index 0000000..2092775
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Preview shown in the "Document Properties" dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Document Properties - Preview</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta name="robots" content="noindex, nofollow">\r
+               <script language="javascript">\r
+\r
+var eBase = parent.FCK.EditorDocument.getElementsByTagName( 'BASE' ) ;\r
+if ( eBase.length > 0 && eBase[0].href.length > 0 )\r
+{\r
+       document.write( '<base href="' + eBase[0].href + '">' ) ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       if ( typeof( parent.OnPreviewLoad ) == 'function' )\r
+               parent.OnPreviewLoad( window, document.body ) ;\r
+}\r
+\r
+function SetBaseHRef( baseHref )\r
+{\r
+       var eBase = document.createElement( 'BASE' ) ;\r
+       eBase.href = baseHref ;\r
+\r
+       var eHead = document.getElementsByTagName( 'HEAD' )[0] ;\r
+       eHead.appendChild( eBase ) ;\r
+}\r
+\r
+function SetLinkColor( color )\r
+{\r
+       if ( color && color.length > 0 )\r
+               document.getElementById('eLink').style.color = color ;\r
+       else\r
+               document.getElementById('eLink').style.color = window.document.linkColor ;\r
+}\r
+\r
+function SetVisitedColor( color )\r
+{\r
+       if ( color && color.length > 0 )\r
+               document.getElementById('eVisited').style.color = color ;\r
+       else\r
+               document.getElementById('eVisited').style.color = window.document.vlinkColor ;\r
+}\r
+\r
+function SetActiveColor( color )\r
+{\r
+       if ( color && color.length > 0 )\r
+               document.getElementById('eActive').style.color = color ;\r
+       else\r
+               document.getElementById('eActive').style.color = window.document.alinkColor ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body>\r
+               <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">\r
+                       <tr>\r
+                               <td align="center" valign="middle">\r
+                                       Normal Text\r
+                               </td>\r
+                               <td id="eLink" align="center" valign="middle">\r
+                                       <u>Link Text</u>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td id="eVisited" valign="middle" align="center">\r
+                                       <u>Visited Link</u>\r
+                               </td>\r
+                               <td id="eActive" valign="middle" align="center">\r
+                                       <u>Active Link</u>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+               <br>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_find.html b/httemplate/elements/fckeditor/editor/dialog/fck_find.html
new file mode 100644 (file)
index 0000000..eba7f90
--- /dev/null
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * "Find" dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+function OnLoad()\r
+{\r
+       // Whole word is available on IE only.\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+               document.getElementById('divWord').style.display = '' ;\r
+\r
+       // First of all, translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+function btnStat(frm)\r
+{\r
+       document.getElementById('btnFind').disabled =\r
+               ( document.getElementById('txtFind').value.length == 0 ) ;\r
+}\r
+\r
+function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll )\r
+{\r
+       for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )\r
+       {\r
+               var oNode = parentNode.childNodes[i] ;\r
+               if ( oNode.nodeType == 3 )\r
+               {\r
+                       var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;\r
+                       if ( oNode.nodeValue != sReplaced )\r
+                       {\r
+                               oNode.nodeValue = sReplaced ;\r
+                               if ( ! replaceAll )\r
+                                       return true ;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       if ( ReplaceTextNodes( oNode, regex, replaceValue ) )\r
+                               return true ;\r
+               }\r
+       }\r
+       return false ;\r
+}\r
+\r
+function GetRegexExpr()\r
+{\r
+       var sExpr ;\r
+\r
+       if ( document.getElementById('chkWord').checked )\r
+               sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;\r
+       else\r
+               sExpr = document.getElementById('txtFind').value ;\r
+\r
+       return sExpr ;\r
+}\r
+\r
+function GetCase()\r
+{\r
+       return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( document.getElementById('txtFind').value.length == 0 )\r
+               return ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+               FindIE() ;\r
+       else\r
+               FindGecko() ;\r
+}\r
+\r
+var oRange ;\r
+\r
+if ( oEditor.FCKBrowserInfo.IsIE )\r
+       oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;\r
+\r
+function FindIE()\r
+{\r
+       var iFlags = 0 ;\r
+\r
+       if ( chkCase.checked )\r
+               iFlags = iFlags | 4 ;\r
+\r
+       if ( chkWord.checked )\r
+               iFlags = iFlags | 2 ;\r
+\r
+       var bFound = oRange.findText( document.getElementById('txtFind').value, 1, iFlags ) ;\r
+\r
+       if ( bFound )\r
+       {\r
+               oRange.scrollIntoView() ;\r
+               oRange.select() ;\r
+               oRange.collapse(false) ;\r
+               oLastRangeFound = oRange ;\r
+       }\r
+       else\r
+       {\r
+               oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;\r
+               alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
+       }\r
+}\r
+\r
+function FindGecko()\r
+{\r
+       var bCase = document.getElementById('chkCase').checked ;\r
+       var bWord = document.getElementById('chkWord').checked ;\r
+\r
+       // window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;\r
+       if ( !oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) )\r
+               alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
+}\r
+       </script>\r
+</head>\r
+<body onload="OnLoad()" style="overflow: hidden">\r
+       <table cellspacing="3" cellpadding="2" width="100%" border="0">\r
+               <tr>\r
+                       <td nowrap="nowrap">\r
+                               <label for="txtFind" fcklang="DlgReplaceFindLbl">\r
+                                       Find what:</label>&nbsp;\r
+                       </td>\r
+                       <td width="100%">\r
+                               <input id="txtFind" style="width: 100%" tabindex="1" type="text" />\r
+                       </td>\r
+                       <td>\r
+                               <input id="btnFind" style="padding-right: 5px; padding-left: 5px" onclick="Ok();"\r
+                                       type="button" value="Find" fcklang="DlgFindFindBtn" />\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td valign="bottom" colspan="3">\r
+                               &nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match\r
+                                       case</label>\r
+                               <br />\r
+                               <div id="divWord" style="display: none">\r
+                                       &nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match\r
+                                               whole word</label>\r
+                               </div>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_flash.html b/httemplate/elements/fckeditor/editor/dialog/fck_flash.html
new file mode 100644 (file)
index 0000000..be529e3
--- /dev/null
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Flash Properties dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Flash Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script src="fck_flash/fck_flash.js" type="text/javascript"></script>\r
+               <link href="common/fck_dialog_common.css" type="text/css" rel="stylesheet">\r
+       </head>\r
+       <body scroll="no" style="OVERFLOW: hidden">\r
+               <div id="divInfo">\r
+                       <table cellSpacing="1" cellPadding="1" width="100%" border="0">\r
+                               <tr>\r
+                                       <td>\r
+                                               <table cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                                                       <tr>\r
+                                                               <td width="100%"><span fckLang="DlgImgURL">URL</span>\r
+                                                               </td>\r
+                                                               <td id="tdBrowse" style="DISPLAY: none" noWrap rowSpan="2">&nbsp; <input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server" fckLang="DlgBtnBrowseServer">\r
+                                                               </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td vAlign="top"><input id="txtUrl" onblur="UpdatePreview();" style="WIDTH: 100%" type="text">\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                               <TR>\r
+                                       <TD>\r
+                                               <table cellSpacing="0" cellPadding="0" border="0">\r
+                                                       <TR>\r
+                                                               <TD nowrap>\r
+                                                                       <span fckLang="DlgImgWidth">Width</span><br>\r
+                                                                       <input id="txtWidth" class="FCK__FieldNumeric" type="text" size="3">\r
+                                                               </TD>\r
+                                                               <TD>&nbsp;</TD>\r
+                                                               <TD>\r
+                                                                       <span fckLang="DlgImgHeight">Height</span><br>\r
+                                                                       <input id="txtHeight" class="FCK__FieldNumeric" type="text" size="3">\r
+                                                               </TD>\r
+                                                       </TR>\r
+                                               </table>\r
+                                       </TD>\r
+                               </TR>\r
+                               <tr>\r
+                                       <td vAlign="top">\r
+                                               <table cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                                                       <tr>\r
+                                                               <td valign="top" width="100%">\r
+                                                                       <table cellSpacing="0" cellPadding="0" width="100%">\r
+                                                                               <tr>\r
+                                                                                       <td><span fckLang="DlgImgPreview">Preview</span></td>\r
+                                                                               </tr>\r
+                                                                               <tr>\r
+                                                                                       <td id="ePreviewCell" valign="top" class="FlashPreviewArea"><iframe src="fck_flash/fck_flash_preview.html" frameborder="0" marginheight="0" marginwidth="0"></iframe></td>\r
+                                                                               </tr>\r
+                                                                       </table>\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+               </div>\r
+               <div id="divUpload" style="DISPLAY: none">\r
+                       <form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">\r
+                               <span fckLang="DlgLnkUpload">Upload</span><br />\r
+                               <input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />\r
+                               <br />\r
+                               <input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />\r
+                               <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>\r
+                       </form>\r
+               </div>\r
+               <div id="divAdvanced" style="DISPLAY: none">\r
+                       <TABLE cellSpacing="0" cellPadding="0" border="0">\r
+                               <TR>\r
+                                       <TD nowrap>\r
+                                               <span fckLang="DlgFlashScale">Scale</span><BR>\r
+                                               <select id="cmbScale">\r
+                                                       <option value="" selected></option>\r
+                                                       <option value="showall" fckLang="DlgFlashScaleAll">Show all</option>\r
+                                                       <option value="noborder" fckLang="DlgFlashScaleNoBorder">No Border</option>\r
+                                                       <option value="exactfit" fckLang="DlgFlashScaleFit">Exact Fit</option>\r
+                                               </select></TD>\r
+                                       <TD>&nbsp;&nbsp;&nbsp; &nbsp;\r
+                                       </TD>\r
+                                       <td valign="bottom">\r
+                                               <table>\r
+                                                       <tr>\r
+                                                               <td><input id="chkAutoPlay" type="checkbox" checked></td>\r
+                                                               <td><label for="chkAutoPlay" nowrap fckLang="DlgFlashChkPlay">Auto Play</label>&nbsp;&nbsp;</td>\r
+                                                               <td><input id="chkLoop" type="checkbox" checked></td>\r
+                                                               <td><label for="chkLoop" nowrap fckLang="DlgFlashChkLoop">Loop</label>&nbsp;&nbsp;</td>\r
+                                                               <td><input id="chkMenu" type="checkbox" checked></td>\r
+                                                               <td><label for="chkMenu" nowrap fckLang="DlgFlashChkMenu">Enable Flash Menu</label></td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </TR>\r
+                       </TABLE>\r
+                       <br>\r
+                       &nbsp;\r
+                       <table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">\r
+                               <tr>\r
+                                       <td vAlign="top" width="50%"><span fckLang="DlgGenId">Id</span><br>\r
+                                               <input id="txtAttId" style="WIDTH: 100%" type="text">\r
+                                       </td>\r
+                                       <td>&nbsp;&nbsp;</td>\r
+                                       <td vAlign="top" nowrap><span fckLang="DlgGenClass">Stylesheet Classes</span><br>\r
+                                               <input id="txtAttClasses" style="WIDTH: 100%" type="text">\r
+                                       </td>\r
+                                       <td>&nbsp;&nbsp;</td>\r
+                                       <td vAlign="top" nowrap width="50%">&nbsp;<span fckLang="DlgGenTitle">Advisory Title</span><br>\r
+                                               <input id="txtAttTitle" style="WIDTH: 100%" type="text">\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+                       <span fckLang="DlgGenStyle">Style</span><br>\r
+                       <input id="txtAttStyle" style="WIDTH: 100%" type="text">\r
+               </div>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash.js b/httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash.js
new file mode 100644 (file)
index 0000000..ee97bc5
--- /dev/null
@@ -0,0 +1,286 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Scripts related to the Flash dialog window (see fck_flash.html).\r
+ */\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKLang            = oEditor.FCKLang ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+\r
+//#### Dialog Tabs\r
+\r
+// Set the dialog tabs.\r
+window.parent.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;\r
+\r
+if ( FCKConfig.FlashUpload )\r
+       window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;\r
+\r
+if ( !FCKConfig.FlashDlgHideAdvanced )\r
+       window.parent.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;\r
+\r
+// Function called when a dialog tag is selected.\r
+function OnDialogTabChange( tabCode )\r
+{\r
+       ShowE('divInfo'         , ( tabCode == 'Info' ) ) ;\r
+       ShowE('divUpload'       , ( tabCode == 'Upload' ) ) ;\r
+       ShowE('divAdvanced'     , ( tabCode == 'Advanced' ) ) ;\r
+}\r
+\r
+// Get the selected flash embed (if available).\r
+var oFakeImage = FCK.Selection.GetSelectedElement() ;\r
+var oEmbed ;\r
+\r
+if ( oFakeImage )\r
+{\r
+       if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )\r
+               oEmbed = FCK.GetRealElement( oFakeImage ) ;\r
+       else\r
+               oFakeImage = null ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       // Translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       // Load the selected element information (if any).\r
+       LoadSelection() ;\r
+\r
+       // Show/Hide the "Browse Server" button.\r
+       GetE('tdBrowse').style.display = FCKConfig.FlashBrowser ? '' : 'none' ;\r
+\r
+       // Set the actual uploader URL.\r
+       if ( FCKConfig.FlashUpload )\r
+               GetE('frmUpload').action = FCKConfig.FlashUploadURL ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+\r
+       // Activate the "OK" button.\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function LoadSelection()\r
+{\r
+       if ( ! oEmbed ) return ;\r
+\r
+       GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;\r
+       GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;\r
+       GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;\r
+\r
+       // Get Advances Attributes\r
+       GetE('txtAttId').value          = oEmbed.id ;\r
+       GetE('chkAutoPlay').checked     = GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;\r
+       GetE('chkLoop').checked         = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;\r
+       GetE('chkMenu').checked         = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;\r
+       GetE('cmbScale').value          = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;\r
+\r
+       GetE('txtAttTitle').value               = oEmbed.title ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;\r
+               GetE('txtAttStyle').value = oEmbed.style.cssText ;\r
+       }\r
+       else\r
+       {\r
+               GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;\r
+               GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;\r
+       }\r
+\r
+       UpdatePreview() ;\r
+}\r
+\r
+//#### The OK button was hit.\r
+function Ok()\r
+{\r
+       if ( GetE('txtUrl').value.length == 0 )\r
+       {\r
+               window.parent.SetSelectedTab( 'Info' ) ;\r
+               GetE('txtUrl').focus() ;\r
+\r
+               alert( oEditor.FCKLang.DlgAlertUrl ) ;\r
+\r
+               return false ;\r
+       }\r
+\r
+       if ( !oEmbed )\r
+       {\r
+               oEmbed          = FCK.EditorDocument.createElement( 'EMBED' ) ;\r
+               oFakeImage  = null ;\r
+       }\r
+       UpdateEmbed( oEmbed ) ;\r
+\r
+       if ( !oFakeImage )\r
+       {\r
+               oFakeImage      = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;\r
+               oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;\r
+               oFakeImage      = FCK.InsertElementAndGetIt( oFakeImage ) ;\r
+       }\r
+       else\r
+               oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+function UpdateEmbed( e )\r
+{\r
+       SetAttribute( e, 'type'                 , 'application/x-shockwave-flash' ) ;\r
+       SetAttribute( e, 'pluginspage'  , 'http://www.macromedia.com/go/getflashplayer' ) ;\r
+\r
+       SetAttribute( e, 'src', GetE('txtUrl').value ) ;\r
+       SetAttribute( e, "width" , GetE('txtWidth').value ) ;\r
+       SetAttribute( e, "height", GetE('txtHeight').value ) ;\r
+\r
+       // Advances Attributes\r
+\r
+       SetAttribute( e, 'id'   , GetE('txtAttId').value ) ;\r
+       SetAttribute( e, 'scale', GetE('cmbScale').value ) ;\r
+\r
+       SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;\r
+       SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;\r
+       SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;\r
+\r
+       SetAttribute( e, 'title'        , GetE('txtAttTitle').value ) ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;\r
+               e.style.cssText = GetE('txtAttStyle').value ;\r
+       }\r
+       else\r
+       {\r
+               SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;\r
+               SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;\r
+       }\r
+}\r
+\r
+var ePreview ;\r
+\r
+function SetPreviewElement( previewEl )\r
+{\r
+       ePreview = previewEl ;\r
+\r
+       if ( GetE('txtUrl').value.length > 0 )\r
+               UpdatePreview() ;\r
+}\r
+\r
+function UpdatePreview()\r
+{\r
+       if ( !ePreview )\r
+               return ;\r
+\r
+       while ( ePreview.firstChild )\r
+               ePreview.removeChild( ePreview.firstChild ) ;\r
+\r
+       if ( GetE('txtUrl').value.length == 0 )\r
+               ePreview.innerHTML = '&nbsp;' ;\r
+       else\r
+       {\r
+               var oDoc        = ePreview.ownerDocument || ePreview.document ;\r
+               var e           = oDoc.createElement( 'EMBED' ) ;\r
+\r
+               SetAttribute( e, 'src', GetE('txtUrl').value ) ;\r
+               SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;\r
+               SetAttribute( e, 'width', '100%' ) ;\r
+               SetAttribute( e, 'height', '100%' ) ;\r
+\r
+               ePreview.appendChild( e ) ;\r
+       }\r
+}\r
+\r
+// <embed id="ePreview" src="fck_flash/claims.swf" width="100%" height="100%" style="visibility:hidden" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">\r
+\r
+function BrowseServer()\r
+{\r
+       OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;\r
+}\r
+\r
+function SetUrl( url, width, height )\r
+{\r
+       GetE('txtUrl').value = url ;\r
+\r
+       if ( width )\r
+               GetE('txtWidth').value = width ;\r
+\r
+       if ( height )\r
+               GetE('txtHeight').value = height ;\r
+\r
+       UpdatePreview() ;\r
+\r
+       window.parent.SetSelectedTab( 'Info' ) ;\r
+}\r
+\r
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )\r
+{\r
+       switch ( errorNumber )\r
+       {\r
+               case 0 :        // No errors\r
+                       alert( 'Your file has been successfully uploaded' ) ;\r
+                       break ;\r
+               case 1 :        // Custom error\r
+                       alert( customMsg ) ;\r
+                       return ;\r
+               case 101 :      // Custom warning\r
+                       alert( customMsg ) ;\r
+                       break ;\r
+               case 201 :\r
+                       alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;\r
+                       break ;\r
+               case 202 :\r
+                       alert( 'Invalid file type' ) ;\r
+                       return ;\r
+               case 203 :\r
+                       alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;\r
+                       return ;\r
+               default :\r
+                       alert( 'Error on file upload. Error number: ' + errorNumber ) ;\r
+                       return ;\r
+       }\r
+\r
+       SetUrl( fileUrl ) ;\r
+       GetE('frmUpload').reset() ;\r
+}\r
+\r
+var oUploadAllowedExtRegex     = new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ;\r
+var oUploadDeniedExtRegex      = new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ;\r
+\r
+function CheckUpload()\r
+{\r
+       var sFile = GetE('txtUploadFile').value ;\r
+\r
+       if ( sFile.length == 0 )\r
+       {\r
+               alert( 'Please select a file to upload' ) ;\r
+               return false ;\r
+       }\r
+\r
+       if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||\r
+               ( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )\r
+       {\r
+               OnUploadCompleted( 202 ) ;\r
+               return false ;\r
+       }\r
+\r
+       return true ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html b/httemplate/elements/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
new file mode 100644 (file)
index 0000000..ad3a0a1
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Preview page for the Flash dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title></title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta name="robots" content="noindex, nofollow">\r
+               <link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />\r
+               <script language="javascript">\r
+\r
+// Sets the Skin CSS\r
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;\r
+\r
+if ( window.parent.FCKConfig.BaseHref.length > 0 )\r
+       document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;\r
+\r
+window.onload = function()\r
+{\r
+       window.parent.SetPreviewElement( document.body ) ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style="COLOR: #000000; BACKGROUND-COLOR: #ffffff"></body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_form.html b/httemplate/elements/fckeditor/editor/dialog/fck_form.html
new file mode 100644 (file)
index 0000000..66e56d9
--- /dev/null
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Form dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'FORM' ) ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl )\r
+       {\r
+               GetE('txtName').value   = oActiveEl.name ;\r
+               GetE('txtAction').value = oActiveEl.getAttribute( 'action', 2 ) ;\r
+               GetE('txtMethod').value = oActiveEl.method ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'FORM' ) ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+               oActiveEl.innerHTML = '&nbsp;' ;\r
+       }\r
+\r
+       oActiveEl.name = GetE('txtName').value ;\r
+       SetAttribute( oActiveEl, 'action'       , GetE('txtAction').value ) ;\r
+       oActiveEl.method = GetE('txtMethod').value ;\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table width="100%" style="height: 100%">\r
+               <tr>\r
+                       <td align="center">\r
+                               <table cellspacing="0" cellpadding="0" width="80%" border="0">\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgFormName">Name</span><br />\r
+                                                       <input style="width: 100%" type="text" id="txtName" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgFormAction">Action</span><br />\r
+                                                       <input style="width: 100%" type="text" id="txtAction" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgFormMethod">Method</span><br />\r
+                                                       <select id="txtMethod">\r
+                                                               <option value="get" selected="selected">GET</option>\r
+                                                               <option value="post">POST</option>\r
+                                                       </select>\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_hiddenfield.html b/httemplate/elements/fckeditor/editor/dialog/fck_hiddenfield.html
new file mode 100644 (file)
index 0000000..1ae8ae6
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Hidden Field dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Hidden Field Properties</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+var FCK = oEditor.FCK ;\r
+\r
+// Gets the document DOM\r
+var oDOM = FCK.EditorDocument ;\r
+\r
+// Get the selected flash embed (if available).\r
+var oFakeImage = FCK.Selection.GetSelectedElement() ;\r
+var oActiveEl ;\r
+\r
+if ( oFakeImage )\r
+{\r
+       if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') )\r
+               oActiveEl = FCK.GetRealElement( oFakeImage ) ;\r
+       else\r
+               oFakeImage = null ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl )\r
+       {\r
+               GetE('txtName').value           = oActiveEl.name ;\r
+               GetE('txtValue').value          = oActiveEl.value ;\r
+       }\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+               oActiveEl.type = 'hidden' ;\r
+\r
+               oFakeImage = null ;\r
+       }\r
+\r
+       oActiveEl.name = GetE('txtName').value ;\r
+       SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;\r
+\r
+       if ( !oFakeImage )\r
+       {\r
+               oFakeImage      = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ;\r
+               oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ;\r
+               oFakeImage      = FCK.InsertElementAndGetIt( oFakeImage ) ;\r
+       }\r
+       else\r
+               oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oActiveEl ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden" scroll="no">\r
+       <table height="100%" width="100%">\r
+               <tr>\r
+                       <td align="center">\r
+                               <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgHiddenName">Name</span><br />\r
+                                                       <input type="text" size="20" id="txtName" style="width: 100%" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgHiddenValue">Value</span><br />\r
+                                                       <input type="text" size="30" id="txtValue" style="width: 100%" />\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_image.html b/httemplate/elements/fckeditor/editor/dialog/fck_image.html
new file mode 100644 (file)
index 0000000..e4a8b03
--- /dev/null
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Image Properties dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Image Properties</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script src="fck_image/fck_image.js" type="text/javascript"></script>\r
+       <link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />\r
+</head>\r
+<body scroll="no" style="overflow: hidden">\r
+       <div id="divInfo">\r
+               <table cellspacing="1" cellpadding="1" border="0" width="100%" height="100%">\r
+                       <tr>\r
+                               <td>\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td width="100%">\r
+                                                               <span fcklang="DlgImgURL">URL</span>\r
+                                                       </td>\r
+                                                       <td id="tdBrowse" style="display: none" nowrap="nowrap" rowspan="2">\r
+                                                               &nbsp;\r
+                                                               <input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server"\r
+                                                                       fcklang="DlgBtnBrowseServer" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td valign="top">\r
+                                                               <input id="txtUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td>\r
+                                       <span fcklang="DlgImgAlt">Short Description</span><br />\r
+                                       <input id="txtAlt" style="width: 100%" type="text" /><br />\r
+                               </td>\r
+                       </tr>\r
+                       <tr height="100%">\r
+                               <td valign="top">\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">\r
+                                               <tr>\r
+                                                       <td valign="top">\r
+                                                               <br />\r
+                                                               <table cellspacing="0" cellpadding="0" border="0">\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgWidth">Width</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <input type="text" size="3" id="txtWidth" onkeyup="OnSizeChanged('Width',this.value);" /></td>\r
+                                                                               <td rowspan="2">\r
+                                                                                       <div id="btnLockSizes" class="BtnLocked" onmouseover="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';"\r
+                                                                                               onmouseout="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );" title="Lock Sizes"\r
+                                                                                               onclick="SwitchLock(this);">\r
+                                                                                       </div>\r
+                                                                               </td>\r
+                                                                               <td rowspan="2">\r
+                                                                                       <div id="btnResetSize" class="BtnReset" onmouseover="this.className='BtnReset BtnOver';"\r
+                                                                                               onmouseout="this.className='BtnReset';" title="Reset Size" onclick="ResetSizes();">\r
+                                                                                       </div>\r
+                                                                               </td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgHeight">Height</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <input type="text" size="3" id="txtHeight" onkeyup="OnSizeChanged('Height',this.value);" /></td>\r
+                                                                       </tr>\r
+                                                               </table>\r
+                                                               <br />\r
+                                                               <table cellspacing="0" cellpadding="0" border="0">\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgBorder">Border</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <input type="text" size="2" value="" id="txtBorder" onkeyup="UpdatePreview();" /></td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgHSpace">HSpace</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <input type="text" size="2" id="txtHSpace" onkeyup="UpdatePreview();" /></td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgVSpace">VSpace</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <input type="text" size="2" id="txtVSpace" onkeyup="UpdatePreview();" /></td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td nowrap="nowrap">\r
+                                                                                       <span fcklang="DlgImgAlign">Align</span>&nbsp;</td>\r
+                                                                               <td>\r
+                                                                                       <select id="cmbAlign" onchange="UpdatePreview();">\r
+                                                                                               <option value="" selected="selected"></option>\r
+                                                                                               <option fcklang="DlgImgAlignLeft" value="left">Left</option>\r
+                                                                                               <option fcklang="DlgImgAlignAbsBottom" value="absBottom">Abs Bottom</option>\r
+                                                                                               <option fcklang="DlgImgAlignAbsMiddle" value="absMiddle">Abs Middle</option>\r
+                                                                                               <option fcklang="DlgImgAlignBaseline" value="baseline">Baseline</option>\r
+                                                                                               <option fcklang="DlgImgAlignBottom" value="bottom">Bottom</option>\r
+                                                                                               <option fcklang="DlgImgAlignMiddle" value="middle">Middle</option>\r
+                                                                                               <option fcklang="DlgImgAlignRight" value="right">Right</option>\r
+                                                                                               <option fcklang="DlgImgAlignTextTop" value="textTop">Text Top</option>\r
+                                                                                               <option fcklang="DlgImgAlignTop" value="top">Top</option>\r
+                                                                                       </select>\r
+                                                                               </td>\r
+                                                                       </tr>\r
+                                                               </table>\r
+                                                       </td>\r
+                                                       <td>\r
+                                                               &nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td width="100%" valign="top">\r
+                                                               <table cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed">\r
+                                                                       <tr>\r
+                                                                               <td>\r
+                                                                                       <span fcklang="DlgImgPreview">Preview</span></td>\r
+                                                                       </tr>\r
+                                                                       <tr>\r
+                                                                               <td valign="top">\r
+                                                                                       <iframe class="ImagePreviewArea" src="fck_image/fck_image_preview.html" frameborder="0"\r
+                                                                                               marginheight="0" marginwidth="0"></iframe>\r
+                                                                               </td>\r
+                                                                       </tr>\r
+                                                               </table>\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+       <div id="divUpload" style="display: none">\r
+               <form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data"\r
+                       action="" onsubmit="return CheckUpload();">\r
+                       <span fcklang="DlgLnkUpload">Upload</span><br />\r
+                       <input id="txtUploadFile" style="width: 100%" type="file" size="40" name="NewFile" /><br />\r
+                       <br />\r
+                       <input id="btnUpload" type="submit" value="Send it to the Server" fcklang="DlgLnkBtnUpload" />\r
+                       <iframe name="UploadWindow" style="display: none" src="javascript:void(0)"></iframe>\r
+               </form>\r
+       </div>\r
+       <div id="divLink" style="display: none">\r
+               <table cellspacing="1" cellpadding="1" border="0" width="100%">\r
+                       <tr>\r
+                               <td>\r
+                                       <div>\r
+                                               <span fcklang="DlgLnkURL">URL</span><br />\r
+                                               <input id="txtLnkUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />\r
+                                       </div>\r
+                                       <div id="divLnkBrowseServer" align="right">\r
+                                               <input type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" onclick="LnkBrowseServer();" />\r
+                                       </div>\r
+                                       <div>\r
+                                               <span fcklang="DlgLnkTarget">Target</span><br />\r
+                                               <select id="cmbLnkTarget">\r
+                                                       <option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>\r
+                                                       <option value="_blank" fcklang="DlgLnkTargetBlank">New Window (_blank)</option>\r
+                                                       <option value="_top" fcklang="DlgLnkTargetTop">Topmost Window (_top)</option>\r
+                                                       <option value="_self" fcklang="DlgLnkTargetSelf">Same Window (_self)</option>\r
+                                                       <option value="_parent" fcklang="DlgLnkTargetParent">Parent Window (_parent)</option>\r
+                                               </select>\r
+                                       </div>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+       <div id="divAdvanced" style="display: none">\r
+               <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                       <tr>\r
+                               <td valign="top" width="50%">\r
+                                       <span fcklang="DlgGenId">Id</span><br />\r
+                                       <input id="txtAttId" style="width: 100%" type="text" />\r
+                               </td>\r
+                               <td width="1">\r
+                                       &nbsp;&nbsp;</td>\r
+                               <td valign="top">\r
+                                       <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                                               <tr>\r
+                                                       <td width="60%">\r
+                                                               <span fcklang="DlgGenLangDir">Language Direction</span><br />\r
+                                                               <select id="cmbAttLangDir" style="width: 100%">\r
+                                                                       <option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>\r
+                                                                       <option value="ltr" fcklang="DlgGenLangDirLtr">Left to Right (LTR)</option>\r
+                                                                       <option value="rtl" fcklang="DlgGenLangDirRtl">Right to Left (RTL)</option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td width="1%">\r
+                                                               &nbsp;&nbsp;</td>\r
+                                                       <td nowrap="nowrap">\r
+                                                               <span fcklang="DlgGenLangCode">Language Code</span><br />\r
+                                                               <input id="txtAttLangCode" style="width: 100%" type="text" />&nbsp;\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td colspan="3">\r
+                                       &nbsp;</td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td colspan="3">\r
+                                       <span fcklang="DlgGenLongDescr">Long Description URL</span><br />\r
+                                       <input id="txtLongDesc" style="width: 100%" type="text" />\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td colspan="3">\r
+                                       &nbsp;</td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td valign="top">\r
+                                       <span fcklang="DlgGenClass">Stylesheet Classes</span><br />\r
+                                       <input id="txtAttClasses" style="width: 100%" type="text" />\r
+                               </td>\r
+                               <td>\r
+                               </td>\r
+                               <td valign="top">\r
+                                       &nbsp;<span fcklang="DlgGenTitle">Advisory Title</span><br />\r
+                                       <input id="txtAttTitle" style="width: 100%" type="text" />\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+               <span fcklang="DlgGenStyle">Style</span><br />\r
+               <input id="txtAttStyle" style="width: 100%" type="text" />\r
+       </div>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image.js b/httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image.js
new file mode 100644 (file)
index 0000000..89b0f95
--- /dev/null
@@ -0,0 +1,493 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Scripts related to the Image dialog window (see fck_image.html).\r
+ */\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKLang            = oEditor.FCKLang ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+var FCKDebug   = oEditor.FCKDebug ;\r
+\r
+var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ;\r
+\r
+//#### Dialog Tabs\r
+\r
+// Set the dialog tabs.\r
+window.parent.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;\r
+\r
+if ( !bImageButton && !FCKConfig.ImageDlgHideLink )\r
+       window.parent.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;\r
+\r
+if ( FCKConfig.ImageUpload )\r
+       window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;\r
+\r
+if ( !FCKConfig.ImageDlgHideAdvanced )\r
+       window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;\r
+\r
+// Function called when a dialog tag is selected.\r
+function OnDialogTabChange( tabCode )\r
+{\r
+       ShowE('divInfo'         , ( tabCode == 'Info' ) ) ;\r
+       ShowE('divLink'         , ( tabCode == 'Link' ) ) ;\r
+       ShowE('divUpload'       , ( tabCode == 'Upload' ) ) ;\r
+       ShowE('divAdvanced'     , ( tabCode == 'Advanced' ) ) ;\r
+}\r
+\r
+// Get the selected image (if available).\r
+var oImage = FCK.Selection.GetSelectedElement() ;\r
+\r
+if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) )\r
+       oImage = null ;\r
+\r
+// Get the active link.\r
+var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;\r
+\r
+var oImageOriginal ;\r
+\r
+function UpdateOriginal( resetSize )\r
+{\r
+       if ( !eImgPreview )\r
+               return ;\r
+\r
+       if ( GetE('txtUrl').value.length == 0 )\r
+       {\r
+               oImageOriginal = null ;\r
+               return ;\r
+       }\r
+\r
+       oImageOriginal = document.createElement( 'IMG' ) ;      // new Image() ;\r
+\r
+       if ( resetSize )\r
+       {\r
+               oImageOriginal.onload = function()\r
+               {\r
+                       this.onload = null ;\r
+                       ResetSizes() ;\r
+               }\r
+       }\r
+\r
+       oImageOriginal.src = eImgPreview.src ;\r
+}\r
+\r
+var bPreviewInitialized ;\r
+\r
+window.onload = function()\r
+{\r
+       // Translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ;\r
+       GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ;\r
+\r
+       // Load the selected element information (if any).\r
+       LoadSelection() ;\r
+\r
+       // Show/Hide the "Browse Server" button.\r
+       GetE('tdBrowse').style.display                          = FCKConfig.ImageBrowser        ? '' : 'none' ;\r
+       GetE('divLnkBrowseServer').style.display        = FCKConfig.LinkBrowser         ? '' : 'none' ;\r
+\r
+       UpdateOriginal() ;\r
+\r
+       // Set the actual uploader URL.\r
+       if ( FCKConfig.ImageUpload )\r
+               GetE('frmUpload').action = FCKConfig.ImageUploadURL ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+\r
+       // Activate the "OK" button.\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function LoadSelection()\r
+{\r
+       if ( ! oImage ) return ;\r
+\r
+       var sUrl = oImage.getAttribute( '_fcksavedurl' ) ;\r
+       if ( sUrl == null )\r
+               sUrl = GetAttribute( oImage, 'src', '' ) ;\r
+\r
+       GetE('txtUrl').value    = sUrl ;\r
+       GetE('txtAlt').value    = GetAttribute( oImage, 'alt', '' ) ;\r
+       GetE('txtVSpace').value = GetAttribute( oImage, 'vspace', '' ) ;\r
+       GetE('txtHSpace').value = GetAttribute( oImage, 'hspace', '' ) ;\r
+       GetE('txtBorder').value = GetAttribute( oImage, 'border', '' ) ;\r
+       GetE('cmbAlign').value  = GetAttribute( oImage, 'align', '' ) ;\r
+\r
+       var iWidth, iHeight ;\r
+\r
+       var regexSize = /^\s*(\d+)px\s*$/i ;\r
+\r
+       if ( oImage.style.width )\r
+       {\r
+               var aMatchW  = oImage.style.width.match( regexSize ) ;\r
+               if ( aMatchW )\r
+               {\r
+                       iWidth = aMatchW[1] ;\r
+                       oImage.style.width = '' ;\r
+                       SetAttribute( oImage, 'width' , iWidth ) ;\r
+               }\r
+       }\r
+\r
+       if ( oImage.style.height )\r
+       {\r
+               var aMatchH  = oImage.style.height.match( regexSize ) ;\r
+               if ( aMatchH )\r
+               {\r
+                       iHeight = aMatchH[1] ;\r
+                       oImage.style.height = '' ;\r
+                       SetAttribute( oImage, 'height', iHeight ) ;\r
+               }\r
+       }\r
+\r
+       GetE('txtWidth').value  = iWidth ? iWidth : GetAttribute( oImage, "width", '' ) ;\r
+       GetE('txtHeight').value = iHeight ? iHeight : GetAttribute( oImage, "height", '' ) ;\r
+\r
+       // Get Advances Attributes\r
+       GetE('txtAttId').value                  = oImage.id ;\r
+       GetE('cmbAttLangDir').value             = oImage.dir ;\r
+       GetE('txtAttLangCode').value    = oImage.lang ;\r
+       GetE('txtAttTitle').value               = oImage.title ;\r
+       GetE('txtLongDesc').value               = oImage.longDesc ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               GetE('txtAttClasses').value = oImage.className || '' ;\r
+               GetE('txtAttStyle').value = oImage.style.cssText ;\r
+       }\r
+       else\r
+       {\r
+               GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ;\r
+               GetE('txtAttStyle').value = oImage.getAttribute('style',2) ;\r
+       }\r
+\r
+       if ( oLink )\r
+       {\r
+               var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ;\r
+               if ( sLinkUrl == null )\r
+                       sLinkUrl = oLink.getAttribute('href',2) ;\r
+\r
+               GetE('txtLnkUrl').value         = sLinkUrl ;\r
+               GetE('cmbLnkTarget').value      = oLink.target ;\r
+       }\r
+\r
+       UpdatePreview() ;\r
+}\r
+\r
+//#### The OK button was hit.\r
+function Ok()\r
+{\r
+       if ( GetE('txtUrl').value.length == 0 )\r
+       {\r
+               window.parent.SetSelectedTab( 'Info' ) ;\r
+               GetE('txtUrl').focus() ;\r
+\r
+               alert( FCKLang.DlgImgAlertUrl ) ;\r
+\r
+               return false ;\r
+       }\r
+\r
+       var bHasImage = ( oImage != null ) ;\r
+\r
+       if ( bHasImage && bImageButton && oImage.tagName == 'IMG' )\r
+       {\r
+               if ( confirm( 'Do you want to transform the selected image on a image button?' ) )\r
+                       oImage = null ;\r
+       }\r
+       else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' )\r
+       {\r
+               if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )\r
+                       oImage = null ;\r
+       }\r
+\r
+       if ( !bHasImage )\r
+       {\r
+               if ( bImageButton )\r
+               {\r
+                       oImage = FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+                       oImage.type = 'image' ;\r
+                       oImage = FCK.InsertElementAndGetIt( oImage ) ;\r
+               }\r
+               else\r
+                       oImage = FCK.CreateElement( 'IMG' ) ;\r
+       }\r
+       else\r
+               oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       UpdateImage( oImage ) ;\r
+\r
+       var sLnkUrl = GetE('txtLnkUrl').value.Trim() ;\r
+\r
+       if ( sLnkUrl.length == 0 )\r
+       {\r
+               if ( oLink )\r
+                       FCK.ExecuteNamedCommand( 'Unlink' ) ;\r
+       }\r
+       else\r
+       {\r
+               if ( oLink )    // Modifying an existent link.\r
+                       oLink.href = sLnkUrl ;\r
+               else                    // Creating a new link.\r
+               {\r
+                       if ( !bHasImage )\r
+                               oEditor.FCKSelection.SelectNode( oImage ) ;\r
+\r
+                       oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ;\r
+\r
+                       if ( !bHasImage )\r
+                       {\r
+                               oEditor.FCKSelection.SelectNode( oLink ) ;\r
+                               oEditor.FCKSelection.Collapse( false ) ;\r
+                       }\r
+               }\r
+\r
+               SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ;\r
+               SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+function UpdateImage( e, skipId )\r
+{\r
+       e.src = GetE('txtUrl').value ;\r
+       SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ;\r
+       SetAttribute( e, "alt"   , GetE('txtAlt').value ) ;\r
+       SetAttribute( e, "width" , GetE('txtWidth').value ) ;\r
+       SetAttribute( e, "height", GetE('txtHeight').value ) ;\r
+       SetAttribute( e, "vspace", GetE('txtVSpace').value ) ;\r
+       SetAttribute( e, "hspace", GetE('txtHSpace').value ) ;\r
+       SetAttribute( e, "border", GetE('txtBorder').value ) ;\r
+       SetAttribute( e, "align" , GetE('cmbAlign').value ) ;\r
+\r
+       // Advances Attributes\r
+\r
+       if ( ! skipId )\r
+               SetAttribute( e, 'id', GetE('txtAttId').value ) ;\r
+\r
+       SetAttribute( e, 'dir'          , GetE('cmbAttLangDir').value ) ;\r
+       SetAttribute( e, 'lang'         , GetE('txtAttLangCode').value ) ;\r
+       SetAttribute( e, 'title'        , GetE('txtAttTitle').value ) ;\r
+       SetAttribute( e, 'longDesc'     , GetE('txtLongDesc').value ) ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               e.className = GetE('txtAttClasses').value ;\r
+               e.style.cssText = GetE('txtAttStyle').value ;\r
+       }\r
+       else\r
+       {\r
+               SetAttribute( e, 'class'        , GetE('txtAttClasses').value ) ;\r
+               SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;\r
+       }\r
+}\r
+\r
+var eImgPreview ;\r
+var eImgPreviewLink ;\r
+\r
+function SetPreviewElements( imageElement, linkElement )\r
+{\r
+       eImgPreview = imageElement ;\r
+       eImgPreviewLink = linkElement ;\r
+\r
+       UpdatePreview() ;\r
+       UpdateOriginal() ;\r
+\r
+       bPreviewInitialized = true ;\r
+}\r
+\r
+function UpdatePreview()\r
+{\r
+       if ( !eImgPreview || !eImgPreviewLink )\r
+               return ;\r
+\r
+       if ( GetE('txtUrl').value.length == 0 )\r
+               eImgPreviewLink.style.display = 'none' ;\r
+       else\r
+       {\r
+               UpdateImage( eImgPreview, true ) ;\r
+\r
+               if ( GetE('txtLnkUrl').value.Trim().length > 0 )\r
+                       eImgPreviewLink.href = 'javascript:void(null);' ;\r
+               else\r
+                       SetAttribute( eImgPreviewLink, 'href', '' ) ;\r
+\r
+               eImgPreviewLink.style.display = '' ;\r
+       }\r
+}\r
+\r
+var bLockRatio = true ;\r
+\r
+function SwitchLock( lockButton )\r
+{\r
+       bLockRatio = !bLockRatio ;\r
+       lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ;\r
+       lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ;\r
+\r
+       if ( bLockRatio )\r
+       {\r
+               if ( GetE('txtWidth').value.length > 0 )\r
+                       OnSizeChanged( 'Width', GetE('txtWidth').value ) ;\r
+               else\r
+                       OnSizeChanged( 'Height', GetE('txtHeight').value ) ;\r
+       }\r
+}\r
+\r
+// Fired when the width or height input texts change\r
+function OnSizeChanged( dimension, value )\r
+{\r
+       // Verifies if the aspect ration has to be mantained\r
+       if ( oImageOriginal && bLockRatio )\r
+       {\r
+               var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ;\r
+\r
+               if ( value.length == 0 || isNaN( value ) )\r
+               {\r
+                       e.value = '' ;\r
+                       return ;\r
+               }\r
+\r
+               if ( dimension == 'Width' )\r
+                       value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value  / oImageOriginal.width ) ) ;\r
+               else\r
+                       value = value == 0 ? 0 : Math.round( oImageOriginal.width  * ( value / oImageOriginal.height ) ) ;\r
+\r
+               if ( !isNaN( value ) )\r
+                       e.value = value ;\r
+       }\r
+\r
+       UpdatePreview() ;\r
+}\r
+\r
+// Fired when the Reset Size button is clicked\r
+function ResetSizes()\r
+{\r
+       if ( ! oImageOriginal ) return ;\r
+\r
+       GetE('txtWidth').value  = oImageOriginal.width ;\r
+       GetE('txtHeight').value = oImageOriginal.height ;\r
+\r
+       UpdatePreview() ;\r
+}\r
+\r
+function BrowseServer()\r
+{\r
+       OpenServerBrowser(\r
+               'Image',\r
+               FCKConfig.ImageBrowserURL,\r
+               FCKConfig.ImageBrowserWindowWidth,\r
+               FCKConfig.ImageBrowserWindowHeight ) ;\r
+}\r
+\r
+function LnkBrowseServer()\r
+{\r
+       OpenServerBrowser(\r
+               'Link',\r
+               FCKConfig.LinkBrowserURL,\r
+               FCKConfig.LinkBrowserWindowWidth,\r
+               FCKConfig.LinkBrowserWindowHeight ) ;\r
+}\r
+\r
+function OpenServerBrowser( type, url, width, height )\r
+{\r
+       sActualBrowser = type ;\r
+       OpenFileBrowser( url, width, height ) ;\r
+}\r
+\r
+var sActualBrowser ;\r
+\r
+function SetUrl( url, width, height, alt )\r
+{\r
+       if ( sActualBrowser == 'Link' )\r
+       {\r
+               GetE('txtLnkUrl').value = url ;\r
+               UpdatePreview() ;\r
+       }\r
+       else\r
+       {\r
+               GetE('txtUrl').value = url ;\r
+               GetE('txtWidth').value = width ? width : '' ;\r
+               GetE('txtHeight').value = height ? height : '' ;\r
+\r
+               if ( alt )\r
+                       GetE('txtAlt').value = alt;\r
+\r
+               UpdatePreview() ;\r
+               UpdateOriginal( true ) ;\r
+       }\r
+\r
+       window.parent.SetSelectedTab( 'Info' ) ;\r
+}\r
+\r
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )\r
+{\r
+       switch ( errorNumber )\r
+       {\r
+               case 0 :        // No errors\r
+                       alert( 'Your file has been successfully uploaded' ) ;\r
+                       break ;\r
+               case 1 :        // Custom error\r
+                       alert( customMsg ) ;\r
+                       return ;\r
+               case 101 :      // Custom warning\r
+                       alert( customMsg ) ;\r
+                       break ;\r
+               case 201 :\r
+                       alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;\r
+                       break ;\r
+               case 202 :\r
+                       alert( 'Invalid file type' ) ;\r
+                       return ;\r
+               case 203 :\r
+                       alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;\r
+                       return ;\r
+               default :\r
+                       alert( 'Error on file upload. Error number: ' + errorNumber ) ;\r
+                       return ;\r
+       }\r
+\r
+       sActualBrowser = '' ;\r
+       SetUrl( fileUrl ) ;\r
+       GetE('frmUpload').reset() ;\r
+}\r
+\r
+var oUploadAllowedExtRegex     = new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ;\r
+var oUploadDeniedExtRegex      = new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ;\r
+\r
+function CheckUpload()\r
+{\r
+       var sFile = GetE('txtUploadFile').value ;\r
+\r
+       if ( sFile.length == 0 )\r
+       {\r
+               alert( 'Please select a file to upload' ) ;\r
+               return false ;\r
+       }\r
+\r
+       if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||\r
+               ( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )\r
+       {\r
+               OnUploadCompleted( 202 ) ;\r
+               return false ;\r
+       }\r
+\r
+       return true ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image_preview.html b/httemplate/elements/fckeditor/editor/dialog/fck_image/fck_image_preview.html
new file mode 100644 (file)
index 0000000..21bdc25
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Preview page for the Image dialog window.\r
+ *\r
+ * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />\r
+       <script type="text/javascript">\r
+\r
+// Sets the Skin CSS\r
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;\r
+\r
+if ( window.parent.FCKConfig.BaseHref.length > 0 )\r
+       document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;\r
+\r
+window.onload = function()\r
+{\r
+       window.parent.SetPreviewElements(\r
+               document.getElementById( 'imgPreview' ),\r
+               document.getElementById( 'lnkPreview' ) ) ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="color: #000000; background-color: #ffffff">\r
+       <a id="lnkPreview" onclick="return false;" style="cursor: default">\r
+               <img id="imgPreview" onload="window.parent.UpdateOriginal();" style="display: none" /></a>Lorem\r
+       ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam.\r
+       Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla.\r
+       Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis\r
+       euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce\r
+       mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie.\r
+       Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque\r
+       egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem,\r
+       in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut\r
+       placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy\r
+       metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices,\r
+       ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris\r
+       non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas\r
+       elementum. Nunc imperdiet gravida mauris.\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_link.html b/httemplate/elements/fckeditor/editor/dialog/fck_link.html
new file mode 100644 (file)
index 0000000..c8f37b6
--- /dev/null
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Link dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Link Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+               <meta name="robots" content="noindex, nofollow" />\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script src="fck_link/fck_link.js" type="text/javascript"></script>\r
+       </head>\r
+       <body scroll="no" style="OVERFLOW: hidden">\r
+               <div id="divInfo" style="DISPLAY: none">\r
+                       <span fckLang="DlgLnkType">Link Type</span><br />\r
+                       <select id="cmbLinkType" onchange="SetLinkType(this.value);">\r
+                               <option value="url" fckLang="DlgLnkTypeURL" selected="selected">URL</option>\r
+                               <option value="anchor" fckLang="DlgLnkTypeAnchor">Anchor in this page</option>\r
+                               <option value="email" fckLang="DlgLnkTypeEMail">E-Mail</option>\r
+                       </select>\r
+                       <br />\r
+                       <br />\r
+                       <div id="divLinkTypeUrl">\r
+                               <table cellspacing="0" cellpadding="0" width="100%" border="0" dir="ltr">\r
+                                       <tr>\r
+                                               <td nowrap="nowrap">\r
+                                                       <span fckLang="DlgLnkProto">Protocol</span><br />\r
+                                                       <select id="cmbLinkProtocol">\r
+                                                               <option value="http://" selected="selected">http://</option>\r
+                                                               <option value="https://">https://</option>\r
+                                                               <option value="ftp://">ftp://</option>\r
+                                                               <option value="news://">news://</option>\r
+                                                               <option value="" fckLang="DlgLnkProtoOther">&lt;other&gt;</option>\r
+                                                       </select>\r
+                                               </td>\r
+                                               <td nowrap="nowrap">&nbsp;</td>\r
+                                               <td nowrap="nowrap" width="100%">\r
+                                                       <span fckLang="DlgLnkURL">URL</span><br />\r
+                                                       <input id="txtUrl" style="WIDTH: 100%" type="text" onkeyup="OnUrlChange();" onchange="OnUrlChange();" />\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                               <br />\r
+                               <div id="divBrowseServer">\r
+                               <input type="button" value="Browse Server" fckLang="DlgBtnBrowseServer" onclick="BrowseServer();" />\r
+                               </div>\r
+                       </div>\r
+                       <div id="divLinkTypeAnchor" style="DISPLAY: none" align="center">\r
+                               <div id="divSelAnchor" style="DISPLAY: none">\r
+                                       <table cellspacing="0" cellpadding="0" border="0" width="70%">\r
+                                               <tr>\r
+                                                       <td colspan="3">\r
+                                                               <span fckLang="DlgLnkAnchorSel">Select an Anchor</span>\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td width="50%">\r
+                                                               <span fckLang="DlgLnkAnchorByName">By Anchor Name</span><br />\r
+                                                               <select id="cmbAnchorName" onchange="GetE('cmbAnchorId').value='';" style="WIDTH: 100%">\r
+                                                                       <option value="" selected="selected"></option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td>&nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td width="50%">\r
+                                                               <span fckLang="DlgLnkAnchorById">By Element Id</span><br />\r
+                                                               <select id="cmbAnchorId" onchange="GetE('cmbAnchorName').value='';" style="WIDTH: 100%">\r
+                                                                       <option value="" selected="selected"></option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </div>\r
+                               <div id="divNoAnchor" style="DISPLAY: none">\r
+                                       <span fckLang="DlgLnkNoAnchors">&lt;No anchors available in the document&gt;</span>\r
+                               </div>\r
+                       </div>\r
+                       <div id="divLinkTypeEMail" style="DISPLAY: none">\r
+                               <span fckLang="DlgLnkEMail">E-Mail Address</span><br />\r
+                               <input id="txtEMailAddress" style="WIDTH: 100%" type="text" /><br />\r
+                               <span fckLang="DlgLnkEMailSubject">Message Subject</span><br />\r
+                               <input id="txtEMailSubject" style="WIDTH: 100%" type="text" /><br />\r
+                               <span fckLang="DlgLnkEMailBody">Message Body</span><br />\r
+                               <textarea id="txtEMailBody" style="WIDTH: 100%" rows="3" cols="20"></textarea>\r
+                       </div>\r
+               </div>\r
+               <div id="divUpload" style="DISPLAY: none">\r
+                       <form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">\r
+                               <span fckLang="DlgLnkUpload">Upload</span><br />\r
+                               <input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />\r
+                               <br />\r
+                               <input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />\r
+                               <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>\r
+                       </form>\r
+               </div>\r
+               <div id="divTarget" style="DISPLAY: none">\r
+                       <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                               <tr>\r
+                                       <td nowrap="nowrap">\r
+                                               <span fckLang="DlgLnkTarget">Target</span><br />\r
+                                               <select id="cmbTarget" onchange="SetTarget(this.value);">\r
+                                                       <option value="" fckLang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>\r
+                                                       <option value="frame" fckLang="DlgLnkTargetFrame">&lt;frame&gt;</option>\r
+                                                       <option value="popup" fckLang="DlgLnkTargetPopup">&lt;popup window&gt;</option>\r
+                                                       <option value="_blank" fckLang="DlgLnkTargetBlank">New Window (_blank)</option>\r
+                                                       <option value="_top" fckLang="DlgLnkTargetTop">Topmost Window (_top)</option>\r
+                                                       <option value="_self" fckLang="DlgLnkTargetSelf">Same Window (_self)</option>\r
+                                                       <option value="_parent" fckLang="DlgLnkTargetParent">Parent Window (_parent)</option>\r
+                                               </select>\r
+                                       </td>\r
+                                       <td>&nbsp;</td>\r
+                                       <td id="tdTargetFrame" nowrap="nowrap" width="100%">\r
+                                               <span fckLang="DlgLnkTargetFrameName">Target Frame Name</span><br />\r
+                                               <input id="txtTargetFrame" style="WIDTH: 100%" type="text" onkeyup="OnTargetNameChange();"\r
+                                                       onchange="OnTargetNameChange();" />\r
+                                       </td>\r
+                                       <td id="tdPopupName" style="DISPLAY: none" nowrap="nowrap" width="100%">\r
+                                               <span fckLang="DlgLnkPopWinName">Popup Window Name</span><br />\r
+                                               <input id="txtPopupName" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+                       <br />\r
+                       <table id="tablePopupFeatures" style="DISPLAY: none" cellspacing="0" cellpadding="0" align="center"\r
+                               border="0">\r
+                               <tr>\r
+                                       <td>\r
+                                               <span fckLang="DlgLnkPopWinFeat">Popup Window Features</span><br />\r
+                                               <table cellspacing="0" cellpadding="0" border="0">\r
+                                                       <tr>\r
+                                                               <td valign="top" nowrap="nowrap" width="50%">\r
+                                                                       <input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br />\r
+                                                                       <input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location\r
+                                                                               Bar</label><br />\r
+                                                                       <input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu\r
+                                                                               Bar</label><br />\r
+                                                                       <input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll\r
+                                                                               Bars</label>\r
+                                                               </td>\r
+                                                               <td></td>\r
+                                                               <td valign="top" nowrap="nowrap" width="50%">\r
+                                                                       <input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status\r
+                                                                               Bar</label><br />\r
+                                                                       <input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br />\r
+                                                                       <input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full\r
+                                                                               Screen (IE)</label><br />\r
+                                                                       <input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent\r
+                                                                               (Netscape)</label>\r
+                                                               </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td valign="top" nowrap="nowrap" width="50%">&nbsp;</td>\r
+                                                               <td></td>\r
+                                                               <td valign="top" nowrap="nowrap" width="50%"></td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td valign="top">\r
+                                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                                               <tr>\r
+                                                                                       <td nowrap="nowrap"><span fckLang="DlgLnkPopWidth">Width</span></td>\r
+                                                                                       <td>&nbsp;<input id="txtPopupWidth" type="text" maxlength="4" size="4" /></td>\r
+                                                                               </tr>\r
+                                                                               <tr>\r
+                                                                                       <td nowrap="nowrap"><span fckLang="DlgLnkPopHeight">Height</span></td>\r
+                                                                                       <td>&nbsp;<input id="txtPopupHeight" type="text" maxlength="4" size="4" /></td>\r
+                                                                               </tr>\r
+                                                                       </table>\r
+                                                               </td>\r
+                                                               <td>&nbsp;&nbsp;</td>\r
+                                                               <td valign="top">\r
+                                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                                               <tr>\r
+                                                                                       <td nowrap="nowrap"><span fckLang="DlgLnkPopLeft">Left Position</span></td>\r
+                                                                                       <td>&nbsp;<input id="txtPopupLeft" type="text" maxlength="4" size="4" /></td>\r
+                                                                               </tr>\r
+                                                                               <tr>\r
+                                                                                       <td nowrap="nowrap"><span fckLang="DlgLnkPopTop">Top Position</span></td>\r
+                                                                                       <td>&nbsp;<input id="txtPopupTop" type="text" maxlength="4" size="4" /></td>\r
+                                                                               </tr>\r
+                                                                       </table>\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+               </div>\r
+               <div id="divAttribs" style="DISPLAY: none">\r
+                       <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                               <tr>\r
+                                       <td valign="top" width="50%">\r
+                                               <span fckLang="DlgGenId">Id</span><br />\r
+                                               <input id="txtAttId" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                                       <td width="1"></td>\r
+                                       <td valign="top">\r
+                                               <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                                                       <tr>\r
+                                                               <td width="60%">\r
+                                                                       <span fckLang="DlgGenLangDir">Language Direction</span><br />\r
+                                                                       <select id="cmbAttLangDir" style="WIDTH: 100%">\r
+                                                                               <option value="" fckLang="DlgGenNotSet" selected>&lt;not set&gt;</option>\r
+                                                                               <option value="ltr" fckLang="DlgGenLangDirLtr">Left to Right (LTR)</option>\r
+                                                                               <option value="rtl" fckLang="DlgGenLangDirRtl">Right to Left (RTL)</option>\r
+                                                                       </select>\r
+                                                               </td>\r
+                                                               <td width="1%">&nbsp;&nbsp;&nbsp;</td>\r
+                                                               <td nowrap="nowrap"><span fckLang="DlgGenAccessKey">Access Key</span><br />\r
+                                                                       <input id="txtAttAccessKey" style="WIDTH: 100%" type="text" maxlength="1" size="1" />\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td valign="top" width="50%">\r
+                                               <span fckLang="DlgGenName">Name</span><br />\r
+                                               <input id="txtAttName" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                                       <td width="1"></td>\r
+                                       <td valign="top">\r
+                                               <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                                                       <tr>\r
+                                                               <td width="60%">\r
+                                                                       <span fckLang="DlgGenLangCode">Language Code</span><br />\r
+                                                                       <input id="txtAttLangCode" style="WIDTH: 100%" type="text" />\r
+                                                               </td>\r
+                                                               <td width="1%">&nbsp;&nbsp;&nbsp;</td>\r
+                                                               <td nowrap="nowrap">\r
+                                                                       <span fckLang="DlgGenTabIndex">Tab Index</span><br />\r
+                                                                       <input id="txtAttTabIndex" style="WIDTH: 100%" type="text" maxlength="5" size="5" />\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td valign="top" width="50%">&nbsp;</td>\r
+                                       <td width="1"></td>\r
+                                       <td valign="top"></td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td valign="top" width="50%">\r
+                                               <span fckLang="DlgGenTitle">Advisory Title</span><br />\r
+                                               <input id="txtAttTitle" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                                       <td width="1">&nbsp;&nbsp;&nbsp;</td>\r
+                                       <td valign="top">\r
+                                               <span fckLang="DlgGenContType">Advisory Content Type</span><br />\r
+                                               <input id="txtAttContentType" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td valign="top">\r
+                                               <span fckLang="DlgGenClass">Stylesheet Classes</span><br />\r
+                                               <input id="txtAttClasses" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                                       <td></td>\r
+                                       <td valign="top">\r
+                                               <span fckLang="DlgGenLinkCharset">Linked Resource Charset</span><br />\r
+                                               <input id="txtAttCharSet" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+                       <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">\r
+                               <tr>\r
+                                       <td>\r
+                                               <span fckLang="DlgGenStyle">Style</span><br />\r
+                                               <input id="txtAttStyle" style="WIDTH: 100%" type="text" />\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+               </div>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_link/fck_link.js b/httemplate/elements/fckeditor/editor/dialog/fck_link/fck_link.js
new file mode 100644 (file)
index 0000000..6d96499
--- /dev/null
@@ -0,0 +1,698 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Scripts related to the Link dialog window (see fck_link.html).\r
+ */\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKLang            = oEditor.FCKLang ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+var FCKRegexLib        = oEditor.FCKRegexLib ;\r
+\r
+//#### Dialog Tabs\r
+\r
+// Set the dialog tabs.\r
+window.parent.AddTab( 'Info', FCKLang.DlgLnkInfoTab ) ;\r
+\r
+if ( !FCKConfig.LinkDlgHideTarget )\r
+       window.parent.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true ) ;\r
+\r
+if ( FCKConfig.LinkUpload )\r
+       window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload, true ) ;\r
+\r
+if ( !FCKConfig.LinkDlgHideAdvanced )\r
+       window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;\r
+\r
+// Function called when a dialog tag is selected.\r
+function OnDialogTabChange( tabCode )\r
+{\r
+       ShowE('divInfo'         , ( tabCode == 'Info' ) ) ;\r
+       ShowE('divTarget'       , ( tabCode == 'Target' ) ) ;\r
+       ShowE('divUpload'       , ( tabCode == 'Upload' ) ) ;\r
+       ShowE('divAttribs'      , ( tabCode == 'Advanced' ) ) ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+//#### Regular Expressions library.\r
+var oRegex = new Object() ;\r
+\r
+oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ;\r
+\r
+oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;\r
+\r
+oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;\r
+\r
+oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ;\r
+\r
+oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ;\r
+\r
+// Accessible popups\r
+oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ;\r
+\r
+oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ;\r
+\r
+//#### Parser Functions\r
+\r
+var oParser = new Object() ;\r
+\r
+oParser.ParseEMailUrl = function( emailUrl )\r
+{\r
+       // Initializes the EMailInfo object.\r
+       var oEMailInfo = new Object() ;\r
+       oEMailInfo.Address      = '' ;\r
+       oEMailInfo.Subject      = '' ;\r
+       oEMailInfo.Body         = '' ;\r
+\r
+       var oParts = emailUrl.match( /^([^\?]+)\??(.+)?/ ) ;\r
+       if ( oParts )\r
+       {\r
+               // Set the e-mail address.\r
+               oEMailInfo.Address = oParts[1] ;\r
+\r
+               // Look for the optional e-mail parameters.\r
+               if ( oParts[2] )\r
+               {\r
+                       var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;\r
+                       if ( oMatch ) oEMailInfo.Subject = decodeURIComponent( oMatch[2] ) ;\r
+\r
+                       oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;\r
+                       if ( oMatch ) oEMailInfo.Body = decodeURIComponent( oMatch[2] ) ;\r
+               }\r
+       }\r
+\r
+       return oEMailInfo ;\r
+}\r
+\r
+oParser.CreateEMailUri = function( address, subject, body )\r
+{\r
+       var sBaseUri = 'mailto:' + address ;\r
+\r
+       var sParams = '' ;\r
+\r
+       if ( subject.length > 0 )\r
+               sParams = '?subject=' + encodeURIComponent( subject ) ;\r
+\r
+       if ( body.length > 0 )\r
+       {\r
+               sParams += ( sParams.length == 0 ? '?' : '&' ) ;\r
+               sParams += 'body=' + encodeURIComponent( body ) ;\r
+       }\r
+\r
+       return sBaseUri + sParams ;\r
+}\r
+\r
+//#### Initialization Code\r
+\r
+// oLink: The actual selected link in the editor.\r
+var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;\r
+if ( oLink )\r
+       FCK.Selection.SelectNode( oLink ) ;\r
+\r
+window.onload = function()\r
+{\r
+       // Translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       // Fill the Anchor Names and Ids combos.\r
+       LoadAnchorNamesAndIds() ;\r
+\r
+       // Load the selected link information (if any).\r
+       LoadSelection() ;\r
+\r
+       // Update the dialog box.\r
+       SetLinkType( GetE('cmbLinkType').value ) ;\r
+\r
+       // Show/Hide the "Browse Server" button.\r
+       GetE('divBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ;\r
+\r
+       // Show the initial dialog content.\r
+       GetE('divInfo').style.display = '' ;\r
+\r
+       // Set the actual uploader URL.\r
+       if ( FCKConfig.LinkUpload )\r
+               GetE('frmUpload').action = FCKConfig.LinkUploadURL ;\r
+\r
+       // Set the default target (from configuration).\r
+       SetDefaultTarget() ;\r
+\r
+       // Activate the "OK" button.\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+var bHasAnchors ;\r
+\r
+function LoadAnchorNamesAndIds()\r
+{\r
+       // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon\r
+       // to edit them. So, we must look for that images now.\r
+       var aAnchors = new Array() ;\r
+       var i ;\r
+       var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' ) ;\r
+       for( i = 0 ; i < oImages.length ; i++ )\r
+       {\r
+               if ( oImages[i].getAttribute('_fckanchor') )\r
+                       aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] ) ;\r
+       }\r
+\r
+       // Add also real anchors\r
+       var oLinks = oEditor.FCK.EditorDocument.getElementsByTagName( 'A' ) ;\r
+       for( i = 0 ; i < oLinks.length ; i++ )\r
+       {\r
+               if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) )\r
+                       aAnchors[ aAnchors.length ] = oLinks[i] ;\r
+       }\r
+\r
+       var aIds = oEditor.FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;\r
+\r
+       bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;\r
+\r
+       for ( i = 0 ; i < aAnchors.length ; i++ )\r
+       {\r
+               var sName = aAnchors[i].name ;\r
+               if ( sName && sName.length > 0 )\r
+                       oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;\r
+       }\r
+\r
+       for ( i = 0 ; i < aIds.length ; i++ )\r
+       {\r
+               oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;\r
+       }\r
+\r
+       ShowE( 'divSelAnchor'   , bHasAnchors ) ;\r
+       ShowE( 'divNoAnchor'    , !bHasAnchors ) ;\r
+}\r
+\r
+function LoadSelection()\r
+{\r
+       if ( !oLink ) return ;\r
+\r
+       var sType = 'url' ;\r
+\r
+       // Get the actual Link href.\r
+       var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;\r
+       if ( sHRef == null )\r
+               sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;\r
+\r
+       // Look for a popup javascript link.\r
+       var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ;\r
+       if( oPopupMatch )\r
+       {\r
+               GetE('cmbTarget').value = 'popup' ;\r
+               sHRef = oPopupMatch[1] ;\r
+               FillPopupFields( oPopupMatch[2], oPopupMatch[3] ) ;\r
+               SetTarget( 'popup' ) ;\r
+       }\r
+\r
+       // Accesible popups, the popup data is in the onclick attribute\r
+       if ( !oPopupMatch ) {\r
+               var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;\r
+               oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ;\r
+               if( oPopupMatch )\r
+               {\r
+                       GetE( 'cmbTarget' ).value = 'popup' ;\r
+                       FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ;\r
+                       SetTarget( 'popup' ) ;\r
+               }\r
+       }\r
+\r
+       // Search for the protocol.\r
+       var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;\r
+\r
+       if ( sProtocol )\r
+       {\r
+               sProtocol = sProtocol[0].toLowerCase() ;\r
+               GetE('cmbLinkProtocol').value = sProtocol ;\r
+\r
+               // Remove the protocol and get the remainig URL.\r
+               var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;\r
+\r
+               if ( sProtocol == 'mailto:' )   // It is an e-mail link.\r
+               {\r
+                       sType = 'email' ;\r
+\r
+                       var oEMailInfo = oParser.ParseEMailUrl( sUrl ) ;\r
+                       GetE('txtEMailAddress').value   = oEMailInfo.Address ;\r
+                       GetE('txtEMailSubject').value   = oEMailInfo.Subject ;\r
+                       GetE('txtEMailBody').value              = oEMailInfo.Body ;\r
+               }\r
+               else                            // It is a normal link.\r
+               {\r
+                       sType = 'url' ;\r
+                       GetE('txtUrl').value = sUrl ;\r
+               }\r
+       }\r
+       else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 )        // It is an anchor link.\r
+       {\r
+               sType = 'anchor' ;\r
+               GetE('cmbAnchorName').value = GetE('cmbAnchorId').value = sHRef.substr(1) ;\r
+       }\r
+       else                                    // It is another type of link.\r
+       {\r
+               sType = 'url' ;\r
+\r
+               GetE('cmbLinkProtocol').value = '' ;\r
+               GetE('txtUrl').value = sHRef ;\r
+       }\r
+\r
+       if ( !oPopupMatch )\r
+       {\r
+               // Get the target.\r
+               var sTarget = oLink.target ;\r
+\r
+               if ( sTarget && sTarget.length > 0 )\r
+               {\r
+                       if ( oRegex.ReserveTarget.test( sTarget ) )\r
+                       {\r
+                               sTarget = sTarget.toLowerCase() ;\r
+                               GetE('cmbTarget').value = sTarget ;\r
+                       }\r
+                       else\r
+                               GetE('cmbTarget').value = 'frame' ;\r
+                       GetE('txtTargetFrame').value = sTarget ;\r
+               }\r
+       }\r
+\r
+       // Get Advances Attributes\r
+       GetE('txtAttId').value                  = oLink.id ;\r
+       GetE('txtAttName').value                = oLink.name ;\r
+       GetE('cmbAttLangDir').value             = oLink.dir ;\r
+       GetE('txtAttLangCode').value    = oLink.lang ;\r
+       GetE('txtAttAccessKey').value   = oLink.accessKey ;\r
+       GetE('txtAttTabIndex').value    = oLink.tabIndex <= 0 ? '' : oLink.tabIndex ;\r
+       GetE('txtAttTitle').value               = oLink.title ;\r
+       GetE('txtAttContentType').value = oLink.type ;\r
+       GetE('txtAttCharSet').value             = oLink.charset ;\r
+\r
+       var sClass ;\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+       {\r
+               sClass  = oLink.getAttribute('className',2) || '' ;\r
+               // Clean up temporary classes for internal use:\r
+               sClass = sClass.replace( FCKRegexLib.FCK_Class, '' ) ;\r
+\r
+               GetE('txtAttStyle').value       = oLink.style.cssText ;\r
+       }\r
+       else\r
+       {\r
+               sClass  = oLink.getAttribute('class',2) || '' ;\r
+               GetE('txtAttStyle').value       = oLink.getAttribute('style',2) || '' ;\r
+       }\r
+       GetE('txtAttClasses').value     = sClass ;\r
+\r
+       // Update the Link type combo.\r
+       GetE('cmbLinkType').value = sType ;\r
+}\r
+\r
+//#### Link type selection.\r
+function SetLinkType( linkType )\r
+{\r
+       ShowE('divLinkTypeUrl'          , (linkType == 'url') ) ;\r
+       ShowE('divLinkTypeAnchor'       , (linkType == 'anchor') ) ;\r
+       ShowE('divLinkTypeEMail'        , (linkType == 'email') ) ;\r
+\r
+       if ( !FCKConfig.LinkDlgHideTarget )\r
+               window.parent.SetTabVisibility( 'Target'        , (linkType == 'url') ) ;\r
+\r
+       if ( FCKConfig.LinkUpload )\r
+               window.parent.SetTabVisibility( 'Upload'        , (linkType == 'url') ) ;\r
+\r
+       if ( !FCKConfig.LinkDlgHideAdvanced )\r
+               window.parent.SetTabVisibility( 'Advanced'      , (linkType != 'anchor' || bHasAnchors) ) ;\r
+\r
+       if ( linkType == 'email' )\r
+               window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+//#### Target type selection.\r
+function SetTarget( targetType )\r
+{\r
+       GetE('tdTargetFrame').style.display     = ( targetType == 'popup' ? 'none' : '' ) ;\r
+       GetE('tdPopupName').style.display       =\r
+               GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;\r
+\r
+       switch ( targetType )\r
+       {\r
+               case "_blank" :\r
+               case "_self" :\r
+               case "_parent" :\r
+               case "_top" :\r
+                       GetE('txtTargetFrame').value = targetType ;\r
+                       break ;\r
+               case "" :\r
+                       GetE('txtTargetFrame').value = '' ;\r
+                       break ;\r
+       }\r
+\r
+       if ( targetType == 'popup' )\r
+               window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+//#### Called while the user types the URL.\r
+function OnUrlChange()\r
+{\r
+       var sUrl = GetE('txtUrl').value ;\r
+       var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;\r
+\r
+       if ( sProtocol )\r
+       {\r
+               sUrl = sUrl.substr( sProtocol[0].length ) ;\r
+               GetE('txtUrl').value = sUrl ;\r
+               GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ;\r
+       }\r
+       else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )\r
+       {\r
+               GetE('cmbLinkProtocol').value = '' ;\r
+       }\r
+}\r
+\r
+//#### Called while the user types the target name.\r
+function OnTargetNameChange()\r
+{\r
+       var sFrame = GetE('txtTargetFrame').value ;\r
+\r
+       if ( sFrame.length == 0 )\r
+               GetE('cmbTarget').value = '' ;\r
+       else if ( oRegex.ReserveTarget.test( sFrame ) )\r
+               GetE('cmbTarget').value = sFrame.toLowerCase() ;\r
+       else\r
+               GetE('cmbTarget').value = 'frame' ;\r
+}\r
+\r
+// Accesible popups\r
+function BuildOnClickPopup()\r
+{\r
+       var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ;\r
+\r
+       var sFeatures = '' ;\r
+       var aChkFeatures = document.getElementsByName( 'chkFeature' ) ;\r
+       for ( var i = 0 ; i < aChkFeatures.length ; i++ )\r
+       {\r
+               if ( i > 0 ) sFeatures += ',' ;\r
+               sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' ) ;\r
+       }\r
+\r
+       if ( GetE('txtPopupWidth').value.length > 0 )   sFeatures += ',width=' + GetE('txtPopupWidth').value ;\r
+       if ( GetE('txtPopupHeight').value.length > 0 )  sFeatures += ',height=' + GetE('txtPopupHeight').value ;\r
+       if ( GetE('txtPopupLeft').value.length > 0 )    sFeatures += ',left=' + GetE('txtPopupLeft').value ;\r
+       if ( GetE('txtPopupTop').value.length > 0 )             sFeatures += ',top=' + GetE('txtPopupTop').value ;\r
+\r
+       if ( sFeatures != '' )\r
+               sFeatures = sFeatures + ",status" ;\r
+\r
+       return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" ) ;\r
+}\r
+\r
+//#### Fills all Popup related fields.\r
+function FillPopupFields( windowName, features )\r
+{\r
+       if ( windowName )\r
+               GetE('txtPopupName').value = windowName ;\r
+\r
+       var oFeatures = new Object() ;\r
+       var oFeaturesMatch ;\r
+       while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null )\r
+       {\r
+               var sValue = oFeaturesMatch[2] ;\r
+               if ( sValue == ( 'yes' || '1' ) )\r
+                       oFeatures[ oFeaturesMatch[1] ] = true ;\r
+               else if ( ! isNaN( sValue ) && sValue != 0 )\r
+                       oFeatures[ oFeaturesMatch[1] ] = sValue ;\r
+       }\r
+\r
+       // Update all features check boxes.\r
+       var aChkFeatures = document.getElementsByName('chkFeature') ;\r
+       for ( var i = 0 ; i < aChkFeatures.length ; i++ )\r
+       {\r
+               if ( oFeatures[ aChkFeatures[i].value ] )\r
+                       aChkFeatures[i].checked = true ;\r
+       }\r
+\r
+       // Update position and size text boxes.\r
+       if ( oFeatures['width'] )       GetE('txtPopupWidth').value             = oFeatures['width'] ;\r
+       if ( oFeatures['height'] )      GetE('txtPopupHeight').value    = oFeatures['height'] ;\r
+       if ( oFeatures['left'] )        GetE('txtPopupLeft').value              = oFeatures['left'] ;\r
+       if ( oFeatures['top'] )         GetE('txtPopupTop').value               = oFeatures['top'] ;\r
+}\r
+\r
+//#### The OK button was hit.\r
+function Ok()\r
+{\r
+       var sUri, sInnerHtml ;\r
+\r
+       switch ( GetE('cmbLinkType').value )\r
+       {\r
+               case 'url' :\r
+                       sUri = GetE('txtUrl').value ;\r
+\r
+                       if ( sUri.length == 0 )\r
+                       {\r
+                               alert( FCKLang.DlnLnkMsgNoUrl ) ;\r
+                               return false ;\r
+                       }\r
+\r
+                       sUri = GetE('cmbLinkProtocol').value + sUri ;\r
+\r
+                       break ;\r
+\r
+               case 'email' :\r
+                       sUri = GetE('txtEMailAddress').value ;\r
+\r
+                       if ( sUri.length == 0 )\r
+                       {\r
+                               alert( FCKLang.DlnLnkMsgNoEMail ) ;\r
+                               return false ;\r
+                       }\r
+\r
+                       sUri = oParser.CreateEMailUri(\r
+                               sUri,\r
+                               GetE('txtEMailSubject').value,\r
+                               GetE('txtEMailBody').value ) ;\r
+                       break ;\r
+\r
+               case 'anchor' :\r
+                       var sAnchor = GetE('cmbAnchorName').value ;\r
+                       if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value ;\r
+\r
+                       if ( sAnchor.length == 0 )\r
+                       {\r
+                               alert( FCKLang.DlnLnkMsgNoAnchor ) ;\r
+                               return false ;\r
+                       }\r
+\r
+                       sUri = '#' + sAnchor ;\r
+                       break ;\r
+       }\r
+\r
+       // If no link is selected, create a new one (it may result in more than one link creation - #220).\r
+       var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri ) ;\r
+\r
+       // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26)\r
+       var aHasSelection = ( aLinks.length > 0 ) ;\r
+       if ( !aHasSelection )\r
+       {\r
+               sInnerHtml = sUri;\r
+\r
+               // Built a better text for empty links.\r
+               switch ( GetE('cmbLinkType').value )\r
+               {\r
+                       // anchor: use old behavior --> return true\r
+                       case 'anchor':\r
+                               sInnerHtml = sInnerHtml.replace( /^#/, '' ) ;\r
+                               break ;\r
+\r
+                       // url: try to get path\r
+                       case 'url':\r
+                               var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;\r
+                               var asLinkPath = oLinkPathRegEx.exec( sUri ) ;\r
+                               if (asLinkPath != null)\r
+                                       sInnerHtml = asLinkPath[1];  // use matched path\r
+                               break ;\r
+\r
+                       // mailto: try to get email address\r
+                       case 'email':\r
+                               sInnerHtml = GetE('txtEMailAddress').value ;\r
+                               break ;\r
+               }\r
+\r
+               // Create a new (empty) anchor.\r
+               aLinks = [ oEditor.FCK.CreateElement( 'a' ) ] ;\r
+       }\r
+\r
+       oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       for ( var i = 0 ; i < aLinks.length ; i++ )\r
+       {\r
+               oLink = aLinks[i] ;\r
+\r
+               if ( aHasSelection )\r
+                       sInnerHtml = oLink.innerHTML ;          // Save the innerHTML (IE changes it if it is like an URL).\r
+\r
+               oLink.href = sUri ;\r
+               SetAttribute( oLink, '_fcksavedurl', sUri ) ;\r
+\r
+               // Accesible popups\r
+               if( GetE('cmbTarget').value == 'popup' )\r
+               {\r
+                       SetAttribute( oLink, 'onclick_fckprotectedatt', " onclick=\"" + BuildOnClickPopup() + "\"") ;\r
+               }\r
+               else\r
+               {\r
+                       // Check if the previous onclick was for a popup:\r
+                       // In that case remove the onclick handler.\r
+                       var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;\r
+                       if( oRegex.OnClickPopup.test( onclick ) )\r
+                               SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ;\r
+               }\r
+\r
+               oLink.innerHTML = sInnerHtml ;          // Set (or restore) the innerHTML\r
+\r
+               // Target\r
+               if( GetE('cmbTarget').value != 'popup' )\r
+                       SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;\r
+               else\r
+                       SetAttribute( oLink, 'target', null ) ;\r
+\r
+               // Let's set the "id" only for the first link to avoid duplication.\r
+               if ( i == 0 )\r
+                       SetAttribute( oLink, 'id', GetE('txtAttId').value ) ;\r
+\r
+               // Advances Attributes\r
+               SetAttribute( oLink, 'name'             , GetE('txtAttName').value ) ;\r
+               SetAttribute( oLink, 'dir'              , GetE('cmbAttLangDir').value ) ;\r
+               SetAttribute( oLink, 'lang'             , GetE('txtAttLangCode').value ) ;\r
+               SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;\r
+               SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;\r
+               SetAttribute( oLink, 'title'    , GetE('txtAttTitle').value ) ;\r
+               SetAttribute( oLink, 'type'             , GetE('txtAttContentType').value ) ;\r
+               SetAttribute( oLink, 'charset'  , GetE('txtAttCharSet').value ) ;\r
+\r
+               if ( oEditor.FCKBrowserInfo.IsIE )\r
+               {\r
+                       var sClass = GetE('txtAttClasses').value ;\r
+                       // If it's also an anchor add an internal class\r
+                       if ( GetE('txtAttName').value.length != 0 )\r
+                               sClass += ' FCK__AnchorC' ;\r
+                       SetAttribute( oLink, 'className', sClass ) ;\r
+\r
+                       oLink.style.cssText = GetE('txtAttStyle').value ;\r
+               }\r
+               else\r
+               {\r
+                       SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;\r
+                       SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;\r
+               }\r
+       }\r
+\r
+       // Select the (first) link.\r
+       oEditor.FCKSelection.SelectNode( aLinks[0] );\r
+\r
+       return true ;\r
+}\r
+\r
+function BrowseServer()\r
+{\r
+       OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ;\r
+}\r
+\r
+function SetUrl( url )\r
+{\r
+       document.getElementById('txtUrl').value = url ;\r
+       OnUrlChange() ;\r
+       window.parent.SetSelectedTab( 'Info' ) ;\r
+}\r
+\r
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )\r
+{\r
+       switch ( errorNumber )\r
+       {\r
+               case 0 :        // No errors\r
+                       alert( 'Your file has been successfully uploaded' ) ;\r
+                       break ;\r
+               case 1 :        // Custom error\r
+                       alert( customMsg ) ;\r
+                       return ;\r
+               case 101 :      // Custom warning\r
+                       alert( customMsg ) ;\r
+                       break ;\r
+               case 201 :\r
+                       alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;\r
+                       break ;\r
+               case 202 :\r
+                       alert( 'Invalid file type' ) ;\r
+                       return ;\r
+               case 203 :\r
+                       alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;\r
+                       return ;\r
+               default :\r
+                       alert( 'Error on file upload. Error number: ' + errorNumber ) ;\r
+                       return ;\r
+       }\r
+\r
+       SetUrl( fileUrl ) ;\r
+       GetE('frmUpload').reset() ;\r
+}\r
+\r
+var oUploadAllowedExtRegex     = new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' ) ;\r
+var oUploadDeniedExtRegex      = new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' ) ;\r
+\r
+function CheckUpload()\r
+{\r
+       var sFile = GetE('txtUploadFile').value ;\r
+\r
+       if ( sFile.length == 0 )\r
+       {\r
+               alert( 'Please select a file to upload' ) ;\r
+               return false ;\r
+       }\r
+\r
+       if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||\r
+               ( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )\r
+       {\r
+               OnUploadCompleted( 202 ) ;\r
+               return false ;\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+function SetDefaultTarget()\r
+{\r
+       var target = FCKConfig.DefaultLinkTarget + '' ;\r
+       \r
+       if ( oLink || target.length == 0 )\r
+               return ;\r
+\r
+       switch ( target )\r
+       {\r
+               case '_blank' :\r
+               case '_self' :\r
+               case '_parent' :\r
+               case '_top' :\r
+                       GetE('cmbTarget').value = target ;\r
+                       break ;\r
+               default :\r
+                       GetE('cmbTarget').value = 'frame' ;\r
+                       break ;\r
+       }\r
+       \r
+       GetE('txtTargetFrame').value = target ;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_listprop.html b/httemplate/elements/fckeditor/editor/dialog/fck_listprop.html
new file mode 100644 (file)
index 0000000..a0a927e
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Bulleted List dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+var sListType = ( location.search == '?OL' ? 'OL' : 'UL' ) ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( sListType ) ;\r
+var oActiveSel ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( sListType == 'UL' )\r
+               oActiveSel = GetE('selBulleted') ;\r
+       else\r
+       {\r
+               if ( oActiveEl )\r
+               {\r
+                       oActiveSel = GetE('selNumbered') ;\r
+                       GetE('eStart').style.display = '' ;\r
+                       GetE('txtStartPosition').value  = GetAttribute( oActiveEl, 'start' ) ;\r
+               }\r
+       }\r
+\r
+       oActiveSel.style.display = '' ;\r
+\r
+       if ( oActiveEl )\r
+       {\r
+               if ( oActiveEl.getAttribute('type') )\r
+                       oActiveSel.value = oActiveEl.getAttribute('type') ;\r
+       }\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( oActiveEl ){\r
+               SetAttribute( oActiveEl, 'type' , oActiveSel.value ) ;\r
+               if(oActiveEl.tagName == 'OL')\r
+                       SetAttribute( oActiveEl, 'start', GetE('txtStartPosition').value ) ;\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table width="100%" style="height: 100%">\r
+               <tr>\r
+                       <td style="text-align:center">\r
+                               <table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;">\r
+                                       <tr>\r
+                                               <td id="eStart" style="display: none; padding-right: 5px; padding-left: 5px">\r
+                                                       <span fcklang="DlgLstStart">Start</span><br />\r
+                                                       <input type="text" id="txtStartPosition" size="5" />\r
+                                               </td>\r
+                                               <td style="padding-right: 5px; padding-left: 5px">\r
+                                                       <span fcklang="DlgLstType">List Type</span><br />\r
+                                                       <select id="selBulleted" style="display: none">\r
+                                                               <option value="" selected="selected"></option>\r
+                                                               <option value="circle" fcklang="DlgLstTypeCircle">Circle</option>\r
+                                                               <option value="disc" fcklang="DlgLstTypeDisc">Disc</option>\r
+                                                               <option value="square" fcklang="DlgLstTypeSquare">Square</option>\r
+                                                       </select>\r
+                                                       <select id="selNumbered" style="display: none">\r
+                                                               <option value="" selected="selected"></option>\r
+                                                               <option value="1" fcklang="DlgLstTypeNumbers">Numbers (1, 2, 3)</option>\r
+                                                               <option value="a" fcklang="DlgLstTypeLCase">Lowercase Letters (a, b, c)</option>\r
+                                                               <option value="A" fcklang="DlgLstTypeUCase">Uppercase Letters (A, B, C)</option>\r
+                                                               <option value="i" fcklang="DlgLstTypeSRoman">Small Roman Numerals (i, ii, iii)</option>\r
+                                                               <option value="I" fcklang="DlgLstTypeLRoman">Large Roman Numerals (I, II, III)</option>\r
+                                                       </select>\r
+                                                       &nbsp;\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_paste.html b/httemplate/elements/fckeditor/editor/dialog/fck_paste.html
new file mode 100644 (file)
index 0000000..fd16c31
--- /dev/null
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This dialog is shown when, for some reason (usually security settings),\r
+ * the user is not able to paste data from the clipboard to the editor using\r
+ * the toolbar buttons or the context menu.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+\r
+       <script type="text/javascript">\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+var FCK = oEditor.FCK;\r
+var FCKTools   = oEditor.FCKTools ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+\r
+window.onload = function ()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+       \r
+       var sPastingType = window.parent.dialogArguments.CustomValue ;\r
+\r
+       if ( sPastingType == 'Word' || sPastingType == 'Security' )\r
+       {\r
+               if ( sPastingType == 'Security' )\r
+                       document.getElementById( 'xSecurityMsg' ).style.display = '' ;\r
+\r
+               var oFrame = document.getElementById('frmData') ;\r
+               oFrame.style.display = '' ;\r
+\r
+               if ( oFrame.contentDocument )\r
+                       oFrame.contentDocument.designMode = 'on' ;\r
+               else\r
+                       oFrame.contentWindow.document.body.contentEditable = true ;\r
+       }\r
+       else\r
+       {\r
+               document.getElementById('txtData').style.display = '' ;\r
+       }\r
+\r
+       if ( sPastingType != 'Word' )\r
+               document.getElementById('oWordCommands').style.display = 'none' ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       var sHtml ;\r
+\r
+       var sPastingType = window.parent.dialogArguments.CustomValue ;\r
+\r
+       if ( sPastingType == 'Word' || sPastingType == 'Security' )\r
+       {\r
+               var oFrame = document.getElementById('frmData') ;\r
+               var oBody ;\r
+\r
+               if ( oFrame.contentDocument )\r
+                       oBody = oFrame.contentDocument.body ;\r
+               else\r
+                       oBody = oFrame.contentWindow.document.body ;\r
+\r
+               if ( sPastingType == 'Word' )\r
+               {\r
+                       // If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one\r
+                       if ( typeof( FCK.CustomCleanWord ) == 'function' )\r
+                               sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;\r
+                       else\r
+                               sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;\r
+               }\r
+               else\r
+                       sHtml = oBody.innerHTML ;\r
+\r
+               // Fix relative anchor URLs (IE automatically adds the current page URL).\r
+               var re = new RegExp( window.location + "#", "g" ) ;\r
+               sHtml = sHtml.replace( re, '#') ;\r
+       }\r
+       else\r
+       {\r
+               sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value )  ;\r
+               sHtml = sHtml.replace( /\n/g, '<BR>' ) ;\r
+       }\r
+\r
+       oEditor.FCK.InsertHtml( sHtml ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+function CleanUpBox()\r
+{\r
+       var oFrame = document.getElementById('frmData') ;\r
+\r
+       if ( oFrame.contentDocument )\r
+               oFrame.contentDocument.body.innerHTML = '' ;\r
+       else\r
+               oFrame.contentWindow.document.body.innerHTML = '' ;\r
+}\r
+\r
+\r
+// This function will be called from the PasteFromWord dialog (fck_paste.html)\r
+// Input: oNode a DOM node that contains the raw paste from the clipboard\r
+// bIgnoreFont, bRemoveStyles booleans according to the values set in the dialog\r
+// Output: the cleaned string\r
+function CleanWord( oNode, bIgnoreFont, bRemoveStyles )\r
+{\r
+       var html = oNode.innerHTML ;\r
+\r
+       html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;\r
+       html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ;\r
+\r
+       // Remove mso-xxx styles.\r
+       html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;\r
+\r
+       // Remove margin styles.\r
+       html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, '' ) ;\r
+       html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;\r
+\r
+       html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, '' ) ;\r
+       html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;\r
+\r
+       html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;\r
+\r
+       html = html.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;\r
+\r
+       html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;\r
+\r
+       html = html.replace( /\s*tab-stops:[^;"]*;?/gi, '' ) ;\r
+       html = html.replace( /\s*tab-stops:[^"]*/gi, '' ) ;\r
+\r
+       // Remove FONT face attributes.\r
+       if ( bIgnoreFont )\r
+       {\r
+               html = html.replace( /\s*face="[^"]*"/gi, '' ) ;\r
+               html = html.replace( /\s*face=[^ >]*/gi, '' ) ;\r
+\r
+               html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;\r
+       }\r
+\r
+       // Remove Class attributes\r
+       html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;\r
+\r
+       // Remove styles.\r
+       if ( bRemoveStyles )\r
+               html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;\r
+\r
+       // Remove empty styles.\r
+       html =  html.replace( /\s*style="\s*"/gi, '' ) ;\r
+\r
+       html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;\r
+\r
+       html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;\r
+\r
+       // Remove Lang attributes\r
+       html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;\r
+\r
+       html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;\r
+\r
+       html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;\r
+\r
+       // Remove XML elements and declarations\r
+       html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;\r
+\r
+       // Remove Tags with XML namespace declarations: <o:p><\/o:p>\r
+       html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;\r
+\r
+       // Remove comments [SF BUG-1481861].\r
+       html = html.replace(/<\!--.*-->/g, '' ) ;\r
+\r
+       html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;\r
+\r
+       html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;\r
+\r
+       // Remove "display:none" tags.\r
+       html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;\r
+\r
+       if ( FCKConfig.CleanWordKeepsStructure )\r
+       {\r
+               // The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">\r
+               html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;\r
+\r
+               // Word likes to insert extra <font> tags, when using MSIE. (Wierd).\r
+               html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );\r
+               html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );\r
+       }\r
+       else\r
+       {\r
+               html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;\r
+               html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;\r
+               html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;\r
+               html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;\r
+               html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;\r
+               html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;\r
+\r
+               html = html.replace( /<\/H\d>/gi, '<\/font><\/b><\/div>' ) ;\r
+\r
+               // Transform <P> to <DIV>\r
+               var re = new RegExp( '(<P)([^>]*>.*?)(<\/P>)', 'gi' ) ; // Different because of a IE 5.0 error\r
+               html = html.replace( re, '<div$2<\/div>' ) ;\r
+\r
+               // Remove empty tags (three times, just to be sure).\r
+               // This also removes any empty anchor\r
+               html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;\r
+               html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;\r
+               html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;\r
+       }\r
+\r
+       return html ;\r
+}\r
+\r
+       </script>\r
+\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%">\r
+               <tr>\r
+                       <td>\r
+                               <div id="xSecurityMsg" style="display: none">\r
+                                       <span fcklang="DlgPasteSec">Because of your browser security settings,\r
+                                               the editor is not able to access your clipboard data directly. You are required\r
+                                               to paste it again in this window.</span><br />\r
+                                       &nbsp;\r
+                               </div>\r
+                               <div>\r
+                                       <span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard\r
+                                               (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span><br />\r
+                                       &nbsp;\r
+                               </div>\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td valign="top" height="100%" style="border-right: #000000 1px solid; border-top: #000000 1px solid;\r
+                               border-left: #000000 1px solid; border-bottom: #000000 1px solid">\r
+                               <textarea id="txtData" cols="80" rows="5" style="border: #000000 1px; display: none;\r
+                                       width: 99%; height: 98%"></textarea>\r
+                               <iframe id="frmData" src="javascript:void(0)" height="98%" width="99%" frameborder="0"\r
+                                       style="border-right: #000000 1px; border-top: #000000 1px; display: none; border-left: #000000 1px;\r
+                                       border-bottom: #000000 1px; background-color: #ffffff"></iframe>\r
+                       </td>\r
+               </tr>\r
+               <tr id="oWordCommands">\r
+                       <td>\r
+                               <table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+                                       <tr>\r
+                                               <td nowrap="nowrap">\r
+                                                       <input id="chkRemoveFont" type="checkbox" checked="checked" />\r
+                                                       <label for="chkRemoveFont" fcklang="DlgPasteIgnoreFont">\r
+                                                               Ignore Font Face definitions</label>\r
+                                                       <br />\r
+                                                       <input id="chkRemoveStyles" type="checkbox" />\r
+                                                       <label for="chkRemoveStyles" fcklang="DlgPasteRemoveStyles">\r
+                                                               Remove Styles definitions</label>\r
+                                               </td>\r
+                                               <td align="right" valign="top">\r
+                                                       <input type="button" fcklang="DlgPasteCleanBox" value="Clean Up Box" onclick="CleanUpBox()" />\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_radiobutton.html b/httemplate/elements/fckeditor/editor/dialog/fck_radiobutton.html
new file mode 100644 (file)
index 0000000..f239ad3
--- /dev/null
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Radio Button dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Radio Button Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName.toUpperCase() == 'INPUT' && oActiveEl.type == 'radio' )\r
+       {\r
+               GetE('txtName').value           = oActiveEl.name ;\r
+               GetE('txtValue').value          = oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;\r
+               GetE('txtSelected').checked     = oActiveEl.checked ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+               oActiveEl.type = 'radio' ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       if ( GetE('txtName').value.length > 0 )\r
+               oActiveEl.name = GetE('txtName').value ;\r
+\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+               oActiveEl.value = GetE('txtValue').value ;\r
+       else\r
+               SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;\r
+\r
+       var bIsChecked = GetE('txtSelected').checked ;\r
+       SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;   // For Firefox\r
+       oActiveEl.checked = bIsChecked ;\r
+\r
+       return true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style="OVERFLOW: hidden" scroll="no">\r
+               <table height="100%" width="100%">\r
+                       <tr>\r
+                               <td align="center">\r
+                                       <table border="0" cellpadding="0" cellspacing="0" width="80%">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgCheckboxName">Name</span><br>\r
+                                                               <input type="text" size="20" id="txtName" style="WIDTH: 100%">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgCheckboxValue">Value</span><br>\r
+                                                               <input type="text" size="20" id="txtValue" style="WIDTH: 100%">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_replace.html b/httemplate/elements/fckeditor/editor/dialog/fck_replace.html
new file mode 100644 (file)
index 0000000..fe5a788
--- /dev/null
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * "Replace" dialog box window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+function OnLoad()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+\r
+       oEditor.FCKUndo.SaveUndoStep() ;\r
+}\r
+\r
+function btnStat(frm)\r
+{\r
+       document.getElementById('btnReplace').disabled =\r
+               document.getElementById('btnReplaceAll').disabled =\r
+                       ( document.getElementById('txtFind').value.length == 0 ) ;\r
+}\r
+\r
+function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll, hasFound )\r
+{\r
+       for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )\r
+       {\r
+               var oNode = parentNode.childNodes[i] ;\r
+               if ( oNode.nodeType == 3 )\r
+               {\r
+                       var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;\r
+                       if ( oNode.nodeValue != sReplaced )\r
+                       {\r
+                               oNode.nodeValue = sReplaced ;\r
+                               if ( ! replaceAll )\r
+                                       return true ;\r
+                               hasFound = true ;\r
+                       }\r
+               }\r
+\r
+               hasFound = ReplaceTextNodes( oNode, regex, replaceValue, replaceAll, hasFound ) ;\r
+               if ( ! replaceAll && hasFound )\r
+                       return true ;\r
+       }\r
+\r
+       return hasFound ;\r
+}\r
+\r
+function GetRegexExpr()\r
+{\r
+       var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ;\r
+\r
+       if ( document.getElementById('chkWord').checked )\r
+               sExpr = '\\b' + sExpr + '\\b' ;\r
+\r
+       return sExpr ;\r
+}\r
+\r
+function GetCase()\r
+{\r
+       return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;\r
+}\r
+\r
+function GetReplacement()\r
+{\r
+       return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ;\r
+}\r
+\r
+function EscapeRegexString( str )\r
+{\r
+       return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ;\r
+}\r
+\r
+function Replace()\r
+{\r
+       var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ;\r
+       if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) )\r
+               alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
+}\r
+\r
+function ReplaceAll()\r
+{\r
+       var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ;\r
+       if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) )\r
+               alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
+       window.parent.Cancel() ;\r
+}\r
+       </script>\r
+</head>\r
+<body onload="OnLoad()" style="overflow: hidden">\r
+       <table cellspacing="3" cellpadding="2" width="100%" border="0">\r
+               <tr>\r
+                       <td nowrap="nowrap">\r
+                               <label for="txtFind" fcklang="DlgReplaceFindLbl">\r
+                                       Find what:</label>\r
+                       </td>\r
+                       <td width="100%">\r
+                               <input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"\r
+                                       type="text" />\r
+                       </td>\r
+                       <td>\r
+                               <input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();"\r
+                                       type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td valign="top" nowrap="nowrap">\r
+                               <label for="txtReplace" fcklang="DlgReplaceReplaceLbl">\r
+                                       Replace with:</label>\r
+                       </td>\r
+                       <td valign="top">\r
+                               <input id="txtReplace" style="width: 100%" tabindex="2" type="text" />\r
+                       </td>\r
+                       <td>\r
+                               <input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button"\r
+                                       value="Replace All" fcklang="DlgReplaceReplAllBtn" />\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td valign="bottom" colspan="3">\r
+                               &nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match\r
+                                       case</label>\r
+                               <br />\r
+                               &nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match\r
+                                       whole word</label>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_select.html b/httemplate/elements/fckeditor/editor/dialog/fck_select.html
new file mode 100644 (file)
index 0000000..cb48b50
--- /dev/null
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Select dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Select Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script type="text/javascript" src="fck_select/fck_select.js"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+var oListText ;\r
+var oListValue ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       oListText       = document.getElementById( 'cmbText' ) ;\r
+       oListValue      = document.getElementById( 'cmbValue' ) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName == 'SELECT' )\r
+       {\r
+               GetE('txtName').value           = oActiveEl.name ;\r
+               GetE('txtSelValue').value       = oActiveEl.value ;\r
+               GetE('txtLines').value          = GetAttribute( oActiveEl, 'size' ) ;\r
+               GetE('chkMultiple').checked     = oActiveEl.multiple ;\r
+\r
+               // Load the actual options\r
+               for ( var i = 0 ; i < oActiveEl.options.length ; i++ )\r
+               {\r
+                       var sText       = HTMLDecode( oActiveEl.options[i].innerHTML ) ;\r
+                       var sValue      = oActiveEl.options[i].value ;\r
+\r
+                       AddComboOption( oListText, sText, sText ) ;\r
+                       AddComboOption( oListValue, sValue, sValue ) ;\r
+               }\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       var sSize = GetE('txtLines').value ;\r
+       if ( sSize == null || isNaN( sSize ) || sSize <= 1 )\r
+               sSize = '' ;\r
+\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'SELECT' ) ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       SetAttribute( oActiveEl, 'name' , GetE('txtName').value ) ;\r
+       SetAttribute( oActiveEl, 'size' , sSize ) ;\r
+       oActiveEl.multiple = ( sSize.length > 0 && GetE('chkMultiple').checked ) ;\r
+\r
+       // Remove all options.\r
+       while ( oActiveEl.options.length > 0 )\r
+               oActiveEl.remove(0) ;\r
+\r
+       // Add all available options.\r
+       for ( var i = 0 ; i < oListText.options.length ; i++ )\r
+       {\r
+               var sText       = oListText.options[i].value ;\r
+               var sValue      = oListValue.options[i].value ;\r
+               if ( sValue.length == 0 ) sValue = sText ;\r
+\r
+               var oOption = AddComboOption( oActiveEl, sText, sValue, oDOM ) ;\r
+\r
+               if ( sValue == GetE('txtSelValue').value )\r
+               {\r
+                       SetAttribute( oOption, 'selected', 'selected' ) ;\r
+                       oOption.selected = true ;\r
+               }\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style='OVERFLOW: hidden' scroll='no'>\r
+               <table width="100%" height="100%">\r
+                       <tr>\r
+                               <td>\r
+                                       <table width="100%">\r
+                                               <tr>\r
+                                                       <td nowrap><span fckLang="DlgSelectName">Name</span>&nbsp;</td>\r
+                                                       <td width="100%" colSpan="2"><input id="txtName" style="WIDTH: 100%" type="text"></td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td nowrap><span fckLang="DlgSelectValue">Value</span>&nbsp;</td>\r
+                                                       <td width="100%" colSpan="2"><input id="txtSelValue" style="WIDTH: 100%; BACKGROUND-COLOR: buttonface" type="text" readonly></td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td nowrap><span fckLang="DlgSelectSize">Size</span>&nbsp;</td>\r
+                                                       <td nowrap><input id="txtLines" type="text" size="2" value="">&nbsp;<span fckLang="DlgSelectLines">lines</span></td>\r
+                                                       <td nowrap align="right"><input id="chkMultiple" name="chkMultiple" type="checkbox"><label for="chkMultiple" fckLang="DlgSelectChkMulti">Allow\r
+                                                                       multiple selections</label></td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <br>\r
+                                       <hr style="POSITION: absolute">\r
+                                       <span style="LEFT: 10px; POSITION: relative; TOP: -7px" class="BackColor">&nbsp;<span fckLang="DlgSelectOpAvail">Available\r
+                                                       Options</span>&nbsp;</span>\r
+                                       <table width="100%">\r
+                                               <tr>\r
+                                                       <td width="50%"><span fckLang="DlgSelectOpText">Text</span><br>\r
+                                                               <input id="txtText" style="WIDTH: 100%" type="text" name="txtText">\r
+                                                       </td>\r
+                                                       <td width="50%"><span fckLang="DlgSelectOpValue">Value</span><br>\r
+                                                               <input id="txtValue" style="WIDTH: 100%" type="text" name="txtValue">\r
+                                                       </td>\r
+                                                       <td vAlign="bottom"><input onclick="Add();" type="button" fckLang="DlgSelectBtnAdd" value="Add"></td>\r
+                                                       <td vAlign="bottom"><input onclick="Modify();" type="button" fckLang="DlgSelectBtnModify" value="Modify"></td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td rowSpan="2"><select id="cmbText" style="WIDTH: 100%" onchange="GetE('cmbValue').selectedIndex = this.selectedIndex;Select(this);"\r
+                                                                       size="5" name="cmbText"></select>\r
+                                                       </td>\r
+                                                       <td rowSpan="2"><select id="cmbValue" style="WIDTH: 100%" onchange="GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);"\r
+                                                                       size="5" name="cmbValue"></select>\r
+                                                       </td>\r
+                                                       <td vAlign="top" colSpan="2">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td vAlign="bottom" colSpan="2"><input style="WIDTH: 100%" onclick="Move(-1);" type="button" fckLang="DlgSelectBtnUp" value="Up">\r
+                                                               <br>\r
+                                                               <input style="WIDTH: 100%" onclick="Move(1);" type="button" fckLang="DlgSelectBtnDown"\r
+                                                                       value="Down">\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <TR>\r
+                                                       <TD vAlign="bottom" colSpan="4"><INPUT onclick="SetSelectedValue();" type="button" fckLang="DlgSelectBtnSetValue" value="Set as selected value">&nbsp;&nbsp;\r
+                                                               <input onclick="Delete();" type="button" fckLang="DlgSelectBtnDelete" value="Delete"></TD>\r
+                                               </TR>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_select/fck_select.js b/httemplate/elements/fckeditor/editor/dialog/fck_select/fck_select.js
new file mode 100644 (file)
index 0000000..181b666
--- /dev/null
@@ -0,0 +1,194 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Scripts for the fck_select.html page.\r
+ */\r
+\r
+function Select( combo )\r
+{\r
+       var iIndex = combo.selectedIndex ;\r
+\r
+       oListText.selectedIndex         = iIndex ;\r
+       oListValue.selectedIndex        = iIndex ;\r
+\r
+       var oTxtText    = document.getElementById( "txtText" ) ;\r
+       var oTxtValue   = document.getElementById( "txtValue" ) ;\r
+\r
+       oTxtText.value  = oListText.value ;\r
+       oTxtValue.value = oListValue.value ;\r
+}\r
+\r
+function Add()\r
+{\r
+       var oTxtText    = document.getElementById( "txtText" ) ;\r
+       var oTxtValue   = document.getElementById( "txtValue" ) ;\r
+\r
+       AddComboOption( oListText, oTxtText.value, oTxtText.value ) ;\r
+       AddComboOption( oListValue, oTxtValue.value, oTxtValue.value ) ;\r
+\r
+       oListText.selectedIndex = oListText.options.length - 1 ;\r
+       oListValue.selectedIndex = oListValue.options.length - 1 ;\r
+\r
+       oTxtText.value  = '' ;\r
+       oTxtValue.value = '' ;\r
+\r
+       oTxtText.focus() ;\r
+}\r
+\r
+function Modify()\r
+{\r
+       var iIndex = oListText.selectedIndex ;\r
+\r
+       if ( iIndex < 0 ) return ;\r
+\r
+       var oTxtText    = document.getElementById( "txtText" ) ;\r
+       var oTxtValue   = document.getElementById( "txtValue" ) ;\r
+\r
+       oListText.options[ iIndex ].innerHTML   = HTMLEncode( oTxtText.value ) ;\r
+       oListText.options[ iIndex ].value               = oTxtText.value ;\r
+\r
+       oListValue.options[ iIndex ].innerHTML  = HTMLEncode( oTxtValue.value ) ;\r
+       oListValue.options[ iIndex ].value              = oTxtValue.value ;\r
+\r
+       oTxtText.value  = '' ;\r
+       oTxtValue.value = '' ;\r
+\r
+       oTxtText.focus() ;\r
+}\r
+\r
+function Move( steps )\r
+{\r
+       ChangeOptionPosition( oListText, steps ) ;\r
+       ChangeOptionPosition( oListValue, steps ) ;\r
+}\r
+\r
+function Delete()\r
+{\r
+       RemoveSelectedOptions( oListText ) ;\r
+       RemoveSelectedOptions( oListValue ) ;\r
+}\r
+\r
+function SetSelectedValue()\r
+{\r
+       var iIndex = oListValue.selectedIndex ;\r
+       if ( iIndex < 0 ) return ;\r
+\r
+       var oTxtValue = document.getElementById( "txtSelValue" ) ;\r
+\r
+       oTxtValue.value = oListValue.options[ iIndex ].value ;\r
+}\r
+\r
+// Moves the selected option by a number of steps (also negative)\r
+function ChangeOptionPosition( combo, steps )\r
+{\r
+       var iActualIndex = combo.selectedIndex ;\r
+\r
+       if ( iActualIndex < 0 )\r
+               return ;\r
+\r
+       var iFinalIndex = iActualIndex + steps ;\r
+\r
+       if ( iFinalIndex < 0 )\r
+               iFinalIndex = 0 ;\r
+\r
+       if ( iFinalIndex > ( combo.options.length - 1 ) )\r
+               iFinalIndex = combo.options.length - 1 ;\r
+\r
+       if ( iActualIndex == iFinalIndex )\r
+               return ;\r
+\r
+       var oOption = combo.options[ iActualIndex ] ;\r
+       var sText       = HTMLDecode( oOption.innerHTML ) ;\r
+       var sValue      = oOption.value ;\r
+\r
+       combo.remove( iActualIndex ) ;\r
+\r
+       oOption = AddComboOption( combo, sText, sValue, null, iFinalIndex ) ;\r
+\r
+       oOption.selected = true ;\r
+}\r
+\r
+// Remove all selected options from a SELECT object\r
+function RemoveSelectedOptions(combo)\r
+{\r
+       // Save the selected index\r
+       var iSelectedIndex = combo.selectedIndex ;\r
+\r
+       var oOptions = combo.options ;\r
+\r
+       // Remove all selected options\r
+       for ( var i = oOptions.length - 1 ; i >= 0 ; i-- )\r
+       {\r
+               if (oOptions[i].selected) combo.remove(i) ;\r
+       }\r
+\r
+       // Reset the selection based on the original selected index\r
+       if ( combo.options.length > 0 )\r
+       {\r
+               if ( iSelectedIndex >= combo.options.length ) iSelectedIndex = combo.options.length - 1 ;\r
+               combo.selectedIndex = iSelectedIndex ;\r
+       }\r
+}\r
+\r
+// Add a new option to a SELECT object (combo or list)\r
+function AddComboOption( combo, optionText, optionValue, documentObject, index )\r
+{\r
+       var oOption ;\r
+\r
+       if ( documentObject )\r
+               oOption = documentObject.createElement("OPTION") ;\r
+       else\r
+               oOption = document.createElement("OPTION") ;\r
+\r
+       if ( index != null )\r
+               combo.options.add( oOption, index ) ;\r
+       else\r
+               combo.options.add( oOption ) ;\r
+\r
+       oOption.innerHTML = optionText.length > 0 ? HTMLEncode( optionText ) : '&nbsp;' ;\r
+       oOption.value     = optionValue ;\r
+\r
+       return oOption ;\r
+}\r
+\r
+function HTMLEncode( text )\r
+{\r
+       if ( !text )\r
+               return '' ;\r
+\r
+       text = text.replace( /&/g, '&amp;' ) ;\r
+       text = text.replace( /</g, '&lt;' ) ;\r
+       text = text.replace( />/g, '&gt;' ) ;\r
+\r
+       return text ;\r
+}\r
+\r
+\r
+function HTMLDecode( text )\r
+{\r
+       if ( !text )\r
+               return '' ;\r
+\r
+       text = text.replace( /&gt;/g, '>' ) ;\r
+       text = text.replace( /&lt;/g, '<' ) ;\r
+       text = text.replace( /&amp;/g, '&' ) ;\r
+\r
+       return text ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_smiley.html b/httemplate/elements/fckeditor/editor/dialog/fck_smiley.html
new file mode 100644 (file)
index 0000000..c8efd0c
--- /dev/null
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Smileys (emoticons) dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <style type="text/css">\r
+               .Hand\r
+               {\r
+                       cursor: pointer;\r
+                       cursor: hand;\r
+               }\r
+       </style>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+window.onload = function ()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+}\r
+\r
+function InsertSmiley( url )\r
+{\r
+       var oImg = oEditor.FCK.CreateElement( 'IMG' ) ;\r
+       oImg.src = url ;\r
+       oImg.setAttribute( '_fcksavedurl', url ) ;\r
+\r
+       // For long smileys list, it seams that IE continues loading the images in\r
+       // the background when you quickly select one image. so, let's clear\r
+       // everything before closing.\r
+       document.body.innerHTML = '' ;\r
+\r
+       window.parent.Cancel() ;\r
+}\r
+\r
+function over(td)\r
+{\r
+       td.className = 'LightBackground Hand' ;\r
+}\r
+\r
+function out(td)\r
+{\r
+       td.className = 'DarkBackground Hand' ;\r
+}\r
+       </script>\r
+</head>\r
+<body scroll="no">\r
+       <table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">\r
+               <script type="text/javascript">\r
+\r
+var FCKConfig = oEditor.FCKConfig ;\r
+\r
+var sBasePath  = FCKConfig.SmileyPath ;\r
+var aImages            = FCKConfig.SmileyImages ;\r
+var iCols              = FCKConfig.SmileyColumns ;\r
+var iColWidth  = parseInt( 100 / iCols, 10 ) ;\r
+\r
+var i = 0 ;\r
+while (i < aImages.length)\r
+{\r
+       document.write( '<tr>' ) ;\r
+       for(var j = 0 ; j < iCols ; j++)\r
+       {\r
+               if (aImages[i])\r
+               {\r
+                       var sUrl = sBasePath + aImages[i] ;\r
+                       document.write( '<td width="' + iColWidth + '%" align="center" class="DarkBackground Hand" onclick="InsertSmiley(\'' + sUrl.replace(/'/g, "\\'" ) + '\')" onmouseover="over(this)" onmouseout="out(this)">' ) ;\r
+                       document.write( '<img src="' + sUrl + '" border="0" />' ) ;\r
+               }\r
+               else\r
+                       document.write( '<td width="' + iColWidth + '%" class="DarkBackground">&nbsp;' ) ;\r
+               document.write( '<\/td>' ) ;\r
+               i++ ;\r
+       }\r
+       document.write('<\/tr>') ;\r
+}\r
+\r
+               </script>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_source.html b/httemplate/elements/fckeditor/editor/dialog/fck_source.html
new file mode 100644 (file)
index 0000000..aba9b39
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Source editor dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Source</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta name="robots" content="noindex, nofollow">\r
+               <link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />\r
+               <script language="javascript">\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+\r
+window.onload = function()\r
+{\r
+       // EnableXHTML and EnableSourceXHTML has been deprecated\r
+//     document.getElementById('txtSource').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;\r
+       document.getElementById('txtSource').value = FCK.GetXHTML( FCKConfig.FormatSource ) ;\r
+\r
+       // Activate the "OK" button.\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+//#### The OK button was hit.\r
+function Ok()\r
+{\r
+       if ( oEditor.FCKBrowserInfo.IsIE )\r
+               oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       FCK.SetHTML( document.getElementById('txtSource').value, false ) ;\r
+\r
+       return true ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body scroll="no" style="OVERFLOW: hidden">\r
+               <table width="100%" height="100%">\r
+                       <tr>\r
+                               <td height="100%"><textarea id="txtSource" dir="ltr" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 14px; PADDING-BOTTOM: 5px; WIDTH: 100%; PADDING-TOP: 5px; FONT-FAMILY: Monospace; HEIGHT: 100%">Loading. Please wait...</textarea></td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_specialchar.html b/httemplate/elements/fckeditor/editor/dialog/fck_specialchar.html
new file mode 100644 (file)
index 0000000..e6d0a5a
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Special Chars Selector dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <meta name="robots" content="noindex, nofollow">\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <style type="text/css">\r
+                               .Hand\r
+                               {\r
+                                       cursor: pointer ;\r
+                                       cursor: hand ;\r
+                               }\r
+                               .Sample { font-size: 24px; }\r
+               </style>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+var oSample ;\r
+\r
+function insertChar(charValue)\r
+{\r
+       oEditor.FCK.InsertHtml( charValue || "" ) ;\r
+       window.parent.Cancel() ;\r
+}\r
+\r
+function over(td)\r
+{\r
+       oSample.innerHTML = td.innerHTML ;\r
+       td.className = 'LightBackground SpecialCharsOver Hand' ;\r
+}\r
+\r
+function out(td)\r
+{\r
+       oSample.innerHTML = "&nbsp;" ;\r
+       td.className = 'DarkBackground SpecialCharsOut Hand' ;\r
+}\r
+\r
+function setDefaults()\r
+{\r
+       // Gets the sample placeholder.\r
+       oSample = document.getElementById("SampleTD") ;\r
+\r
+       // First of all, translates the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+}\r
+\r
+               </script>\r
+       </HEAD>\r
+       <BODY onload="setDefaults()" scroll="no">\r
+               <table cellpadding="0" cellspacing="0" width="100%" height="100%">\r
+                       <tr>\r
+                               <td width="100%">\r
+                                       <table cellpadding="1" cellspacing="1" align="center" border="0" width="100%" height="100%">\r
+                                               <script type="text/javascript">\r
+var aChars = ["!","&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;","&rsquo;","&ldquo;","&rdquo;","&ndash;","&mdash;","&iexcl;","&cent;","&pound;","&curren;","&yen;","&brvbar;","&sect;","&uml;","&copy;","&ordf;","&laquo;","&not;","&reg;","&macr;","&deg;","&plusmn;","&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;","&uuml;","&yacute;","&thorn;","&yuml;","&OElig;","&oelig;","&sbquo;","&#8219;","&bdquo;","&hellip;","&trade;","&#9658;","&bull;","&rarr;","&rArr;","&hArr;","&diams;","&asymp;"] ;\r
+\r
+var cols = 20 ;\r
+\r
+var i = 0 ;\r
+while (i < aChars.length)\r
+{\r
+       document.write("<TR>") ;\r
+       for(var j = 0 ; j < cols ; j++)\r
+       {\r
+               if (aChars[i])\r
+               {\r
+                       document.write('<TD width="1%" class="DarkBackground SpecialCharsOut Hand" align="center" onclick="insertChar(\'' + aChars[i].replace(/&/g, "&amp;") + '\')" onmouseover="over(this)" onmouseout="out(this)">') ;\r
+                       document.write(aChars[i]) ;\r
+               }\r
+               else\r
+                       document.write("<TD class='DarkBackground SpecialCharsOut'>&nbsp;") ;\r
+               document.write("<\/TD>") ;\r
+               i++ ;\r
+       }\r
+       document.write("<\/TR>") ;\r
+}\r
+                                               </script>\r
+                                       </table>\r
+                               </td>\r
+                               <td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;</td>\r
+                               <td valign="top">\r
+                                       <table width="40" cellpadding="0" cellspacing="0" border="0">\r
+                                               <tr>\r
+                                                       <td id="SampleTD" width="40" height="40" align="center" class="DarkBackground SpecialCharsOut Sample">&nbsp;</td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </BODY>\r
+</HTML>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages.html b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages.html
new file mode 100644 (file)
index 0000000..66596e1
--- /dev/null
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Spell Check dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Spell Check</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="fck_spellerpages/spellerpages/spellChecker.js"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+var FCKLang = oEditor.FCKLang ;\r
+\r
+window.onload = function()\r
+{\r
+       document.getElementById('txtHtml').value = oEditor.FCK.EditorDocument.body.innerHTML ;\r
+\r
+       var oSpeller = new spellChecker( document.getElementById('txtHtml') ) ;\r
+       oSpeller.spellCheckScript = oEditor.FCKConfig.SpellerPagesServerScript || 'server-scripts/spellchecker.php' ;\r
+       oSpeller.OnFinished = oSpeller_OnFinished ;\r
+       oSpeller.openChecker() ;\r
+}\r
+\r
+function OnSpellerControlsLoad( controlsWindow )\r
+{\r
+       // Translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage( controlsWindow.document ) ;\r
+}\r
+\r
+function oSpeller_OnFinished( numberOCorrections )\r
+{\r
+       if ( numberOCorrections > 0 )\r
+               oEditor.FCK.SetHTML( document.getElementById('txtHtml').value ) ;\r
+       window.parent.Cancel() ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style="OVERFLOW: hidden" scroll="no" style="padding:0px;">\r
+               <input type="hidden" id="txtHtml" value="">\r
+               <iframe id="frmSpell" src="javascript:void(0)" name="spellchecker" width="100%" height="100%" frameborder="0"></iframe>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js
new file mode 100644 (file)
index 0000000..80af849
--- /dev/null
@@ -0,0 +1,87 @@
+////////////////////////////////////////////////////\r
+// controlWindow object\r
+////////////////////////////////////////////////////\r
+function controlWindow( controlForm ) {\r
+       // private properties\r
+       this._form = controlForm;\r
+\r
+       // public properties\r
+       this.windowType = "controlWindow";\r
+//     this.noSuggestionSelection = "- No suggestions -";      // by FredCK\r
+       this.noSuggestionSelection = FCKLang.DlgSpellNoSuggestions ;\r
+       // set up the properties for elements of the given control form\r
+       this.suggestionList  = this._form.sugg;\r
+       this.evaluatedText   = this._form.misword;\r
+       this.replacementText = this._form.txtsugg;\r
+       this.undoButton      = this._form.btnUndo;\r
+\r
+       // public methods\r
+       this.addSuggestion = addSuggestion;\r
+       this.clearSuggestions = clearSuggestions;\r
+       this.selectDefaultSuggestion = selectDefaultSuggestion;\r
+       this.resetForm = resetForm;\r
+       this.setSuggestedText = setSuggestedText;\r
+       this.enableUndo = enableUndo;\r
+       this.disableUndo = disableUndo;\r
+}\r
+\r
+function resetForm() {\r
+       if( this._form ) {\r
+               this._form.reset();\r
+       }\r
+}\r
+\r
+function setSuggestedText() {\r
+       var slct = this.suggestionList;\r
+       var txt = this.replacementText;\r
+       var str = "";\r
+       if( (slct.options[0].text) && slct.options[0].text != this.noSuggestionSelection ) {\r
+               str = slct.options[slct.selectedIndex].text;\r
+       }\r
+       txt.value = str;\r
+}\r
+\r
+function selectDefaultSuggestion() {\r
+       var slct = this.suggestionList;\r
+       var txt = this.replacementText;\r
+       if( slct.options.length == 0 ) {\r
+               this.addSuggestion( this.noSuggestionSelection );\r
+       } else {\r
+               slct.options[0].selected = true;\r
+       }\r
+       this.setSuggestedText();\r
+}\r
+\r
+function addSuggestion( sugg_text ) {\r
+       var slct = this.suggestionList;\r
+       if( sugg_text ) {\r
+               var i = slct.options.length;\r
+               var newOption = new Option( sugg_text, 'sugg_text'+i );\r
+               slct.options[i] = newOption;\r
+        }\r
+}\r
+\r
+function clearSuggestions() {\r
+       var slct = this.suggestionList;\r
+       for( var j = slct.length - 1; j > -1; j-- ) {\r
+               if( slct.options[j] ) {\r
+                       slct.options[j] = null;\r
+               }\r
+       }\r
+}\r
+\r
+function enableUndo() {\r
+       if( this.undoButton ) {\r
+               if( this.undoButton.disabled == true ) {\r
+                       this.undoButton.disabled = false;\r
+               }\r
+       }\r
+}\r
+\r
+function disableUndo() {\r
+       if( this.undoButton ) {\r
+               if( this.undoButton.disabled == false ) {\r
+                       this.undoButton.disabled = true;\r
+               }\r
+       }\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
new file mode 100644 (file)
index 0000000..d91bcce
--- /dev/null
@@ -0,0 +1,153 @@
+<html>\r
+       <head>\r
+               <link rel="stylesheet" type="text/css" href="spellerStyle.css" />\r
+               <script type="text/javascript" src="controlWindow.js"></script>\r
+               <script type="text/javascript">\r
+var spellerObject;\r
+var controlWindowObj;\r
+\r
+if( parent.opener ) {\r
+       spellerObject = parent.opener.speller;\r
+}\r
+\r
+function ignore_word() {\r
+       if( spellerObject ) {\r
+               spellerObject.ignoreWord();\r
+       }\r
+}\r
+\r
+function ignore_all() {\r
+       if( spellerObject ) {\r
+               spellerObject.ignoreAll();\r
+       }\r
+}\r
+\r
+function replace_word() {\r
+       if( spellerObject ) {\r
+               spellerObject.replaceWord();\r
+       }\r
+}\r
+\r
+function replace_all() {\r
+       if( spellerObject ) {\r
+               spellerObject.replaceAll();\r
+       }\r
+}\r
+\r
+function end_spell() {\r
+       if( spellerObject ) {\r
+               spellerObject.terminateSpell();\r
+       }\r
+}\r
+\r
+function undo() {\r
+       if( spellerObject ) {\r
+               spellerObject.undo();\r
+       }\r
+}\r
+\r
+function suggText() {\r
+       if( controlWindowObj ) {\r
+               controlWindowObj.setSuggestedText();\r
+       }\r
+}\r
+\r
+var FCKLang = window.parent.parent.FCKLang ;   // by FredCK\r
+\r
+function init_spell() {\r
+       // By FredCK (fckLang attributes have been added to the HTML source of this page)\r
+       window.parent.parent.OnSpellerControlsLoad( this ) ;\r
+\r
+       var controlForm = document.spellcheck;\r
+\r
+       // create a new controlWindow object\r
+       controlWindowObj = new controlWindow( controlForm );\r
+\r
+       // call the init_spell() function in the parent frameset\r
+       if( parent.frames.length ) {\r
+               parent.init_spell( controlWindowObj );\r
+       } else {\r
+               alert( 'This page was loaded outside of a frameset. It might not display properly' );\r
+       }\r
+}\r
+\r
+</script>\r
+       </head>\r
+       <body class="controlWindowBody" onLoad="init_spell();" style="OVERFLOW: hidden" scroll="no">    <!-- by FredCK -->\r
+               <form name="spellcheck">\r
+                       <table border="0" cellpadding="0" cellspacing="0" border="0" align="center">\r
+                               <tr>\r
+                                       <td colspan="3" class="normalLabel"><span fckLang="DlgSpellNotInDic">Not in dictionary:</span></td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td colspan="3"><input class="readonlyInput" type="text" name="misword" readonly /></td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td colspan="3" height="5"></td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td class="normalLabel"><span fckLang="DlgSpellChangeTo">Change to:</span></td>\r
+                               </tr>\r
+                               <tr valign="top">\r
+                                       <td>\r
+                                               <table border="0" cellpadding="0" cellspacing="0" border="0">\r
+                                                       <tr>\r
+                                                               <td class="normalLabel">\r
+                                                                       <input class="textDefault" type="text" name="txtsugg" />\r
+                                                               </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>\r
+                                                                       <select class="suggSlct" name="sugg" size="7" onChange="suggText();" onDblClick="replace_word();">\r
+                                                                               <option></option>\r
+                                                                       </select>\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                                       <td>&nbsp;&nbsp;</td>\r
+                                       <td>\r
+                                               <table border="0" cellpadding="0" cellspacing="0" border="0">\r
+                                                       <tr>\r
+                                                               <td>\r
+                                                                       <input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnore" value="Ignore" onClick="ignore_word();">\r
+                                                               </td>\r
+                                                               <td>&nbsp;&nbsp;</td>\r
+                                                               <td>\r
+                                                                       <input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnoreAll" value="Ignore All" onClick="ignore_all();">\r
+                                                               </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td colspan="3" height="5"></td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>\r
+                                                                       <input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplace" value="Replace" onClick="replace_word();">\r
+                                                               </td>\r
+                                                               <td>&nbsp;&nbsp;</td>\r
+                                                               <td>\r
+                                                                       <input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplaceAll" value="Replace All" onClick="replace_all();">\r
+                                                               </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td colspan="3" height="5"></td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>\r
+                                                                       <input class="buttonDefault" type="button" name="btnUndo" fckLang="DlgSpellBtnUndo" value="Undo" onClick="undo();"\r
+                                                                               disabled>\r
+                                                               </td>\r
+                                                               <td>&nbsp;&nbsp;</td>\r
+                                                               <td>\r
+                                                                       <!-- by FredCK\r
+                                                                       <input class="buttonDefault" type="button" value="Close" onClick="end_spell();">\r
+                                                                       -->\r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+               </form>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
new file mode 100644 (file)
index 0000000..8d3df65
--- /dev/null
@@ -0,0 +1,180 @@
+#!/usr/bin/perl\r
+\r
+use CGI qw/ :standard /;\r
+use File::Temp qw/ tempfile tempdir /;\r
+\r
+# my $spellercss = '/speller/spellerStyle.css';                                        # by FredCK\r
+my $spellercss = '../spellerStyle.css';                                                        # by FredCK\r
+# my $wordWindowSrc = '/speller/wordWindow.js';                                        # by FredCK\r
+my $wordWindowSrc = '../wordWindow.js';                                                        # by FredCK\r
+my @textinputs = param( 'textinputs[]' ); # array\r
+# my $aspell_cmd = 'aspell';                                                                   # by FredCK (for Linux)\r
+my $aspell_cmd = '"C:\Program Files\Aspell\bin\aspell.exe"';   # by FredCK (for Windows)\r
+my $lang = 'en_US';\r
+# my $aspell_opts = "-a --lang=$lang --encoding=utf-8";                        # by FredCK\r
+my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt";          # by FredCK\r
+my $input_separator = "A";\r
+\r
+# set the 'wordtext' JavaScript variable to the submitted text.\r
+sub printTextVar {\r
+       for( my $i = 0; $i <= $#textinputs; $i++ ) {\r
+               print "textinputs[$i] = decodeURIComponent('" . escapeQuote( $textinputs[$i] ) . "')\n";\r
+       }\r
+}\r
+\r
+sub printTextIdxDecl {\r
+       my $idx = shift;\r
+       print "words[$idx] = [];\n";\r
+       print "suggs[$idx] = [];\n";\r
+}\r
+\r
+sub printWordsElem {\r
+       my( $textIdx, $wordIdx, $word ) = @_;\r
+       print "words[$textIdx][$wordIdx] = '" . escapeQuote( $word ) . "';\n";\r
+}\r
+\r
+sub printSuggsElem {\r
+       my( $textIdx, $wordIdx, @suggs ) = @_;\r
+       print "suggs[$textIdx][$wordIdx] = [";\r
+       for my $i ( 0..$#suggs ) {\r
+               print "'" . escapeQuote( $suggs[$i] ) . "'";\r
+               if( $i < $#suggs ) {\r
+                       print ", ";\r
+               }\r
+       }\r
+       print "];\n";\r
+}\r
+\r
+sub printCheckerResults {\r
+       my $textInputIdx = -1;\r
+       my $wordIdx = 0;\r
+       my $unhandledText;\r
+       # create temp file\r
+       my $dir = tempdir( CLEANUP => 1 );\r
+       my( $fh, $tmpfilename ) = tempfile( DIR => $dir );\r
+\r
+       # temp file was created properly?\r
+\r
+       # open temp file, add the submitted text.\r
+       for( my $i = 0; $i <= $#textinputs; $i++ ) {\r
+               $text = url_decode( $textinputs[$i] );\r
+               @lines = split( /\n/, $text );\r
+               print $fh "\%\n"; # exit terse mode\r
+               print $fh "^$input_separator\n";\r
+               print $fh "!\n";  # enter terse mode\r
+               for my $line ( @lines ) {\r
+                       # use carat on each line to escape possible aspell commands\r
+                       print $fh "^$line\n";\r
+               }\r
+\r
+       }\r
+       # exec aspell command\r
+       my $cmd = "$aspell_cmd $aspell_opts < $tmpfilename 2>&1";\r
+       open ASPELL, "$cmd |" or handleError( "Could not execute `$cmd`\\n$!" ) and return;\r
+       # parse each line of aspell return\r
+       for my $ret ( <ASPELL> ) {\r
+               chomp( $ret );\r
+               # if '&', then not in dictionary but has suggestions\r
+               # if '#', then not in dictionary and no suggestions\r
+               # if '*', then it is a delimiter between text inputs\r
+               if( $ret =~ /^\*/ ) {\r
+                       $textInputIdx++;\r
+                       printTextIdxDecl( $textInputIdx );\r
+                       $wordIdx = 0;\r
+\r
+               } elsif( $ret =~ /^(&|#)/ ) {\r
+                       my @tokens = split( " ", $ret, 5 );\r
+                       printWordsElem( $textInputIdx, $wordIdx, $tokens[1] );\r
+                       my @suggs = ();\r
+                       if( $tokens[4] ) {\r
+                               @suggs = split( ", ", $tokens[4] );\r
+                       }\r
+                       printSuggsElem( $textInputIdx, $wordIdx, @suggs );\r
+                       $wordIdx++;\r
+               } else {\r
+                       $unhandledText .= $ret;\r
+               }\r
+       }\r
+       close ASPELL or handleError( "Error executing `$cmd`\\n$unhandledText" ) and return;\r
+}\r
+\r
+sub escapeQuote {\r
+       my $str = shift;\r
+       $str =~ s/'/\\'/g;\r
+       return $str;\r
+}\r
+\r
+sub handleError {\r
+       my $err = shift;\r
+       print "error = '" . escapeQuote( $err ) . "';\n";\r
+}\r
+\r
+sub url_decode {\r
+       local $_ = @_ ? shift : $_;\r
+       defined or return;\r
+       # change + signs to spaces\r
+       tr/+/ /;\r
+       # change hex escapes to the proper characters\r
+       s/%([a-fA-F0-9]{2})/pack "H2", $1/eg;\r
+       return $_;\r
+}\r
+\r
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
+# Display HTML\r
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
+\r
+print <<EOF;\r
+Content-type: text/html; charset=utf-8\r
+\r
+<html>\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<link rel="stylesheet" type="text/css" href="$spellercss"/>\r
+<script src="$wordWindowSrc"></script>\r
+<script type="text/javascript">\r
+var suggs = new Array();\r
+var words = new Array();\r
+var textinputs = new Array();\r
+var error;\r
+EOF\r
+\r
+printTextVar();\r
+\r
+printCheckerResults();\r
+\r
+print <<EOF;\r
+var wordWindowObj = new wordWindow();\r
+wordWindowObj.originalSpellings = words;\r
+wordWindowObj.suggestions = suggs;\r
+wordWindowObj.textInputs = textinputs;\r
+\r
+\r
+function init_spell() {\r
+       // check if any error occured during server-side processing\r
+       if( error ) {\r
+               alert( error );\r
+       } else {\r
+               // call the init_spell() function in the parent frameset\r
+               if (parent.frames.length) {\r
+                       parent.init_spell( wordWindowObj );\r
+               } else {\r
+                       error = "This page was loaded outside of a frameset. ";\r
+                       error += "It might not display properly";\r
+                       alert( error );\r
+               }\r
+       }\r
+}\r
+\r
+</script>\r
+\r
+</head>\r
+<body onLoad="init_spell();">\r
+\r
+<script type="text/javascript">\r
+wordWindowObj.writeBody();\r
+</script>\r
+\r
+</body>\r
+</html>\r
+EOF\r
+\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
new file mode 100644 (file)
index 0000000..b5e55b7
--- /dev/null
@@ -0,0 +1,462 @@
+////////////////////////////////////////////////////\r
+// spellChecker.js\r
+//\r
+// spellChecker object\r
+//\r
+// This file is sourced on web pages that have a textarea object to evaluate\r
+// for spelling. It includes the implementation for the spellCheckObject.\r
+//\r
+////////////////////////////////////////////////////\r
+\r
+\r
+// constructor\r
+function spellChecker( textObject ) {\r
+\r
+       // public properties - configurable\r
+//     this.popUpUrl = '/speller/spellchecker.html';                                                   // by FredCK\r
+       this.popUpUrl = 'fck_spellerpages/spellerpages/spellchecker.html';              // by FredCK\r
+       this.popUpName = 'spellchecker';\r
+//     this.popUpProps = "menu=no,width=440,height=350,top=70,left=120,resizable=yes,status=yes";      // by FredCK\r
+       this.popUpProps = null ;                                                                                                                                        // by FredCK\r
+//     this.spellCheckScript = '/speller/server-scripts/spellchecker.php';             // by FredCK\r
+       //this.spellCheckScript = '/cgi-bin/spellchecker.pl';\r
+\r
+       // values used to keep track of what happened to a word\r
+       this.replWordFlag = "R";        // single replace\r
+       this.ignrWordFlag = "I";        // single ignore\r
+       this.replAllFlag = "RA";        // replace all occurances\r
+       this.ignrAllFlag = "IA";        // ignore all occurances\r
+       this.fromReplAll = "~RA";       // an occurance of a "replace all" word\r
+       this.fromIgnrAll = "~IA";       // an occurance of a "ignore all" word\r
+       // properties set at run time\r
+       this.wordFlags = new Array();\r
+       this.currentTextIndex = 0;\r
+       this.currentWordIndex = 0;\r
+       this.spellCheckerWin = null;\r
+       this.controlWin = null;\r
+       this.wordWin = null;\r
+       this.textArea = textObject;     // deprecated\r
+       this.textInputs = arguments;\r
+\r
+       // private methods\r
+       this._spellcheck = _spellcheck;\r
+       this._getSuggestions = _getSuggestions;\r
+       this._setAsIgnored = _setAsIgnored;\r
+       this._getTotalReplaced = _getTotalReplaced;\r
+       this._setWordText = _setWordText;\r
+       this._getFormInputs = _getFormInputs;\r
+\r
+       // public methods\r
+       this.openChecker = openChecker;\r
+       this.startCheck = startCheck;\r
+       this.checkTextBoxes = checkTextBoxes;\r
+       this.checkTextAreas = checkTextAreas;\r
+       this.spellCheckAll = spellCheckAll;\r
+       this.ignoreWord = ignoreWord;\r
+       this.ignoreAll = ignoreAll;\r
+       this.replaceWord = replaceWord;\r
+       this.replaceAll = replaceAll;\r
+       this.terminateSpell = terminateSpell;\r
+       this.undo = undo;\r
+\r
+       // set the current window's "speller" property to the instance of this class.\r
+       // this object can now be referenced by child windows/frames.\r
+       window.speller = this;\r
+}\r
+\r
+// call this method to check all text boxes (and only text boxes) in the HTML document\r
+function checkTextBoxes() {\r
+       this.textInputs = this._getFormInputs( "^text$" );\r
+       this.openChecker();\r
+}\r
+\r
+// call this method to check all textareas (and only textareas ) in the HTML document\r
+function checkTextAreas() {\r
+       this.textInputs = this._getFormInputs( "^textarea$" );\r
+       this.openChecker();\r
+}\r
+\r
+// call this method to check all text boxes and textareas in the HTML document\r
+function spellCheckAll() {\r
+       this.textInputs = this._getFormInputs( "^text(area)?$" );\r
+       this.openChecker();\r
+}\r
+\r
+// call this method to check text boxe(s) and/or textarea(s) that were passed in to the\r
+// object's constructor or to the textInputs property\r
+function openChecker() {\r
+       this.spellCheckerWin = window.open( this.popUpUrl, this.popUpName, this.popUpProps );\r
+       if( !this.spellCheckerWin.opener ) {\r
+               this.spellCheckerWin.opener = window;\r
+       }\r
+}\r
+\r
+function startCheck( wordWindowObj, controlWindowObj ) {\r
+\r
+       // set properties from args\r
+       this.wordWin = wordWindowObj;\r
+       this.controlWin = controlWindowObj;\r
+\r
+       // reset properties\r
+       this.wordWin.resetForm();\r
+       this.controlWin.resetForm();\r
+       this.currentTextIndex = 0;\r
+       this.currentWordIndex = 0;\r
+       // initialize the flags to an array - one element for each text input\r
+       this.wordFlags = new Array( this.wordWin.textInputs.length );\r
+       // each element will be an array that keeps track of each word in the text\r
+       for( var i=0; i<this.wordFlags.length; i++ ) {\r
+               this.wordFlags[i] = [];\r
+       }\r
+\r
+       // start\r
+       this._spellcheck();\r
+\r
+       return true;\r
+}\r
+\r
+function ignoreWord() {\r
+       var wi = this.currentWordIndex;\r
+       var ti = this.currentTextIndex;\r
+       if( !this.wordWin ) {\r
+               alert( 'Error: Word frame not available.' );\r
+               return false;\r
+       }\r
+       if( !this.wordWin.getTextVal( ti, wi )) {\r
+               alert( 'Error: "Not in dictionary" text is missing.' );\r
+               return false;\r
+       }\r
+       // set as ignored\r
+       if( this._setAsIgnored( ti, wi, this.ignrWordFlag )) {\r
+               this.currentWordIndex++;\r
+               this._spellcheck();\r
+       }\r
+       return true;\r
+}\r
+\r
+function ignoreAll() {\r
+       var wi = this.currentWordIndex;\r
+       var ti = this.currentTextIndex;\r
+       if( !this.wordWin ) {\r
+               alert( 'Error: Word frame not available.' );\r
+               return false;\r
+       }\r
+       // get the word that is currently being evaluated.\r
+       var s_word_to_repl = this.wordWin.getTextVal( ti, wi );\r
+       if( !s_word_to_repl ) {\r
+               alert( 'Error: "Not in dictionary" text is missing' );\r
+               return false;\r
+       }\r
+\r
+       // set this word as an "ignore all" word.\r
+       this._setAsIgnored( ti, wi, this.ignrAllFlag );\r
+\r
+       // loop through all the words after this word\r
+       for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {\r
+               for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {\r
+                       if(( i == ti && j > wi ) || i > ti ) {\r
+                               // future word: set as "from ignore all" if\r
+                               // 1) do not already have a flag and\r
+                               // 2) have the same value as current word\r
+                               if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )\r
+                               && ( !this.wordFlags[i][j] )) {\r
+                                       this._setAsIgnored( i, j, this.fromIgnrAll );\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       // finally, move on\r
+       this.currentWordIndex++;\r
+       this._spellcheck();\r
+       return true;\r
+}\r
+\r
+function replaceWord() {\r
+       var wi = this.currentWordIndex;\r
+       var ti = this.currentTextIndex;\r
+       if( !this.wordWin ) {\r
+               alert( 'Error: Word frame not available.' );\r
+               return false;\r
+       }\r
+       if( !this.wordWin.getTextVal( ti, wi )) {\r
+               alert( 'Error: "Not in dictionary" text is missing' );\r
+               return false;\r
+       }\r
+       if( !this.controlWin.replacementText ) {\r
+               return false ;\r
+       }\r
+       var txt = this.controlWin.replacementText;\r
+       if( txt.value ) {\r
+               var newspell = new String( txt.value );\r
+               if( this._setWordText( ti, wi, newspell, this.replWordFlag )) {\r
+                       this.currentWordIndex++;\r
+                       this._spellcheck();\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function replaceAll() {\r
+       var ti = this.currentTextIndex;\r
+       var wi = this.currentWordIndex;\r
+       if( !this.wordWin ) {\r
+               alert( 'Error: Word frame not available.' );\r
+               return false;\r
+       }\r
+       var s_word_to_repl = this.wordWin.getTextVal( ti, wi );\r
+       if( !s_word_to_repl ) {\r
+               alert( 'Error: "Not in dictionary" text is missing' );\r
+               return false;\r
+       }\r
+       var txt = this.controlWin.replacementText;\r
+       if( !txt.value ) return false;\r
+       var newspell = new String( txt.value );\r
+\r
+       // set this word as a "replace all" word.\r
+       this._setWordText( ti, wi, newspell, this.replAllFlag );\r
+\r
+       // loop through all the words after this word\r
+       for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {\r
+               for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {\r
+                       if(( i == ti && j > wi ) || i > ti ) {\r
+                               // future word: set word text to s_word_to_repl if\r
+                               // 1) do not already have a flag and\r
+                               // 2) have the same value as s_word_to_repl\r
+                               if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )\r
+                               && ( !this.wordFlags[i][j] )) {\r
+                                       this._setWordText( i, j, newspell, this.fromReplAll );\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       // finally, move on\r
+       this.currentWordIndex++;\r
+       this._spellcheck();\r
+       return true;\r
+}\r
+\r
+function terminateSpell() {\r
+       // called when we have reached the end of the spell checking.\r
+       var msg = "";           // by FredCK\r
+       var numrepl = this._getTotalReplaced();\r
+       if( numrepl == 0 ) {\r
+               // see if there were no misspellings to begin with\r
+               if( !this.wordWin ) {\r
+                       msg = "";\r
+               } else {\r
+                       if( this.wordWin.totalMisspellings() ) {\r
+//                             msg += "No words changed.";                     // by FredCK\r
+                               msg += FCKLang.DlgSpellNoChanges ;      // by FredCK\r
+                       } else {\r
+//                             msg += "No misspellings found.";        // by FredCK\r
+                               msg += FCKLang.DlgSpellNoMispell ;      // by FredCK\r
+                       }\r
+               }\r
+       } else if( numrepl == 1 ) {\r
+//             msg += "One word changed.";                     // by FredCK\r
+               msg += FCKLang.DlgSpellOneChange ;      // by FredCK\r
+       } else {\r
+//             msg += numrepl + " words changed.";     // by FredCK\r
+               msg += FCKLang.DlgSpellManyChanges.replace( /%1/g, numrepl ) ;\r
+       }\r
+       if( msg ) {\r
+//             msg += "\n";    // by FredCK\r
+               alert( msg );\r
+       }\r
+\r
+       if( numrepl > 0 ) {\r
+               // update the text field(s) on the opener window\r
+               for( var i = 0; i < this.textInputs.length; i++ ) {\r
+                       // this.textArea.value = this.wordWin.text;\r
+                       if( this.wordWin ) {\r
+                               if( this.wordWin.textInputs[i] ) {\r
+                                       this.textInputs[i].value = this.wordWin.textInputs[i];\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       // return back to the calling window\r
+//     this.spellCheckerWin.close();                                   // by FredCK\r
+       if ( typeof( this.OnFinished ) == 'function' )  // by FredCK\r
+               this.OnFinished(numrepl) ;                                      // by FredCK\r
+\r
+       return true;\r
+}\r
+\r
+function undo() {\r
+       // skip if this is the first word!\r
+       var ti = this.currentTextIndex;\r
+       var wi = this.currentWordIndex;\r
+\r
+       if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) {\r
+               this.wordWin.removeFocus( ti, wi );\r
+\r
+               // go back to the last word index that was acted upon\r
+               do {\r
+                       // if the current word index is zero then reset the seed\r
+                       if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) {\r
+                               this.currentTextIndex--;\r
+                               this.currentWordIndex = this.wordWin.totalWords( this.currentTextIndex )-1;\r
+                               if( this.currentWordIndex < 0 ) this.currentWordIndex = 0;\r
+                       } else {\r
+                               if( this.currentWordIndex > 0 ) {\r
+                                       this.currentWordIndex--;\r
+                               }\r
+                       }\r
+               } while (\r
+                       this.wordWin.totalWords( this.currentTextIndex ) == 0\r
+                       || this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll\r
+                       || this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll\r
+               );\r
+\r
+               var text_idx = this.currentTextIndex;\r
+               var idx = this.currentWordIndex;\r
+               var preReplSpell = this.wordWin.originalSpellings[text_idx][idx];\r
+\r
+               // if we got back to the first word then set the Undo button back to disabled\r
+               if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) {\r
+                       this.controlWin.disableUndo();\r
+               }\r
+\r
+               var i, j, origSpell ;\r
+               // examine what happened to this current word.\r
+               switch( this.wordFlags[text_idx][idx] ) {\r
+                       // replace all: go through this and all the future occurances of the word\r
+                       // and revert them all to the original spelling and clear their flags\r
+                       case this.replAllFlag :\r
+                               for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {\r
+                                       for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {\r
+                                               if(( i == text_idx && j >= idx ) || i > text_idx ) {\r
+                                                       origSpell = this.wordWin.originalSpellings[i][j];\r
+                                                       if( origSpell == preReplSpell ) {\r
+                                                               this._setWordText ( i, j, origSpell, undefined );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               break;\r
+\r
+                       // ignore all: go through all the future occurances of the word\r
+                       // and clear their flags\r
+                       case this.ignrAllFlag :\r
+                               for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {\r
+                                       for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {\r
+                                               if(( i == text_idx && j >= idx ) || i > text_idx ) {\r
+                                                       origSpell = this.wordWin.originalSpellings[i][j];\r
+                                                       if( origSpell == preReplSpell ) {\r
+                                                               this.wordFlags[i][j] = undefined;\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               break;\r
+\r
+                       // replace: revert the word to its original spelling\r
+                       case this.replWordFlag :\r
+                               this._setWordText ( text_idx, idx, preReplSpell, undefined );\r
+                               break;\r
+               }\r
+\r
+               // For all four cases, clear the wordFlag of this word. re-start the process\r
+               this.wordFlags[text_idx][idx] = undefined;\r
+               this._spellcheck();\r
+       }\r
+}\r
+\r
+function _spellcheck() {\r
+       var ww = this.wordWin;\r
+\r
+       // check if this is the last word in the current text element\r
+       if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) {\r
+               this.currentTextIndex++;\r
+               this.currentWordIndex = 0;\r
+               // keep going if we're not yet past the last text element\r
+               if( this.currentTextIndex < this.wordWin.textInputs.length ) {\r
+                       this._spellcheck();\r
+                       return;\r
+               } else {\r
+                       this.terminateSpell();\r
+                       return;\r
+               }\r
+       }\r
+\r
+       // if this is after the first one make sure the Undo button is enabled\r
+       if( this.currentWordIndex > 0 ) {\r
+               this.controlWin.enableUndo();\r
+       }\r
+\r
+       // skip the current word if it has already been worked on\r
+       if( this.wordFlags[this.currentTextIndex][this.currentWordIndex] ) {\r
+               // increment the global current word index and move on.\r
+               this.currentWordIndex++;\r
+               this._spellcheck();\r
+       } else {\r
+               var evalText = ww.getTextVal( this.currentTextIndex, this.currentWordIndex );\r
+               if( evalText ) {\r
+                       this.controlWin.evaluatedText.value = evalText;\r
+                       ww.setFocus( this.currentTextIndex, this.currentWordIndex );\r
+                       this._getSuggestions( this.currentTextIndex, this.currentWordIndex );\r
+               }\r
+       }\r
+}\r
+\r
+function _getSuggestions( text_num, word_num ) {\r
+       this.controlWin.clearSuggestions();\r
+       // add suggestion in list for each suggested word.\r
+       // get the array of suggested words out of the\r
+       // three-dimensional array containing all suggestions.\r
+       var a_suggests = this.wordWin.suggestions[text_num][word_num];\r
+       if( a_suggests ) {\r
+               // got an array of suggestions.\r
+               for( var ii = 0; ii < a_suggests.length; ii++ ) {\r
+                       this.controlWin.addSuggestion( a_suggests[ii] );\r
+               }\r
+       }\r
+       this.controlWin.selectDefaultSuggestion();\r
+}\r
+\r
+function _setAsIgnored( text_num, word_num, flag ) {\r
+       // set the UI\r
+       this.wordWin.removeFocus( text_num, word_num );\r
+       // do the bookkeeping\r
+       this.wordFlags[text_num][word_num] = flag;\r
+       return true;\r
+}\r
+\r
+function _getTotalReplaced() {\r
+       var i_replaced = 0;\r
+       for( var i = 0; i < this.wordFlags.length; i++ ) {\r
+               for( var j = 0; j < this.wordFlags[i].length; j++ ) {\r
+                       if(( this.wordFlags[i][j] == this.replWordFlag )\r
+                       || ( this.wordFlags[i][j] == this.replAllFlag )\r
+                       || ( this.wordFlags[i][j] == this.fromReplAll )) {\r
+                               i_replaced++;\r
+                       }\r
+               }\r
+       }\r
+       return i_replaced;\r
+}\r
+\r
+function _setWordText( text_num, word_num, newText, flag ) {\r
+       // set the UI and form inputs\r
+       this.wordWin.setText( text_num, word_num, newText );\r
+       // keep track of what happened to this word:\r
+       this.wordFlags[text_num][word_num] = flag;\r
+       return true;\r
+}\r
+\r
+function _getFormInputs( inputPattern ) {\r
+       var inputs = new Array();\r
+       for( var i = 0; i < document.forms.length; i++ ) {\r
+               for( var j = 0; j < document.forms[i].elements.length; j++ ) {\r
+                       if( document.forms[i].elements[j].type.match( inputPattern )) {\r
+                               inputs[inputs.length] = document.forms[i].elements[j];\r
+                       }\r
+               }\r
+       }\r
+       return inputs;\r
+}\r
+\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
new file mode 100644 (file)
index 0000000..cbcd7db
--- /dev/null
@@ -0,0 +1,71 @@
+\r
+<script>\r
+\r
+var wordWindow = null;\r
+var controlWindow = null;\r
+\r
+function init_spell( spellerWindow ) {\r
+\r
+       if( spellerWindow ) {\r
+               if( spellerWindow.windowType == "wordWindow" ) {\r
+                       wordWindow = spellerWindow;\r
+               } else if ( spellerWindow.windowType == "controlWindow" ) {\r
+                       controlWindow = spellerWindow;\r
+               }\r
+       }\r
+\r
+       if( controlWindow && wordWindow ) {\r
+               // populate the speller object and start it off!\r
+               var speller = opener.speller;\r
+               wordWindow.speller = speller;\r
+               speller.startCheck( wordWindow, controlWindow );\r
+       }\r
+}\r
+\r
+// encodeForPost\r
+function encodeForPost( str ) {\r
+       var s = new String( str );\r
+       s = encodeURIComponent( s );\r
+       // additionally encode single quotes to evade any PHP\r
+       // magic_quotes_gpc setting (it inserts escape characters and\r
+       // therefore skews the btye positions of misspelled words)\r
+       return s.replace( /\'/g, '%27' );\r
+}\r
+\r
+// post the text area data to the script that populates the speller\r
+function postWords() {\r
+       var bodyDoc = window.frames[0].document;\r
+       bodyDoc.open();\r
+       bodyDoc.write('<html>');\r
+       bodyDoc.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8">');\r
+       bodyDoc.write('<link rel="stylesheet" type="text/css" href="spellerStyle.css"/>');\r
+       if (opener) {\r
+               var speller = opener.speller;\r
+               bodyDoc.write('<body class="normalText" onLoad="document.forms[0].submit();">');\r
+               bodyDoc.write('<p>' + window.parent.FCKLang.DlgSpellProgress + '<\/p>');                // by FredCK\r
+               bodyDoc.write('<form action="'+speller.spellCheckScript+'" method="post">');\r
+               for( var i = 0; i < speller.textInputs.length; i++ ) {\r
+                       bodyDoc.write('<input type="hidden" name="textinputs[]" value="'+encodeForPost(speller.textInputs[i].value)+'">');\r
+               }\r
+               bodyDoc.write('<\/form>');\r
+               bodyDoc.write('<\/body>');\r
+       } else {\r
+               bodyDoc.write('<body class="normalText">');\r
+               bodyDoc.write('<p><b>This page cannot be displayed<\/b><\/p><p>The window was not opened from another window.<\/p>');\r
+               bodyDoc.write('<\/body>');\r
+       }\r
+       bodyDoc.write('<\/html>');\r
+       bodyDoc.close();\r
+}\r
+</script>\r
+\r
+<html>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<head>\r
+<title>Speller Pages</title>\r
+</head>\r
+<frameset rows="*,201" onLoad="postWords();">\r
+<frame src="blank.html">\r
+<frame src="controls.html">\r
+</frameset>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css
new file mode 100644 (file)
index 0000000..4df608d
--- /dev/null
@@ -0,0 +1,49 @@
+.blend {\r
+       font-family: courier new;\r
+       font-size: 10pt;\r
+       border: 0;\r
+       margin-bottom:-1;\r
+}\r
+.normalLabel {\r
+       font-size:8pt;\r
+}\r
+.normalText {\r
+       font-family:arial, helvetica, sans-serif;\r
+       font-size:10pt;\r
+       color:000000;\r
+       background-color:FFFFFF;\r
+}\r
+.plainText {\r
+       font-family: courier new, courier, monospace;\r
+       font-size: 10pt;\r
+       color:000000;\r
+       background-color:FFFFFF;\r
+}\r
+.controlWindowBody {\r
+       font-family:arial, helvetica, sans-serif;\r
+       font-size:8pt;\r
+       padding: 7px ;          /* by FredCK */\r
+       margin: 0px ;           /* by FredCK */\r
+       /* color:000000;                                by FredCK */\r
+       /* background-color:DADADA;             by FredCK */\r
+}\r
+.readonlyInput {\r
+       background-color:DADADA;\r
+       color:000000;\r
+       font-size:8pt;\r
+       width:392px;\r
+}\r
+.textDefault {\r
+       font-size:8pt;\r
+       width: 200px;\r
+}\r
+.buttonDefault {\r
+       width:90px;\r
+       height:22px;\r
+       font-size:8pt;\r
+}\r
+.suggSlct {\r
+       width:200px;\r
+       margin-top:2;\r
+       font-size:8pt;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js b/httemplate/elements/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
new file mode 100644 (file)
index 0000000..7990296
--- /dev/null
@@ -0,0 +1,272 @@
+////////////////////////////////////////////////////\r
+// wordWindow object\r
+////////////////////////////////////////////////////\r
+function wordWindow() {\r
+       // private properties\r
+       this._forms = [];\r
+\r
+       // private methods\r
+       this._getWordObject = _getWordObject;\r
+       //this._getSpellerObject = _getSpellerObject;\r
+       this._wordInputStr = _wordInputStr;\r
+       this._adjustIndexes = _adjustIndexes;\r
+       this._isWordChar = _isWordChar;\r
+       this._lastPos = _lastPos;\r
+\r
+       // public properties\r
+       this.wordChar = /[a-zA-Z]/;\r
+       this.windowType = "wordWindow";\r
+       this.originalSpellings = new Array();\r
+       this.suggestions = new Array();\r
+       this.checkWordBgColor = "pink";\r
+       this.normWordBgColor = "white";\r
+       this.text = "";\r
+       this.textInputs = new Array();\r
+       this.indexes = new Array();\r
+       //this.speller = this._getSpellerObject();\r
+\r
+       // public methods\r
+       this.resetForm = resetForm;\r
+       this.totalMisspellings = totalMisspellings;\r
+       this.totalWords = totalWords;\r
+       this.totalPreviousWords = totalPreviousWords;\r
+       //this.getTextObjectArray = getTextObjectArray;\r
+       this.getTextVal = getTextVal;\r
+       this.setFocus = setFocus;\r
+       this.removeFocus = removeFocus;\r
+       this.setText = setText;\r
+       //this.getTotalWords = getTotalWords;\r
+       this.writeBody = writeBody;\r
+       this.printForHtml = printForHtml;\r
+}\r
+\r
+function resetForm() {\r
+       if( this._forms ) {\r
+               for( var i = 0; i < this._forms.length; i++ ) {\r
+                       this._forms[i].reset();\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function totalMisspellings() {\r
+       var total_words = 0;\r
+       for( var i = 0; i < this.textInputs.length; i++ ) {\r
+               total_words += this.totalWords( i );\r
+       }\r
+       return total_words;\r
+}\r
+\r
+function totalWords( textIndex ) {\r
+       return this.originalSpellings[textIndex].length;\r
+}\r
+\r
+function totalPreviousWords( textIndex, wordIndex ) {\r
+       var total_words = 0;\r
+       for( var i = 0; i <= textIndex; i++ ) {\r
+               for( var j = 0; j < this.totalWords( i ); j++ ) {\r
+                       if( i == textIndex && j == wordIndex ) {\r
+                               break;\r
+                       } else {\r
+                               total_words++;\r
+                       }\r
+               }\r
+       }\r
+       return total_words;\r
+}\r
+\r
+//function getTextObjectArray() {\r
+//     return this._form.elements;\r
+//}\r
+\r
+function getTextVal( textIndex, wordIndex ) {\r
+       var word = this._getWordObject( textIndex, wordIndex );\r
+       if( word ) {\r
+               return word.value;\r
+       }\r
+}\r
+\r
+function setFocus( textIndex, wordIndex ) {\r
+       var word = this._getWordObject( textIndex, wordIndex );\r
+       if( word ) {\r
+               if( word.type == "text" ) {\r
+                       word.focus();\r
+                       word.style.backgroundColor = this.checkWordBgColor;\r
+               }\r
+       }\r
+}\r
+\r
+function removeFocus( textIndex, wordIndex ) {\r
+       var word = this._getWordObject( textIndex, wordIndex );\r
+       if( word ) {\r
+               if( word.type == "text" ) {\r
+                       word.blur();\r
+                       word.style.backgroundColor = this.normWordBgColor;\r
+               }\r
+       }\r
+}\r
+\r
+function setText( textIndex, wordIndex, newText ) {\r
+       var word = this._getWordObject( textIndex, wordIndex );\r
+       var beginStr;\r
+       var endStr;\r
+       if( word ) {\r
+               var pos = this.indexes[textIndex][wordIndex];\r
+               var oldText = word.value;\r
+               // update the text given the index of the string\r
+               beginStr = this.textInputs[textIndex].substring( 0, pos );\r
+               endStr = this.textInputs[textIndex].substring(\r
+                       pos + oldText.length,\r
+                       this.textInputs[textIndex].length\r
+               );\r
+               this.textInputs[textIndex] = beginStr + newText + endStr;\r
+\r
+               // adjust the indexes on the stack given the differences in\r
+               // length between the new word and old word.\r
+               var lengthDiff = newText.length - oldText.length;\r
+               this._adjustIndexes( textIndex, wordIndex, lengthDiff );\r
+\r
+               word.size = newText.length;\r
+               word.value = newText;\r
+               this.removeFocus( textIndex, wordIndex );\r
+       }\r
+}\r
+\r
+\r
+function writeBody() {\r
+       var d = window.document;\r
+       var is_html = false;\r
+\r
+       d.open();\r
+\r
+       // iterate through each text input.\r
+       for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {\r
+               var end_idx = 0;\r
+               var begin_idx = 0;\r
+               d.writeln( '<form name="textInput'+txtid+'">' );\r
+               var wordtxt = this.textInputs[txtid];\r
+               this.indexes[txtid] = [];\r
+\r
+               if( wordtxt ) {\r
+                       var orig = this.originalSpellings[txtid];\r
+                       if( !orig ) break;\r
+\r
+                       //!!! plain text, or HTML mode?\r
+                       d.writeln( '<div class="plainText">' );\r
+                       // iterate through each occurrence of a misspelled word.\r
+                       for( var i = 0; i < orig.length; i++ ) {\r
+                               // find the position of the current misspelled word,\r
+                               // starting at the last misspelled word.\r
+                               // and keep looking if it's a substring of another word\r
+                               do {\r
+                                       begin_idx = wordtxt.indexOf( orig[i], end_idx );\r
+                                       end_idx = begin_idx + orig[i].length;\r
+                                       // word not found? messed up!\r
+                                       if( begin_idx == -1 ) break;\r
+                                       // look at the characters immediately before and after\r
+                                       // the word. If they are word characters we'll keep looking.\r
+                                       var before_char = wordtxt.charAt( begin_idx - 1 );\r
+                                       var after_char = wordtxt.charAt( end_idx );\r
+                               } while (\r
+                                       this._isWordChar( before_char )\r
+                                       || this._isWordChar( after_char )\r
+                               );\r
+\r
+                               // keep track of its position in the original text.\r
+                               this.indexes[txtid][i] = begin_idx;\r
+\r
+                               // write out the characters before the current misspelled word\r
+                               for( var j = this._lastPos( txtid, i ); j < begin_idx; j++ ) {\r
+                                       // !!! html mode? make it html compatible\r
+                                       d.write( this.printForHtml( wordtxt.charAt( j )));\r
+                               }\r
+\r
+                               // write out the misspelled word.\r
+                               d.write( this._wordInputStr( orig[i] ));\r
+\r
+                               // if it's the last word, write out the rest of the text\r
+                               if( i == orig.length-1 ){\r
+                                       d.write( printForHtml( wordtxt.substr( end_idx )));\r
+                               }\r
+                       }\r
+\r
+                       d.writeln( '</div>' );\r
+\r
+               }\r
+               d.writeln( '</form>' );\r
+       }\r
+       //for ( var j = 0; j < d.forms.length; j++ ) {\r
+       //      alert( d.forms[j].name );\r
+       //      for( var k = 0; k < d.forms[j].elements.length; k++ ) {\r
+       //              alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );\r
+       //      }\r
+       //}\r
+\r
+       // set the _forms property\r
+       this._forms = d.forms;\r
+       d.close();\r
+}\r
+\r
+// return the character index in the full text after the last word we evaluated\r
+function _lastPos( txtid, idx ) {\r
+       if( idx > 0 )\r
+               return this.indexes[txtid][idx-1] + this.originalSpellings[txtid][idx-1].length;\r
+       else\r
+               return 0;\r
+}\r
+\r
+function printForHtml( n ) {\r
+       return n ;              // by FredCK\r
+/*\r
+       var htmlstr = n;\r
+       if( htmlstr.length == 1 ) {\r
+               // do simple case statement if it's just one character\r
+               switch ( n ) {\r
+                       case "\n":\r
+                               htmlstr = '<br/>';\r
+                               break;\r
+                       case "<":\r
+                               htmlstr = '&lt;';\r
+                               break;\r
+                       case ">":\r
+                               htmlstr = '&gt;';\r
+                               break;\r
+               }\r
+               return htmlstr;\r
+       } else {\r
+               htmlstr = htmlstr.replace( /</g, '&lt' );\r
+               htmlstr = htmlstr.replace( />/g, '&gt' );\r
+               htmlstr = htmlstr.replace( /\n/g, '<br/>' );\r
+               return htmlstr;\r
+       }\r
+*/\r
+}\r
+\r
+function _isWordChar( letter ) {\r
+       if( letter.search( this.wordChar ) == -1 ) {\r
+               return false;\r
+       } else {\r
+               return true;\r
+       }\r
+}\r
+\r
+function _getWordObject( textIndex, wordIndex ) {\r
+       if( this._forms[textIndex] ) {\r
+               if( this._forms[textIndex].elements[wordIndex] ) {\r
+                       return this._forms[textIndex].elements[wordIndex];\r
+               }\r
+       }\r
+       return null;\r
+}\r
+\r
+function _wordInputStr( word ) {\r
+       var str = '<input readonly ';\r
+       str += 'class="blend" type="text" value="' + word + '" size="' + word.length + '">';\r
+       return str;\r
+}\r
+\r
+function _adjustIndexes( textIndex, wordIndex, lengthDiff ) {\r
+       for( var i = wordIndex + 1; i < this.originalSpellings[textIndex].length; i++ ) {\r
+               this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff;\r
+       }\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_table.html b/httemplate/elements/fckeditor/editor/dialog/fck_table.html
new file mode 100644 (file)
index 0000000..6bb9d11
--- /dev/null
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Table dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Table Properties</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+// Gets the table if there is one selected.\r
+var table ;\r
+var e = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+if ( ( !e && document.location.search.substr(1) == 'Parent' ) || ( e && e.tagName != 'TABLE' ) )\r
+       e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;\r
+\r
+if ( e && e.tagName == "TABLE" )\r
+       table = e ;\r
+\r
+// Fired when the window loading process is finished. It sets the fields with the\r
+// actual values if a table is selected in the editor.\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if (table)\r
+       {\r
+               document.getElementById('txtRows').value    = table.rows.length ;\r
+               document.getElementById('txtColumns').value = table.rows[0].cells.length ;\r
+\r
+               // Gets the value from the Width or the Style attribute\r
+               var iWidth  = (table.style.width  ? table.style.width  : table.width ) ;\r
+               var iHeight = (table.style.height ? table.style.height : table.height ) ;\r
+\r
+               if (iWidth.indexOf('%') >= 0)                   // Percentual = %\r
+               {\r
+                       iWidth = parseInt( iWidth.substr(0,iWidth.length - 1), 10 ) ;\r
+                       document.getElementById('selWidthType').value = "percent" ;\r
+               }\r
+               else if (iWidth.indexOf('px') >= 0)             // Style Pixel = px\r
+               {                                                                                                                                                                                                                 //\r
+                       iWidth = iWidth.substr(0,iWidth.length - 2);\r
+                       document.getElementById('selWidthType').value = "pixels" ;\r
+               }\r
+\r
+               if (iHeight && iHeight.indexOf('px') >= 0)              // Style Pixel = px\r
+                       iHeight = iHeight.substr(0,iHeight.length - 2);\r
+\r
+               document.getElementById('txtWidth').value               = iWidth || '' ;\r
+               document.getElementById('txtHeight').value              = iHeight || '' ;\r
+               document.getElementById('txtBorder').value              = GetAttribute( table, 'border', '' ) ;\r
+               document.getElementById('selAlignment').value   = GetAttribute( table, 'align', '' ) ;\r
+               document.getElementById('txtCellPadding').value = GetAttribute( table, 'cellPadding', '' ) ;\r
+               document.getElementById('txtCellSpacing').value = GetAttribute( table, 'cellSpacing', '' ) ;\r
+               document.getElementById('txtSummary').value     = GetAttribute( table, 'summary', '' ) ;\r
+//             document.getElementById('cmbFontStyle').value   = table.className ;\r
+\r
+               if (table.caption) document.getElementById('txtCaption').value = table.caption.innerHTML ;\r
+\r
+               document.getElementById('txtRows').disabled    = true ;\r
+               document.getElementById('txtColumns').disabled = true ;\r
+       }\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+// Fired when the user press the OK button\r
+function Ok()\r
+{\r
+       var bExists = ( table != null ) ;\r
+\r
+       if ( ! bExists )\r
+               table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;\r
+\r
+       // Removes the Width and Height styles\r
+       if ( bExists && table.style.width )             table.style.width = null ; //.removeAttribute("width") ;\r
+       if ( bExists && table.style.height )    table.style.height = null ; //.removeAttribute("height") ;\r
+\r
+       var sWidth = GetE('txtWidth').value ;\r
+       if ( sWidth.length > 0 && GetE('selWidthType').value == 'percent' )\r
+               sWidth += '%' ;\r
+\r
+       SetAttribute( table, 'width'            , sWidth ) ;\r
+       SetAttribute( table, 'height'           , GetE('txtHeight').value ) ;\r
+       SetAttribute( table, 'border'           , GetE('txtBorder').value ) ;\r
+       SetAttribute( table, 'align'            , GetE('selAlignment').value ) ;\r
+       SetAttribute( table, 'cellPadding'      , GetE('txtCellPadding').value ) ;\r
+       SetAttribute( table, 'cellSpacing'      , GetE('txtCellSpacing').value ) ;\r
+       SetAttribute( table, 'summary'          , GetE('txtSummary').value ) ;\r
+\r
+       var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;\r
+\r
+       if ( document.getElementById('txtCaption').value != '')\r
+       {\r
+               if ( !eCaption )\r
+               {\r
+                       eCaption = oEditor.FCK.EditorDocument.createElement( 'CAPTION' ) ;\r
+                       table.insertBefore( eCaption, table.firstChild ) ;\r
+               }\r
+\r
+               eCaption.innerHTML = document.getElementById('txtCaption').value ;\r
+       }\r
+       else if ( bExists && eCaption )\r
+       {\r
+               if ( oEditor.FCKBrowserInfo.IsIE )\r
+                       eCaption.innerHTML = '' ;       // TODO: It causes an IE internal error if using removeChild or table.deleteCaption().\r
+               else\r
+                       eCaption.parentNode.removeChild( eCaption ) ;\r
+       }\r
+\r
+       if (! bExists)\r
+       {\r
+               var iRows = document.getElementById('txtRows').value ;\r
+               var iCols = document.getElementById('txtColumns').value ;\r
+\r
+               for ( var r = 0 ; r < iRows ; r++ )\r
+               {\r
+                       var oRow = table.insertRow(-1) ;\r
+                       for ( var c = 0 ; c < iCols ; c++ )\r
+                       {\r
+                               var oCell = oRow.insertCell(-1) ;\r
+                               if ( oEditor.FCKBrowserInfo.IsGeckoLike )\r
+                                       oCell.innerHTML = GECKO_BOGUS ;\r
+                               //oCell.innerHTML = "&nbsp;" ;\r
+                       }\r
+               }\r
+\r
+               oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+               oEditor.FCK.InsertElement( table ) ;\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table id="otable" cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">\r
+               <tr>\r
+                       <td>\r
+                               <table cellspacing="1" cellpadding="1" width="100%" border="0">\r
+                                       <tr>\r
+                                               <td valign="top">\r
+                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableRows">Rows</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtRows" type="text" maxlength="3" size="2" value="3" name="txtRows"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableColumns">Columns</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtColumns" type="text" maxlength="2" size="2" value="2" name="txtColumns"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableBorder">Border size</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtBorder" type="text" maxlength="2" size="2" value="1" name="txtBorder"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableAlign">Alignment</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<select id="selAlignment" name="selAlignment">\r
+                                                                                       <option fcklang="DlgTableAlignNotSet" value="" selected="selected">&lt;Not set&gt;</option>\r
+                                                                                       <option fcklang="DlgTableAlignLeft" value="left">Left</option>\r
+                                                                                       <option fcklang="DlgTableAlignCenter" value="center">Center</option>\r
+                                                                                       <option fcklang="DlgTableAlignRight" value="right">Right</option>\r
+                                                                               </select></td>\r
+                                                               </tr>\r
+                                                       </table>\r
+                                               </td>\r
+                                               <td>\r
+                                                       &nbsp;&nbsp;&nbsp;</td>\r
+                                               <td align="right" valign="top">\r
+                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableWidth">Width</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtWidth" type="text" maxlength="4" size="3" value="200" name="txtWidth"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<select id="selWidthType" name="selWidthType">\r
+                                                                                       <option fcklang="DlgTableWidthPx" value="pixels" selected="selected">pixels</option>\r
+                                                                                       <option fcklang="DlgTableWidthPc" value="percent">percent</option>\r
+                                                                               </select></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               <span fcklang="DlgTableHeight">Height</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<span fcklang="DlgTableWidthPx">pixels</span></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgTableCellSpace">Cell spacing</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1" name="txtCellSpacing"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgTableCellPad">Cell padding</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtCellPadding" type="text" maxlength="2" size="2" value="1" name="txtCellPadding"\r
+                                                                                       onkeypress="return IsDigit(event);" /></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                       </table>\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                               <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                       <tr>\r
+                                               <td nowrap="nowrap">\r
+                                                       <span fcklang="DlgTableCaption">Caption</span>:&nbsp;</td>\r
+                                               <td>\r
+                                                       &nbsp;</td>\r
+                                               <td width="100%" nowrap="nowrap">\r
+                                                       <input id="txtCaption" type="text" style="width: 100%" /></td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td nowrap="nowrap">\r
+                                                       <span fcklang="DlgTableSummary">Summary</span>:&nbsp;</td>\r
+                                               <td>\r
+                                                       &nbsp;</td>\r
+                                               <td width="100%" nowrap="nowrap">\r
+                                                       <input id="txtSummary" type="text" style="width: 100%" /></td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_tablecell.html b/httemplate/elements/fckeditor/editor/dialog/fck_tablecell.html
new file mode 100644 (file)
index 0000000..b7c536b
--- /dev/null
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Cell properties dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Table Cell Properties</title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+// Array of selected Cells\r
+var aCells = oEditor.FCKTableHandler.GetSelectedCells() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       SetStartupValue() ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+       window.parent.SetAutoSize( true ) ;\r
+}\r
+\r
+function SetStartupValue()\r
+{\r
+       if ( aCells.length > 0 )\r
+       {\r
+               var oCell = aCells[0] ;\r
+               var iWidth = GetAttribute( oCell, 'width' ) ;\r
+\r
+               if ( iWidth.indexOf && iWidth.indexOf( '%' ) >= 0 )\r
+               {\r
+                       iWidth = iWidth.substr( 0, iWidth.length - 1 ) ;\r
+                       GetE('selWidthType').value = 'percent' ;\r
+               }\r
+\r
+               if ( oCell.attributes['noWrap'] != null && oCell.attributes['noWrap'].specified )\r
+                       GetE('selWordWrap').value = !oCell.noWrap ;\r
+\r
+               GetE('txtWidth').value                  = iWidth ;\r
+               GetE('txtHeight').value                 = GetAttribute( oCell, 'height' ) ;\r
+               GetE('selHAlign').value                 = GetAttribute( oCell, 'align' ) ;\r
+               GetE('selVAlign').value                 = GetAttribute( oCell, 'vAlign' ) ;\r
+               GetE('txtRowSpan').value                = GetAttribute( oCell, 'rowSpan' ) ;\r
+               GetE('txtCollSpan').value               = GetAttribute( oCell, 'colSpan' ) ;\r
+               GetE('txtBackColor').value              = GetAttribute( oCell, 'bgColor' ) ;\r
+               GetE('txtBorderColor').value    = GetAttribute( oCell, 'borderColor' ) ;\r
+//             GetE('cmbFontStyle').value              = oCell.className ;\r
+       }\r
+}\r
+\r
+// Fired when the user press the OK button\r
+function Ok()\r
+{\r
+       for( i = 0 ; i < aCells.length ; i++ )\r
+       {\r
+               if ( GetE('txtWidth').value.length > 0 )\r
+                       aCells[i].width = GetE('txtWidth').value + ( GetE('selWidthType').value == 'percent' ? '%' : '') ;\r
+               else\r
+                       aCells[i].removeAttribute( 'width', 0 ) ;\r
+\r
+               if ( GetE('selWordWrap').value == 'false' )\r
+                       aCells[i].noWrap = true ;\r
+               else\r
+                       aCells[i].removeAttribute( 'noWrap' ) ;\r
+\r
+               SetAttribute( aCells[i], 'height'               , GetE('txtHeight').value ) ;\r
+               SetAttribute( aCells[i], 'align'                , GetE('selHAlign').value ) ;\r
+               SetAttribute( aCells[i], 'vAlign'               , GetE('selVAlign').value ) ;\r
+               SetAttribute( aCells[i], 'rowSpan'              , GetE('txtRowSpan').value ) ;\r
+               SetAttribute( aCells[i], 'colSpan'              , GetE('txtCollSpan').value ) ;\r
+               SetAttribute( aCells[i], 'bgColor'              , GetE('txtBackColor').value ) ;\r
+               SetAttribute( aCells[i], 'borderColor'  , GetE('txtBorderColor').value ) ;\r
+//             SetAttribute( aCells[i], 'className'    , GetE('cmbFontStyle').value ) ;\r
+       }\r
+\r
+       return true ;\r
+}\r
+\r
+function SelectBackColor( color )\r
+{\r
+       if ( color && color.length > 0 )\r
+               GetE('txtBackColor').value = color ;\r
+}\r
+\r
+function SelectBorderColor( color )\r
+{\r
+       if ( color && color.length > 0 )\r
+               GetE('txtBorderColor').value = color ;\r
+}\r
+\r
+function SelectColor( wich )\r
+{\r
+       oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', oEditor.FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, wich == 'Back' ? SelectBackColor : SelectBorderColor, window ) ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body scroll="no" style="overflow: hidden">\r
+       <table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">\r
+               <tr>\r
+                       <td>\r
+                               <table cellspacing="1" cellpadding="1" width="100%" border="0">\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellWidth">Width</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input onkeypress="return IsDigit(event);" id="txtWidth" type="text" maxlength="4"\r
+                                                                                       size="3" name="txtWidth" />&nbsp;<select id="selWidthType" name="selWidthType">\r
+                                                                                               <option fcklang="DlgCellWidthPx" value="pixels" selected="selected">pixels</option>\r
+                                                                                               <option fcklang="DlgCellWidthPc" value="percent">percent</option>\r
+                                                                                       </select></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellHeight">Height</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" />&nbsp;<span\r
+                                                                                       fcklang="DlgCellWidthPx">pixels</span></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellWordWrap">Word Wrap</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<select id="selWordWrap" name="selAlignment">\r
+                                                                                       <option fcklang="DlgCellWordWrapYes" value="true" selected="selected">Yes</option>\r
+                                                                                       <option fcklang="DlgCellWordWrapNo" value="false">No</option>\r
+                                                                               </select></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellHorAlign">Horizontal Alignment</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<select id="selHAlign" name="selAlignment">\r
+                                                                                       <option fcklang="DlgCellHorAlignNotSet" value="" selected>&lt;Not set&gt;</option>\r
+                                                                                       <option fcklang="DlgCellHorAlignLeft" value="left">Left</option>\r
+                                                                                       <option fcklang="DlgCellHorAlignCenter" value="center">Center</option>\r
+                                                                                       <option fcklang="DlgCellHorAlignRight" value="right">Right</option>\r
+                                                                               </select></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellVerAlign">Vertical Alignment</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<select id="selVAlign" name="selAlignment">\r
+                                                                                       <option fcklang="DlgCellVerAlignNotSet" value="" selected>&lt;Not set&gt;</option>\r
+                                                                                       <option fcklang="DlgCellVerAlignTop" value="top">Top</option>\r
+                                                                                       <option fcklang="DlgCellVerAlignMiddle" value="middle">Middle</option>\r
+                                                                                       <option fcklang="DlgCellVerAlignBottom" value="bottom">Bottom</option>\r
+                                                                                       <option fcklang="DlgCellVerAlignBaseline" value="baseline">Baseline</option>\r
+                                                                               </select></td>\r
+                                                               </tr>\r
+                                                       </table>\r
+                                               </td>\r
+                                               <td>\r
+                                                       &nbsp;&nbsp;&nbsp;</td>\r
+                                               <td align="right">\r
+                                                       <table cellspacing="0" cellpadding="0" border="0">\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellRowSpan">Rows Span</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;\r
+                                                                               <input onkeypress="return IsDigit(event);" id="txtRowSpan" type="text" maxlength="3" size="2"\r
+                                                                                       name="txtRows"></td>\r
+                                                                       <td>\r
+                                                                       </td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellCollSpan">Columns Span</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;\r
+                                                                               <input onkeypress="return IsDigit(event);" id="txtCollSpan" type="text" maxlength="2"\r
+                                                                                       size="2" name="txtColumns"></td>\r
+                                                                       <td>\r
+                                                                       </td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;</td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellBackColor">Background Color</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;\r
+                                                                               <input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>\r
+                                                               </tr>\r
+                                                               <tr>\r
+                                                                       <td nowrap="nowrap">\r
+                                                                               <span fcklang="DlgCellBorderColor">Border Color</span>:</td>\r
+                                                                       <td>\r
+                                                                               &nbsp;<input id="txtBorderColor" type="text" size="8" name="txtCellPadding" /></td>\r
+                                                                       <td>\r
+                                                                               &nbsp;\r
+                                                                               <input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )" /></td>\r
+                                                               </tr>\r
+                                                       </table>\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_template.html b/httemplate/elements/fckeditor/editor/dialog/fck_template.html
new file mode 100644 (file)
index 0000000..418e9df
--- /dev/null
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Template selection dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <style type="text/css">\r
+                       .TplList\r
+                       {\r
+                               border: #dcdcdc 2px solid;\r
+                               background-color: #ffffff;\r
+                               overflow: auto;\r
+                               width: 90%;\r
+                       }\r
+\r
+                       .TplItem\r
+                       {\r
+                               margin: 5px;\r
+                               padding: 7px;\r
+                               border: #eeeeee 1px solid;\r
+                       }\r
+\r
+                       .TplItem TABLE\r
+                       {\r
+                               display: inline;\r
+                       }\r
+\r
+                       .TplTitle\r
+                       {\r
+                               font-weight: bold;\r
+                       }\r
+               </style>\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor            = window.parent.InnerDialogLoaded() ;\r
+var FCK                        = oEditor.FCK ;\r
+var FCKLang            = oEditor.FCKLang ;\r
+var FCKConfig  = oEditor.FCKConfig ;\r
+\r
+window.onload = function()\r
+{\r
+       // Set the right box height (browser dependent).\r
+       GetE('eList').style.height = document.all ? '100%' : '295px' ;\r
+\r
+       // Translate the dialog box texts.\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ;\r
+\r
+       if ( FCKConfig.TemplateReplaceCheckbox !== false )\r
+               GetE('xReplaceBlock').style.display = '' ;\r
+\r
+       window.parent.SetAutoSize( true ) ;\r
+\r
+       LoadTemplatesXml() ;\r
+}\r
+\r
+function LoadTemplatesXml()\r
+{\r
+       var oTemplate ;\r
+\r
+       if ( !FCK._Templates )\r
+       {\r
+               GetE('eLoading').style.display = '' ;\r
+\r
+               // Create the Templates array.\r
+               FCK._Templates = new Array() ;\r
+\r
+               // Load the XML file.\r
+               var oXml = new oEditor.FCKXml() ;\r
+               oXml.LoadUrl( FCKConfig.TemplatesXmlPath ) ;\r
+\r
+               // Get the Images Base Path.\r
+               var oAtt = oXml.SelectSingleNode( 'Templates/@imagesBasePath' ) ;\r
+               var sImagesBasePath = oAtt ? oAtt.value : '' ;\r
+\r
+               // Get the "Template" nodes defined in the XML file.\r
+               var aTplNodes = oXml.SelectNodes( 'Templates/Template' ) ;\r
+\r
+               for ( var i = 0 ; i < aTplNodes.length ; i++ )\r
+               {\r
+                       var oNode = aTplNodes[i] ;\r
+\r
+                       oTemplate = new Object() ;\r
+\r
+                       var oPart ;\r
+\r
+                       // Get the Template Title.\r
+                       if ( (oPart = oNode.attributes.getNamedItem('title')) )\r
+                               oTemplate.Title = oPart.value ;\r
+                       else\r
+                               oTemplate.Title = 'Template ' + ( i + 1 ) ;\r
+\r
+                       // Get the Template Description.\r
+                       if ( (oPart = oXml.SelectSingleNode( 'Description', oNode )) )\r
+                               oTemplate.Description = oPart.text ? oPart.text : oPart.textContent ;\r
+\r
+                       // Get the Template Image.\r
+                       if ( (oPart = oNode.attributes.getNamedItem('image')) )\r
+                               oTemplate.Image = sImagesBasePath + oPart.value ;\r
+\r
+                       // Get the Template HTML.\r
+                       if ( (oPart = oXml.SelectSingleNode( 'Html', oNode )) )\r
+                               oTemplate.Html = oPart.text ? oPart.text : oPart.textContent ;\r
+                       else\r
+                       {\r
+                               alert( 'No HTML defined for template index ' + i + '. Please review the "' + FCKConfig.TemplatesXmlPath + '" file.' ) ;\r
+                               continue ;\r
+                       }\r
+\r
+                       FCK._Templates[ FCK._Templates.length ] = oTemplate ;\r
+               }\r
+\r
+               GetE('eLoading').style.display = 'none' ;\r
+       }\r
+\r
+       if ( FCK._Templates.length == 0 )\r
+               GetE('eEmpty').style.display = '' ;\r
+       else\r
+       {\r
+               for ( var j = 0 ; j < FCK._Templates.length ; j++ )\r
+               {\r
+                       oTemplate = FCK._Templates[j] ;\r
+\r
+                       var oItemDiv = GetE('eList').appendChild( document.createElement( 'DIV' ) ) ;\r
+                       oItemDiv.TplIndex = j ;\r
+                       oItemDiv.className = 'TplItem' ;\r
+\r
+                       // Build the inner HTML of our new item DIV.\r
+                       var sInner = '<table><tr>' ;\r
+\r
+                       if ( oTemplate.Image )\r
+                               sInner += '<td valign="top"><img src="' + oTemplate.Image + '"><\/td>' ;\r
+\r
+                       sInner += '<td valign="top"><div class="TplTitle">' + oTemplate.Title + '<\/div>' ;\r
+\r
+                       if ( oTemplate.Description )\r
+                               sInner += '<div>' + oTemplate.Description + '<\/div>' ;\r
+\r
+                       sInner += '<\/td><\/tr><\/table>' ;\r
+\r
+                       oItemDiv.innerHTML = sInner ;\r
+\r
+                       oItemDiv.onmouseover = ItemDiv_OnMouseOver ;\r
+                       oItemDiv.onmouseout = ItemDiv_OnMouseOut ;\r
+                       oItemDiv.onclick = ItemDiv_OnClick ;\r
+               }\r
+       }\r
+}\r
+\r
+function ItemDiv_OnMouseOver()\r
+{\r
+       this.className += ' PopupSelectionBox' ;\r
+}\r
+\r
+function ItemDiv_OnMouseOut()\r
+{\r
+       this.className = this.className.replace( /\s*PopupSelectionBox\s*/, '' ) ;\r
+}\r
+\r
+function ItemDiv_OnClick()\r
+{\r
+       SelectTemplate( this.TplIndex ) ;\r
+}\r
+\r
+function SelectTemplate( index )\r
+{\r
+       oEditor.FCKUndo.SaveUndoStep() ;\r
+\r
+       if ( GetE('xChkReplaceAll').checked )\r
+               FCK.SetHTML( FCK._Templates[index].Html ) ;\r
+       else\r
+               FCK.InsertHtml( FCK._Templates[index].Html ) ;\r
+\r
+       window.parent.Cancel( true ) ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table width="100%" style="height: 100%">\r
+               <tr>\r
+                       <td align="center">\r
+                               <span fcklang="DlgTemplatesSelMsg">Please select the template to open in the editor<br />\r
+                                       (the actual contents will be lost):</span>\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td height="100%" align="center">\r
+                               <div id="eList" align="left" class="TplList">\r
+                                       <div id="eLoading" align="center" style="display: none">\r
+                                               <br />\r
+                                               <span fcklang="DlgTemplatesLoading">Loading templates list. Please wait...</span>\r
+                                       </div>\r
+                                       <div id="eEmpty" align="center" style="display: none">\r
+                                               <br />\r
+                                               <span fcklang="DlgTemplatesNoTpl">(No templates defined)</span>\r
+                                       </div>\r
+                               </div>\r
+                       </td>\r
+               </tr>\r
+               <tr id="xReplaceBlock" style="display: none">\r
+                       <td>\r
+                               <table cellpadding="0" cellspacing="0">\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <input id="xChkReplaceAll" type="checkbox" /></td>\r
+                                               <td>\r
+                                                       &nbsp;</td>\r
+                                               <td>\r
+                                                       <label for="xChkReplaceAll" fcklang="DlgTemplatesReplace">\r
+                                                               Replace actual contents</label></td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template1.gif b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template1.gif
new file mode 100644 (file)
index 0000000..efdabbe
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template1.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template2.gif b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template2.gif
new file mode 100644 (file)
index 0000000..d1cebb3
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template2.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template3.gif b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template3.gif
new file mode 100644 (file)
index 0000000..db41cb4
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/dialog/fck_template/images/template3.gif differ
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_textarea.html b/httemplate/elements/fckeditor/editor/dialog/fck_textarea.html
new file mode 100644 (file)
index 0000000..b7de33a
--- /dev/null
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Text Area dialog window.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Text Area Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+               <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName == 'TEXTAREA' )\r
+       {\r
+               GetE('txtName').value           = oActiveEl.name ;\r
+               GetE('txtCols').value           = GetAttribute( oActiveEl, 'cols' ) ;\r
+               GetE('txtRows').value           = GetAttribute( oActiveEl, 'rows' ) ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'TEXTAREA' ) ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       oActiveEl.name = GetE('txtName').value ;\r
+       SetAttribute( oActiveEl, 'cols', GetE('txtCols').value ) ;\r
+       SetAttribute( oActiveEl, 'rows', GetE('txtRows').value ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body style='OVERFLOW: hidden' scroll='no'>\r
+               <table height="100%" width="100%">\r
+                       <tr>\r
+                               <td align="center">\r
+                                       <table border="0" cellpadding="0" cellspacing="0" width="80%">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="DlgTextareaName">Name</span><br>\r
+                                                               <input type="text" id="txtName" style="WIDTH: 100%">\r
+                                                               <span fckLang="DlgTextareaCols">Collumns</span><br>\r
+                                                               <input id="txtCols" type="text" size="5">\r
+                                                               <br>\r
+                                                               <span fckLang="DlgTextareaRows">Rows</span><br>\r
+                                                               <input id="txtRows" type="text" size="5">\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/dialog/fck_textfield.html b/httemplate/elements/fckeditor/editor/dialog/fck_textfield.html
new file mode 100644 (file)
index 0000000..7b4c8ef
--- /dev/null
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Text field dialog window.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title></title>\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta content="noindex, nofollow" name="robots" />\r
+       <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
+       <script type="text/javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+\r
+// Gets the document DOM\r
+var oDOM = oEditor.FCK.EditorDocument ;\r
+\r
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+window.onload = function()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage(document) ;\r
+\r
+       if ( oActiveEl && oActiveEl.tagName == 'INPUT' && ( oActiveEl.type == 'text' || oActiveEl.type == 'password' ) )\r
+       {\r
+               GetE('txtName').value   = oActiveEl.name ;\r
+               GetE('txtValue').value  = oActiveEl.value ;\r
+               GetE('txtSize').value   = GetAttribute( oActiveEl, 'size' ) ;\r
+               GetE('txtMax').value    = GetAttribute( oActiveEl, 'maxLength' ) ;\r
+               GetE('txtType').value   = oActiveEl.type ;\r
+\r
+               GetE('txtType').disabled = true ;\r
+       }\r
+       else\r
+               oActiveEl = null ;\r
+\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( isNaN( GetE('txtMax').value ) || GetE('txtMax').value < 0 )\r
+       {\r
+               alert( "Maximum characters must be a positive number." ) ;\r
+               GetE('txtMax').focus() ;\r
+               return false ;\r
+       }\r
+       else if( isNaN( GetE('txtSize').value ) || GetE('txtSize').value < 0 )\r
+       {\r
+               alert( "Width must be a positive number." ) ;\r
+               GetE('txtSize').focus() ;\r
+               return false ;\r
+       }\r
+\r
+       if ( !oActiveEl )\r
+       {\r
+               oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;\r
+               oActiveEl.type = GetE('txtType').value ;\r
+               oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;\r
+       }\r
+\r
+       oActiveEl.name = GetE('txtName').value ;\r
+       SetAttribute( oActiveEl, 'value'        , GetE('txtValue').value ) ;\r
+       SetAttribute( oActiveEl, 'size'         , GetE('txtSize').value ) ;\r
+       SetAttribute( oActiveEl, 'maxlength', GetE('txtMax').value ) ;\r
+\r
+       return true ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body style="overflow: hidden">\r
+       <table width="100%" style="height: 100%">\r
+               <tr>\r
+                       <td align="center">\r
+                               <table cellspacing="0" cellpadding="0" border="0">\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgTextName">Name</span><br />\r
+                                                       <input id="txtName" type="text" size="20" />\r
+                                               </td>\r
+                                               <td>\r
+                                               </td>\r
+                                               <td>\r
+                                                       <span fcklang="DlgTextValue">Value</span><br />\r
+                                                       <input id="txtValue" type="text" size="25" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgTextCharWidth">Character Width</span><br />\r
+                                                       <input id="txtSize" type="text" size="5" />\r
+                                               </td>\r
+                                               <td>\r
+                                               </td>\r
+                                               <td>\r
+                                                       <span fcklang="DlgTextMaxChars">Maximum Characters</span><br />\r
+                                                       <input id="txtMax" type="text" size="5" />\r
+                                               </td>\r
+                                       </tr>\r
+                                       <tr>\r
+                                               <td>\r
+                                                       <span fcklang="DlgTextType">Type</span><br />\r
+                                                       <select id="txtType">\r
+                                                               <option value="text" selected="selected" fcklang="DlgTextTypeText">Text</option>\r
+                                                               <option value="password" fcklang="DlgTextTypePass">Password</option>\r
+                                                       </select>\r
+                                               </td>\r
+                                               <td>\r
+                                                       &nbsp;</td>\r
+                                               <td>\r
+                                               </td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/fckdebug.html b/httemplate/elements/fckeditor/editor/fckdebug.html
new file mode 100644 (file)
index 0000000..db99d60
--- /dev/null
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the Debug window.\r
+ * It automatically popups if the Debug = true in the configuration file.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>FCKeditor Debug Window</title>\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <script type="text/javascript">\r
+\r
+var oWindow ;\r
+var oDiv ;\r
+\r
+if ( !window.FCKMessages )\r
+       window.FCKMessages = new Array() ;\r
+\r
+window.onload = function()\r
+{\r
+       oWindow = document.getElementById('xOutput').contentWindow ;\r
+       oWindow.document.open() ;\r
+       oWindow.document.write( '<div id="divMsg"><\/div>' ) ;\r
+       oWindow.document.close() ;\r
+       oDiv    = oWindow.document.getElementById('divMsg') ;\r
+}\r
+\r
+function Output( message, color, noParse )\r
+{\r
+       if ( !noParse && message != null && isNaN( message ) )\r
+               message = message.replace(/</g, "&lt;") ;\r
+\r
+       if ( color )\r
+               message = '<font color="' + color + '">' + message + '<\/font>' ;\r
+\r
+       window.FCKMessages[ window.FCKMessages.length ] = message ;\r
+       StartTimer() ;\r
+}\r
+\r
+function OutputObject( anyObject, color )\r
+{\r
+       var message ;\r
+\r
+       if ( anyObject != null )\r
+       {\r
+               message = 'Properties of: ' + anyObject + '</b><blockquote>' ;\r
+\r
+               for (var prop in anyObject)\r
+               {\r
+                       try\r
+                       {\r
+                               var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ;\r
+                               message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ;\r
+                       }\r
+                       catch (e)\r
+                       {\r
+                               try\r
+                               {\r
+                                       message += '<b>' + prop + '</b> : [' + typeof( anyObject[ prop ] ) + ']<br>' ;\r
+                               }\r
+                               catch (e)\r
+                               {\r
+                                       message += '<b>' + prop + '</b> : [-error-]<br>' ;\r
+                               }\r
+                       }\r
+               }\r
+\r
+               message += '</blockquote><b>' ;\r
+       } else\r
+               message = 'OutputObject : Object is "null".' ;\r
+\r
+       Output( message, color, true ) ;\r
+}\r
+\r
+function StartTimer()\r
+{\r
+       window.setTimeout( 'CheckMessages()', 100 ) ;\r
+}\r
+\r
+function CheckMessages()\r
+{\r
+       if ( window.FCKMessages.length > 0 )\r
+       {\r
+               // Get the first item in the queue\r
+               var sMessage = window.FCKMessages[0] ;\r
+\r
+               // Removes the first item from the queue\r
+               var oTempArray = new Array() ;\r
+               for ( i = 1 ; i < window.FCKMessages.length ; i++ )\r
+                       oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;\r
+               window.FCKMessages = oTempArray ;\r
+\r
+               var d = new Date() ;\r
+               var sTime =\r
+                       ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +\r
+                       ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +\r
+                       ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +\r
+                       ( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;\r
+\r
+               var oMsgDiv = oWindow.document.createElement( 'div' ) ;\r
+               oMsgDiv.innerHTML = sTime + ': <b>' + sMessage + '<\/b>' ;\r
+               oDiv.appendChild( oMsgDiv ) ;\r
+               oMsgDiv.scrollIntoView() ;\r
+       }\r
+}\r
+\r
+function Clear()\r
+{\r
+       oDiv.innerHTML = '' ;\r
+}\r
+       </script>\r
+</head>\r
+<body style="margin: 10px">\r
+       <table style="height: 100%" cellspacing="5" cellpadding="0" width="100%" border="0">\r
+               <tr>\r
+                       <td>\r
+                               <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                       <tr>\r
+                                               <td style="font-weight: bold; font-size: 1.2em;">\r
+                                                       FCKeditor Debug Window</td>\r
+                                               <td align="right">\r
+                                                       <input type="button" value="Clear" onclick="Clear();" /></td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+               <tr style="height: 100%">\r
+                       <td style="border: #696969 1px solid">\r
+                               <iframe id="xOutput" width="100%" height="100%" scrolling="auto" src="javascript:void(0)"\r
+                                       frameborder="0"></iframe>\r
+                       </td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/fckdialog.html b/httemplate/elements/fckeditor/editor/fckdialog.html
new file mode 100644 (file)
index 0000000..7f26822
--- /dev/null
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page is used by all dialog box as the container.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+       <head>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+               <meta name="robots" content="noindex, nofollow" />\r
+               <script type="text/javascript">\r
+\r
+// On some Gecko browsers (probably over slow connections) the\r
+// "dialogArguments" are not set so we must get it from the opener window.\r
+if ( !window.dialogArguments )\r
+       window.dialogArguments = window.opener.FCKLastDialogInfo ;\r
+\r
+// Sets the Skin CSS\r
+document.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;\r
+\r
+// Sets the language direction.\r
+window.document.dir = window.dialogArguments.Editor.FCKLang.Dir ;\r
+\r
+var sTitle = window.dialogArguments.Title ;\r
+document.write( '<title>' + sTitle + '<\/title>' ) ;\r
+\r
+function LoadInnerDialog()\r
+{\r
+       if ( window.onresize )\r
+               window.onresize() ;\r
+\r
+       // First of all, translate the dialog box contents.\r
+       window.dialogArguments.Editor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       window.frames["frmMain"].document.location.href = window.dialogArguments.Page ;\r
+}\r
+\r
+function InnerDialogLoaded()\r
+{\r
+       var oInnerDoc = document.getElementById('frmMain').contentWindow.document ;\r
+\r
+       // Set the language direction.\r
+       oInnerDoc.dir = window.dialogArguments.Editor.FCKLang.Dir ;\r
+\r
+       // Sets the Skin CSS.\r
+       oInnerDoc.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;\r
+\r
+       SetOnKeyDown( oInnerDoc ) ;\r
+       DisableContextMenu( oInnerDoc ) ;\r
+\r
+       return window.dialogArguments.Editor ;\r
+}\r
+\r
+function SetOkButton( showIt )\r
+{\r
+       document.getElementById('btnOk').style.visibility = ( showIt ? '' : 'hidden' ) ;\r
+}\r
+\r
+var bAutoSize = false ;\r
+\r
+function SetAutoSize( autoSize )\r
+{\r
+       bAutoSize = autoSize ;\r
+       RefreshSize() ;\r
+}\r
+\r
+function RefreshSize()\r
+{\r
+       if ( bAutoSize )\r
+       {\r
+               var oInnerDoc = document.getElementById('frmMain').contentWindow.document ;\r
+\r
+               var iFrameHeight ;\r
+               if ( document.all )\r
+                       iFrameHeight = oInnerDoc.body.offsetHeight ;\r
+               else\r
+                       iFrameHeight = document.getElementById('frmMain').contentWindow.innerHeight ;\r
+\r
+               var iInnerHeight = oInnerDoc.body.scrollHeight ;\r
+\r
+               var iDiff = iInnerHeight - iFrameHeight ;\r
+\r
+               if ( iDiff > 0 )\r
+               {\r
+                       if ( document.all )\r
+                               window.dialogHeight = ( parseInt( window.dialogHeight, 10 ) + iDiff ) + 'px' ;\r
+                       else\r
+                               window.resizeBy( 0, iDiff ) ;\r
+               }\r
+       }\r
+}\r
+\r
+function Ok()\r
+{\r
+       if ( window.frames["frmMain"].Ok && window.frames["frmMain"].Ok() )\r
+               Cancel() ;\r
+}\r
+\r
+function Cancel( dontFireChange )\r
+{\r
+       if ( !dontFireChange )\r
+       {\r
+               // All dialog windows, by default, will fire the "OnSelectionChange"\r
+               // event, no matter the Ok or Cancel button has been pressed.\r
+               window.dialogArguments.Editor.FCK.Events.FireEvent( 'OnSelectionChange' ) ;\r
+       }\r
+       window.close() ;\r
+}\r
+\r
+// Object that holds all available tabs.\r
+var oTabs = new Object() ;\r
+\r
+function TabDiv_OnClick()\r
+{\r
+       SetSelectedTab( this.TabCode ) ;\r
+}\r
+\r
+function AddTab( tabCode, tabText, startHidden )\r
+{\r
+       if ( typeof( oTabs[ tabCode ] ) != 'undefined' )\r
+               return ;\r
+\r
+       var eTabsRow = document.getElementById( 'Tabs' ) ;\r
+\r
+       var oCell = eTabsRow.insertCell(  eTabsRow.cells.length - 1 ) ;\r
+       oCell.noWrap = true ;\r
+\r
+       var oDiv = document.createElement( 'DIV' ) ;\r
+       oDiv.className = 'PopupTab' ;\r
+       oDiv.innerHTML = tabText ;\r
+       oDiv.TabCode = tabCode ;\r
+       oDiv.onclick = TabDiv_OnClick ;\r
+\r
+       if ( startHidden )\r
+               oDiv.style.display = 'none' ;\r
+\r
+       eTabsRow = document.getElementById( 'TabsRow' ) ;\r
+\r
+       oCell.appendChild( oDiv ) ;\r
+\r
+       if ( eTabsRow.style.display == 'none' )\r
+       {\r
+               var eTitleArea = document.getElementById( 'TitleArea' ) ;\r
+               eTitleArea.className = 'PopupTitle' ;\r
+\r
+               oDiv.className = 'PopupTabSelected' ;\r
+               eTabsRow.style.display = '' ;\r
+\r
+               if ( ! window.dialogArguments.Editor.FCKBrowserInfo.IsIE )\r
+                       window.onresize() ;\r
+       }\r
+\r
+       oTabs[ tabCode ] = oDiv ;\r
+}\r
+\r
+function SetSelectedTab( tabCode )\r
+{\r
+       for ( var sCode in oTabs )\r
+       {\r
+               if ( sCode == tabCode )\r
+                       oTabs[sCode].className = 'PopupTabSelected' ;\r
+               else\r
+                       oTabs[sCode].className = 'PopupTab' ;\r
+       }\r
+\r
+       if ( typeof( window.frames["frmMain"].OnDialogTabChange ) == 'function' )\r
+               window.frames["frmMain"].OnDialogTabChange( tabCode ) ;\r
+}\r
+\r
+function SetTabVisibility( tabCode, isVisible )\r
+{\r
+       var oTab = oTabs[ tabCode ] ;\r
+       oTab.style.display = isVisible ? '' : 'none' ;\r
+\r
+       if ( ! isVisible && oTab.className == 'PopupTabSelected' )\r
+       {\r
+               for ( var sCode in oTabs )\r
+               {\r
+                       if ( oTabs[sCode].style.display != 'none' )\r
+                       {\r
+                               SetSelectedTab( sCode ) ;\r
+                               break ;\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function SetOnKeyDown( targetDocument )\r
+{\r
+       targetDocument.onkeydown = function ( e )\r
+       {\r
+               e = e || event || this.parentWindow.event ;\r
+               switch ( e.keyCode )\r
+               {\r
+                       case 13 :               // ENTER\r
+                               var oTarget = e.srcElement || e.target ;\r
+                               if ( oTarget.tagName == 'TEXTAREA' )\r
+                                       return true ;\r
+                               Ok() ;\r
+                               return false ;\r
+                       case 27 :               // ESC\r
+                               Cancel() ;\r
+                               return false ;\r
+                               break ;\r
+               }\r
+               return true ;\r
+       }\r
+}\r
+SetOnKeyDown( document ) ;\r
+\r
+function DisableContextMenu( targetDocument )\r
+{\r
+       if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE ) return ;\r
+\r
+       // Disable Right-Click\r
+       var oOnContextMenu = function( e )\r
+       {\r
+               var sTagName = e.target.tagName ;\r
+               if ( ! ( ( sTagName == "INPUT" && e.target.type == "text" ) || sTagName == "TEXTAREA" ) )\r
+                       e.preventDefault() ;\r
+       }\r
+       targetDocument.addEventListener( 'contextmenu', oOnContextMenu, true ) ;\r
+}\r
+DisableContextMenu( document ) ;\r
+\r
+if ( ! window.dialogArguments.Editor.FCKBrowserInfo.IsIE )\r
+{\r
+       window.onresize = function()\r
+       {\r
+               var oFrame = document.getElementById("frmMain") ;\r
+\r
+               if ( ! oFrame )\r
+               return ;\r
+\r
+               oFrame.height = 0 ;\r
+\r
+               var oCell = document.getElementById("FrameCell") ;\r
+               var iHeight = oCell.offsetHeight ;\r
+\r
+               oFrame.height = iHeight - 2 ;\r
+       }\r
+}\r
+\r
+if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE )\r
+{\r
+       function Window_OnBeforeUnload()\r
+       {\r
+               for ( var t in oTabs )\r
+                       oTabs[t] = null ;\r
+\r
+               window.dialogArguments.Editor = null ;\r
+       }\r
+       window.attachEvent( "onbeforeunload", Window_OnBeforeUnload ) ;\r
+}\r
+\r
+function Window_OnClose()\r
+{\r
+       window.dialogArguments.Editor.FCKFocusManager.Unlock() ;\r
+}\r
+\r
+if ( window.addEventListener )\r
+       window.addEventListener( 'unload', Window_OnClose, false ) ;\r
+\r
+               </script>\r
+       </head>\r
+       <body onload="LoadInnerDialog();" class="PopupBody">\r
+               <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                       <tr>\r
+                               <td id="TitleArea" class="PopupTitle PopupTitleBorder">\r
+                                       <script type="text/javascript">\r
+document.write( sTitle ) ;\r
+                                       </script>\r
+                               </td>\r
+                       </tr>\r
+                       <tr id="TabsRow" style="DISPLAY: none">\r
+                               <td class="PopupTabArea">\r
+                                       <table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+                                               <tr id="Tabs" onselectstart="return false;">\r
+                                                       <td class="PopupTabEmptyArea">&nbsp;</td>\r
+                                                       <td class="PopupTabEmptyArea" width="100%">&nbsp;</td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td id="FrameCell" height="100%" valign="top">\r
+                                       <iframe id="frmMain" src="javascript:void(0)" name="frmMain" frameborder="0" height="100%" width="100%" scrolling="auto">\r
+                                       </iframe>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td class="PopupButtons">\r
+                                       <table border="0" cellpadding="0" cellspacing="0">\r
+                                               <tr>\r
+                                                       <td width="100%">&nbsp;</td>\r
+                                                       <td nowrap="nowrap">\r
+                                                               <input id="btnOk" style="VISIBILITY: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" />\r
+                                                               &nbsp; \r
+                                                               <input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/fckeditor.html b/httemplate/elements/fckeditor/editor/fckeditor.html
new file mode 100644 (file)
index 0000000..25ad37e
--- /dev/null
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Main page that holds the editor.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>FCKeditor</title>\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <meta http-equiv="Cache-Control" content="public" />\r
+       <script type="text/javascript">\r
+\r
+// Instead of loading scripts and CSSs using inline tags, all scripts are\r
+// loaded by code. In this way we can guarantee the correct processing order,\r
+// otherwise external scripts and inline scripts could be executed in an\r
+// unwanted order (IE).\r
+\r
+function LoadScript( url )\r
+{\r
+       document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/scr' + 'ipt>' ) ;\r
+}\r
+\r
+function LoadCss( url )\r
+{\r
+       document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;\r
+}\r
+\r
+// Main editor scripts.\r
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;\r
+\r
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;\r
+\r
+// Base configuration file.\r
+LoadScript( '../fckconfig.js' ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+if ( FCKBrowserInfo.IsIE )\r
+{\r
+       // Remove IE mouse flickering.\r
+       try\r
+       {\r
+               document.execCommand( 'BackgroundImageCache', false, true ) ;\r
+       }\r
+       catch (e)\r
+       {\r
+               // We have been reported about loading problems caused by the above\r
+               // line. For safety, let's just ignore errors.\r
+       }\r
+\r
+       // Create the default cleanup object used by the editor.\r
+       FCK.IECleanup = new FCKIECleanup( window ) ;\r
+       FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;\r
+       FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;\r
+}\r
+\r
+// The config hidden field is processed immediately, because\r
+// CustomConfigurationsPath may be set in the page.\r
+FCKConfig.ProcessHiddenField() ;\r
+\r
+// Load the custom configurations file (if defined).\r
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )\r
+       LoadScript( FCKConfig.CustomConfigurationsPath ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Load configurations defined at page level.\r
+FCKConfig_LoadPageConfig() ;\r
+\r
+FCKConfig_PreProcess() ;\r
+\r
+// Load the active skin CSS.\r
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;\r
+\r
+// Load the language file.\r
+FCKLanguageManager.Initialize() ;\r
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Initialize the editing area context menu.\r
+FCK_ContextMenu_Init() ;\r
+\r
+FCKPlugins.Load() ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Set the editor interface direction.\r
+window.document.dir = FCKLang.Dir ;\r
+\r
+// Activate pasting operations.\r
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )\r
+       FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+window.onload = function()\r
+{\r
+       InitializeAPI() ;\r
+\r
+       if ( FCKBrowserInfo.IsIE )\r
+               FCK_PreloadImages() ;\r
+       else\r
+               LoadToolbarSetup() ;\r
+}\r
+\r
+function LoadToolbarSetup()\r
+{\r
+       FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;\r
+}\r
+\r
+function LoadToolbar()\r
+{\r
+       var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;\r
+\r
+       if ( oToolbarSet.IsLoaded )\r
+               StartEditor() ;\r
+       else\r
+       {\r
+               oToolbarSet.OnLoad = StartEditor ;\r
+               oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;\r
+       }\r
+}\r
+\r
+function StartEditor()\r
+{\r
+       // Remove the onload listener.\r
+       FCK.ToolbarSet.OnLoad = null ;\r
+\r
+       FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;\r
+\r
+       FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;\r
+\r
+       // Start the editor.\r
+       FCK.StartEditor() ;\r
+}\r
+\r
+function WaitForActive( editorInstance, newStatus )\r
+{\r
+       if ( newStatus == FCK_STATUS_ACTIVE )\r
+       {\r
+               if ( FCKBrowserInfo.IsGecko )\r
+                       FCKTools.RunFunction( window.onresize ) ;\r
+\r
+               _AttachFormSubmitToAPI() ;\r
+\r
+               FCK.SetStatus( FCK_STATUS_COMPLETE ) ;\r
+\r
+               // Call the special "FCKeditor_OnComplete" function that should be present in\r
+               // the HTML page where the editor is located.\r
+               if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )\r
+                       window.parent.FCKeditor_OnComplete( FCK ) ;\r
+       }\r
+}\r
+\r
+// Gecko browsers doens't calculate well that IFRAME size so we must\r
+// recalculate it every time the window size changes.\r
+if ( FCKBrowserInfo.IsGecko )\r
+{\r
+       function Window_OnResize()\r
+       {\r
+               if ( FCKBrowserInfo.IsOpera )\r
+                       return ;\r
+\r
+               var oCell = document.getElementById( 'xEditingArea' ) ;\r
+\r
+               var eInnerElement = oCell.firstChild ;\r
+               if ( eInnerElement )\r
+               {\r
+                       eInnerElement.style.height = 0 ;\r
+                       eInnerElement.style.height = oCell.scrollHeight - 2 ;\r
+               }\r
+       }\r
+       window.onresize = Window_OnResize ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body>\r
+       <table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">\r
+               <tr id="xToolbarRow" style="display: none">\r
+                       <td id="xToolbarSpace" style="overflow: hidden">\r
+                               <table width="100%" cellpadding="0" cellspacing="0">\r
+                                       <tr id="xCollapsed" style="display: none">\r
+                                               <td id="xExpandHandle" class="TB_Expand" colspan="3">\r
+                                                       <img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>\r
+                                       </tr>\r
+                                       <tr id="xExpanded" style="display: none">\r
+                                               <td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>\r
+                                               <td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">\r
+                                                       <img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>\r
+                                               <td id="xToolbar" class="TB_ToolbarSet"></td>\r
+                                               <td class="TB_SideBorder" style="width: 1px"></td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td id="xEditingArea" valign="top" style="height: 100%"></td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/fckeditor.original.html b/httemplate/elements/fckeditor/editor/fckeditor.original.html
new file mode 100644 (file)
index 0000000..846eed9
--- /dev/null
@@ -0,0 +1,319 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Main page that holds the editor.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>FCKeditor</title>\r
+       <meta name="robots" content="noindex, nofollow" />\r
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+       <!-- @Packager.RemoveLine\r
+       <meta http-equiv="Cache-Control" content="public" />\r
+       @Packager.RemoveLine -->\r
+       <script type="text/javascript">\r
+\r
+// Instead of loading scripts and CSSs using inline tags, all scripts are\r
+// loaded by code. In this way we can guarantee the correct processing order,\r
+// otherwise external scripts and inline scripts could be executed in an\r
+// unwanted order (IE).\r
+\r
+function LoadScript( url )\r
+{\r
+       document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/scr' + 'ipt>' ) ;\r
+}\r
+\r
+function LoadCss( url )\r
+{\r
+       document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;\r
+}\r
+\r
+// Main editor scripts.\r
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;\r
+\r
+/* @Packager.RemoveLine\r
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;\r
+@Packager.RemoveLine */\r
+// @Packager.Remove.Start\r
+\r
+LoadScript( '_source/fckconstants.js' ) ;\r
+LoadScript( '_source/fckjscoreextensions.js' ) ;\r
+\r
+if ( sSuffix == 'ie' )\r
+       LoadScript( '_source/classes/fckiecleanup.js' ) ;\r
+\r
+LoadScript( '_source/internals/fckbrowserinfo.js' ) ;\r
+LoadScript( '_source/internals/fckurlparams.js' ) ;\r
+LoadScript( '_source/classes/fckevents.js' ) ;\r
+LoadScript( '_source/internals/fck.js' ) ;\r
+LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/internals/fckconfig.js' ) ;\r
+\r
+LoadScript( '_source/internals/fckdebug.js' ) ;\r
+LoadScript( '_source/internals/fckdomtools.js' ) ;\r
+LoadScript( '_source/internals/fcktools.js' ) ;\r
+LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/fckeditorapi.js' ) ;\r
+LoadScript( '_source/classes/fckimagepreloader.js' ) ;\r
+LoadScript( '_source/internals/fckregexlib.js' ) ;\r
+LoadScript( '_source/internals/fcklistslib.js' ) ;\r
+LoadScript( '_source/internals/fcklanguagemanager.js' ) ;\r
+LoadScript( '_source/internals/fckxhtmlentities.js' ) ;\r
+LoadScript( '_source/internals/fckxhtml.js' ) ;\r
+LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/internals/fckcodeformatter.js' ) ;\r
+LoadScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckeditingarea.js' ) ;\r
+LoadScript( '_source/classes/fckkeystrokehandler.js' ) ;\r
+\r
+LoadScript( '_source/internals/fcklisthandler.js' ) ;\r
+LoadScript( '_source/classes/fckelementpath.js' ) ;\r
+LoadScript( '_source/classes/fckdomrange.js' ) ;\r
+LoadScript( '_source/classes/fckdocumentfragment_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckw3crange.js' ) ;\r
+LoadScript( '_source/classes/fckdomrange_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckenterkey.js' ) ;\r
+\r
+LoadScript( '_source/internals/fckdocumentprocessor.js' ) ;\r
+LoadScript( '_source/internals/fckselection.js' ) ;\r
+LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ;\r
+\r
+LoadScript( '_source/internals/fcktablehandler.js' ) ;\r
+LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckstyledef.js' ) ;\r
+LoadScript( '_source/classes/fckstyledef_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckstylesloader.js' ) ;\r
+\r
+LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fck_othercommands.js' ) ;\r
+LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fcktablecommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;\r
+LoadScript( '_source/commandclasses/fckfitwindow.js' ) ;\r
+LoadScript( '_source/internals/fckcommands.js' ) ;\r
+\r
+LoadScript( '_source/classes/fckpanel.js' ) ;\r
+LoadScript( '_source/classes/fckicon.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarbutton.js' ) ;\r
+LoadScript( '_source/classes/fckspecialcombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;\r
+LoadScript( '_source/internals/fcktoolbaritems.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbar.js' ) ;\r
+LoadScript( '_source/classes/fcktoolbarbreak_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/internals/fcktoolbarset.js' ) ;\r
+LoadScript( '_source/internals/fckdialog.js' ) ;\r
+LoadScript( '_source/internals/fckdialog_' + sSuffix + '.js' ) ;\r
+LoadScript( '_source/classes/fckmenuitem.js' ) ;\r
+LoadScript( '_source/classes/fckmenublock.js' ) ;\r
+LoadScript( '_source/classes/fckmenublockpanel.js' ) ;\r
+LoadScript( '_source/classes/fckcontextmenu.js' ) ;\r
+LoadScript( '_source/internals/fck_contextmenu.js' ) ;\r
+LoadScript( '_source/classes/fckplugin.js' ) ;\r
+LoadScript( '_source/internals/fckplugins.js' ) ;\r
+\r
+// @Packager.Remove.End\r
+\r
+// Base configuration file.\r
+LoadScript( '../fckconfig.js' ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+if ( FCKBrowserInfo.IsIE )\r
+{\r
+       // Remove IE mouse flickering.\r
+       try\r
+       {\r
+               document.execCommand( 'BackgroundImageCache', false, true ) ;\r
+       }\r
+       catch (e)\r
+       {\r
+               // We have been reported about loading problems caused by the above\r
+               // line. For safety, let's just ignore errors.\r
+       }\r
+\r
+       // Create the default cleanup object used by the editor.\r
+       FCK.IECleanup = new FCKIECleanup( window ) ;\r
+       FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;\r
+       FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;\r
+}\r
+\r
+// The config hidden field is processed immediately, because\r
+// CustomConfigurationsPath may be set in the page.\r
+FCKConfig.ProcessHiddenField() ;\r
+\r
+// Load the custom configurations file (if defined).\r
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )\r
+       LoadScript( FCKConfig.CustomConfigurationsPath ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Load configurations defined at page level.\r
+FCKConfig_LoadPageConfig() ;\r
+\r
+FCKConfig_PreProcess() ;\r
+\r
+// Load the active skin CSS.\r
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;\r
+\r
+// Load the language file.\r
+FCKLanguageManager.Initialize() ;\r
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Initialize the editing area context menu.\r
+FCK_ContextMenu_Init() ;\r
+\r
+FCKPlugins.Load() ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+// Set the editor interface direction.\r
+window.document.dir = FCKLang.Dir ;\r
+\r
+// Activate pasting operations.\r
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )\r
+       FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;\r
+\r
+       </script>\r
+       <script type="text/javascript">\r
+\r
+window.onload = function()\r
+{\r
+       InitializeAPI() ;\r
+\r
+       if ( FCKBrowserInfo.IsIE )\r
+               FCK_PreloadImages() ;\r
+       else\r
+               LoadToolbarSetup() ;\r
+}\r
+\r
+function LoadToolbarSetup()\r
+{\r
+       FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;\r
+}\r
+\r
+function LoadToolbar()\r
+{\r
+       var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;\r
+\r
+       if ( oToolbarSet.IsLoaded )\r
+               StartEditor() ;\r
+       else\r
+       {\r
+               oToolbarSet.OnLoad = StartEditor ;\r
+               oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;\r
+       }\r
+}\r
+\r
+function StartEditor()\r
+{\r
+       // Remove the onload listener.\r
+       FCK.ToolbarSet.OnLoad = null ;\r
+\r
+       FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;\r
+\r
+       FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;\r
+\r
+       // Start the editor.\r
+       FCK.StartEditor() ;\r
+}\r
+\r
+function WaitForActive( editorInstance, newStatus )\r
+{\r
+       if ( newStatus == FCK_STATUS_ACTIVE )\r
+       {\r
+               if ( FCKBrowserInfo.IsGecko )\r
+                       FCKTools.RunFunction( window.onresize ) ;\r
+\r
+               _AttachFormSubmitToAPI() ;\r
+\r
+               FCK.SetStatus( FCK_STATUS_COMPLETE ) ;\r
+\r
+               // Call the special "FCKeditor_OnComplete" function that should be present in\r
+               // the HTML page where the editor is located.\r
+               if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )\r
+                       window.parent.FCKeditor_OnComplete( FCK ) ;\r
+       }\r
+}\r
+\r
+// Gecko browsers doens't calculate well that IFRAME size so we must\r
+// recalculate it every time the window size changes.\r
+if ( FCKBrowserInfo.IsGecko )\r
+{\r
+       function Window_OnResize()\r
+       {\r
+               if ( FCKBrowserInfo.IsOpera )\r
+                       return ;\r
+\r
+               var oCell = document.getElementById( 'xEditingArea' ) ;\r
+\r
+               var eInnerElement = oCell.firstChild ;\r
+               if ( eInnerElement )\r
+               {\r
+                       eInnerElement.style.height = 0 ;\r
+                       eInnerElement.style.height = oCell.scrollHeight - 2 ;\r
+               }\r
+       }\r
+       window.onresize = Window_OnResize ;\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body>\r
+       <table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">\r
+               <tr id="xToolbarRow" style="display: none">\r
+                       <td id="xToolbarSpace" style="overflow: hidden">\r
+                               <table width="100%" cellpadding="0" cellspacing="0">\r
+                                       <tr id="xCollapsed" style="display: none">\r
+                                               <td id="xExpandHandle" class="TB_Expand" colspan="3">\r
+                                                       <img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>\r
+                                       </tr>\r
+                                       <tr id="xExpanded" style="display: none">\r
+                                               <td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>\r
+                                               <td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">\r
+                                                       <img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>\r
+                                               <td id="xToolbar" class="TB_ToolbarSet"></td>\r
+                                               <td class="TB_SideBorder" style="width: 1px"></td>\r
+                                       </tr>\r
+                               </table>\r
+                       </td>\r
+               </tr>\r
+               <tr>\r
+                       <td id="xEditingArea" valign="top" style="height: 100%"></td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.css b/httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.css
new file mode 100644 (file)
index 0000000..ba464ba
--- /dev/null
@@ -0,0 +1,88 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * CSS styles used by all pages that compose the File Browser.\r
+ */\r
+\r
+body\r
+{\r
+       background-color: #f1f1e3;\r
+}\r
+\r
+form\r
+{\r
+       margin: 0px 0px 0px 0px ;\r
+       padding: 0px 0px 0px 0px ;\r
+}\r
+\r
+.Frame\r
+{\r
+       background-color: #f1f1e3;\r
+       border-color: #f1f1e3;\r
+       border-right: thin inset;\r
+       border-top: thin inset;\r
+       border-left: thin inset;\r
+       border-bottom: thin inset;\r
+}\r
+\r
+body.FileArea\r
+{\r
+\r
+       background-color: #ffffff;\r
+}\r
+\r
+body, td, input, select\r
+{\r
+       font-size: 11px;\r
+       font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;\r
+}\r
+\r
+.ActualFolder\r
+{\r
+       font-weight: bold;\r
+       font-size: 14px;\r
+}\r
+\r
+.PopupButtons\r
+{\r
+       border-top: #d5d59d 1px solid;\r
+       background-color: #e3e3c7;\r
+       padding: 7px 10px 7px 10px;\r
+}\r
+\r
+.Button, button\r
+{\r
+       border-right: #737357 1px solid;\r
+       border-top: #737357 1px solid;\r
+       border-left: #737357 1px solid;\r
+       color: #3b3b1f;\r
+       border-bottom: #737357 1px solid;\r
+       background-color: #c7c78f;\r
+}\r
+\r
+.FolderListCurrentFolder img\r
+{\r
+       background-image: url(images/FolderOpened.gif);\r
+}\r
+\r
+.FolderListFolder img\r
+{\r
+       background-image: url(images/Folder.gif);\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/browser.html
new file mode 100644 (file)
index 0000000..8b776a2
--- /dev/null
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page compose the File Browser dialog frameset.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>FCKeditor - Resources Browser</title>\r
+               <link href="browser.css" type="text/css" rel="stylesheet">\r
+               <script type="text/javascript" src="js/fckxml.js"></script>\r
+               <script language="javascript">\r
+\r
+function GetUrlParam( paramName )\r
+{\r
+       var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;\r
+       var oMatch = oRegex.exec( window.top.location.search ) ;\r
+\r
+       if ( oMatch && oMatch.length > 1 )\r
+               return decodeURIComponent( oMatch[1] ) ;\r
+       else\r
+               return '' ;\r
+}\r
+\r
+var oConnector = new Object() ;\r
+oConnector.CurrentFolder       = '/' ;\r
+\r
+var sConnUrl = GetUrlParam( 'Connector' ) ;\r
+\r
+// Gecko has some problems when using relative URLs (not starting with slash).\r
+if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )\r
+       sConnUrl = window.location.href.replace( /browser.html.*$/, '' ) + sConnUrl ;\r
+\r
+oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' ) ;\r
+\r
+var sServerPath = GetUrlParam( 'ServerPath' ) ;\r
+if ( sServerPath.length > 0 )\r
+       oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;\r
+\r
+oConnector.ResourceType                = GetUrlParam( 'Type' ) ;\r
+oConnector.ShowAllTypes                = ( oConnector.ResourceType.length == 0 ) ;\r
+\r
+if ( oConnector.ShowAllTypes )\r
+       oConnector.ResourceType = 'File' ;\r
+\r
+oConnector.SendCommand = function( command, params, callBackFunction )\r
+{\r
+       var sUrl = this.ConnectorUrl + 'Command=' + command ;\r
+       sUrl += '&Type=' + this.ResourceType ;\r
+       sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;\r
+\r
+       if ( params ) sUrl += '&' + params ;\r
+\r
+       var oXML = new FCKXml() ;\r
+\r
+       if ( callBackFunction )\r
+               oXML.LoadUrl( sUrl, callBackFunction ) ;        // Asynchronous load.\r
+       else\r
+               return oXML.LoadUrl( sUrl ) ;\r
+\r
+       return null ;\r
+}\r
+\r
+oConnector.CheckError = function( responseXml )\r
+{\r
+       var iErrorNumber = 0 ;\r
+       var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;\r
+\r
+       if ( oErrorNode )\r
+       {\r
+               iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ;\r
+\r
+               switch ( iErrorNumber )\r
+               {\r
+                       case 0 :\r
+                               break ;\r
+                       case 1 :        // Custom error. Message placed in the "text" attribute.\r
+                               alert( oErrorNode.attributes.getNamedItem('text').value ) ;\r
+                               break ;\r
+                       case 101 :\r
+                               alert( 'Folder already exists' ) ;\r
+                               break ;\r
+                       case 102 :\r
+                               alert( 'Invalid folder name' ) ;\r
+                               break ;\r
+                       case 103 :\r
+                               alert( 'You have no permissions to create the folder' ) ;\r
+                               break ;\r
+                       case 110 :\r
+                               alert( 'Unknown error creating folder' ) ;\r
+                               break ;\r
+                       default :\r
+                               alert( 'Error on your request. Error number: ' + iErrorNumber ) ;\r
+                               break ;\r
+               }\r
+       }\r
+       return iErrorNumber ;\r
+}\r
+\r
+var oIcons = new Object() ;\r
+\r
+oIcons.AvailableIconsArray = [\r
+       'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',\r
+       'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;\r
+\r
+oIcons.AvailableIcons = new Object() ;\r
+\r
+for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )\r
+       oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;\r
+\r
+oIcons.GetIcon = function( fileName )\r
+{\r
+       var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase() ;\r
+\r
+       if ( this.AvailableIcons[ sExtension ] == true )\r
+               return sExtension ;\r
+       else\r
+               return 'default.icon' ;\r
+}\r
+               </script>\r
+       </head>\r
+       <frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">\r
+               <frameset rows="50,*" framespacing="0">\r
+                       <frame src="frmresourcetype.html" scrolling="no" frameborder="0">\r
+                       <frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="1">\r
+               </frameset>\r
+               <frameset rows="50,*,50" framespacing="0">\r
+                       <frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="0">\r
+                       <frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="1">\r
+                       <frameset cols="150,*,0" framespacing="0" frameborder="0">\r
+                               <frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="0">\r
+                               <frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="0">\r
+                               <frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">\r
+                       </frameset>\r
+               </frameset>\r
+       </frameset>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
new file mode 100644 (file)
index 0000000..f64b7c7
--- /dev/null
@@ -0,0 +1,63 @@
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+sub CreateXmlHeader\r
+{\r
+       local($command,$resourceType,$currentFolder) = @_;\r
+\r
+       # Create the XML document header.\r
+       print '<?xml version="1.0" encoding="utf-8" ?>';\r
+\r
+       # Create the main "Connector" node.\r
+       print '<Connector command="' . $command . '" resourceType="' . $resourceType . '">';\r
+\r
+       # Add the current folder node.\r
+       print '<CurrentFolder path="' . ConvertToXmlAttribute($currentFolder) . '" url="' . ConvertToXmlAttribute(GetUrlFromPath($resourceType,$currentFolder)) . '" />';\r
+}\r
+\r
+sub CreateXmlFooter\r
+{\r
+       print '</Connector>';\r
+}\r
+\r
+sub SendError\r
+{\r
+       local( $number, $text ) = @_;\r
+\r
+       print << "_HTML_HEAD_";\r
+Content-Type:text/xml; charset=utf-8\r
+Pragma: no-cache\r
+Cache-Control: no-cache\r
+Expires: Thu, 01 Dec 1994 16:00:00 GMT\r
+\r
+_HTML_HEAD_\r
+\r
+       # Create the XML document header\r
+       print '<?xml version="1.0" encoding="utf-8" ?>' ;\r
+\r
+       print '<Connector><Error number="' . $number . '" text="' . &specialchar_cnv( $text ) . '" /></Connector>' ;\r
+\r
+       exit ;\r
+}\r
+\r
+1;\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
new file mode 100644 (file)
index 0000000..2ed2e62
--- /dev/null
@@ -0,0 +1,158 @@
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+sub GetFolders\r
+{\r
+\r
+       local($resourceType, $currentFolder) = @_;\r
+\r
+       # Map the virtual path to the local server path.\r
+       $sServerDir = &ServerMapFolder($resourceType, $currentFolder);\r
+       print "<Folders>";                      # Open the "Folders" node.\r
+\r
+       opendir(DIR,"$sServerDir");\r
+       @files = grep(!/^\.\.?$/,readdir(DIR));\r
+       closedir(DIR);\r
+\r
+       foreach $sFile (@files) {\r
+               if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {\r
+                       $cnv_filename = &ConvertToXmlAttribute($sFile);\r
+                       print '<Folder name="' . $cnv_filename . '" />';\r
+               }\r
+       }\r
+       print "</Folders>";                     # Close the "Folders" node.\r
+}\r
+\r
+sub GetFoldersAndFiles\r
+{\r
+\r
+       local($resourceType, $currentFolder) = @_;\r
+       # Map the virtual path to the local server path.\r
+       $sServerDir = &ServerMapFolder($resourceType,$currentFolder);\r
+\r
+       # Initialize the output buffers for "Folders" and "Files".\r
+       $sFolders       = '<Folders>';\r
+       $sFiles         = '<Files>';\r
+\r
+       opendir(DIR,"$sServerDir");\r
+       @files = grep(!/^\.\.?$/,readdir(DIR));\r
+       closedir(DIR);\r
+\r
+       foreach $sFile (@files) {\r
+               if($sFile ne '.' && $sFile ne '..') {\r
+                       if(-d "$sServerDir$sFile") {\r
+                               $cnv_filename = &ConvertToXmlAttribute($sFile);\r
+                               $sFolders .= '<Folder name="' . $cnv_filename . '" />' ;\r
+                       } else {\r
+                               ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];\r
+                               if($iFileSize > 0) {\r
+                                       $iFileSize = int($iFileSize / 1024);\r
+                                       if($iFileSize < 1) {\r
+                                               $iFileSize = 1;\r
+                                       }\r
+                               }\r
+                               $cnv_filename = &ConvertToXmlAttribute($sFile);\r
+                               $sFiles .= '<File name="' . $cnv_filename . '" size="' . $iFileSize . '" />' ;\r
+                       }\r
+               }\r
+       }\r
+       print $sFolders ;\r
+       print '</Folders>';                     # Close the "Folders" node.\r
+       print $sFiles ;\r
+       print '</Files>';                       # Close the "Files" node.\r
+}\r
+\r
+sub CreateFolder\r
+{\r
+\r
+       local($resourceType, $currentFolder) = @_;\r
+       $sErrorNumber   = '0' ;\r
+       $sErrorMsg              = '' ;\r
+\r
+       if($FORM{'NewFolderName'} ne "") {\r
+               $sNewFolderName = $FORM{'NewFolderName'};\r
+               # Map the virtual path to the local server path of the current folder.\r
+               $sServerDir = &ServerMapFolder($resourceType, $currentFolder);\r
+               if(-w $sServerDir) {\r
+                       $sServerDir .= $sNewFolderName;\r
+                       $sErrorMsg = &CreateServerFolder($sServerDir);\r
+                       if($sErrorMsg == 0) {\r
+                               $sErrorNumber = '0';\r
+                       } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {\r
+                               $sErrorNumber = '102';          #// Path too long.\r
+                       } else {\r
+                               $sErrorNumber = '110';\r
+                       }\r
+               } else {\r
+                       $sErrorNumber = '103';\r
+               }\r
+       } else {\r
+               $sErrorNumber = '102' ;\r
+       }\r
+       # Create the "Error" node.\r
+       $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);\r
+       print '<Error number="' . $sErrorNumber . '" originalDescription="' . $cnv_errmsg . '" />';\r
+}\r
+\r
+sub FileUpload\r
+{\r
+eval("use File::Copy;");\r
+\r
+       local($resourceType, $currentFolder) = @_;\r
+\r
+       $sErrorNumber = '0' ;\r
+       $sFileName = '' ;\r
+       if($new_fname) {\r
+               # Map the virtual path to the local server path.\r
+               $sServerDir = &ServerMapFolder($resourceType,$currentFolder);\r
+\r
+               # Get the uploaded file name.\r
+               $sFileName = $new_fname;\r
+               $sOriginalFileName = $sFileName;\r
+\r
+               $iCounter = 0;\r
+               while(1) {\r
+                       $sFilePath = $sServerDir . $sFileName;\r
+                       if(-e $sFilePath) {\r
+                               $iCounter++ ;\r
+                               ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);\r
+                               $sFileName = $BaseName . '(' . $iCounter . ').' . $ext;\r
+                               $sErrorNumber = '201';\r
+                       } else {\r
+                               copy("$img_dir/$new_fname","$sFilePath");\r
+                               chmod(0777,$sFilePath);\r
+                               unlink("$img_dir/$new_fname");\r
+                               last;\r
+                       }\r
+               }\r
+       } else {\r
+               $sErrorNumber = '202' ;\r
+       }\r
+       $sFileName      =~ s/"/\\"/g;\r
+       print "Content-type: text/html\n\n";\r
+       print '<script type="text/javascript">';\r
+       print 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . $sFileName . '") ;';\r
+       print '</script>';\r
+       exit ;\r
+}\r
+1;\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
new file mode 100644 (file)
index 0000000..a741215
--- /dev/null
@@ -0,0 +1,137 @@
+#!/usr/bin/env perl\r
+\r
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+##\r
+# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.\r
+##\r
+\r
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).\r
+if(Windows_check()) {\r
+       chdir(GetScriptPath($0));\r
+}\r
+\r
+sub Windows_check\r
+{\r
+       # IIS,PWS(NT/95)\r
+       $www_server_os = $^O;\r
+       # Win98 & NT(SP4)\r
+       if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }\r
+       # AnHTTPd/Omni/IIS\r
+       if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }\r
+       # Win Apache\r
+       if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }\r
+       if($www_server_os=~ /win/i) { return(1); }\r
+       return(0);\r
+}\r
+\r
+sub GetScriptPath {\r
+       local($path) = @_;\r
+       if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }\r
+       $path;\r
+}\r
+## END: Hack for IIS\r
+\r
+require 'util.pl';\r
+require 'io.pl';\r
+require 'basexml.pl';\r
+require 'commands.pl';\r
+require 'upload_fck.pl';\r
+\r
+##\r
+# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.\r
+##\r
+&SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/perl/connector.cgi" file' ) ;\r
+\r
+       &read_input();\r
+\r
+       if($FORM{'ServerPath'} ne "") {\r
+               $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};\r
+               if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) {\r
+                       $GLOBALS{'UserFilesPath'} .= '/' ;\r
+               }\r
+       } else {\r
+               $GLOBALS{'UserFilesPath'} = '/userfiles/';\r
+       }\r
+\r
+       # Map the "UserFiles" path to a local directory.\r
+       $rootpath = &GetRootPath();\r
+       $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};\r
+\r
+       &DoResponse();\r
+\r
+sub DoResponse\r
+{\r
+\r
+       if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {\r
+               return ;\r
+       }\r
+       # Get the main request informaiton.\r
+       $sCommand               = $FORM{'Command'};\r
+       $sResourceType  = $FORM{'Type'};\r
+       $sCurrentFolder = $FORM{'CurrentFolder'};\r
+\r
+       # Check the current folder syntax (must begin and start with a slash).\r
+       if(!($sCurrentFolder =~ /\/$/)) {\r
+               $sCurrentFolder .= '/';\r
+       }\r
+       if(!($sCurrentFolder =~ /^\//)) {\r
+               $sCurrentFolder = '/' . $sCurrentFolder;\r
+       }\r
+\r
+       # Check for invalid folder paths (..)\r
+       if ( $sCurrentFolder =~ /\.\./ ) {\r
+               SendError( 102, "" ) ;\r
+       }\r
+\r
+       # File Upload doesn't have to Return XML, so it must be intercepted before anything.\r
+       if($sCommand eq 'FileUpload') {\r
+               FileUpload($sResourceType,$sCurrentFolder);\r
+               return ;\r
+       }\r
+\r
+       print << "_HTML_HEAD_";\r
+Content-Type:text/xml; charset=utf-8\r
+Pragma: no-cache\r
+Cache-Control: no-cache\r
+Expires: Thu, 01 Dec 1994 16:00:00 GMT\r
+\r
+_HTML_HEAD_\r
+\r
+       &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);\r
+\r
+       # Execute the required command.\r
+       if($sCommand eq 'GetFolders') {\r
+               &GetFolders($sResourceType,$sCurrentFolder);\r
+       } elsif($sCommand eq 'GetFoldersAndFiles') {\r
+               &GetFoldersAndFiles($sResourceType,$sCurrentFolder);\r
+       } elsif($sCommand eq 'CreateFolder') {\r
+               &CreateFolder($sResourceType,$sCurrentFolder);\r
+       }\r
+\r
+       &CreateXmlFooter();\r
+\r
+       exit ;\r
+}\r
+\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
new file mode 100644 (file)
index 0000000..c1dbccf
--- /dev/null
@@ -0,0 +1,131 @@
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+sub GetUrlFromPath\r
+{\r
+       local($resourceType, $folderPath) = @_;\r
+\r
+       if($resourceType eq '') {\r
+               $rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/');\r
+               return("$rmpath$folderPath");\r
+       } else {\r
+               return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath");\r
+       }\r
+}\r
+\r
+sub RemoveExtension\r
+{\r
+       local($fileName) = @_;\r
+       local($path, $base, $ext);\r
+       if($fileName !~ /\./) {\r
+               $fileName .= '.';\r
+       }\r
+       if($fileName =~ /([^\\\/]*)\.(.*)$/) {\r
+               $base = $1;\r
+               $ext  = $2;\r
+               if($fileName =~ /(.*)$base\.$ext$/) {\r
+                       $path = $1;\r
+               }\r
+       }\r
+       return($path,$base,$ext);\r
+\r
+}\r
+\r
+sub ServerMapFolder\r
+{\r
+       local($resourceType,$folderPath) = @_;\r
+\r
+       # Get the resource type directory.\r
+       $sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/';\r
+\r
+       # Ensure that the directory exists.\r
+       &CreateServerFolder($sResourceTypePath);\r
+\r
+       # Return the resource type directory combined with the required path.\r
+       $rmpath = &RemoveFromStart($folderPath,'/');\r
+       return("$sResourceTypePath$rmpath");\r
+}\r
+\r
+sub GetParentFolder\r
+{\r
+       local($folderPath) = @_;\r
+\r
+       $folderPath =~ s/[\/][^\/]+[\/]?$//g;\r
+       return $folderPath;\r
+}\r
+\r
+sub CreateServerFolder\r
+{\r
+       local($folderPath) = @_;\r
+\r
+       $sParent = &GetParentFolder($folderPath);\r
+       # Check if the parent exists, or create it.\r
+       if(!(-e $sParent)) {\r
+               $sErrorMsg = &CreateServerFolder($sParent);\r
+               if($sErrorMsg == 1) {\r
+                       return(1);\r
+               }\r
+       }\r
+       if(!(-e $folderPath)) {\r
+               umask(000);\r
+               mkdir("$folderPath",0777);\r
+               chmod(0777,"$folderPath");\r
+               return(0);\r
+       } else {\r
+               return(1);\r
+       }\r
+}\r
+\r
+sub GetRootPath\r
+{\r
+#use Cwd;\r
+\r
+#      my $dir = getcwd;\r
+#      print $dir;\r
+#      $dir  =~ s/$ENV{'DOCUMENT_ROOT'}//g;\r
+#      print $dir;\r
+#      return($dir);\r
+\r
+#      $wk = $0;\r
+#      $wk =~ s/\/connector\.cgi//g;\r
+#      if($wk) {\r
+#              $current_dir = $wk;\r
+#      } else {\r
+#              $current_dir = `pwd`;\r
+#      }\r
+#      return($current_dir);\r
+use Cwd;\r
+\r
+       if($ENV{'DOCUMENT_ROOT'}) {\r
+               $dir = $ENV{'DOCUMENT_ROOT'};\r
+       } else {\r
+               my $dir = getcwd;\r
+               $workdir =~ s/\/connector\.cgi//g;\r
+               $dir  =~ s/$workdir//g;\r
+       }\r
+       return($dir);\r
+\r
+\r
+\r
+}\r
+1;\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
new file mode 100644 (file)
index 0000000..1c3f4e2
--- /dev/null
@@ -0,0 +1,667 @@
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+# image data save dir\r
+$img_dir       = './temp/';\r
+\r
+\r
+# File size max(unit KB)\r
+$MAX_CONTENT_SIZE =  30000;\r
+\r
+# Filelock (1=use,0=not use)\r
+$PM{'flock'}           = '1';\r
+\r
+\r
+# upload Content-Type list\r
+my %UPLOAD_CONTENT_TYPE_LIST = (\r
+       'image/(x-)?png'                                                =>      'png',  # PNG image\r
+       'image/p?jpe?g'                                                 =>      'jpg',  # JPEG image\r
+       'image/gif'                                                             =>      'gif',  # GIF image\r
+       'image/x-xbitmap'                                               =>      'xbm',  # XBM image\r
+\r
+       'image/(x-(MS-)?)?bmp'                                  =>      'bmp',  # Windows BMP image\r
+       'image/pict'                                                    =>      'pict', # Macintosh PICT image\r
+       'image/tiff'                                                    =>      'tif',  # TIFF image\r
+       'application/pdf'                                               =>      'pdf',  # PDF image\r
+       'application/x-shockwave-flash'                 =>      'swf',  # Shockwave Flash\r
+\r
+       'video/(x-)?msvideo'                                    =>      'avi',  # Microsoft Video\r
+       'video/quicktime'                                               =>      'mov',  # QuickTime Video\r
+       'video/mpeg'                                                    =>      'mpeg', # MPEG Video\r
+       'video/x-mpeg2'                                                 =>      'mpv2', # MPEG2 Video\r
+\r
+       'audio/(x-)?midi?'                                              =>      'mid',  # MIDI Audio\r
+       'audio/(x-)?wav'                                                =>      'wav',  # WAV Audio\r
+       'audio/basic'                                                   =>      'au',   # ULAW Audio\r
+       'audio/mpeg'                                                    =>      'mpga', # MPEG Audio\r
+\r
+       'application/(x-)?zip(-compressed)?'    =>      'zip',  # ZIP Compress\r
+\r
+       'text/html'                                                             =>      'html', # HTML\r
+       'text/plain'                                                    =>      'txt',  # TEXT\r
+       '(?:application|text)/(?:rtf|richtext)' =>      'rtf',  # RichText\r
+\r
+       'application/msword'                                    =>      'doc',  # Microsoft Word\r
+       'application/vnd.ms-excel'                              =>      'xls',  # Microsoft Excel\r
+\r
+       ''\r
+);\r
+\r
+# Upload is permitted.\r
+# A regular expression is possible.\r
+my %UPLOAD_EXT_LIST = (\r
+       'png'                                   =>      'PNG image',\r
+       'p?jpe?g|jpe|jfif|pjp'  =>      'JPEG image',\r
+       'gif'                                   =>      'GIF image',\r
+       'xbm'                                   =>      'XBM image',\r
+\r
+       'bmp|dib|rle'                   =>      'Windows BMP image',\r
+       'pi?ct'                                 =>      'Macintosh PICT image',\r
+       'tiff?'                                 =>      'TIFF image',\r
+       'pdf'                                   =>      'PDF image',\r
+       'swf'                                   =>      'Shockwave Flash',\r
+\r
+       'avi'                                   =>      'Microsoft Video',\r
+       'moo?v|qt'                              =>      'QuickTime Video',\r
+       'm(p(e?gv?|e|v)|1v)'    =>      'MPEG Video',\r
+       'mp(v2|2v)'                             =>      'MPEG2 Video',\r
+\r
+       'midi?|kar|smf|rmi|mff' =>      'MIDI Audio',\r
+       'wav'                                   =>      'WAVE Audio',\r
+       'au|snd'                                =>      'ULAW Audio',\r
+       'mp(e?ga|2|a|3)|abs'    =>      'MPEG Audio',\r
+\r
+       'zip'                                   =>      'ZIP Compress',\r
+       'lzh'                                   =>      'LZH Compress',\r
+       'cab'                                   =>      'CAB Compress',\r
+\r
+       'd?html?'                               =>      'HTML',\r
+       'rtf|rtx'                               =>      'RichText',\r
+       'txt|text'                              =>      'Text',\r
+\r
+       ''\r
+);\r
+\r
+\r
+# sjis or euc\r
+my $CHARCODE = 'sjis';\r
+\r
+$TRANS_2BYTE_CODE = 0;\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+# Form Read input\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+sub read_input\r
+{\r
+eval("use File::Copy;");\r
+eval("use File::Path;");\r
+\r
+       my ($FORM) = @_;\r
+\r
+\r
+       mkdir($img_dir,0777);\r
+       chmod(0777,$img_dir);\r
+\r
+       undef $img_data_exists;\r
+       undef @NEWFNAMES;\r
+       undef @NEWFNAME_DATA;\r
+\r
+       if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {\r
+               &upload_error(\r
+                       'Size Error',\r
+                       sprintf(\r
+                               "Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",\r
+                               $MAX_CONTENT_SIZE,\r
+                               int($ENV{'CONTENT_LENGTH'} / 1024),\r
+                               $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024\r
+                       )\r
+               );\r
+       }\r
+\r
+       my $Buffer;\r
+       if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {\r
+               # METHOD POST only\r
+               return  unless($ENV{'CONTENT_LENGTH'});\r
+\r
+               binmode(STDIN);\r
+               # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)\r
+               my $Boundary = <STDIN>;\r
+               $Boundary =~ s/\x0D\x0A//;\r
+               $Boundary = quotemeta($Boundary);\r
+               while(<STDIN>) {\r
+                       if(/^\s*Content-Disposition:/i) {\r
+                               my($name,$ContentType,$FileName);\r
+                               # form data get\r
+                               if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {\r
+                                       $name = $1;\r
+                                       $name   =~ tr/+/ /;\r
+                                       $name   =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
+                                       &Encode(\$name);\r
+                               }\r
+                               if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {\r
+                                       $FileName = $1 || 'unknown';\r
+                               }\r
+                               # head read\r
+                               while(<STDIN>) {\r
+                                       last    if(! /\w/);\r
+                                       if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {\r
+                                               $ContentType = $1;\r
+                                       }\r
+                               }\r
+                               # body read\r
+                               $value = "";\r
+                               while(<STDIN>) {\r
+                                       last    if(/^$Boundary/o);\r
+                                       $value .= $_;\r
+                               };\r
+                               $lastline = $_;\r
+                               $value =~s /\x0D\x0A$//;\r
+                               if($value ne '') {\r
+                                       if($FileName || $ContentType) {\r
+                                               $img_data_exists = 1;\r
+                                               (\r
+                                                       $FileName,              #\r
+                                                       $Ext,                   #\r
+                                                       $Length,                #\r
+                                                       $ImageWidth,    #\r
+                                                       $ImageHeight,   #\r
+                                                       $ContentName    #\r
+                                               ) = &CheckContentType(\$value,$FileName,$ContentType);\r
+\r
+                                               $FORM{$name}    = $FileName;\r
+                                               $new_fname              = $FileName;\r
+                                               push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");\r
+\r
+                                               # Multi-upload correspondence\r
+                                               push(@NEWFNAMES,$new_fname);\r
+                                               open(OUT,">$img_dir/$new_fname");\r
+                                               binmode(OUT);\r
+                                               eval "flock(OUT,2);" if($PM{'flock'} == 1);\r
+                                               print OUT $value;\r
+                                               eval "flock(OUT,8);" if($PM{'flock'} == 1);\r
+                                               close(OUT);\r
+\r
+                                       } elsif($name) {\r
+                                               $value  =~ tr/+/ /;\r
+                                               $value  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
+                                               &Encode(\$value,'trans');\r
+                                               $FORM{$name} .= "\0"                    if(defined($FORM{$name}));\r
+                                               $FORM{$name} .= $value;\r
+                                       }\r
+                               }\r
+                       };\r
+                       last if($lastline =~ /^$Boundary\-\-/o);\r
+               }\r
+       } elsif($ENV{'CONTENT_LENGTH'}) {\r
+               read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});\r
+       }\r
+       foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {\r
+               my($name, $value) = split(/=/);\r
+               $name   =~ tr/+/ /;\r
+               $name   =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
+               $value  =~ tr/+/ /;\r
+               $value  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;\r
+\r
+               &Encode(\$name);\r
+               &Encode(\$value,'trans');\r
+               $FORM{$name} .= "\0"                    if(defined($FORM{$name}));\r
+               $FORM{$name} .= $value;\r
+\r
+       }\r
+\r
+}\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+#      CheckContentType\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+sub CheckContentType\r
+{\r
+\r
+       my($DATA,$FileName,$ContentType) = @_;\r
+       my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);\r
+       my $DataLength = length($$DATA);\r
+\r
+       # An unknown file type\r
+\r
+       $_ = $ContentType;\r
+       my $UnknownType = (\r
+               !$_\r
+               || /^application\/(x-)?macbinary$/i\r
+               || /^application\/applefile$/i\r
+               || /^application\/octet-stream$/i\r
+               || /^text\/plane$/i\r
+               || /^x-unknown-content-type/i\r
+       );\r
+\r
+       # MacBinary(Mac Unnecessary data are deleted.)\r
+       if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {\r
+               if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {\r
+                       my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4));          # ForkLength Get\r
+                       my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));\r
+                       if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128\r
+                                       && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) {   # DATA TOP 128byte MacBinary!!\r
+                               $$DATA                          = substr($$DATA,128,$MacBinary_ForkLength);\r
+                               my $ResourceLength      = $DataLength - $MacBinary_ForkLength - 128;\r
+                               $DataLength                     = $MacBinary_ForkLength;\r
+                       }\r
+               }\r
+       }\r
+\r
+       # A file name is changed into EUC.\r
+#      &jcode::convert(\$FileName,'euc',$FormCodeDefault);\r
+#      &jcode::h2z_euc(\$FileName);\r
+       $FileName =~ s/^.*\\//;                                 # Windows, Mac\r
+       $FileName =~ s/^.*\///;                                 # UNIX\r
+       $FileName =~ s/&/&amp;/g;\r
+       $FileName =~ s/"/&quot;/g;\r
+       $FileName =~ s/</&lt;/g;\r
+       $FileName =~ s/>/&gt;/g;\r
+#\r
+#      if($CHARCODE ne 'euc') {\r
+#              &jcode::convert(\$FileName,$CHARCODE,'euc');\r
+#      }\r
+\r
+       # An extension is extracted and it changes into a small letter.\r
+       my $FileExt;\r
+       if($FileName =~ /\.(\w+)$/) {\r
+               $FileExt = $1;\r
+               $FileExt =~ tr/A-Z/a-z/;\r
+       }\r
+\r
+       # Executable file detection (ban on upload)\r
+       if($$DATA =~ /^MZ/) {\r
+               $Ext = 'exe';\r
+       }\r
+       # text\r
+       if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)\r
+                               && ! $$DATA =~ /[\000-\006\177\377]/) {\r
+#              $$DATA =~ s/\x0D\x0A/\n/g;\r
+#              $$DATA =~ tr/\x0D\x0A/\n\n/;\r
+#\r
+#              if(\r
+#                      $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i\r
+#                              ) {\r
+#                      $Infomation = '(JavaScript contains)';\r
+#              }\r
+#              if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i\r
+#                              || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i\r
+#                              ) {\r
+#                      $Infomation = '(the HTML tag which is not safe is included)';\r
+#              }\r
+\r
+               if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) {                                                               # Text File\r
+                       $Ext = 'txt';\r
+               } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) {  # HTML File\r
+                       $Ext = 'html';\r
+               } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) {                                                                # XBM(x-BitMap) Image\r
+                       my $XbmName = $1;\r
+                       my ($XbmWidth, $XbmHeight);\r
+                       if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {\r
+                               $XbmWidth = $1;\r
+                       }\r
+                       if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {\r
+                               $XbmHeight = $1;\r
+                       }\r
+                       if($XbmWidth && $XbmHeight) {\r
+                               $Ext = 'xbm';\r
+                               $ImageWidth             = $XbmWidth;\r
+                               $ImageHeight    = $XbmHeight;\r
+                       }\r
+               } else {                #\r
+                       $Ext = 'txt';\r
+               }\r
+       }\r
+\r
+       # image\r
+       if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {\r
+               # PNG\r
+               if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {\r
+                       if(substr($$DATA, 12, 4) eq 'IHDR') {\r
+                               $Ext = 'png';\r
+                               ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));\r
+                       }\r
+               } elsif($$DATA =~ /^GIF8(?:9|7)a/) {                                                                                                                    # GIF89a(modified), GIF89a, GIF87a\r
+                       $Ext = 'gif';\r
+                       ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));\r
+               } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) {   # TIFF\r
+                       $Ext = 'tif';\r
+               } elsif($$DATA =~ /^BM/) {                                                                                                                                              # BMP\r
+                       $Ext = 'bmp';\r
+               } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) {                                                                                # JPEG\r
+                       my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);\r
+                       my $Point = $HeaderPoint + 2;\r
+                       while($Point < $DataLength) {\r
+                               my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));\r
+                               if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {\r
+                                       last;\r
+                               } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {\r
+                                       $Ext = 'jpg';\r
+                                       ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));\r
+                                       if($HeaderPoint > 0) {\r
+                                               $$DATA = substr($$DATA, $HeaderPoint);\r
+                                               $DataLength = length($$DATA);\r
+                                       }\r
+                                       last;\r
+                               } else {\r
+                                       $Point += $MakerLength + 2;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       # audio\r
+       if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {\r
+               # MIDI Audio\r
+               if($$DATA =~ /^MThd/) {\r
+                       $Ext = 'mid';\r
+               } elsif($$DATA =~ /^\x2esnd/) {         # ULAW Audio\r
+                       $Ext = 'au';\r
+               } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {\r
+                       my $HeaderPoint = index($$DATA, "RIFF", 0);\r
+                       $_ = substr($$DATA, $HeaderPoint + 8, 8);\r
+                       if(/^WAVEfmt $/) {\r
+                               # WAVE\r
+                               if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {\r
+                                       $Ext = 'wav';\r
+                               } else {                                        # RIFF WAVE MP3\r
+                                       $Ext = 'mp3';\r
+                               }\r
+                       } elsif(/^RMIDdata$/) {                 # RIFF MIDI\r
+                               $Ext = 'rmi';\r
+                       } elsif(/^RMP3data$/) {                 # RIFF MP3\r
+                               $Ext = 'rmp';\r
+                       }\r
+                       if($ContentType =~ /^audio\//i) {\r
+                               $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';\r
+                       }\r
+               }\r
+       }\r
+\r
+       # a binary file\r
+       unless ($Ext) {\r
+               # PDF image\r
+               if($$DATA =~ /^\%PDF/) {\r
+                       # Picture size is not measured.\r
+                       $Ext = 'pdf';\r
+               } elsif($$DATA =~ /^FWS/) {             # Shockwave Flash\r
+                       $Ext = 'swf';\r
+               } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {\r
+                       my $HeaderPoint = index($$DATA, "RIFF", 0);\r
+                       $_ = substr($$DATA,$HeaderPoint + 8, 8);\r
+                       # AVI\r
+                       if(/^AVI LIST$/) {\r
+                               $Ext = 'avi';\r
+                       }\r
+                       if($ContentType =~ /^video\//i) {\r
+                               $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';\r
+                       }\r
+               } elsif($$DATA =~ /^PK/) {                      # ZIP Compress File\r
+                       $Ext = 'zip';\r
+               } elsif($$DATA =~ /^MSCF/) {            # CAB Compress File\r
+                       $Ext = 'cab';\r
+               } elsif($$DATA =~ /^Rar\!/) {           # RAR Compress File\r
+                       $Ext = 'rar';\r
+               } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) {            # LHA Compress File\r
+                       $Infomation .= "(lh$1)";\r
+                       $Ext = 'lzh';\r
+               } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {\r
+                       # QuickTime\r
+                       $Ext = 'mov';\r
+               }\r
+       }\r
+\r
+       # Header analysis failure\r
+       unless ($Ext) {\r
+               # It will be followed if it applies for the MIME type from the browser.\r
+               foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {\r
+                       next unless ($_);\r
+                       if($ContentType =~ /^$_$/i) {\r
+                               $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};\r
+                               $ContentName = &CheckContentExt($Ext);\r
+                               if(\r
+                                       grep {$_ eq $Ext;} (\r
+                                               'png',\r
+                                               'gif',\r
+                                               'jpg',\r
+                                               'xbm',\r
+                                               'tif',\r
+                                               'bmp',\r
+                                               'pdf',\r
+                                               'swf',\r
+                                               'mov',\r
+                                               'zip',\r
+                                               'cab',\r
+                                               'lzh',\r
+                                               'rar',\r
+                                               'mid',\r
+                                               'rmi',\r
+                                               'au',\r
+                                               'wav',\r
+                                               'avi',\r
+                                               'exe'\r
+                                       )\r
+                               ) {\r
+                                       $Infomation .= ' / Header analysis failure';\r
+                               }\r
+                               if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {\r
+                                       $Ext = $FileExt;\r
+                               }\r
+                               last;\r
+                       }\r
+               }\r
+               # a MIME type is unknown--It judges from an extension.\r
+               unless ($Ext) {\r
+                       $ContentName = &CheckContentExt($FileExt);\r
+                       if($ContentName) {\r
+                               $Ext = $FileExt;\r
+                               $Infomation .= ' /      MIME type is unknown('. $ContentType. ')';\r
+                               last;\r
+                       }\r
+               }\r
+       }\r
+\r
+#      $ContentName = &CheckContentExt($Ext)   unless($ContentName);\r
+#      if($Ext && $ContentName) {\r
+#              $ContentName .=  $Infomation;\r
+#      } else {\r
+#              &upload_error(\r
+#                      'Extension Error',\r
+#                      "$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))\r
+#              );\r
+#      }\r
+\r
+#      # SSI Tag Deletion\r
+#      if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {\r
+#              foreach (\r
+#                      'config',\r
+#                      'echo',\r
+#                      'exec',\r
+#                      'flastmod',\r
+#                      'fsize',\r
+#                      'include'\r
+#              ) {\r
+#                      $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig\r
+#              }\r
+#      }\r
+\r
+       return (\r
+               $FileName,\r
+               $Ext,\r
+               int($DataLength / 1024 + 1),\r
+               $ImageWidth,\r
+               $ImageHeight,\r
+               $ContentName\r
+       );\r
+}\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+# Extension discernment\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+\r
+sub CheckContentExt\r
+{\r
+\r
+       my($Ext) = @_;\r
+       my $ContentName;\r
+       foreach (keys %UPLOAD_EXT_LIST) {\r
+               next    unless ($_);\r
+               if($_ && $Ext =~ /^$_$/) {\r
+                       $ContentName = $UPLOAD_EXT_LIST{$_};\r
+                       last;\r
+               }\r
+       }\r
+       return $ContentName;\r
+\r
+}\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+# Form decode\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+sub Encode\r
+{\r
+\r
+       my($value,$Trans) = @_;\r
+\r
+#      my $FormCode = &jcode::getcode($value) || $FormCodeDefault;\r
+#      $FormCodeDefault ||= $FormCode;\r
+#\r
+#      if($Trans && $TRANS_2BYTE_CODE) {\r
+#              if($FormCode ne 'euc') {\r
+#                      &jcode::convert($value, 'euc', $FormCode);\r
+#              }\r
+#              &jcode::tr(\r
+#                      $value,\r
+#                      "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",\r
+#                      '0-9A-Za-z'\r
+#              );\r
+#              if($CHARCODE ne 'euc') {\r
+#                      &jcode::convert($value,$CHARCODE,'euc');\r
+#              }\r
+#      } else {\r
+#              if($CHARCODE ne $FormCode) {\r
+#                      &jcode::convert($value,$CHARCODE,$FormCode);\r
+#              }\r
+#      }\r
+#      if($CHARCODE eq 'euc') {\r
+#              &jcode::h2z_euc($value);\r
+#      } elsif($CHARCODE eq 'sjis') {\r
+#              &jcode::h2z_sjis($value);\r
+#      }\r
+\r
+}\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+# Error Msg\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+\r
+sub upload_error\r
+{\r
+\r
+       local($error_message)   = $_[0];\r
+       local($error_message2)  = $_[1];\r
+\r
+       print "Content-type: text/html\n\n";\r
+       print<<EOF;\r
+<HTML>\r
+<HEAD>\r
+<TITLE>Error Message</TITLE></HEAD>\r
+<BODY>\r
+<table border="1" cellspacing="10" cellpadding="10">\r
+       <TR bgcolor="#0000B0">\r
+       <TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>\r
+       </TR>\r
+</table>\r
+<UL>\r
+<H4> $error_message </H4>\r
+$error_message2 <BR>\r
+</UL>\r
+</BODY>\r
+</HTML>\r
+EOF\r
+       &rm_tmp_uploaded_files;                 # Image Temporary deletion\r
+       exit;\r
+}\r
+\r
+##############################################################################\r
+# Summary\r
+#\r
+# Image Temporary deletion\r
+#\r
+# Parameters\r
+# Returns\r
+# Memo\r
+##############################################################################\r
+\r
+sub rm_tmp_uploaded_files\r
+{\r
+       if($img_data_exists == 1){\r
+               sleep 1;\r
+               foreach $fname_list(@NEWFNAMES) {\r
+                       if(-e "$img_dir/$fname_list") {\r
+                               unlink("$img_dir/$fname_list");\r
+                       }\r
+               }\r
+       }\r
+\r
+}\r
+1;\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl b/httemplate/elements/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
new file mode 100644 (file)
index 0000000..e860292
--- /dev/null
@@ -0,0 +1,60 @@
+#####\r
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+#\r
+#  == BEGIN LICENSE ==\r
+#\r
+#  Licensed under the terms of any of the following licenses at your\r
+#  choice:\r
+#\r
+#   - GNU General Public License Version 2 or later (the "GPL")\r
+#     http://www.gnu.org/licenses/gpl.html\r
+#\r
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+#     http://www.gnu.org/licenses/lgpl.html\r
+#\r
+#   - Mozilla Public License Version 1.1 or later (the "MPL")\r
+#     http://www.mozilla.org/MPL/MPL-1.1.html\r
+#\r
+#  == END LICENSE ==\r
+#\r
+#  This is the File Manager Connector for Perl.\r
+#####\r
+\r
+sub RemoveFromStart\r
+{\r
+       local($sourceString, $charToRemove) = @_;\r
+       $sPattern = '^' . $charToRemove . '+' ;\r
+       $sourceString =~ s/^$charToRemove+//g;\r
+       return $sourceString;\r
+}\r
+\r
+sub RemoveFromEnd\r
+{\r
+       local($sourceString, $charToRemove) = @_;\r
+       $sPattern = $charToRemove . '+$' ;\r
+       $sourceString =~ s/$charToRemove+$//g;\r
+       return $sourceString;\r
+}\r
+\r
+sub ConvertToXmlAttribute\r
+{\r
+       local($value) = @_;\r
+       return $value;\r
+#      return utf8_encode(htmlspecialchars($value));\r
+\r
+}\r
+\r
+sub specialchar_cnv\r
+{\r
+       local($ch) = @_;\r
+\r
+       $ch =~ s/&/&amp;/g;             # &\r
+       $ch =~ s/\"/&quot;/g;   #"\r
+       $ch =~ s/\'/&#39;/g;    # '\r
+       $ch =~ s/</&lt;/g;              # <\r
+       $ch =~ s/>/&gt;/g;              # >\r
+       return($ch);\r
+}\r
+\r
+1;\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmactualfolder.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
new file mode 100644 (file)
index 0000000..90653d6
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page shows the actual folder path.\r
+-->\r
+<html>\r
+       <head>\r
+               <link href="browser.css" type="text/css" rel="stylesheet">\r
+               <script type="text/javascript">\r
+\r
+function OnResize()\r
+{\r
+       divName.style.width = "1px" ;\r
+       divName.style.width = tdName.offsetWidth + "px" ;\r
+}\r
+\r
+function SetCurrentFolder( resourceType, folderPath )\r
+{\r
+       document.getElementById('tdName').innerHTML = folderPath ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       window.top.IsLoadedActualFolder = true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body bottomMargin="0" topMargin="0">\r
+               <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                       <tr>\r
+                               <td>\r
+                                       <button style="WIDTH: 100%" type="button">\r
+                                               <table cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                                                       <tr>\r
+                                                               <td><img height="32" alt="" src="images/FolderOpened32.gif" width="32"></td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td id="tdName" width="100%" nowrap class="ActualFolder">/</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td><img height="8" src="images/ButtonArrow.gif" width="12"></td>\r
+                                                               <td>&nbsp;</td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </button>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
new file mode 100644 (file)
index 0000000..8f72ff5
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Page used to create new folders in the current folder.\r
+-->\r
+<html>\r
+       <head>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <link href="browser.css" type="text/css" rel="stylesheet">\r
+               <script type="text/javascript" src="js/common.js"></script>\r
+               <script language="javascript">\r
+\r
+function SetCurrentFolder( resourceType, folderPath )\r
+{\r
+       oConnector.ResourceType = resourceType ;\r
+       oConnector.CurrentFolder = folderPath ;\r
+}\r
+\r
+function CreateFolder()\r
+{\r
+       var sFolderName ;\r
+\r
+       while ( true )\r
+       {\r
+               sFolderName = prompt( 'Type the name of the new folder:', '' ) ;\r
+\r
+               if ( sFolderName == null )\r
+                       return ;\r
+               else if ( sFolderName.length == 0 )\r
+                       alert( 'Please type the folder name' ) ;\r
+               else\r
+                       break ;\r
+       }\r
+\r
+       oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ;\r
+}\r
+\r
+function CreateFolderCallBack( fckXml )\r
+{\r
+       if ( oConnector.CheckError( fckXml ) == 0 )\r
+               window.parent.frames['frmResourcesList'].Refresh() ;\r
+\r
+       /*\r
+       // Get the current folder path.\r
+       var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;\r
+       var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;\r
+\r
+       switch ( iErrorNumber )\r
+       {\r
+               case 0 :\r
+                       window.parent.frames['frmResourcesList'].Refresh() ;\r
+                       break ;\r
+               case 101 :\r
+                       alert( 'Folder already exists' ) ;\r
+                       break ;\r
+               case 102 :\r
+                       alert( 'Invalid folder name' ) ;\r
+                       break ;\r
+               case 103 :\r
+                       alert( 'You have no permissions to create the folder' ) ;\r
+                       break ;\r
+               case 110 :\r
+                       alert( 'Unknown error creating folder' ) ;\r
+                       break ;\r
+               default :\r
+                       alert( 'Error creating folder. Error number: ' + iErrorNumber ) ;\r
+                       break ;\r
+       }\r
+       */\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       window.top.IsLoadedCreateFolder = true ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body bottomMargin="0" topMargin="0">\r
+               <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                       <tr>\r
+                               <td>\r
+                                       <button type="button" style="WIDTH: 100%" onclick="CreateFolder();">\r
+                                               <table cellSpacing="0" cellPadding="0" border="0">\r
+                                                       <tr>\r
+                                                               <td><img height="16" alt="" src="images/Folder.gif" width="16"></td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td nowrap>Create New Folder</td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </button>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmfolders.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmfolders.html
new file mode 100644 (file)
index 0000000..2dc0eb0
--- /dev/null
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page shows the list of folders available in the parent folder\r
+ * of the current folder.\r
+-->\r
+<html>\r
+       <head>\r
+               <link href="browser.css" type="text/css" rel="stylesheet">\r
+               <script type="text/javascript" src="js/common.js"></script>\r
+               <script language="javascript">\r
+\r
+var sActiveFolder ;\r
+\r
+var bIsLoaded = false ;\r
+var iIntervalId ;\r
+\r
+var oListManager = new Object() ;\r
+\r
+oListManager.Init = function()\r
+{\r
+       this.Table = document.getElementById('tableFiles') ;\r
+       this.UpRow = document.getElementById('trUp') ;\r
+\r
+       this.TableRows = new Object() ;\r
+}\r
+\r
+oListManager.Clear = function()\r
+{\r
+       // Remove all other rows available.\r
+       while ( this.Table.rows.length > 1 )\r
+               this.Table.deleteRow(1) ;\r
+\r
+       // Reset the TableRows collection.\r
+       this.TableRows = new Object() ;\r
+}\r
+\r
+oListManager.AddItem = function( folderName, folderPath )\r
+{\r
+       // Create the new row.\r
+       var oRow = this.Table.insertRow(-1) ;\r
+       oRow.className = 'FolderListFolder' ;\r
+\r
+       // Build the link to view the folder.\r
+       var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;\r
+\r
+       // Add the folder icon cell.\r
+       var oCell = oRow.insertCell(-1) ;\r
+       oCell.width = 16 ;\r
+       oCell.innerHTML = sLink + '<img alt="" src="images/spacer.gif" width="16" height="16" border="0"></a>' ;\r
+\r
+       // Add the folder name cell.\r
+       oCell = oRow.insertCell(-1) ;\r
+       oCell.noWrap = true ;\r
+       oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;\r
+\r
+       this.TableRows[ folderPath ] = oRow ;\r
+}\r
+\r
+oListManager.ShowUpFolder = function( upFolderPath )\r
+{\r
+       this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;\r
+\r
+       if ( upFolderPath != null )\r
+       {\r
+               document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()\r
+               {\r
+                       LoadFolders( upFolderPath ) ;\r
+                       return false ;\r
+               }\r
+       }\r
+}\r
+\r
+function CheckLoaded()\r
+{\r
+       if ( window.top.IsLoadedActualFolder\r
+               && window.top.IsLoadedCreateFolder\r
+               && window.top.IsLoadedUpload\r
+               && window.top.IsLoadedResourcesList )\r
+       {\r
+               window.clearInterval( iIntervalId ) ;\r
+               bIsLoaded = true ;\r
+               OpenFolder( sActiveFolder ) ;\r
+       }\r
+}\r
+\r
+function OpenFolder( folderPath )\r
+{\r
+       sActiveFolder = folderPath ;\r
+\r
+       if ( ! bIsLoaded )\r
+       {\r
+               if ( ! iIntervalId )\r
+                       iIntervalId = window.setInterval( CheckLoaded, 100 ) ;\r
+               return ;\r
+       }\r
+\r
+       // Change the style for the select row (to show the opened folder).\r
+       for ( var sFolderPath in oListManager.TableRows )\r
+       {\r
+               oListManager.TableRows[ sFolderPath ].className =\r
+                       ( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;\r
+       }\r
+\r
+       // Set the current folder in all frames.\r
+       window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;\r
+       window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;\r
+       window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;\r
+\r
+       // Load the resources list for this folder.\r
+       window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;\r
+}\r
+\r
+function LoadFolders( folderPath )\r
+{\r
+       // Clear the folders list.\r
+       oListManager.Clear() ;\r
+\r
+       // Get the parent folder path.\r
+       var sParentFolderPath ;\r
+       if ( folderPath != '/' )\r
+               sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 ) ;\r
+\r
+       // Show/Hide the Up Folder.\r
+       oListManager.ShowUpFolder( sParentFolderPath ) ;\r
+\r
+       if ( folderPath != '/' )\r
+       {\r
+               sActiveFolder = folderPath ;\r
+               oConnector.CurrentFolder = sParentFolderPath ;\r
+               oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;\r
+       }\r
+       else\r
+               OpenFolder( '/' ) ;\r
+}\r
+\r
+function GetFoldersCallBack( fckXml )\r
+{\r
+       if ( oConnector.CheckError( fckXml ) != 0 )\r
+               return ;\r
+\r
+       // Get the current folder path.\r
+       var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;\r
+       var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;\r
+\r
+       var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;\r
+\r
+       for ( var i = 0 ; i < oNodes.length ; i++ )\r
+       {\r
+               var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;\r
+               oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;\r
+       }\r
+\r
+       OpenFolder( sActiveFolder ) ;\r
+}\r
+\r
+function SetResourceType( type )\r
+{\r
+       oConnector.ResourceType = type ;\r
+       LoadFolders( '/' ) ;\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       oListManager.Init() ;\r
+       LoadFolders( '/' ) ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">\r
+               <table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                       <tr id="trUp" style="DISPLAY: none">\r
+                               <td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>\r
+                               <td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourceslist.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
new file mode 100644 (file)
index 0000000..3f041f7
--- /dev/null
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page shows all resources available in a folder in the File Browser.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <link href="browser.css" type="text/css" rel="stylesheet" />\r
+       <script type="text/javascript" src="js/common.js"></script>\r
+       <script type="text/javascript">\r
+\r
+var oListManager = new Object() ;\r
+\r
+oListManager.Clear = function()\r
+{\r
+       document.body.innerHTML = '' ;\r
+}\r
+\r
+oListManager.GetFolderRowHtml = function( folderName, folderPath )\r
+{\r
+       // Build the link to view the folder.\r
+       var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath.replace( /'/g, '\\\'') + '\');return false;">' ;\r
+\r
+       return '<tr>' +\r
+                       '<td width="16">' +\r
+                               sLink +\r
+                               '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' +\r
+                       '</td><td nowrap colspan="2">&nbsp;' +\r
+                               sLink +\r
+                               folderName +\r
+                               '</a>' +\r
+               '</td></tr>' ;\r
+}\r
+\r
+oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )\r
+{\r
+       // Build the link to view the folder.\r
+       var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;\r
+\r
+       // Get the file icon.\r
+       var sIcon = oIcons.GetIcon( fileName ) ;\r
+\r
+       return '<tr>' +\r
+                       '<td width="16">' +\r
+                               sLink +\r
+                               '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +\r
+                       '</td><td>&nbsp;' +\r
+                               sLink +\r
+                               fileName +\r
+                               '</a>' +\r
+                       '</td><td align="right" nowrap>&nbsp;' +\r
+                               fileSize +\r
+                               ' KB' +\r
+               '</td></tr>' ;\r
+}\r
+\r
+function OpenFolder( folderPath )\r
+{\r
+       // Load the resources list for this folder.\r
+       window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;\r
+}\r
+\r
+function OpenFile( fileUrl )\r
+{\r
+       window.top.opener.SetUrl( encodeURI( fileUrl ) ) ;\r
+       window.top.close() ;\r
+       window.top.opener.focus() ;\r
+}\r
+\r
+function LoadResources( resourceType, folderPath )\r
+{\r
+       oListManager.Clear() ;\r
+       oConnector.ResourceType = resourceType ;\r
+       oConnector.CurrentFolder = folderPath ;\r
+       oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;\r
+}\r
+\r
+function Refresh()\r
+{\r
+       LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;\r
+}\r
+\r
+function GetFoldersAndFilesCallBack( fckXml )\r
+{\r
+       if ( oConnector.CheckError( fckXml ) != 0 )\r
+               return ;\r
+\r
+       // Get the current folder path.\r
+       var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;\r
+       if ( oFolderNode == null )\r
+       {\r
+               alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' ) ;\r
+               return ;\r
+       }\r
+       var sCurrentFolderPath  = oFolderNode.attributes.getNamedItem('path').value ;\r
+       var sCurrentFolderUrl   = oFolderNode.attributes.getNamedItem('url').value ;\r
+\r
+//     var dTimer = new Date() ;\r
+\r
+       var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ;\r
+\r
+       // Add the Folders.\r
+       var oNodes ;\r
+       oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;\r
+       for ( var i = 0 ; i < oNodes.length ; i++ )\r
+       {\r
+               var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;\r
+               oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ;\r
+       }\r
+\r
+       // Add the Files.\r
+       oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;\r
+       for ( var j = 0 ; j < oNodes.length ; j++ )\r
+       {\r
+               var oNode = oNodes[j] ;\r
+               var sFileName = oNode.attributes.getNamedItem('name').value ;\r
+               var sFileSize = oNode.attributes.getNamedItem('size').value ;\r
+\r
+               // Get the optional "url" attribute. If not available, build the url.\r
+               var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url') ;\r
+               var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ;\r
+\r
+               oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ;\r
+       }\r
+\r
+       oHtml.Append( '<\/table>' ) ;\r
+\r
+       document.body.innerHTML = oHtml.ToString() ;\r
+\r
+//     window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;\r
+\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       window.top.IsLoadedResourcesList = true ;\r
+}\r
+       </script>\r
+</head>\r
+<body class="FileArea" bottommargin="10" leftmargin="10" topmargin="10" rightmargin="10">\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourcetype.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
new file mode 100644 (file)
index 0000000..933e855
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This page shows the list of available resource types.\r
+-->\r
+<html>\r
+       <head>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <link href="browser.css" type="text/css" rel="stylesheet">\r
+               <script type="text/javascript" src="js/common.js"></script>\r
+               <script language="javascript">\r
+\r
+function SetResourceType( type )\r
+{\r
+       window.parent.frames["frmFolders"].SetResourceType( type ) ;\r
+}\r
+\r
+var aTypes = [\r
+       ['File','File'],\r
+       ['Image','Image'],\r
+       ['Flash','Flash'],\r
+       ['Media','Media']\r
+] ;\r
+\r
+window.onload = function()\r
+{\r
+       for ( var i = 0 ; i < aTypes.length ; i++ )\r
+       {\r
+               if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )\r
+                       AddSelectOption( document.getElementById('cmbType'), aTypes[i][1], aTypes[i][0] ) ;\r
+       }\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body bottomMargin="0" topMargin="0">\r
+               <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                       <tr>\r
+                               <td nowrap>\r
+                                       Resource Type<BR>\r
+                                       <select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">\r
+                                       </select>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmupload.html b/httemplate/elements/fckeditor/editor/filemanager/browser/default/frmupload.html
new file mode 100644 (file)
index 0000000..b84882d
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Page used to upload new files in the current folder.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+       <head>\r
+               <link href="browser.css" type="text/css" rel="stylesheet" />\r
+               <script type="text/javascript" src="js/common.js"></script>\r
+               <script type="text/javascript">\r
+\r
+function SetCurrentFolder( resourceType, folderPath )\r
+{\r
+       var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;\r
+       sUrl += '&Type=' + resourceType ;\r
+       sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ;\r
+\r
+       document.getElementById('frmUpload').action = sUrl ;\r
+}\r
+\r
+function OnSubmit()\r
+{\r
+       if ( document.getElementById('NewFile').value.length == 0 )\r
+       {\r
+               alert( 'Please select a file from your computer' ) ;\r
+               return false ;\r
+       }\r
+\r
+       // Set the interface elements.\r
+       document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;\r
+       document.getElementById('btnUpload').disabled = true ;\r
+\r
+       return true ;\r
+}\r
+\r
+function OnUploadCompleted( errorNumber, data )\r
+{\r
+       // Reset the Upload Worker Frame.\r
+       window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;\r
+\r
+       // Reset the upload form (On IE we must do a little trick to avout problems).\r
+       if ( document.all )\r
+               document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;\r
+       else\r
+               document.getElementById('frmUpload').reset() ;\r
+\r
+       // Reset the interface elements.\r
+       document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;\r
+       document.getElementById('btnUpload').disabled = false ;\r
+\r
+       switch ( errorNumber )\r
+       {\r
+               case 0 :\r
+                       window.parent.frames['frmResourcesList'].Refresh() ;\r
+                       break ;\r
+               case 1 :        // Custom error.\r
+                       alert( data ) ;\r
+                       break ;\r
+               case 201 :\r
+                       window.parent.frames['frmResourcesList'].Refresh() ;\r
+                       alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' ) ;\r
+                       break ;\r
+               case 202 :\r
+                       alert( 'Invalid file' ) ;\r
+                       break ;\r
+               default :\r
+                       alert( 'Error on file upload. Error number: ' + errorNumber ) ;\r
+                       break ;\r
+       }\r
+}\r
+\r
+window.onload = function()\r
+{\r
+       window.top.IsLoadedUpload = true ;\r
+}\r
+               </script>\r
+       </head>\r
+       <body bottommargin="0" topmargin="0">\r
+               <form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">\r
+                       <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                               <tr>\r
+                                       <td nowrap="nowrap">\r
+                                               <span id="eUploadMessage">Upload a new file in this folder</span><br>\r
+                                               <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                                       <tr>\r
+                                                               <td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>\r
+                                                               <td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </table>\r
+               </form>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif
new file mode 100644 (file)
index 0000000..a355e5a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder.gif
new file mode 100644 (file)
index 0000000..ab6824d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder32.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder32.gif
new file mode 100644 (file)
index 0000000..b93b752
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/Folder32.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif
new file mode 100644 (file)
index 0000000..0c5dd41
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif
new file mode 100644 (file)
index 0000000..3e3fcf5
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif
new file mode 100644 (file)
index 0000000..ad5bc20
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif
new file mode 100644 (file)
index 0000000..699e6a3
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif
new file mode 100644 (file)
index 0000000..97025bb
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif
new file mode 100644 (file)
index 0000000..f3c7f82
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif
new file mode 100644 (file)
index 0000000..b62bd02
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif
new file mode 100644 (file)
index 0000000..976997b
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif
new file mode 100644 (file)
index 0000000..9b54964
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif
new file mode 100644 (file)
index 0000000..b557568
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif
new file mode 100644 (file)
index 0000000..7584993
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif
new file mode 100644 (file)
index 0000000..923079f
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif
new file mode 100644 (file)
index 0000000..df5f579
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif
new file mode 100644 (file)
index 0000000..a9bdf00
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif
new file mode 100644 (file)
index 0000000..a9bdf00
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif
new file mode 100644 (file)
index 0000000..de78363
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif
new file mode 100644 (file)
index 0000000..fe0c98e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif
new file mode 100644 (file)
index 0000000..d3af9e8
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif
new file mode 100644 (file)
index 0000000..7d6360f
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif
new file mode 100644 (file)
index 0000000..4950ec8
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
new file mode 100644 (file)
index 0000000..0a79ebf
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif
new file mode 100644 (file)
index 0000000..023431c
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif
new file mode 100644 (file)
index 0000000..b9eace7
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif
new file mode 100644 (file)
index 0000000..5df7de5
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif
new file mode 100644 (file)
index 0000000..7807c07
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif
new file mode 100644 (file)
index 0000000..4e2c2e3
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif
new file mode 100644 (file)
index 0000000..7624697
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif
new file mode 100644 (file)
index 0000000..afe724a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif
new file mode 100644 (file)
index 0000000..4fae356
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif
new file mode 100644 (file)
index 0000000..7157f72
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif
new file mode 100644 (file)
index 0000000..ba5a913
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif
new file mode 100644 (file)
index 0000000..6f3bac9
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif
new file mode 100644 (file)
index 0000000..7708dd8
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif
new file mode 100644 (file)
index 0000000..4d92723
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif
new file mode 100644 (file)
index 0000000..6ce26a4
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif
new file mode 100644 (file)
index 0000000..48d445a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif
new file mode 100644 (file)
index 0000000..6535b4c
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif
new file mode 100644 (file)
index 0000000..315817f
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif
new file mode 100644 (file)
index 0000000..8f91a98
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif
new file mode 100644 (file)
index 0000000..a5e3e6c
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif
new file mode 100644 (file)
index 0000000..0b5d6ba
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/html.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/html.gif
new file mode 100644 (file)
index 0000000..0b5d6ba
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/html.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif
new file mode 100644 (file)
index 0000000..634b386
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/js.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/js.gif
new file mode 100644 (file)
index 0000000..4ea17d4
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/js.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif
new file mode 100644 (file)
index 0000000..0d7c102
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif
new file mode 100644 (file)
index 0000000..6f3bac9
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif
new file mode 100644 (file)
index 0000000..ca1f94a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/png.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
new file mode 100644 (file)
index 0000000..b6d1b32
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/png.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif
new file mode 100644 (file)
index 0000000..877a8c8
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif
new file mode 100644 (file)
index 0000000..916cd7e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif
new file mode 100644 (file)
index 0000000..314469d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif
new file mode 100644 (file)
index 0000000..314469d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif
new file mode 100644 (file)
index 0000000..1511ba3
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif
new file mode 100644 (file)
index 0000000..9be3daa
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif
new file mode 100644 (file)
index 0000000..f57715d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif
new file mode 100644 (file)
index 0000000..4559928
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif
new file mode 100644 (file)
index 0000000..b1e2492
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/spacer.gif b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/spacer.gif
new file mode 100644 (file)
index 0000000..35d42e8
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/filemanager/browser/default/images/spacer.gif differ
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/js/common.js b/httemplate/elements/fckeditor/editor/filemanager/browser/default/js/common.js
new file mode 100644 (file)
index 0000000..2f47217
--- /dev/null
@@ -0,0 +1,55 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Common objects and functions shared by all pages that compose the\r
+ * File Browser dialog window.\r
+ */\r
+\r
+function AddSelectOption( selectElement, optionText, optionValue )\r
+{\r
+       var oOption = document.createElement("OPTION") ;\r
+\r
+       oOption.text    = optionText ;\r
+       oOption.value   = optionValue ;\r
+\r
+       selectElement.options.add(oOption) ;\r
+\r
+       return oOption ;\r
+}\r
+\r
+var oConnector = window.parent.oConnector ;\r
+var oIcons             = window.parent.oIcons ;\r
+\r
+\r
+function StringBuilder( value )\r
+{\r
+    this._Strings = new Array( value || '' ) ;\r
+}\r
+\r
+StringBuilder.prototype.Append = function( value )\r
+{\r
+    if ( value )\r
+        this._Strings.push( value ) ;\r
+}\r
+\r
+StringBuilder.prototype.ToString = function()\r
+{\r
+    return this._Strings.join( '' ) ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/filemanager/browser/default/js/fckxml.js b/httemplate/elements/fckeditor/editor/filemanager/browser/default/js/fckxml.js
new file mode 100644 (file)
index 0000000..043ca84
--- /dev/null
@@ -0,0 +1,129 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Defines the FCKXml object that is used for XML data calls\r
+ * and XML processing.\r
+ *\r
+ * This script is shared by almost all pages that compose the\r
+ * File Browser frameset.\r
+ */\r
+\r
+var FCKXml = function()\r
+{}\r
+\r
+FCKXml.prototype.GetHttpRequest = function()\r
+{\r
+       // Gecko / IE7\r
+       if ( typeof(XMLHttpRequest) != 'undefined' )\r
+               return new XMLHttpRequest() ;\r
+\r
+       // IE6\r
+       try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }\r
+       catch(e) {}\r
+\r
+       // IE5\r
+       try { return new ActiveXObject( 'Microsoft.XMLHTTP' ) ; }\r
+       catch(e) {}\r
+\r
+       return null ;\r
+}\r
+\r
+FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )\r
+{\r
+       var oFCKXml = this ;\r
+\r
+       var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;\r
+\r
+       var oXmlHttp = this.GetHttpRequest() ;\r
+\r
+       oXmlHttp.open( "GET", urlToCall, bAsync ) ;\r
+\r
+       if ( bAsync )\r
+       {\r
+               oXmlHttp.onreadystatechange = function()\r
+               {\r
+                       if ( oXmlHttp.readyState == 4 )\r
+                       {\r
+                               if ( ( oXmlHttp.status != 200 && oXmlHttp.status != 304 ) || oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null )\r
+                               {\r
+                                       alert( 'The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' +\r
+                                                       'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')\n\n' +\r
+                                                       'Requested URL:\n' + urlToCall + '\n\n' +\r
+                                                       'Response text:\n' + oXmlHttp.responseText ) ;\r
+                                       return ;\r
+                               }\r
+\r
+                               oFCKXml.DOMDocument = oXmlHttp.responseXML ;\r
+                               asyncFunctionPointer( oFCKXml ) ;\r
+                       }\r
+               }\r
+       }\r
+\r
+       oXmlHttp.send( null ) ;\r
+\r
+       if ( ! bAsync )\r
+       {\r
+               if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )\r
+                       this.DOMDocument = oXmlHttp.responseXML ;\r
+               else\r
+               {\r
+                       alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;\r
+               }\r
+       }\r
+}\r
+\r
+FCKXml.prototype.SelectNodes = function( xpath )\r
+{\r
+       if ( navigator.userAgent.indexOf('MSIE') >= 0 )         // IE\r
+               return this.DOMDocument.selectNodes( xpath ) ;\r
+       else                                    // Gecko\r
+       {\r
+               var aNodeArray = new Array();\r
+\r
+               var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,\r
+                               this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;\r
+               if ( xPathResult )\r
+               {\r
+                       var oNode = xPathResult.iterateNext() ;\r
+                       while( oNode )\r
+                       {\r
+                               aNodeArray[aNodeArray.length] = oNode ;\r
+                               oNode = xPathResult.iterateNext();\r
+                       }\r
+               }\r
+               return aNodeArray ;\r
+       }\r
+}\r
+\r
+FCKXml.prototype.SelectSingleNode = function( xpath )\r
+{\r
+       if ( navigator.userAgent.indexOf('MSIE') >= 0 )         // IE\r
+               return this.DOMDocument.selectSingleNode( xpath ) ;\r
+       else                                    // Gecko\r
+       {\r
+               var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,\r
+                               this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);\r
+\r
+               if ( xPathResult && xPathResult.singleNodeValue )\r
+                       return xPathResult.singleNodeValue ;\r
+               else\r
+                       return null ;\r
+       }\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/filemanager/upload/test.html b/httemplate/elements/fckeditor/editor/filemanager/upload/test.html
new file mode 100644 (file)
index 0000000..cf29e97
--- /dev/null
@@ -0,0 +1,133 @@
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Test page for the "File Uploaders".\r
+-->\r
+<html>\r
+       <head>\r
+               <title>FCKeditor - Uploaders Tests</title>\r
+               <script language="javascript">\r
+\r
+function SendFile()\r
+{\r
+       var sUploaderUrl = cmbUploaderUrl.value ;\r
+\r
+       if ( sUploaderUrl.length == 0 )\r
+               sUploaderUrl = txtCustomUrl.value ;\r
+\r
+       if ( sUploaderUrl.length == 0 )\r
+       {\r
+               alert( 'Please provide your custom URL or select a default one' ) ;\r
+               return ;\r
+       }\r
+\r
+       eURL.innerHTML = sUploaderUrl ;\r
+       txtUrl.value = '' ;\r
+\r
+       frmUpload.action = sUploaderUrl ;\r
+       frmUpload.submit() ;\r
+}\r
+\r
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )\r
+{\r
+       switch ( errorNumber )\r
+       {\r
+               case 0 :        // No errors\r
+                       txtUrl.value = fileUrl ;\r
+                       alert( 'File uploaded with no errors' ) ;\r
+                       break ;\r
+               case 1 :        // Custom error\r
+                       alert( customMsg ) ;\r
+                       break ;\r
+               case 10 :       // Custom warning\r
+                       txtUrl.value = fileUrl ;\r
+                       alert( customMsg ) ;\r
+                       break ;\r
+               case 201 :\r
+                       txtUrl.value = fileUrl ;\r
+                       alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;\r
+                       break ;\r
+               case 202 :\r
+                       alert( 'Invalid file' ) ;\r
+                       break ;\r
+               case 203 :\r
+                       alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;\r
+                       break ;\r
+               default :\r
+                       alert( 'Error on file upload. Error number: ' + errorNumber ) ;\r
+                       break ;\r
+       }\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body>\r
+               <table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">\r
+                       <tr>\r
+                               <td>\r
+                                       <table cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td nowrap>\r
+                                                               Select the "File Uploader" to use:<br>\r
+                                                               <select id="cmbUploaderUrl">\r
+                                                                       <option selected value="asp/upload.asp">ASP</option>\r
+                                                                       <option value="aspx/upload.aspx">ASP.Net</option>\r
+                                                                       <option value="cfm/upload.cfm">ColdFusion</option>\r
+                                                                       <option value="lasso/upload.lasso">Lasso</option>\r
+                                                                       <option value="php/upload.php">PHP</option>\r
+                                                                       <option value="">(Custom)</option>\r
+                                                               </select>\r
+                                                       </td>\r
+                                                       <td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td width="100%">\r
+                                                               Custom Uploader URL:<BR>\r
+                                                               <input id="txtCustomUrl" style="WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc" disabled type="text">\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <br>\r
+                                       <table cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                                               <tr>\r
+                                                       <td noWrap>\r
+                                                               <form id="frmUpload" target="UploadWindow" enctype="multipart/form-data" action="" method="post">\r
+                                                                       Upload a new file:<br>\r
+                                                                       <input type="file" name="NewFile"><br>\r
+                                                                       <input type="button" value="Send it to the Server" onclick="SendFile();">\r
+                                                               </form>\r
+                                                       </td>\r
+                                                       <td style="WIDTH: 16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\r
+                                                       <td vAlign="top" width="100%">\r
+                                                               Uploaded File URL:<br>\r
+                                                               <INPUT id="txtUrl" style="WIDTH: 100%" readonly type="text">\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                                       <br>\r
+                                       Post URL: <span id="eURL">&nbsp;</span>\r
+                               </td>\r
+                       </tr>\r
+                       <tr>\r
+                               <td height="100%">\r
+                                       <iframe name="UploadWindow" width="100%" height="100%" src="javascript:void(0)"></iframe>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/images/anchor.gif b/httemplate/elements/fckeditor/editor/images/anchor.gif
new file mode 100644 (file)
index 0000000..5aa797b
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/anchor.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/arrow_ltr.gif b/httemplate/elements/fckeditor/editor/images/arrow_ltr.gif
new file mode 100644 (file)
index 0000000..9c59bfe
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/arrow_ltr.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/arrow_rtl.gif b/httemplate/elements/fckeditor/editor/images/arrow_rtl.gif
new file mode 100644 (file)
index 0000000..22e8649
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/arrow_rtl.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/angel_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/angel_smile.gif
new file mode 100644 (file)
index 0000000..a95e053
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/angel_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/angry_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/angry_smile.gif
new file mode 100644 (file)
index 0000000..c667c5d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/angry_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/broken_heart.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/broken_heart.gif
new file mode 100644 (file)
index 0000000..938cce1
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/broken_heart.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/cake.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/cake.gif
new file mode 100644 (file)
index 0000000..f6489d7
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/cake.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/confused_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/confused_smile.gif
new file mode 100644 (file)
index 0000000..aeb0539
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/confused_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/cry_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/cry_smile.gif
new file mode 100644 (file)
index 0000000..0758f42
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/cry_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/devil_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/devil_smile.gif
new file mode 100644 (file)
index 0000000..15518d7
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/devil_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/embaressed_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/embaressed_smile.gif
new file mode 100644 (file)
index 0000000..c431946
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/embaressed_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/envelope.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/envelope.gif
new file mode 100644 (file)
index 0000000..66d3656
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/envelope.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/heart.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/heart.gif
new file mode 100644 (file)
index 0000000..305714f
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/heart.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/kiss.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/kiss.gif
new file mode 100644 (file)
index 0000000..f840ea6
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/kiss.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/lightbulb.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/lightbulb.gif
new file mode 100644 (file)
index 0000000..863be6e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/lightbulb.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/omg_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/omg_smile.gif
new file mode 100644 (file)
index 0000000..aabc7fd
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/omg_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/regular_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/regular_smile.gif
new file mode 100644 (file)
index 0000000..33f297e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/regular_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/sad_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/sad_smile.gif
new file mode 100644 (file)
index 0000000..dfb78ef
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/sad_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/shades_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/shades_smile.gif
new file mode 100644 (file)
index 0000000..157df77
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/shades_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/teeth_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/teeth_smile.gif
new file mode 100644 (file)
index 0000000..26b5a55
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/teeth_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_down.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_down.gif
new file mode 100644 (file)
index 0000000..f53ee72
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_down.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_up.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_up.gif
new file mode 100644 (file)
index 0000000..7e8c746
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/thumbs_up.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/tounge_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/tounge_smile.gif
new file mode 100644 (file)
index 0000000..b87ec44
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/tounge_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif
new file mode 100644 (file)
index 0000000..c074122
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/smiley/msn/wink_smile.gif b/httemplate/elements/fckeditor/editor/images/smiley/msn/wink_smile.gif
new file mode 100644 (file)
index 0000000..eefe61d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/smiley/msn/wink_smile.gif differ
diff --git a/httemplate/elements/fckeditor/editor/images/spacer.gif b/httemplate/elements/fckeditor/editor/images/spacer.gif
new file mode 100644 (file)
index 0000000..5bfd67a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/images/spacer.gif differ
diff --git a/httemplate/elements/fckeditor/editor/js/fckeditorcode_gecko.js b/httemplate/elements/fckeditor/editor/js/fckeditorcode_gecko.js
new file mode 100644 (file)
index 0000000..8d5d31a
--- /dev/null
@@ -0,0 +1,98 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ * \r
+ * == BEGIN LICENSE ==\r
+ * \r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ * \r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ * \r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ * \r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ * \r
+ * == END LICENSE ==\r
+ * \r
+ * This file has been compressed for better performance. The original source\r
+ * can be found at "editor/_source".\r
+ */\r
+\r
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;\r
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}\r
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));}else A.IsGecko10=false;})(FCKBrowserInfo);\r
+var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();\r
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};\r
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;FCKListsLib.Setup();this.SetHTML(this.GetLinkedFieldValue(),true);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage){B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;}else{B=FCKXHtml.GetXHTML(C.body,false,A);if (FCKConfig.IgnoreEmptyParagraphValue&&FCKRegexLib.EmptyOutParagraph.test(B)) B='';};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML':'ABBR|XML';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetHTML:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};this._ForceResetIsDirty=(B===true);var C='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) C=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C=A.replace(FCKRegexLib.HeadCloser,C+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) C=C.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{C=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) C+=' style="overflow-y: scroll"';C+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+=FCK.TempBaseTag;var D='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) D+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) D+=' class="'+FCKConfig.BodyClass+'"';C+='</head>'+D+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) C+=GECKO_BOGUS;else C+=A;C+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(C);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};\r
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try                      { if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)        { FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;case 'Cut':try                       { FCK.ExecuteNamedCommand('Cut',null,true);}catch (e)   { alert(FCKLang.PasteErrorCut);};break;case 'Copy':try                  { FCK.ExecuteNamedCommand('Copy',null,true);}catch (e)  { alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);FCKSelection.SelectNode(E);FCKSelection.Collapse(false);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);FCKSelection.SelectNode(A);FCKSelection.Collapse(false);this.Focus();};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){var B=[];FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var C='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',C);var D=this.EditorDocument.evaluate("//a[@href='"+C+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i<D.snapshotLength;i++){var E=D.snapshotItem(i);E.href=A;B.push(E);}};return B;};\r
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}\r
+var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}\r
+var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){C.parentNode.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){C.parentNode.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};\r
+var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};\r
+FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.getAttribute('style');if (C&&C.length>0){B.Inline=C;A.setAttribute('style','',0);};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);while (A){var E=D.getComputedStyle(A,'').position;if (E&&E!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}\r
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4.3",VersionBuild : "15657",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue       : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);\r
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}\r
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi};\r
+var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ 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,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,td:1,th:1,caption:1,form:1 },Setup:function(){if (FCKConfig.EnterMode=='div') this.PathBlockElements.div=1;else this.PathBlockLimitElements.div=1;}};\r
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};\r
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'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','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'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'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'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'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}\r
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C) FCKDomTools.TrimNode(A,true);if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var E=A.nodeName;if (FCKListsLib.InlineChildReqElements[E]) return null;if (!FCKListsLib.EmptyElements[E]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) return false;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');A=FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;\r
+FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}}\r
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}\r
+var FCKUndo={};FCKUndo.SaveUndoStep=function(){}\r
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};\r
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}\r
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};\r
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null) C=e;};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};\r
+var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsCollapsed();if (!C){var D=this.Window.document.createElement('div');B._Range.cloneContents().AppendTo(D);FCKDomTools.TrimNode(D,true);C=true;var E=D;while ((E=E.lastChild)){if (E.previousSibling||E.nodeType!=1||FCKListsLib.InlineChildReqElements[E.nodeName.toLowerCase()]==null){C=false;break;}}};B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};\r
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A.rangeCount==1){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=this.Window.document.createRange();B.setStart(A.startContainer,A.startOffset);try{B.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);B.setEnd(A.endContainer,A.endOffset);}else throw(e);};var C=this.Window.getSelection();C.removeAllRanges();C.addRange(B);}};\r
+var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}}\r
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(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;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};\r
+var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var I=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(I);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);if (!B) C.MoveToSelection();if (C.StartBlockLimit==C.EndBlockLimit){if (!C.StartBlock) this._FixBlock(C,true,A);if (!C.EndBlock) this._FixBlock(C,false,A);var D=C.StartBlock;var E=C.EndBlock;if (!C.CheckIsEmpty()) C.DeleteContents();if (D==E){var F;var G=C.CheckStartOfBlock();var H=C.CheckEndOfBlock();if (G&&!H){F=D.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) F.innerHTML=GECKO_BOGUS;D.parentNode.insertBefore(F,D);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(F);C.Select();};C.MoveToElementEditStart(D);}else{if (H){var I=D.tagName.toUpperCase();if (G&&I=='LI'){this._OutdentWithSelection(D,C);C.Release();return true;}else{if ((/^H[1-6]$/).test(I)||this._HasShift) F=this.Window.document.createElement(A);else{F=D.cloneNode(false);this._RecreateEndingTree(D,F);};if (FCKBrowserInfo.IsGeckoLike){F.innerHTML=GECKO_BOGUS;if (G) D.innerHTML=GECKO_BOGUS;}}}else{C.SetEnd(D,2);var J=C.ExtractContents();F=D.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) F.innerHTML=GECKO_BOGUS;J.AppendTo(F);if (FCKBrowserInfo.IsGecko){this._AppendBogusBr(D);this._AppendBogusBr(F);}};if (F){FCKDomTools.InsertAfterNode(D,F);C.MoveToElementEditStart(F);if (FCKBrowserInfo.IsGeckoLike) F.scrollIntoView(false);}}}else{C.MoveToElementEditStart(E);};C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) this._AppendBogusBr(G.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);};FCKEnterKey.prototype._AppendBogusBr=function(A){if (!A) return;var B=FCKTools.GetLastItem(A.getElementsByTagName('br'));if (!B||B.getAttribute('type',2)!='_moz') A.appendChild(FCKTools.CreateBogusBR(this.Window.document));};FCKEnterKey.prototype._RecreateEndingTree=function(A,B){while ((A=A.lastChild)&&A.nodeType==1&&FCKListsLib.InlineChildReqElements[A.nodeName.toLowerCase()]!=null) B=B.insertBefore(A.cloneNode(false),B.firstChild);};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();}\r
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=C.attributes['type'];if ((C.src&&C.src.EndsWith('.swf',true))||(D&&D.nodeValue=='application/x-shockwave-flash')){var E=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var F=['scale','play','loop','menu','wmode','quality'];for (var G=0;G<F.length;G++){var H=C.getAttribute(F[G]);if (H) E.setAttribute(F[G],H);};E.setAttribute('type',D.nodeValue);};var I=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',E);I.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(I,C);C.parentNode.insertBefore(I,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}\r
+var FCKSelection=FCK.Selection={};\r
+FCKSelection.GetType=function(){this._Type='Text';var A;try { A=FCK.EditorWindow.getSelection();}catch (e) {};if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1&&B.startContainer.nodeType!=Node.TEXT_NODE) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];};return null;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try              { B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};\r
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};\r
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C){A[0]=C;return A;}};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};\r
+var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}\r
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}\r
+FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection();var e=FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}\r
+var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}\r
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};\r
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};\r
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}\r
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver()   { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()    { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n                       <tr>\n                          <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n                             <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n                        </tr>\n         </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}\r
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};\r
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};\r
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}\r
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}\r
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};\r
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};\r
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;var E='';if (FCKBrowserInfo.IsSafari) E='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+E+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B)  this._IFrame.width=1;if (!C)    this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}\r
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}\r
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};\r
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}\r
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};\r
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};\r
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}\r
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}\r
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}\r
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}\r
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;\r
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}\r
+var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}\r
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);}\r
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};\r
+var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};\r
+FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;};\r
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}\r
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}\r
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}\r
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}\r
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};\r
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}\r
+var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}\r
diff --git a/httemplate/elements/fckeditor/editor/js/fckeditorcode_ie.js b/httemplate/elements/fckeditor/editor/js/fckeditorcode_ie.js
new file mode 100644 (file)
index 0000000..0d43957
--- /dev/null
@@ -0,0 +1,99 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ * \r
+ * == BEGIN LICENSE ==\r
+ * \r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ * \r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ * \r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ * \r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ * \r
+ * == END LICENSE ==\r
+ * \r
+ * This file has been compressed for better performance. The original source\r
+ * can be found at "editor/_source".\r
+ */\r
+\r
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;\r
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}\r
+var    FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}\r
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));}else A.IsGecko10=false;})(FCKBrowserInfo);\r
+var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();\r
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};\r
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;FCKListsLib.Setup();this.SetHTML(this.GetLinkedFieldValue(),true);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage){B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;}else{B=FCKXHtml.GetXHTML(C.body,false,A);if (FCKConfig.IgnoreEmptyParagraphValue&&FCKRegexLib.EmptyOutParagraph.test(B)) B='';};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML':'ABBR|XML';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetHTML:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};this._ForceResetIsDirty=(B===true);var C='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) C=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C=A.replace(FCKRegexLib.HeadCloser,C+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) C=C.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{C=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) C+=' style="overflow-y: scroll"';C+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+=FCK.TempBaseTag;var D='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) D+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) D+=' class="'+FCKConfig.BodyClass+'"';C+='</head>'+D+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) C+=GECKO_BOGUS;else C+=A;C+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(C);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};\r
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){return (FCK.Status==2&&FCK.Events.FireEvent("OnPaste"));};function Doc_OnKeyDown(){if (FCK.EditorWindow){var e=FCK.EditorWindow.event;if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();};return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+="&nbsp;";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__">&nbsp;</span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.EditorWindow=null;this.EditorDocument=null;};FCK.Paste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var A=clipboardData.getData("Text");if (A&&A.length>0){A=FCKTools.HTMLEncode(A).replace(/\n/g,'<BR>');this.InsertHtml(A);}};FCK._CheckIsPastingEnabled=function(A){FCK._PasteIsEnabled=false;document.body.attachEvent('onpaste',FCK_CheckPasting_Listener);var B=FCK.GetClipboardHTML();document.body.detachEvent('onpaste',FCK_CheckPasting_Listener);if (FCK._PasteIsEnabled){if (!A) B=true;}else B=false;delete FCK._PasteIsEnabled;return B;};function FCK_CheckPasting_Listener(){FCK._PasteIsEnabled=true;};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.CreateLink=function(A){var B=[];FCK.ExecuteNamedCommand('Unlink');if (A.length>0){if (FCKSelection.GetType()=='Control'){var C=this.EditorDocument.createElement('A');C.href=A;var D=FCKSelection.GetSelectedElement();D.parentNode.insertBefore(C,D);D.parentNode.removeChild(D);C.appendChild(D);return [C];};var E='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',E);var F=this.EditorDocument.links;for (i=0;i<F.length;i++){var C=F[i];if (C.getAttribute('href',2)==E){var H=C.innerHTML;C.href=A;C.innerHTML=H;var I=C.lastChild;if (I&&I.nodeName=='BR'){FCKDomTools.InsertAfterNode(C,C.removeChild(I));};B.push(C);}}};return B;};\r
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}\r
+var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}\r
+var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){C.parentNode.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){C.parentNode.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};\r
+var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};\r
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=top.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.style.cssText;if (C.length>0){B.Inline=C;A.style.cssText='';};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';A.style.cssText=B.Inline||'';};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();}\r
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4.3",VersionBuild : "15657",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue       : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);\r
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}\r
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi};\r
+var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ 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,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,td:1,th:1,caption:1,form:1 },Setup:function(){if (FCKConfig.EnterMode=='div') this.PathBlockElements.div=1;else this.PathBlockLimitElements.div=1;}};\r
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};\r
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'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','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'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'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'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'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}\r
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C) FCKDomTools.TrimNode(A,true);if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var E=A.nodeName;if (FCKListsLib.InlineChildReqElements[E]) return null;if (!FCKListsLib.EmptyElements[E]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) return false;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');A=FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;\r
+FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style') H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var D=B.getAttribute('shape',2);if (D&&D.length>0) FCKXHtml._AppendAttribute(A,'shape',D);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);var C=B.attributes['name'];if (C&&C.value.length>0) FCKXHtml._AppendAttribute(A,'name',C.value);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);return A;}\r
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}\r
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0) return;FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;}\r
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};\r
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}\r
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};\r
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null) C=e;};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};\r
+var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsCollapsed();if (!C){var D=this.Window.document.createElement('div');B._Range.cloneContents().AppendTo(D);FCKDomTools.TrimNode(D,true);C=true;var E=D;while ((E=E.lastChild)){if (E.previousSibling||E.nodeType!=1||FCKListsLib.InlineChildReqElements[E.nodeName.toLowerCase()]==null){C=false;break;}}};B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};\r
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){B=this._GetSelectionMarkerTag(true);this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);var B=this._GetSelectionMarkerTag(false);this._Range.setEnd(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._UpdateElementInfo();}else{var C=A.createRange().item(0);if (C){this._Range.setStartBefore(C);this._Range.setEndAfter(C);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(){if (this._Range){var A=this.CheckIsCollapsed();var B=this._GetRangeMarkerTag(true);if (!A) var C=this._GetRangeMarkerTag(false);var D=this.Window.document.body.createTextRange();D.moveToElementText(B);D.moveStart('character',1);if (!A){var E=this.Window.document.body.createTextRange();E.moveToElementText(C);D.setEndPoint('EndToEnd',E);D.moveEnd('character',-1);};this._Range.setStartBefore(B);B.parentNode.removeChild(B);if (A){try{D.pasteHTML('&nbsp;');D.moveStart('character',-1);}catch (e){};D.select();D.pasteHTML('');}else{this._Range.setEndBefore(C);C.parentNode.removeChild(C);D.select();}}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document.selection.createRange();B.collapse(A===true);var C='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);B.pasteHTML('<span id="'+C+'"></span>');return this.Window.document.getElementById(C);};FCKDomRange.prototype._GetRangeMarkerTag=function(A){var B=this._Range;if (!A){B=B.cloneRange();B.collapse(A===true);};var C=this.Window.document.createElement('span');C.innerHTML='&nbsp;';B.insertNode(C);return C;}\r
+var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}};\r
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(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;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};\r
+var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var I=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(I);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);if (!B) C.MoveToSelection();if (C.StartBlockLimit==C.EndBlockLimit){if (!C.StartBlock) this._FixBlock(C,true,A);if (!C.EndBlock) this._FixBlock(C,false,A);var D=C.StartBlock;var E=C.EndBlock;if (!C.CheckIsEmpty()) C.DeleteContents();if (D==E){var F;var G=C.CheckStartOfBlock();var H=C.CheckEndOfBlock();if (G&&!H){F=D.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) F.innerHTML=GECKO_BOGUS;D.parentNode.insertBefore(F,D);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(F);C.Select();};C.MoveToElementEditStart(D);}else{if (H){var I=D.tagName.toUpperCase();if (G&&I=='LI'){this._OutdentWithSelection(D,C);C.Release();return true;}else{if ((/^H[1-6]$/).test(I)||this._HasShift) F=this.Window.document.createElement(A);else{F=D.cloneNode(false);this._RecreateEndingTree(D,F);};if (FCKBrowserInfo.IsGeckoLike){F.innerHTML=GECKO_BOGUS;if (G) D.innerHTML=GECKO_BOGUS;}}}else{C.SetEnd(D,2);var J=C.ExtractContents();F=D.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) F.innerHTML=GECKO_BOGUS;J.AppendTo(F);if (FCKBrowserInfo.IsGecko){this._AppendBogusBr(D);this._AppendBogusBr(F);}};if (F){FCKDomTools.InsertAfterNode(D,F);C.MoveToElementEditStart(F);if (FCKBrowserInfo.IsGeckoLike) F.scrollIntoView(false);}}}else{C.MoveToElementEditStart(E);};C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) this._AppendBogusBr(G.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);};FCKEnterKey.prototype._AppendBogusBr=function(A){if (!A) return;var B=FCKTools.GetLastItem(A.getElementsByTagName('br'));if (!B||B.getAttribute('type',2)!='_moz') A.appendChild(FCKTools.CreateBogusBR(this.Window.document));};FCKEnterKey.prototype._RecreateEndingTree=function(A,B){while ((A=A.lastChild)&&A.nodeType==1&&FCKListsLib.InlineChildReqElements[A.nodeName.toLowerCase()]!=null) B=B.insertBefore(A.cloneNode(false),B.firstChild);};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();}\r
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=C.attributes['type'];if ((C.src&&C.src.EndsWith('.swf',true))||(D&&D.nodeValue=='application/x-shockwave-flash')){var E=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var F=['scale','play','loop','menu','wmode','quality'];for (var G=0;G<F.length;G++){var H=C.getAttribute(F[G]);if (H) E.setAttribute(F[G],H);};E.setAttribute('type',D.nodeValue);};var I=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',E);I.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(I,C);C.parentNode.insertBefore(I,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}\r
+var FCKSelection=FCK.Selection={};\r
+FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};\r
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};\r
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorDocument.selection.createRange();var C=FCKSelection.GetParentElement();if (C&&C.tagName.Equals('TD','TH')) A[0]=C;else{C=FCKSelection.MoveToAncestorNode('TABLE');if (C){for (var i=0;i<C.cells.length;i++){var D=FCK.EditorDocument.selection.createRange();D.moveToElementText(C.cells[i]);if (B.inRange(D)||(B.compareEndPoints('StartToStart',D)>=0&&B.compareEndPoints('StartToEnd',D)<=0)||(B.compareEndPoints('EndToStart',D)>=0&&B.compareEndPoints('EndToEnd',D)<=0)){A[A.length]=C.cells[i];}}}};return A;};\r
+var FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}\r
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}\r
+FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':A.style.cssText=this.Attributes[a];break;case 'class':A.setAttribute('className',this.Attributes[a],0);break;case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;}};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);}};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}\r
+var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}\r
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};\r
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};\r
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}\r
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver()   { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()    { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n                       <tr>\n                          <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n                             <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n                        </tr>\n         </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}\r
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};\r
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};\r
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}\r
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}\r
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};\r
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};\r
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;var E='';if (FCKBrowserInfo.IsSafari) E='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+E+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B)  this._IFrame.width=1;if (!C)    this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}\r
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}\r
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};\r
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}\r
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};\r
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};\r
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}\r
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}\r
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}\r
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}\r
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;\r
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}\r
+var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}\r
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);}\r
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};\r
+var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};\r
+FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();};\r
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}\r
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}\r
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}\r
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}\r
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};\r
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}\r
+var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}\r
diff --git a/httemplate/elements/fckeditor/editor/lang/_getfontformat.html b/httemplate/elements/fckeditor/editor/lang/_getfontformat.html
new file mode 100644 (file)
index 0000000..a408642
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+-->\r
+<html>\r
+       <head>\r
+               <title></title>\r
+       </head>\r
+       <script language="javascript">\r
+\r
+window.onload = function()\r
+{\r
+       var oRange = document.selection.createRange() ;\r
+\r
+       var sNormal ;\r
+       var sFormats = '' ;\r
+       for ( var i = 1 ; i <= 9 ; i++ )\r
+       {\r
+               oRange.moveToElementText( document.getElementById( 'x' + i ) ) ;\r
+               sFormats += oRange.queryCommandValue( 'FormatBlock' ) ;\r
+               if ( i == 1 )\r
+                       sNormal = sFormats ;\r
+               sFormats += ';' ;\r
+       }\r
+\r
+       document.getElementById('xFontFormats').innerHTML = sFormats + sNormal + ' (DIV)' ;\r
+}\r
+       </script>\r
+       <body>\r
+               <table width="70%" align="center">\r
+                       <tr>\r
+                               <td>\r
+                                       <h3>FontFormats Localization</h3>\r
+                                       <p>\r
+                                               IE has some limits when handling the "Font Format". It actually uses localized\r
+                                               strings to retrieve the current format value. This makes it very difficult to\r
+                                               make a system that works on every single computer in the world.\r
+                                       </p>\r
+                                       <p>\r
+                                               With FCKeditor, this problem impacts in the "Format" toolbar command that\r
+                                               doesn't reflects the format of the current cursor position.\r
+                                       </p>\r
+                                       <p>\r
+                                               There is only one way to make it work. We must localize FCKeditor using the\r
+                                               strings used by IE. In this way, we will have the expected behavior at least\r
+                                               when using FCKeditor in the same language as the browser. So, when localizing\r
+                                               FCKeditor, go to a computer with IE in the target language, open this page and\r
+                                               use the following string to the "FontFormats" value:\r
+                                       </p>\r
+                                       <div style="white-space: nowrap">\r
+                                               FontFormats : "<span id="xFontFormats" style="COLOR: #000099"></span>",\r
+                                       </div>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+               <div style="DISPLAY: none">\r
+                       <p id="x1">&nbsp;</p>\r
+                       <pre id="x2">&nbsp;</pre>\r
+                       <address id="x3">&nbsp;</address>\r
+                       <h1 id="x4">&nbsp;</h1>\r
+                       <h2 id="x5">&nbsp;</h2>\r
+                       <h3 id="x6">&nbsp;</h3>\r
+                       <h4 id="x7">&nbsp;</h4>\r
+                       <h5 id="x8">&nbsp;</h5>\r
+                       <h6 id="x9">&nbsp;</h6>\r
+               </div>\r
+       </body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/lang/_translationstatus.txt b/httemplate/elements/fckeditor/editor/lang/_translationstatus.txt
new file mode 100644 (file)
index 0000000..a53ea8f
--- /dev/null
@@ -0,0 +1,76 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Translations Status.\r
+ */\r
+\r
+af.js      Found: 401   Missing: 1\r
+ar.js      Found: 401   Missing: 1\r
+bg.js      Found: 378   Missing: 24\r
+bn.js      Found: 386   Missing: 16\r
+bs.js      Found: 230   Missing: 172\r
+ca.js      Found: 402   Missing: 0\r
+cs.js      Found: 400   Missing: 2\r
+da.js      Found: 386   Missing: 16\r
+de.js      Found: 401   Missing: 1\r
+el.js      Found: 401   Missing: 1\r
+en-au.js   Found: 402   Missing: 0\r
+en-ca.js   Found: 402   Missing: 0\r
+en-uk.js   Found: 402   Missing: 0\r
+eo.js      Found: 350   Missing: 52\r
+es.js      Found: 386   Missing: 16\r
+et.js      Found: 402   Missing: 0\r
+eu.js      Found: 386   Missing: 16\r
+fa.js      Found: 402   Missing: 0\r
+fi.js      Found: 402   Missing: 0\r
+fo.js      Found: 401   Missing: 1\r
+fr.js      Found: 401   Missing: 1\r
+gl.js      Found: 386   Missing: 16\r
+he.js      Found: 402   Missing: 0\r
+hi.js      Found: 401   Missing: 1\r
+hr.js      Found: 401   Missing: 1\r
+hu.js      Found: 401   Missing: 1\r
+it.js      Found: 401   Missing: 1\r
+ja.js      Found: 401   Missing: 1\r
+km.js      Found: 376   Missing: 26\r
+ko.js      Found: 373   Missing: 29\r
+lt.js      Found: 381   Missing: 21\r
+lv.js      Found: 386   Missing: 16\r
+mn.js      Found: 230   Missing: 172\r
+ms.js      Found: 356   Missing: 46\r
+nb.js      Found: 400   Missing: 2\r
+nl.js      Found: 401   Missing: 1\r
+no.js      Found: 400   Missing: 2\r
+pl.js      Found: 386   Missing: 16\r
+pt-br.js   Found: 401   Missing: 1\r
+pt.js      Found: 386   Missing: 16\r
+ro.js      Found: 400   Missing: 2\r
+ru.js      Found: 401   Missing: 1\r
+sk.js      Found: 401   Missing: 1\r
+sl.js      Found: 378   Missing: 24\r
+sr-latn.js Found: 373   Missing: 29\r
+sr.js      Found: 373   Missing: 29\r
+sv.js      Found: 401   Missing: 1\r
+th.js      Found: 398   Missing: 4\r
+tr.js      Found: 401   Missing: 1\r
+uk.js      Found: 402   Missing: 0\r
+vi.js      Found: 401   Missing: 1\r
+zh-cn.js   Found: 401   Missing: 1\r
+zh.js      Found: 401   Missing: 1\r
diff --git a/httemplate/elements/fckeditor/editor/lang/af.js b/httemplate/elements/fckeditor/editor/lang/af.js
new file mode 100644 (file)
index 0000000..857dc3e
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Afrikaans language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Vou Gereedskaps balk toe",\r
+ToolbarExpand          : "Vou Gereedskaps balk oop",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Bewaar",\r
+NewPage                                : "Nuwe Bladsy",\r
+Preview                                : "Voorskou",\r
+Cut                                    : "Uitsny ",\r
+Copy                           : "Kopieer",\r
+Paste                          : "Byvoeg",\r
+PasteText                      : "Slegs inhoud byvoeg",\r
+PasteWord                      : "Van Word af byvoeg",\r
+Print                          : "Druk",\r
+SelectAll                      : "Selekteer alles",\r
+RemoveFormat           : "Formaat verweider",\r
+InsertLinkLbl          : "Skakel",\r
+InsertLink                     : "Skakel byvoeg/verander",\r
+RemoveLink                     : "Skakel verweider",\r
+Anchor                         : "Plekhouer byvoeg/verander",\r
+InsertImageLbl         : "Beeld",\r
+InsertImage                    : "Beeld byvoeg/verander",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash byvoeg/verander",\r
+InsertTableLbl         : "Tabel",\r
+InsertTable                    : "Tabel byvoeg/verander",\r
+InsertLineLbl          : "Lyn",\r
+InsertLine                     : "Horisontale lyn byvoeg",\r
+InsertSpecialCharLbl: "Spesiaale karakter",\r
+InsertSpecialChar      : "Spesiaale Karakter byvoeg",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Smiley byvoeg",\r
+About                          : "Meer oor FCKeditor",\r
+Bold                           : "Vet",\r
+Italic                         : "Skuins",\r
+Underline                      : "Onderstreep",\r
+StrikeThrough          : "Gestreik",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Links rig",\r
+CenterJustify          : "Rig Middel",\r
+RightJustify           : "Regs rig",\r
+BlockJustify           : "Blok paradeer",\r
+DecreaseIndent         : "Paradeering verkort",\r
+IncreaseIndent         : "Paradeering verleng",\r
+Undo                           : "Ont-skep",\r
+Redo                           : "Her-skep",\r
+NumberedListLbl                : "Genommerde lys",\r
+NumberedList           : "Genommerde lys byvoeg/verweider",\r
+BulletedListLbl                : "Gepunkte lys",\r
+BulletedList           : "Gepunkte lys byvoeg/verweider",\r
+ShowTableBorders       : "Wys tabel kante",\r
+ShowDetails                    : "Wys informasie",\r
+Style                          : "Styl",\r
+FontFormat                     : "Karakter formaat",\r
+Font                           : "Karakters",\r
+FontSize                       : "Karakter grote",\r
+TextColor                      : "Karakter kleur",\r
+BGColor                                : "Agtergrond kleur",\r
+Source                         : "Source",\r
+Find                           : "Vind",\r
+Replace                                : "Vervang",\r
+SpellCheck                     : "Spelling nagaan",\r
+UniversalKeyboard      : "Universeele Sleutelbord",\r
+PageBreakLbl           : "Bladsy breek",\r
+PageBreak                      : "Bladsy breek byvoeg",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "HakBox",\r
+RadioButton            : "PuntBox",\r
+TextField              : "Byvoegbare karakter strook",\r
+Textarea               : "Byvoegbare karakter area",\r
+HiddenField            : "Blinde strook",\r
+Button                 : "Knop",\r
+SelectionField : "Opklapbare keuse strook",\r
+ImageButton            : "Beeld knop",\r
+\r
+FitWindow              : "Maksimaliseer venster grote",\r
+\r
+// Context Menu\r
+EditLink                       : "Verander skakel",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Ry",\r
+ColumnCM                       : "Kolom",\r
+InsertRow                      : "Ry byvoeg",\r
+DeleteRows                     : "Ry verweider",\r
+InsertColumn           : "Kolom byvoeg",\r
+DeleteColumns          : "Kolom verweider",\r
+InsertCell                     : "Cell byvoeg",\r
+DeleteCells                    : "Cell verweider",\r
+MergeCells                     : "Cell verenig",\r
+SplitCell                      : "Cell verdeel",\r
+TableDelete                    : "Tabel verweider",\r
+CellProperties         : "Cell eienskappe",\r
+TableProperties                : "Tabel eienskappe",\r
+ImageProperties                : "Beeld eienskappe",\r
+FlashProperties                : "Flash eienskappe",\r
+\r
+AnchorProp                     : "Plekhouer eienskappe",\r
+ButtonProp                     : "Knop eienskappe",\r
+CheckboxProp           : "HakBox eienskappe",\r
+HiddenFieldProp                : "Blinde strook eienskappe",\r
+RadioButtonProp                : "PuntBox eienskappe",\r
+ImageButtonProp                : "Beeld knop eienskappe",\r
+TextFieldProp          : "Karakter strook eienskappe",\r
+SelectionFieldProp     : "Opklapbare keuse strook eienskappe",\r
+TextareaProp           : "Karakter area eienskappe",\r
+FormProp                       : "Form eienskappe",\r
+\r
+FontFormats                    : "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML word verarbeit. U geduld asseblief...",\r
+Done                           : "Kompleet",\r
+PasteWordConfirm       : "Die informasie wat U probeer byvoeg is warskynlik van Word. Wil U dit reinig voor die byvoeging?",\r
+NotCompatiblePaste     : "Die instruksie is beskikbaar vir Internet Explorer weergawe 5.5 of hor. Wil U dir byvoeg sonder reiniging?",\r
+UnknownToolbarItem     : "Unbekende gereedskaps balk item \"%1\"",\r
+UnknownCommand         : "Unbekende instruksie naam \"%1\"",\r
+NotImplemented         : "Instruksie is nie geimplementeer nie.",\r
+UnknownToolbarSet      : "Gereedskaps balk \"%1\" bestaan nie",\r
+NoActiveX                      : "U browser sekuriteit instellings kan die funksies van die editor behinder. U moet die opsie \"Run ActiveX controls and plug-ins\" aktiveer. U ondervinding mag problematies geskiet of sekere funksionaliteit mag verhinder word.",\r
+BrowseServerBlocked : "Die vorraad venster word geblok! Verseker asseblief dat U die \"popup blocker\" instelling verander.",\r
+DialogBlocked          : "Die dialoog venster vir verdere informasie word geblok. De-aktiveer asseblief die \"popup blocker\" instellings wat dit behinder.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Kanseleer",\r
+DlgBtnClose                    : "Sluit",\r
+DlgBtnBrowseServer     : "Server deurblaai",\r
+DlgAdvancedTag         : "Ingewikkeld",\r
+DlgOpOther                     : "<Ander>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Voeg asseblief die URL in",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<geen instelling>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Taal rigting",\r
+DlgGenLangDirLtr       : "Links na regs (LTR)",\r
+DlgGenLangDirRtl       : "Regs na links (RTL)",\r
+DlgGenLangCode         : "Taal kode",\r
+DlgGenAccessKey                : "Toegang sleutel",\r
+DlgGenName                     : "Naam",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Lang beskreiwing URL",\r
+DlgGenClass                    : "Skakel Tiepe",\r
+DlgGenTitle                    : "Voorbeveelings Titel",\r
+DlgGenContType         : "Voorbeveelings inhoud soort",\r
+DlgGenLinkCharset      : "Geskakelde voorbeeld karakterstel",\r
+DlgGenStyle                    : "Styl",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Beeld eienskappe",\r
+DlgImgInfoTab          : "Beeld informasie",\r
+DlgImgBtnUpload                : "Stuur dit na die Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Uplaai",\r
+DlgImgAlt                      : "Alternatiewe beskrywing",\r
+DlgImgWidth                    : "Weidte",\r
+DlgImgHeight           : "Hoogde",\r
+DlgImgLockRatio                : "Behou preporsie",\r
+DlgBtnResetSize                : "Herstel groote",\r
+DlgImgBorder           : "Kant",\r
+DlgImgHSpace           : "HSpasie",\r
+DlgImgVSpace           : "VSpasie",\r
+DlgImgAlign                    : "Paradeer",\r
+DlgImgAlignLeft                : "Links",\r
+DlgImgAlignAbsBottom: "Abs Onder",\r
+DlgImgAlignAbsMiddle: "Abs Middel",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Onder",\r
+DlgImgAlignMiddle      : "Middel",\r
+DlgImgAlignRight       : "Regs",\r
+DlgImgAlignTextTop     : "Text Bo",\r
+DlgImgAlignTop         : "Bo",\r
+DlgImgPreview          : "Voorskou",\r
+DlgImgAlertUrl         : "Voeg asseblief Beeld URL in.",\r
+DlgImgLinkTab          : "Skakel",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash eienskappe",\r
+DlgFlashChkPlay                : "Automaties Speel",\r
+DlgFlashChkLoop                : "Herhaling",\r
+DlgFlashChkMenu                : "Laat Flash Menu toe",\r
+DlgFlashScale          : "Scale",\r
+DlgFlashScaleAll       : "Wys alles",\r
+DlgFlashScaleNoBorder  : "Geen kante",\r
+DlgFlashScaleFit       : "Presiese pas",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Skakel",\r
+DlgLnkInfoTab          : "Skakel informasie",\r
+DlgLnkTargetTab                : "Mikpunt",\r
+\r
+DlgLnkType                     : "Skakel soort",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Skakel na plekhouers in text",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<ander>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Kies 'n plekhouer",\r
+DlgLnkAnchorByName     : "Volgens plekhouer naam",\r
+DlgLnkAnchorById       : "Volgens element Id",\r
+DlgLnkNoAnchors                : "<Geen plekhouers beskikbaar in dokument>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Adres",\r
+DlgLnkEMailSubject     : "Boodskap Opskrif",\r
+DlgLnkEMailBody                : "Boodskap Inhoud",\r
+DlgLnkUpload           : "Oplaai",\r
+DlgLnkBtnUpload                : "Stuur na Server",\r
+\r
+DlgLnkTarget           : "Mikpunt",\r
+DlgLnkTargetFrame      : "<raam>",\r
+DlgLnkTargetPopup      : "<popup venster>",\r
+DlgLnkTargetBlank      : "Nuwe Venster (_blank)",\r
+DlgLnkTargetParent     : "Vorige Venster (_parent)",\r
+DlgLnkTargetSelf       : "Selfde Venster (_self)",\r
+DlgLnkTargetTop                : "Boonste Venster (_top)",\r
+DlgLnkTargetFrameName  : "Mikpunt Venster Naam",\r
+DlgLnkPopWinName       : "Popup Venster Naam",\r
+DlgLnkPopWinFeat       : "Popup Venster Geaartheid",\r
+DlgLnkPopResize                : "Verstelbare Groote",\r
+DlgLnkPopLocation      : "Adres Balk",\r
+DlgLnkPopMenu          : "Menu Balk",\r
+DlgLnkPopScroll                : "Gleibalkstuk",\r
+DlgLnkPopStatus                : "Status Balk",\r
+DlgLnkPopToolbar       : "Gereedskap Balk",\r
+DlgLnkPopFullScrn      : "Voll Skerm (IE)",\r
+DlgLnkPopDependent     : "Afhanklik (Netscape)",\r
+DlgLnkPopWidth         : "Weite",\r
+DlgLnkPopHeight                : "Hoogde",\r
+DlgLnkPopLeft          : "Links Posisie",\r
+DlgLnkPopTop           : "Bo Posisie",\r
+\r
+DlnLnkMsgNoUrl         : "Voeg asseblief die URL in",\r
+DlnLnkMsgNoEMail       : "Voeg asseblief die e-mail adres in",\r
+DlnLnkMsgNoAnchor      : "Kies asseblief 'n plekhouer",\r
+DlnLnkMsgInvPopName    : "Die popup naam moet begin met alphabetiese karakters sonder spasies.",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Kies Kleur",\r
+DlgColorBtnClear       : "Maak skoon",\r
+DlgColorHighlight      : "Highlight",\r
+DlgColorSelected       : "Geselekteer",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Voeg Smiley by",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Kies spesiale karakter",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabel eienskappe",\r
+DlgTableRows           : "Reie",\r
+DlgTableColumns                : "Kolome",\r
+DlgTableBorder         : "Kant groote",\r
+DlgTableAlign          : "Parideering",\r
+DlgTableAlignNotSet    : "<geen instelling>",\r
+DlgTableAlignLeft      : "Links",\r
+DlgTableAlignCenter    : "Middel",\r
+DlgTableAlignRight     : "Regs",\r
+DlgTableWidth          : "Weite",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Hoogde",\r
+DlgTableCellSpace      : "Cell spasieering",\r
+DlgTableCellPad                : "Cell buffer",\r
+DlgTableCaption                : "Beskreiwing",\r
+DlgTableSummary                : "Opsomming",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cell eienskappe",\r
+DlgCellWidth           : "Weite",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Hoogde",\r
+DlgCellWordWrap                : "Woord Wrap",\r
+DlgCellWordWrapNotSet  : "<geen instelling>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nee",\r
+DlgCellHorAlign                : "Horisontale rigting",\r
+DlgCellHorAlignNotSet  : "<geen instelling>",\r
+DlgCellHorAlignLeft    : "Links",\r
+DlgCellHorAlignCenter  : "Middel",\r
+DlgCellHorAlignRight: "Regs",\r
+DlgCellVerAlign                : "Vertikale rigting",\r
+DlgCellVerAlignNotSet  : "<geen instelling>",\r
+DlgCellVerAlignTop     : "Bo",\r
+DlgCellVerAlignMiddle  : "Middel",\r
+DlgCellVerAlignBottom  : "Onder",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rei strekking",\r
+DlgCellCollSpan                : "Kolom strekking",\r
+DlgCellBackColor       : "Agtergrond Kleur",\r
+DlgCellBorderColor     : "Kant Kleur",\r
+DlgCellBtnSelect       : "Keuse...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Vind",\r
+DlgFindFindBtn         : "Vind",\r
+DlgFindNotFoundMsg     : "Die gespesifiseerde karakters word nie gevind nie.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Vervang",\r
+DlgReplaceFindLbl              : "Soek wat:",\r
+DlgReplaceReplaceLbl   : "Vervang met:",\r
+DlgReplaceCaseChk              : "Vergelyk karakter skryfweise",\r
+DlgReplaceReplaceBtn   : "Vervang",\r
+DlgReplaceReplAllBtn   : "Vervang alles",\r
+DlgReplaceWordChk              : "Vergelyk komplete woord",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).",\r
+PasteErrorCopy : "U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).",\r
+\r
+PasteAsText            : "Voeg slegs karakters by",\r
+PasteFromWord  : "Byvoeging uit Word",\r
+\r
+DlgPasteMsg2   : "Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoreer karakter soort defenisies",\r
+DlgPasteRemoveStyles   : "Verweider Styl defenisies",\r
+DlgPasteCleanBox               : "Maak Box Skoon",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automaties",\r
+ColorMoreColors        : "Meer Kleure...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokument Eienskappe",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Plekhouer Eienskappe",\r
+DlgAnchorName          : "Plekhouer Naam",\r
+DlgAnchorErrorName     : "Voltooi die plekhouer naam asseblief",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nie in woordeboek nie",\r
+DlgSpellChangeTo               : "Verander na",\r
+DlgSpellBtnIgnore              : "Ignoreer",\r
+DlgSpellBtnIgnoreAll   : "Ignoreer na-volgende",\r
+DlgSpellBtnReplace             : "Vervang",\r
+DlgSpellBtnReplaceAll  : "vervang na-volgende",\r
+DlgSpellBtnUndo                        : "Ont-skep",\r
+DlgSpellNoSuggestions  : "- Geen voorstel -",\r
+DlgSpellProgress               : "Spelling word beproef...",\r
+DlgSpellNoMispell              : "Spellproef kompleet: Geen foute",\r
+DlgSpellNoChanges              : "Spellproef kompleet: Geen woord veranderings",\r
+DlgSpellOneChange              : "Spellproef kompleet: Een woord verander",\r
+DlgSpellManyChanges            : "Spellproef kompleet: %1 woorde verander",\r
+\r
+IeSpellDownload                        : "Geen Spellproefer geinstaleer nie. Wil U dit aflaai?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Karakters (Waarde)",\r
+DlgButtonType          : "Soort",\r
+DlgButtonTypeBtn       : "Knop",\r
+DlgButtonTypeSbm       : "Indien",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Naam",\r
+DlgCheckboxValue       : "Waarde",\r
+DlgCheckboxSelected    : "Uitgekies",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Naam",\r
+DlgFormAction  : "Aksie",\r
+DlgFormMethod  : "Metode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Naam",\r
+DlgSelectValue         : "Waarde",\r
+DlgSelectSize          : "Grote",\r
+DlgSelectLines         : "lyne",\r
+DlgSelectChkMulti      : "Laat meerere keuses toe",\r
+DlgSelectOpAvail       : "Beskikbare Opsies",\r
+DlgSelectOpText                : "Karakters",\r
+DlgSelectOpValue       : "Waarde",\r
+DlgSelectBtnAdd                : "Byvoeg",\r
+DlgSelectBtnModify     : "Verander",\r
+DlgSelectBtnUp         : "Op",\r
+DlgSelectBtnDown       : "Af",\r
+DlgSelectBtnSetValue : "Stel as uitgekiesde waarde",\r
+DlgSelectBtnDelete     : "Verweider",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Naam",\r
+DlgTextareaCols        : "Kolom",\r
+DlgTextareaRows        : "Reie",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Naam",\r
+DlgTextValue           : "Waarde",\r
+DlgTextCharWidth       : "Karakter weite",\r
+DlgTextMaxChars                : "Maximale karakters",\r
+DlgTextType                    : "Soort",\r
+DlgTextTypeText                : "Karakters",\r
+DlgTextTypePass                : "Wagwoord",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Naam",\r
+DlgHiddenValue : "Waarde",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Gepunkte lys eienskappe",\r
+NumberedListProp       : "Genommerde lys eienskappe",\r
+DlgLstStart                    : "Begin",\r
+DlgLstType                     : "Soort",\r
+DlgLstTypeCircle       : "Sirkel",\r
+DlgLstTypeDisc         : "Skyf",\r
+DlgLstTypeSquare       : "Vierkant",\r
+DlgLstTypeNumbers      : "Nommer (1, 2, 3)",\r
+DlgLstTypeLCase                : "Klein Letters (a, b, c)",\r
+DlgLstTypeUCase                : "Hoof Letters (A, B, C)",\r
+DlgLstTypeSRoman       : "Klein Romeinse nommers (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Groot Romeinse nommers (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Algemeen",\r
+DlgDocBackTab          : "Agtergrond",\r
+DlgDocColorsTab                : "Kleure en Rante",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Bladsy Opskrif",\r
+DlgDocLangDir          : "Taal rigting",\r
+DlgDocLangDirLTR       : "Link na Regs (LTR)",\r
+DlgDocLangDirRTL       : "Regs na Links (RTL)",\r
+DlgDocLangCode         : "Taal Kode",\r
+DlgDocCharSet          : "Karakterstel Kodeering",\r
+DlgDocCharSetCE                : "Sentraal Europa",\r
+DlgDocCharSetCT                : "Chinees Traditioneel (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Grieks",\r
+DlgDocCharSetJP                : "Japanees",\r
+DlgDocCharSetKR                : "Koreans",\r
+DlgDocCharSetTR                : "Turks",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "Ander Karakterstel Kodeering",\r
+\r
+DlgDocDocType          : "Dokument Opskrif Soort",\r
+DlgDocDocTypeOther     : "Ander Dokument Opskrif Soort",\r
+DlgDocIncXHTML         : "Voeg XHTML verklaring by",\r
+DlgDocBgColor          : "Agtergrond kleur",\r
+DlgDocBgImage          : "Agtergrond Beeld URL",\r
+DlgDocBgNoScroll       : "Vasgeklemde Agtergrond",\r
+DlgDocCText                    : "Karakters",\r
+DlgDocCLink                    : "Skakel",\r
+DlgDocCVisited         : "Besoekte Skakel",\r
+DlgDocCActive          : "Aktiewe Skakel",\r
+DlgDocMargins          : "Bladsy Rante",\r
+DlgDocMaTop                    : "Bo",\r
+DlgDocMaLeft           : "Links",\r
+DlgDocMaRight          : "Regs",\r
+DlgDocMaBottom         : "Onder",\r
+DlgDocMeIndex          : "Dokument Index Sleutelwoorde(comma verdeelt)",\r
+DlgDocMeDescr          : "Dokument Beskrywing",\r
+DlgDocMeAuthor         : "Skrywer",\r
+DlgDocMeCopy           : "Kopiereg",\r
+DlgDocPreview          : "Voorskou",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",\r
+DlgTemplatesTitle      : "Inhoud Templates",\r
+DlgTemplatesSelMsg     : "Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):",\r
+DlgTemplatesLoading    : "Templates word gelaai. U geduld asseblief...",\r
+DlgTemplatesNoTpl      : "(Geen templates gedefinieerd)",\r
+DlgTemplatesReplace    : "Vervang bestaande inhoud",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Meer oor",\r
+DlgAboutBrowserInfoTab : "Blaai Informasie deur",\r
+DlgAboutLicenseTab     : "Lesensie",\r
+DlgAboutVersion                : "weergawe",\r
+DlgAboutInfo           : "Vir meer informasie gaan na "\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ar.js b/httemplate/elements/fckeditor/editor/lang/ar.js
new file mode 100644 (file)
index 0000000..91d34f1
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Arabic language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "rtl",\r
+\r
+ToolbarCollapse                : "ضم شريط الأدوات",\r
+ToolbarExpand          : "تمدد شريط الأدوات",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "حفظ",\r
+NewPage                                : "صفحة جديدة",\r
+Preview                                : "معاينة الصفحة",\r
+Cut                                    : "قص",\r
+Copy                           : "نسخ",\r
+Paste                          : "لصق",\r
+PasteText                      : "لصق كنص بسيط",\r
+PasteWord                      : "لصق من وورد",\r
+Print                          : "طباعة",\r
+SelectAll                      : "تحديد الكل",\r
+RemoveFormat           : "إزالة التنسيقات",\r
+InsertLinkLbl          : "رابط",\r
+InsertLink                     : "إدراج/تحرير رابط",\r
+RemoveLink                     : "إزالة رابط",\r
+Anchor                         : "إدراج/تحرير إشارة مرجعية",\r
+InsertImageLbl         : "صورة",\r
+InsertImage                    : "إدراج/تحرير صورة",\r
+InsertFlashLbl         : "فلاش",\r
+InsertFlash                    : "إدراج/تحرير فيلم فلاش",\r
+InsertTableLbl         : "جدول",\r
+InsertTable                    : "إدراج/تحرير جدول",\r
+InsertLineLbl          : "خط فاصل",\r
+InsertLine                     : "إدراج خط فاصل",\r
+InsertSpecialCharLbl: "رموز",\r
+InsertSpecialChar      : "إدراج  رموز..ِ",\r
+InsertSmileyLbl                : "ابتسامات",\r
+InsertSmiley           : "إدراج ابتسامات",\r
+About                          : "حول FCKeditor",\r
+Bold                           : "غامق",\r
+Italic                         : "مائل",\r
+Underline                      : "تسطير",\r
+StrikeThrough          : "يتوسطه خط",\r
+Subscript                      : "منخفض",\r
+Superscript                    : "مرتفع",\r
+LeftJustify                    : "محاذاة إلى اليسار",\r
+CenterJustify          : "توسيط",\r
+RightJustify           : "محاذاة إلى اليمين",\r
+BlockJustify           : "ضبط",\r
+DecreaseIndent         : "إنقاص المسافة البادئة",\r
+IncreaseIndent         : "زيادة المسافة البادئة",\r
+Undo                           : "تراجع",\r
+Redo                           : "إعادة",\r
+NumberedListLbl                : "تعداد رقمي",\r
+NumberedList           : "إدراج/إلغاء تعداد رقمي",\r
+BulletedListLbl                : "تعداد نقطي",\r
+BulletedList           : "إدراج/إلغاء تعداد نقطي",\r
+ShowTableBorders       : "معاينة حدود الجداول",\r
+ShowDetails                    : "معاينة التفاصيل",\r
+Style                          : "نمط",\r
+FontFormat                     : "تنسيق",\r
+Font                           : "خط",\r
+FontSize                       : "حجم الخط",\r
+TextColor                      : "لون النص",\r
+BGColor                                : "لون الخلفية",\r
+Source                         : "شفرة المصدر",\r
+Find                           : "بحث",\r
+Replace                                : "إستبدال",\r
+SpellCheck                     : "تدقيق إملائي",\r
+UniversalKeyboard      : "لوحة المفاتيح العالمية",\r
+PageBreakLbl           : "فصل الصفحة",\r
+PageBreak                      : "إدخال صفحة جديدة",\r
+\r
+Form                   : "نموذج",\r
+Checkbox               : "خانة إختيار",\r
+RadioButton            : "زر خيار",\r
+TextField              : "مربع نص",\r
+Textarea               : "ناحية نص",\r
+HiddenField            : "إدراج حقل خفي",\r
+Button                 : "زر ضغط",\r
+SelectionField : "قائمة منسدلة",\r
+ImageButton            : "زر صورة",\r
+\r
+FitWindow              : "تكبير حجم المحرر",\r
+\r
+// Context Menu\r
+EditLink                       : "تحرير رابط",\r
+CellCM                         : "خلية",\r
+RowCM                          : "صف",\r
+ColumnCM                       : "عمود",\r
+InsertRow                      : "إدراج صف",\r
+DeleteRows                     : "حذف صفوف",\r
+InsertColumn           : "إدراج عمود",\r
+DeleteColumns          : "حذف أعمدة",\r
+InsertCell                     : "إدراج خلية",\r
+DeleteCells                    : "حذف خلايا",\r
+MergeCells                     : "دمج خلايا",\r
+SplitCell                      : "تقسيم خلية",\r
+TableDelete                    : "حذف الجدول",\r
+CellProperties         : "خصائص الخلية",\r
+TableProperties                : "خصائص الجدول",\r
+ImageProperties                : "خصائص الصورة",\r
+FlashProperties                : "خصائص فيلم الفلاش",\r
+\r
+AnchorProp                     : "خصائص الإشارة المرجعية",\r
+ButtonProp                     : "خصائص زر الضغط",\r
+CheckboxProp           : "خصائص خانة الإختيار",\r
+HiddenFieldProp                : "خصائص الحقل الخفي",\r
+RadioButtonProp                : "خصائص زر الخيار",\r
+ImageButtonProp                : "خصائص زر الصورة",\r
+TextFieldProp          : "خصائص مربع النص",\r
+SelectionFieldProp     : "خصائص القائمة المنسدلة",\r
+TextareaProp           : "خصائص ناحية النص",\r
+FormProp                       : "خصائص النموذج",\r
+\r
+FontFormats                    : "عادي;منسّق;دوس;العنوان 1;العنوان  2;العنوان  3;العنوان  4;العنوان  5;العنوان  6",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "إنتظر قليلاً ريثما تتم   معالَجة‏ XHTML. لن يستغرق طويلاً...",\r
+Done                           : "تم",\r
+PasteWordConfirm       : "يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟",\r
+NotCompatiblePaste     : "هذه الميزة تحتاج لمتصفح من النوعInternet Explorer إصدار 5.5 فما فوق. هل تود اللصق دون تنظيف الكود؟",\r
+UnknownToolbarItem     : "عنصر شريط أدوات غير معروف \"%1\"",\r
+UnknownCommand         : "أمر غير معروف \"%1\"",\r
+NotImplemented         : "لم يتم دعم هذا الأمر",\r
+UnknownToolbarSet      : "لم أتمكن من العثور على طقم الأدوات \"%1\" ",\r
+NoActiveX                      : "لتأمين متصفحك يجب أن تحدد بعض مميزات المحرر. يتوجب عليك تمكين الخيار \"Run ActiveX controls and plug-ins\". قد تواجة أخطاء وتلاحظ مميزات مفقودة",\r
+BrowseServerBlocked : "لايمكن فتح مصدر المتصفح. فضلا يجب التأكد بأن جميع موانع النوافذ المنبثقة معطلة",\r
+DialogBlocked          : "لايمكن فتح نافذة الحوار . فضلا تأكد من أن  مانع النوافذ المنبثة معطل .",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "موافق",\r
+DlgBtnCancel           : "إلغاء الأمر",\r
+DlgBtnClose                    : "إغلاق",\r
+DlgBtnBrowseServer     : "تصفح الخادم",\r
+DlgAdvancedTag         : "متقدم",\r
+DlgOpOther                     : "<أخرى>",\r
+DlgInfoTab                     : "معلومات",\r
+DlgAlertUrl                    : "الرجاء كتابة عنوان الإنترنت",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<بدون تحديد>",\r
+DlgGenId                       : "الرقم",\r
+DlgGenLangDir          : "إتجاه النص",\r
+DlgGenLangDirLtr       : "اليسار لليمين (LTR)",\r
+DlgGenLangDirRtl       : "اليمين لليسار (RTL)",\r
+DlgGenLangCode         : "رمز اللغة",\r
+DlgGenAccessKey                : "مفاتيح الإختصار",\r
+DlgGenName                     : "الاسم",\r
+DlgGenTabIndex         : "الترتيب",\r
+DlgGenLongDescr                : "عنوان الوصف المفصّل",\r
+DlgGenClass                    : "فئات التنسيق",\r
+DlgGenTitle                    : "تلميح الشاشة",\r
+DlgGenContType         : "نوع التلميح",\r
+DlgGenLinkCharset      : "ترميز المادة المطلوبة",\r
+DlgGenStyle                    : "نمط",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "خصائص الصورة",\r
+DlgImgInfoTab          : "معلومات الصورة",\r
+DlgImgBtnUpload                : "أرسلها للخادم",\r
+DlgImgURL                      : "موقع الصورة",\r
+DlgImgUpload           : "رفع",\r
+DlgImgAlt                      : "الوصف",\r
+DlgImgWidth                    : "العرض",\r
+DlgImgHeight           : "الإرتفاع",\r
+DlgImgLockRatio                : "تناسق الحجم",\r
+DlgBtnResetSize                : "إستعادة الحجم الأصلي",\r
+DlgImgBorder           : "سمك الحدود",\r
+DlgImgHSpace           : "تباعد أفقي",\r
+DlgImgVSpace           : "تباعد عمودي",\r
+DlgImgAlign                    : "محاذاة",\r
+DlgImgAlignLeft                : "يسار",\r
+DlgImgAlignAbsBottom: "أسفل النص",\r
+DlgImgAlignAbsMiddle: "وسط السطر",\r
+DlgImgAlignBaseline    : "على السطر",\r
+DlgImgAlignBottom      : "أسفل",\r
+DlgImgAlignMiddle      : "وسط",\r
+DlgImgAlignRight       : "يمين",\r
+DlgImgAlignTextTop     : "أعلى النص",\r
+DlgImgAlignTop         : "أعلى",\r
+DlgImgPreview          : "معاينة",\r
+DlgImgAlertUrl         : "فضلاً أكتب الموقع الذي توجد عليه هذه الصورة.",\r
+DlgImgLinkTab          : "الرابط",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "خصائص فيلم الفلاش",\r
+DlgFlashChkPlay                : "تشغيل تلقائي",\r
+DlgFlashChkLoop                : "تكرار",\r
+DlgFlashChkMenu                : "تمكين قائمة فيلم الفلاش",\r
+DlgFlashScale          : "الحجم",\r
+DlgFlashScaleAll       : "إظهار الكل",\r
+DlgFlashScaleNoBorder  : "بلا حدود",\r
+DlgFlashScaleFit       : "ضبط تام",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "إرتباط تشعبي",\r
+DlgLnkInfoTab          : "معلومات الرابط",\r
+DlgLnkTargetTab                : "الهدف",\r
+\r
+DlgLnkType                     : "نوع الربط",\r
+DlgLnkTypeURL          : "العنوان",\r
+DlgLnkTypeAnchor       : "مكان في هذا المستند",\r
+DlgLnkTypeEMail                : "بريد إلكتروني",\r
+DlgLnkProto                    : "البروتوكول",\r
+DlgLnkProtoOther       : "<أخرى>",\r
+DlgLnkURL                      : "الموقع",\r
+DlgLnkAnchorSel                : "اختر علامة مرجعية",\r
+DlgLnkAnchorByName     : "حسب اسم العلامة",\r
+DlgLnkAnchorById       : "حسب تعريف العنصر",\r
+DlgLnkNoAnchors                : "<لا يوجد علامات مرجعية في هذا المستند>",               //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "عنوان بريد إلكتروني",\r
+DlgLnkEMailSubject     : "موضوع الرسالة",\r
+DlgLnkEMailBody                : "محتوى الرسالة",\r
+DlgLnkUpload           : "رفع",\r
+DlgLnkBtnUpload                : "أرسلها للخادم",\r
+\r
+DlgLnkTarget           : "الهدف",\r
+DlgLnkTargetFrame      : "<إطار>",\r
+DlgLnkTargetPopup      : "<نافذة منبثقة>",\r
+DlgLnkTargetBlank      : "إطار جديد (_blank)",\r
+DlgLnkTargetParent     : "الإطار الأصل (_parent)",\r
+DlgLnkTargetSelf       : "نفس الإطار (_self)",\r
+DlgLnkTargetTop                : "صفحة كاملة (_top)",\r
+DlgLnkTargetFrameName  : "اسم الإطار الهدف",\r
+DlgLnkPopWinName       : "تسمية النافذة المنبثقة",\r
+DlgLnkPopWinFeat       : "خصائص النافذة المنبثقة",\r
+DlgLnkPopResize                : "قابلة للتحجيم",\r
+DlgLnkPopLocation      : "شريط العنوان",\r
+DlgLnkPopMenu          : "القوائم الرئيسية",\r
+DlgLnkPopScroll                : "أشرطة التمرير",\r
+DlgLnkPopStatus                : "شريط الحالة السفلي",\r
+DlgLnkPopToolbar       : "شريط الأدوات",\r
+DlgLnkPopFullScrn      : "ملئ الشاشة (IE)",\r
+DlgLnkPopDependent     : "تابع (Netscape)",\r
+DlgLnkPopWidth         : "العرض",\r
+DlgLnkPopHeight                : "الإرتفاع",\r
+DlgLnkPopLeft          : "التمركز لليسار",\r
+DlgLnkPopTop           : "التمركز للأعلى",\r
+\r
+DlnLnkMsgNoUrl         : "فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",\r
+DlnLnkMsgNoEMail       : "فضلاً أدخل عنوان البريد الإلكتروني",\r
+DlnLnkMsgNoAnchor      : "فضلاً حدد العلامة المرجعية المرغوبة",\r
+DlnLnkMsgInvPopName    : "اسم النافذة المنبثقة يجب أن يبدأ بحرف أبجدي دون مسافات",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "اختر لوناً",\r
+DlgColorBtnClear       : "مسح",\r
+DlgColorHighlight      : "تحديد",\r
+DlgColorSelected       : "إختيار",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "إدراج إبتسامات ",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "إدراج رمز",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "إدراج جدول",\r
+DlgTableRows           : "صفوف",\r
+DlgTableColumns                : "أعمدة",\r
+DlgTableBorder         : "سمك الحدود",\r
+DlgTableAlign          : "المحاذاة",\r
+DlgTableAlignNotSet    : "<بدون تحديد>",\r
+DlgTableAlignLeft      : "يسار",\r
+DlgTableAlignCenter    : "وسط",\r
+DlgTableAlignRight     : "يمين",\r
+DlgTableWidth          : "العرض",\r
+DlgTableWidthPx                : "بكسل",\r
+DlgTableWidthPc                : "بالمئة",\r
+DlgTableHeight         : "الإرتفاع",\r
+DlgTableCellSpace      : "تباعد الخلايا",\r
+DlgTableCellPad                : "المسافة البادئة",\r
+DlgTableCaption                : "الوصف",\r
+DlgTableSummary                : "الخلاصة",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "خصائص الخلية",\r
+DlgCellWidth           : "العرض",\r
+DlgCellWidthPx         : "بكسل",\r
+DlgCellWidthPc         : "بالمئة",\r
+DlgCellHeight          : "الإرتفاع",\r
+DlgCellWordWrap                : "التفاف النص",\r
+DlgCellWordWrapNotSet  : "<بدون تحديد>",\r
+DlgCellWordWrapYes     : "نعم",\r
+DlgCellWordWrapNo      : "لا",\r
+DlgCellHorAlign                : "المحاذاة الأفقية",\r
+DlgCellHorAlignNotSet  : "<بدون تحديد>",\r
+DlgCellHorAlignLeft    : "يسار",\r
+DlgCellHorAlignCenter  : "وسط",\r
+DlgCellHorAlignRight: "يمين",\r
+DlgCellVerAlign                : "المحاذاة العمودية",\r
+DlgCellVerAlignNotSet  : "<بدون تحديد>",\r
+DlgCellVerAlignTop     : "أعلى",\r
+DlgCellVerAlignMiddle  : "وسط",\r
+DlgCellVerAlignBottom  : "أسفل",\r
+DlgCellVerAlignBaseline        : "على السطر",\r
+DlgCellRowSpan         : "إمتداد الصفوف",\r
+DlgCellCollSpan                : "إمتداد الأعمدة",\r
+DlgCellBackColor       : "لون الخلفية",\r
+DlgCellBorderColor     : "لون الحدود",\r
+DlgCellBtnSelect       : "حدّد...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "بحث",\r
+DlgFindFindBtn         : "ابحث",\r
+DlgFindNotFoundMsg     : "لم يتم العثور على النص المحدد.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "إستبدال",\r
+DlgReplaceFindLbl              : "البحث عن:",\r
+DlgReplaceReplaceLbl   : "إستبدال بـ:",\r
+DlgReplaceCaseChk              : "مطابقة حالة الأحرف",\r
+DlgReplaceReplaceBtn   : "إستبدال",\r
+DlgReplaceReplAllBtn   : "إستبدال الكل",\r
+DlgReplaceWordChk              : "الكلمة بالكامل فقط",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).",\r
+PasteErrorCopy : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).",\r
+\r
+PasteAsText            : "لصق كنص بسيط",\r
+PasteFromWord  : "لصق من وورد",\r
+\r
+DlgPasteMsg2   : "الصق داخل الصندوق بإستخدام زرّي (<STRONG>Ctrl+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "تجاهل تعريفات أسماء الخطوط",\r
+DlgPasteRemoveStyles   : "إزالة تعريفات الأنماط",\r
+DlgPasteCleanBox               : "نظّف محتوى الصندوق",\r
+\r
+// Color Picker\r
+ColorAutomatic : "تلقائي",\r
+ColorMoreColors        : "ألوان إضافية...",\r
+\r
+// Document Properties\r
+DocProps               : "خصائص الصفحة",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "خصائص إشارة مرجعية",\r
+DlgAnchorName          : "اسم الإشارة المرجعية",\r
+DlgAnchorErrorName     : "الرجاء كتابة اسم الإشارة المرجعية",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "ليست في القاموس",\r
+DlgSpellChangeTo               : "التغيير إلى",\r
+DlgSpellBtnIgnore              : "تجاهل",\r
+DlgSpellBtnIgnoreAll   : "تجاهل الكل",\r
+DlgSpellBtnReplace             : "تغيير",\r
+DlgSpellBtnReplaceAll  : "تغيير الكل",\r
+DlgSpellBtnUndo                        : "تراجع",\r
+DlgSpellNoSuggestions  : "- لا توجد إقتراحات -",\r
+DlgSpellProgress               : "جاري التدقيق إملائياً",\r
+DlgSpellNoMispell              : "تم إكمال التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية",\r
+DlgSpellNoChanges              : "تم إكمال التدقيق الإملائي: لم يتم تغيير أي كلمة",\r
+DlgSpellOneChange              : "تم إكمال التدقيق الإملائي: تم تغيير كلمة واحدة فقط",\r
+DlgSpellManyChanges            : "تم إكمال التدقيق الإملائي: تم تغيير %1 كلمات\كلمة",\r
+\r
+IeSpellDownload                        : "المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "القيمة/التسمية",\r
+DlgButtonType          : "نوع الزر",\r
+DlgButtonTypeBtn       : "زر",\r
+DlgButtonTypeSbm       : "إرسال",\r
+DlgButtonTypeRst       : "إعادة تعيين",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "الاسم",\r
+DlgCheckboxValue       : "القيمة",\r
+DlgCheckboxSelected    : "محدد",\r
+\r
+// Form Dialog\r
+DlgFormName            : "الاسم",\r
+DlgFormAction  : "اسم الملف",\r
+DlgFormMethod  : "الأسلوب",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "الاسم",\r
+DlgSelectValue         : "القيمة",\r
+DlgSelectSize          : "الحجم",\r
+DlgSelectLines         : "الأسطر",\r
+DlgSelectChkMulti      : "السماح بتحديدات متعددة",\r
+DlgSelectOpAvail       : "الخيارات المتاحة",\r
+DlgSelectOpText                : "النص",\r
+DlgSelectOpValue       : "القيمة",\r
+DlgSelectBtnAdd                : "إضافة",\r
+DlgSelectBtnModify     : "تعديل",\r
+DlgSelectBtnUp         : "تحريك لأعلى",\r
+DlgSelectBtnDown       : "تحريك لأسفل",\r
+DlgSelectBtnSetValue : "إجعلها محددة",\r
+DlgSelectBtnDelete     : "إزالة",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "الاسم",\r
+DlgTextareaCols        : "الأعمدة",\r
+DlgTextareaRows        : "الصفوف",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "الاسم",\r
+DlgTextValue           : "القيمة",\r
+DlgTextCharWidth       : "العرض بالأحرف",\r
+DlgTextMaxChars                : "عدد الحروف الأقصى",\r
+DlgTextType                    : "نوع المحتوى",\r
+DlgTextTypeText                : "نص",\r
+DlgTextTypePass                : "كلمة مرور",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "الاسم",\r
+DlgHiddenValue : "القيمة",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "خصائص التعداد النقطي",\r
+NumberedListProp       : "خصائص التعداد الرقمي",\r
+DlgLstStart                    : "البدء عند",\r
+DlgLstType                     : "النوع",\r
+DlgLstTypeCircle       : "دائرة",\r
+DlgLstTypeDisc         : "قرص",\r
+DlgLstTypeSquare       : "مربع",\r
+DlgLstTypeNumbers      : "أرقام (1، 2، 3)َ",\r
+DlgLstTypeLCase                : "حروف صغيرة (a, b, c)َ",\r
+DlgLstTypeUCase                : "حروف كبيرة (A, B, C)َ",\r
+DlgLstTypeSRoman       : "ترقيم روماني صغير (i, ii, iii)َ",\r
+DlgLstTypeLRoman       : "ترقيم روماني كبير (I, II, III)َ",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "عام",\r
+DlgDocBackTab          : "الخلفية",\r
+DlgDocColorsTab                : "الألوان والهوامش",\r
+DlgDocMetaTab          : "المعرّفات الرأسية",\r
+\r
+DlgDocPageTitle                : "عنوان الصفحة",\r
+DlgDocLangDir          : "إتجاه اللغة",\r
+DlgDocLangDirLTR       : "اليسار لليمين (LTR)",\r
+DlgDocLangDirRTL       : "اليمين لليسار (RTL)",\r
+DlgDocLangCode         : "رمز اللغة",\r
+DlgDocCharSet          : "ترميز الحروف",\r
+DlgDocCharSetCE                : "أوروبا الوسطى",\r
+DlgDocCharSetCT                : "الصينية التقليدية (Big5)",\r
+DlgDocCharSetCR                : "السيريلية",\r
+DlgDocCharSetGR                : "اليونانية",\r
+DlgDocCharSetJP                : "اليابانية",\r
+DlgDocCharSetKR                : "الكورية",\r
+DlgDocCharSetTR                : "التركية",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "أوروبا الغربية",\r
+DlgDocCharSetOther     : "ترميز آخر",\r
+\r
+DlgDocDocType          : "ترويسة نوع  الصفحة",\r
+DlgDocDocTypeOther     : "ترويسة نوع  صفحة أخرى",\r
+DlgDocIncXHTML         : "تضمين   إعلانات‏ لغة XHTMLَ",\r
+DlgDocBgColor          : "لون الخلفية",\r
+DlgDocBgImage          : "رابط الصورة الخلفية",\r
+DlgDocBgNoScroll       : "جعلها علامة مائية",\r
+DlgDocCText                    : "النص",\r
+DlgDocCLink                    : "الروابط",\r
+DlgDocCVisited         : "المزارة",\r
+DlgDocCActive          : "النشطة",\r
+DlgDocMargins          : "هوامش الصفحة",\r
+DlgDocMaTop                    : "علوي",\r
+DlgDocMaLeft           : "أيسر",\r
+DlgDocMaRight          : "أيمن",\r
+DlgDocMaBottom         : "سفلي",\r
+DlgDocMeIndex          : "الكلمات الأساسية (مفصولة بفواصل)َ",\r
+DlgDocMeDescr          : "وصف الصفحة",\r
+DlgDocMeAuthor         : "الكاتب",\r
+DlgDocMeCopy           : "المالك",\r
+DlgDocPreview          : "معاينة",\r
+\r
+// Templates Dialog\r
+Templates                      : "القوالب",\r
+DlgTemplatesTitle      : "قوالب المحتوى",\r
+DlgTemplatesSelMsg     : "اختر القالب الذي تود وضعه في المحرر <br>(سيتم فقدان المحتوى الحالي):",\r
+DlgTemplatesLoading    : "جاري تحميل قائمة القوالب، الرجاء الإنتظار...",\r
+DlgTemplatesNoTpl      : "(لم يتم تعريف أي قالب)",\r
+DlgTemplatesReplace    : "استبدال المحتوى",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "نبذة",\r
+DlgAboutBrowserInfoTab : "معلومات متصفحك",\r
+DlgAboutLicenseTab     : "الترخيص",\r
+DlgAboutVersion                : "الإصدار",\r
+DlgAboutInfo           : "لمزيد من المعلومات تفضل بزيارة"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/bg.js b/httemplate/elements/fckeditor/editor/lang/bg.js
new file mode 100644 (file)
index 0000000..423bd02
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Bulgarian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Скрий панела с инструментите",\r
+ToolbarExpand          : "Покажи панела с инструментите",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Запази",\r
+NewPage                                : "Нова страница",\r
+Preview                                : "Предварителен изглед",\r
+Cut                                    : "Изрежи",\r
+Copy                           : "Запамети",\r
+Paste                          : "Вмъкни",\r
+PasteText                      : "Вмъкни само текст",\r
+PasteWord                      : "Вмъкни от MS Word",\r
+Print                          : "Печат",\r
+SelectAll                      : "Селектирай всичко",\r
+RemoveFormat           : "Изтрий форматирането",\r
+InsertLinkLbl          : "Връзка",\r
+InsertLink                     : "Добави/Редактирай връзка",\r
+RemoveLink                     : "Изтрий връзка",\r
+Anchor                         : "Добави/Редактирай котва",\r
+InsertImageLbl         : "Изображение",\r
+InsertImage                    : "Добави/Редактирай изображение",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Добави/Редактиай Flash обект",\r
+InsertTableLbl         : "Таблица",\r
+InsertTable                    : "Добави/Редактирай таблица",\r
+InsertLineLbl          : "Линия",\r
+InsertLine                     : "Вмъкни хоризонтална линия",\r
+InsertSpecialCharLbl: "Специален символ",\r
+InsertSpecialChar      : "Вмъкни специален символ",\r
+InsertSmileyLbl                : "Усмивка",\r
+InsertSmiley           : "Добави усмивка",\r
+About                          : "За FCKeditor",\r
+Bold                           : "Удебелен",\r
+Italic                         : "Курсив",\r
+Underline                      : "Подчертан",\r
+StrikeThrough          : "Зачертан",\r
+Subscript                      : "Индекс за база",\r
+Superscript                    : "Индекс за степен",\r
+LeftJustify                    : "Подравняване в ляво",\r
+CenterJustify          : "Подравнявне в средата",\r
+RightJustify           : "Подравняване в дясно",\r
+BlockJustify           : "Двустранно подравняване",\r
+DecreaseIndent         : "Намали отстъпа",\r
+IncreaseIndent         : "Увеличи отстъпа",\r
+Undo                           : "Отмени",\r
+Redo                           : "Повтори",\r
+NumberedListLbl                : "Нумериран списък",\r
+NumberedList           : "Добави/Изтрий нумериран списък",\r
+BulletedListLbl                : "Ненумериран списък",\r
+BulletedList           : "Добави/Изтрий ненумериран списък",\r
+ShowTableBorders       : "Покажи рамките на таблицата",\r
+ShowDetails                    : "Покажи подробности",\r
+Style                          : "Стил",\r
+FontFormat                     : "Формат",\r
+Font                           : "Шрифт",\r
+FontSize                       : "Размер",\r
+TextColor                      : "Цвят на текста",\r
+BGColor                                : "Цвят на фона",\r
+Source                         : "Код",\r
+Find                           : "Търси",\r
+Replace                                : "Замести",\r
+SpellCheck                     : "Провери правописа",\r
+UniversalKeyboard      : "Универсална клавиатура",\r
+PageBreakLbl           : "Нов ред",\r
+PageBreak                      : "Вмъкни нов ред",\r
+\r
+Form                   : "Формуляр",\r
+Checkbox               : "Поле за отметка",\r
+RadioButton            : "Поле за опция",\r
+TextField              : "Текстово поле",\r
+Textarea               : "Текстова област",\r
+HiddenField            : "Скрито поле",\r
+Button                 : "Бутон",\r
+SelectionField : "Падащо меню с опции",\r
+ImageButton            : "Бутон-изображение",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Редактирай връзка",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Добави ред",\r
+DeleteRows                     : "Изтрий редовете",\r
+InsertColumn           : "Добави колона",\r
+DeleteColumns          : "Изтрий колоните",\r
+InsertCell                     : "Добави клетка",\r
+DeleteCells                    : "Изтрий клетките",\r
+MergeCells                     : "Обедини клетките",\r
+SplitCell                      : "Раздели клетката",\r
+TableDelete                    : "Изтрий таблицата",\r
+CellProperties         : "Параметри на клетката",\r
+TableProperties                : "Параметри на таблицата",\r
+ImageProperties                : "Параметри на изображението",\r
+FlashProperties                : "Параметри на Flash обекта",\r
+\r
+AnchorProp                     : "Параметри на котвата",\r
+ButtonProp                     : "Параметри на бутона",\r
+CheckboxProp           : "Параметри на полето за отметка",\r
+HiddenFieldProp                : "Параметри на скритото поле",\r
+RadioButtonProp                : "Параметри на полето за опция",\r
+ImageButtonProp                : "Параметри на бутона-изображение",\r
+TextFieldProp          : "Параметри на текстовото-поле",\r
+SelectionFieldProp     : "Параметри на падащото меню с опции",\r
+TextareaProp           : "Параметри на текстовата област",\r
+FormProp                       : "Параметри на формуляра",\r
+\r
+FontFormats                    : "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Обработка на XHTML. Моля изчакайте...",\r
+Done                           : "Готово",\r
+PasteWordConfirm       : "Текстът, който искате да вмъкнете е копиран от MS Word. Желаете ли да бъде изчистен преди вмъкването?",\r
+NotCompatiblePaste     : "Тази операция изисква MS Internet Explorer версия 5.5 или по-висока. Желаете ли да вмъкнете запаметеното без изчистване?",\r
+UnknownToolbarItem     : "Непознат инструмент \"%1\"",\r
+UnknownCommand         : "Непозната команда \"%1\"",\r
+NotImplemented         : "Командата не е имплементирана",\r
+UnknownToolbarSet      : "Панелът \"%1\" не съществува",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ОК",\r
+DlgBtnCancel           : "Отказ",\r
+DlgBtnClose                    : "Затвори",\r
+DlgBtnBrowseServer     : "Разгледай сървъра",\r
+DlgAdvancedTag         : "Подробности...",\r
+DlgOpOther                     : "<Друго>",\r
+DlgInfoTab                     : "Информация",\r
+DlgAlertUrl                    : "Моля, въведете пълния път (URL)",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<не е настроен>",\r
+DlgGenId                       : "Идентификатор",\r
+DlgGenLangDir          : "посока на речта",\r
+DlgGenLangDirLtr       : "От ляво на дясно",\r
+DlgGenLangDirRtl       : "От дясно на ляво",\r
+DlgGenLangCode         : "Код на езика",\r
+DlgGenAccessKey                : "Бърз клавиш",\r
+DlgGenName                     : "Име",\r
+DlgGenTabIndex         : "Ред на достъп",\r
+DlgGenLongDescr                : "Описание на връзката",\r
+DlgGenClass                    : "Клас от стиловите таблици",\r
+DlgGenTitle                    : "Препоръчително заглавие",\r
+DlgGenContType         : "Препоръчителен тип на съдържанието",\r
+DlgGenLinkCharset      : "Тип на свързания ресурс",\r
+DlgGenStyle                    : "Стил",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Параметри на изображението",\r
+DlgImgInfoTab          : "Информация за изображението",\r
+DlgImgBtnUpload                : "Прати към сървъра",\r
+DlgImgURL                      : "Пълен път (URL)",\r
+DlgImgUpload           : "Качи",\r
+DlgImgAlt                      : "Алтернативен текст",\r
+DlgImgWidth                    : "Ширина",\r
+DlgImgHeight           : "Височина",\r
+DlgImgLockRatio                : "Запази пропорцията",\r
+DlgBtnResetSize                : "Възстанови размера",\r
+DlgImgBorder           : "Рамка",\r
+DlgImgHSpace           : "Хоризонтален отстъп",\r
+DlgImgVSpace           : "Вертикален отстъп",\r
+DlgImgAlign                    : "Подравняване",\r
+DlgImgAlignLeft                : "Ляво",\r
+DlgImgAlignAbsBottom: "Най-долу",\r
+DlgImgAlignAbsMiddle: "Точно по средата",\r
+DlgImgAlignBaseline    : "По базовата линия",\r
+DlgImgAlignBottom      : "Долу",\r
+DlgImgAlignMiddle      : "По средата",\r
+DlgImgAlignRight       : "Дясно",\r
+DlgImgAlignTextTop     : "Върху текста",\r
+DlgImgAlignTop         : "Отгоре",\r
+DlgImgPreview          : "Изглед",\r
+DlgImgAlertUrl         : "Моля, въведете пълния път до изображението",\r
+DlgImgLinkTab          : "Връзка",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Параметри на Flash обекта",\r
+DlgFlashChkPlay                : "Автоматично стартиране",\r
+DlgFlashChkLoop                : "Ново стартиране след завършването",\r
+DlgFlashChkMenu                : "Разрешено Flash меню",\r
+DlgFlashScale          : "Оразмеряване",\r
+DlgFlashScaleAll       : "Покажи целия обект",\r
+DlgFlashScaleNoBorder  : "Без рамка",\r
+DlgFlashScaleFit       : "Според мястото",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Връзка",\r
+DlgLnkInfoTab          : "Информация за връзката",\r
+DlgLnkTargetTab                : "Цел",\r
+\r
+DlgLnkType                     : "Вид на връзката",\r
+DlgLnkTypeURL          : "Пълен път (URL)",\r
+DlgLnkTypeAnchor       : "Котва в текущата страница",\r
+DlgLnkTypeEMail                : "Е-поща",\r
+DlgLnkProto                    : "Протокол",\r
+DlgLnkProtoOther       : "<друго>",\r
+DlgLnkURL                      : "Пълен път (URL)",\r
+DlgLnkAnchorSel                : "Изберете котва",\r
+DlgLnkAnchorByName     : "По име на котвата",\r
+DlgLnkAnchorById       : "По идентификатор на елемент",\r
+DlgLnkNoAnchors                : "<Няма котви в текущия документ>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Адрес за е-поща",\r
+DlgLnkEMailSubject     : "Тема на писмото",\r
+DlgLnkEMailBody                : "Текст на писмото",\r
+DlgLnkUpload           : "Качи",\r
+DlgLnkBtnUpload                : "Прати на сървъра",\r
+\r
+DlgLnkTarget           : "Цел",\r
+DlgLnkTargetFrame      : "<рамка>",\r
+DlgLnkTargetPopup      : "<дъщерен прозорец>",\r
+DlgLnkTargetBlank      : "Нов прозорец (_blank)",\r
+DlgLnkTargetParent     : "Родителски прозорец (_parent)",\r
+DlgLnkTargetSelf       : "Активния прозорец (_self)",\r
+DlgLnkTargetTop                : "Целия прозорец (_top)",\r
+DlgLnkTargetFrameName  : "Име на целевия прозорец",\r
+DlgLnkPopWinName       : "Име на дъщерния прозорец",\r
+DlgLnkPopWinFeat       : "Параметри на дъщерния прозорец",\r
+DlgLnkPopResize                : "С променливи размери",\r
+DlgLnkPopLocation      : "Поле за адрес",\r
+DlgLnkPopMenu          : "Меню",\r
+DlgLnkPopScroll                : "Плъзгач",\r
+DlgLnkPopStatus                : "Поле за статус",\r
+DlgLnkPopToolbar       : "Панел с бутони",\r
+DlgLnkPopFullScrn      : "Голям екран (MS IE)",\r
+DlgLnkPopDependent     : "Зависим (Netscape)",\r
+DlgLnkPopWidth         : "Ширина",\r
+DlgLnkPopHeight                : "Височина",\r
+DlgLnkPopLeft          : "Координати - X",\r
+DlgLnkPopTop           : "Координати - Y",\r
+\r
+DlnLnkMsgNoUrl         : "Моля, напишете пълния път (URL)",\r
+DlnLnkMsgNoEMail       : "Моля, напишете адреса за е-поща",\r
+DlnLnkMsgNoAnchor      : "Моля, изберете котва",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Изберете цвят",\r
+DlgColorBtnClear       : "Изчисти",\r
+DlgColorHighlight      : "Текущ",\r
+DlgColorSelected       : "Избран",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Добави усмивка",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Изберете специален символ",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Параметри на таблицата",\r
+DlgTableRows           : "Редове",\r
+DlgTableColumns                : "Колони",\r
+DlgTableBorder         : "Размер на рамката",\r
+DlgTableAlign          : "Подравняване",\r
+DlgTableAlignNotSet    : "<Не е избрано>",\r
+DlgTableAlignLeft      : "Ляво",\r
+DlgTableAlignCenter    : "Център",\r
+DlgTableAlignRight     : "Дясно",\r
+DlgTableWidth          : "Ширина",\r
+DlgTableWidthPx                : "пиксели",\r
+DlgTableWidthPc                : "проценти",\r
+DlgTableHeight         : "Височина",\r
+DlgTableCellSpace      : "Разстояние между клетките",\r
+DlgTableCellPad                : "Отстъп на съдържанието в клетките",\r
+DlgTableCaption                : "Заглавие",\r
+DlgTableSummary                : "Резюме",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Параметри на клетката",\r
+DlgCellWidth           : "Ширина",\r
+DlgCellWidthPx         : "пиксели",\r
+DlgCellWidthPc         : "проценти",\r
+DlgCellHeight          : "Височина",\r
+DlgCellWordWrap                : "пренасяне на нов ред",\r
+DlgCellWordWrapNotSet  : "<Не е настроено>",\r
+DlgCellWordWrapYes     : "Да",\r
+DlgCellWordWrapNo      : "не",\r
+DlgCellHorAlign                : "Хоризонтално подравняване",\r
+DlgCellHorAlignNotSet  : "<Не е настроено>",\r
+DlgCellHorAlignLeft    : "Ляво",\r
+DlgCellHorAlignCenter  : "Център",\r
+DlgCellHorAlignRight: "Дясно",\r
+DlgCellVerAlign                : "Вертикално подравняване",\r
+DlgCellVerAlignNotSet  : "<Не е настроено>",\r
+DlgCellVerAlignTop     : "Горе",\r
+DlgCellVerAlignMiddle  : "По средата",\r
+DlgCellVerAlignBottom  : "Долу",\r
+DlgCellVerAlignBaseline        : "По базовата линия",\r
+DlgCellRowSpan         : "повече от един ред",\r
+DlgCellCollSpan                : "повече от една колона",\r
+DlgCellBackColor       : "фонов цвят",\r
+DlgCellBorderColor     : "цвят на рамката",\r
+DlgCellBtnSelect       : "Изберете...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Търси",\r
+DlgFindFindBtn         : "Търси",\r
+DlgFindNotFoundMsg     : "Указания текст не беше намерен.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Замести",\r
+DlgReplaceFindLbl              : "Търси:",\r
+DlgReplaceReplaceLbl   : "Замести с:",\r
+DlgReplaceCaseChk              : "Със същия регистър",\r
+DlgReplaceReplaceBtn   : "Замести",\r
+DlgReplaceReplAllBtn   : "Замести всички",\r
+DlgReplaceWordChk              : "Търси същата дума",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl+X).",\r
+PasteErrorCopy : "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl+C).",\r
+\r
+PasteAsText            : "Вмъкни като чист текст",\r
+PasteFromWord  : "Вмъкни от MS Word",\r
+\r
+DlgPasteMsg2   : "Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl+V</STRONG>) и натиснете <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Игнорирай шрифтовите дефиниции",\r
+DlgPasteRemoveStyles   : "Изтрий стиловите дефиниции",\r
+DlgPasteCleanBox               : "Изчисти",\r
+\r
+// Color Picker\r
+ColorAutomatic : "По подразбиране",\r
+ColorMoreColors        : "Други цветове...",\r
+\r
+// Document Properties\r
+DocProps               : "Параметри на документа",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Параметри на котвата",\r
+DlgAnchorName          : "Име на котвата",\r
+DlgAnchorErrorName     : "Моля, въведете име на котвата",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Липсва в речника",\r
+DlgSpellChangeTo               : "Промени на",\r
+DlgSpellBtnIgnore              : "Игнорирай",\r
+DlgSpellBtnIgnoreAll   : "Игнорирай всички",\r
+DlgSpellBtnReplace             : "Замести",\r
+DlgSpellBtnReplaceAll  : "Замести всички",\r
+DlgSpellBtnUndo                        : "Отмени",\r
+DlgSpellNoSuggestions  : "- Няма предложения -",\r
+DlgSpellProgress               : "Извършване на проверката за правопис...",\r
+DlgSpellNoMispell              : "Проверката за правопис завършена: не са открити правописни грешки",\r
+DlgSpellNoChanges              : "Проверката за правопис завършена: няма променени думи",\r
+DlgSpellOneChange              : "Проверката за правопис завършена: една дума е променена",\r
+DlgSpellManyChanges            : "Проверката за правопис завършена: %1 думи са променени",\r
+\r
+IeSpellDownload                        : "Инструментът за проверка на правопис не е инсталиран. Желаете ли да го инсталирате ?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Текст (Стойност)",\r
+DlgButtonType          : "Тип",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Име",\r
+DlgCheckboxValue       : "Стойност",\r
+DlgCheckboxSelected    : "Отметнато",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Име",\r
+DlgFormAction  : "Действие",\r
+DlgFormMethod  : "Метод",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Име",\r
+DlgSelectValue         : "Стойност",\r
+DlgSelectSize          : "Размер",\r
+DlgSelectLines         : "линии",\r
+DlgSelectChkMulti      : "Разрешено множествено селектиране",\r
+DlgSelectOpAvail       : "Възможни опции",\r
+DlgSelectOpText                : "Текст",\r
+DlgSelectOpValue       : "Стойност",\r
+DlgSelectBtnAdd                : "Добави",\r
+DlgSelectBtnModify     : "Промени",\r
+DlgSelectBtnUp         : "Нагоре",\r
+DlgSelectBtnDown       : "Надолу",\r
+DlgSelectBtnSetValue : "Настрой като избрана стойност",\r
+DlgSelectBtnDelete     : "Изтрий",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Име",\r
+DlgTextareaCols        : "Колони",\r
+DlgTextareaRows        : "Редове",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Име",\r
+DlgTextValue           : "Стойност",\r
+DlgTextCharWidth       : "Ширина на символите",\r
+DlgTextMaxChars                : "Максимум символи",\r
+DlgTextType                    : "Тип",\r
+DlgTextTypeText                : "Текст",\r
+DlgTextTypePass                : "Парола",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Име",\r
+DlgHiddenValue : "Стойност",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Параметри на ненумерирания списък",\r
+NumberedListProp       : "Параметри на нумерирания списък",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Тип",\r
+DlgLstTypeCircle       : "Окръжност",\r
+DlgLstTypeDisc         : "Кръг",\r
+DlgLstTypeSquare       : "Квадрат",\r
+DlgLstTypeNumbers      : "Числа (1, 2, 3)",\r
+DlgLstTypeLCase                : "Малки букви (a, b, c)",\r
+DlgLstTypeUCase                : "Големи букви (A, B, C)",\r
+DlgLstTypeSRoman       : "Малки римски числа (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Големи римски числа (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Общи",\r
+DlgDocBackTab          : "Фон",\r
+DlgDocColorsTab                : "Цветове и отстъпи",\r
+DlgDocMetaTab          : "Мета данни",\r
+\r
+DlgDocPageTitle                : "Заглавие на страницата",\r
+DlgDocLangDir          : "Посока на речта",\r
+DlgDocLangDirLTR       : "От ляво на дясно",\r
+DlgDocLangDirRTL       : "От дясно на ляво",\r
+DlgDocLangCode         : "Код на езика",\r
+DlgDocCharSet          : "Кодиране на символите",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Друго кодиране на символите",\r
+\r
+DlgDocDocType          : "Тип на документа",\r
+DlgDocDocTypeOther     : "Друг тип на документа",\r
+DlgDocIncXHTML         : "Включи XHTML декларация",\r
+DlgDocBgColor          : "Цвят на фона",\r
+DlgDocBgImage          : "Пълен път до фоновото изображение",\r
+DlgDocBgNoScroll       : "Не-повтарящо се фоново изображение",\r
+DlgDocCText                    : "Текст",\r
+DlgDocCLink                    : "Връзка",\r
+DlgDocCVisited         : "Посетена връзка",\r
+DlgDocCActive          : "Активна връзка",\r
+DlgDocMargins          : "Отстъпи на страницата",\r
+DlgDocMaTop                    : "Горе",\r
+DlgDocMaLeft           : "Ляво",\r
+DlgDocMaRight          : "Дясно",\r
+DlgDocMaBottom         : "Долу",\r
+DlgDocMeIndex          : "Ключови думи за документа (разделени със запетаи)",\r
+DlgDocMeDescr          : "Описание на документа",\r
+DlgDocMeAuthor         : "Автор",\r
+DlgDocMeCopy           : "Авторски права",\r
+DlgDocPreview          : "Изглед",\r
+\r
+// Templates Dialog\r
+Templates                      : "Шаблони",\r
+DlgTemplatesTitle      : "Шаблони",\r
+DlgTemplatesSelMsg     : "Изберете шаблон <br>(текущото съдържание на редактора ще бъде загубено):",\r
+DlgTemplatesLoading    : "Зареждане на списъка с шаблоните. Моля изчакайте...",\r
+DlgTemplatesNoTpl      : "(Няма дефинирани шаблони)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "За",\r
+DlgAboutBrowserInfoTab : "Информация за браузъра",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "версия",\r
+DlgAboutInfo           : "За повече информация посетете"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/bn.js b/httemplate/elements/fckeditor/editor/lang/bn.js
new file mode 100644 (file)
index 0000000..8f76754
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Bengali/Bangla language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "টূলবার গুটিয়ে দাও",\r
+ToolbarExpand          : "টূলবার ছড়িয়ে দাও",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "সংরক্ষন কর",\r
+NewPage                                : "নতুন পেজ",\r
+Preview                                : "প্রিভিউ",\r
+Cut                                    : "কাট",\r
+Copy                           : "কপি",\r
+Paste                          : "পেস্ট",\r
+PasteText                      : "পেস্ট (সাদা টেক্সট)",\r
+PasteWord                      : "পেস্ট (শব্দ)",\r
+Print                          : "প্রিন্ট",\r
+SelectAll                      : "সব সিলেক্ট কর",\r
+RemoveFormat           : "ফরমেট সরাও",\r
+InsertLinkLbl          : "লিংকের যুক্ত করার লেবেল",\r
+InsertLink                     : "লিংক যুক্ত কর",\r
+RemoveLink                     : "লিংক সরাও",\r
+Anchor                         : "নোঙ্গর",\r
+InsertImageLbl         : "ছবির লেবেল যুক্ত কর",\r
+InsertImage                    : "ছবি যুক্ত কর",\r
+InsertFlashLbl         : "ফ্লাশ লেবেল যুক্ত কর",\r
+InsertFlash                    : "ফ্লাশ যুক্ত কর",\r
+InsertTableLbl         : "টেবিলের লেবেল যুক্ত কর",\r
+InsertTable                    : "টেবিল যুক্ত কর",\r
+InsertLineLbl          : "রেখা যুক্ত কর",\r
+InsertLine                     : "রেখা যুক্ত কর",\r
+InsertSpecialCharLbl: "বিশেষ অক্ষরের লেবেল যুক্ত কর",\r
+InsertSpecialChar      : "বিশেষ অক্ষর যুক্ত কর",\r
+InsertSmileyLbl                : "স্মাইলী",\r
+InsertSmiley           : "স্মাইলী যুক্ত কর",\r
+About                          : "FCKeditor কে বানিয়েছে",\r
+Bold                           : "বোল্ড",\r
+Italic                         : "ইটালিক",\r
+Underline                      : "আন্ডারলাইন",\r
+StrikeThrough          : "স্ট্রাইক থ্রু",\r
+Subscript                      : "অধোলেখ",\r
+Superscript                    : "অভিলেখ",\r
+LeftJustify                    : "বা দিকে ঘেঁষা",\r
+CenterJustify          : "মাঝ বরাবর ঘেষা",\r
+RightJustify           : "ডান দিকে ঘেঁষা",\r
+BlockJustify           : "ব্লক জাস্টিফাই",\r
+DecreaseIndent         : "ইনডেন্ট কমাও",\r
+IncreaseIndent         : "ইনডেন্ট বাড়াও",\r
+Undo                           : "আনডু",\r
+Redo                           : "রি-ডু",\r
+NumberedListLbl                : "সাংখ্যিক লিস্টের লেবেল",\r
+NumberedList           : "সাংখ্যিক লিস্ট",\r
+BulletedListLbl                : "বুলেট লিস্ট লেবেল",\r
+BulletedList           : "বুলেটেড লিস্ট",\r
+ShowTableBorders       : "টেবিল বর্ডার",\r
+ShowDetails                    : "সবটুকু দেখাও",\r
+Style                          : "স্টাইল",\r
+FontFormat                     : "ফন্ট ফরমেট",\r
+Font                           : "ফন্ট",\r
+FontSize                       : "সাইজ",\r
+TextColor                      : "টেক্স্ট রং",\r
+BGColor                                : "বেকগ্রাউন্ড রং",\r
+Source                         : "সোর্স",\r
+Find                           : "খোজো",\r
+Replace                                : "রিপ্লেস",\r
+SpellCheck                     : "বানান চেক",\r
+UniversalKeyboard      : "সার্বজনীন কিবোর্ড",\r
+PageBreakLbl           : "পেজ ব্রেক লেবেল",\r
+PageBreak                      : "পেজ ব্রেক",\r
+\r
+Form                   : "ফর্ম",\r
+Checkbox               : "চেক বাক্স",\r
+RadioButton            : "রেডিও বাটন",\r
+TextField              : "টেক্সট ফীল্ড",\r
+Textarea               : "টেক্সট এরিয়া",\r
+HiddenField            : "গুপ্ত ফীল্ড",\r
+Button                 : "বাটন",\r
+SelectionField : "বাছাই ফীল্ড",\r
+ImageButton            : "ছবির বাটন",\r
+\r
+FitWindow              : "উইন্ডো ফিট কর",\r
+\r
+// Context Menu\r
+EditLink                       : "লিংক সম্পাদন",\r
+CellCM                         : "সেল",\r
+RowCM                          : "রো",\r
+ColumnCM                       : "কলাম",\r
+InsertRow                      : "রো যুক্ত কর",\r
+DeleteRows                     : "রো মুছে দাও",\r
+InsertColumn           : "কলাম যুক্ত কর",\r
+DeleteColumns          : "কলাম মুছে দাও",\r
+InsertCell                     : "সেল যুক্ত কর",\r
+DeleteCells                    : "সেল মুছে দাও",\r
+MergeCells                     : "সেল জোড়া দাও",\r
+SplitCell                      : "সেল আলাদা কর",\r
+TableDelete                    : "টেবিল ডিলীট কর",\r
+CellProperties         : "সেলের প্রোপার্টিজ",\r
+TableProperties                : "টেবিল প্রোপার্টি",\r
+ImageProperties                : "ছবি প্রোপার্টি",\r
+FlashProperties                : "ফ্লাশ প্রোপার্টি",\r
+\r
+AnchorProp                     : "নোঙর প্রোপার্টি",\r
+ButtonProp                     : "বাটন প্রোপার্টি",\r
+CheckboxProp           : "চেক বক্স প্রোপার্টি",\r
+HiddenFieldProp                : "গুপ্ত ফীল্ড প্রোপার্টি",\r
+RadioButtonProp                : "রেডিও বাটন প্রোপার্টি",\r
+ImageButtonProp                : "ছবি বাটন প্রোপার্টি",\r
+TextFieldProp          : "টেক্সট ফীল্ড প্রোপার্টি",\r
+SelectionFieldProp     : "বাছাই ফীল্ড প্রোপার্টি",\r
+TextareaProp           : "টেক্সট এরিয়া প্রোপার্টি",\r
+FormProp                       : "ফর্ম প্রোপার্টি",\r
+\r
+FontFormats                    : "সাধারণ;ফর্মেটেড;ঠিকানা;শীর্ষক ১;শীর্ষক ২;শীর্ষক ৩;শীর্ষক ৪;শীর্ষক ৫;শীর্ষক ৬;শীর্ষক (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML প্রসেস করা হচ্ছে",\r
+Done                           : "শেষ হয়েছে",\r
+PasteWordConfirm       : "যে টেকস্টটি আপনি পেস্ট করতে চাচ্ছেন মনে হচ্ছে সেটি ওয়ার্ড থেকে কপি করা। আপনি কি পেস্ট করার আগে একে পরিষ্কার করতে চান?",\r
+NotCompatiblePaste     : "এই কমান্ডটি শুধুমাত্র ইন্টারনেট এক্সপ্লোরার ৫.০ বা তার পরের ভার্সনে পাওয়া সম্ভব। আপনি কি পরিষ্কার না করেই পেস্ট করতে চান?",\r
+UnknownToolbarItem     : "অজানা টুলবার আইটেম \"%1\"",\r
+UnknownCommand         : "অজানা কমান্ড \"%1\"",\r
+NotImplemented         : "কমান্ড ইমপ্লিমেন্ট করা হয়নি",\r
+UnknownToolbarSet      : "টুলবার সেট \"%1\" এর অস্তিত্ব নেই",\r
+NoActiveX                      : "আপনার ব্রাউজারের সুরক্ষা সেটিংস কারনে এডিটরের কিছু ফিচার পাওয়া নাও যেতে পারে। আপনাকে অবশ্যই \"Run ActiveX controls and plug-ins\" এনাবেল করে নিতে হবে। আপনি ভুলভ্রান্তি কিছু কিছু ফিচারের অনুপস্থিতি উপলব্ধি করতে পারেন।",\r
+BrowseServerBlocked : "রিসোর্স ব্রাউজার খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",\r
+DialogBlocked          : "ডায়ালগ ইউন্ডো খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ওকে",\r
+DlgBtnCancel           : "বাতিল",\r
+DlgBtnClose                    : "বন্ধ কর",\r
+DlgBtnBrowseServer     : "ব্রাউজ সার্ভার",\r
+DlgAdvancedTag         : "এডভান্সড",\r
+DlgOpOther                     : "<অন্য>",\r
+DlgInfoTab                     : "তথ্য",\r
+DlgAlertUrl                    : "দয়া করে URL যুক্ত করুন",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<সেট নেই>",\r
+DlgGenId                       : "আইডি",\r
+DlgGenLangDir          : "ভাষা লেখার দিক",\r
+DlgGenLangDirLtr       : "বাম থেকে ডান (LTR)",\r
+DlgGenLangDirRtl       : "ডান থেকে বাম (RTL)",\r
+DlgGenLangCode         : "ভাষা কোড",\r
+DlgGenAccessKey                : "এক্সেস কী",\r
+DlgGenName                     : "নাম",\r
+DlgGenTabIndex         : "ট্যাব ইন্ডেক্স",\r
+DlgGenLongDescr                : "URL এর লম্বা বর্ণনা",\r
+DlgGenClass                    : "স্টাইল-শীট ক্লাস",\r
+DlgGenTitle                    : "পরামর্শ শীর্ষক",\r
+DlgGenContType         : "পরামর্শ কন্টেন্টের প্রকার",\r
+DlgGenLinkCharset      : "লিংক রিসোর্স ক্যারেক্টর সেট",\r
+DlgGenStyle                    : "স্টাইল",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "ছবির প্রোপার্টি",\r
+DlgImgInfoTab          : "ছবির তথ্য",\r
+DlgImgBtnUpload                : "ইহাকে সার্ভারে প্রেরন কর",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "আপলোড",\r
+DlgImgAlt                      : "বিকল্প টেক্সট",\r
+DlgImgWidth                    : "প্রস্থ",\r
+DlgImgHeight           : "দৈর্ঘ্য",\r
+DlgImgLockRatio                : "অনুপাত লক কর",\r
+DlgBtnResetSize                : "সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",\r
+DlgImgBorder           : "বর্ডার",\r
+DlgImgHSpace           : "হরাইজন্টাল স্পেস",\r
+DlgImgVSpace           : "ভার্টিকেল স্পেস",\r
+DlgImgAlign                    : "এলাইন",\r
+DlgImgAlignLeft                : "বামে",\r
+DlgImgAlignAbsBottom: "Abs নীচে",\r
+DlgImgAlignAbsMiddle: "Abs উপর",\r
+DlgImgAlignBaseline    : "মূল রেখা",\r
+DlgImgAlignBottom      : "নীচে",\r
+DlgImgAlignMiddle      : "মধ্য",\r
+DlgImgAlignRight       : "ডানে",\r
+DlgImgAlignTextTop     : "টেক্সট উপর",\r
+DlgImgAlignTop         : "উপর",\r
+DlgImgPreview          : "প্রীভিউ",\r
+DlgImgAlertUrl         : "অনুগ্রহক করে ছবির URL টাইপ করুন",\r
+DlgImgLinkTab          : "লিংক",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "ফ্ল্যাশ প্রোপার্টি",\r
+DlgFlashChkPlay                : "অটো প্লে",\r
+DlgFlashChkLoop                : "লূপ",\r
+DlgFlashChkMenu                : "ফ্ল্যাশ মেনু এনাবল কর",\r
+DlgFlashScale          : "স্কেল",\r
+DlgFlashScaleAll       : "সব দেখাও",\r
+DlgFlashScaleNoBorder  : "কোনো বর্ডার নেই",\r
+DlgFlashScaleFit       : "নিখুঁত ফিট",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "লিংক",\r
+DlgLnkInfoTab          : "লিংক তথ্য",\r
+DlgLnkTargetTab                : "টার্গেট",\r
+\r
+DlgLnkType                     : "লিংক প্রকার",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "এই পেজে নোঙর কর",\r
+DlgLnkTypeEMail                : "ইমেইল",\r
+DlgLnkProto                    : "প্রোটোকল",\r
+DlgLnkProtoOther       : "<অন্য>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "নোঙর বাছাই",\r
+DlgLnkAnchorByName     : "নোঙরের নাম দিয়ে",\r
+DlgLnkAnchorById       : "নোঙরের আইডি দিয়ে",\r
+DlgLnkNoAnchors                : "<ডকুমেন্টে আর কোন নোঙর নেই>",              //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "ইমেইল ঠিকানা",\r
+DlgLnkEMailSubject     : "মেসেজের বিষয়",\r
+DlgLnkEMailBody                : "মেসেজের দেহ",\r
+DlgLnkUpload           : "আপলোড",\r
+DlgLnkBtnUpload                : "একে সার্ভারে পাঠাও",\r
+\r
+DlgLnkTarget           : "টার্গেট",\r
+DlgLnkTargetFrame      : "<ফ্রেম>",\r
+DlgLnkTargetPopup      : "<পপআপ উইন্ডো>",\r
+DlgLnkTargetBlank      : "নতুন উইন্ডো (_blank)",\r
+DlgLnkTargetParent     : "মূল উইন্ডো (_parent)",\r
+DlgLnkTargetSelf       : "এই উইন্ডো (_self)",\r
+DlgLnkTargetTop                : "শীর্ষ উইন্ডো (_top)",\r
+DlgLnkTargetFrameName  : "টার্গেট ফ্রেমের নাম",\r
+DlgLnkPopWinName       : "পপআপ উইন্ডোর নাম",\r
+DlgLnkPopWinFeat       : "পপআপ উইন্ডো ফীচার সমূহ",\r
+DlgLnkPopResize                : "রিসাইজ করা সম্ভব",\r
+DlgLnkPopLocation      : "লোকেশন বার",\r
+DlgLnkPopMenu          : "মেন্যু বার",\r
+DlgLnkPopScroll                : "স্ক্রল বার",\r
+DlgLnkPopStatus                : "স্ট্যাটাস বার",\r
+DlgLnkPopToolbar       : "টুল বার",\r
+DlgLnkPopFullScrn      : "পূর্ণ পর্দা জুড়ে (IE)",\r
+DlgLnkPopDependent     : "ডিপেন্ডেন্ট (Netscape)",\r
+DlgLnkPopWidth         : "প্রস্থ",\r
+DlgLnkPopHeight                : "দৈর্ঘ্য",\r
+DlgLnkPopLeft          : "বামের পজিশন",\r
+DlgLnkPopTop           : "ডানের পজিশন",\r
+\r
+DlnLnkMsgNoUrl         : "অনুগ্রহ করে URL লিংক টাইপ করুন",\r
+DlnLnkMsgNoEMail       : "অনুগ্রহ করে ইমেইল এড্রেস টাইপ করুন",\r
+DlnLnkMsgNoAnchor      : "অনুগ্রহ করে নোঙর বাছাই করুন",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "রং বাছাই কর",\r
+DlgColorBtnClear       : "পরিষ্কার কর",\r
+DlgColorHighlight      : "হাইলাইট",\r
+DlgColorSelected       : "সিলেক্টেড",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "স্মাইলী যুক্ত কর",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "বিশেষ ক্যারেক্টার বাছাই কর",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "টেবিল প্রোপার্টি",\r
+DlgTableRows           : "রো",\r
+DlgTableColumns                : "কলাম",\r
+DlgTableBorder         : "বর্ডার সাইজ",\r
+DlgTableAlign          : "এলাইনমেন্ট",\r
+DlgTableAlignNotSet    : "<সেট নেই>",\r
+DlgTableAlignLeft      : "বামে",\r
+DlgTableAlignCenter    : "মাঝখানে",\r
+DlgTableAlignRight     : "ডানে",\r
+DlgTableWidth          : "প্রস্থ",\r
+DlgTableWidthPx                : "পিক্সেল",\r
+DlgTableWidthPc                : "শতকরা",\r
+DlgTableHeight         : "দৈর্ঘ্য",\r
+DlgTableCellSpace      : "সেল স্পেস",\r
+DlgTableCellPad                : "সেল প্যাডিং",\r
+DlgTableCaption                : "শীর্ষক",\r
+DlgTableSummary                : "সারাংশ",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "সেল প্রোপার্টি",\r
+DlgCellWidth           : "প্রস্থ",\r
+DlgCellWidthPx         : "পিক্সেল",\r
+DlgCellWidthPc         : "শতকরা",\r
+DlgCellHeight          : "দৈর্ঘ্য",\r
+DlgCellWordWrap                : "ওয়ার্ড রেপ",\r
+DlgCellWordWrapNotSet  : "<সেট নেই>",\r
+DlgCellWordWrapYes     : "হাঁ",\r
+DlgCellWordWrapNo      : "না",\r
+DlgCellHorAlign                : "হরাইজন্টাল এলাইনমেন্ট",\r
+DlgCellHorAlignNotSet  : "<সেট নেই>",\r
+DlgCellHorAlignLeft    : "বামে",\r
+DlgCellHorAlignCenter  : "মাঝখানে",\r
+DlgCellHorAlignRight: "ডানে",\r
+DlgCellVerAlign                : "ভার্টিক্যাল এলাইনমেন্ট",\r
+DlgCellVerAlignNotSet  : "<সেট নেই>",\r
+DlgCellVerAlignTop     : "উপর",\r
+DlgCellVerAlignMiddle  : "মধ্য",\r
+DlgCellVerAlignBottom  : "নীচে",\r
+DlgCellVerAlignBaseline        : "মূলরেখা",\r
+DlgCellRowSpan         : "রো স্প্যান",\r
+DlgCellCollSpan                : "কলাম স্প্যান",\r
+DlgCellBackColor       : "ব্যাকগ্রাউন্ড রং",\r
+DlgCellBorderColor     : "বর্ডারের রং",\r
+DlgCellBtnSelect       : "বাছাই কর",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "খোঁজো",\r
+DlgFindFindBtn         : "খোঁজো",\r
+DlgFindNotFoundMsg     : "আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "বদলে দাও",\r
+DlgReplaceFindLbl              : "যা খুঁজতে হবে:",\r
+DlgReplaceReplaceLbl   : "যার সাথে বদলাতে হবে:",\r
+DlgReplaceCaseChk              : "কেস মিলাও",\r
+DlgReplaceReplaceBtn   : "বদলে দাও",\r
+DlgReplaceReplAllBtn   : "সব বদলে দাও",\r
+DlgReplaceWordChk              : "পুরা শব্দ মেলাও",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+X)।",\r
+PasteErrorCopy : "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+C)।",\r
+\r
+PasteAsText            : "সাদা টেক্সট হিসেবে পেস্ট কর",\r
+PasteFromWord  : "ওয়ার্ড থেকে পেস্ট কর",\r
+\r
+DlgPasteMsg2   : "অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "ফন্ট ফেস ডেফিনেশন ইগনোর করুন",\r
+DlgPasteRemoveStyles   : "স্টাইল ডেফিনেশন সরিয়ে দিন",\r
+DlgPasteCleanBox               : "বাক্স পরিষ্কার করুন",\r
+\r
+// Color Picker\r
+ColorAutomatic : "অটোমেটিক",\r
+ColorMoreColors        : "আরও রং...",\r
+\r
+// Document Properties\r
+DocProps               : "ডক্যুমেন্ট প্রোপার্টি",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "নোঙরের প্রোপার্টি",\r
+DlgAnchorName          : "নোঙরের নাম",\r
+DlgAnchorErrorName     : "নোঙরের নাম টাইপ করুন",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "শব্দকোষে নেই",\r
+DlgSpellChangeTo               : "এতে বদলাও",\r
+DlgSpellBtnIgnore              : "ইগনোর কর",\r
+DlgSpellBtnIgnoreAll   : "সব ইগনোর কর",\r
+DlgSpellBtnReplace             : "বদলে দাও",\r
+DlgSpellBtnReplaceAll  : "সব বদলে দাও",\r
+DlgSpellBtnUndo                        : "আন্ডু",\r
+DlgSpellNoSuggestions  : "- কোন সাজেশন নেই -",\r
+DlgSpellProgress               : "বানান পরীক্ষা চলছে...",\r
+DlgSpellNoMispell              : "বানান পরীক্ষা শেষ: কোন ভুল বানান পাওয়া যায়নি",\r
+DlgSpellNoChanges              : "বানান পরীক্ষা শেষ: কোন শব্দ পরিবর্তন করা হয়নি",\r
+DlgSpellOneChange              : "বানান পরীক্ষা শেষ: একটি মাত্র শব্দ পরিবর্তন করা হয়েছে",\r
+DlgSpellManyChanges            : "বানান পরীক্ষা শেষ: %1 গুলো শব্দ বদলে গ্যাছে",\r
+\r
+IeSpellDownload                        : "বানান পরীক্ষক ইনস্টল করা নেই। আপনি কি এখনই এটা ডাউনলোড করতে চান?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "টেক্সট (ভ্যালু)",\r
+DlgButtonType          : "প্রকার",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "নাম",\r
+DlgCheckboxValue       : "ভ্যালু",\r
+DlgCheckboxSelected    : "সিলেক্টেড",\r
+\r
+// Form Dialog\r
+DlgFormName            : "নাম",\r
+DlgFormAction  : "একশ্যন",\r
+DlgFormMethod  : "পদ্ধতি",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "নাম",\r
+DlgSelectValue         : "ভ্যালু",\r
+DlgSelectSize          : "সাইজ",\r
+DlgSelectLines         : "লাইন সমূহ",\r
+DlgSelectChkMulti      : "একাধিক সিলেকশন এলাউ কর",\r
+DlgSelectOpAvail       : "অন্যান্য বিকল্প",\r
+DlgSelectOpText                : "টেক্সট",\r
+DlgSelectOpValue       : "ভ্যালু",\r
+DlgSelectBtnAdd                : "যুক্ত",\r
+DlgSelectBtnModify     : "বদলে দাও",\r
+DlgSelectBtnUp         : "উপর",\r
+DlgSelectBtnDown       : "নীচে",\r
+DlgSelectBtnSetValue : "বাছাই করা ভ্যালু হিসেবে সেট কর",\r
+DlgSelectBtnDelete     : "ডিলীট",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "নাম",\r
+DlgTextareaCols        : "কলাম",\r
+DlgTextareaRows        : "রো",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "নাম",\r
+DlgTextValue           : "ভ্যালু",\r
+DlgTextCharWidth       : "ক্যারেক্টার প্রশস্ততা",\r
+DlgTextMaxChars                : "সর্বাধিক ক্যারেক্টার",\r
+DlgTextType                    : "টাইপ",\r
+DlgTextTypeText                : "টেক্সট",\r
+DlgTextTypePass                : "পাসওয়ার্ড",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "নাম",\r
+DlgHiddenValue : "ভ্যালু",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "বুলেটেড সূচী প্রোপার্টি",\r
+NumberedListProp       : "সাংখ্যিক সূচী প্রোপার্টি",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "প্রকার",\r
+DlgLstTypeCircle       : "গোল",\r
+DlgLstTypeDisc         : "ডিস্ক",\r
+DlgLstTypeSquare       : "চৌকোণা",\r
+DlgLstTypeNumbers      : "সংখ্যা (1, 2, 3)",\r
+DlgLstTypeLCase                : "ছোট অক্ষর (a, b, c)",\r
+DlgLstTypeUCase                : "বড় অক্ষর (A, B, C)",\r
+DlgLstTypeSRoman       : "ছোট রোমান সংখ্যা (i, ii, iii)",\r
+DlgLstTypeLRoman       : "বড় রোমান সংখ্যা (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "সাধারন",\r
+DlgDocBackTab          : "ব্যাকগ্রাউন্ড",\r
+DlgDocColorsTab                : "রং এবং মার্জিন",\r
+DlgDocMetaTab          : "মেটাডেটা",\r
+\r
+DlgDocPageTitle                : "পেজ শীর্ষক",\r
+DlgDocLangDir          : "ভাষা লিখার দিক",\r
+DlgDocLangDirLTR       : "বাম থেকে ডানে (LTR)",\r
+DlgDocLangDirRTL       : "ডান থেকে বামে (RTL)",\r
+DlgDocLangCode         : "ভাষা কোড",\r
+DlgDocCharSet          : "ক্যারেক্টার সেট এনকোডিং",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "অন্য ক্যারেক্টার সেট এনকোডিং",\r
+\r
+DlgDocDocType          : "ডক্যুমেন্ট টাইপ হেডিং",\r
+DlgDocDocTypeOther     : "অন্য ডক্যুমেন্ট টাইপ হেডিং",\r
+DlgDocIncXHTML         : "XHTML ডেক্লারেশন যুক্ত কর",\r
+DlgDocBgColor          : "ব্যাকগ্রাউন্ড রং",\r
+DlgDocBgImage          : "ব্যাকগ্রাউন্ড ছবির URL",\r
+DlgDocBgNoScroll       : "স্ক্রলহীন ব্যাকগ্রাউন্ড",\r
+DlgDocCText                    : "টেক্সট",\r
+DlgDocCLink                    : "লিংক",\r
+DlgDocCVisited         : "ভিজিট করা লিংক",\r
+DlgDocCActive          : "সক্রিয় লিংক",\r
+DlgDocMargins          : "পেজ মার্জিন",\r
+DlgDocMaTop                    : "উপর",\r
+DlgDocMaLeft           : "বামে",\r
+DlgDocMaRight          : "ডানে",\r
+DlgDocMaBottom         : "নীচে",\r
+DlgDocMeIndex          : "ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",\r
+DlgDocMeDescr          : "ডক্যূমেন্ট বর্ণনা",\r
+DlgDocMeAuthor         : "লেখক",\r
+DlgDocMeCopy           : "কপীরাইট",\r
+DlgDocPreview          : "প্রীভিউ",\r
+\r
+// Templates Dialog\r
+Templates                      : "টেমপ্লেট",\r
+DlgTemplatesTitle      : "কনটেন্ট টেমপ্লেট",\r
+DlgTemplatesSelMsg     : "অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন<br>(আসল কনটেন্ট হারিয়ে যাবে):",\r
+DlgTemplatesLoading    : "টেমপ্লেট লিস্ট হারিয়ে যাবে। অনুগ্রহ করে অপেক্ষা করুন...",\r
+DlgTemplatesNoTpl      : "(কোন টেমপ্লেট ডিফাইন করা নেই)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "কে বানিয়েছে",\r
+DlgAboutBrowserInfoTab : "ব্রাউজারের ব্যাপারে তথ্য",\r
+DlgAboutLicenseTab     : "লাইসেন্স",\r
+DlgAboutVersion                : "ভার্সন",\r
+DlgAboutInfo           : "আরও তথ্যের জন্য যান"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/bs.js b/httemplate/elements/fckeditor/editor/lang/bs.js
new file mode 100644 (file)
index 0000000..fbaa451
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Bosnian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skupi trake sa alatima",\r
+ToolbarExpand          : "Otvori trake sa alatima",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Snimi",\r
+NewPage                                : "Novi dokument",\r
+Preview                                : "Prikaži",\r
+Cut                                    : "Izreži",\r
+Copy                           : "Kopiraj",\r
+Paste                          : "Zalijepi",\r
+PasteText                      : "Zalijepi kao obièan tekst",\r
+PasteWord                      : "Zalijepi iz Word-a",\r
+Print                          : "Štampaj",\r
+SelectAll                      : "Selektuj sve",\r
+RemoveFormat           : "Poništi format",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Ubaci/Izmjeni link",\r
+RemoveLink                     : "Izbriši link",\r
+Anchor                         : "Insert/Edit Anchor", //MISSING\r
+InsertImageLbl         : "Slika",\r
+InsertImage                    : "Ubaci/Izmjeni sliku",\r
+InsertFlashLbl         : "Flash",      //MISSING\r
+InsertFlash                    : "Insert/Edit Flash",  //MISSING\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Ubaci/Izmjeni tabelu",\r
+InsertLineLbl          : "Linija",\r
+InsertLine                     : "Ubaci horizontalnu liniju",\r
+InsertSpecialCharLbl: "Specijalni karakter",\r
+InsertSpecialChar      : "Ubaci specijalni karater",\r
+InsertSmileyLbl                : "Smješko",\r
+InsertSmiley           : "Ubaci smješka",\r
+About                          : "O FCKeditor-u",\r
+Bold                           : "Boldiraj",\r
+Italic                         : "Ukosi",\r
+Underline                      : "Podvuci",\r
+StrikeThrough          : "Precrtaj",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Lijevo poravnanje",\r
+CenterJustify          : "Centralno poravnanje",\r
+RightJustify           : "Desno poravnanje",\r
+BlockJustify           : "Puno poravnanje",\r
+DecreaseIndent         : "Smanji uvod",\r
+IncreaseIndent         : "Poveæaj uvod",\r
+Undo                           : "Vrati",\r
+Redo                           : "Ponovi",\r
+NumberedListLbl                : "Numerisana lista",\r
+NumberedList           : "Ubaci/Izmjeni numerisanu listu",\r
+BulletedListLbl                : "Lista",\r
+BulletedList           : "Ubaci/Izmjeni listu",\r
+ShowTableBorders       : "Pokaži okvire tabela",\r
+ShowDetails                    : "Pokaži detalje",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Velièina",\r
+TextColor                      : "Boja teksta",\r
+BGColor                                : "Boja pozadine",\r
+Source                         : "HTML kôd",\r
+Find                           : "Naði",\r
+Replace                                : "Zamjeni",\r
+SpellCheck                     : "Check Spelling",     //MISSING\r
+UniversalKeyboard      : "Universal Keyboard", //MISSING\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Form",       //MISSING\r
+Checkbox               : "Checkbox",   //MISSING\r
+RadioButton            : "Radio Button",       //MISSING\r
+TextField              : "Text Field", //MISSING\r
+Textarea               : "Textarea",   //MISSING\r
+HiddenField            : "Hidden Field",       //MISSING\r
+Button                 : "Button",     //MISSING\r
+SelectionField : "Selection Field",    //MISSING\r
+ImageButton            : "Image Button",       //MISSING\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Izmjeni link",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Ubaci red",\r
+DeleteRows                     : "Briši redove",\r
+InsertColumn           : "Ubaci kolonu",\r
+DeleteColumns          : "Briši kolone",\r
+InsertCell                     : "Ubaci æeliju",\r
+DeleteCells                    : "Briši æelije",\r
+MergeCells                     : "Spoji æelije",\r
+SplitCell                      : "Razdvoji æeliju",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Svojstva æelije",\r
+TableProperties                : "Svojstva tabele",\r
+ImageProperties                : "Svojstva slike",\r
+FlashProperties                : "Flash Properties",   //MISSING\r
+\r
+AnchorProp                     : "Anchor Properties",  //MISSING\r
+ButtonProp                     : "Button Properties",  //MISSING\r
+CheckboxProp           : "Checkbox Properties",        //MISSING\r
+HiddenFieldProp                : "Hidden Field Properties",    //MISSING\r
+RadioButtonProp                : "Radio Button Properties",    //MISSING\r
+ImageButtonProp                : "Image Button Properties",    //MISSING\r
+TextFieldProp          : "Text Field Properties",      //MISSING\r
+SelectionFieldProp     : "Selection Field Properties", //MISSING\r
+TextareaProp           : "Textarea Properties",        //MISSING\r
+FormProp                       : "Form Properties",    //MISSING\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Procesiram XHTML. Molim saèekajte...",\r
+Done                           : "Gotovo",\r
+PasteWordConfirm       : "Tekst koji želite zalijepiti èini se da je kopiran iz Worda. Da li želite da se prvo oèisti?",\r
+NotCompatiblePaste     : "Ova komanda je podržana u Internet Explorer-u verzijama 5.5 ili novijim. Da li želite da izvršite lijepljenje teksta bez èišæenja?",\r
+UnknownToolbarItem     : "Nepoznata stavka sa trake sa alatima \"%1\"",\r
+UnknownCommand         : "Nepoznata komanda \"%1\"",\r
+NotImplemented         : "Komanda nije implementirana",\r
+UnknownToolbarSet      : "Traka sa alatima \"%1\" ne postoji",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Odustani",\r
+DlgBtnClose                    : "Zatvori",\r
+DlgBtnBrowseServer     : "Browse Server",      //MISSING\r
+DlgAdvancedTag         : "Naprednije",\r
+DlgOpOther                     : "<Other>",    //MISSING\r
+DlgInfoTab                     : "Info",       //MISSING\r
+DlgAlertUrl                    : "Please insert the URL",      //MISSING\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nije podešeno>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Smjer pisanja",\r
+DlgGenLangDirLtr       : "S lijeva na desno (LTR)",\r
+DlgGenLangDirRtl       : "S desna na lijevo (RTL)",\r
+DlgGenLangCode         : "Jezièni kôd",\r
+DlgGenAccessKey                : "Pristupna tipka",\r
+DlgGenName                     : "Naziv",\r
+DlgGenTabIndex         : "Tab indeks",\r
+DlgGenLongDescr                : "Dugaèki opis URL-a",\r
+DlgGenClass                    : "Klase CSS stilova",\r
+DlgGenTitle                    : "Advisory title",\r
+DlgGenContType         : "Advisory vrsta sadržaja",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Svojstva slike",\r
+DlgImgInfoTab          : "Info slike",\r
+DlgImgBtnUpload                : "Šalji na server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Šalji",\r
+DlgImgAlt                      : "Tekst na slici",\r
+DlgImgWidth                    : "Širina",\r
+DlgImgHeight           : "Visina",\r
+DlgImgLockRatio                : "Zakljuèaj odnos",\r
+DlgBtnResetSize                : "Resetuj dimenzije",\r
+DlgImgBorder           : "Okvir",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Poravnanje",\r
+DlgImgAlignLeft                : "Lijevo",\r
+DlgImgAlignAbsBottom: "Abs dole",\r
+DlgImgAlignAbsMiddle: "Abs sredina",\r
+DlgImgAlignBaseline    : "Bazno",\r
+DlgImgAlignBottom      : "Dno",\r
+DlgImgAlignMiddle      : "Sredina",\r
+DlgImgAlignRight       : "Desno",\r
+DlgImgAlignTextTop     : "Vrh teksta",\r
+DlgImgAlignTop         : "Vrh",\r
+DlgImgPreview          : "Prikaz",\r
+DlgImgAlertUrl         : "Molimo ukucajte URL od slike.",\r
+DlgImgLinkTab          : "Link",       //MISSING\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",   //MISSING\r
+DlgFlashChkPlay                : "Auto Play",  //MISSING\r
+DlgFlashChkLoop                : "Loop",       //MISSING\r
+DlgFlashChkMenu                : "Enable Flash Menu",  //MISSING\r
+DlgFlashScale          : "Scale",      //MISSING\r
+DlgFlashScaleAll       : "Show all",   //MISSING\r
+DlgFlashScaleNoBorder  : "No Border",  //MISSING\r
+DlgFlashScaleFit       : "Exact Fit",  //MISSING\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link info",\r
+DlgLnkTargetTab                : "Prozor",\r
+\r
+DlgLnkType                     : "Tip linka",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Sidro na ovoj stranici",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<drugi>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Izaberi sidro",\r
+DlgLnkAnchorByName     : "Po nazivu sidra",\r
+DlgLnkAnchorById       : "Po Id-u elementa",\r
+DlgLnkNoAnchors                : "<Nema dostupnih sidra na stranici>",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Adresa",\r
+DlgLnkEMailSubject     : "Subjekt poruke",\r
+DlgLnkEMailBody                : "Poruka",\r
+DlgLnkUpload           : "Šalji",\r
+DlgLnkBtnUpload                : "Šalji na server",\r
+\r
+DlgLnkTarget           : "Prozor",\r
+DlgLnkTargetFrame      : "<frejm>",\r
+DlgLnkTargetPopup      : "<popup prozor>",\r
+DlgLnkTargetBlank      : "Novi prozor (_blank)",\r
+DlgLnkTargetParent     : "Glavni prozor (_parent)",\r
+DlgLnkTargetSelf       : "Isti prozor (_self)",\r
+DlgLnkTargetTop                : "Najgornji prozor (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",  //MISSING\r
+DlgLnkPopWinName       : "Naziv popup prozora",\r
+DlgLnkPopWinFeat       : "Moguænosti popup prozora",\r
+DlgLnkPopResize                : "Promjenljive velièine",\r
+DlgLnkPopLocation      : "Traka za lokaciju",\r
+DlgLnkPopMenu          : "Izborna traka",\r
+DlgLnkPopScroll                : "Scroll traka",\r
+DlgLnkPopStatus                : "Statusna traka",\r
+DlgLnkPopToolbar       : "Traka sa alatima",\r
+DlgLnkPopFullScrn      : "Cijeli ekran (IE)",\r
+DlgLnkPopDependent     : "Ovisno (Netscape)",\r
+DlgLnkPopWidth         : "Širina",\r
+DlgLnkPopHeight                : "Visina",\r
+DlgLnkPopLeft          : "Lijeva pozicija",\r
+DlgLnkPopTop           : "Gornja pozicija",\r
+\r
+DlnLnkMsgNoUrl         : "Molimo ukucajte URL link",\r
+DlnLnkMsgNoEMail       : "Molimo ukucajte e-mail adresu",\r
+DlnLnkMsgNoAnchor      : "Molimo izaberite sidro",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Izaberi boju",\r
+DlgColorBtnClear       : "Oèisti",\r
+DlgColorHighlight      : "Igled",\r
+DlgColorSelected       : "Selektovana",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Ubaci smješka",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Izaberi specijalni karakter",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Svojstva tabele",\r
+DlgTableRows           : "Redova",\r
+DlgTableColumns                : "Kolona",\r
+DlgTableBorder         : "Okvir",\r
+DlgTableAlign          : "Poravnanje",\r
+DlgTableAlignNotSet    : "<Nije podešeno>",\r
+DlgTableAlignLeft      : "Lijevo",\r
+DlgTableAlignCenter    : "Centar",\r
+DlgTableAlignRight     : "Desno",\r
+DlgTableWidth          : "Širina",\r
+DlgTableWidthPx                : "piksela",\r
+DlgTableWidthPc                : "posto",\r
+DlgTableHeight         : "Visina",\r
+DlgTableCellSpace      : "Razmak æelija",\r
+DlgTableCellPad                : "Uvod æelija",\r
+DlgTableCaption                : "Naslov",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Svojstva æelije",\r
+DlgCellWidth           : "Širina",\r
+DlgCellWidthPx         : "piksela",\r
+DlgCellWidthPc         : "posto",\r
+DlgCellHeight          : "Visina",\r
+DlgCellWordWrap                : "Vrapuj tekst",\r
+DlgCellWordWrapNotSet  : "<Nije podešeno>",\r
+DlgCellWordWrapYes     : "Da",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Horizontalno poravnanje",\r
+DlgCellHorAlignNotSet  : "<Nije podešeno>",\r
+DlgCellHorAlignLeft    : "Lijevo",\r
+DlgCellHorAlignCenter  : "Centar",\r
+DlgCellHorAlignRight: "Desno",\r
+DlgCellVerAlign                : "Vertikalno poravnanje",\r
+DlgCellVerAlignNotSet  : "<Nije podešeno>",\r
+DlgCellVerAlignTop     : "Gore",\r
+DlgCellVerAlignMiddle  : "Sredina",\r
+DlgCellVerAlignBottom  : "Dno",\r
+DlgCellVerAlignBaseline        : "Bazno",\r
+DlgCellRowSpan         : "Spajanje æelija",\r
+DlgCellCollSpan                : "Spajanje kolona",\r
+DlgCellBackColor       : "Boja pozadine",\r
+DlgCellBorderColor     : "Boja okvira",\r
+DlgCellBtnSelect       : "Selektuj...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Naði",\r
+DlgFindFindBtn         : "Naði",\r
+DlgFindNotFoundMsg     : "Traženi tekst nije pronaðen.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Zamjeni",\r
+DlgReplaceFindLbl              : "Naði šta:",\r
+DlgReplaceReplaceLbl   : "Zamjeni sa:",\r
+DlgReplaceCaseChk              : "Uporeðuj velika/mala slova",\r
+DlgReplaceReplaceBtn   : "Zamjeni",\r
+DlgReplaceReplAllBtn   : "Zamjeni sve",\r
+DlgReplaceWordChk              : "Uporeðuj samo cijelu rijeè",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).",\r
+PasteErrorCopy : "Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).",\r
+\r
+PasteAsText            : "Zalijepi kao obièan tekst",\r
+PasteFromWord  : "Zalijepi iz Word-a",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",    //MISSING\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",       //MISSING\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",  //MISSING\r
+DlgPasteCleanBox               : "Clean Up Box",       //MISSING\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatska",\r
+ColorMoreColors        : "Više boja...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",        //MISSING\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",  //MISSING\r
+DlgAnchorName          : "Anchor Name",        //MISSING\r
+DlgAnchorErrorName     : "Please type the anchor name",        //MISSING\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",  //MISSING\r
+DlgSpellChangeTo               : "Change to",  //MISSING\r
+DlgSpellBtnIgnore              : "Ignore",     //MISSING\r
+DlgSpellBtnIgnoreAll   : "Ignore All", //MISSING\r
+DlgSpellBtnReplace             : "Replace",    //MISSING\r
+DlgSpellBtnReplaceAll  : "Replace All",        //MISSING\r
+DlgSpellBtnUndo                        : "Undo",       //MISSING\r
+DlgSpellNoSuggestions  : "- No suggestions -", //MISSING\r
+DlgSpellProgress               : "Spell check in progress...", //MISSING\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",        //MISSING\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",     //MISSING\r
+DlgSpellOneChange              : "Spell check complete: One word changed",     //MISSING\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",     //MISSING\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",       //MISSING\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",       //MISSING\r
+DlgButtonType          : "Type",       //MISSING\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",       //MISSING\r
+DlgCheckboxValue       : "Value",      //MISSING\r
+DlgCheckboxSelected    : "Selected",   //MISSING\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",       //MISSING\r
+DlgFormAction  : "Action",     //MISSING\r
+DlgFormMethod  : "Method",     //MISSING\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",       //MISSING\r
+DlgSelectValue         : "Value",      //MISSING\r
+DlgSelectSize          : "Size",       //MISSING\r
+DlgSelectLines         : "lines",      //MISSING\r
+DlgSelectChkMulti      : "Allow multiple selections",  //MISSING\r
+DlgSelectOpAvail       : "Available Options",  //MISSING\r
+DlgSelectOpText                : "Text",       //MISSING\r
+DlgSelectOpValue       : "Value",      //MISSING\r
+DlgSelectBtnAdd                : "Add",        //MISSING\r
+DlgSelectBtnModify     : "Modify",     //MISSING\r
+DlgSelectBtnUp         : "Up", //MISSING\r
+DlgSelectBtnDown       : "Down",       //MISSING\r
+DlgSelectBtnSetValue : "Set as selected value",        //MISSING\r
+DlgSelectBtnDelete     : "Delete",     //MISSING\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",       //MISSING\r
+DlgTextareaCols        : "Columns",    //MISSING\r
+DlgTextareaRows        : "Rows",       //MISSING\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",       //MISSING\r
+DlgTextValue           : "Value",      //MISSING\r
+DlgTextCharWidth       : "Character Width",    //MISSING\r
+DlgTextMaxChars                : "Maximum Characters", //MISSING\r
+DlgTextType                    : "Type",       //MISSING\r
+DlgTextTypeText                : "Text",       //MISSING\r
+DlgTextTypePass                : "Password",   //MISSING\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",       //MISSING\r
+DlgHiddenValue : "Value",      //MISSING\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",   //MISSING\r
+NumberedListProp       : "Numbered List Properties",   //MISSING\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Type",       //MISSING\r
+DlgLstTypeCircle       : "Circle",     //MISSING\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Square",     //MISSING\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",  //MISSING\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",        //MISSING\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",        //MISSING\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",  //MISSING\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",  //MISSING\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",    //MISSING\r
+DlgDocBackTab          : "Background", //MISSING\r
+DlgDocColorsTab                : "Colors and Margins", //MISSING\r
+DlgDocMetaTab          : "Meta Data",  //MISSING\r
+\r
+DlgDocPageTitle                : "Page Title", //MISSING\r
+DlgDocLangDir          : "Language Direction", //MISSING\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",        //MISSING\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",        //MISSING\r
+DlgDocLangCode         : "Language Code",      //MISSING\r
+DlgDocCharSet          : "Character Set Encoding",     //MISSING\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Other Character Set Encoding",       //MISSING\r
+\r
+DlgDocDocType          : "Document Type Heading",      //MISSING\r
+DlgDocDocTypeOther     : "Other Document Type Heading",        //MISSING\r
+DlgDocIncXHTML         : "Include XHTML Declarations", //MISSING\r
+DlgDocBgColor          : "Background Color",   //MISSING\r
+DlgDocBgImage          : "Background Image URL",       //MISSING\r
+DlgDocBgNoScroll       : "Nonscrolling Background",    //MISSING\r
+DlgDocCText                    : "Text",       //MISSING\r
+DlgDocCLink                    : "Link",       //MISSING\r
+DlgDocCVisited         : "Visited Link",       //MISSING\r
+DlgDocCActive          : "Active Link",        //MISSING\r
+DlgDocMargins          : "Page Margins",       //MISSING\r
+DlgDocMaTop                    : "Top",        //MISSING\r
+DlgDocMaLeft           : "Left",       //MISSING\r
+DlgDocMaRight          : "Right",      //MISSING\r
+DlgDocMaBottom         : "Bottom",     //MISSING\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",       //MISSING\r
+DlgDocMeDescr          : "Document Description",       //MISSING\r
+DlgDocMeAuthor         : "Author",     //MISSING\r
+DlgDocMeCopy           : "Copyright",  //MISSING\r
+DlgDocPreview          : "Preview",    //MISSING\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",  //MISSING\r
+DlgTemplatesTitle      : "Content Templates",  //MISSING\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br />(the actual contents will be lost):",  //MISSING\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",     //MISSING\r
+DlgTemplatesNoTpl      : "(No templates defined)",     //MISSING\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",      //MISSING\r
+DlgAboutBrowserInfoTab : "Browser Info",       //MISSING\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "verzija",\r
+DlgAboutInfo           : "Za više informacija posjetite"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ca.js b/httemplate/elements/fckeditor/editor/lang/ca.js
new file mode 100644 (file)
index 0000000..c3859cd
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Catalan language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Col·lapsa la barra",\r
+ToolbarExpand          : "Amplia la barra",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Desa",\r
+NewPage                                : "Nova Pàgina",\r
+Preview                                : "Vista Prèvia",\r
+Cut                                    : "Retalla",\r
+Copy                           : "Copia",\r
+Paste                          : "Enganxa",\r
+PasteText                      : "Enganxa com a text no formatat",\r
+PasteWord                      : "Enganxa des del Word",\r
+Print                          : "Imprimeix",\r
+SelectAll                      : "Selecciona-ho tot",\r
+RemoveFormat           : "Elimina Format",\r
+InsertLinkLbl          : "Enllaç",\r
+InsertLink                     : "Insereix/Edita enllaç",\r
+RemoveLink                     : "Elimina enllaç",\r
+Anchor                         : "Insereix/Edita àncora",\r
+InsertImageLbl         : "Imatge",\r
+InsertImage                    : "Insereix/Edita imatge",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insereix/Edita Flash",\r
+InsertTableLbl         : "Taula",\r
+InsertTable                    : "Insereix/Edita taula",\r
+InsertLineLbl          : "Línia",\r
+InsertLine                     : "Insereix línia horitzontal",\r
+InsertSpecialCharLbl: "Caràcter Especial",\r
+InsertSpecialChar      : "Insereix caràcter especial",\r
+InsertSmileyLbl                : "Icona",\r
+InsertSmiley           : "Insereix icona",\r
+About                          : "Quant a FCKeditor",\r
+Bold                           : "Negreta",\r
+Italic                         : "Cursiva",\r
+Underline                      : "Subratllat",\r
+StrikeThrough          : "Barrat",\r
+Subscript                      : "Subíndex",\r
+Superscript                    : "Superíndex",\r
+LeftJustify                    : "Aliniament esquerra",\r
+CenterJustify          : "Aliniament centrat",\r
+RightJustify           : "Aliniament dreta",\r
+BlockJustify           : "Justifica",\r
+DecreaseIndent         : "Sagna el text",\r
+IncreaseIndent         : "Treu el sagnat del text",\r
+Undo                           : "Desfés",\r
+Redo                           : "Refés",\r
+NumberedListLbl                : "Llista numerada",\r
+NumberedList           : "Aplica o elimina la llista numerada",\r
+BulletedListLbl                : "Llista de pics",\r
+BulletedList           : "Aplica o elimina la llista de pics",\r
+ShowTableBorders       : "Mostra les vores de les taules",\r
+ShowDetails                    : "Mostra detalls",\r
+Style                          : "Estil",\r
+FontFormat                     : "Format",\r
+Font                           : "Tipus de lletra",\r
+FontSize                       : "Mida",\r
+TextColor                      : "Color de Text",\r
+BGColor                                : "Color de Fons",\r
+Source                         : "Codi font",\r
+Find                           : "Cerca",\r
+Replace                                : "Reemplaça",\r
+SpellCheck                     : "Revisa l'ortografia",\r
+UniversalKeyboard      : "Teclat universal",\r
+PageBreakLbl           : "Salt de pàgina",\r
+PageBreak                      : "Insereix salt de pàgina",\r
+\r
+Form                   : "Formulari",\r
+Checkbox               : "Casella de verificació",\r
+RadioButton            : "Botó d'opció",\r
+TextField              : "Camp de text",\r
+Textarea               : "Àrea de text",\r
+HiddenField            : "Camp ocult",\r
+Button                 : "Botó",\r
+SelectionField : "Camp de selecció",\r
+ImageButton            : "Botó d'imatge",\r
+\r
+FitWindow              : "Maximiza la mida de l'editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Edita l'enllaç",\r
+CellCM                         : "Cel·la",\r
+RowCM                          : "Fila",\r
+ColumnCM                       : "Columna",\r
+InsertRow                      : "Insereix una fila",\r
+DeleteRows                     : "Suprimeix una fila",\r
+InsertColumn           : "Afegeix una columna",\r
+DeleteColumns          : "Suprimeix una columna",\r
+InsertCell                     : "Insereix una cel·la",\r
+DeleteCells                    : "Suprimeix les cel·les",\r
+MergeCells                     : "Fusiona les cel·les",\r
+SplitCell                      : "Separa les cel·les",\r
+TableDelete                    : "Suprimeix la taula",\r
+CellProperties         : "Propietats de la cel·la",\r
+TableProperties                : "Propietats de la taula",\r
+ImageProperties                : "Propietats de la imatge",\r
+FlashProperties                : "Propietats del Flash",\r
+\r
+AnchorProp                     : "Propietats de l'àncora",\r
+ButtonProp                     : "Propietats del botó",\r
+CheckboxProp           : "Propietats de la casella de verificació",\r
+HiddenFieldProp                : "Propietats del camp ocult",\r
+RadioButtonProp                : "Propietats del botó d'opció",\r
+ImageButtonProp                : "Propietats del botó d'imatge",\r
+TextFieldProp          : "Propietats del camp de text",\r
+SelectionFieldProp     : "Propietats del camp de selecció",\r
+TextareaProp           : "Propietats de l'àrea de text",\r
+FormProp                       : "Propietats del formulari",\r
+\r
+FontFormats                    : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processant XHTML. Si us plau esperi...",\r
+Done                           : "Fet",\r
+PasteWordConfirm       : "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?",\r
+NotCompatiblePaste     : "Aquesta funció és disponible per a Internet Explorer versió 5.5 o superior. Voleu enganxar sense netejar?",\r
+UnknownToolbarItem     : "Element de la barra d'eines desconegut \"%1\"",\r
+UnknownCommand         : "Nom de comanda desconegut \"%1\"",\r
+NotImplemented         : "Mètode no implementat",\r
+UnknownToolbarSet      : "Conjunt de barra d'eines \"%1\" inexistent",\r
+NoActiveX                      : "Les preferències del navegador poden limitar algunes funcions d'aquest editor. Cal habilitar l'opció \"Executa controls ActiveX i plug-ins\". Poden sorgir errors i poden faltar algunes funcions.",\r
+BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.",\r
+DialogBlocked          : "No ha estat possible obrir una finestra de diàleg. Assegura't de que els bloquejos de finestres emergents estan desactivats.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "D'acord",\r
+DlgBtnCancel           : "Cancel·la",\r
+DlgBtnClose                    : "Tanca",\r
+DlgBtnBrowseServer     : "Veure servidor",\r
+DlgAdvancedTag         : "Avançat",\r
+DlgOpOther                     : "Altres",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Si us plau, afegiu la URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<no definit>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Direcció de l'idioma",\r
+DlgGenLangDirLtr       : "D'esquerra a dreta (LTR)",\r
+DlgGenLangDirRtl       : "De dreta a esquerra (RTL)",\r
+DlgGenLangCode         : "Codi d'idioma",\r
+DlgGenAccessKey                : "Clau d'accés",\r
+DlgGenName                     : "Nom",\r
+DlgGenTabIndex         : "Index de Tab",\r
+DlgGenLongDescr                : "Descripció llarga de la URL",\r
+DlgGenClass                    : "Classes del full d'estil",\r
+DlgGenTitle                    : "Títol consultiu",\r
+DlgGenContType         : "Tipus de contingut consultiu",\r
+DlgGenLinkCharset      : "Conjunt de caràcters font enllaçat",\r
+DlgGenStyle                    : "Estil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Propietats de la imatge",\r
+DlgImgInfoTab          : "Informació de la imatge",\r
+DlgImgBtnUpload                : "Envia-la al servidor",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Puja",\r
+DlgImgAlt                      : "Text alternatiu",\r
+DlgImgWidth                    : "Amplada",\r
+DlgImgHeight           : "Alçada",\r
+DlgImgLockRatio                : "Bloqueja les proporcions",\r
+DlgBtnResetSize                : "Restaura la mida",\r
+DlgImgBorder           : "Vora",\r
+DlgImgHSpace           : "Espaiat horit.",\r
+DlgImgVSpace           : "Espaiat vert.",\r
+DlgImgAlign                    : "Alineació",\r
+DlgImgAlignLeft                : "Ajusta a l'esquerra",\r
+DlgImgAlignAbsBottom: "Abs Bottom",\r
+DlgImgAlignAbsMiddle: "Abs Middle",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Bottom",\r
+DlgImgAlignMiddle      : "Middle",\r
+DlgImgAlignRight       : "Ajusta a la dreta",\r
+DlgImgAlignTextTop     : "Text Top",\r
+DlgImgAlignTop         : "Top",\r
+DlgImgPreview          : "Vista prèvia",\r
+DlgImgAlertUrl         : "Si us plau, escriviu la URL de la imatge",\r
+DlgImgLinkTab          : "Enllaç",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propietats del Flash",\r
+DlgFlashChkPlay                : "Reprodució automàtica",\r
+DlgFlashChkLoop                : "Bucle",\r
+DlgFlashChkMenu                : "Habilita menú Flash",\r
+DlgFlashScale          : "Escala",\r
+DlgFlashScaleAll       : "Mostra-ho tot",\r
+DlgFlashScaleNoBorder  : "Sense vores",\r
+DlgFlashScaleFit       : "Mida exacta",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Enllaç",\r
+DlgLnkInfoTab          : "Informació de l'enllaç",\r
+DlgLnkTargetTab                : "Destí",\r
+\r
+DlgLnkType                     : "Tipus d'enllaç",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Àncora en aquesta pàgina",\r
+DlgLnkTypeEMail                : "Correu electrònic",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<altra>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Selecciona una àncora",\r
+DlgLnkAnchorByName     : "Per nom d'àncora",\r
+DlgLnkAnchorById       : "Per Id d'element",\r
+DlgLnkNoAnchors                : "(No hi ha àncores disponibles en aquest document)",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Adreça de correu electrònic",\r
+DlgLnkEMailSubject     : "Assumpte del missatge",\r
+DlgLnkEMailBody                : "Cos del missatge",\r
+DlgLnkUpload           : "Puja",\r
+DlgLnkBtnUpload                : "Envia al servidor",\r
+\r
+DlgLnkTarget           : "Destí",\r
+DlgLnkTargetFrame      : "<marc>",\r
+DlgLnkTargetPopup      : "<finestra emergent>",\r
+DlgLnkTargetBlank      : "Nova finestra (_blank)",\r
+DlgLnkTargetParent     : "Finestra pare (_parent)",\r
+DlgLnkTargetSelf       : "Mateixa finestra (_self)",\r
+DlgLnkTargetTop                : "Finestra Major (_top)",\r
+DlgLnkTargetFrameName  : "Nom del marc de destí",\r
+DlgLnkPopWinName       : "Nom finestra popup",\r
+DlgLnkPopWinFeat       : "Característiques finestra popup",\r
+DlgLnkPopResize                : "Redimensionable",\r
+DlgLnkPopLocation      : "Barra d'adreça",\r
+DlgLnkPopMenu          : "Barra de menú",\r
+DlgLnkPopScroll                : "Barres d'scroll",\r
+DlgLnkPopStatus                : "Barra d'estat",\r
+DlgLnkPopToolbar       : "Barra d'eines",\r
+DlgLnkPopFullScrn      : "Pantalla completa (IE)",\r
+DlgLnkPopDependent     : "Depenent (Netscape)",\r
+DlgLnkPopWidth         : "Amplada",\r
+DlgLnkPopHeight                : "Alçada",\r
+DlgLnkPopLeft          : "Posició esquerra",\r
+DlgLnkPopTop           : "Posició dalt",\r
+\r
+DlnLnkMsgNoUrl         : "Si us plau, escrigui l'enllaç URL",\r
+DlnLnkMsgNoEMail       : "Si us plau, escrigui l'adreça correu electrònic",\r
+DlnLnkMsgNoAnchor      : "Si us plau, escrigui l'àncora",\r
+DlnLnkMsgInvPopName    : "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Selecciona el color",\r
+DlgColorBtnClear       : "Neteja",\r
+DlgColorHighlight      : "Realça",\r
+DlgColorSelected       : "Selecciona",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insereix una icona",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Selecciona el caràcter especial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Propietats de la taula",\r
+DlgTableRows           : "Files",\r
+DlgTableColumns                : "Columnes",\r
+DlgTableBorder         : "Mida vora",\r
+DlgTableAlign          : "Alineació",\r
+DlgTableAlignNotSet    : "<No Definit>",\r
+DlgTableAlignLeft      : "Esquerra",\r
+DlgTableAlignCenter    : "Centre",\r
+DlgTableAlignRight     : "Dreta",\r
+DlgTableWidth          : "Amplada",\r
+DlgTableWidthPx                : "píxels",\r
+DlgTableWidthPc                : "percentatge",\r
+DlgTableHeight         : "Alçada",\r
+DlgTableCellSpace      : "Espaiat de cel·les",\r
+DlgTableCellPad                : "Encoixinament de cel·les",\r
+DlgTableCaption                : "Títol",\r
+DlgTableSummary                : "Resum",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Propietats de la cel·la",\r
+DlgCellWidth           : "Amplada",\r
+DlgCellWidthPx         : "píxels",\r
+DlgCellWidthPc         : "percentatge",\r
+DlgCellHeight          : "Alçada",\r
+DlgCellWordWrap                : "Ajust de paraula",\r
+DlgCellWordWrapNotSet  : "<No Definit>",\r
+DlgCellWordWrapYes     : "Si",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Alineació horitzontal",\r
+DlgCellHorAlignNotSet  : "<No Definit>",\r
+DlgCellHorAlignLeft    : "Esquerra",\r
+DlgCellHorAlignCenter  : "Centre",\r
+DlgCellHorAlignRight: "Dreta",\r
+DlgCellVerAlign                : "Alineació vertical",\r
+DlgCellVerAlignNotSet  : "<No definit>",\r
+DlgCellVerAlignTop     : "Top",\r
+DlgCellVerAlignMiddle  : "Middle",\r
+DlgCellVerAlignBottom  : "Bottom",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rows Span",\r
+DlgCellCollSpan                : "Columns Span",\r
+DlgCellBackColor       : "Color de fons",\r
+DlgCellBorderColor     : "Color de la vora",\r
+DlgCellBtnSelect       : "Seleccioneu...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Cerca",\r
+DlgFindFindBtn         : "Cerca",\r
+DlgFindNotFoundMsg     : "El text especificat no s'ha trobat.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Reemplaça",\r
+DlgReplaceFindLbl              : "Cerca:",\r
+DlgReplaceReplaceLbl   : "Remplaça amb:",\r
+DlgReplaceCaseChk              : "Distingeix majúscules/minúscules",\r
+DlgReplaceReplaceBtn   : "Reemplaça",\r
+DlgReplaceReplAllBtn   : "Reemplaça-ho tot",\r
+DlgReplaceWordChk              : "Només paraules completes",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",\r
+PasteErrorCopy : "La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",\r
+\r
+PasteAsText            : "Enganxa com a text no formatat",\r
+PasteFromWord  : "Enganxa com a Word",\r
+\r
+DlgPasteMsg2   : "Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.",\r
+DlgPasteIgnoreFont             : "Ignora definicions de font",\r
+DlgPasteRemoveStyles   : "Elimina definicions d'estil",\r
+DlgPasteCleanBox               : "Neteja camp",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automàtic",\r
+ColorMoreColors        : "Més colors...",\r
+\r
+// Document Properties\r
+DocProps               : "Propietats del document",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Propietats de l'àncora",\r
+DlgAnchorName          : "Nom de l'àncora",\r
+DlgAnchorErrorName     : "Si us plau, escriviu el nom de l'ancora",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "No és al diccionari",\r
+DlgSpellChangeTo               : "Canvia a",\r
+DlgSpellBtnIgnore              : "Ignora",\r
+DlgSpellBtnIgnoreAll   : "Ignora-les totes",\r
+DlgSpellBtnReplace             : "Canvia",\r
+DlgSpellBtnReplaceAll  : "Canvia-les totes",\r
+DlgSpellBtnUndo                        : "Desfés",\r
+DlgSpellNoSuggestions  : "Cap sugerència",\r
+DlgSpellProgress               : "Comprovació ortogràfica en progrés",\r
+DlgSpellNoMispell              : "Comprovació ortogràfica completada",\r
+DlgSpellNoChanges              : "Comprovació ortogràfica: cap paraulada canviada",\r
+DlgSpellOneChange              : "Comprovació ortogràfica: una paraula canviada",\r
+DlgSpellManyChanges            : "Comprovació ortogràfica %1 paraules canviades",\r
+\r
+IeSpellDownload                        : "Comprovació ortogràfica no instal·lada. Voleu descarregar-ho ara?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Valor)",\r
+DlgButtonType          : "Tipus",\r
+DlgButtonTypeBtn       : "Botó",\r
+DlgButtonTypeSbm       : "Transmet formulari",\r
+DlgButtonTypeRst       : "Reinicia formulari",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nom",\r
+DlgCheckboxValue       : "Valor",\r
+DlgCheckboxSelected    : "Seleccionat",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nom",\r
+DlgFormAction  : "Acció",\r
+DlgFormMethod  : "Mètode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nom",\r
+DlgSelectValue         : "Valor",\r
+DlgSelectSize          : "Mida",\r
+DlgSelectLines         : "Línies",\r
+DlgSelectChkMulti      : "Permet múltiples seleccions",\r
+DlgSelectOpAvail       : "Opcions disponibles",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Valor",\r
+DlgSelectBtnAdd                : "Afegeix",\r
+DlgSelectBtnModify     : "Modifica",\r
+DlgSelectBtnUp         : "Amunt",\r
+DlgSelectBtnDown       : "Avall",\r
+DlgSelectBtnSetValue : "Selecciona per defecte",\r
+DlgSelectBtnDelete     : "Elimina",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nom",\r
+DlgTextareaCols        : "Columnes",\r
+DlgTextareaRows        : "Files",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nom",\r
+DlgTextValue           : "Valor",\r
+DlgTextCharWidth       : "Amplada de caràcter",\r
+DlgTextMaxChars                : "Màxim de caràcters",\r
+DlgTextType                    : "Tipus",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Contrasenya",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nom",\r
+DlgHiddenValue : "Valor",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Propietats de la llista de pics",\r
+NumberedListProp       : "Propietats de llista numerada",\r
+DlgLstStart                    : "Inici",\r
+DlgLstType                     : "Tipus",\r
+DlgLstTypeCircle       : "Cercle",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Quadrat",\r
+DlgLstTypeNumbers      : "Números (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lletres minúscules (a, b, c)",\r
+DlgLstTypeUCase                : "Lletres majúscules (A, B, C)",\r
+DlgLstTypeSRoman       : "Números romans minúscules (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Números romans majúscules (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Fons",\r
+DlgDocColorsTab                : "Colors i marges",\r
+DlgDocMetaTab          : "Dades Meta",\r
+\r
+DlgDocPageTitle                : "Títol de la pàgina",\r
+DlgDocLangDir          : "Direcció idioma",\r
+DlgDocLangDirLTR       : "Esquerra a dreta (LTR)",\r
+DlgDocLangDirRTL       : "Dreta a esquerra (RTL)",\r
+DlgDocLangCode         : "Codi d'idioma",\r
+DlgDocCharSet          : "Codificació de conjunt de caràcters",\r
+DlgDocCharSetCE                : "Centreeuropeu",\r
+DlgDocCharSetCT                : "Xinès tradicional (Big5)",\r
+DlgDocCharSetCR                : "Ciríl·lic",\r
+DlgDocCharSetGR                : "Grec",\r
+DlgDocCharSetJP                : "Japonès",\r
+DlgDocCharSetKR                : "Coreà",\r
+DlgDocCharSetTR                : "Turc",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Europeu occidental",\r
+DlgDocCharSetOther     : "Una altra codificació de caràcters",\r
+\r
+DlgDocDocType          : "Capçalera de tipus de document",\r
+DlgDocDocTypeOther     : "Un altra capçalera de tipus de document",\r
+DlgDocIncXHTML         : "Incloure declaracions XHTML",\r
+DlgDocBgColor          : "Color de fons",\r
+DlgDocBgImage          : "URL de la imatge de fons",\r
+DlgDocBgNoScroll       : "Fons fixe",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Enllaç",\r
+DlgDocCVisited         : "Enllaç visitat",\r
+DlgDocCActive          : "Enllaç actiu",\r
+DlgDocMargins          : "Marges de pàgina",\r
+DlgDocMaTop                    : "Cap",\r
+DlgDocMaLeft           : "Esquerra",\r
+DlgDocMaRight          : "Dreta",\r
+DlgDocMaBottom         : "Peu",\r
+DlgDocMeIndex          : "Mots clau per a indexació (separats per coma)",\r
+DlgDocMeDescr          : "Descripció del document",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Vista prèvia",\r
+\r
+// Templates Dialog\r
+Templates                      : "Plantilles",\r
+DlgTemplatesTitle      : "Contingut plantilles",\r
+DlgTemplatesSelMsg     : "Si us plau, seleccioneu la plantilla per obrir en l'editor<br>(el contingut actual no serà enregistrat):",\r
+DlgTemplatesLoading    : "Carregant la llista de plantilles. Si us plau, espereu...",\r
+DlgTemplatesNoTpl      : "(No hi ha plantilles definides)",\r
+DlgTemplatesReplace    : "Reemplaça el contingut actual",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Quant a",\r
+DlgAboutBrowserInfoTab : "Informació del navegador",\r
+DlgAboutLicenseTab     : "Llicència",\r
+DlgAboutVersion                : "versió",\r
+DlgAboutInfo           : "Per a més informació aneu a"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/cs.js b/httemplate/elements/fckeditor/editor/lang/cs.js
new file mode 100644 (file)
index 0000000..49b5f87
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Czech language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skrýt panel nástrojů",\r
+ToolbarExpand          : "Zobrazit panel nástrojů",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Uložit",\r
+NewPage                                : "Nová stránka",\r
+Preview                                : "Náhled",\r
+Cut                                    : "Vyjmout",\r
+Copy                           : "Kopírovat",\r
+Paste                          : "Vložit",\r
+PasteText                      : "Vložit jako čistý text",\r
+PasteWord                      : "Vložit z Wordu",\r
+Print                          : "Tisk",\r
+SelectAll                      : "Vybrat vše",\r
+RemoveFormat           : "Odstranit formátování",\r
+InsertLinkLbl          : "Odkaz",\r
+InsertLink                     : "Vložit/změnit odkaz",\r
+RemoveLink                     : "Odstranit odkaz",\r
+Anchor                         : "Vložít/změnit záložku",\r
+InsertImageLbl         : "Obrázek",\r
+InsertImage                    : "Vložit/změnit obrázek",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Vložit/Upravit Flash",\r
+InsertTableLbl         : "Tabulka",\r
+InsertTable                    : "Vložit/změnit tabulku",\r
+InsertLineLbl          : "Linka",\r
+InsertLine                     : "Vložit vodorovnou linku",\r
+InsertSpecialCharLbl: "Speciální znaky",\r
+InsertSpecialChar      : "Vložit speciální znaky",\r
+InsertSmileyLbl                : "Smajlíky",\r
+InsertSmiley           : "Vložit smajlík",\r
+About                          : "O aplikaci FCKeditor",\r
+Bold                           : "Tučné",\r
+Italic                         : "Kurzíva",\r
+Underline                      : "Podtržené",\r
+StrikeThrough          : "Přeškrtnuté",\r
+Subscript                      : "Dolní index",\r
+Superscript                    : "Horní index",\r
+LeftJustify                    : "Zarovnat vlevo",\r
+CenterJustify          : "Zarovnat na střed",\r
+RightJustify           : "Zarovnat vpravo",\r
+BlockJustify           : "Zarovnat do bloku",\r
+DecreaseIndent         : "Zmenšit odsazení",\r
+IncreaseIndent         : "Zvětšit odsazení",\r
+Undo                           : "Zpět",\r
+Redo                           : "Znovu",\r
+NumberedListLbl                : "Číslování",\r
+NumberedList           : "Vložit/odstranit číslovaný seznam",\r
+BulletedListLbl                : "Odrážky",\r
+BulletedList           : "Vložit/odstranit odrážky",\r
+ShowTableBorders       : "Zobrazit okraje tabulek",\r
+ShowDetails                    : "Zobrazit podrobnosti",\r
+Style                          : "Styl",\r
+FontFormat                     : "Formát",\r
+Font                           : "Písmo",\r
+FontSize                       : "Velikost",\r
+TextColor                      : "Barva textu",\r
+BGColor                                : "Barva pozadí",\r
+Source                         : "Zdroj",\r
+Find                           : "Hledat",\r
+Replace                                : "Nahradit",\r
+SpellCheck                     : "Zkontrolovat pravopis",\r
+UniversalKeyboard      : "Univerzální klávesnice",\r
+PageBreakLbl           : "Konec stránky",\r
+PageBreak                      : "Vložit konec stránky",\r
+\r
+Form                   : "Formulář",\r
+Checkbox               : "Zaškrtávací políčko",\r
+RadioButton            : "Přepínač",\r
+TextField              : "Textové pole",\r
+Textarea               : "Textová oblast",\r
+HiddenField            : "Skryté pole",\r
+Button                 : "Tlačítko",\r
+SelectionField : "Seznam",\r
+ImageButton            : "Obrázkové tlačítko",\r
+\r
+FitWindow              : "Maximalizovat velikost editoru",\r
+\r
+// Context Menu\r
+EditLink                       : "Změnit odkaz",\r
+CellCM                         : "Buňka",\r
+RowCM                          : "Řádek",\r
+ColumnCM                       : "Sloupec",\r
+InsertRow                      : "Vložit řádek",\r
+DeleteRows                     : "Smazat řádek",\r
+InsertColumn           : "Vložit sloupec",\r
+DeleteColumns          : "Smazat sloupec",\r
+InsertCell                     : "Vložit buňku",\r
+DeleteCells                    : "Smazat buňky",\r
+MergeCells                     : "Sloučit buňky",\r
+SplitCell                      : "Rozdělit buňku",\r
+TableDelete                    : "Smazat tabulku",\r
+CellProperties         : "Vlastnosti buňky",\r
+TableProperties                : "Vlastnosti tabulky",\r
+ImageProperties                : "Vlastnosti obrázku",\r
+FlashProperties                : "Vlastnosti Flashe",\r
+\r
+AnchorProp                     : "Vlastnosti záložky",\r
+ButtonProp                     : "Vlastnosti tlačítka",\r
+CheckboxProp           : "Vlastnosti zaškrtávacího políčka",\r
+HiddenFieldProp                : "Vlastnosti skrytého pole",\r
+RadioButtonProp                : "Vlastnosti přepínače",\r
+ImageButtonProp                : "Vlastností obrázkového tlačítka",\r
+TextFieldProp          : "Vlastnosti textového pole",\r
+SelectionFieldProp     : "Vlastnosti seznamu",\r
+TextareaProp           : "Vlastnosti textové oblasti",\r
+FormProp                       : "Vlastnosti formuláře",\r
+\r
+FontFormats                    : "Normální;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Probíhá zpracování XHTML. Prosím čekejte...",\r
+Done                           : "Hotovo",\r
+PasteWordConfirm       : "Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?",\r
+NotCompatiblePaste     : "Tento příkaz je dostupný pouze v Internet Exploreru verze 5.5 nebo vyšší. Chcete vložit text bez vyčištění?",\r
+UnknownToolbarItem     : "Neznámá položka panelu nástrojů \"%1\"",\r
+UnknownCommand         : "Neznámý příkaz \"%1\"",\r
+NotImplemented         : "Příkaz není implementován",\r
+UnknownToolbarSet      : "Panel nástrojů \"%1\" neexistuje",\r
+NoActiveX                      : "Nastavení bezpečnosti Vašeho prohlížeče omezuje funkčnost některých jeho možností. Je třeba zapnout volbu \"Spouštět ovládáací prvky ActiveX a moduly plug-in\", jinak nebude možné využívat všechny dosputné schopnosti editoru.",\r
+BrowseServerBlocked : "Průzkumník zdrojů nelze otevřít. Prověřte, zda nemáte aktivováno blokování popup oken.",\r
+DialogBlocked          : "Nelze otevřít dialogové okno. Prověřte, zda nemáte aktivováno blokování popup oken.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Storno",\r
+DlgBtnClose                    : "Zavřít",\r
+DlgBtnBrowseServer     : "Vybrat na serveru",\r
+DlgAdvancedTag         : "Rozšířené",\r
+DlgOpOther                     : "<Ostatní>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Prosím vložte URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nenastaveno>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Orientace jazyka",\r
+DlgGenLangDirLtr       : "Zleva do prava (LTR)",\r
+DlgGenLangDirRtl       : "Zprava do leva (RTL)",\r
+DlgGenLangCode         : "Kód jazyka",\r
+DlgGenAccessKey                : "Přístupový klíč",\r
+DlgGenName                     : "Jméno",\r
+DlgGenTabIndex         : "Pořadí prvku",\r
+DlgGenLongDescr                : "Dlouhý popis URL",\r
+DlgGenClass                    : "Třída stylu",\r
+DlgGenTitle                    : "Pomocný titulek",\r
+DlgGenContType         : "Pomocný typ obsahu",\r
+DlgGenLinkCharset      : "Přiřazená znaková sada",\r
+DlgGenStyle                    : "Styl",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Vlastnosti obrázku",\r
+DlgImgInfoTab          : "Informace o obrázku",\r
+DlgImgBtnUpload                : "Odeslat na server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Odeslat",\r
+DlgImgAlt                      : "Alternativní text",\r
+DlgImgWidth                    : "Šířka",\r
+DlgImgHeight           : "Výška",\r
+DlgImgLockRatio                : "Zámek",\r
+DlgBtnResetSize                : "Původní velikost",\r
+DlgImgBorder           : "Okraje",\r
+DlgImgHSpace           : "H-mezera",\r
+DlgImgVSpace           : "V-mezera",\r
+DlgImgAlign                    : "Zarovnání",\r
+DlgImgAlignLeft                : "Vlevo",\r
+DlgImgAlignAbsBottom: "Zcela dolů",\r
+DlgImgAlignAbsMiddle: "Doprostřed",\r
+DlgImgAlignBaseline    : "Na účaří",\r
+DlgImgAlignBottom      : "Dolů",\r
+DlgImgAlignMiddle      : "Na střed",\r
+DlgImgAlignRight       : "Vpravo",\r
+DlgImgAlignTextTop     : "Na horní okraj textu",\r
+DlgImgAlignTop         : "Nahoru",\r
+DlgImgPreview          : "Náhled",\r
+DlgImgAlertUrl         : "Zadejte prosím URL obrázku",\r
+DlgImgLinkTab          : "Odkaz",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Vlastnosti Flashe",\r
+DlgFlashChkPlay                : "Automatické spuštění",\r
+DlgFlashChkLoop                : "Opakování",\r
+DlgFlashChkMenu                : "Nabídka Flash",\r
+DlgFlashScale          : "Zobrazit",\r
+DlgFlashScaleAll       : "Zobrazit vše",\r
+DlgFlashScaleNoBorder  : "Bez okraje",\r
+DlgFlashScaleFit       : "Přizpůsobit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Odkaz",\r
+DlgLnkInfoTab          : "Informace o odkazu",\r
+DlgLnkTargetTab                : "Cíl",\r
+\r
+DlgLnkType                     : "Typ odkazu",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Kotva v této stránce",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<jiný>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Vybrat kotvu",\r
+DlgLnkAnchorByName     : "Podle jména kotvy",\r
+DlgLnkAnchorById       : "Podle Id objektu",\r
+DlgLnkNoAnchors                : "<Ve stránce žádná kotva není definována>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mailová adresa",\r
+DlgLnkEMailSubject     : "Předmět zprávy",\r
+DlgLnkEMailBody                : "Tělo zprávy",\r
+DlgLnkUpload           : "Odeslat",\r
+DlgLnkBtnUpload                : "Odeslat na Server",\r
+\r
+DlgLnkTarget           : "Cíl",\r
+DlgLnkTargetFrame      : "<rámec>",\r
+DlgLnkTargetPopup      : "<vyskakovací okno>",\r
+DlgLnkTargetBlank      : "Nové okno (_blank)",\r
+DlgLnkTargetParent     : "Rodičovské okno (_parent)",\r
+DlgLnkTargetSelf       : "Stejné okno (_self)",\r
+DlgLnkTargetTop                : "Hlavní okno (_top)",\r
+DlgLnkTargetFrameName  : "Název cílového rámu",\r
+DlgLnkPopWinName       : "Název vyskakovacího okna",\r
+DlgLnkPopWinFeat       : "Vlastnosti vyskakovacího okna",\r
+DlgLnkPopResize                : "Měnitelná velikost",\r
+DlgLnkPopLocation      : "Panel umístění",\r
+DlgLnkPopMenu          : "Panel nabídky",\r
+DlgLnkPopScroll                : "Posuvníky",\r
+DlgLnkPopStatus                : "Stavový řádek",\r
+DlgLnkPopToolbar       : "Panel nástrojů",\r
+DlgLnkPopFullScrn      : "Celá obrazovka (IE)",\r
+DlgLnkPopDependent     : "Závislost (Netscape)",\r
+DlgLnkPopWidth         : "Šířka",\r
+DlgLnkPopHeight                : "Výška",\r
+DlgLnkPopLeft          : "Levý okraj",\r
+DlgLnkPopTop           : "Horní okraj",\r
+\r
+DlnLnkMsgNoUrl         : "Zadejte prosím URL odkazu",\r
+DlnLnkMsgNoEMail       : "Zadejte prosím e-mailovou adresu",\r
+DlnLnkMsgNoAnchor      : "Vyberte prosím kotvu",\r
+DlnLnkMsgInvPopName    : "Název vyskakovacího okna musí začínat písmenem a nesmí obsahovat mezery",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Výběr barvy",\r
+DlgColorBtnClear       : "Vymazat",\r
+DlgColorHighlight      : "Zvýrazněná",\r
+DlgColorSelected       : "Vybraná",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Vkládání smajlíků",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Výběr speciálního znaku",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Vlastnosti tabulky",\r
+DlgTableRows           : "Řádky",\r
+DlgTableColumns                : "Sloupce",\r
+DlgTableBorder         : "Ohraničení",\r
+DlgTableAlign          : "Zarovnání",\r
+DlgTableAlignNotSet    : "<nenastaveno>",\r
+DlgTableAlignLeft      : "Vlevo",\r
+DlgTableAlignCenter    : "Na střed",\r
+DlgTableAlignRight     : "Vpravo",\r
+DlgTableWidth          : "Šířka",\r
+DlgTableWidthPx                : "bodů",\r
+DlgTableWidthPc                : "procent",\r
+DlgTableHeight         : "Výška",\r
+DlgTableCellSpace      : "Vzdálenost buněk",\r
+DlgTableCellPad                : "Odsazení obsahu",\r
+DlgTableCaption                : "Popis",\r
+DlgTableSummary                : "Souhrn",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Vlastnosti buňky",\r
+DlgCellWidth           : "Šířka",\r
+DlgCellWidthPx         : "bodů",\r
+DlgCellWidthPc         : "procent",\r
+DlgCellHeight          : "Výška",\r
+DlgCellWordWrap                : "Zalamování",\r
+DlgCellWordWrapNotSet  : "<nenanstaveno>",\r
+DlgCellWordWrapYes     : "Ano",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Vodorovné zarovnání",\r
+DlgCellHorAlignNotSet  : "<nenastaveno>",\r
+DlgCellHorAlignLeft    : "Vlevo",\r
+DlgCellHorAlignCenter  : "Na střed",\r
+DlgCellHorAlignRight: "Vpravo",\r
+DlgCellVerAlign                : "Svislé zarovnání",\r
+DlgCellVerAlignNotSet  : "<nenastaveno>",\r
+DlgCellVerAlignTop     : "Nahoru",\r
+DlgCellVerAlignMiddle  : "Doprostřed",\r
+DlgCellVerAlignBottom  : "Dolů",\r
+DlgCellVerAlignBaseline        : "Na účaří",\r
+DlgCellRowSpan         : "Sloučené řádky",\r
+DlgCellCollSpan                : "Sloučené sloupce",\r
+DlgCellBackColor       : "Barva pozadí",\r
+DlgCellBorderColor     : "Barva ohraničení",\r
+DlgCellBtnSelect       : "Výběr...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Hledat",\r
+DlgFindFindBtn         : "Hledat",\r
+DlgFindNotFoundMsg     : "Hledaný text nebyl nalezen.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Nahradit",\r
+DlgReplaceFindLbl              : "Co hledat:",\r
+DlgReplaceReplaceLbl   : "Čím nahradit:",\r
+DlgReplaceCaseChk              : "Rozlišovat velikost písma",\r
+DlgReplaceReplaceBtn   : "Nahradit",\r
+DlgReplaceReplAllBtn   : "Nahradit vše",\r
+DlgReplaceWordChk              : "Pouze celá slova",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl+X).",\r
+PasteErrorCopy : "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).",\r
+\r
+PasteAsText            : "Vložit jako čistý text",\r
+PasteFromWord  : "Vložit text z Wordu",\r
+\r
+DlgPasteMsg2   : "Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorovat písmo",\r
+DlgPasteRemoveStyles   : "Odstranit styly",\r
+DlgPasteCleanBox               : "Vyčistit",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automaticky",\r
+ColorMoreColors        : "Více barev...",\r
+\r
+// Document Properties\r
+DocProps               : "Vlastnosti dokumentu",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Vlastnosti záložky",\r
+DlgAnchorName          : "Název záložky",\r
+DlgAnchorErrorName     : "Zadejte prosím název záložky",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Není ve slovníku",\r
+DlgSpellChangeTo               : "Změnit na",\r
+DlgSpellBtnIgnore              : "Přeskočit",\r
+DlgSpellBtnIgnoreAll   : "Přeskakovat vše",\r
+DlgSpellBtnReplace             : "Zaměnit",\r
+DlgSpellBtnReplaceAll  : "Zaměňovat vše",\r
+DlgSpellBtnUndo                        : "Zpět",\r
+DlgSpellNoSuggestions  : "- žádné návrhy -",\r
+DlgSpellProgress               : "Probíhá kontrola pravopisu...",\r
+DlgSpellNoMispell              : "Kontrola pravopisu dokončena: Žádné pravopisné chyby nenalezeny",\r
+DlgSpellNoChanges              : "Kontrola pravopisu dokončena: Beze změn",\r
+DlgSpellOneChange              : "Kontrola pravopisu dokončena: Jedno slovo změněno",\r
+DlgSpellManyChanges            : "Kontrola pravopisu dokončena: %1 slov změněno",\r
+\r
+IeSpellDownload                        : "Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Popisek",\r
+DlgButtonType          : "Typ",\r
+DlgButtonTypeBtn       : "Tlačítko",\r
+DlgButtonTypeSbm       : "Odeslat",\r
+DlgButtonTypeRst       : "Obnovit",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Název",\r
+DlgCheckboxValue       : "Hodnota",\r
+DlgCheckboxSelected    : "Zaškrtnuto",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Název",\r
+DlgFormAction  : "Akce",\r
+DlgFormMethod  : "Metoda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Název",\r
+DlgSelectValue         : "Hodnota",\r
+DlgSelectSize          : "Velikost",\r
+DlgSelectLines         : "Řádků",\r
+DlgSelectChkMulti      : "Povolit mnohonásobné výběry",\r
+DlgSelectOpAvail       : "Dostupná nastavení",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Hodnota",\r
+DlgSelectBtnAdd                : "Přidat",\r
+DlgSelectBtnModify     : "Změnit",\r
+DlgSelectBtnUp         : "Nahoru",\r
+DlgSelectBtnDown       : "Dolů",\r
+DlgSelectBtnSetValue : "Nastavit jako vybranou hodnotu",\r
+DlgSelectBtnDelete     : "Smazat",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Název",\r
+DlgTextareaCols        : "Sloupců",\r
+DlgTextareaRows        : "Řádků",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Název",\r
+DlgTextValue           : "Hodnota",\r
+DlgTextCharWidth       : "Šířka ve znacích",\r
+DlgTextMaxChars                : "Maximální počet znaků",\r
+DlgTextType                    : "Typ",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Heslo",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Název",\r
+DlgHiddenValue : "Hodnota",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Vlastnosti odrážek",\r
+NumberedListProp       : "Vlastnosti číslovaného seznamu",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Typ",\r
+DlgLstTypeCircle       : "Kružnice",\r
+DlgLstTypeDisc         : "Kruh",\r
+DlgLstTypeSquare       : "Čtverec",\r
+DlgLstTypeNumbers      : "Čísla (1, 2, 3)",\r
+DlgLstTypeLCase                : "Malá písmena (a, b, c)",\r
+DlgLstTypeUCase                : "Velká písmena (A, B, C)",\r
+DlgLstTypeSRoman       : "Malé římská číslice (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Velké římské číslice (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Obecné",\r
+DlgDocBackTab          : "Pozadí",\r
+DlgDocColorsTab                : "Barvy a okraje",\r
+DlgDocMetaTab          : "Metadata",\r
+\r
+DlgDocPageTitle                : "Titulek stránky",\r
+DlgDocLangDir          : "Směr jazyku",\r
+DlgDocLangDirLTR       : "Zleva do prava ",\r
+DlgDocLangDirRTL       : "Zprava doleva",\r
+DlgDocLangCode         : "Kód jazyku",\r
+DlgDocCharSet          : "Znaková sada",\r
+DlgDocCharSetCE                : "Středoevropské jazyky",\r
+DlgDocCharSetCT                : "Tradiční čínština (Big5)",\r
+DlgDocCharSetCR                : "Cyrilice",\r
+DlgDocCharSetGR                : "Řečtina",\r
+DlgDocCharSetJP                : "Japonština",\r
+DlgDocCharSetKR                : "Korejština",\r
+DlgDocCharSetTR                : "Turečtina",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Západoevropské jazyky",\r
+DlgDocCharSetOther     : "Další znaková sada",\r
+\r
+DlgDocDocType          : "Typ dokumentu",\r
+DlgDocDocTypeOther     : "Jiný typ dokumetu",\r
+DlgDocIncXHTML         : "Zahrnou deklarace XHTML",\r
+DlgDocBgColor          : "Barva pozadí",\r
+DlgDocBgImage          : "URL obrázku na pozadí",\r
+DlgDocBgNoScroll       : "Nerolovatelné pozadí",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Odkaz",\r
+DlgDocCVisited         : "Navštívený odkaz",\r
+DlgDocCActive          : "Vybraný odkaz",\r
+DlgDocMargins          : "Okraje stránky",\r
+DlgDocMaTop                    : "Horní",\r
+DlgDocMaLeft           : "Levý",\r
+DlgDocMaRight          : "Pravý",\r
+DlgDocMaBottom         : "Dolní",\r
+DlgDocMeIndex          : "Klíčová slova (oddělená čárkou)",\r
+DlgDocMeDescr          : "Popis dokumentu",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Autorská práva",\r
+DlgDocPreview          : "Náhled",\r
+\r
+// Templates Dialog\r
+Templates                      : "Šablony",\r
+DlgTemplatesTitle      : "Šablony obsahu",\r
+DlgTemplatesSelMsg     : "Prosím zvolte šablonu pro otevření v editoru<br>(aktuální obsah editoru bude ztracen):",\r
+DlgTemplatesLoading    : "Nahrávám přeheld šablon. Prosím čekejte...",\r
+DlgTemplatesNoTpl      : "(Není definována žádná šablona)",\r
+DlgTemplatesReplace    : "Nahradit aktuální obsah",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "O aplikaci",\r
+DlgAboutBrowserInfoTab : "Informace o prohlížeči",\r
+DlgAboutLicenseTab     : "Licence",\r
+DlgAboutVersion                : "verze",\r
+DlgAboutInfo           : "Více informací získáte na"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/da.js b/httemplate/elements/fckeditor/editor/lang/da.js
new file mode 100644 (file)
index 0000000..8143241
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Danish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skjul værktøjslinier",\r
+ToolbarExpand          : "Vis værktøjslinier",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Gem",\r
+NewPage                                : "Ny side",\r
+Preview                                : "Vis eksempel",\r
+Cut                                    : "Klip",\r
+Copy                           : "Kopier",\r
+Paste                          : "Indsæt",\r
+PasteText                      : "Indsæt som ikke-formateret tekst",\r
+PasteWord                      : "Indsæt fra Word",\r
+Print                          : "Udskriv",\r
+SelectAll                      : "Vælg alt",\r
+RemoveFormat           : "Fjern formatering",\r
+InsertLinkLbl          : "Hyperlink",\r
+InsertLink                     : "Indsæt/rediger hyperlink",\r
+RemoveLink                     : "Fjern hyperlink",\r
+Anchor                         : "Indsæt/rediger bogmærke",\r
+InsertImageLbl         : "Indsæt billede",\r
+InsertImage                    : "Indsæt/rediger billede",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Indsæt/rediger Flash",\r
+InsertTableLbl         : "Table",\r
+InsertTable                    : "Indsæt/rediger tabel",\r
+InsertLineLbl          : "Linie",\r
+InsertLine                     : "Indsæt vandret linie",\r
+InsertSpecialCharLbl: "Symbol",\r
+InsertSpecialChar      : "Indsæt symbol",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Indsæt smiley",\r
+About                          : "Om FCKeditor",\r
+Bold                           : "Fed",\r
+Italic                         : "Kursiv",\r
+Underline                      : "Understreget",\r
+StrikeThrough          : "Overstreget",\r
+Subscript                      : "Sænket skrift",\r
+Superscript                    : "Hævet skrift",\r
+LeftJustify                    : "Venstrestillet",\r
+CenterJustify          : "Centreret",\r
+RightJustify           : "Højrestillet",\r
+BlockJustify           : "Lige margener",\r
+DecreaseIndent         : "Formindsk indrykning",\r
+IncreaseIndent         : "Forøg indrykning",\r
+Undo                           : "Fortryd",\r
+Redo                           : "Annuller fortryd",\r
+NumberedListLbl                : "Talopstilling",\r
+NumberedList           : "Indsæt/fjern talopstilling",\r
+BulletedListLbl                : "Punktopstilling",\r
+BulletedList           : "Indsæt/fjern punktopstilling",\r
+ShowTableBorders       : "Vis tabelkanter",\r
+ShowDetails                    : "Vis detaljer",\r
+Style                          : "Typografi",\r
+FontFormat                     : "Formatering",\r
+Font                           : "Skrifttype",\r
+FontSize                       : "Skriftstørrelse",\r
+TextColor                      : "Tekstfarve",\r
+BGColor                                : "Baggrundsfarve",\r
+Source                         : "Kilde",\r
+Find                           : "Søg",\r
+Replace                                : "Erstat",\r
+SpellCheck                     : "Stavekontrol",\r
+UniversalKeyboard      : "Universaltastatur",\r
+PageBreakLbl           : "Sidskift",\r
+PageBreak                      : "Indsæt sideskift",\r
+\r
+Form                   : "Indsæt formular",\r
+Checkbox               : "Indsæt afkrydsningsfelt",\r
+RadioButton            : "Indsæt alternativknap",\r
+TextField              : "Indsæt tekstfelt",\r
+Textarea               : "Indsæt tekstboks",\r
+HiddenField            : "Indsæt skjult felt",\r
+Button                 : "Indsæt knap",\r
+SelectionField : "Indsæt liste",\r
+ImageButton            : "Indsæt billedknap",\r
+\r
+FitWindow              : "Maksimer editor vinduet",\r
+\r
+// Context Menu\r
+EditLink                       : "Rediger hyperlink",\r
+CellCM                         : "Celle",\r
+RowCM                          : "Række",\r
+ColumnCM                       : "Kolonne",\r
+InsertRow                      : "Indsæt række",\r
+DeleteRows                     : "Slet række",\r
+InsertColumn           : "Indsæt kolonne",\r
+DeleteColumns          : "Slet kolonne",\r
+InsertCell                     : "Indsæt celle",\r
+DeleteCells                    : "Slet celle",\r
+MergeCells                     : "Flet celler",\r
+SplitCell                      : "Opdel celle",\r
+TableDelete                    : "Slet tabel",\r
+CellProperties         : "Egenskaber for celle",\r
+TableProperties                : "Egenskaber for tabel",\r
+ImageProperties                : "Egenskaber for billede",\r
+FlashProperties                : "Egenskaber for Flash",\r
+\r
+AnchorProp                     : "Egenskaber for bogmærke",\r
+ButtonProp                     : "Egenskaber for knap",\r
+CheckboxProp           : "Egenskaber for afkrydsningsfelt",\r
+HiddenFieldProp                : "Egenskaber for skjult felt",\r
+RadioButtonProp                : "Egenskaber for alternativknap",\r
+ImageButtonProp                : "Egenskaber for billedknap",\r
+TextFieldProp          : "Egenskaber for tekstfelt",\r
+SelectionFieldProp     : "Egenskaber for liste",\r
+TextareaProp           : "Egenskaber for tekstboks",\r
+FormProp                       : "Egenskaber for formular",\r
+\r
+FontFormats                    : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Behandler XHTML...",\r
+Done                           : "Færdig",\r
+PasteWordConfirm       : "Den tekst du forsøger at indsætte ser ud til at komme fra Word.<br>Vil du rense teksten før den indsættes?",\r
+NotCompatiblePaste     : "Denne kommando er tilgændelig i Internet Explorer 5.5 eller senere.<br>Vil du indsætte teksten uden at rense den ?",\r
+UnknownToolbarItem     : "Ukendt værktøjslinjeobjekt \"%1\"!",\r
+UnknownCommand         : "Ukendt kommandonavn \"%1\"!",\r
+NotImplemented         : "Kommandoen er ikke implementeret!",\r
+UnknownToolbarSet      : "Værktøjslinjen \"%1\" eksisterer ikke!",\r
+NoActiveX                      : "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.<br>Slå \"Kør ActiveX-objekter og plug-ins\" til, ellers vil du opleve fejl og manglende muligheder.",\r
+BrowseServerBlocked : "Browseren kunne ikke åbne de nødvendige ressourcer!<br>Slå pop-up blokering fra.",\r
+DialogBlocked          : "Dialogvinduet kunne ikke åbnes!<br>Slå pop-up blokering fra.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Annuller",\r
+DlgBtnClose                    : "Luk",\r
+DlgBtnBrowseServer     : "Gennemse...",\r
+DlgAdvancedTag         : "Avanceret",\r
+DlgOpOther                     : "<Andet>",\r
+DlgInfoTab                     : "Generelt",\r
+DlgAlertUrl                    : "Indtast URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<intet valgt>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Tekstretning",\r
+DlgGenLangDirLtr       : "Fra venstre mod højre (LTR)",\r
+DlgGenLangDirRtl       : "Fra højre mod venstre (RTL)",\r
+DlgGenLangCode         : "Sprogkode",\r
+DlgGenAccessKey                : "Genvejstast",\r
+DlgGenName                     : "Navn",\r
+DlgGenTabIndex         : "Tabulator indeks",\r
+DlgGenLongDescr                : "Udvidet beskrivelse",\r
+DlgGenClass                    : "Typografiark",\r
+DlgGenTitle                    : "Titel",\r
+DlgGenContType         : "Indholdstype",\r
+DlgGenLinkCharset      : "Tegnsæt",\r
+DlgGenStyle                    : "Typografi",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Egenskaber for billede",\r
+DlgImgInfoTab          : "Generelt",\r
+DlgImgBtnUpload                : "Upload",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternativ tekst",\r
+DlgImgWidth                    : "Bredde",\r
+DlgImgHeight           : "Højde",\r
+DlgImgLockRatio                : "Lås størrelsesforhold",\r
+DlgBtnResetSize                : "Nulstil størrelse",\r
+DlgImgBorder           : "Ramme",\r
+DlgImgHSpace           : "HMargen",\r
+DlgImgVSpace           : "VMargen",\r
+DlgImgAlign                    : "Justering",\r
+DlgImgAlignLeft                : "Venstre",\r
+DlgImgAlignAbsBottom: "Absolut nederst",\r
+DlgImgAlignAbsMiddle: "Absolut centreret",\r
+DlgImgAlignBaseline    : "Grundlinje",\r
+DlgImgAlignBottom      : "Nederst",\r
+DlgImgAlignMiddle      : "Centreret",\r
+DlgImgAlignRight       : "Højre",\r
+DlgImgAlignTextTop     : "Toppen af teksten",\r
+DlgImgAlignTop         : "Øverst",\r
+DlgImgPreview          : "Vis eksempel",\r
+DlgImgAlertUrl         : "Indtast stien til billedet",\r
+DlgImgLinkTab          : "Hyperlink",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Egenskaber for Flash",\r
+DlgFlashChkPlay                : "Automatisk afspilning",\r
+DlgFlashChkLoop                : "Gentagelse",\r
+DlgFlashChkMenu                : "Vis Flash menu",\r
+DlgFlashScale          : "Skalér",\r
+DlgFlashScaleAll       : "Vis alt",\r
+DlgFlashScaleNoBorder  : "Ingen ramme",\r
+DlgFlashScaleFit       : "Tilpas størrelse",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Egenskaber for hyperlink",\r
+DlgLnkInfoTab          : "Generelt",\r
+DlgLnkTargetTab                : "Mål",\r
+\r
+DlgLnkType                     : "Hyperlink type",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Bogmærke på denne side",\r
+DlgLnkTypeEMail                : "E-mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<anden>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Vælg et anker",\r
+DlgLnkAnchorByName     : "Efter anker navn",\r
+DlgLnkAnchorById       : "Efter element Id",\r
+DlgLnkNoAnchors                : "<Ingen bogmærker dokumentet>",              //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-mailadresse",\r
+DlgLnkEMailSubject     : "Emne",\r
+DlgLnkEMailBody                : "Brødtekst",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Upload",\r
+\r
+DlgLnkTarget           : "Mål",\r
+DlgLnkTargetFrame      : "<ramme>",\r
+DlgLnkTargetPopup      : "<popup vindue>",\r
+DlgLnkTargetBlank      : "Nyt vindue (_blank)",\r
+DlgLnkTargetParent     : "Overordnet ramme (_parent)",\r
+DlgLnkTargetSelf       : "Samme vindue (_self)",\r
+DlgLnkTargetTop                : "Hele vinduet (_top)",\r
+DlgLnkTargetFrameName  : "Destinationsvinduets navn",\r
+DlgLnkPopWinName       : "Pop-up vinduets navn",\r
+DlgLnkPopWinFeat       : "Egenskaber for pop-up",\r
+DlgLnkPopResize                : "Skalering",\r
+DlgLnkPopLocation      : "Adresselinje",\r
+DlgLnkPopMenu          : "Menulinje",\r
+DlgLnkPopScroll                : "Scrollbars",\r
+DlgLnkPopStatus                : "Statuslinje",\r
+DlgLnkPopToolbar       : "Værktøjslinje",\r
+DlgLnkPopFullScrn      : "Fuld skærm (IE)",\r
+DlgLnkPopDependent     : "Koblet/dependent (Netscape)",\r
+DlgLnkPopWidth         : "Bredde",\r
+DlgLnkPopHeight                : "Højde",\r
+DlgLnkPopLeft          : "Position fra venstre",\r
+DlgLnkPopTop           : "Position fra toppen",\r
+\r
+DlnLnkMsgNoUrl         : "Indtast hyperlink URL!",\r
+DlnLnkMsgNoEMail       : "Indtast e-mailaddresse!",\r
+DlnLnkMsgNoAnchor      : "Vælg bogmærke!",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Vælg farve",\r
+DlgColorBtnClear       : "Nulstil",\r
+DlgColorHighlight      : "Markeret",\r
+DlgColorSelected       : "Valgt",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Vælg smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Vælg symbol",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Egenskaber for tabel",\r
+DlgTableRows           : "Rækker",\r
+DlgTableColumns                : "Kolonner",\r
+DlgTableBorder         : "Rammebredde",\r
+DlgTableAlign          : "Justering",\r
+DlgTableAlignNotSet    : "<intet valgt>",\r
+DlgTableAlignLeft      : "Venstrestillet",\r
+DlgTableAlignCenter    : "Centreret",\r
+DlgTableAlignRight     : "Højrestillet",\r
+DlgTableWidth          : "Bredde",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "procent",\r
+DlgTableHeight         : "Højde",\r
+DlgTableCellSpace      : "Celleafstand",\r
+DlgTableCellPad                : "Cellemargen",\r
+DlgTableCaption                : "Titel",\r
+DlgTableSummary                : "Resume",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Egenskaber for celle",\r
+DlgCellWidth           : "Bredde",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "procent",\r
+DlgCellHeight          : "Højde",\r
+DlgCellWordWrap                : "Orddeling",\r
+DlgCellWordWrapNotSet  : "<intet valgt>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nej",\r
+DlgCellHorAlign                : "Vandret justering",\r
+DlgCellHorAlignNotSet  : "<intet valgt>",\r
+DlgCellHorAlignLeft    : "Venstrestillet",\r
+DlgCellHorAlignCenter  : "Centreret",\r
+DlgCellHorAlignRight: "Højrestillet",\r
+DlgCellVerAlign                : "Lodret justering",\r
+DlgCellVerAlignNotSet  : "<intet valgt>",\r
+DlgCellVerAlignTop     : "Øverst",\r
+DlgCellVerAlignMiddle  : "Centreret",\r
+DlgCellVerAlignBottom  : "Nederst",\r
+DlgCellVerAlignBaseline        : "Grundlinje",\r
+DlgCellRowSpan         : "Højde i antal rækker",\r
+DlgCellCollSpan                : "Bredde i antal kolonner",\r
+DlgCellBackColor       : "Baggrundsfarve",\r
+DlgCellBorderColor     : "Rammefarve",\r
+DlgCellBtnSelect       : "Vælg...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Find",\r
+DlgFindFindBtn         : "Find",\r
+DlgFindNotFoundMsg     : "Søgeteksten blev ikke fundet!",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Erstat",\r
+DlgReplaceFindLbl              : "Søg efter:",\r
+DlgReplaceReplaceLbl   : "Erstat med:",\r
+DlgReplaceCaseChk              : "Forskel på store og små bogstaver",\r
+DlgReplaceReplaceBtn   : "Erstat",\r
+DlgReplaceReplAllBtn   : "Erstat alle",\r
+DlgReplaceWordChk              : "Kun hele ord",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",\r
+PasteErrorCopy : "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",\r
+\r
+PasteAsText            : "Indsæt som ikke-formateret tekst",\r
+PasteFromWord  : "Indsæt fra Word",\r
+\r
+DlgPasteMsg2   : "Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorer font definitioner",\r
+DlgPasteRemoveStyles   : "Ignorer typografi",\r
+DlgPasteCleanBox               : "Slet indhold",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisk",\r
+ColorMoreColors        : "Flere farver...",\r
+\r
+// Document Properties\r
+DocProps               : "Egenskaber for dokument",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Egenskaber for bogmærke",\r
+DlgAnchorName          : "Bogmærke navn",\r
+DlgAnchorErrorName     : "Indtast bogmærke navn!",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ikke i ordbogen",\r
+DlgSpellChangeTo               : "Forslag",\r
+DlgSpellBtnIgnore              : "Ignorer",\r
+DlgSpellBtnIgnoreAll   : "Ignorer alle",\r
+DlgSpellBtnReplace             : "Erstat",\r
+DlgSpellBtnReplaceAll  : "Erstat alle",\r
+DlgSpellBtnUndo                        : "Tilbage",\r
+DlgSpellNoSuggestions  : "- ingen forslag -",\r
+DlgSpellProgress               : "Stavekontrolen arbejder...",\r
+DlgSpellNoMispell              : "Stavekontrol færdig: Ingen fejl fundet",\r
+DlgSpellNoChanges              : "Stavekontrol færdig: Ingen ord ændret",\r
+DlgSpellOneChange              : "Stavekontrol færdig: Et ord ændret",\r
+DlgSpellManyChanges            : "Stavekontrol færdig: %1 ord ændret",\r
+\r
+IeSpellDownload                        : "Stavekontrol ikke installeret.<br>Vil du hente den nu?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Navn",\r
+DlgCheckboxValue       : "Værdi",\r
+DlgCheckboxSelected    : "Valgt",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Navn",\r
+DlgFormAction  : "Handling",\r
+DlgFormMethod  : "Metod",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Navn",\r
+DlgSelectValue         : "Værdi",\r
+DlgSelectSize          : "Størrelse",\r
+DlgSelectLines         : "linier",\r
+DlgSelectChkMulti      : "Tillad flere valg",\r
+DlgSelectOpAvail       : "Valgmuligheder",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Værdi",\r
+DlgSelectBtnAdd                : "Tilføj",\r
+DlgSelectBtnModify     : "Rediger",\r
+DlgSelectBtnUp         : "Op",\r
+DlgSelectBtnDown       : "Ned",\r
+DlgSelectBtnSetValue : "Sæt som valgt",\r
+DlgSelectBtnDelete     : "Slet",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Navn",\r
+DlgTextareaCols        : "Kolonner",\r
+DlgTextareaRows        : "Rækker",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Navn",\r
+DlgTextValue           : "Værdi",\r
+DlgTextCharWidth       : "Bredde (tegn)",\r
+DlgTextMaxChars                : "Max antal tegn",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Adgangskode",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Navn",\r
+DlgHiddenValue : "Værdi",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Egenskaber for punktopstilling",\r
+NumberedListProp       : "Egenskaber for talopstilling",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Cirkel",\r
+DlgLstTypeDisc         : "Udfyldt cirkel",\r
+DlgLstTypeSquare       : "Firkant",\r
+DlgLstTypeNumbers      : "Nummereret (1, 2, 3)",\r
+DlgLstTypeLCase                : "Små bogstaver (a, b, c)",\r
+DlgLstTypeUCase                : "Store bogstaver (A, B, C)",\r
+DlgLstTypeSRoman       : "Små romertal (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Store romertal (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Generelt",\r
+DlgDocBackTab          : "Baggrund",\r
+DlgDocColorsTab                : "Farver og margen",\r
+DlgDocMetaTab          : "Metadata",\r
+\r
+DlgDocPageTitle                : "Sidetitel",\r
+DlgDocLangDir          : "Sprog",\r
+DlgDocLangDirLTR       : "Fra venstre mod højre (LTR)",\r
+DlgDocLangDirRTL       : "Fra højre mod venstre (RTL)",\r
+DlgDocLangCode         : "Landekode",\r
+DlgDocCharSet          : "Tegnsæt kode",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Anden tegnsæt kode",\r
+\r
+DlgDocDocType          : "Dokumenttype kategori",\r
+DlgDocDocTypeOther     : "Anden dokumenttype kategori",\r
+DlgDocIncXHTML         : "Inkludere XHTML deklartion",\r
+DlgDocBgColor          : "Baggrundsfarve",\r
+DlgDocBgImage          : "Baggrundsbillede URL",\r
+DlgDocBgNoScroll       : "Fastlåst baggrund",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Hyperlink",\r
+DlgDocCVisited         : "Besøgt hyperlink",\r
+DlgDocCActive          : "Aktivt hyperlink",\r
+DlgDocMargins          : "Sidemargen",\r
+DlgDocMaTop                    : "Øverst",\r
+DlgDocMaLeft           : "Venstre",\r
+DlgDocMaRight          : "Højre",\r
+DlgDocMaBottom         : "Nederst",\r
+DlgDocMeIndex          : "Dokument index nøgleord (kommasepareret)",\r
+DlgDocMeDescr          : "Dokument beskrivelse",\r
+DlgDocMeAuthor         : "Forfatter",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Vis",\r
+\r
+// Templates Dialog\r
+Templates                      : "Skabeloner",\r
+DlgTemplatesTitle      : "Indholdsskabeloner",\r
+DlgTemplatesSelMsg     : "Vælg den skabelon, som skal åbnes i editoren.<br>(Nuværende indhold vil blive overskrevet!):",\r
+DlgTemplatesLoading    : "Henter liste over skabeloner...",\r
+DlgTemplatesNoTpl      : "(Der er ikke defineret nogen skabelon!)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Om",\r
+DlgAboutBrowserInfoTab : "Generelt",\r
+DlgAboutLicenseTab     : "Licens",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "For yderlig information gå til"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/de.js b/httemplate/elements/fckeditor/editor/lang/de.js
new file mode 100644 (file)
index 0000000..2848d34
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * German language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Symbolleiste einklappen",\r
+ToolbarExpand          : "Symbolleiste ausklappen",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Speichern",\r
+NewPage                                : "Neue Seite",\r
+Preview                                : "Vorschau",\r
+Cut                                    : "Ausschneiden",\r
+Copy                           : "Kopieren",\r
+Paste                          : "Einfügen",\r
+PasteText                      : "aus Textdatei einfügen",\r
+PasteWord                      : "aus MS-Word einfügen",\r
+Print                          : "Drucken",\r
+SelectAll                      : "Alles auswählen",\r
+RemoveFormat           : "Formatierungen entfernen",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Link einfügen/editieren",\r
+RemoveLink                     : "Link entfernen",\r
+Anchor                         : "Anker einfügen/editieren",\r
+InsertImageLbl         : "Bild",\r
+InsertImage                    : "Bild einfügen/editieren",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash einfügen/editieren",\r
+InsertTableLbl         : "Tabelle",\r
+InsertTable                    : "Tabelle einfügen/editieren",\r
+InsertLineLbl          : "Linie",\r
+InsertLine                     : "Horizontale Linie einfügen",\r
+InsertSpecialCharLbl: "Sonderzeichen",\r
+InsertSpecialChar      : "Sonderzeichen einfügen/editieren",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Smiley einfügen",\r
+About                          : "Über FCKeditor",\r
+Bold                           : "Fett",\r
+Italic                         : "Kursiv",\r
+Underline                      : "Unterstrichen",\r
+StrikeThrough          : "Durchgestrichen",\r
+Subscript                      : "Tiefgestellt",\r
+Superscript                    : "Hochgestellt",\r
+LeftJustify                    : "Linksbündig",\r
+CenterJustify          : "Zentriert",\r
+RightJustify           : "Rechtsbündig",\r
+BlockJustify           : "Blocksatz",\r
+DecreaseIndent         : "Einzug verringern",\r
+IncreaseIndent         : "Einzug erhöhen",\r
+Undo                           : "Rückgängig",\r
+Redo                           : "Wiederherstellen",\r
+NumberedListLbl                : "Nummerierte Liste",\r
+NumberedList           : "Nummerierte Liste einfügen/entfernen",\r
+BulletedListLbl                : "Liste",\r
+BulletedList           : "Liste einfügen/entfernen",\r
+ShowTableBorders       : "Zeige Tabellenrahmen",\r
+ShowDetails                    : "Zeige Details",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Schriftart",\r
+FontSize                       : "Größe",\r
+TextColor                      : "Textfarbe",\r
+BGColor                                : "Hintergrundfarbe",\r
+Source                         : "Quellcode",\r
+Find                           : "Finden",\r
+Replace                                : "Ersetzen",\r
+SpellCheck                     : "Rechtschreibprüfung",\r
+UniversalKeyboard      : "Universal-Tastatur",\r
+PageBreakLbl           : "Seitenumbruch",\r
+PageBreak                      : "Seitenumbruch einfügen",\r
+\r
+Form                   : "Formular",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radiobutton",\r
+TextField              : "Textfeld einzeilig",\r
+Textarea               : "Textfeld mehrzeilig",\r
+HiddenField            : "verstecktes Feld",\r
+Button                 : "Klickbutton",\r
+SelectionField : "Auswahlfeld",\r
+ImageButton            : "Bildbutton",\r
+\r
+FitWindow              : "Editor maximieren",\r
+\r
+// Context Menu\r
+EditLink                       : "Link editieren",\r
+CellCM                         : "Zelle",\r
+RowCM                          : "Zeile",\r
+ColumnCM                       : "Spalte",\r
+InsertRow                      : "Zeile einfügen",\r
+DeleteRows                     : "Zeile entfernen",\r
+InsertColumn           : "Spalte einfügen",\r
+DeleteColumns          : "Spalte löschen",\r
+InsertCell                     : "Zelle einfügen",\r
+DeleteCells                    : "Zelle löschen",\r
+MergeCells                     : "Zellen vereinen",\r
+SplitCell                      : "Zelle teilen",\r
+TableDelete                    : "Tabelle löschen",\r
+CellProperties         : "Zellen Eigenschaften",\r
+TableProperties                : "Tabellen Eigenschaften",\r
+ImageProperties                : "Bild Eigenschaften",\r
+FlashProperties                : "Flash Eigenschaften",\r
+\r
+AnchorProp                     : "Anker Eigenschaften",\r
+ButtonProp                     : "Button Eigenschaften",\r
+CheckboxProp           : "Checkbox Eigenschaften",\r
+HiddenFieldProp                : "Verstecktes Feld Eigenschaften",\r
+RadioButtonProp                : "Optionsfeld Eigenschaften",\r
+ImageButtonProp                : "Bildbutton Eigenschaften",\r
+TextFieldProp          : "Textfeld (einzeilig) Eigenschaften",\r
+SelectionFieldProp     : "Auswahlfeld Eigenschaften",\r
+TextareaProp           : "Textfeld (mehrzeilig) Eigenschaften",\r
+FormProp                       : "Formular Eigenschaften",\r
+\r
+FontFormats                    : "Normal;Formatiert;Addresse;Überschrift 1;Überschrift 2;Überschrift 3;Überschrift 4;Überschrift 5;Überschrift 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Bearbeite XHTML. Bitte warten...",\r
+Done                           : "Fertig",\r
+PasteWordConfirm       : "Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?",\r
+NotCompatiblePaste     : "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur Verfügung. Möchten Sie den Text unbereinigt einfügen?",\r
+UnknownToolbarItem     : "Unbekanntes Menüleisten-Objekt \"%1\"",\r
+UnknownCommand         : "Unbekannter Befehl \"%1\"",\r
+NotImplemented         : "Befehl nicht implementiert",\r
+UnknownToolbarSet      : "Menüleiste \"%1\" existiert nicht",\r
+NoActiveX                      : "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können",\r
+BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",\r
+DialogBlocked          : "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Abbrechen",\r
+DlgBtnClose                    : "Schließen",\r
+DlgBtnBrowseServer     : "Server durchsuchen",\r
+DlgAdvancedTag         : "Erweitert",\r
+DlgOpOther                     : "<andere>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Bitte tragen Sie die URL ein",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "< nichts >",\r
+DlgGenId                       : "ID",\r
+DlgGenLangDir          : "Schreibrichtung",\r
+DlgGenLangDirLtr       : "Links nach Rechts (LTR)",\r
+DlgGenLangDirRtl       : "Rechts nach Links (RTL)",\r
+DlgGenLangCode         : "Sprachenkürzel",\r
+DlgGenAccessKey                : "Schlüssel",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Langform URL",\r
+DlgGenClass                    : "Stylesheet Klasse",\r
+DlgGenTitle                    : "Titel Beschreibung",\r
+DlgGenContType         : "Content Beschreibung",\r
+DlgGenLinkCharset      : "Ziel-Zeichensatz",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Bild Eigenschaften",\r
+DlgImgInfoTab          : "Bild-Info",\r
+DlgImgBtnUpload                : "Zum Server senden",\r
+DlgImgURL                      : "Bildauswahl",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternativer Text",\r
+DlgImgWidth                    : "Breite",\r
+DlgImgHeight           : "Höhe",\r
+DlgImgLockRatio                : "Größenverhältniss beibehalten",\r
+DlgBtnResetSize                : "Größe zurücksetzen",\r
+DlgImgBorder           : "Rahmen",\r
+DlgImgHSpace           : "H-Abstand",\r
+DlgImgVSpace           : "V-Abstand",\r
+DlgImgAlign                    : "Ausrichtung",\r
+DlgImgAlignLeft                : "Links",\r
+DlgImgAlignAbsBottom: "Abs Unten",\r
+DlgImgAlignAbsMiddle: "Abs Mitte",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Unten",\r
+DlgImgAlignMiddle      : "Mitte",\r
+DlgImgAlignRight       : "Rechts",\r
+DlgImgAlignTextTop     : "Text Oben",\r
+DlgImgAlignTop         : "Oben",\r
+DlgImgPreview          : "Vorschau",\r
+DlgImgAlertUrl         : "Bitte geben Sie die Bild-URL an",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Eigenschaften",\r
+DlgFlashChkPlay                : "autom. Abspielen",\r
+DlgFlashChkLoop                : "Endlosschleife",\r
+DlgFlashChkMenu                : "Flash-Menü aktivieren",\r
+DlgFlashScale          : "Skalierung",\r
+DlgFlashScaleAll       : "Alles anzeigen",\r
+DlgFlashScaleNoBorder  : "ohne Rand",\r
+DlgFlashScaleFit       : "Passgenau",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Zielseite",\r
+\r
+DlgLnkType                     : "Link-Typ",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Anker in dieser Seite",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<anderes>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Anker auswählen",\r
+DlgLnkAnchorByName     : "nach Anker Name",\r
+DlgLnkAnchorById       : "nach Element Id",\r
+DlgLnkNoAnchors                : "<keine Anker im Dokument vorhanden>",                //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Addresse",\r
+DlgLnkEMailSubject     : "Betreffzeile",\r
+DlgLnkEMailBody                : "Nachrichtentext",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Zum Server senden",\r
+\r
+DlgLnkTarget           : "Zielseite",\r
+DlgLnkTargetFrame      : "<Frame>",\r
+DlgLnkTargetPopup      : "<Pop-up Fenster>",\r
+DlgLnkTargetBlank      : "Neues Fenster (_blank)",\r
+DlgLnkTargetParent     : "Oberes Fenster (_parent)",\r
+DlgLnkTargetSelf       : "Gleiches Fenster (_self)",\r
+DlgLnkTargetTop                : "Oberstes Fenster (_top)",\r
+DlgLnkTargetFrameName  : "Ziel-Fenster Name",\r
+DlgLnkPopWinName       : "Pop-up Fenster Name",\r
+DlgLnkPopWinFeat       : "Pop-up Fenster Eigenschaften",\r
+DlgLnkPopResize                : "Vergrößerbar",\r
+DlgLnkPopLocation      : "Adress-Leiste",\r
+DlgLnkPopMenu          : "Menü-Leiste",\r
+DlgLnkPopScroll                : "Rollbalken",\r
+DlgLnkPopStatus                : "Statusleiste",\r
+DlgLnkPopToolbar       : "Werkzeugleiste",\r
+DlgLnkPopFullScrn      : "Vollbild (IE)",\r
+DlgLnkPopDependent     : "Abhängig (Netscape)",\r
+DlgLnkPopWidth         : "Breite",\r
+DlgLnkPopHeight                : "Höhe",\r
+DlgLnkPopLeft          : "Linke Position",\r
+DlgLnkPopTop           : "Obere Position",\r
+\r
+DlnLnkMsgNoUrl         : "Bitte geben Sie die Link-URL an",\r
+DlnLnkMsgNoEMail       : "Bitte geben Sie e-Mail Adresse an",\r
+DlnLnkMsgNoAnchor      : "Bitte wählen Sie einen Anker aus",\r
+DlnLnkMsgInvPopName    : "Der Name des Popups muss mit einem Buchstaben beginnen und darf keine Leerzeichen enthalten",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Farbauswahl",\r
+DlgColorBtnClear       : "Keine Farbe",\r
+DlgColorHighlight      : "Vorschau",\r
+DlgColorSelected       : "Ausgewählt",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Smiley auswählen",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Sonderzeichen auswählen",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabellen Eigenschaften",\r
+DlgTableRows           : "Zeile",\r
+DlgTableColumns                : "Spalte",\r
+DlgTableBorder         : "Rahmen",\r
+DlgTableAlign          : "Ausrichtung",\r
+DlgTableAlignNotSet    : "<nichts>",\r
+DlgTableAlignLeft      : "Links",\r
+DlgTableAlignCenter    : "Zentriert",\r
+DlgTableAlignRight     : "Rechts",\r
+DlgTableWidth          : "Breite",\r
+DlgTableWidthPx                : "Pixel",\r
+DlgTableWidthPc                : "%",\r
+DlgTableHeight         : "Höhe",\r
+DlgTableCellSpace      : "Zellenabstand außen",\r
+DlgTableCellPad                : "Zellenabstand innen",\r
+DlgTableCaption                : "Überschrift",\r
+DlgTableSummary                : "Inhaltsübersicht",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Zellen-Eigenschaften",\r
+DlgCellWidth           : "Breite",\r
+DlgCellWidthPx         : "Pixel",\r
+DlgCellWidthPc         : "%",\r
+DlgCellHeight          : "Höhe",\r
+DlgCellWordWrap                : "Umbruch",\r
+DlgCellWordWrapNotSet  : "<nichts>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nein",\r
+DlgCellHorAlign                : "Horizontale Ausrichtung",\r
+DlgCellHorAlignNotSet  : "<nichts>",\r
+DlgCellHorAlignLeft    : "Links",\r
+DlgCellHorAlignCenter  : "Zentriert",\r
+DlgCellHorAlignRight: "Rechts",\r
+DlgCellVerAlign                : "Vertikale Ausrichtung",\r
+DlgCellVerAlignNotSet  : "<nichts>",\r
+DlgCellVerAlignTop     : "Oben",\r
+DlgCellVerAlignMiddle  : "Mitte",\r
+DlgCellVerAlignBottom  : "Unten",\r
+DlgCellVerAlignBaseline        : "Grundlinie",\r
+DlgCellRowSpan         : "Zeilen zusammenfassen",\r
+DlgCellCollSpan                : "Spalten zusammenfassen",\r
+DlgCellBackColor       : "Hintergrundfarbe",\r
+DlgCellBorderColor     : "Rahmenfarbe",\r
+DlgCellBtnSelect       : "Auswahl...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Finden",\r
+DlgFindFindBtn         : "Finden",\r
+DlgFindNotFoundMsg     : "Der gesuchte Text wurde nicht gefunden.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Ersetzen",\r
+DlgReplaceFindLbl              : "Suche nach:",\r
+DlgReplaceReplaceLbl   : "Ersetze mit:",\r
+DlgReplaceCaseChk              : "Groß-Kleinschreibung beachten",\r
+DlgReplaceReplaceBtn   : "Ersetzen",\r
+DlgReplaceReplAllBtn   : "Alle Ersetzen",\r
+DlgReplaceWordChk              : "Nur ganze Worte suchen",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).",\r
+PasteErrorCopy : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).",\r
+\r
+PasteAsText            : "Als Text einfügen",\r
+PasteFromWord  : "Aus Word einfügen",\r
+\r
+DlgPasteMsg2   : "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Ctrl+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoriere Schriftart-Definitionen",\r
+DlgPasteRemoveStyles   : "Entferne Style-Definitionen",\r
+DlgPasteCleanBox               : "Inhalt aufräumen",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisch",\r
+ColorMoreColors        : "Weitere Farben...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokument Eigenschaften",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anker Eigenschaften",\r
+DlgAnchorName          : "Anker Name",\r
+DlgAnchorErrorName     : "Bitte geben Sie den Namen des Ankers ein",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nicht im Wörterbuch",\r
+DlgSpellChangeTo               : "Ändern in",\r
+DlgSpellBtnIgnore              : "Ignorieren",\r
+DlgSpellBtnIgnoreAll   : "Alle Ignorieren",\r
+DlgSpellBtnReplace             : "Ersetzen",\r
+DlgSpellBtnReplaceAll  : "Alle Ersetzen",\r
+DlgSpellBtnUndo                        : "Rückgängig",\r
+DlgSpellNoSuggestions  : " - keine Vorschläge - ",\r
+DlgSpellProgress               : "Rechtschreibprüfung läuft...",\r
+DlgSpellNoMispell              : "Rechtschreibprüfung abgeschlossen - keine Fehler gefunden",\r
+DlgSpellNoChanges              : "Rechtschreibprüfung abgeschlossen - keine Worte geändert",\r
+DlgSpellOneChange              : "Rechtschreibprüfung abgeschlossen - ein Wort geändert",\r
+DlgSpellManyChanges            : "Rechtschreibprüfung abgeschlossen - %1 Wörter geändert",\r
+\r
+IeSpellDownload                        : "Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Wert)",\r
+DlgButtonType          : "Typ",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Absenden",\r
+DlgButtonTypeRst       : "Zurücksetzen",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",\r
+DlgCheckboxValue       : "Wert",\r
+DlgCheckboxSelected    : "ausgewählt",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",\r
+DlgSelectValue         : "Wert",\r
+DlgSelectSize          : "Größe",\r
+DlgSelectLines         : "Linien",\r
+DlgSelectChkMulti      : "Erlaube Mehrfachauswahl",\r
+DlgSelectOpAvail       : "Mögliche Optionen",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Wert",\r
+DlgSelectBtnAdd                : "Hinzufügen",\r
+DlgSelectBtnModify     : "Ändern",\r
+DlgSelectBtnUp         : "Hoch",\r
+DlgSelectBtnDown       : "Runter",\r
+DlgSelectBtnSetValue : "Setze als Standardwert",\r
+DlgSelectBtnDelete     : "Entfernen",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",\r
+DlgTextareaCols        : "Spalten",\r
+DlgTextareaRows        : "Reihen",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",\r
+DlgTextValue           : "Wert",\r
+DlgTextCharWidth       : "Zeichenbreite",\r
+DlgTextMaxChars                : "Max. Zeichen",\r
+DlgTextType                    : "Typ",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Passwort",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",\r
+DlgHiddenValue : "Wert",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Listen-Eigenschaften",\r
+NumberedListProp       : "Nummerierte Listen-Eigenschaften",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Typ",\r
+DlgLstTypeCircle       : "Ring",\r
+DlgLstTypeDisc         : "Kreis",\r
+DlgLstTypeSquare       : "Quadrat",\r
+DlgLstTypeNumbers      : "Nummern (1, 2, 3)",\r
+DlgLstTypeLCase                : "Kleinbuchstaben (a, b, c)",\r
+DlgLstTypeUCase                : "Großbuchstaben (A, B, C)",\r
+DlgLstTypeSRoman       : "Kleine römische Zahlen (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Große römische Zahlen (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Allgemein",\r
+DlgDocBackTab          : "Hintergrund",\r
+DlgDocColorsTab                : "Farben und Abstände",\r
+DlgDocMetaTab          : "Metadaten",\r
+\r
+DlgDocPageTitle                : "Seitentitel",\r
+DlgDocLangDir          : "Schriftrichtung",\r
+DlgDocLangDirLTR       : "Links nach Rechts",\r
+DlgDocLangDirRTL       : "Rechts nach Links",\r
+DlgDocLangCode         : "Sprachkürzel",\r
+DlgDocCharSet          : "Zeichenkodierung",\r
+DlgDocCharSetCE                : "Zentraleuropäisch",\r
+DlgDocCharSetCT                : "traditionell Chinesisch (Big5)",\r
+DlgDocCharSetCR                : "Kyrillisch",\r
+DlgDocCharSetGR                : "Griechisch",\r
+DlgDocCharSetJP                : "Japanisch",\r
+DlgDocCharSetKR                : "Koreanisch",\r
+DlgDocCharSetTR                : "Türkisch",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Westeuropäisch",\r
+DlgDocCharSetOther     : "Andere Zeichenkodierung",\r
+\r
+DlgDocDocType          : "Dokumententyp",\r
+DlgDocDocTypeOther     : "Anderer Dokumententyp",\r
+DlgDocIncXHTML         : "Beziehe XHTML Deklarationen ein",\r
+DlgDocBgColor          : "Hintergrundfarbe",\r
+DlgDocBgImage          : "Hintergrundbild URL",\r
+DlgDocBgNoScroll       : "feststehender Hintergrund",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Besuchter Link",\r
+DlgDocCActive          : "Aktiver Link",\r
+DlgDocMargins          : "Seitenränder",\r
+DlgDocMaTop                    : "Oben",\r
+DlgDocMaLeft           : "Links",\r
+DlgDocMaRight          : "Rechts",\r
+DlgDocMaBottom         : "Unten",\r
+DlgDocMeIndex          : "Schlüsselwörter (durch Komma getrennt)",\r
+DlgDocMeDescr          : "Dokument-Beschreibung",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Vorschau",\r
+\r
+// Templates Dialog\r
+Templates                      : "Vorlagen",\r
+DlgTemplatesTitle      : "Vorlagen",\r
+DlgTemplatesSelMsg     : "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",\r
+DlgTemplatesLoading    : "Liste der Vorlagen wird geladen. Bitte warten...",\r
+DlgTemplatesNoTpl      : "(keine Vorlagen definiert)",\r
+DlgTemplatesReplace    : "Aktuellen Inhalt ersetzen",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Über",\r
+DlgAboutBrowserInfoTab : "Browser-Info",\r
+DlgAboutLicenseTab     : "Lizenz",\r
+DlgAboutVersion                : "Version",\r
+DlgAboutInfo           : "Für weitere Informationen siehe"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/el.js b/httemplate/elements/fckeditor/editor/lang/el.js
new file mode 100644 (file)
index 0000000..90fefc4
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Greek language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Απόκρυψη Μπάρας Εργαλείων",\r
+ToolbarExpand          : "Εμφάνιση Μπάρας Εργαλείων",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Αποθήκευση",\r
+NewPage                                : "Νέα Σελίδα",\r
+Preview                                : "Προεπισκόπιση",\r
+Cut                                    : "Αποκοπή",\r
+Copy                           : "Αντιγραφή",\r
+Paste                          : "Επικόλληση",\r
+PasteText                      : "Επικόλληση (απλό κείμενο)",\r
+PasteWord                      : "Επικόλληση από το Word",\r
+Print                          : "Εκτύπωση",\r
+SelectAll                      : "Επιλογή όλων",\r
+RemoveFormat           : "Αφαίρεση Μορφοποίησης",\r
+InsertLinkLbl          : "Σύνδεσμος (Link)",\r
+InsertLink                     : "Εισαγωγή/Μεταβολή Συνδέσμου (Link)",\r
+RemoveLink                     : "Αφαίρεση Συνδέσμου (Link)",\r
+Anchor                         : "Εισαγωγή/επεξεργασία Anchor",\r
+InsertImageLbl         : "Εικόνα",\r
+InsertImage                    : "Εισαγωγή/Μεταβολή Εικόνας",\r
+InsertFlashLbl         : "Εισαγωγή Flash",\r
+InsertFlash                    : "Εισαγωγή/επεξεργασία Flash",\r
+InsertTableLbl         : "Πίνακας",\r
+InsertTable                    : "Εισαγωγή/Μεταβολή Πίνακα",\r
+InsertLineLbl          : "Γραμμή",\r
+InsertLine                     : "Εισαγωγή Οριζόντιας Γραμμής",\r
+InsertSpecialCharLbl: "Ειδικό Σύμβολο",\r
+InsertSpecialChar      : "Εισαγωγή Ειδικού Συμβόλου",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Εισαγωγή Smiley",\r
+About                          : "Περί του FCKeditor",\r
+Bold                           : "Έντονα",\r
+Italic                         : "Πλάγια",\r
+Underline                      : "Υπογράμμιση",\r
+StrikeThrough          : "Διαγράμμιση",\r
+Subscript                      : "Δείκτης",\r
+Superscript                    : "Εκθέτης",\r
+LeftJustify                    : "Στοίχιση Αριστερά",\r
+CenterJustify          : "Στοίχιση στο Κέντρο",\r
+RightJustify           : "Στοίχιση Δεξιά",\r
+BlockJustify           : "Πλήρης Στοίχιση (Block)",\r
+DecreaseIndent         : "Μείωση Εσοχής",\r
+IncreaseIndent         : "Αύξηση Εσοχής",\r
+Undo                           : "Αναίρεση",\r
+Redo                           : "Επαναφορά",\r
+NumberedListLbl                : "Λίστα με Αριθμούς",\r
+NumberedList           : "Εισαγωγή/Διαγραφή Λίστας με Αριθμούς",\r
+BulletedListLbl                : "Λίστα με Bullets",\r
+BulletedList           : "Εισαγωγή/Διαγραφή Λίστας με Bullets",\r
+ShowTableBorders       : "Προβολή Ορίων Πίνακα",\r
+ShowDetails                    : "Προβολή Λεπτομερειών",\r
+Style                          : "Στυλ",\r
+FontFormat                     : "Μορφή Γραμματοσειράς",\r
+Font                           : "Γραμματοσειρά",\r
+FontSize                       : "Μέγεθος",\r
+TextColor                      : "Χρώμα Γραμμάτων",\r
+BGColor                                : "Χρώμα Υποβάθρου",\r
+Source                         : "HTML κώδικας",\r
+Find                           : "Αναζήτηση",\r
+Replace                                : "Αντικατάσταση",\r
+SpellCheck                     : "Ορθογραφικός έλεγχος",\r
+UniversalKeyboard      : "Διεθνής πληκτρολόγιο",\r
+PageBreakLbl           : "Τέλος σελίδας",\r
+PageBreak                      : "Εισαγωγή τέλους σελίδας",\r
+\r
+Form                   : "Φόρμα",\r
+Checkbox               : "Κουτί επιλογής",\r
+RadioButton            : "Κουμπί Radio",\r
+TextField              : "Πεδίο κειμένου",\r
+Textarea               : "Περιοχή κειμένου",\r
+HiddenField            : "Κρυφό πεδίο",\r
+Button                 : "Κουμπί",\r
+SelectionField : "Πεδίο επιλογής",\r
+ImageButton            : "Κουμπί εικόνας",\r
+\r
+FitWindow              : "Μεγιστοποίηση προγράμματος",\r
+\r
+// Context Menu\r
+EditLink                       : "Μεταβολή Συνδέσμου (Link)",\r
+CellCM                         : "Κελί",\r
+RowCM                          : "Σειρά",\r
+ColumnCM                       : "Στήλη",\r
+InsertRow                      : "Εισαγωγή Γραμμής",\r
+DeleteRows                     : "Διαγραφή Γραμμών",\r
+InsertColumn           : "Εισαγωγή Κολώνας",\r
+DeleteColumns          : "Διαγραφή Κολωνών",\r
+InsertCell                     : "Εισαγωγή Κελιού",\r
+DeleteCells                    : "Διαγραφή Κελιών",\r
+MergeCells                     : "Ενοποίηση Κελιών",\r
+SplitCell                      : "Διαχωρισμός Κελιού",\r
+TableDelete                    : "Διαγραφή πίνακα",\r
+CellProperties         : "Ιδιότητες Κελιού",\r
+TableProperties                : "Ιδιότητες Πίνακα",\r
+ImageProperties                : "Ιδιότητες Εικόνας",\r
+FlashProperties                : "Ιδιότητες Flash",\r
+\r
+AnchorProp                     : "Ιδιότητες άγκυρας",\r
+ButtonProp                     : "Ιδιότητες κουμπιού",\r
+CheckboxProp           : "Ιδιότητες κουμπιού επιλογής",\r
+HiddenFieldProp                : "Ιδιότητες κρυφού πεδίου",\r
+RadioButtonProp                : "Ιδιότητες κουμπιού radio",\r
+ImageButtonProp                : "Ιδιότητες κουμπιού εικόνας",\r
+TextFieldProp          : "Ιδιότητες πεδίου κειμένου",\r
+SelectionFieldProp     : "Ιδιότητες πεδίου επιλογής",\r
+TextareaProp           : "Ιδιότητες περιοχής κειμένου",\r
+FormProp                       : "Ιδιότητες φόρμας",\r
+\r
+FontFormats                    : "Κανονικό;Μορφοποιημένο;Διεύθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Επεξεργασία XHTML. Παρακαλώ περιμένετε...",\r
+Done                           : "Έτοιμο",\r
+PasteWordConfirm       : "Το κείμενο που θέλετε να επικολήσετε, φαίνεται πως προέρχεται από το Word. Θέλετε να καθαριστεί πριν επικοληθεί;",\r
+NotCompatiblePaste     : "Αυτή η επιλογή είναι διαθέσιμη στον Internet Explorer έκδοση 5.5+. Θέλετε να γίνει η επικόλληση χωρίς καθαρισμό;",\r
+UnknownToolbarItem     : "Άγνωστο αντικείμενο της μπάρας εργαλείων \"%1\"",\r
+UnknownCommand         : "Άγνωστή εντολή \"%1\"",\r
+NotImplemented         : "Η εντολή δεν έχει ενεργοποιηθεί",\r
+UnknownToolbarSet      : "Η μπάρα εργαλείων \"%1\" δεν υπάρχει",\r
+NoActiveX                      : "Οι ρυθμίσεις ασφαλείας του browser σας μπορεί να περιορίσουν κάποιες ρυθμίσεις του προγράμματος. Χρειάζεται να ενεργοποιήσετε την επιλογή \"Run ActiveX controls and plug-ins\". Ίσως παρουσιαστούν λάθη και παρατηρήσετε ελειπείς λειτουργίες.",\r
+BrowseServerBlocked : "Οι πόροι του browser σας δεν είναι προσπελάσιμοι. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",\r
+DialogBlocked          : "Δεν ήταν δυνατό να ανοίξει το παράθυρο διαλόγου. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Ακύρωση",\r
+DlgBtnClose                    : "Κλείσιμο",\r
+DlgBtnBrowseServer     : "Εξερεύνηση διακομιστή",\r
+DlgAdvancedTag         : "Για προχωρημένους",\r
+DlgOpOther                     : "<Άλλα>",\r
+DlgInfoTab                     : "Πληροφορίες",\r
+DlgAlertUrl                    : "Παρακαλώ εισάγετε URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<χωρίς>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Κατεύθυνση κειμένου",\r
+DlgGenLangDirLtr       : "Αριστερά προς Δεξιά (LTR)",\r
+DlgGenLangDirRtl       : "Δεξιά προς Αριστερά (RTL)",\r
+DlgGenLangCode         : "Κωδικός Γλώσσας",\r
+DlgGenAccessKey                : "Συντόμευση (Access Key)",\r
+DlgGenName                     : "Όνομα",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Αναλυτική περιγραφή URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Συμβουλευτικός τίτλος",\r
+DlgGenContType         : "Συμβουλευτικός τίτλος περιεχομένου",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Στύλ",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Ιδιότητες Εικόνας",\r
+DlgImgInfoTab          : "Πληροφορίες Εικόνας",\r
+DlgImgBtnUpload                : "Αποστολή στον Διακομιστή",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Αποστολή",\r
+DlgImgAlt                      : "Εναλλακτικό Κείμενο (ALT)",\r
+DlgImgWidth                    : "Πλάτος",\r
+DlgImgHeight           : "Ύψος",\r
+DlgImgLockRatio                : "Κλείδωμα Αναλογίας",\r
+DlgBtnResetSize                : "Επαναφορά Αρχικού Μεγέθους",\r
+DlgImgBorder           : "Περιθώριο",\r
+DlgImgHSpace           : "Οριζόντιος Χώρος (HSpace)",\r
+DlgImgVSpace           : "Κάθετος Χώρος (VSpace)",\r
+DlgImgAlign                    : "Ευθυγράμμιση (Align)",\r
+DlgImgAlignLeft                : "Αριστερά",\r
+DlgImgAlignAbsBottom: "Απόλυτα Κάτω (Abs Bottom)",\r
+DlgImgAlignAbsMiddle: "Απόλυτα στη Μέση (Abs Middle)",\r
+DlgImgAlignBaseline    : "Γραμμή Βάσης (Baseline)",\r
+DlgImgAlignBottom      : "Κάτω (Bottom)",\r
+DlgImgAlignMiddle      : "Μέση (Middle)",\r
+DlgImgAlignRight       : "Δεξιά (Right)",\r
+DlgImgAlignTextTop     : "Κορυφή Κειμένου (Text Top)",\r
+DlgImgAlignTop         : "Πάνω (Top)",\r
+DlgImgPreview          : "Προεπισκόπιση",\r
+DlgImgAlertUrl         : "Εισάγετε την τοποθεσία (URL) της εικόνας",\r
+DlgImgLinkTab          : "Σύνδεσμος",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Ιδιότητες flash",\r
+DlgFlashChkPlay                : "Αυτόματη έναρξη",\r
+DlgFlashChkLoop                : "Επανάληψη",\r
+DlgFlashChkMenu                : "Ενεργοποίηση Flash Menu",\r
+DlgFlashScale          : "Κλίμακα",\r
+DlgFlashScaleAll       : "Εμφάνιση όλων",\r
+DlgFlashScaleNoBorder  : "Χωρίς όρια",\r
+DlgFlashScaleFit       : "Ακριβής εφαρμογή",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Σύνδεσμος (Link)",\r
+DlgLnkInfoTab          : "Link",\r
+DlgLnkTargetTab                : "Παράθυρο Στόχος (Target)",\r
+\r
+DlgLnkType                     : "Τύπος συνδέσμου (Link)",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Άγκυρα σε αυτή τη σελίδα",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Προτόκολο",\r
+DlgLnkProtoOther       : "<άλλο>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Επιλέξτε μια άγκυρα",\r
+DlgLnkAnchorByName     : "Βάσει του Ονόματος (Name) της άγκυρας",\r
+DlgLnkAnchorById       : "Βάσει του Element Id",\r
+DlgLnkNoAnchors                : "<Δεν υπάρχουν άγκυρες στο κείμενο>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Διεύθυνση Ηλεκτρονικού Ταχυδρομείου",\r
+DlgLnkEMailSubject     : "Θέμα Μηνύματος",\r
+DlgLnkEMailBody                : "Κείμενο Μηνύματος",\r
+DlgLnkUpload           : "Αποστολή",\r
+DlgLnkBtnUpload                : "Αποστολή στον Διακομιστή",\r
+\r
+DlgLnkTarget           : "Παράθυρο Στόχος (Target)",\r
+DlgLnkTargetFrame      : "<πλαίσιο>",\r
+DlgLnkTargetPopup      : "<παράθυρο popup>",\r
+DlgLnkTargetBlank      : "Νέο Παράθυρο (_blank)",\r
+DlgLnkTargetParent     : "Γονικό Παράθυρο (_parent)",\r
+DlgLnkTargetSelf       : "Ίδιο Παράθυρο (_self)",\r
+DlgLnkTargetTop                : "Ανώτατο Παράθυρο (_top)",\r
+DlgLnkTargetFrameName  : "Όνομα πλαισίου στόχου",\r
+DlgLnkPopWinName       : "Όνομα Popup Window",\r
+DlgLnkPopWinFeat       : "Επιλογές Popup Window",\r
+DlgLnkPopResize                : "Με αλλαγή Μεγέθους",\r
+DlgLnkPopLocation      : "Μπάρα Τοποθεσίας",\r
+DlgLnkPopMenu          : "Μπάρα Menu",\r
+DlgLnkPopScroll                : "Μπάρες Κύλισης",\r
+DlgLnkPopStatus                : "Μπάρα Status",\r
+DlgLnkPopToolbar       : "Μπάρα Εργαλείων",\r
+DlgLnkPopFullScrn      : "Ολόκληρη η Οθόνη (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Πλάτος",\r
+DlgLnkPopHeight                : "Ύψος",\r
+DlgLnkPopLeft          : "Τοποθεσία Αριστερής Άκρης",\r
+DlgLnkPopTop           : "Τοποθεσία Πάνω Άκρης",\r
+\r
+DlnLnkMsgNoUrl         : "Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",\r
+DlnLnkMsgNoEMail       : "Εισάγετε την διεύθυνση ηλεκτρονικού ταχυδρομείου",\r
+DlnLnkMsgNoAnchor      : "Επιλέξτε ένα Anchor",\r
+DlnLnkMsgInvPopName    : "Το όνομα του popup πρέπει να αρχίζει με χαρακτήρα της αλφαβήτου και να μην περιέχει κενά",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Επιλογή χρώματος",\r
+DlgColorBtnClear       : "Καθαρισμός",\r
+DlgColorHighlight      : "Προεπισκόπιση",\r
+DlgColorSelected       : "Επιλεγμένο",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Επιλέξτε ένα Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Επιλέξτε ένα Ειδικό Σύμβολο",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Ιδιότητες Πίνακα",\r
+DlgTableRows           : "Γραμμές",\r
+DlgTableColumns                : "Κολώνες",\r
+DlgTableBorder         : "Μέγεθος Περιθωρίου",\r
+DlgTableAlign          : "Στοίχιση",\r
+DlgTableAlignNotSet    : "<χωρίς>",\r
+DlgTableAlignLeft      : "Αριστερά",\r
+DlgTableAlignCenter    : "Κέντρο",\r
+DlgTableAlignRight     : "Δεξιά",\r
+DlgTableWidth          : "Πλάτος",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "\%",\r
+DlgTableHeight         : "Ύψος",\r
+DlgTableCellSpace      : "Απόσταση κελιών",\r
+DlgTableCellPad                : "Γέμισμα κελιών",\r
+DlgTableCaption                : "Υπέρτιτλος",\r
+DlgTableSummary                : "Περίληψη",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Ιδιότητες Κελιού",\r
+DlgCellWidth           : "Πλάτος",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "\%",\r
+DlgCellHeight          : "Ύψος",\r
+DlgCellWordWrap                : "Με αλλαγή γραμμής",\r
+DlgCellWordWrapNotSet  : "<χωρίς>",\r
+DlgCellWordWrapYes     : "Ναι",\r
+DlgCellWordWrapNo      : "Όχι",\r
+DlgCellHorAlign                : "Οριζόντια Στοίχιση",\r
+DlgCellHorAlignNotSet  : "<χωρίς>",\r
+DlgCellHorAlignLeft    : "Αριστερά",\r
+DlgCellHorAlignCenter  : "Κέντρο",\r
+DlgCellHorAlignRight: "Δεξιά",\r
+DlgCellVerAlign                : "Κάθετη Στοίχιση",\r
+DlgCellVerAlignNotSet  : "<χωρίς>",\r
+DlgCellVerAlignTop     : "Πάνω (Top)",\r
+DlgCellVerAlignMiddle  : "Μέση (Middle)",\r
+DlgCellVerAlignBottom  : "Κάτω (Bottom)",\r
+DlgCellVerAlignBaseline        : "Γραμμή Βάσης (Baseline)",\r
+DlgCellRowSpan         : "Αριθμός Γραμμών (Rows Span)",\r
+DlgCellCollSpan                : "Αριθμός Κολωνών (Columns Span)",\r
+DlgCellBackColor       : "Χρώμα Υποβάθρου",\r
+DlgCellBorderColor     : "Χρώμα Περιθωρίου",\r
+DlgCellBtnSelect       : "Επιλογή...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Αναζήτηση",\r
+DlgFindFindBtn         : "Αναζήτηση",\r
+DlgFindNotFoundMsg     : "Το κείμενο δεν βρέθηκε.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Αντικατάσταση",\r
+DlgReplaceFindLbl              : "Αναζήτηση:",\r
+DlgReplaceReplaceLbl   : "Αντικατάσταση με:",\r
+DlgReplaceCaseChk              : "Έλεγχος πεζών/κεφαλαίων",\r
+DlgReplaceReplaceBtn   : "Αντικατάσταση",\r
+DlgReplaceReplAllBtn   : "Αντικατάσταση Όλων",\r
+DlgReplaceWordChk              : "Εύρεση πλήρους λέξης",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+X).",\r
+PasteErrorCopy : "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+C).",\r
+\r
+PasteAsText            : "Επικόλληση ως Απλό Κείμενο",\r
+PasteFromWord  : "Επικόλληση από το Word",\r
+\r
+DlgPasteMsg2   : "Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Αγνόηση προδιαγραφών γραμματοσειράς",\r
+DlgPasteRemoveStyles   : "Αφαίρεση προδιαγραφών στύλ",\r
+DlgPasteCleanBox               : "Κουτί εκαθάρισης",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Αυτόματο",\r
+ColorMoreColors        : "Περισσότερα χρώματα...",\r
+\r
+// Document Properties\r
+DocProps               : "Ιδιότητες εγγράφου",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ιδιότητες άγκυρας",\r
+DlgAnchorName          : "Όνομα άγκυρας",\r
+DlgAnchorErrorName     : "Παρακαλούμε εισάγετε όνομα άγκυρας",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Δεν υπάρχει στο λεξικό",\r
+DlgSpellChangeTo               : "Αλλαγή σε",\r
+DlgSpellBtnIgnore              : "Αγνόηση",\r
+DlgSpellBtnIgnoreAll   : "Αγνόηση όλων",\r
+DlgSpellBtnReplace             : "Αντικατάσταση",\r
+DlgSpellBtnReplaceAll  : "Αντικατάσταση όλων",\r
+DlgSpellBtnUndo                        : "Αναίρεση",\r
+DlgSpellNoSuggestions  : "- Δεν υπάρχουν προτάσεις -",\r
+DlgSpellProgress               : "Ορθογραφικός έλεγχος σε εξέλιξη...",\r
+DlgSpellNoMispell              : "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν βρέθηκαν λάθη",\r
+DlgSpellNoChanges              : "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν άλλαξαν λέξεις",\r
+DlgSpellOneChange              : "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Μια λέξη άλλαξε",\r
+DlgSpellManyChanges            : "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: %1 λέξεις άλλαξαν",\r
+\r
+IeSpellDownload                        : "Δεν υπάρχει εγκατεστημένος ορθογράφος. Θέλετε να τον κατεβάσετε τώρα;",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Κείμενο (Τιμή)",\r
+DlgButtonType          : "Τύπος",\r
+DlgButtonTypeBtn       : "Κουμπί",\r
+DlgButtonTypeSbm       : "Καταχώρηση",\r
+DlgButtonTypeRst       : "Επαναφορά",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Όνομα",\r
+DlgCheckboxValue       : "Τιμή",\r
+DlgCheckboxSelected    : "Επιλεγμένο",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Όνομα",\r
+DlgFormAction  : "Δράση",\r
+DlgFormMethod  : "Μάθοδος",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Όνομα",\r
+DlgSelectValue         : "Τιμή",\r
+DlgSelectSize          : "Μέγεθος",\r
+DlgSelectLines         : "γραμμές",\r
+DlgSelectChkMulti      : "Πολλαπλές επιλογές",\r
+DlgSelectOpAvail       : "Διαθέσιμες επιλογές",\r
+DlgSelectOpText                : "Κείμενο",\r
+DlgSelectOpValue       : "Τιμή",\r
+DlgSelectBtnAdd                : "Προσθήκη",\r
+DlgSelectBtnModify     : "Αλλαγή",\r
+DlgSelectBtnUp         : "Πάνω",\r
+DlgSelectBtnDown       : "Κάτω",\r
+DlgSelectBtnSetValue : "Προεπιλεγμένη επιλογή",\r
+DlgSelectBtnDelete     : "Διαγραφή",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Όνομα",\r
+DlgTextareaCols        : "Στήλες",\r
+DlgTextareaRows        : "Σειρές",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Όνομα",\r
+DlgTextValue           : "Τιμή",\r
+DlgTextCharWidth       : "Μήκος χαρακτήρων",\r
+DlgTextMaxChars                : "Μέγιστοι χαρακτήρες",\r
+DlgTextType                    : "Τύπος",\r
+DlgTextTypeText                : "Κείμενο",\r
+DlgTextTypePass                : "Κωδικός",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Όνομα",\r
+DlgHiddenValue : "Τιμή",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Ιδιότητες λίστας Bulleted",\r
+NumberedListProp       : "Ιδιότητες αριθμημένης λίστας ",\r
+DlgLstStart                    : "Αρχή",\r
+DlgLstType                     : "Τύπος",\r
+DlgLstTypeCircle       : "Κύκλος",\r
+DlgLstTypeDisc         : "Δίσκος",\r
+DlgLstTypeSquare       : "Τετράγωνο",\r
+DlgLstTypeNumbers      : "Αριθμοί (1, 2, 3)",\r
+DlgLstTypeLCase                : "Πεζά γράμματα (a, b, c)",\r
+DlgLstTypeUCase                : "Κεφαλαία γράμματα (A, B, C)",\r
+DlgLstTypeSRoman       : "Μικρά λατινικά αριθμητικά (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Μεγάλα λατινικά αριθμητικά (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Γενικά",\r
+DlgDocBackTab          : "Φόντο",\r
+DlgDocColorsTab                : "Χρώματα και περιθώρια",\r
+DlgDocMetaTab          : "Δεδομένα Meta",\r
+\r
+DlgDocPageTitle                : "Τίτλος σελίδας",\r
+DlgDocLangDir          : "Κατεύθυνση γραφής",\r
+DlgDocLangDirLTR       : "αριστερά προς δεξιά (LTR)",\r
+DlgDocLangDirRTL       : "δεξιά προς αριστερά (RTL)",\r
+DlgDocLangCode         : "Κωδικός γλώσσας",\r
+DlgDocCharSet          : "Κωδικοποίηση χαρακτήρων",\r
+DlgDocCharSetCE                : "Κεντρικής Ευρώπης",\r
+DlgDocCharSetCT                : "Παραδοσιακά κινέζικα (Big5)",\r
+DlgDocCharSetCR                : "Κυριλλική",\r
+DlgDocCharSetGR                : "Ελληνική",\r
+DlgDocCharSetJP                : "Ιαπωνική",\r
+DlgDocCharSetKR                : "Κορεάτικη",\r
+DlgDocCharSetTR                : "Τουρκική",\r
+DlgDocCharSetUN                : "Διεθνής (UTF-8)",\r
+DlgDocCharSetWE                : "Δυτικής Ευρώπης",\r
+DlgDocCharSetOther     : "Άλλη κωδικοποίηση χαρακτήρων",\r
+\r
+DlgDocDocType          : "Επικεφαλίδα τύπου εγγράφου",\r
+DlgDocDocTypeOther     : "Άλλη επικεφαλίδα τύπου εγγράφου",\r
+DlgDocIncXHTML         : "Να συμπεριληφθούν οι δηλώσεις XHTML",\r
+DlgDocBgColor          : "Χρώμα φόντου",\r
+DlgDocBgImage          : "Διεύθυνση εικόνας φόντου",\r
+DlgDocBgNoScroll       : "Φόντο χωρίς κύλιση",\r
+DlgDocCText                    : "Κείμενο",\r
+DlgDocCLink                    : "Σύνδεσμος",\r
+DlgDocCVisited         : "Σύνδεσμος που έχει επισκευθεί",\r
+DlgDocCActive          : "Ενεργός σύνδεσμος",\r
+DlgDocMargins          : "Περιθώρια σελίδας",\r
+DlgDocMaTop                    : "Κορυφή",\r
+DlgDocMaLeft           : "Αριστερά",\r
+DlgDocMaRight          : "Δεξιά",\r
+DlgDocMaBottom         : "Κάτω",\r
+DlgDocMeIndex          : "Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",\r
+DlgDocMeDescr          : "Περιγραφή εγγράφου",\r
+DlgDocMeAuthor         : "Συγγραφέας",\r
+DlgDocMeCopy           : "Πνευματικά δικαιώματα",\r
+DlgDocPreview          : "Προεπισκόπηση",\r
+\r
+// Templates Dialog\r
+Templates                      : "Πρότυπα",\r
+DlgTemplatesTitle      : "Πρότυπα περιεχομένου",\r
+DlgTemplatesSelMsg     : "Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα<br>(τα υπάρχοντα περιεχόμενα θα χαθούν):",\r
+DlgTemplatesLoading    : "Φόρτωση καταλόγου προτύπων. Παρακαλώ περιμένετε...",\r
+DlgTemplatesNoTpl      : "(Δεν έχουν καθοριστεί πρότυπα)",\r
+DlgTemplatesReplace    : "Αντικατάσταση υπάρχοντων περιεχομένων",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Σχετικά",\r
+DlgAboutBrowserInfoTab : "Πληροφορίες Browser",\r
+DlgAboutLicenseTab     : "Άδεια",\r
+DlgAboutVersion                : "έκδοση",\r
+DlgAboutInfo           : "Για περισσότερες πληροφορίες"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/en-au.js b/httemplate/elements/fckeditor/editor/lang/en-au.js
new file mode 100644 (file)
index 0000000..b6960b6
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * English (Australia) language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Collapse Toolbar",\r
+ToolbarExpand          : "Expand Toolbar",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Save",\r
+NewPage                                : "New Page",\r
+Preview                                : "Preview",\r
+Cut                                    : "Cut",\r
+Copy                           : "Copy",\r
+Paste                          : "Paste",\r
+PasteText                      : "Paste as plain text",\r
+PasteWord                      : "Paste from Word",\r
+Print                          : "Print",\r
+SelectAll                      : "Select All",\r
+RemoveFormat           : "Remove Format",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Insert/Edit Link",\r
+RemoveLink                     : "Remove Link",\r
+Anchor                         : "Insert/Edit Anchor",\r
+InsertImageLbl         : "Image",\r
+InsertImage                    : "Insert/Edit Image",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insert/Edit Flash",\r
+InsertTableLbl         : "Table",\r
+InsertTable                    : "Insert/Edit Table",\r
+InsertLineLbl          : "Line",\r
+InsertLine                     : "Insert Horizontal Line",\r
+InsertSpecialCharLbl: "Special Character",\r
+InsertSpecialChar      : "Insert Special Character",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Insert Smiley",\r
+About                          : "About FCKeditor",\r
+Bold                           : "Bold",\r
+Italic                         : "Italic",\r
+Underline                      : "Underline",\r
+StrikeThrough          : "Strike Through",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Left Justify",\r
+CenterJustify          : "Centre Justify",\r
+RightJustify           : "Right Justify",\r
+BlockJustify           : "Block Justify",\r
+DecreaseIndent         : "Decrease Indent",\r
+IncreaseIndent         : "Increase Indent",\r
+Undo                           : "Undo",\r
+Redo                           : "Redo",\r
+NumberedListLbl                : "Numbered List",\r
+NumberedList           : "Insert/Remove Numbered List",\r
+BulletedListLbl                : "Bulleted List",\r
+BulletedList           : "Insert/Remove Bulleted List",\r
+ShowTableBorders       : "Show Table Borders",\r
+ShowDetails                    : "Show Details",\r
+Style                          : "Style",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Size",\r
+TextColor                      : "Text Colour",\r
+BGColor                                : "Background Colour",\r
+Source                         : "Source",\r
+Find                           : "Find",\r
+Replace                                : "Replace",\r
+SpellCheck                     : "Check Spelling",\r
+UniversalKeyboard      : "Universal Keyboard",\r
+PageBreakLbl           : "Page Break",\r
+PageBreak                      : "Insert Page Break",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Hidden Field",\r
+Button                 : "Button",\r
+SelectionField : "Selection Field",\r
+ImageButton            : "Image Button",\r
+\r
+FitWindow              : "Maximize the editor size",\r
+\r
+// Context Menu\r
+EditLink                       : "Edit Link",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Row",\r
+ColumnCM                       : "Column",\r
+InsertRow                      : "Insert Row",\r
+DeleteRows                     : "Delete Rows",\r
+InsertColumn           : "Insert Column",\r
+DeleteColumns          : "Delete Columns",\r
+InsertCell                     : "Insert Cell",\r
+DeleteCells                    : "Delete Cells",\r
+MergeCells                     : "Merge Cells",\r
+SplitCell                      : "Split Cell",\r
+TableDelete                    : "Delete Table",\r
+CellProperties         : "Cell Properties",\r
+TableProperties                : "Table Properties",\r
+ImageProperties                : "Image Properties",\r
+FlashProperties                : "Flash Properties",\r
+\r
+AnchorProp                     : "Anchor Properties",\r
+ButtonProp                     : "Button Properties",\r
+CheckboxProp           : "Checkbox Properties",\r
+HiddenFieldProp                : "Hidden Field Properties",\r
+RadioButtonProp                : "Radio Button Properties",\r
+ImageButtonProp                : "Image Button Properties",\r
+TextFieldProp          : "Text Field Properties",\r
+SelectionFieldProp     : "Selection Field Properties",\r
+TextareaProp           : "Textarea Properties",\r
+FormProp                       : "Form Properties",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processing XHTML. Please wait...",\r
+Done                           : "Done",\r
+PasteWordConfirm       : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",\r
+NotCompatiblePaste     : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",\r
+UnknownToolbarItem     : "Unknown toolbar item \"%1\"",\r
+UnknownCommand         : "Unknown command name \"%1\"",\r
+NotImplemented         : "Command not implemented",\r
+UnknownToolbarSet      : "Toolbar set \"%1\" doesn't exist",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancel",\r
+DlgBtnClose                    : "Close",\r
+DlgBtnBrowseServer     : "Browse Server",\r
+DlgAdvancedTag         : "Advanced",\r
+DlgOpOther                     : "<Other>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Please insert the URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<not set>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Language Direction",\r
+DlgGenLangDirLtr       : "Left to Right (LTR)",\r
+DlgGenLangDirRtl       : "Right to Left (RTL)",\r
+DlgGenLangCode         : "Language Code",\r
+DlgGenAccessKey                : "Access Key",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Long Description URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Image Properties",\r
+DlgImgInfoTab          : "Image Info",\r
+DlgImgBtnUpload                : "Send it to the Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternative Text",\r
+DlgImgWidth                    : "Width",\r
+DlgImgHeight           : "Height",\r
+DlgImgLockRatio                : "Lock Ratio",\r
+DlgBtnResetSize                : "Reset Size",\r
+DlgImgBorder           : "Border",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Align",\r
+DlgImgAlignLeft                : "Left",\r
+DlgImgAlignAbsBottom: "Abs Bottom",\r
+DlgImgAlignAbsMiddle: "Abs Middle",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Bottom",\r
+DlgImgAlignMiddle      : "Middle",\r
+DlgImgAlignRight       : "Right",\r
+DlgImgAlignTextTop     : "Text Top",\r
+DlgImgAlignTop         : "Top",\r
+DlgImgPreview          : "Preview",\r
+DlgImgAlertUrl         : "Please type the image URL",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",\r
+DlgFlashChkPlay                : "Auto Play",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Enable Flash Menu",\r
+DlgFlashScale          : "Scale",\r
+DlgFlashScaleAll       : "Show all",\r
+DlgFlashScaleNoBorder  : "No Border",\r
+DlgFlashScaleFit       : "Exact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Target",\r
+\r
+DlgLnkType                     : "Link Type",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Link to anchor in the text",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<other>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Select an Anchor",\r
+DlgLnkAnchorByName     : "By Anchor Name",\r
+DlgLnkAnchorById       : "By Element Id",\r
+DlgLnkNoAnchors                : "(No anchors available in the document)",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Address",\r
+DlgLnkEMailSubject     : "Message Subject",\r
+DlgLnkEMailBody                : "Message Body",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Send it to the Server",\r
+\r
+DlgLnkTarget           : "Target",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<popup window>",\r
+DlgLnkTargetBlank      : "New Window (_blank)",\r
+DlgLnkTargetParent     : "Parent Window (_parent)",\r
+DlgLnkTargetSelf       : "Same Window (_self)",\r
+DlgLnkTargetTop                : "Topmost Window (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",\r
+DlgLnkPopWinName       : "Popup Window Name",\r
+DlgLnkPopWinFeat       : "Popup Window Features",\r
+DlgLnkPopResize                : "Resizable",\r
+DlgLnkPopLocation      : "Location Bar",\r
+DlgLnkPopMenu          : "Menu Bar",\r
+DlgLnkPopScroll                : "Scroll Bars",\r
+DlgLnkPopStatus                : "Status Bar",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Full Screen (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Width",\r
+DlgLnkPopHeight                : "Height",\r
+DlgLnkPopLeft          : "Left Position",\r
+DlgLnkPopTop           : "Top Position",\r
+\r
+DlnLnkMsgNoUrl         : "Please type the link URL",\r
+DlnLnkMsgNoEMail       : "Please type the e-mail address",\r
+DlnLnkMsgNoAnchor      : "Please select an anchor",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Select Colour",\r
+DlgColorBtnClear       : "Clear",\r
+DlgColorHighlight      : "Highlight",\r
+DlgColorSelected       : "Selected",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insert a Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Select Special Character",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Table Properties",\r
+DlgTableRows           : "Rows",\r
+DlgTableColumns                : "Columns",\r
+DlgTableBorder         : "Border size",\r
+DlgTableAlign          : "Alignment",\r
+DlgTableAlignNotSet    : "<Not set>",\r
+DlgTableAlignLeft      : "Left",\r
+DlgTableAlignCenter    : "Centre",\r
+DlgTableAlignRight     : "Right",\r
+DlgTableWidth          : "Width",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Height",\r
+DlgTableCellSpace      : "Cell spacing",\r
+DlgTableCellPad                : "Cell padding",\r
+DlgTableCaption                : "Caption",\r
+DlgTableSummary                : "Summary",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cell Properties",\r
+DlgCellWidth           : "Width",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Height",\r
+DlgCellWordWrap                : "Word Wrap",\r
+DlgCellWordWrapNotSet  : "<Not set>",\r
+DlgCellWordWrapYes     : "Yes",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Horizontal Alignment",\r
+DlgCellHorAlignNotSet  : "<Not set>",\r
+DlgCellHorAlignLeft    : "Left",\r
+DlgCellHorAlignCenter  : "Centre",\r
+DlgCellHorAlignRight: "Right",\r
+DlgCellVerAlign                : "Vertical Alignment",\r
+DlgCellVerAlignNotSet  : "<Not set>",\r
+DlgCellVerAlignTop     : "Top",\r
+DlgCellVerAlignMiddle  : "Middle",\r
+DlgCellVerAlignBottom  : "Bottom",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rows Span",\r
+DlgCellCollSpan                : "Columns Span",\r
+DlgCellBackColor       : "Background Colour",\r
+DlgCellBorderColor     : "Border Colour",\r
+DlgCellBtnSelect       : "Select...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Find",\r
+DlgFindFindBtn         : "Find",\r
+DlgFindNotFoundMsg     : "The specified text was not found.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Replace",\r
+DlgReplaceFindLbl              : "Find what:",\r
+DlgReplaceReplaceLbl   : "Replace with:",\r
+DlgReplaceCaseChk              : "Match case",\r
+DlgReplaceReplaceBtn   : "Replace",\r
+DlgReplaceReplAllBtn   : "Replace All",\r
+DlgReplaceWordChk              : "Match whole word",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",\r
+PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",\r
+\r
+PasteAsText            : "Paste as Plain Text",\r
+PasteFromWord  : "Paste from Word",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",\r
+DlgPasteCleanBox               : "Clean Up Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatic",\r
+ColorMoreColors        : "More Colours...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",\r
+DlgAnchorName          : "Anchor Name",\r
+DlgAnchorErrorName     : "Please type the anchor name",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",\r
+DlgSpellChangeTo               : "Change to",\r
+DlgSpellBtnIgnore              : "Ignore",\r
+DlgSpellBtnIgnoreAll   : "Ignore All",\r
+DlgSpellBtnReplace             : "Replace",\r
+DlgSpellBtnReplaceAll  : "Replace All",\r
+DlgSpellBtnUndo                        : "Undo",\r
+DlgSpellNoSuggestions  : "- No suggestions -",\r
+DlgSpellProgress               : "Spell check in progress...",\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",\r
+DlgSpellOneChange              : "Spell check complete: One word changed",\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",\r
+DlgCheckboxValue       : "Value",\r
+DlgCheckboxSelected    : "Selected",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",\r
+DlgSelectValue         : "Value",\r
+DlgSelectSize          : "Size",\r
+DlgSelectLines         : "lines",\r
+DlgSelectChkMulti      : "Allow multiple selections",\r
+DlgSelectOpAvail       : "Available Options",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Value",\r
+DlgSelectBtnAdd                : "Add",\r
+DlgSelectBtnModify     : "Modify",\r
+DlgSelectBtnUp         : "Up",\r
+DlgSelectBtnDown       : "Down",\r
+DlgSelectBtnSetValue : "Set as selected value",\r
+DlgSelectBtnDelete     : "Delete",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",\r
+DlgTextareaCols        : "Columns",\r
+DlgTextareaRows        : "Rows",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",\r
+DlgTextValue           : "Value",\r
+DlgTextCharWidth       : "Character Width",\r
+DlgTextMaxChars                : "Maximum Characters",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Password",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",\r
+DlgHiddenValue : "Value",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",\r
+NumberedListProp       : "Numbered List Properties",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Circle",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Square",\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Background",\r
+DlgDocColorsTab                : "Colours and Margins",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Page Title",\r
+DlgDocLangDir          : "Language Direction",\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",\r
+DlgDocLangCode         : "Language Code",\r
+DlgDocCharSet          : "Character Set Encoding",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "Other Character Set Encoding",\r
+\r
+DlgDocDocType          : "Document Type Heading",\r
+DlgDocDocTypeOther     : "Other Document Type Heading",\r
+DlgDocIncXHTML         : "Include XHTML Declarations",\r
+DlgDocBgColor          : "Background Colour",\r
+DlgDocBgImage          : "Background Image URL",\r
+DlgDocBgNoScroll       : "Nonscrolling Background",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Visited Link",\r
+DlgDocCActive          : "Active Link",\r
+DlgDocMargins          : "Page Margins",\r
+DlgDocMaTop                    : "Top",\r
+DlgDocMaLeft           : "Left",\r
+DlgDocMaRight          : "Right",\r
+DlgDocMaBottom         : "Bottom",\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",\r
+DlgDocMeDescr          : "Document Description",\r
+DlgDocMeAuthor         : "Author",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Preview",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",\r
+DlgTemplatesTitle      : "Content Templates",\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br>(the actual contents will be lost):",\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",\r
+DlgTemplatesNoTpl      : "(No templates defined)",\r
+DlgTemplatesReplace    : "Replace actual contents",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",\r
+DlgAboutBrowserInfoTab : "Browser Info",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "For further information go to"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/en-ca.js b/httemplate/elements/fckeditor/editor/lang/en-ca.js
new file mode 100644 (file)
index 0000000..2900a9d
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * English (Canadian) language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Collapse Toolbar",\r
+ToolbarExpand          : "Expand Toolbar",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Save",\r
+NewPage                                : "New Page",\r
+Preview                                : "Preview",\r
+Cut                                    : "Cut",\r
+Copy                           : "Copy",\r
+Paste                          : "Paste",\r
+PasteText                      : "Paste as plain text",\r
+PasteWord                      : "Paste from Word",\r
+Print                          : "Print",\r
+SelectAll                      : "Select All",\r
+RemoveFormat           : "Remove Format",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Insert/Edit Link",\r
+RemoveLink                     : "Remove Link",\r
+Anchor                         : "Insert/Edit Anchor",\r
+InsertImageLbl         : "Image",\r
+InsertImage                    : "Insert/Edit Image",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insert/Edit Flash",\r
+InsertTableLbl         : "Table",\r
+InsertTable                    : "Insert/Edit Table",\r
+InsertLineLbl          : "Line",\r
+InsertLine                     : "Insert Horizontal Line",\r
+InsertSpecialCharLbl: "Special Character",\r
+InsertSpecialChar      : "Insert Special Character",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Insert Smiley",\r
+About                          : "About FCKeditor",\r
+Bold                           : "Bold",\r
+Italic                         : "Italic",\r
+Underline                      : "Underline",\r
+StrikeThrough          : "Strike Through",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Left Justify",\r
+CenterJustify          : "Centre Justify",\r
+RightJustify           : "Right Justify",\r
+BlockJustify           : "Block Justify",\r
+DecreaseIndent         : "Decrease Indent",\r
+IncreaseIndent         : "Increase Indent",\r
+Undo                           : "Undo",\r
+Redo                           : "Redo",\r
+NumberedListLbl                : "Numbered List",\r
+NumberedList           : "Insert/Remove Numbered List",\r
+BulletedListLbl                : "Bulleted List",\r
+BulletedList           : "Insert/Remove Bulleted List",\r
+ShowTableBorders       : "Show Table Borders",\r
+ShowDetails                    : "Show Details",\r
+Style                          : "Style",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Size",\r
+TextColor                      : "Text Colour",\r
+BGColor                                : "Background Colour",\r
+Source                         : "Source",\r
+Find                           : "Find",\r
+Replace                                : "Replace",\r
+SpellCheck                     : "Check Spelling",\r
+UniversalKeyboard      : "Universal Keyboard",\r
+PageBreakLbl           : "Page Break",\r
+PageBreak                      : "Insert Page Break",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Hidden Field",\r
+Button                 : "Button",\r
+SelectionField : "Selection Field",\r
+ImageButton            : "Image Button",\r
+\r
+FitWindow              : "Maximize the editor size",\r
+\r
+// Context Menu\r
+EditLink                       : "Edit Link",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Row",\r
+ColumnCM                       : "Column",\r
+InsertRow                      : "Insert Row",\r
+DeleteRows                     : "Delete Rows",\r
+InsertColumn           : "Insert Column",\r
+DeleteColumns          : "Delete Columns",\r
+InsertCell                     : "Insert Cell",\r
+DeleteCells                    : "Delete Cells",\r
+MergeCells                     : "Merge Cells",\r
+SplitCell                      : "Split Cell",\r
+TableDelete                    : "Delete Table",\r
+CellProperties         : "Cell Properties",\r
+TableProperties                : "Table Properties",\r
+ImageProperties                : "Image Properties",\r
+FlashProperties                : "Flash Properties",\r
+\r
+AnchorProp                     : "Anchor Properties",\r
+ButtonProp                     : "Button Properties",\r
+CheckboxProp           : "Checkbox Properties",\r
+HiddenFieldProp                : "Hidden Field Properties",\r
+RadioButtonProp                : "Radio Button Properties",\r
+ImageButtonProp                : "Image Button Properties",\r
+TextFieldProp          : "Text Field Properties",\r
+SelectionFieldProp     : "Selection Field Properties",\r
+TextareaProp           : "Textarea Properties",\r
+FormProp                       : "Form Properties",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processing XHTML. Please wait...",\r
+Done                           : "Done",\r
+PasteWordConfirm       : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",\r
+NotCompatiblePaste     : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",\r
+UnknownToolbarItem     : "Unknown toolbar item \"%1\"",\r
+UnknownCommand         : "Unknown command name \"%1\"",\r
+NotImplemented         : "Command not implemented",\r
+UnknownToolbarSet      : "Toolbar set \"%1\" doesn't exist",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancel",\r
+DlgBtnClose                    : "Close",\r
+DlgBtnBrowseServer     : "Browse Server",\r
+DlgAdvancedTag         : "Advanced",\r
+DlgOpOther                     : "<Other>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Please insert the URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<not set>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Language Direction",\r
+DlgGenLangDirLtr       : "Left to Right (LTR)",\r
+DlgGenLangDirRtl       : "Right to Left (RTL)",\r
+DlgGenLangCode         : "Language Code",\r
+DlgGenAccessKey                : "Access Key",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Long Description URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Image Properties",\r
+DlgImgInfoTab          : "Image Info",\r
+DlgImgBtnUpload                : "Send it to the Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternative Text",\r
+DlgImgWidth                    : "Width",\r
+DlgImgHeight           : "Height",\r
+DlgImgLockRatio                : "Lock Ratio",\r
+DlgBtnResetSize                : "Reset Size",\r
+DlgImgBorder           : "Border",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Align",\r
+DlgImgAlignLeft                : "Left",\r
+DlgImgAlignAbsBottom: "Abs Bottom",\r
+DlgImgAlignAbsMiddle: "Abs Middle",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Bottom",\r
+DlgImgAlignMiddle      : "Middle",\r
+DlgImgAlignRight       : "Right",\r
+DlgImgAlignTextTop     : "Text Top",\r
+DlgImgAlignTop         : "Top",\r
+DlgImgPreview          : "Preview",\r
+DlgImgAlertUrl         : "Please type the image URL",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",\r
+DlgFlashChkPlay                : "Auto Play",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Enable Flash Menu",\r
+DlgFlashScale          : "Scale",\r
+DlgFlashScaleAll       : "Show all",\r
+DlgFlashScaleNoBorder  : "No Border",\r
+DlgFlashScaleFit       : "Exact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Target",\r
+\r
+DlgLnkType                     : "Link Type",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Link to anchor in the text",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<other>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Select an Anchor",\r
+DlgLnkAnchorByName     : "By Anchor Name",\r
+DlgLnkAnchorById       : "By Element Id",\r
+DlgLnkNoAnchors                : "(No anchors available in the document)",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Address",\r
+DlgLnkEMailSubject     : "Message Subject",\r
+DlgLnkEMailBody                : "Message Body",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Send it to the Server",\r
+\r
+DlgLnkTarget           : "Target",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<popup window>",\r
+DlgLnkTargetBlank      : "New Window (_blank)",\r
+DlgLnkTargetParent     : "Parent Window (_parent)",\r
+DlgLnkTargetSelf       : "Same Window (_self)",\r
+DlgLnkTargetTop                : "Topmost Window (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",\r
+DlgLnkPopWinName       : "Popup Window Name",\r
+DlgLnkPopWinFeat       : "Popup Window Features",\r
+DlgLnkPopResize                : "Resizable",\r
+DlgLnkPopLocation      : "Location Bar",\r
+DlgLnkPopMenu          : "Menu Bar",\r
+DlgLnkPopScroll                : "Scroll Bars",\r
+DlgLnkPopStatus                : "Status Bar",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Full Screen (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Width",\r
+DlgLnkPopHeight                : "Height",\r
+DlgLnkPopLeft          : "Left Position",\r
+DlgLnkPopTop           : "Top Position",\r
+\r
+DlnLnkMsgNoUrl         : "Please type the link URL",\r
+DlnLnkMsgNoEMail       : "Please type the e-mail address",\r
+DlnLnkMsgNoAnchor      : "Please select an anchor",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Select Colour",\r
+DlgColorBtnClear       : "Clear",\r
+DlgColorHighlight      : "Highlight",\r
+DlgColorSelected       : "Selected",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insert a Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Select Special Character",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Table Properties",\r
+DlgTableRows           : "Rows",\r
+DlgTableColumns                : "Columns",\r
+DlgTableBorder         : "Border size",\r
+DlgTableAlign          : "Alignment",\r
+DlgTableAlignNotSet    : "<Not set>",\r
+DlgTableAlignLeft      : "Left",\r
+DlgTableAlignCenter    : "Centre",\r
+DlgTableAlignRight     : "Right",\r
+DlgTableWidth          : "Width",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Height",\r
+DlgTableCellSpace      : "Cell spacing",\r
+DlgTableCellPad                : "Cell padding",\r
+DlgTableCaption                : "Caption",\r
+DlgTableSummary                : "Summary",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cell Properties",\r
+DlgCellWidth           : "Width",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Height",\r
+DlgCellWordWrap                : "Word Wrap",\r
+DlgCellWordWrapNotSet  : "<Not set>",\r
+DlgCellWordWrapYes     : "Yes",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Horizontal Alignment",\r
+DlgCellHorAlignNotSet  : "<Not set>",\r
+DlgCellHorAlignLeft    : "Left",\r
+DlgCellHorAlignCenter  : "Centre",\r
+DlgCellHorAlignRight: "Right",\r
+DlgCellVerAlign                : "Vertical Alignment",\r
+DlgCellVerAlignNotSet  : "<Not set>",\r
+DlgCellVerAlignTop     : "Top",\r
+DlgCellVerAlignMiddle  : "Middle",\r
+DlgCellVerAlignBottom  : "Bottom",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rows Span",\r
+DlgCellCollSpan                : "Columns Span",\r
+DlgCellBackColor       : "Background Colour",\r
+DlgCellBorderColor     : "Border Colour",\r
+DlgCellBtnSelect       : "Select...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Find",\r
+DlgFindFindBtn         : "Find",\r
+DlgFindNotFoundMsg     : "The specified text was not found.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Replace",\r
+DlgReplaceFindLbl              : "Find what:",\r
+DlgReplaceReplaceLbl   : "Replace with:",\r
+DlgReplaceCaseChk              : "Match case",\r
+DlgReplaceReplaceBtn   : "Replace",\r
+DlgReplaceReplAllBtn   : "Replace All",\r
+DlgReplaceWordChk              : "Match whole word",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",\r
+PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",\r
+\r
+PasteAsText            : "Paste as Plain Text",\r
+PasteFromWord  : "Paste from Word",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",\r
+DlgPasteCleanBox               : "Clean Up Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatic",\r
+ColorMoreColors        : "More Colours...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",\r
+DlgAnchorName          : "Anchor Name",\r
+DlgAnchorErrorName     : "Please type the anchor name",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",\r
+DlgSpellChangeTo               : "Change to",\r
+DlgSpellBtnIgnore              : "Ignore",\r
+DlgSpellBtnIgnoreAll   : "Ignore All",\r
+DlgSpellBtnReplace             : "Replace",\r
+DlgSpellBtnReplaceAll  : "Replace All",\r
+DlgSpellBtnUndo                        : "Undo",\r
+DlgSpellNoSuggestions  : "- No suggestions -",\r
+DlgSpellProgress               : "Spell check in progress...",\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",\r
+DlgSpellOneChange              : "Spell check complete: One word changed",\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",\r
+DlgCheckboxValue       : "Value",\r
+DlgCheckboxSelected    : "Selected",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",\r
+DlgSelectValue         : "Value",\r
+DlgSelectSize          : "Size",\r
+DlgSelectLines         : "lines",\r
+DlgSelectChkMulti      : "Allow multiple selections",\r
+DlgSelectOpAvail       : "Available Options",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Value",\r
+DlgSelectBtnAdd                : "Add",\r
+DlgSelectBtnModify     : "Modify",\r
+DlgSelectBtnUp         : "Up",\r
+DlgSelectBtnDown       : "Down",\r
+DlgSelectBtnSetValue : "Set as selected value",\r
+DlgSelectBtnDelete     : "Delete",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",\r
+DlgTextareaCols        : "Columns",\r
+DlgTextareaRows        : "Rows",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",\r
+DlgTextValue           : "Value",\r
+DlgTextCharWidth       : "Character Width",\r
+DlgTextMaxChars                : "Maximum Characters",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Password",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",\r
+DlgHiddenValue : "Value",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",\r
+NumberedListProp       : "Numbered List Properties",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Circle",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Square",\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Background",\r
+DlgDocColorsTab                : "Colours and Margins",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Page Title",\r
+DlgDocLangDir          : "Language Direction",\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",\r
+DlgDocLangCode         : "Language Code",\r
+DlgDocCharSet          : "Character Set Encoding",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "Other Character Set Encoding",\r
+\r
+DlgDocDocType          : "Document Type Heading",\r
+DlgDocDocTypeOther     : "Other Document Type Heading",\r
+DlgDocIncXHTML         : "Include XHTML Declarations",\r
+DlgDocBgColor          : "Background Colour",\r
+DlgDocBgImage          : "Background Image URL",\r
+DlgDocBgNoScroll       : "Nonscrolling Background",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Visited Link",\r
+DlgDocCActive          : "Active Link",\r
+DlgDocMargins          : "Page Margins",\r
+DlgDocMaTop                    : "Top",\r
+DlgDocMaLeft           : "Left",\r
+DlgDocMaRight          : "Right",\r
+DlgDocMaBottom         : "Bottom",\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",\r
+DlgDocMeDescr          : "Document Description",\r
+DlgDocMeAuthor         : "Author",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Preview",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",\r
+DlgTemplatesTitle      : "Content Templates",\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br>(the actual contents will be lost):",\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",\r
+DlgTemplatesNoTpl      : "(No templates defined)",\r
+DlgTemplatesReplace    : "Replace actual contents",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",\r
+DlgAboutBrowserInfoTab : "Browser Info",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "For further information go to"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/en-uk.js b/httemplate/elements/fckeditor/editor/lang/en-uk.js
new file mode 100644 (file)
index 0000000..eaaf3e4
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * English (United Kingdom) language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Collapse Toolbar",\r
+ToolbarExpand          : "Expand Toolbar",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Save",\r
+NewPage                                : "New Page",\r
+Preview                                : "Preview",\r
+Cut                                    : "Cut",\r
+Copy                           : "Copy",\r
+Paste                          : "Paste",\r
+PasteText                      : "Paste as plain text",\r
+PasteWord                      : "Paste from Word",\r
+Print                          : "Print",\r
+SelectAll                      : "Select All",\r
+RemoveFormat           : "Remove Format",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Insert/Edit Link",\r
+RemoveLink                     : "Remove Link",\r
+Anchor                         : "Insert/Edit Anchor",\r
+InsertImageLbl         : "Image",\r
+InsertImage                    : "Insert/Edit Image",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insert/Edit Flash",\r
+InsertTableLbl         : "Table",\r
+InsertTable                    : "Insert/Edit Table",\r
+InsertLineLbl          : "Line",\r
+InsertLine                     : "Insert Horizontal Line",\r
+InsertSpecialCharLbl: "Special Character",\r
+InsertSpecialChar      : "Insert Special Character",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Insert Smiley",\r
+About                          : "About FCKeditor",\r
+Bold                           : "Bold",\r
+Italic                         : "Italic",\r
+Underline                      : "Underline",\r
+StrikeThrough          : "Strike Through",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Left Justify",\r
+CenterJustify          : "Centre Justify",\r
+RightJustify           : "Right Justify",\r
+BlockJustify           : "Block Justify",\r
+DecreaseIndent         : "Decrease Indent",\r
+IncreaseIndent         : "Increase Indent",\r
+Undo                           : "Undo",\r
+Redo                           : "Redo",\r
+NumberedListLbl                : "Numbered List",\r
+NumberedList           : "Insert/Remove Numbered List",\r
+BulletedListLbl                : "Bulleted List",\r
+BulletedList           : "Insert/Remove Bulleted List",\r
+ShowTableBorders       : "Show Table Borders",\r
+ShowDetails                    : "Show Details",\r
+Style                          : "Style",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Size",\r
+TextColor                      : "Text Colour",\r
+BGColor                                : "Background Colour",\r
+Source                         : "Source",\r
+Find                           : "Find",\r
+Replace                                : "Replace",\r
+SpellCheck                     : "Check Spelling",\r
+UniversalKeyboard      : "Universal Keyboard",\r
+PageBreakLbl           : "Page Break",\r
+PageBreak                      : "Insert Page Break",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Hidden Field",\r
+Button                 : "Button",\r
+SelectionField : "Selection Field",\r
+ImageButton            : "Image Button",\r
+\r
+FitWindow              : "Maximize the editor size",\r
+\r
+// Context Menu\r
+EditLink                       : "Edit Link",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Row",\r
+ColumnCM                       : "Column",\r
+InsertRow                      : "Insert Row",\r
+DeleteRows                     : "Delete Rows",\r
+InsertColumn           : "Insert Column",\r
+DeleteColumns          : "Delete Columns",\r
+InsertCell                     : "Insert Cell",\r
+DeleteCells                    : "Delete Cells",\r
+MergeCells                     : "Merge Cells",\r
+SplitCell                      : "Split Cell",\r
+TableDelete                    : "Delete Table",\r
+CellProperties         : "Cell Properties",\r
+TableProperties                : "Table Properties",\r
+ImageProperties                : "Image Properties",\r
+FlashProperties                : "Flash Properties",\r
+\r
+AnchorProp                     : "Anchor Properties",\r
+ButtonProp                     : "Button Properties",\r
+CheckboxProp           : "Checkbox Properties",\r
+HiddenFieldProp                : "Hidden Field Properties",\r
+RadioButtonProp                : "Radio Button Properties",\r
+ImageButtonProp                : "Image Button Properties",\r
+TextFieldProp          : "Text Field Properties",\r
+SelectionFieldProp     : "Selection Field Properties",\r
+TextareaProp           : "Textarea Properties",\r
+FormProp                       : "Form Properties",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processing XHTML. Please wait...",\r
+Done                           : "Done",\r
+PasteWordConfirm       : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",\r
+NotCompatiblePaste     : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",\r
+UnknownToolbarItem     : "Unknown toolbar item \"%1\"",\r
+UnknownCommand         : "Unknown command name \"%1\"",\r
+NotImplemented         : "Command not implemented",\r
+UnknownToolbarSet      : "Toolbar set \"%1\" doesn't exist",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancel",\r
+DlgBtnClose                    : "Close",\r
+DlgBtnBrowseServer     : "Browse Server",\r
+DlgAdvancedTag         : "Advanced",\r
+DlgOpOther                     : "<Other>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Please insert the URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<not set>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Language Direction",\r
+DlgGenLangDirLtr       : "Left to Right (LTR)",\r
+DlgGenLangDirRtl       : "Right to Left (RTL)",\r
+DlgGenLangCode         : "Language Code",\r
+DlgGenAccessKey                : "Access Key",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Long Description URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Image Properties",\r
+DlgImgInfoTab          : "Image Info",\r
+DlgImgBtnUpload                : "Send it to the Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternative Text",\r
+DlgImgWidth                    : "Width",\r
+DlgImgHeight           : "Height",\r
+DlgImgLockRatio                : "Lock Ratio",\r
+DlgBtnResetSize                : "Reset Size",\r
+DlgImgBorder           : "Border",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Align",\r
+DlgImgAlignLeft                : "Left",\r
+DlgImgAlignAbsBottom: "Abs Bottom",\r
+DlgImgAlignAbsMiddle: "Abs Middle",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Bottom",\r
+DlgImgAlignMiddle      : "Middle",\r
+DlgImgAlignRight       : "Right",\r
+DlgImgAlignTextTop     : "Text Top",\r
+DlgImgAlignTop         : "Top",\r
+DlgImgPreview          : "Preview",\r
+DlgImgAlertUrl         : "Please type the image URL",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",\r
+DlgFlashChkPlay                : "Auto Play",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Enable Flash Menu",\r
+DlgFlashScale          : "Scale",\r
+DlgFlashScaleAll       : "Show all",\r
+DlgFlashScaleNoBorder  : "No Border",\r
+DlgFlashScaleFit       : "Exact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Target",\r
+\r
+DlgLnkType                     : "Link Type",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Link to anchor in the text",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<other>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Select an Anchor",\r
+DlgLnkAnchorByName     : "By Anchor Name",\r
+DlgLnkAnchorById       : "By Element Id",\r
+DlgLnkNoAnchors                : "(No anchors available in the document)",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Address",\r
+DlgLnkEMailSubject     : "Message Subject",\r
+DlgLnkEMailBody                : "Message Body",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Send it to the Server",\r
+\r
+DlgLnkTarget           : "Target",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<popup window>",\r
+DlgLnkTargetBlank      : "New Window (_blank)",\r
+DlgLnkTargetParent     : "Parent Window (_parent)",\r
+DlgLnkTargetSelf       : "Same Window (_self)",\r
+DlgLnkTargetTop                : "Topmost Window (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",\r
+DlgLnkPopWinName       : "Popup Window Name",\r
+DlgLnkPopWinFeat       : "Popup Window Features",\r
+DlgLnkPopResize                : "Resizable",\r
+DlgLnkPopLocation      : "Location Bar",\r
+DlgLnkPopMenu          : "Menu Bar",\r
+DlgLnkPopScroll                : "Scroll Bars",\r
+DlgLnkPopStatus                : "Status Bar",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Full Screen (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Width",\r
+DlgLnkPopHeight                : "Height",\r
+DlgLnkPopLeft          : "Left Position",\r
+DlgLnkPopTop           : "Top Position",\r
+\r
+DlnLnkMsgNoUrl         : "Please type the link URL",\r
+DlnLnkMsgNoEMail       : "Please type the e-mail address",\r
+DlnLnkMsgNoAnchor      : "Please select an anchor",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Select Colour",\r
+DlgColorBtnClear       : "Clear",\r
+DlgColorHighlight      : "Highlight",\r
+DlgColorSelected       : "Selected",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insert a Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Select Special Character",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Table Properties",\r
+DlgTableRows           : "Rows",\r
+DlgTableColumns                : "Columns",\r
+DlgTableBorder         : "Border size",\r
+DlgTableAlign          : "Alignment",\r
+DlgTableAlignNotSet    : "<Not set>",\r
+DlgTableAlignLeft      : "Left",\r
+DlgTableAlignCenter    : "Centre",\r
+DlgTableAlignRight     : "Right",\r
+DlgTableWidth          : "Width",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Height",\r
+DlgTableCellSpace      : "Cell spacing",\r
+DlgTableCellPad                : "Cell padding",\r
+DlgTableCaption                : "Caption",\r
+DlgTableSummary                : "Summary",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cell Properties",\r
+DlgCellWidth           : "Width",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Height",\r
+DlgCellWordWrap                : "Word Wrap",\r
+DlgCellWordWrapNotSet  : "<Not set>",\r
+DlgCellWordWrapYes     : "Yes",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Horizontal Alignment",\r
+DlgCellHorAlignNotSet  : "<Not set>",\r
+DlgCellHorAlignLeft    : "Left",\r
+DlgCellHorAlignCenter  : "Centre",\r
+DlgCellHorAlignRight: "Right",\r
+DlgCellVerAlign                : "Vertical Alignment",\r
+DlgCellVerAlignNotSet  : "<Not set>",\r
+DlgCellVerAlignTop     : "Top",\r
+DlgCellVerAlignMiddle  : "Middle",\r
+DlgCellVerAlignBottom  : "Bottom",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rows Span",\r
+DlgCellCollSpan                : "Columns Span",\r
+DlgCellBackColor       : "Background Colour",\r
+DlgCellBorderColor     : "Border Colour",\r
+DlgCellBtnSelect       : "Select...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Find",\r
+DlgFindFindBtn         : "Find",\r
+DlgFindNotFoundMsg     : "The specified text was not found.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Replace",\r
+DlgReplaceFindLbl              : "Find what:",\r
+DlgReplaceReplaceLbl   : "Replace with:",\r
+DlgReplaceCaseChk              : "Match case",\r
+DlgReplaceReplaceBtn   : "Replace",\r
+DlgReplaceReplAllBtn   : "Replace All",\r
+DlgReplaceWordChk              : "Match whole word",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",\r
+PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",\r
+\r
+PasteAsText            : "Paste as Plain Text",\r
+PasteFromWord  : "Paste from Word",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",\r
+DlgPasteCleanBox               : "Clean Up Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatic",\r
+ColorMoreColors        : "More Colours...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",\r
+DlgAnchorName          : "Anchor Name",\r
+DlgAnchorErrorName     : "Please type the anchor name",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",\r
+DlgSpellChangeTo               : "Change to",\r
+DlgSpellBtnIgnore              : "Ignore",\r
+DlgSpellBtnIgnoreAll   : "Ignore All",\r
+DlgSpellBtnReplace             : "Replace",\r
+DlgSpellBtnReplaceAll  : "Replace All",\r
+DlgSpellBtnUndo                        : "Undo",\r
+DlgSpellNoSuggestions  : "- No suggestions -",\r
+DlgSpellProgress               : "Spell check in progress...",\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",\r
+DlgSpellOneChange              : "Spell check complete: One word changed",\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",\r
+DlgCheckboxValue       : "Value",\r
+DlgCheckboxSelected    : "Selected",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",\r
+DlgSelectValue         : "Value",\r
+DlgSelectSize          : "Size",\r
+DlgSelectLines         : "lines",\r
+DlgSelectChkMulti      : "Allow multiple selections",\r
+DlgSelectOpAvail       : "Available Options",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Value",\r
+DlgSelectBtnAdd                : "Add",\r
+DlgSelectBtnModify     : "Modify",\r
+DlgSelectBtnUp         : "Up",\r
+DlgSelectBtnDown       : "Down",\r
+DlgSelectBtnSetValue : "Set as selected value",\r
+DlgSelectBtnDelete     : "Delete",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",\r
+DlgTextareaCols        : "Columns",\r
+DlgTextareaRows        : "Rows",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",\r
+DlgTextValue           : "Value",\r
+DlgTextCharWidth       : "Character Width",\r
+DlgTextMaxChars                : "Maximum Characters",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Password",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",\r
+DlgHiddenValue : "Value",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",\r
+NumberedListProp       : "Numbered List Properties",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Circle",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Square",\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Background",\r
+DlgDocColorsTab                : "Colours and Margins",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Page Title",\r
+DlgDocLangDir          : "Language Direction",\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",\r
+DlgDocLangCode         : "Language Code",\r
+DlgDocCharSet          : "Character Set Encoding",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "Other Character Set Encoding",\r
+\r
+DlgDocDocType          : "Document Type Heading",\r
+DlgDocDocTypeOther     : "Other Document Type Heading",\r
+DlgDocIncXHTML         : "Include XHTML Declarations",\r
+DlgDocBgColor          : "Background Colour",\r
+DlgDocBgImage          : "Background Image URL",\r
+DlgDocBgNoScroll       : "Nonscrolling Background",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Visited Link",\r
+DlgDocCActive          : "Active Link",\r
+DlgDocMargins          : "Page Margins",\r
+DlgDocMaTop                    : "Top",\r
+DlgDocMaLeft           : "Left",\r
+DlgDocMaRight          : "Right",\r
+DlgDocMaBottom         : "Bottom",\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",\r
+DlgDocMeDescr          : "Document Description",\r
+DlgDocMeAuthor         : "Author",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Preview",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",\r
+DlgTemplatesTitle      : "Content Templates",\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br>(the actual contents will be lost):",\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",\r
+DlgTemplatesNoTpl      : "(No templates defined)",\r
+DlgTemplatesReplace    : "Replace actual contents",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",\r
+DlgAboutBrowserInfoTab : "Browser Info",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "For further information go to"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/en.js b/httemplate/elements/fckeditor/editor/lang/en.js
new file mode 100644 (file)
index 0000000..c579fc9
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * English language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Collapse Toolbar",\r
+ToolbarExpand          : "Expand Toolbar",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Save",\r
+NewPage                                : "New Page",\r
+Preview                                : "Preview",\r
+Cut                                    : "Cut",\r
+Copy                           : "Copy",\r
+Paste                          : "Paste",\r
+PasteText                      : "Paste as plain text",\r
+PasteWord                      : "Paste from Word",\r
+Print                          : "Print",\r
+SelectAll                      : "Select All",\r
+RemoveFormat           : "Remove Format",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Insert/Edit Link",\r
+RemoveLink                     : "Remove Link",\r
+Anchor                         : "Insert/Edit Anchor",\r
+InsertImageLbl         : "Image",\r
+InsertImage                    : "Insert/Edit Image",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insert/Edit Flash",\r
+InsertTableLbl         : "Table",\r
+InsertTable                    : "Insert/Edit Table",\r
+InsertLineLbl          : "Line",\r
+InsertLine                     : "Insert Horizontal Line",\r
+InsertSpecialCharLbl: "Special Character",\r
+InsertSpecialChar      : "Insert Special Character",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Insert Smiley",\r
+About                          : "About FCKeditor",\r
+Bold                           : "Bold",\r
+Italic                         : "Italic",\r
+Underline                      : "Underline",\r
+StrikeThrough          : "Strike Through",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Left Justify",\r
+CenterJustify          : "Center Justify",\r
+RightJustify           : "Right Justify",\r
+BlockJustify           : "Block Justify",\r
+DecreaseIndent         : "Decrease Indent",\r
+IncreaseIndent         : "Increase Indent",\r
+Undo                           : "Undo",\r
+Redo                           : "Redo",\r
+NumberedListLbl                : "Numbered List",\r
+NumberedList           : "Insert/Remove Numbered List",\r
+BulletedListLbl                : "Bulleted List",\r
+BulletedList           : "Insert/Remove Bulleted List",\r
+ShowTableBorders       : "Show Table Borders",\r
+ShowDetails                    : "Show Details",\r
+Style                          : "Style",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Size",\r
+TextColor                      : "Text Color",\r
+BGColor                                : "Background Color",\r
+Source                         : "Source",\r
+Find                           : "Find",\r
+Replace                                : "Replace",\r
+SpellCheck                     : "Check Spelling",\r
+UniversalKeyboard      : "Universal Keyboard",\r
+PageBreakLbl           : "Page Break",\r
+PageBreak                      : "Insert Page Break",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Hidden Field",\r
+Button                 : "Button",\r
+SelectionField : "Selection Field",\r
+ImageButton            : "Image Button",\r
+\r
+FitWindow              : "Maximize the editor size",\r
+\r
+// Context Menu\r
+EditLink                       : "Edit Link",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Row",\r
+ColumnCM                       : "Column",\r
+InsertRow                      : "Insert Row",\r
+DeleteRows                     : "Delete Rows",\r
+InsertColumn           : "Insert Column",\r
+DeleteColumns          : "Delete Columns",\r
+InsertCell                     : "Insert Cell",\r
+DeleteCells                    : "Delete Cells",\r
+MergeCells                     : "Merge Cells",\r
+SplitCell                      : "Split Cell",\r
+TableDelete                    : "Delete Table",\r
+CellProperties         : "Cell Properties",\r
+TableProperties                : "Table Properties",\r
+ImageProperties                : "Image Properties",\r
+FlashProperties                : "Flash Properties",\r
+\r
+AnchorProp                     : "Anchor Properties",\r
+ButtonProp                     : "Button Properties",\r
+CheckboxProp           : "Checkbox Properties",\r
+HiddenFieldProp                : "Hidden Field Properties",\r
+RadioButtonProp                : "Radio Button Properties",\r
+ImageButtonProp                : "Image Button Properties",\r
+TextFieldProp          : "Text Field Properties",\r
+SelectionFieldProp     : "Selection Field Properties",\r
+TextareaProp           : "Textarea Properties",\r
+FormProp                       : "Form Properties",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processing XHTML. Please wait...",\r
+Done                           : "Done",\r
+PasteWordConfirm       : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",\r
+NotCompatiblePaste     : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",\r
+UnknownToolbarItem     : "Unknown toolbar item \"%1\"",\r
+UnknownCommand         : "Unknown command name \"%1\"",\r
+NotImplemented         : "Command not implemented",\r
+UnknownToolbarSet      : "Toolbar set \"%1\" doesn't exist",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancel",\r
+DlgBtnClose                    : "Close",\r
+DlgBtnBrowseServer     : "Browse Server",\r
+DlgAdvancedTag         : "Advanced",\r
+DlgOpOther                     : "<Other>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Please insert the URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<not set>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Language Direction",\r
+DlgGenLangDirLtr       : "Left to Right (LTR)",\r
+DlgGenLangDirRtl       : "Right to Left (RTL)",\r
+DlgGenLangCode         : "Language Code",\r
+DlgGenAccessKey                : "Access Key",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "Tab Index",\r
+DlgGenLongDescr                : "Long Description URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Image Properties",\r
+DlgImgInfoTab          : "Image Info",\r
+DlgImgBtnUpload                : "Send it to the Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternative Text",\r
+DlgImgWidth                    : "Width",\r
+DlgImgHeight           : "Height",\r
+DlgImgLockRatio                : "Lock Ratio",\r
+DlgBtnResetSize                : "Reset Size",\r
+DlgImgBorder           : "Border",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Align",\r
+DlgImgAlignLeft                : "Left",\r
+DlgImgAlignAbsBottom: "Abs Bottom",\r
+DlgImgAlignAbsMiddle: "Abs Middle",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Bottom",\r
+DlgImgAlignMiddle      : "Middle",\r
+DlgImgAlignRight       : "Right",\r
+DlgImgAlignTextTop     : "Text Top",\r
+DlgImgAlignTop         : "Top",\r
+DlgImgPreview          : "Preview",\r
+DlgImgAlertUrl         : "Please type the image URL",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",\r
+DlgFlashChkPlay                : "Auto Play",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Enable Flash Menu",\r
+DlgFlashScale          : "Scale",\r
+DlgFlashScaleAll       : "Show all",\r
+DlgFlashScaleNoBorder  : "No Border",\r
+DlgFlashScaleFit       : "Exact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Target",\r
+\r
+DlgLnkType                     : "Link Type",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Link to anchor in the text",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<other>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Select an Anchor",\r
+DlgLnkAnchorByName     : "By Anchor Name",\r
+DlgLnkAnchorById       : "By Element Id",\r
+DlgLnkNoAnchors                : "(No anchors available in the document)",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Address",\r
+DlgLnkEMailSubject     : "Message Subject",\r
+DlgLnkEMailBody                : "Message Body",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Send it to the Server",\r
+\r
+DlgLnkTarget           : "Target",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<popup window>",\r
+DlgLnkTargetBlank      : "New Window (_blank)",\r
+DlgLnkTargetParent     : "Parent Window (_parent)",\r
+DlgLnkTargetSelf       : "Same Window (_self)",\r
+DlgLnkTargetTop                : "Topmost Window (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",\r
+DlgLnkPopWinName       : "Popup Window Name",\r
+DlgLnkPopWinFeat       : "Popup Window Features",\r
+DlgLnkPopResize                : "Resizable",\r
+DlgLnkPopLocation      : "Location Bar",\r
+DlgLnkPopMenu          : "Menu Bar",\r
+DlgLnkPopScroll                : "Scroll Bars",\r
+DlgLnkPopStatus                : "Status Bar",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Full Screen (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Width",\r
+DlgLnkPopHeight                : "Height",\r
+DlgLnkPopLeft          : "Left Position",\r
+DlgLnkPopTop           : "Top Position",\r
+\r
+DlnLnkMsgNoUrl         : "Please type the link URL",\r
+DlnLnkMsgNoEMail       : "Please type the e-mail address",\r
+DlnLnkMsgNoAnchor      : "Please select an anchor",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Select Color",\r
+DlgColorBtnClear       : "Clear",\r
+DlgColorHighlight      : "Highlight",\r
+DlgColorSelected       : "Selected",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insert a Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Select Special Character",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Table Properties",\r
+DlgTableRows           : "Rows",\r
+DlgTableColumns                : "Columns",\r
+DlgTableBorder         : "Border size",\r
+DlgTableAlign          : "Alignment",\r
+DlgTableAlignNotSet    : "<Not set>",\r
+DlgTableAlignLeft      : "Left",\r
+DlgTableAlignCenter    : "Center",\r
+DlgTableAlignRight     : "Right",\r
+DlgTableWidth          : "Width",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Height",\r
+DlgTableCellSpace      : "Cell spacing",\r
+DlgTableCellPad                : "Cell padding",\r
+DlgTableCaption                : "Caption",\r
+DlgTableSummary                : "Summary",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cell Properties",\r
+DlgCellWidth           : "Width",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Height",\r
+DlgCellWordWrap                : "Word Wrap",\r
+DlgCellWordWrapNotSet  : "<Not set>",\r
+DlgCellWordWrapYes     : "Yes",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Horizontal Alignment",\r
+DlgCellHorAlignNotSet  : "<Not set>",\r
+DlgCellHorAlignLeft    : "Left",\r
+DlgCellHorAlignCenter  : "Center",\r
+DlgCellHorAlignRight: "Right",\r
+DlgCellVerAlign                : "Vertical Alignment",\r
+DlgCellVerAlignNotSet  : "<Not set>",\r
+DlgCellVerAlignTop     : "Top",\r
+DlgCellVerAlignMiddle  : "Middle",\r
+DlgCellVerAlignBottom  : "Bottom",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Rows Span",\r
+DlgCellCollSpan                : "Columns Span",\r
+DlgCellBackColor       : "Background Color",\r
+DlgCellBorderColor     : "Border Color",\r
+DlgCellBtnSelect       : "Select...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Find",\r
+DlgFindFindBtn         : "Find",\r
+DlgFindNotFoundMsg     : "The specified text was not found.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Replace",\r
+DlgReplaceFindLbl              : "Find what:",\r
+DlgReplaceReplaceLbl   : "Replace with:",\r
+DlgReplaceCaseChk              : "Match case",\r
+DlgReplaceReplaceBtn   : "Replace",\r
+DlgReplaceReplAllBtn   : "Replace All",\r
+DlgReplaceWordChk              : "Match whole word",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",\r
+PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",\r
+\r
+PasteAsText            : "Paste as Plain Text",\r
+PasteFromWord  : "Paste from Word",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",\r
+DlgPasteCleanBox               : "Clean Up Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatic",\r
+ColorMoreColors        : "More Colors...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",\r
+DlgAnchorName          : "Anchor Name",\r
+DlgAnchorErrorName     : "Please type the anchor name",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",\r
+DlgSpellChangeTo               : "Change to",\r
+DlgSpellBtnIgnore              : "Ignore",\r
+DlgSpellBtnIgnoreAll   : "Ignore All",\r
+DlgSpellBtnReplace             : "Replace",\r
+DlgSpellBtnReplaceAll  : "Replace All",\r
+DlgSpellBtnUndo                        : "Undo",\r
+DlgSpellNoSuggestions  : "- No suggestions -",\r
+DlgSpellProgress               : "Spell check in progress...",\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",\r
+DlgSpellOneChange              : "Spell check complete: One word changed",\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",\r
+DlgCheckboxValue       : "Value",\r
+DlgCheckboxSelected    : "Selected",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",\r
+DlgSelectValue         : "Value",\r
+DlgSelectSize          : "Size",\r
+DlgSelectLines         : "lines",\r
+DlgSelectChkMulti      : "Allow multiple selections",\r
+DlgSelectOpAvail       : "Available Options",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Value",\r
+DlgSelectBtnAdd                : "Add",\r
+DlgSelectBtnModify     : "Modify",\r
+DlgSelectBtnUp         : "Up",\r
+DlgSelectBtnDown       : "Down",\r
+DlgSelectBtnSetValue : "Set as selected value",\r
+DlgSelectBtnDelete     : "Delete",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",\r
+DlgTextareaCols        : "Columns",\r
+DlgTextareaRows        : "Rows",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",\r
+DlgTextValue           : "Value",\r
+DlgTextCharWidth       : "Character Width",\r
+DlgTextMaxChars                : "Maximum Characters",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Password",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",\r
+DlgHiddenValue : "Value",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",\r
+NumberedListProp       : "Numbered List Properties",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Circle",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Square",\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Background",\r
+DlgDocColorsTab                : "Colors and Margins",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Page Title",\r
+DlgDocLangDir          : "Language Direction",\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",\r
+DlgDocLangCode         : "Language Code",\r
+DlgDocCharSet          : "Character Set Encoding",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "Other Character Set Encoding",\r
+\r
+DlgDocDocType          : "Document Type Heading",\r
+DlgDocDocTypeOther     : "Other Document Type Heading",\r
+DlgDocIncXHTML         : "Include XHTML Declarations",\r
+DlgDocBgColor          : "Background Color",\r
+DlgDocBgImage          : "Background Image URL",\r
+DlgDocBgNoScroll       : "Nonscrolling Background",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Visited Link",\r
+DlgDocCActive          : "Active Link",\r
+DlgDocMargins          : "Page Margins",\r
+DlgDocMaTop                    : "Top",\r
+DlgDocMaLeft           : "Left",\r
+DlgDocMaRight          : "Right",\r
+DlgDocMaBottom         : "Bottom",\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",\r
+DlgDocMeDescr          : "Document Description",\r
+DlgDocMeAuthor         : "Author",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Preview",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",\r
+DlgTemplatesTitle      : "Content Templates",\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br />(the actual contents will be lost):",\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",\r
+DlgTemplatesNoTpl      : "(No templates defined)",\r
+DlgTemplatesReplace    : "Replace actual contents",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",\r
+DlgAboutBrowserInfoTab : "Browser Info",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "For further information go to"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/eo.js b/httemplate/elements/fckeditor/editor/lang/eo.js
new file mode 100644 (file)
index 0000000..04f7364
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Esperanto language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Kaŝi Ilobreton",\r
+ToolbarExpand          : "Vidigi Ilojn",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Sekurigi",\r
+NewPage                                : "Nova Paĝo",\r
+Preview                                : "Vidigi Aspekton",\r
+Cut                                    : "Eltondi",\r
+Copy                           : "Kopii",\r
+Paste                          : "Interglui",\r
+PasteText                      : "Interglui kiel Tekston",\r
+PasteWord                      : "Interglui el Word",\r
+Print                          : "Presi",\r
+SelectAll                      : "Elekti ĉion",\r
+RemoveFormat           : "Forigi Formaton",\r
+InsertLinkLbl          : "Ligilo",\r
+InsertLink                     : "Enmeti/Ŝanĝi Ligilon",\r
+RemoveLink                     : "Forigi Ligilon",\r
+Anchor                         : "Enmeti/Ŝanĝi Ankron",\r
+InsertImageLbl         : "Bildo",\r
+InsertImage                    : "Enmeti/Ŝanĝi Bildon",\r
+InsertFlashLbl         : "Flash",      //MISSING\r
+InsertFlash                    : "Insert/Edit Flash",  //MISSING\r
+InsertTableLbl         : "Tabelo",\r
+InsertTable                    : "Enmeti/Ŝanĝi Tabelon",\r
+InsertLineLbl          : "Horizonta Linio",\r
+InsertLine                     : "Enmeti Horizonta Linio",\r
+InsertSpecialCharLbl: "Speciala Signo",\r
+InsertSpecialChar      : "Enmeti Specialan Signon",\r
+InsertSmileyLbl                : "Mienvinjeto",\r
+InsertSmiley           : "Enmeti Mienvinjeton",\r
+About                          : "Pri FCKeditor",\r
+Bold                           : "Grasa",\r
+Italic                         : "Kursiva",\r
+Underline                      : "Substreko",\r
+StrikeThrough          : "Trastreko",\r
+Subscript                      : "Subskribo",\r
+Superscript                    : "Superskribo",\r
+LeftJustify                    : "Maldekstrigi",\r
+CenterJustify          : "Centrigi",\r
+RightJustify           : "Dekstrigi",\r
+BlockJustify           : "Ĝisrandigi Ambaŭflanke",\r
+DecreaseIndent         : "Malpligrandigi Krommarĝenon",\r
+IncreaseIndent         : "Pligrandigi Krommarĝenon",\r
+Undo                           : "Malfari",\r
+Redo                           : "Refari",\r
+NumberedListLbl                : "Numera Listo",\r
+NumberedList           : "Enmeti/Forigi Numeran Liston",\r
+BulletedListLbl                : "Bula Listo",\r
+BulletedList           : "Enmeti/Forigi Bulan Liston",\r
+ShowTableBorders       : "Vidigi Borderojn de Tabelo",\r
+ShowDetails                    : "Vidigi Detalojn",\r
+Style                          : "Stilo",\r
+FontFormat                     : "Formato",\r
+Font                           : "Tiparo",\r
+FontSize                       : "Grando",\r
+TextColor                      : "Teksta Koloro",\r
+BGColor                                : "Fona Koloro",\r
+Source                         : "Fonto",\r
+Find                           : "Serĉi",\r
+Replace                                : "Anstataŭigi",\r
+SpellCheck                     : "Literumada Kontrolilo",\r
+UniversalKeyboard      : "Universala Klavaro",\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Formularo",\r
+Checkbox               : "Markobutono",\r
+RadioButton            : "Radiobutono",\r
+TextField              : "Teksta kampo",\r
+Textarea               : "Teksta Areo",\r
+HiddenField            : "Kaŝita Kampo",\r
+Button                 : "Butono",\r
+SelectionField : "Elekta Kampo",\r
+ImageButton            : "Bildbutono",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Modifier Ligilon",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Enmeti Linion",\r
+DeleteRows                     : "Forigi Liniojn",\r
+InsertColumn           : "Enmeti Kolumnon",\r
+DeleteColumns          : "Forigi Kolumnojn",\r
+InsertCell                     : "Enmeti Ĉelon",\r
+DeleteCells                    : "Forigi Ĉelojn",\r
+MergeCells                     : "Kunfandi Ĉelojn",\r
+SplitCell                      : "Dividi Ĉelojn",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Atributoj de Ĉelo",\r
+TableProperties                : "Atributoj de Tabelo",\r
+ImageProperties                : "Atributoj de Bildo",\r
+FlashProperties                : "Flash Properties",   //MISSING\r
+\r
+AnchorProp                     : "Ankraj Atributoj",\r
+ButtonProp                     : "Butonaj Atributoj",\r
+CheckboxProp           : "Markobutonaj Atributoj",\r
+HiddenFieldProp                : "Atributoj de Kaŝita Kampo",\r
+RadioButtonProp                : "Radiobutonaj Atributoj",\r
+ImageButtonProp                : "Bildbutonaj Atributoj",\r
+TextFieldProp          : "Atributoj de Teksta Kampo",\r
+SelectionFieldProp     : "Atributoj de Elekta Kampo",\r
+TextareaProp           : "Atributoj de Teksta Areo",\r
+FormProp                       : "Formularaj Atributoj",\r
+\r
+FontFormats                    : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Traktado de XHTML. Bonvolu pacienci...",\r
+Done                           : "Finita",\r
+PasteWordConfirm       : "La algluota teksto ŝajnas esti Word-devena. Ĉu vi volas purigi ĝin antaŭ ol interglui?",\r
+NotCompatiblePaste     : "Tiu ĉi komando bezonas almenaŭ Internet Explorer 5.5. Ĉu vi volas daŭrigi sen purigado?",\r
+UnknownToolbarItem     : "Ilobretero nekonata \"%1\"",\r
+UnknownCommand         : "Komandonomo nekonata \"%1\"",\r
+NotImplemented         : "Komando ne ankoraŭ realigita",\r
+UnknownToolbarSet      : "La ilobreto \"%1\" ne ekzistas",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Akcepti",\r
+DlgBtnCancel           : "Rezigni",\r
+DlgBtnClose                    : "Fermi",\r
+DlgBtnBrowseServer     : "Foliumi en la Servilo",\r
+DlgAdvancedTag         : "Speciala",\r
+DlgOpOther                     : "<Alia>",\r
+DlgInfoTab                     : "Info",       //MISSING\r
+DlgAlertUrl                    : "Please insert the URL",      //MISSING\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<Defaŭlta>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Skribdirekto",\r
+DlgGenLangDirLtr       : "De maldekstro dekstren (LTR)",\r
+DlgGenLangDirRtl       : "De dekstro maldekstren (RTL)",\r
+DlgGenLangCode         : "Lingva Kodo",\r
+DlgGenAccessKey                : "Fulmoklavo",\r
+DlgGenName                     : "Nomo",\r
+DlgGenTabIndex         : "Taba Ordo",\r
+DlgGenLongDescr                : "URL de Longa Priskribo",\r
+DlgGenClass                    : "Klasoj de Stilfolioj",\r
+DlgGenTitle                    : "Indika Titolo",\r
+DlgGenContType         : "Indika Enhavotipo",\r
+DlgGenLinkCharset      : "Signaro de la Ligita Rimedo",\r
+DlgGenStyle                    : "Stilo",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Atributoj de Bildo",\r
+DlgImgInfoTab          : "Informoj pri Bildo",\r
+DlgImgBtnUpload                : "Sendu al Servilo",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Alŝuti",\r
+DlgImgAlt                      : "Anstataŭiga Teksto",\r
+DlgImgWidth                    : "Larĝo",\r
+DlgImgHeight           : "Alto",\r
+DlgImgLockRatio                : "Konservi Proporcion",\r
+DlgBtnResetSize                : "Origina Grando",\r
+DlgImgBorder           : "Bordero",\r
+DlgImgHSpace           : "HSpaco",\r
+DlgImgVSpace           : "VSpaco",\r
+DlgImgAlign                    : "Ĝisrandigo",\r
+DlgImgAlignLeft                : "Maldekstre",\r
+DlgImgAlignAbsBottom: "Abs Malsupre",\r
+DlgImgAlignAbsMiddle: "Abs Centre",\r
+DlgImgAlignBaseline    : "Je Malsupro de Teksto",\r
+DlgImgAlignBottom      : "Malsupre",\r
+DlgImgAlignMiddle      : "Centre",\r
+DlgImgAlignRight       : "Dekstre",\r
+DlgImgAlignTextTop     : "Je Supro de Teksto",\r
+DlgImgAlignTop         : "Supre",\r
+DlgImgPreview          : "Vidigi Aspekton",\r
+DlgImgAlertUrl         : "Bonvolu tajpi la URL de la bildo",\r
+DlgImgLinkTab          : "Link",       //MISSING\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",   //MISSING\r
+DlgFlashChkPlay                : "Auto Play",  //MISSING\r
+DlgFlashChkLoop                : "Loop",       //MISSING\r
+DlgFlashChkMenu                : "Enable Flash Menu",  //MISSING\r
+DlgFlashScale          : "Scale",      //MISSING\r
+DlgFlashScaleAll       : "Show all",   //MISSING\r
+DlgFlashScaleNoBorder  : "No Border",  //MISSING\r
+DlgFlashScaleFit       : "Exact Fit",  //MISSING\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Ligilo",\r
+DlgLnkInfoTab          : "Informoj pri la Ligilo",\r
+DlgLnkTargetTab                : "Celo",\r
+\r
+DlgLnkType                     : "Tipo de Ligilo",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ankri en tiu ĉi paĝo",\r
+DlgLnkTypeEMail                : "Retpoŝto",\r
+DlgLnkProto                    : "Protokolo",\r
+DlgLnkProtoOther       : "<alia>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Elekti Ankron",\r
+DlgLnkAnchorByName     : "Per Ankronomo",\r
+DlgLnkAnchorById       : "Per Elementidentigilo",\r
+DlgLnkNoAnchors                : "<Ne disponeblas ankroj en la dokumento>",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Retadreso",\r
+DlgLnkEMailSubject     : "Temlinio",\r
+DlgLnkEMailBody                : "Mesaĝa korpo",\r
+DlgLnkUpload           : "Alŝuti",\r
+DlgLnkBtnUpload                : "Sendi al Servilo",\r
+\r
+DlgLnkTarget           : "Celo",\r
+DlgLnkTargetFrame      : "<kadro>",\r
+DlgLnkTargetPopup      : "<ŝprucfenestro>",\r
+DlgLnkTargetBlank      : "Nova Fenestro (_blank)",\r
+DlgLnkTargetParent     : "Gepatra Fenestro (_parent)",\r
+DlgLnkTargetSelf       : "Sama Fenestro (_self)",\r
+DlgLnkTargetTop                : "Plej Supra Fenestro (_top)",\r
+DlgLnkTargetFrameName  : "Nomo de Kadro",\r
+DlgLnkPopWinName       : "Nomo de Ŝprucfenestro",\r
+DlgLnkPopWinFeat       : "Atributoj de la Ŝprucfenestro",\r
+DlgLnkPopResize                : "Grando Ŝanĝebla",\r
+DlgLnkPopLocation      : "Adresobreto",\r
+DlgLnkPopMenu          : "Menubreto",\r
+DlgLnkPopScroll                : "Rulumlisteloj",\r
+DlgLnkPopStatus                : "Statobreto",\r
+DlgLnkPopToolbar       : "Ilobreto",\r
+DlgLnkPopFullScrn      : "Tutekrane (IE)",\r
+DlgLnkPopDependent     : "Dependa (Netscape)",\r
+DlgLnkPopWidth         : "Larĝo",\r
+DlgLnkPopHeight                : "Alto",\r
+DlgLnkPopLeft          : "Pozicio de Maldekstro",\r
+DlgLnkPopTop           : "Pozicio de Supro",\r
+\r
+DlnLnkMsgNoUrl         : "Bonvolu entajpi la URL-on",\r
+DlnLnkMsgNoEMail       : "Bonvolu entajpi la retadreson",\r
+DlnLnkMsgNoAnchor      : "Bonvolu elekti ankron",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Elekti",\r
+DlgColorBtnClear       : "Forigi",\r
+DlgColorHighlight      : "Emfazi",\r
+DlgColorSelected       : "Elektita",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Enmeti Mienvinjeton",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Enmeti Specialan Signon",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Atributoj de Tabelo",\r
+DlgTableRows           : "Linioj",\r
+DlgTableColumns                : "Kolumnoj",\r
+DlgTableBorder         : "Bordero",\r
+DlgTableAlign          : "Ĝisrandigo",\r
+DlgTableAlignNotSet    : "<Defaŭlte>",\r
+DlgTableAlignLeft      : "Maldekstre",\r
+DlgTableAlignCenter    : "Centre",\r
+DlgTableAlignRight     : "Dekstre",\r
+DlgTableWidth          : "Larĝo",\r
+DlgTableWidthPx                : "Bitbilderoj",\r
+DlgTableWidthPc                : "elcentoj",\r
+DlgTableHeight         : "Alto",\r
+DlgTableCellSpace      : "Interspacigo de Ĉeloj",\r
+DlgTableCellPad                : "Ĉirkaŭenhava Plenigado",\r
+DlgTableCaption                : "Titolo",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Atributoj de Celo",\r
+DlgCellWidth           : "Larĝo",\r
+DlgCellWidthPx         : "bitbilderoj",\r
+DlgCellWidthPc         : "elcentoj",\r
+DlgCellHeight          : "Alto",\r
+DlgCellWordWrap                : "Linifaldo",\r
+DlgCellWordWrapNotSet  : "<Defaŭlte>",\r
+DlgCellWordWrapYes     : "Jes",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Horizonta Ĝisrandigo",\r
+DlgCellHorAlignNotSet  : "<Defaŭlte>",\r
+DlgCellHorAlignLeft    : "Maldekstre",\r
+DlgCellHorAlignCenter  : "Centre",\r
+DlgCellHorAlignRight: "Dekstre",\r
+DlgCellVerAlign                : "Vertikala Ĝisrandigo",\r
+DlgCellVerAlignNotSet  : "<Defaŭlte>",\r
+DlgCellVerAlignTop     : "Supre",\r
+DlgCellVerAlignMiddle  : "Centre",\r
+DlgCellVerAlignBottom  : "Malsupre",\r
+DlgCellVerAlignBaseline        : "Je Malsupro de Teksto",\r
+DlgCellRowSpan         : "Linioj Kunfanditaj",\r
+DlgCellCollSpan                : "Kolumnoj Kunfanditaj",\r
+DlgCellBackColor       : "Fono",\r
+DlgCellBorderColor     : "Bordero",\r
+DlgCellBtnSelect       : "Elekti...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Serĉi",\r
+DlgFindFindBtn         : "Serĉi",\r
+DlgFindNotFoundMsg     : "La celteksto ne estas trovita.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Anstataŭigi",\r
+DlgReplaceFindLbl              : "Serĉi:",\r
+DlgReplaceReplaceLbl   : "Anstataŭigi per:",\r
+DlgReplaceCaseChk              : "Kongruigi Usklecon",\r
+DlgReplaceReplaceBtn   : "Anstataŭigi",\r
+DlgReplaceReplAllBtn   : "Anstataŭigi Ĉiun",\r
+DlgReplaceWordChk              : "Tuta Vorto",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).",\r
+PasteErrorCopy : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).",\r
+\r
+PasteAsText            : "Interglui kiel Tekston",\r
+PasteFromWord  : "Interglui el Word",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",    //MISSING\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",       //MISSING\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",  //MISSING\r
+DlgPasteCleanBox               : "Clean Up Box",       //MISSING\r
+\r
+// Color Picker\r
+ColorAutomatic : "Aŭtomata",\r
+ColorMoreColors        : "Pli da Koloroj...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentaj Atributoj",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankraj Atributoj",\r
+DlgAnchorName          : "Ankra Nomo",\r
+DlgAnchorErrorName     : "Bv tajpi la ankran nomon",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ne trovita en la vortaro",\r
+DlgSpellChangeTo               : "Ŝanĝi al",\r
+DlgSpellBtnIgnore              : "Malatenti",\r
+DlgSpellBtnIgnoreAll   : "Malatenti Ĉiun",\r
+DlgSpellBtnReplace             : "Anstataŭigi",\r
+DlgSpellBtnReplaceAll  : "Anstataŭigi Ĉiun",\r
+DlgSpellBtnUndo                        : "Malfari",\r
+DlgSpellNoSuggestions  : "- Neniu propono -",\r
+DlgSpellProgress               : "Literumkontrolado daŭras...",\r
+DlgSpellNoMispell              : "Literumkontrolado finita: neniu fuŝo trovita",\r
+DlgSpellNoChanges              : "Literumkontrolado finita: neniu vorto ŝanĝita",\r
+DlgSpellOneChange              : "Literumkontrolado finita: unu vorto ŝanĝita",\r
+DlgSpellManyChanges            : "Literumkontrolado finita: %1 vortoj ŝanĝitaj",\r
+\r
+IeSpellDownload                        : "Literumada Kontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Teksto (Valoro)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nomo",\r
+DlgCheckboxValue       : "Valoro",\r
+DlgCheckboxSelected    : "Elektita",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nomo",\r
+DlgFormAction  : "Ago",\r
+DlgFormMethod  : "Metodo",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nomo",\r
+DlgSelectValue         : "Valoro",\r
+DlgSelectSize          : "Grando",\r
+DlgSelectLines         : "Linioj",\r
+DlgSelectChkMulti      : "Permesi Plurajn Elektojn",\r
+DlgSelectOpAvail       : "Elektoj Disponeblaj",\r
+DlgSelectOpText                : "Teksto",\r
+DlgSelectOpValue       : "Valoro",\r
+DlgSelectBtnAdd                : "Aldoni",\r
+DlgSelectBtnModify     : "Modifi",\r
+DlgSelectBtnUp         : "Supren",\r
+DlgSelectBtnDown       : "Malsupren",\r
+DlgSelectBtnSetValue : "Agordi kiel Elektitan Valoron",\r
+DlgSelectBtnDelete     : "Forigi",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nomo",\r
+DlgTextareaCols        : "Kolumnoj",\r
+DlgTextareaRows        : "Vicoj",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nomo",\r
+DlgTextValue           : "Valoro",\r
+DlgTextCharWidth       : "Signolarĝo",\r
+DlgTextMaxChars                : "Maksimuma Nombro da Signoj",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Teksto",\r
+DlgTextTypePass                : "Pasvorto",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nomo",\r
+DlgHiddenValue : "Valoro",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Atributoj de Bula Listo",\r
+NumberedListProp       : "Atributoj de Numera Listo",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Cirklo",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Kvadrato",\r
+DlgLstTypeNumbers      : "Ciferoj (1, 2, 3)",\r
+DlgLstTypeLCase                : "Minusklaj Literoj (a, b, c)",\r
+DlgLstTypeUCase                : "Majusklaj Literoj (A, B, C)",\r
+DlgLstTypeSRoman       : "Malgrandaj Romanaj Ciferoj (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Grandaj Romanaj Ciferoj (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Ĝeneralaĵoj",\r
+DlgDocBackTab          : "Fono",\r
+DlgDocColorsTab                : "Koloroj kaj Marĝenoj",\r
+DlgDocMetaTab          : "Metadatumoj",\r
+\r
+DlgDocPageTitle                : "Paĝotitolo",\r
+DlgDocLangDir          : "Skribdirekto de la Lingvo",\r
+DlgDocLangDirLTR       : "De maldekstro dekstren (LTR)",\r
+DlgDocLangDirRTL       : "De dekstro maldekstren (LTR)",\r
+DlgDocLangCode         : "Lingvokodo",\r
+DlgDocCharSet          : "Signara Kodo",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Alia Signara Kodo",\r
+\r
+DlgDocDocType          : "Dokumenta Tipo",\r
+DlgDocDocTypeOther     : "Alia Dokumenta Tipo",\r
+DlgDocIncXHTML         : "Inkluzivi XHTML Deklaroj",\r
+DlgDocBgColor          : "Fona Koloro",\r
+DlgDocBgImage          : "URL de Fona Bildo",\r
+DlgDocBgNoScroll       : "Neruluma Fono",\r
+DlgDocCText                    : "Teksto",\r
+DlgDocCLink                    : "Ligilo",\r
+DlgDocCVisited         : "Vizitita Ligilo",\r
+DlgDocCActive          : "Aktiva Ligilo",\r
+DlgDocMargins          : "Paĝaj Marĝenoj",\r
+DlgDocMaTop                    : "Supra",\r
+DlgDocMaLeft           : "Maldekstra",\r
+DlgDocMaRight          : "Dekstra",\r
+DlgDocMaBottom         : "Malsupra",\r
+DlgDocMeIndex          : "Ŝlosilvortoj de la Dokumento (apartigita de komoj)",\r
+DlgDocMeDescr          : "Dokumenta Priskribo",\r
+DlgDocMeAuthor         : "Verkinto",\r
+DlgDocMeCopy           : "Kopirajto",\r
+DlgDocPreview          : "Aspekto",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",  //MISSING\r
+DlgTemplatesTitle      : "Content Templates",  //MISSING\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br />(the actual contents will be lost):",  //MISSING\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",     //MISSING\r
+DlgTemplatesNoTpl      : "(No templates defined)",     //MISSING\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Pri",\r
+DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "versio",\r
+DlgAboutInfo           : "Por pli da informoj, vizitu"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/es.js b/httemplate/elements/fckeditor/editor/lang/es.js
new file mode 100644 (file)
index 0000000..cfed808
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Spanish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Contraer Barra",\r
+ToolbarExpand          : "Expandir Barra",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Guardar",\r
+NewPage                                : "Nueva Página",\r
+Preview                                : "Vista Previa",\r
+Cut                                    : "Cortar",\r
+Copy                           : "Copiar",\r
+Paste                          : "Pegar",\r
+PasteText                      : "Pegar como texto plano",\r
+PasteWord                      : "Pegar desde Word",\r
+Print                          : "Imprimir",\r
+SelectAll                      : "Seleccionar Todo",\r
+RemoveFormat           : "Eliminar Formato",\r
+InsertLinkLbl          : "Vínculo",\r
+InsertLink                     : "Insertar/Editar Vínculo",\r
+RemoveLink                     : "Eliminar Vínculo",\r
+Anchor                         : "Referencia",\r
+InsertImageLbl         : "Imagen",\r
+InsertImage                    : "Insertar/Editar Imagen",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insertar/Editar Flash",\r
+InsertTableLbl         : "Tabla",\r
+InsertTable                    : "Insertar/Editar Tabla",\r
+InsertLineLbl          : "Línea",\r
+InsertLine                     : "Insertar Línea Horizontal",\r
+InsertSpecialCharLbl: "Caracter Especial",\r
+InsertSpecialChar      : "Insertar Caracter Especial",\r
+InsertSmileyLbl                : "Emoticons",\r
+InsertSmiley           : "Insertar Emoticons",\r
+About                          : "Acerca de FCKeditor",\r
+Bold                           : "Negrita",\r
+Italic                         : "Cursiva",\r
+Underline                      : "Subrayado",\r
+StrikeThrough          : "Tachado",\r
+Subscript                      : "Subíndice",\r
+Superscript                    : "Superíndice",\r
+LeftJustify                    : "Alinear a Izquierda",\r
+CenterJustify          : "Centrar",\r
+RightJustify           : "Alinear a Derecha",\r
+BlockJustify           : "Justificado",\r
+DecreaseIndent         : "Disminuir Sangría",\r
+IncreaseIndent         : "Aumentar Sangría",\r
+Undo                           : "Deshacer",\r
+Redo                           : "Rehacer",\r
+NumberedListLbl                : "Numeración",\r
+NumberedList           : "Insertar/Eliminar Numeración",\r
+BulletedListLbl                : "Viñetas",\r
+BulletedList           : "Insertar/Eliminar Viñetas",\r
+ShowTableBorders       : "Mostrar Bordes de Tablas",\r
+ShowDetails                    : "Mostrar saltos de Párrafo",\r
+Style                          : "Estilo",\r
+FontFormat                     : "Formato",\r
+Font                           : "Fuente",\r
+FontSize                       : "Tamaño",\r
+TextColor                      : "Color de Texto",\r
+BGColor                                : "Color de Fondo",\r
+Source                         : "Fuente HTML",\r
+Find                           : "Buscar",\r
+Replace                                : "Reemplazar",\r
+SpellCheck                     : "Ortografía",\r
+UniversalKeyboard      : "Teclado Universal",\r
+PageBreakLbl           : "Salto de Página",\r
+PageBreak                      : "Insertar Salto de Página",\r
+\r
+Form                   : "Formulario",\r
+Checkbox               : "Casilla de Verificación",\r
+RadioButton            : "Botones de Radio",\r
+TextField              : "Campo de Texto",\r
+Textarea               : "Area de Texto",\r
+HiddenField            : "Campo Oculto",\r
+Button                 : "Botón",\r
+SelectionField : "Campo de Selección",\r
+ImageButton            : "Botón Imagen",\r
+\r
+FitWindow              : "Maximizar el tamaño del editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Editar Vínculo",\r
+CellCM                         : "Celda",\r
+RowCM                          : "Fila",\r
+ColumnCM                       : "Columna",\r
+InsertRow                      : "Insertar Fila",\r
+DeleteRows                     : "Eliminar Filas",\r
+InsertColumn           : "Insertar Columna",\r
+DeleteColumns          : "Eliminar Columnas",\r
+InsertCell                     : "Insertar Celda",\r
+DeleteCells                    : "Eliminar Celdas",\r
+MergeCells                     : "Combinar Celdas",\r
+SplitCell                      : "Dividir Celda",\r
+TableDelete                    : "Eliminar Tabla",\r
+CellProperties         : "Propiedades de Celda",\r
+TableProperties                : "Propiedades de Tabla",\r
+ImageProperties                : "Propiedades de Imagen",\r
+FlashProperties                : "Propiedades de Flash",\r
+\r
+AnchorProp                     : "Propiedades de Referencia",\r
+ButtonProp                     : "Propiedades de Botón",\r
+CheckboxProp           : "Propiedades de Casilla",\r
+HiddenFieldProp                : "Propiedades de Campo Oculto",\r
+RadioButtonProp                : "Propiedades de Botón de Radio",\r
+ImageButtonProp                : "Propiedades de Botón de Imagen",\r
+TextFieldProp          : "Propiedades de Campo de Texto",\r
+SelectionFieldProp     : "Propiedades de Campo de Selección",\r
+TextareaProp           : "Propiedades de Area de Texto",\r
+FormProp                       : "Propiedades de Formulario",\r
+\r
+FontFormats                    : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)",           //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Procesando XHTML. Por favor, espere...",\r
+Done                           : "Hecho",\r
+PasteWordConfirm       : "El texto que desea parece provenir de Word. Desea depurarlo antes de pegarlo?",\r
+NotCompatiblePaste     : "Este comando está disponible sólo para Internet Explorer version 5.5 or superior. Desea pegar sin depurar?",\r
+UnknownToolbarItem     : "Item de barra desconocido \"%1\"",\r
+UnknownCommand         : "Nombre de comando desconocido \"%1\"",\r
+NotImplemented         : "Comando no implementado",\r
+UnknownToolbarSet      : "Nombre de barra \"%1\" no definido",\r
+NoActiveX                      : "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas características del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.",\r
+BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",\r
+DialogBlocked          : "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancelar",\r
+DlgBtnClose                    : "Cerrar",\r
+DlgBtnBrowseServer     : "Ver Servidor",\r
+DlgAdvancedTag         : "Avanzado",\r
+DlgOpOther                     : "<Otro>",\r
+DlgInfoTab                     : "Información",\r
+DlgAlertUrl                    : "Inserte el URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<No definido>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Orientación de idioma",\r
+DlgGenLangDirLtr       : "Izquierda a Derecha (LTR)",\r
+DlgGenLangDirRtl       : "Derecha a Izquierda (RTL)",\r
+DlgGenLangCode         : "Código de idioma",\r
+DlgGenAccessKey                : "Clave de Acceso",\r
+DlgGenName                     : "Nombre",\r
+DlgGenTabIndex         : "Indice de tabulación",\r
+DlgGenLongDescr                : "Descripción larga URL",\r
+DlgGenClass                    : "Clases de hojas de estilo",\r
+DlgGenTitle                    : "Título",\r
+DlgGenContType         : "Tipo de Contenido",\r
+DlgGenLinkCharset      : "Fuente de caracteres vinculado",\r
+DlgGenStyle                    : "Estilo",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Propiedades de Imagen",\r
+DlgImgInfoTab          : "Información de Imagen",\r
+DlgImgBtnUpload                : "Enviar al Servidor",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Cargar",\r
+DlgImgAlt                      : "Texto Alternativo",\r
+DlgImgWidth                    : "Anchura",\r
+DlgImgHeight           : "Altura",\r
+DlgImgLockRatio                : "Proporcional",\r
+DlgBtnResetSize                : "Tamaño Original",\r
+DlgImgBorder           : "Borde",\r
+DlgImgHSpace           : "Esp.Horiz",\r
+DlgImgVSpace           : "Esp.Vert",\r
+DlgImgAlign                    : "Alineación",\r
+DlgImgAlignLeft                : "Izquierda",\r
+DlgImgAlignAbsBottom: "Abs inferior",\r
+DlgImgAlignAbsMiddle: "Abs centro",\r
+DlgImgAlignBaseline    : "Línea de base",\r
+DlgImgAlignBottom      : "Pie",\r
+DlgImgAlignMiddle      : "Centro",\r
+DlgImgAlignRight       : "Derecha",\r
+DlgImgAlignTextTop     : "Tope del texto",\r
+DlgImgAlignTop         : "Tope",\r
+DlgImgPreview          : "Vista Previa",\r
+DlgImgAlertUrl         : "Por favor tipee el URL de la imagen",\r
+DlgImgLinkTab          : "Vínculo",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propiedades de Flash",\r
+DlgFlashChkPlay                : "Autoejecución",\r
+DlgFlashChkLoop                : "Repetir",\r
+DlgFlashChkMenu                : "Activar Menú Flash",\r
+DlgFlashScale          : "Escala",\r
+DlgFlashScaleAll       : "Mostrar todo",\r
+DlgFlashScaleNoBorder  : "Sin Borde",\r
+DlgFlashScaleFit       : "Ajustado",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Vínculo",\r
+DlgLnkInfoTab          : "Información de Vínculo",\r
+DlgLnkTargetTab                : "Destino",\r
+\r
+DlgLnkType                     : "Tipo de vínculo",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Referencia en esta página",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocolo",\r
+DlgLnkProtoOther       : "<otro>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Seleccionar una referencia",\r
+DlgLnkAnchorByName     : "Por Nombre de Referencia",\r
+DlgLnkAnchorById       : "Por ID de elemento",\r
+DlgLnkNoAnchors                : "<No hay referencias disponibles en el documento>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Dirección de E-Mail",\r
+DlgLnkEMailSubject     : "Título del Mensaje",\r
+DlgLnkEMailBody                : "Cuerpo del Mensaje",\r
+DlgLnkUpload           : "Cargar",\r
+DlgLnkBtnUpload                : "Enviar al Servidor",\r
+\r
+DlgLnkTarget           : "Destino",\r
+DlgLnkTargetFrame      : "<marco>",\r
+DlgLnkTargetPopup      : "<ventana emergente>",\r
+DlgLnkTargetBlank      : "Nueva Ventana(_blank)",\r
+DlgLnkTargetParent     : "Ventana Padre (_parent)",\r
+DlgLnkTargetSelf       : "Misma Ventana (_self)",\r
+DlgLnkTargetTop                : "Ventana primaria (_top)",\r
+DlgLnkTargetFrameName  : "Nombre del Marco Destino",\r
+DlgLnkPopWinName       : "Nombre de Ventana Emergente",\r
+DlgLnkPopWinFeat       : "Características de Ventana Emergente",\r
+DlgLnkPopResize                : "Ajustable",\r
+DlgLnkPopLocation      : "Barra de ubicación",\r
+DlgLnkPopMenu          : "Barra de Menú",\r
+DlgLnkPopScroll                : "Barras de desplazamiento",\r
+DlgLnkPopStatus                : "Barra de Estado",\r
+DlgLnkPopToolbar       : "Barra de Herramientas",\r
+DlgLnkPopFullScrn      : "Pantalla Completa (IE)",\r
+DlgLnkPopDependent     : "Dependiente (Netscape)",\r
+DlgLnkPopWidth         : "Anchura",\r
+DlgLnkPopHeight                : "Altura",\r
+DlgLnkPopLeft          : "Posición Izquierda",\r
+DlgLnkPopTop           : "Posición Derecha",\r
+\r
+DlnLnkMsgNoUrl         : "Por favor tipee el vínculo URL",\r
+DlnLnkMsgNoEMail       : "Por favor tipee la dirección de e-mail",\r
+DlnLnkMsgNoAnchor      : "Por favor seleccione una referencia",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Seleccionar Color",\r
+DlgColorBtnClear       : "Ninguno",\r
+DlgColorHighlight      : "Resaltado",\r
+DlgColorSelected       : "Seleccionado",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insertar un Emoticon",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Seleccione un caracter especial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Propiedades de Tabla",\r
+DlgTableRows           : "Filas",\r
+DlgTableColumns                : "Columnas",\r
+DlgTableBorder         : "Tamaño de Borde",\r
+DlgTableAlign          : "Alineación",\r
+DlgTableAlignNotSet    : "<No establecido>",\r
+DlgTableAlignLeft      : "Izquierda",\r
+DlgTableAlignCenter    : "Centrado",\r
+DlgTableAlignRight     : "Derecha",\r
+DlgTableWidth          : "Anchura",\r
+DlgTableWidthPx                : "pixeles",\r
+DlgTableWidthPc                : "porcentaje",\r
+DlgTableHeight         : "Altura",\r
+DlgTableCellSpace      : "Esp. e/celdas",\r
+DlgTableCellPad                : "Esp. interior",\r
+DlgTableCaption                : "Título",\r
+DlgTableSummary                : "Síntesis",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Propiedades de Celda",\r
+DlgCellWidth           : "Anchura",\r
+DlgCellWidthPx         : "pixeles",\r
+DlgCellWidthPc         : "porcentaje",\r
+DlgCellHeight          : "Altura",\r
+DlgCellWordWrap                : "Cortar Línea",\r
+DlgCellWordWrapNotSet  : "<No establecido>",\r
+DlgCellWordWrapYes     : "Si",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Alineación Horizontal",\r
+DlgCellHorAlignNotSet  : "<No establecido>",\r
+DlgCellHorAlignLeft    : "Izquierda",\r
+DlgCellHorAlignCenter  : "Centrado",\r
+DlgCellHorAlignRight: "Derecha",\r
+DlgCellVerAlign                : "Alineación Vertical",\r
+DlgCellVerAlignNotSet  : "<Not establecido>",\r
+DlgCellVerAlignTop     : "Tope",\r
+DlgCellVerAlignMiddle  : "Medio",\r
+DlgCellVerAlignBottom  : "ie",\r
+DlgCellVerAlignBaseline        : "Línea de Base",\r
+DlgCellRowSpan         : "Abarcar Filas",\r
+DlgCellCollSpan                : "Abarcar Columnas",\r
+DlgCellBackColor       : "Color de Fondo",\r
+DlgCellBorderColor     : "Color de Borde",\r
+DlgCellBtnSelect       : "Seleccione...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Buscar",\r
+DlgFindFindBtn         : "Buscar",\r
+DlgFindNotFoundMsg     : "El texto especificado no ha sido encontrado.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Reemplazar",\r
+DlgReplaceFindLbl              : "Texto a buscar:",\r
+DlgReplaceReplaceLbl   : "Reemplazar con:",\r
+DlgReplaceCaseChk              : "Coincidir may/min",\r
+DlgReplaceReplaceBtn   : "Reemplazar",\r
+DlgReplaceReplAllBtn   : "Reemplazar Todo",\r
+DlgReplaceWordChk              : "Coincidir toda la palabra",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).",\r
+PasteErrorCopy : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).",\r
+\r
+PasteAsText            : "Pegar como Texto Plano",\r
+PasteFromWord  : "Pegar desde Word",\r
+\r
+DlgPasteMsg2   : "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorar definiciones de fuentes",\r
+DlgPasteRemoveStyles   : "Remover definiciones de estilo",\r
+DlgPasteCleanBox               : "Borrar el contenido del cuadro",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automático",\r
+ColorMoreColors        : "Más Colores...",\r
+\r
+// Document Properties\r
+DocProps               : "Propiedades del Documento",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Propiedades de la Referencia",\r
+DlgAnchorName          : "Nombre de la Referencia",\r
+DlgAnchorErrorName     : "Por favor, complete el nombre de la Referencia",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "No se encuentra en el Diccionario",\r
+DlgSpellChangeTo               : "Cambiar a",\r
+DlgSpellBtnIgnore              : "Ignorar",\r
+DlgSpellBtnIgnoreAll   : "Ignorar Todo",\r
+DlgSpellBtnReplace             : "Reemplazar",\r
+DlgSpellBtnReplaceAll  : "Reemplazar Todo",\r
+DlgSpellBtnUndo                        : "Deshacer",\r
+DlgSpellNoSuggestions  : "- No hay sugerencias -",\r
+DlgSpellProgress               : "Control de Ortografía en progreso...",\r
+DlgSpellNoMispell              : "Control finalizado: no se encontraron errores",\r
+DlgSpellNoChanges              : "Control finalizado: no se ha cambiado ninguna palabra",\r
+DlgSpellOneChange              : "Control finalizado: se ha cambiado una palabra",\r
+DlgSpellManyChanges            : "Control finalizado: se ha cambiado %1 palabras",\r
+\r
+IeSpellDownload                        : "Módulo de Control de Ortografía no instalado. ¿Desea descargarlo ahora?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Texto (Valor)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nombre",\r
+DlgCheckboxValue       : "Valor",\r
+DlgCheckboxSelected    : "Seleccionado",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nombre",\r
+DlgFormAction  : "Acción",\r
+DlgFormMethod  : "Método",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nombre",\r
+DlgSelectValue         : "Valor",\r
+DlgSelectSize          : "Tamaño",\r
+DlgSelectLines         : "Lineas",\r
+DlgSelectChkMulti      : "Permitir múltiple selección",\r
+DlgSelectOpAvail       : "Opciones disponibles",\r
+DlgSelectOpText                : "Texto",\r
+DlgSelectOpValue       : "Valor",\r
+DlgSelectBtnAdd                : "Agregar",\r
+DlgSelectBtnModify     : "Modificar",\r
+DlgSelectBtnUp         : "Subir",\r
+DlgSelectBtnDown       : "Bajar",\r
+DlgSelectBtnSetValue : "Establecer como predeterminado",\r
+DlgSelectBtnDelete     : "Eliminar",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nombre",\r
+DlgTextareaCols        : "Columnas",\r
+DlgTextareaRows        : "Filas",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nombre",\r
+DlgTextValue           : "Valor",\r
+DlgTextCharWidth       : "Caracteres de ancho",\r
+DlgTextMaxChars                : "Máximo caracteres",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Texto",\r
+DlgTextTypePass                : "Contraseña",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nombre",\r
+DlgHiddenValue : "Valor",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Propiedades de Viñetas",\r
+NumberedListProp       : "Propiedades de Numeraciones",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Círculo",\r
+DlgLstTypeDisc         : "Disco",\r
+DlgLstTypeSquare       : "Cuadrado",\r
+DlgLstTypeNumbers      : "Números (1, 2, 3)",\r
+DlgLstTypeLCase                : "letras en minúsculas (a, b, c)",\r
+DlgLstTypeUCase                : "letras en mayúsculas (A, B, C)",\r
+DlgLstTypeSRoman       : "Números Romanos (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Números Romanos (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Fondo",\r
+DlgDocColorsTab                : "Colores y Márgenes",\r
+DlgDocMetaTab          : "Meta Información",\r
+\r
+DlgDocPageTitle                : "Título de Página",\r
+DlgDocLangDir          : "Orientación de idioma",\r
+DlgDocLangDirLTR       : "Izq. a Derecha (LTR)",\r
+DlgDocLangDirRTL       : "Der. a Izquierda (RTL)",\r
+DlgDocLangCode         : "Código de Idioma",\r
+DlgDocCharSet          : "Codif. de Conjunto de Caracteres",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Otra Codificación",\r
+\r
+DlgDocDocType          : "Encabezado de Tipo de Documento",\r
+DlgDocDocTypeOther     : "Otro Encabezado",\r
+DlgDocIncXHTML         : "Incluir Declaraciones XHTML",\r
+DlgDocBgColor          : "Color de Fondo",\r
+DlgDocBgImage          : "URL de Imagen de Fondo",\r
+DlgDocBgNoScroll       : "Fondo sin rolido",\r
+DlgDocCText                    : "Texto",\r
+DlgDocCLink                    : "Vínculo",\r
+DlgDocCVisited         : "Vínculo Visitado",\r
+DlgDocCActive          : "Vínculo Activo",\r
+DlgDocMargins          : "Márgenes de Página",\r
+DlgDocMaTop                    : "Tope",\r
+DlgDocMaLeft           : "Izquierda",\r
+DlgDocMaRight          : "Derecha",\r
+DlgDocMaBottom         : "Pie",\r
+DlgDocMeIndex          : "Claves de indexación del Documento (separados por comas)",\r
+DlgDocMeDescr          : "Descripción del Documento",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Vista Previa",\r
+\r
+// Templates Dialog\r
+Templates                      : "Plantillas",\r
+DlgTemplatesTitle      : "Contenido de Plantillas",\r
+DlgTemplatesSelMsg     : "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):",\r
+DlgTemplatesLoading    : "Cargando lista de Plantillas. Por favor, aguarde...",\r
+DlgTemplatesNoTpl      : "(No hay plantillas definidas)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Acerca de",\r
+DlgAboutBrowserInfoTab : "Información de Navegador",\r
+DlgAboutLicenseTab     : "Licencia",\r
+DlgAboutVersion                : "versión",\r
+DlgAboutInfo           : "Para mayor información por favor dirigirse a"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/et.js b/httemplate/elements/fckeditor/editor/lang/et.js
new file mode 100644 (file)
index 0000000..53a147e
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Estonian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Voldi tööriistariba",\r
+ToolbarExpand          : "Laienda tööriistariba",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Salvesta",\r
+NewPage                                : "Uus leht",\r
+Preview                                : "Eelvaade",\r
+Cut                                    : "Lõika",\r
+Copy                           : "Kopeeri",\r
+Paste                          : "Kleebi",\r
+PasteText                      : "Kleebi tavalise tekstina",\r
+PasteWord                      : "Kleebi Wordist",\r
+Print                          : "Prindi",\r
+SelectAll                      : "Vali kõik",\r
+RemoveFormat           : "Eemalda vorming",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Sisesta/Muuda link",\r
+RemoveLink                     : "Eemalda link",\r
+Anchor                         : "Sisesta/Muuda ankur",\r
+InsertImageLbl         : "Pilt",\r
+InsertImage                    : "Sisesta/Muuda pilt",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Sisesta/Muuda flash",\r
+InsertTableLbl         : "Tabel",\r
+InsertTable                    : "Sisesta/Muuda tabel",\r
+InsertLineLbl          : "Joon",\r
+InsertLine                     : "Sisesta horisontaaljoon",\r
+InsertSpecialCharLbl: "Erimärgid",\r
+InsertSpecialChar      : "Sisesta erimärk",\r
+InsertSmileyLbl                : "Emotikon",\r
+InsertSmiley           : "Sisesta emotikon",\r
+About                          : "FCKeditor teave",\r
+Bold                           : "Rasvane kiri",\r
+Italic                         : "Kursiiv kiri",\r
+Underline                      : "Allajoonitud kiri",\r
+StrikeThrough          : "Läbijoonitud kiri",\r
+Subscript                      : "Allindeks",\r
+Superscript                    : "Ülaindeks",\r
+LeftJustify                    : "Vasakjoondus",\r
+CenterJustify          : "Keskjoondus",\r
+RightJustify           : "Paremjoondus",\r
+BlockJustify           : "Rööpjoondus",\r
+DecreaseIndent         : "Vähenda taanet",\r
+IncreaseIndent         : "Suurenda taanet",\r
+Undo                           : "Võta tagasi",\r
+Redo                           : "Korda toimingut",\r
+NumberedListLbl                : "Nummerdatud loetelu",\r
+NumberedList           : "Sisesta/Eemalda nummerdatud loetelu",\r
+BulletedListLbl                : "Punktiseeritud loetelu",\r
+BulletedList           : "Sisesta/Eemalda punktiseeritud loetelu",\r
+ShowTableBorders       : "Näita tabeli jooni",\r
+ShowDetails                    : "Näita üksikasju",\r
+Style                          : "Laad",\r
+FontFormat                     : "Vorming",\r
+Font                           : "Kiri",\r
+FontSize                       : "Suurus",\r
+TextColor                      : "Teksti värv",\r
+BGColor                                : "Tausta värv",\r
+Source                         : "Lähtekood",\r
+Find                           : "Otsi",\r
+Replace                                : "Asenda",\r
+SpellCheck                     : "Kontrolli õigekirja",\r
+UniversalKeyboard      : "Universaalne klaviatuur",\r
+PageBreakLbl           : "Lehepiir",\r
+PageBreak                      : "Sisesta lehevahetus koht",\r
+\r
+Form                   : "Vorm",\r
+Checkbox               : "Märkeruut",\r
+RadioButton            : "Raadionupp",\r
+TextField              : "Tekstilahter",\r
+Textarea               : "Tekstiala",\r
+HiddenField            : "Varjatud lahter",\r
+Button                 : "Nupp",\r
+SelectionField : "Valiklahter",\r
+ImageButton            : "Piltnupp",\r
+\r
+FitWindow              : "Maksimeeri redaktori mõõtmed",\r
+\r
+// Context Menu\r
+EditLink                       : "Muuda linki",\r
+CellCM                         : "Lahter",\r
+RowCM                          : "Rida",\r
+ColumnCM                       : "Veerg",\r
+InsertRow                      : "Lisa rida",\r
+DeleteRows                     : "Eemalda ridu",\r
+InsertColumn           : "Lisa veerg",\r
+DeleteColumns          : "Eemalda veerud",\r
+InsertCell                     : "Lisa lahter",\r
+DeleteCells                    : "Eemalda lahtrid",\r
+MergeCells                     : "Ühenda lahtrid",\r
+SplitCell                      : "Lahuta lahtrid",\r
+TableDelete                    : "Kustuta tabel",\r
+CellProperties         : "Lahtri atribuudid",\r
+TableProperties                : "Tabeli atribuudid",\r
+ImageProperties                : "Pildi  atribuudid",\r
+FlashProperties                : "Flash omadused",\r
+\r
+AnchorProp                     : "Ankru omadused",\r
+ButtonProp                     : "Nupu omadused",\r
+CheckboxProp           : "Märkeruudu omadused",\r
+HiddenFieldProp                : "Varjatud lahtri omadused",\r
+RadioButtonProp                : "Raadionupu omadused",\r
+ImageButtonProp                : "Piltnupu omadused",\r
+TextFieldProp          : "Tekstilahtri omadused",\r
+SelectionFieldProp     : "Valiklahtri omadused",\r
+TextareaProp           : "Tekstiala omadused",\r
+FormProp                       : "Vormi omadused",\r
+\r
+FontFormats                    : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6;Tavaline (DIV)",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Töötlen XHTML. Palun oota...",\r
+Done                           : "Tehtud",\r
+PasteWordConfirm       : "Tekst, mida soovid lisada paistab pärinevat Wordist. Kas soovid seda enne kleepimist puhastada?",\r
+NotCompatiblePaste     : "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?",\r
+UnknownToolbarItem     : "Tundmatu tööriistariba üksus \"%1\"",\r
+UnknownCommand         : "Tundmatu käsunimi \"%1\"",\r
+NotImplemented         : "Käsku ei täidetud",\r
+UnknownToolbarSet      : "Tööriistariba \"%1\" ei eksisteeri",\r
+NoActiveX                      : "Sinu veebisirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutus võimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma sirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.",\r
+BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.",\r
+DialogBlocked          : "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Loobu",\r
+DlgBtnClose                    : "Sulge",\r
+DlgBtnBrowseServer     : "Sirvi serverit",\r
+DlgAdvancedTag         : "Täpsemalt",\r
+DlgOpOther                     : "<Teine>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Palun sisesta URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<määramata>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Keele suund",\r
+DlgGenLangDirLtr       : "Vasakult paremale (LTR)",\r
+DlgGenLangDirRtl       : "Paremalt vasakule (RTL)",\r
+DlgGenLangCode         : "Keele kood",\r
+DlgGenAccessKey                : "Juurdepääsu võti",\r
+DlgGenName                     : "Nimi",\r
+DlgGenTabIndex         : "Tab indeks",\r
+DlgGenLongDescr                : "Pikk kirjeldus URL",\r
+DlgGenClass                    : "Stiilistiku klassid",\r
+DlgGenTitle                    : "Juhendav tiitel",\r
+DlgGenContType         : "Juhendava sisu tüüp",\r
+DlgGenLinkCharset      : "Lingitud ressurssi märgistik",\r
+DlgGenStyle                    : "Laad",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Pildi atribuudid",\r
+DlgImgInfoTab          : "Pildi info",\r
+DlgImgBtnUpload                : "Saada serverissee",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Lae üles",\r
+DlgImgAlt                      : "Alternatiivne tekst",\r
+DlgImgWidth                    : "Laius",\r
+DlgImgHeight           : "Kõrgus",\r
+DlgImgLockRatio                : "Lukusta kuvasuhe",\r
+DlgBtnResetSize                : "Lähtesta suurus",\r
+DlgImgBorder           : "Joon",\r
+DlgImgHSpace           : "H. vaheruum",\r
+DlgImgVSpace           : "V. vaheruum",\r
+DlgImgAlign                    : "Joondus",\r
+DlgImgAlignLeft                : "Vasak",\r
+DlgImgAlignAbsBottom: "Abs alla",\r
+DlgImgAlignAbsMiddle: "Abs keskele",\r
+DlgImgAlignBaseline    : "Baasjoonele",\r
+DlgImgAlignBottom      : "Alla",\r
+DlgImgAlignMiddle      : "Keskele",\r
+DlgImgAlignRight       : "Paremale",\r
+DlgImgAlignTextTop     : "Tekstit üles",\r
+DlgImgAlignTop         : "Üles",\r
+DlgImgPreview          : "Eelvaade",\r
+DlgImgAlertUrl         : "Palun kirjuta pildi URL",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash omadused",\r
+DlgFlashChkPlay                : "Automaatne start ",\r
+DlgFlashChkLoop                : "Korduv",\r
+DlgFlashChkMenu                : "Võimalda flash menüü",\r
+DlgFlashScale          : "Mastaap",\r
+DlgFlashScaleAll       : "Näita kõike",\r
+DlgFlashScaleNoBorder  : "Äärist ei ole",\r
+DlgFlashScaleFit       : "Täpne sobivus",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Lingi info",\r
+DlgLnkTargetTab                : "Sihtkoht",\r
+\r
+DlgLnkType                     : "Lingi tüüp",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ankur sellel lehel",\r
+DlgLnkTypeEMail                : "E-post",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<muu>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Vali ankur",\r
+DlgLnkAnchorByName     : "Ankru nime järgi",\r
+DlgLnkAnchorById       : "Elemendi id järgi",\r
+DlgLnkNoAnchors                : "(Selles dokumendis ei ole ankruid)",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-posti aadress",\r
+DlgLnkEMailSubject     : "Sõnumi teema",\r
+DlgLnkEMailBody                : "Sõnumi tekst",\r
+DlgLnkUpload           : "Lae üles",\r
+DlgLnkBtnUpload                : "Saada serverisse",\r
+\r
+DlgLnkTarget           : "Sihtkoht",\r
+DlgLnkTargetFrame      : "<raam>",\r
+DlgLnkTargetPopup      : "<hüpikaken>",\r
+DlgLnkTargetBlank      : "Uus aken (_blank)",\r
+DlgLnkTargetParent     : "Vanem aken (_parent)",\r
+DlgLnkTargetSelf       : "Sama aken (_self)",\r
+DlgLnkTargetTop                : "Pealmine aken (_top)",\r
+DlgLnkTargetFrameName  : "Sihtmärk raami nimi",\r
+DlgLnkPopWinName       : "Hüpikakna nimi",\r
+DlgLnkPopWinFeat       : "Hüpikakna omadused",\r
+DlgLnkPopResize                : "Suurendatav",\r
+DlgLnkPopLocation      : "Aadressiriba",\r
+DlgLnkPopMenu          : "Menüüriba",\r
+DlgLnkPopScroll                : "Kerimisribad",\r
+DlgLnkPopStatus                : "Olekuriba",\r
+DlgLnkPopToolbar       : "Tööriistariba",\r
+DlgLnkPopFullScrn      : "Täisekraan (IE)",\r
+DlgLnkPopDependent     : "Sõltuv (Netscape)",\r
+DlgLnkPopWidth         : "Laius",\r
+DlgLnkPopHeight                : "Kõrgus",\r
+DlgLnkPopLeft          : "Vasak asukoht",\r
+DlgLnkPopTop           : "Ülemine asukoht",\r
+\r
+DlnLnkMsgNoUrl         : "Palun kirjuta lingi URL",\r
+DlnLnkMsgNoEMail       : "Palun kirjuta E-Posti aadress",\r
+DlnLnkMsgNoAnchor      : "Palun vali ankur",\r
+DlnLnkMsgInvPopName    : "Hüpikakna nimi peab algama alfabeetilise tähega ja ei tohi sisaldada tühikuid",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Vali värv",\r
+DlgColorBtnClear       : "Tühjenda",\r
+DlgColorHighlight      : "Märgi",\r
+DlgColorSelected       : "Valitud",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Sisesta emotikon",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Vali erimärk",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabeli atribuudid",\r
+DlgTableRows           : "Read",\r
+DlgTableColumns                : "Veerud",\r
+DlgTableBorder         : "Joone suurus",\r
+DlgTableAlign          : "Joondus",\r
+DlgTableAlignNotSet    : "<Määramata>",\r
+DlgTableAlignLeft      : "Vasak",\r
+DlgTableAlignCenter    : "Kesk",\r
+DlgTableAlignRight     : "Parem",\r
+DlgTableWidth          : "Laius",\r
+DlgTableWidthPx                : "pikslit",\r
+DlgTableWidthPc                : "protsenti",\r
+DlgTableHeight         : "Kõrgus",\r
+DlgTableCellSpace      : "Lahtri vahe",\r
+DlgTableCellPad                : "Lahtri täidis",\r
+DlgTableCaption                : "Tabeli tiitel",\r
+DlgTableSummary                : "Kokkuvõte",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Lahtri atribuudid",\r
+DlgCellWidth           : "Laius",\r
+DlgCellWidthPx         : "pikslit",\r
+DlgCellWidthPc         : "protsenti",\r
+DlgCellHeight          : "Kõrgus",\r
+DlgCellWordWrap                : "Sõna ülekanne",\r
+DlgCellWordWrapNotSet  : "<Määramata>",\r
+DlgCellWordWrapYes     : "Jah",\r
+DlgCellWordWrapNo      : "Ei",\r
+DlgCellHorAlign                : "Horisontaaljoondus",\r
+DlgCellHorAlignNotSet  : "<Määramata>",\r
+DlgCellHorAlignLeft    : "Vasak",\r
+DlgCellHorAlignCenter  : "Kesk",\r
+DlgCellHorAlignRight: "Parem",\r
+DlgCellVerAlign                : "Vertikaaljoondus",\r
+DlgCellVerAlignNotSet  : "<Määramata>",\r
+DlgCellVerAlignTop     : "Üles",\r
+DlgCellVerAlignMiddle  : "Keskele",\r
+DlgCellVerAlignBottom  : "Alla",\r
+DlgCellVerAlignBaseline        : "Baasjoonele",\r
+DlgCellRowSpan         : "Reaulatus",\r
+DlgCellCollSpan                : "Veeruulatus",\r
+DlgCellBackColor       : "Tausta värv",\r
+DlgCellBorderColor     : "Joone värv",\r
+DlgCellBtnSelect       : "Vali...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Otsi",\r
+DlgFindFindBtn         : "Otsi",\r
+DlgFindNotFoundMsg     : "Valitud teksti ei leitud.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Asenda",\r
+DlgReplaceFindLbl              : "Leia mida:",\r
+DlgReplaceReplaceLbl   : "Asenda millega:",\r
+DlgReplaceCaseChk              : "Erista suur- ja väiketähti",\r
+DlgReplaceReplaceBtn   : "Asenda",\r
+DlgReplaceReplAllBtn   : "Asenda kõik",\r
+DlgReplaceWordChk              : "Otsi terviklike sõnu",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",\r
+PasteErrorCopy : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",\r
+\r
+PasteAsText            : "Kleebi tavalise tekstina",\r
+PasteFromWord  : "Kleebi Wordist",\r
+\r
+DlgPasteMsg2   : "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.",\r
+DlgPasteIgnoreFont             : "Ignoreeri kirja definitsioone",\r
+DlgPasteRemoveStyles   : "Eemalda stiilide definitsioonid",\r
+DlgPasteCleanBox               : "Puhasta ära kast",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automaatne",\r
+ColorMoreColors        : "Rohkem värve...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumendi omadused",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankru omadused",\r
+DlgAnchorName          : "Ankru nimi",\r
+DlgAnchorErrorName     : "Palun sisest ankru nimi",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Puudub sõnastikust",\r
+DlgSpellChangeTo               : "Muuda",\r
+DlgSpellBtnIgnore              : "Ignoreeri",\r
+DlgSpellBtnIgnoreAll   : "Ignoreeri kõiki",\r
+DlgSpellBtnReplace             : "Asenda",\r
+DlgSpellBtnReplaceAll  : "Asenda kõik",\r
+DlgSpellBtnUndo                        : "Võta tagasi",\r
+DlgSpellNoSuggestions  : "- Soovitused puuduvad -",\r
+DlgSpellProgress               : "Toimub õigekirja kontroll...",\r
+DlgSpellNoMispell              : "Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud",\r
+DlgSpellNoChanges              : "Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud",\r
+DlgSpellOneChange              : "Õigekirja kontroll sooritatud: üks sõna muudeti",\r
+DlgSpellManyChanges            : "Õigekirja kontroll sooritatud: %1 sõna muudetud",\r
+\r
+IeSpellDownload                        : "Õigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst (väärtus)",\r
+DlgButtonType          : "Tüüp",\r
+DlgButtonTypeBtn       : "Nupp",\r
+DlgButtonTypeSbm       : "Saada",\r
+DlgButtonTypeRst       : "Lähtesta",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nimi",\r
+DlgCheckboxValue       : "Väärtus",\r
+DlgCheckboxSelected    : "Valitud",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nimi",\r
+DlgFormAction  : "Toiming",\r
+DlgFormMethod  : "Meetod",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nimi",\r
+DlgSelectValue         : "Väärtus",\r
+DlgSelectSize          : "Suurus",\r
+DlgSelectLines         : "ridu",\r
+DlgSelectChkMulti      : "Võimalda mitu valikut",\r
+DlgSelectOpAvail       : "Võimalikud valikud",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Väärtus",\r
+DlgSelectBtnAdd                : "Lisa",\r
+DlgSelectBtnModify     : "Muuda",\r
+DlgSelectBtnUp         : "Üles",\r
+DlgSelectBtnDown       : "Alla",\r
+DlgSelectBtnSetValue : "Sea valitud olekuna",\r
+DlgSelectBtnDelete     : "Kustuta",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nimi",\r
+DlgTextareaCols        : "Veerge",\r
+DlgTextareaRows        : "Ridu",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nimi",\r
+DlgTextValue           : "Väärtus",\r
+DlgTextCharWidth       : "Laius (tähemärkides)",\r
+DlgTextMaxChars                : "Maksimaalselt tähemärke",\r
+DlgTextType                    : "Tüüp",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Parool",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nimi",\r
+DlgHiddenValue : "Väärtus",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Täpitud loetelu omadused",\r
+NumberedListProp       : "Nummerdatud loetelu omadused",\r
+DlgLstStart                    : "Alusta",\r
+DlgLstType                     : "Tüüp",\r
+DlgLstTypeCircle       : "Ring",\r
+DlgLstTypeDisc         : "Ketas",\r
+DlgLstTypeSquare       : "Ruut",\r
+DlgLstTypeNumbers      : "Numbrid (1, 2, 3)",\r
+DlgLstTypeLCase                : "Väiketähed (a, b, c)",\r
+DlgLstTypeUCase                : "Suurtähed (A, B, C)",\r
+DlgLstTypeSRoman       : "Väiksed Rooma numbrid (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Suured Rooma numbrid (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Üldine",\r
+DlgDocBackTab          : "Taust",\r
+DlgDocColorsTab                : "Värvid ja veerised",\r
+DlgDocMetaTab          : "Meta andmed",\r
+\r
+DlgDocPageTitle                : "Lehekülje tiitel",\r
+DlgDocLangDir          : "Kirja suund",\r
+DlgDocLangDirLTR       : "Vasakult paremale (LTR)",\r
+DlgDocLangDirRTL       : "Paremalt vasakule (RTL)",\r
+DlgDocLangCode         : "Keele kood",\r
+DlgDocCharSet          : "Märgistiku kodeering",\r
+DlgDocCharSetCE                : "Kesk-Euroopa",\r
+DlgDocCharSetCT                : "Hiina traditsiooniline (Big5)",\r
+DlgDocCharSetCR                : "Kirillisa",\r
+DlgDocCharSetGR                : "Kreeka",\r
+DlgDocCharSetJP                : "Jaapani",\r
+DlgDocCharSetKR                : "Korea",\r
+DlgDocCharSetTR                : "Türgi",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Lääne-Euroopa",\r
+DlgDocCharSetOther     : "Ülejäänud märgistike kodeeringud",\r
+\r
+DlgDocDocType          : "Dokumendi tüüppäis",\r
+DlgDocDocTypeOther     : "Teised dokumendi tüüppäised",\r
+DlgDocIncXHTML         : "Arva kaasa XHTML deklaratsioonid",\r
+DlgDocBgColor          : "Taustavärv",\r
+DlgDocBgImage          : "Taustapildi URL",\r
+DlgDocBgNoScroll       : "Mittekeritav tagataust",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Külastatud link",\r
+DlgDocCActive          : "Aktiivne link",\r
+DlgDocMargins          : "Lehekülje äärised",\r
+DlgDocMaTop                    : "Ülaserv",\r
+DlgDocMaLeft           : "Vasakserv",\r
+DlgDocMaRight          : "Paremserv",\r
+DlgDocMaBottom         : "Alaserv",\r
+DlgDocMeIndex          : "Dokumendi võtmesõnad (eraldatud komadega)",\r
+DlgDocMeDescr          : "Dokumendi kirjeldus",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Autoriõigus",\r
+DlgDocPreview          : "Eelvaade",\r
+\r
+// Templates Dialog\r
+Templates                      : "Šabloon",\r
+DlgTemplatesTitle      : "Sisu šabloonid",\r
+DlgTemplatesSelMsg     : "Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):",\r
+DlgTemplatesLoading    : "Laen šabloonide nimekirja. Palun oota...",\r
+DlgTemplatesNoTpl      : "(Ühtegi šablooni ei ole defineeritud)",\r
+DlgTemplatesReplace    : "Asenda tegelik sisu",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Teave",\r
+DlgAboutBrowserInfoTab : "Veebisirvija info",\r
+DlgAboutLicenseTab     : "Litsents",\r
+DlgAboutVersion                : "versioon",\r
+DlgAboutInfo           : "Täpsema info saamiseks mine"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/eu.js b/httemplate/elements/fckeditor/editor/lang/eu.js
new file mode 100644 (file)
index 0000000..266d427
--- /dev/null
@@ -0,0 +1,505 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Basque language file.\r
+ * Euskara hizkuntza fitxategia.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Estutu Tresna Barra",\r
+ToolbarExpand          : "Hedatu Tresna Barra",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Gorde",\r
+NewPage                                : "Orrialde Berria",\r
+Preview                                : "Aurrebista",\r
+Cut                                    : "Ebaki",\r
+Copy                           : "Kopiatu",\r
+Paste                          : "Itsatsi",\r
+PasteText                      : "Itsatsi testu bezala",\r
+PasteWord                      : "Itsatsi Word-etik",\r
+Print                          : "Inprimatu",\r
+SelectAll                      : "Hautatu dena",\r
+RemoveFormat           : "Kendu Formatoa",\r
+InsertLinkLbl          : "Esteka",\r
+InsertLink                     : "Txertatu/Editatu Esteka",\r
+RemoveLink                     : "Kendu Esteka",\r
+Anchor                         : "Aingura",\r
+InsertImageLbl         : "Irudia",\r
+InsertImage                    : "Txertatu/Editatu Irudia",\r
+InsertFlashLbl         : "Flasha",\r
+InsertFlash                    : "Txertatu/Editatu Flasha",\r
+InsertTableLbl         : "Taula",\r
+InsertTable                    : "Txertatu/Editatu Taula",\r
+InsertLineLbl          : "Lerroa",\r
+InsertLine                     : "Txertatu Marra Horizontala",\r
+InsertSpecialCharLbl: "Karaktere Berezia",\r
+InsertSpecialChar      : "Txertatu Karaktere Berezia",\r
+InsertSmileyLbl                : "Aurpegierak",\r
+InsertSmiley           : "Txertatu Aurpegierak",\r
+About                          : "FCKeditor-ri buruz",\r
+Bold                           : "Lodia",\r
+Italic                         : "Etzana",\r
+Underline                      : "Azpimarratu",\r
+StrikeThrough          : "Marratua",\r
+Subscript                      : "Azpi-indize",\r
+Superscript                    : "Goi-indize",\r
+LeftJustify                    : "Lerrokatu Ezkerrean",\r
+CenterJustify          : "Lerrokatu Erdian",\r
+RightJustify           : "Lerrokatu Eskuman",\r
+BlockJustify           : "Justifikatu",\r
+DecreaseIndent         : "Txikitu Koska",\r
+IncreaseIndent         : "Handitu Koska",\r
+Undo                           : "Desegin",\r
+Redo                           : "Berregin",\r
+NumberedListLbl                : "Zenbakidun Zerrenda",\r
+NumberedList           : "Txertatu/Kendu Zenbakidun zerrenda",\r
+BulletedListLbl                : "Buletdun Zerrenda",\r
+BulletedList           : "Txertatu/Kendu Buletdun zerrenda",\r
+ShowTableBorders       : "Erakutsi Taularen Ertzak",\r
+ShowDetails                    : "Erakutsi Xehetasunak",\r
+Style                          : "Estiloa",\r
+FontFormat                     : "Formatoa",\r
+Font                           : "Letra-tipoa",\r
+FontSize                       : "Tamaina",\r
+TextColor                      : "Testu Kolorea",\r
+BGColor                                : "Atzeko kolorea",\r
+Source                         : "HTML Iturburua",\r
+Find                           : "Bilatu",\r
+Replace                                : "Ordezkatu",\r
+SpellCheck                     : "Ortografia",\r
+UniversalKeyboard      : "Teklatu Unibertsala",\r
+PageBreakLbl           : "Orrialde-jauzia",\r
+PageBreak                      : "Txertatu Orrialde-jauzia",\r
+\r
+Form                   : "Formularioa",\r
+Checkbox               : "Kontrol-laukia",\r
+RadioButton            : "Aukera-botoia",\r
+TextField              : "Testu Eremua",\r
+Textarea               : "Testu-area",\r
+HiddenField            : "Ezkutuko Eremua",\r
+Button                 : "Botoia",\r
+SelectionField : "Hautespen Eremua",\r
+ImageButton            : "Irudi Botoia",\r
+\r
+FitWindow              : "Maximizatu editorearen tamaina",\r
+\r
+// Context Menu\r
+EditLink                       : "Aldatu Esteka",\r
+CellCM                         : "Gelaxka",\r
+RowCM                          : "Errenkada",\r
+ColumnCM                       : "Zutabea",\r
+InsertRow                      : "Txertatu Errenkada",\r
+DeleteRows                     : "Ezabatu Errenkadak",\r
+InsertColumn           : "Txertatu Zutabea",\r
+DeleteColumns          : "Ezabatu Zutabeak",\r
+InsertCell                     : "Txertatu Gelaxka",\r
+DeleteCells                    : "Kendu Gelaxkak",\r
+MergeCells                     : "Batu Gelaxkak",\r
+SplitCell                      : "Zatitu Gelaxka",\r
+TableDelete                    : "Ezabatu Taula",\r
+CellProperties         : "Gelaxkaren Ezaugarriak",\r
+TableProperties                : "Taularen Ezaugarriak",\r
+ImageProperties                : "Irudiaren Ezaugarriak",\r
+FlashProperties                : "Flasharen Ezaugarriak",\r
+\r
+AnchorProp                     : "Ainguraren Ezaugarriak",\r
+ButtonProp                     : "Botoiaren Ezaugarriak",\r
+CheckboxProp           : "Kontrol-laukiko Ezaugarriak",\r
+HiddenFieldProp                : "Ezkutuko Eremuaren Ezaugarriak",\r
+RadioButtonProp                : "Aukera-botoiaren Ezaugarriak",\r
+ImageButtonProp                : "Irudi Botoiaren Ezaugarriak",\r
+TextFieldProp          : "Testu Eremuaren Ezaugarriak",\r
+SelectionFieldProp     : "Hautespen Eremuaren Ezaugarriak",\r
+TextareaProp           : "Testu-arearen Ezaugarriak",\r
+FormProp                       : "Formularioaren Ezaugarriak",\r
+\r
+FontFormats                    : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML Prozesatzen. Itxaron mesedez...",\r
+Done                           : "Eginda",\r
+PasteWordConfirm       : "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",\r
+NotCompatiblePaste     : "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?",\r
+UnknownToolbarItem     : "Ataza barrako elementu ezezaguna \"%1\"",\r
+UnknownCommand         : "Komando izen ezezaguna \"%1\"",\r
+NotImplemented         : "Komando ez inplementatua",\r
+UnknownToolbarSet      : "Ataza barra \"%1\" taldea ez da existitzen",\r
+NoActiveX                      : "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",\r
+BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",\r
+DialogBlocked          : "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Ados",\r
+DlgBtnCancel           : "Utzi",\r
+DlgBtnClose                    : "Itxi",\r
+DlgBtnBrowseServer     : "Zerbitzaria arakatu",\r
+DlgAdvancedTag         : "Aurreratua",\r
+DlgOpOther                     : "<Bestelakoak>",\r
+DlgInfoTab                     : "Informazioa",\r
+DlgAlertUrl                    : "Mesedez URLa idatzi ezazu",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<Ezarri gabe>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Hizkuntzaren Norabidea",\r
+DlgGenLangDirLtr       : "Ezkerretik Eskumara(LTR)",\r
+DlgGenLangDirRtl       : "Eskumatik Ezkerrera (RTL)",\r
+DlgGenLangCode         : "Hizkuntza Kodea",\r
+DlgGenAccessKey                : "Sarbide-gakoa",\r
+DlgGenName                     : "Izena",\r
+DlgGenTabIndex         : "Tabulazio Indizea",\r
+DlgGenLongDescr                : "URL Deskribapen Luzea",\r
+DlgGenClass                    : "Estilo-orriko Klaseak",\r
+DlgGenTitle                    : "Izenburua",\r
+DlgGenContType         : "Eduki Mota (Content Type)",\r
+DlgGenLinkCharset      : "Estekatutako Karaktere Multzoa",\r
+DlgGenStyle                    : "Estiloa",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Irudi Ezaugarriak",\r
+DlgImgInfoTab          : "Irudi informazioa",\r
+DlgImgBtnUpload                : "Zerbitzarira bidalia",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Gora Kargatu",\r
+DlgImgAlt                      : "Textu Alternatiboa",\r
+DlgImgWidth                    : "Zabalera",\r
+DlgImgHeight           : "Altuera",\r
+DlgImgLockRatio                : "Erlazioa Blokeatu",\r
+DlgBtnResetSize                : "Tamaina Berrezarri",\r
+DlgImgBorder           : "Ertza",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Lerrokatu",\r
+DlgImgAlignLeft                : "Ezkerrera",\r
+DlgImgAlignAbsBottom: "Abs Behean",\r
+DlgImgAlignAbsMiddle: "Abs Erdian",\r
+DlgImgAlignBaseline    : "Oinan",\r
+DlgImgAlignBottom      : "Behean",\r
+DlgImgAlignMiddle      : "Erdian",\r
+DlgImgAlignRight       : "Eskuman",\r
+DlgImgAlignTextTop     : "Testua Goian",\r
+DlgImgAlignTop         : "Goian",\r
+DlgImgPreview          : "Aurrebista",\r
+DlgImgAlertUrl         : "Mesedez Irudiaren URLa idatzi",\r
+DlgImgLinkTab          : "Esteka",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flasharen Ezaugarriak",\r
+DlgFlashChkPlay                : "Automatikoki Erreproduzitu",\r
+DlgFlashChkLoop                : "Begizta",\r
+DlgFlashChkMenu                : "Flasharen Menua Gaitu",\r
+DlgFlashScale          : "Eskalatu",\r
+DlgFlashScaleAll       : "Dena erakutsi",\r
+DlgFlashScaleNoBorder  : "Ertzarik gabe",\r
+DlgFlashScaleFit       : "Doitu",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Esteka",\r
+DlgLnkInfoTab          : "Estekaren Informazioa",\r
+DlgLnkTargetTab                : "Helburua",\r
+\r
+DlgLnkType                     : "Esteka Mota",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Aingura horrialde honentan",\r
+DlgLnkTypeEMail                : "ePosta",\r
+DlgLnkProto                    : "Protokoloa",\r
+DlgLnkProtoOther       : "<Beste batzuk>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Aingura bat hautatu",\r
+DlgLnkAnchorByName     : "Aingura izenagatik",\r
+DlgLnkAnchorById       : "Elementuaren ID-gatik",\r
+DlgLnkNoAnchors                : "<Ez daude aingurak eskuragarri dokumentuan>",                //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "ePosta Helbidea",\r
+DlgLnkEMailSubject     : "Mezuaren Gaia",\r
+DlgLnkEMailBody                : "Mezuaren Gorputza",\r
+DlgLnkUpload           : "Gora kargatu",\r
+DlgLnkBtnUpload                : "Zerbitzarira bidali",\r
+\r
+DlgLnkTarget           : "Target (Helburua)",\r
+DlgLnkTargetFrame      : "<marko>",\r
+DlgLnkTargetPopup      : "<popup lehioa>",\r
+DlgLnkTargetBlank      : "Lehio Berria (_blank)",\r
+DlgLnkTargetParent     : "Lehio Gurasoa (_parent)",\r
+DlgLnkTargetSelf       : "Lehio Berdina (_self)",\r
+DlgLnkTargetTop                : "Goiko Lehioa (_top)",\r
+DlgLnkTargetFrameName  : "Marko Helburuaren Izena",\r
+DlgLnkPopWinName       : "Popup Lehioaren Izena",\r
+DlgLnkPopWinFeat       : "Popup Lehioaren Ezaugarriak",\r
+DlgLnkPopResize                : "Tamaina Aldakorra",\r
+DlgLnkPopLocation      : "Kokaleku Barra",\r
+DlgLnkPopMenu          : "Menu Barra",\r
+DlgLnkPopScroll                : "Korritze Barrak",\r
+DlgLnkPopStatus                : "Egoera Barra",\r
+DlgLnkPopToolbar       : "Tresna Barra",\r
+DlgLnkPopFullScrn      : "Pantaila Osoa (IE)",\r
+DlgLnkPopDependent     : "Menpekoa (Netscape)",\r
+DlgLnkPopWidth         : "Zabalera",\r
+DlgLnkPopHeight                : "Altuera",\r
+DlgLnkPopLeft          : "Ezkerreko  Posizioa",\r
+DlgLnkPopTop           : "Goiko Posizioa",\r
+\r
+DlnLnkMsgNoUrl         : "Mesedez URL esteka idatzi",\r
+DlnLnkMsgNoEMail       : "Mesedez ePosta helbidea idatzi",\r
+DlnLnkMsgNoAnchor      : "Mesedez aingura bat aukeratu",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Kolore Aukeraketa",\r
+DlgColorBtnClear       : "Garbitu",\r
+DlgColorHighlight      : "Nabarmendu",\r
+DlgColorSelected       : "Aukeratuta",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Aurpegiera Sartu",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Karaktere Berezia Aukeratu",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Taularen Ezaugarriak",\r
+DlgTableRows           : "Lerroak",\r
+DlgTableColumns                : "Zutabeak",\r
+DlgTableBorder         : "Ertzaren Zabalera",\r
+DlgTableAlign          : "Lerrokatu",\r
+DlgTableAlignNotSet    : "<Ezarri gabe>",\r
+DlgTableAlignLeft      : "Ezkerrean",\r
+DlgTableAlignCenter    : "Erdian",\r
+DlgTableAlignRight     : "Eskuman",\r
+DlgTableWidth          : "Zabalera",\r
+DlgTableWidthPx                : "pixel",\r
+DlgTableWidthPc                : "ehuneko",\r
+DlgTableHeight         : "Altuera",\r
+DlgTableCellSpace      : "Gelaxka arteko tartea",\r
+DlgTableCellPad                : "Gelaxken betegarria",\r
+DlgTableCaption                : "Epigrafea",\r
+DlgTableSummary                : "Laburpena",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Gelaxken Ezaugarriak",\r
+DlgCellWidth           : "Zabalera",\r
+DlgCellWidthPx         : "pixel",\r
+DlgCellWidthPc         : "ehuneko",\r
+DlgCellHeight          : "Altuera",\r
+DlgCellWordWrap                : "Itzulbira",\r
+DlgCellWordWrapNotSet  : "<Ezarri gabe>",\r
+DlgCellWordWrapYes     : "Bai",\r
+DlgCellWordWrapNo      : "Ez",\r
+DlgCellHorAlign                : "Horizontal Alignment",\r
+DlgCellHorAlignNotSet  : "<Ezarri gabe>",\r
+DlgCellHorAlignLeft    : "Ezkerrean",\r
+DlgCellHorAlignCenter  : "Erdian",\r
+DlgCellHorAlignRight: "Eskuman",\r
+DlgCellVerAlign                : "Lerrokatu Bertikalki",\r
+DlgCellVerAlignNotSet  : "<Ezarri gabe>",\r
+DlgCellVerAlignTop     : "Goian",\r
+DlgCellVerAlignMiddle  : "Erdian",\r
+DlgCellVerAlignBottom  : "Behean",\r
+DlgCellVerAlignBaseline        : "Oinan",\r
+DlgCellRowSpan         : "Lerroak Hedatu",\r
+DlgCellCollSpan                : "Zutabeak Hedatu",\r
+DlgCellBackColor       : "Atzeko Kolorea",\r
+DlgCellBorderColor     : "Ertzako Kolorea",\r
+DlgCellBtnSelect       : "Aukertau...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Bilaketa",\r
+DlgFindFindBtn         : "Bilatu",\r
+DlgFindNotFoundMsg     : "Idatzitako testua ez da topatu.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Ordeztu",\r
+DlgReplaceFindLbl              : "Zer bilatu:",\r
+DlgReplaceReplaceLbl   : "Zerekin ordeztu:",\r
+DlgReplaceCaseChk              : "Maiuskula/minuskula",\r
+DlgReplaceReplaceBtn   : "Ordeztu",\r
+DlgReplaceReplAllBtn   : "Ordeztu Guztiak",\r
+DlgReplaceWordChk              : "Esaldi osoa bilatu",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).",\r
+PasteErrorCopy : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).",\r
+\r
+PasteAsText            : "Testu Arrunta bezala Itsatsi",\r
+PasteFromWord  : "Word-etik itsatsi",\r
+\r
+DlgPasteMsg2   : "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Letra Motaren definizioa ezikusi",\r
+DlgPasteRemoveStyles   : "Estilo definizioak kendu",\r
+DlgPasteCleanBox               : "Testu-eremua Garbitu",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatikoa",\r
+ColorMoreColors        : "Kolore gehiago...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentuaren Ezarpenak",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ainguraren Ezaugarriak",\r
+DlgAnchorName          : "Ainguraren Izena",\r
+DlgAnchorErrorName     : "Idatzi ainguraren izena",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ez dago hiztegian",\r
+DlgSpellChangeTo               : "Honekin ordezkatu",\r
+DlgSpellBtnIgnore              : "Ezikusi",\r
+DlgSpellBtnIgnoreAll   : "Denak Ezikusi",\r
+DlgSpellBtnReplace             : "Ordezkatu",\r
+DlgSpellBtnReplaceAll  : "Denak Ordezkatu",\r
+DlgSpellBtnUndo                        : "Desegin",\r
+DlgSpellNoSuggestions  : "- Iradokizunik ez -",\r
+DlgSpellProgress               : "Zuzenketa ortografikoa martxan...",\r
+DlgSpellNoMispell              : "Zuzenketa ortografikoa bukatuta: Akatsik ez",\r
+DlgSpellNoChanges              : "Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu",\r
+DlgSpellOneChange              : "Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da",\r
+DlgSpellManyChanges            : "Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira",\r
+\r
+IeSpellDownload                        : "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Testua (Balorea)",\r
+DlgButtonType          : "Mota",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Izena",\r
+DlgCheckboxValue       : "Balorea",\r
+DlgCheckboxSelected    : "Hautatuta",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Izena",\r
+DlgFormAction  : "Ekintza",\r
+DlgFormMethod  : "Method",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Izena",\r
+DlgSelectValue         : "Balorea",\r
+DlgSelectSize          : "Tamaina",\r
+DlgSelectLines         : "lerro kopurura",\r
+DlgSelectChkMulti      : "Hautaketa anitzak baimendu",\r
+DlgSelectOpAvail       : "Aukera Eskuragarriak",\r
+DlgSelectOpText                : "Testua",\r
+DlgSelectOpValue       : "Balorea",\r
+DlgSelectBtnAdd                : "Gehitu",\r
+DlgSelectBtnModify     : "Aldatu",\r
+DlgSelectBtnUp         : "Gora",\r
+DlgSelectBtnDown       : "Behera",\r
+DlgSelectBtnSetValue : "Aukeratutako balorea ezarri",\r
+DlgSelectBtnDelete     : "Ezabatu",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Izena",\r
+DlgTextareaCols        : "Zutabeak",\r
+DlgTextareaRows        : "Lerroak",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Izena",\r
+DlgTextValue           : "Balorea",\r
+DlgTextCharWidth       : "Zabalera",\r
+DlgTextMaxChars                : "Zenbat karaktere gehienez",\r
+DlgTextType                    : "Mota",\r
+DlgTextTypeText                : "Testua",\r
+DlgTextTypePass                : "Pasahitza",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Izena",\r
+DlgHiddenValue : "Balorea",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Buletdun Zerrendaren Ezarpenak",\r
+NumberedListProp       : "Zenbakidun Zerrendaren Ezarpenak",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Mota",\r
+DlgLstTypeCircle       : "Zirkulua",\r
+DlgLstTypeDisc         : "Diskoa",\r
+DlgLstTypeSquare       : "Karratua",\r
+DlgLstTypeNumbers      : "Zenbakiak (1, 2, 3)",\r
+DlgLstTypeLCase                : "Letra xeheak (a, b, c)",\r
+DlgLstTypeUCase                : "Letra larriak (A, B, C)",\r
+DlgLstTypeSRoman       : "Erromatar zenbaki zeheak (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Erromatar zenbaki larriak (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Orokorra",\r
+DlgDocBackTab          : "Atzekaldea",\r
+DlgDocColorsTab                : "Koloreak eta Marjinak",\r
+DlgDocMetaTab          : "Meta Informazioa",\r
+\r
+DlgDocPageTitle                : "Orriaren Izenburua",\r
+DlgDocLangDir          : "Hizkuntzaren Norabidea",\r
+DlgDocLangDirLTR       : "Ezkerretik eskumara (LTR)",\r
+DlgDocLangDirRTL       : "Eskumatik ezkerrera (RTL)",\r
+DlgDocLangCode         : "Hizkuntzaren Kodea",\r
+DlgDocCharSet          : "Karaktere Multzoaren Kodeketa",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Beste Karaktere Multzoaren Kodeketa",\r
+\r
+DlgDocDocType          : "Document Type Goiburua",\r
+DlgDocDocTypeOther     : "Beste Document Type Goiburua",\r
+DlgDocIncXHTML         : "XHTML Ezarpenak",\r
+DlgDocBgColor          : "Atzeko Kolorea",\r
+DlgDocBgImage          : "Atzeko Irudiaren URL-a",\r
+DlgDocBgNoScroll       : "Korritze gabeko Atzekaldea",\r
+DlgDocCText                    : "Testua",\r
+DlgDocCLink                    : "Estekak",\r
+DlgDocCVisited         : "Bisitatutako Estekak",\r
+DlgDocCActive          : "Esteka Aktiboa",\r
+DlgDocMargins          : "Orrialdearen marjinak",\r
+DlgDocMaTop                    : "Goian",\r
+DlgDocMaLeft           : "Ezkerrean",\r
+DlgDocMaRight          : "Eskuman",\r
+DlgDocMaBottom         : "Behean",\r
+DlgDocMeIndex          : "Dokumentuaren Gako-hitzak (komarekin bananduta)",\r
+DlgDocMeDescr          : "Dokumentuaren Deskribapena",\r
+DlgDocMeAuthor         : "Egilea",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Aurrebista",\r
+\r
+// Templates Dialog\r
+Templates                      : "Txantiloiak",\r
+DlgTemplatesTitle      : "Eduki Txantiloiak",\r
+DlgTemplatesSelMsg     : "Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):",\r
+DlgTemplatesLoading    : "Txantiloiak kargatzen. Itxaron mesedez...",\r
+DlgTemplatesNoTpl      : "(Ez dago definitutako txantiloirik)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Honi buruz",\r
+DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa",\r
+DlgAboutLicenseTab     : "Lizentzia",\r
+DlgAboutVersion                : "bertsioa",\r
+DlgAboutInfo           : "Informazio gehiago eskuratzeko hona joan"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/fa.js b/httemplate/elements/fckeditor/editor/lang/fa.js
new file mode 100644 (file)
index 0000000..e1bc973
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Persian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "rtl",\r
+\r
+ToolbarCollapse                : "برچیدن نوارابزار",\r
+ToolbarExpand          : "گستردن نوارابزار",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "ذخیره",\r
+NewPage                                : "برگهٴ تازه",\r
+Preview                                : "پیش‌نمایش",\r
+Cut                                    : "برش",\r
+Copy                           : "کپی",\r
+Paste                          : "چسباندن",\r
+PasteText                      : "چسباندن به عنوان متن ِساده",\r
+PasteWord                      : "چسباندن از Word",\r
+Print                          : "چاپ",\r
+SelectAll                      : "گزینش همه",\r
+RemoveFormat           : "برداشتن فرمت",\r
+InsertLinkLbl          : "پیوند",\r
+InsertLink                     : "گنجاندن/ویرایش ِپیوند",\r
+RemoveLink                     : "برداشتن پیوند",\r
+Anchor                         : "گنجاندن/ویرایش ِلنگر",\r
+InsertImageLbl         : "تصویر",\r
+InsertImage                    : "گنجاندن/ویرایش ِتصویر",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "گنجاندن/ویرایش ِFlash",\r
+InsertTableLbl         : "جدول",\r
+InsertTable                    : "گنجاندن/ویرایش ِجدول",\r
+InsertLineLbl          : "خط",\r
+InsertLine                     : "گنجاندن خط ِافقی",\r
+InsertSpecialCharLbl: "نویسهٴ ویژه",\r
+InsertSpecialChar      : "گنجاندن نویسهٴ ویژه",\r
+InsertSmileyLbl                : "خندانک",\r
+InsertSmiley           : "گنجاندن خندانک",\r
+About                          : "دربارهٴ FCKeditor",\r
+Bold                           : "درشت",\r
+Italic                         : "خمیده",\r
+Underline                      : "خط‌زیردار",\r
+StrikeThrough          : "میان‌خط",\r
+Subscript                      : "زیرنویس",\r
+Superscript                    : "بالانویس",\r
+LeftJustify                    : "چپ‌چین",\r
+CenterJustify          : "میان‌چین",\r
+RightJustify           : "راست‌چین",\r
+BlockJustify           : "بلوک‌چین",\r
+DecreaseIndent         : "کاهش تورفتگی",\r
+IncreaseIndent         : "افزایش تورفتگی",\r
+Undo                           : "واچیدن",\r
+Redo                           : "بازچیدن",\r
+NumberedListLbl                : "فهرست شماره‌دار",\r
+NumberedList           : "گنجاندن/برداشتن فهرست شماره‌دار",\r
+BulletedListLbl                : "فهرست نقطه‌ای",\r
+BulletedList           : "گنجاندن/برداشتن فهرست نقطه‌ای",\r
+ShowTableBorders       : "نمایش لبهٴ جدول",\r
+ShowDetails                    : "نمایش جزئیات",\r
+Style                          : "سبک",\r
+FontFormat                     : "فرمت",\r
+Font                           : "قلم",\r
+FontSize                       : "اندازه",\r
+TextColor                      : "رنگ متن",\r
+BGColor                                : "رنگ پس‌زمینه",\r
+Source                         : "منبع",\r
+Find                           : "جستجو",\r
+Replace                                : "جایگزینی",\r
+SpellCheck                     : "بررسی املا",\r
+UniversalKeyboard      : "صفحه‌کلید جهانی",\r
+PageBreakLbl           : "شکستگی ِپایان ِبرگه",\r
+PageBreak                      : "گنجاندن شکستگی ِپایان ِبرگه",\r
+\r
+Form                   : "فرم",\r
+Checkbox               : "خانهٴ گزینه‌ای",\r
+RadioButton            : "دکمهٴ رادیویی",\r
+TextField              : "فیلد متنی",\r
+Textarea               : "ناحیهٴ متنی",\r
+HiddenField            : "فیلد پنهان",\r
+Button                 : "دکمه",\r
+SelectionField : "فیلد چندگزینه‌ای",\r
+ImageButton            : "دکمهٴ تصویری",\r
+\r
+FitWindow              : "بیشینه‌سازی ِاندازهٴ ویرایشگر",\r
+\r
+// Context Menu\r
+EditLink                       : "ویرایش پیوند",\r
+CellCM                         : "سلول",\r
+RowCM                          : "سطر",\r
+ColumnCM                       : "ستون",\r
+InsertRow                      : "گنجاندن سطر",\r
+DeleteRows                     : "حذف سطرها",\r
+InsertColumn           : "گنجاندن ستون",\r
+DeleteColumns          : "حذف ستونها",\r
+InsertCell                     : "گنجاندن سلول",\r
+DeleteCells                    : "حذف سلولها",\r
+MergeCells                     : "ادغام سلولها",\r
+SplitCell                      : "جداسازی سلول",\r
+TableDelete                    : "پاک‌کردن جدول",\r
+CellProperties         : "ویژگیهای سلول",\r
+TableProperties                : "ویژگیهای جدول",\r
+ImageProperties                : "ویژگیهای تصویر",\r
+FlashProperties                : "ویژگیهای Flash",\r
+\r
+AnchorProp                     : "ویژگیهای لنگر",\r
+ButtonProp                     : "ویژگیهای دکمه",\r
+CheckboxProp           : "ویژگیهای خانهٴ گزینه‌ای",\r
+HiddenFieldProp                : "ویژگیهای فیلد پنهان",\r
+RadioButtonProp                : "ویژگیهای دکمهٴ رادیویی",\r
+ImageButtonProp                : "ویژگیهای دکمهٴ تصویری",\r
+TextFieldProp          : "ویژگیهای فیلد متنی",\r
+SelectionFieldProp     : "ویژگیهای فیلد چندگزینه‌ای",\r
+TextareaProp           : "ویژگیهای ناحیهٴ متنی",\r
+FormProp                       : "ویژگیهای فرم",\r
+\r
+FontFormats                    : "نرمال;فرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "پردازش XHTML. لطفا صبر کنید...",\r
+Done                           : "انجام شد",\r
+PasteWordConfirm       : "متنی که می‌خواهید بچسبانید به نظر می‌رسد از Word کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟",\r
+NotCompatiblePaste     : "این فرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟",\r
+UnknownToolbarItem     : "فقرهٴ نوارابزار ناشناخته \"%1\"",\r
+UnknownCommand         : "نام دستور ناشناخته \"%1\"",\r
+NotImplemented         : "دستور پیاده‌سازی‌نشده",\r
+UnknownToolbarSet      : "مجموعهٴ نوارابزار \"%1\" وجود ندارد",\r
+NoActiveX                      : "تنظیمات امنیتی مرورگر شما ممکن است در بعضی از ویژگیهای مرورگر محدودیت ایجاد کند. شما باید گزینهٴ \"Run ActiveX controls and plug-ins\" را فعال کنید. ممکن است شما با خطاهایی روبرو باشید و متوجه کمبود ویژگیهایی شوید.",\r
+BrowseServerBlocked : "توانایی بازگشایی مرورگر منابع فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",\r
+DialogBlocked          : "توانایی بازگشایی پنجرهٴ کوچک ِگفتگو فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "پذیرش",\r
+DlgBtnCancel           : "انصراف",\r
+DlgBtnClose                    : "بستن",\r
+DlgBtnBrowseServer     : "فهرست‌نمایی سرور",\r
+DlgAdvancedTag         : "پیشرفته",\r
+DlgOpOther                     : "<غیره>",\r
+DlgInfoTab                     : "اطلاعات",\r
+DlgAlertUrl                    : "لطفاً URL را بنویسید",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<تعین‌نشده>",\r
+DlgGenId                       : "شناسه",\r
+DlgGenLangDir          : "جهت‌نمای زبان",\r
+DlgGenLangDirLtr       : "چپ به راست (LTR)",\r
+DlgGenLangDirRtl       : "راست به چپ (RTL)",\r
+DlgGenLangCode         : "کد زبان",\r
+DlgGenAccessKey                : "کلید دستیابی",\r
+DlgGenName                     : "نام",\r
+DlgGenTabIndex         : "نمایهٴ دسترسی با Tab",\r
+DlgGenLongDescr                : "URL توصیف طولانی",\r
+DlgGenClass                    : "کلاسهای شیوه‌نامه(Stylesheet)",\r
+DlgGenTitle                    : "عنوان کمکی",\r
+DlgGenContType         : "نوع محتوای کمکی",\r
+DlgGenLinkCharset      : "نویسه‌گان منبع ِپیوندشده",\r
+DlgGenStyle                    : "شیوه(style)",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "ویژگیهای تصویر",\r
+DlgImgInfoTab          : "اطلاعات تصویر",\r
+DlgImgBtnUpload                : "به سرور بفرست",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "انتقال به سرور",\r
+DlgImgAlt                      : "متن جایگزین",\r
+DlgImgWidth                    : "پهنا",\r
+DlgImgHeight           : "درازا",\r
+DlgImgLockRatio                : "قفل‌کردن ِنسبت",\r
+DlgBtnResetSize                : "بازنشانی اندازه",\r
+DlgImgBorder           : "لبه",\r
+DlgImgHSpace           : "فاصلهٴ افقی",\r
+DlgImgVSpace           : "فاصلهٴ عمودی",\r
+DlgImgAlign                    : "چینش",\r
+DlgImgAlignLeft                : "چپ",\r
+DlgImgAlignAbsBottom: "پائین مطلق",\r
+DlgImgAlignAbsMiddle: "وسط مطلق",\r
+DlgImgAlignBaseline    : "خط‌پایه",\r
+DlgImgAlignBottom      : "پائین",\r
+DlgImgAlignMiddle      : "وسط",\r
+DlgImgAlignRight       : "راست",\r
+DlgImgAlignTextTop     : "متن بالا",\r
+DlgImgAlignTop         : "بالا",\r
+DlgImgPreview          : "پیش‌نمایش",\r
+DlgImgAlertUrl         : "لطفا URL تصویر را بنویسید",\r
+DlgImgLinkTab          : "پیوند",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "ویژگیهای Flash",\r
+DlgFlashChkPlay                : "آغاز ِخودکار",\r
+DlgFlashChkLoop                : "اجرای پیاپی",\r
+DlgFlashChkMenu                : "دردسترس‌بودن منوی Flash",\r
+DlgFlashScale          : "مقیاس",\r
+DlgFlashScaleAll       : "نمایش همه",\r
+DlgFlashScaleNoBorder  : "بدون کران",\r
+DlgFlashScaleFit       : "جایگیری کامل",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "پیوند",\r
+DlgLnkInfoTab          : "اطلاعات پیوند",\r
+DlgLnkTargetTab                : "مقصد",\r
+\r
+DlgLnkType                     : "نوع پیوند",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "لنگر در همین صفحه",\r
+DlgLnkTypeEMail                : "پست الکترونیکی",\r
+DlgLnkProto                    : "پروتکل",\r
+DlgLnkProtoOther       : "<دیگر>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "یک لنگر برگزینید",\r
+DlgLnkAnchorByName     : "با نام لنگر",\r
+DlgLnkAnchorById       : "با شناسهٴ المان",\r
+DlgLnkNoAnchors                : "(در این سند لنگری دردسترس نیست)",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "نشانی پست الکترونیکی",\r
+DlgLnkEMailSubject     : "موضوع پیام",\r
+DlgLnkEMailBody                : "متن پیام",\r
+DlgLnkUpload           : "انتقال به سرور",\r
+DlgLnkBtnUpload                : "به سرور بفرست",\r
+\r
+DlgLnkTarget           : "مقصد",\r
+DlgLnkTargetFrame      : "<فریم>",\r
+DlgLnkTargetPopup      : "<پنجرهٴ پاپاپ>",\r
+DlgLnkTargetBlank      : "پنجرهٴ دیگر (_blank)",\r
+DlgLnkTargetParent     : "پنجرهٴ والد (_parent)",\r
+DlgLnkTargetSelf       : "همان پنجره (_self)",\r
+DlgLnkTargetTop                : "بالاترین پنجره (_top)",\r
+DlgLnkTargetFrameName  : "نام فریم مقصد",\r
+DlgLnkPopWinName       : "نام پنجرهٴ پاپاپ",\r
+DlgLnkPopWinFeat       : "ویژگیهای پنجرهٴ پاپاپ",\r
+DlgLnkPopResize                : "قابل تغییر اندازه",\r
+DlgLnkPopLocation      : "نوار موقعیت",\r
+DlgLnkPopMenu          : "نوار منو",\r
+DlgLnkPopScroll                : "میله‌های پیمایش",\r
+DlgLnkPopStatus                : "نوار وضعیت",\r
+DlgLnkPopToolbar       : "نوارابزار",\r
+DlgLnkPopFullScrn      : "تمام‌صفحه (IE)",\r
+DlgLnkPopDependent     : "وابسته (Netscape)",\r
+DlgLnkPopWidth         : "پهنا",\r
+DlgLnkPopHeight                : "درازا",\r
+DlgLnkPopLeft          : "موقعیت ِچپ",\r
+DlgLnkPopTop           : "موقعیت ِبالا",\r
+\r
+DlnLnkMsgNoUrl         : "لطفا URL پیوند را بنویسید",\r
+DlnLnkMsgNoEMail       : "لطفا نشانی پست الکترونیکی را بنویسید",\r
+DlnLnkMsgNoAnchor      : "لطفا لنگری را برگزینید",\r
+DlnLnkMsgInvPopName    : "نام پنجرهٴ پاپاپ باید با یک نویسهٴ الفبایی آغاز گردد و نباید فاصله‌های خالی در آن باشند",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "گزینش رنگ",\r
+DlgColorBtnClear       : "پاک‌کردن",\r
+DlgColorHighlight      : "نمونه",\r
+DlgColorSelected       : "برگزیده",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "گنجاندن خندانک",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "گزینش نویسهٴ‌ویژه",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "ویژگیهای جدول",\r
+DlgTableRows           : "سطرها",\r
+DlgTableColumns                : "ستونها",\r
+DlgTableBorder         : "اندازهٴ لبه",\r
+DlgTableAlign          : "چینش",\r
+DlgTableAlignNotSet    : "<تعین‌نشده>",\r
+DlgTableAlignLeft      : "چپ",\r
+DlgTableAlignCenter    : "وسط",\r
+DlgTableAlignRight     : "راست",\r
+DlgTableWidth          : "پهنا",\r
+DlgTableWidthPx                : "پیکسل",\r
+DlgTableWidthPc                : "درصد",\r
+DlgTableHeight         : "درازا",\r
+DlgTableCellSpace      : "فاصلهٴ میان سلولها",\r
+DlgTableCellPad                : "فاصلهٴ پرشده در سلول",\r
+DlgTableCaption                : "عنوان",\r
+DlgTableSummary                : "خلاصه",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "ویژگیهای سلول",\r
+DlgCellWidth           : "پهنا",\r
+DlgCellWidthPx         : "پیکسل",\r
+DlgCellWidthPc         : "درصد",\r
+DlgCellHeight          : "درازا",\r
+DlgCellWordWrap                : "شکستن واژه‌ها",\r
+DlgCellWordWrapNotSet  : "<تعین‌نشده>",\r
+DlgCellWordWrapYes     : "بله",\r
+DlgCellWordWrapNo      : "خیر",\r
+DlgCellHorAlign                : "چینش ِافقی",\r
+DlgCellHorAlignNotSet  : "<تعین‌نشده>",\r
+DlgCellHorAlignLeft    : "چپ",\r
+DlgCellHorAlignCenter  : "وسط",\r
+DlgCellHorAlignRight: "راست",\r
+DlgCellVerAlign                : "چینش ِعمودی",\r
+DlgCellVerAlignNotSet  : "<تعین‌نشده>",\r
+DlgCellVerAlignTop     : "بالا",\r
+DlgCellVerAlignMiddle  : "میان",\r
+DlgCellVerAlignBottom  : "پائین",\r
+DlgCellVerAlignBaseline        : "خط‌پایه",\r
+DlgCellRowSpan         : "گستردگی سطرها",\r
+DlgCellCollSpan                : "گستردگی ستونها",\r
+DlgCellBackColor       : "رنگ پس‌زمینه",\r
+DlgCellBorderColor     : "رنگ لبه",\r
+DlgCellBtnSelect       : "برگزینید...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "یافتن",\r
+DlgFindFindBtn         : "یافتن",\r
+DlgFindNotFoundMsg     : "متن موردنظر یافت نشد.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "جایگزینی",\r
+DlgReplaceFindLbl              : "چه‌چیز را می‌یابید:",\r
+DlgReplaceReplaceLbl   : "جایگزینی با:",\r
+DlgReplaceCaseChk              : "همسانی در بزرگی و کوچکی نویسه‌ها",\r
+DlgReplaceReplaceBtn   : "جایگزینی",\r
+DlgReplaceReplAllBtn   : "جایگزینی همهٴ یافته‌ها",\r
+DlgReplaceWordChk              : "همسانی با واژهٴ کامل",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+X).",\r
+PasteErrorCopy : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+C).",\r
+\r
+PasteAsText            : "چسباندن به عنوان متن ِساده",\r
+PasteFromWord  : "چسباندن از Word",\r
+\r
+DlgPasteMsg2   : "لطفا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.",\r
+DlgPasteSec            : "به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمی‌تواند دسترسی مستقیم به داده‌های clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.",\r
+DlgPasteIgnoreFont             : "چشم‌پوشی از تعاریف نوع قلم",\r
+DlgPasteRemoveStyles   : "چشم‌پوشی از تعاریف سبک (style)",\r
+DlgPasteCleanBox               : "پاک‌کردن ناحیه",\r
+\r
+// Color Picker\r
+ColorAutomatic : "خودکار",\r
+ColorMoreColors        : "رنگهای بیشتر...",\r
+\r
+// Document Properties\r
+DocProps               : "ویژگیهای سند",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "ویژگیهای لنگر",\r
+DlgAnchorName          : "نام لنگر",\r
+DlgAnchorErrorName     : "لطفا نام لنگر را بنویسید",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "در واژه‌نامه یافت نشد",\r
+DlgSpellChangeTo               : "تغییر به",\r
+DlgSpellBtnIgnore              : "چشم‌پوشی",\r
+DlgSpellBtnIgnoreAll   : "چشم‌پوشی همه",\r
+DlgSpellBtnReplace             : "جایگزینی",\r
+DlgSpellBtnReplaceAll  : "جایگزینی همه",\r
+DlgSpellBtnUndo                        : "واچینش",\r
+DlgSpellNoSuggestions  : "- پیشنهادی نیست -",\r
+DlgSpellProgress               : "بررسی املا در حال انجام...",\r
+DlgSpellNoMispell              : "بررسی املا انجام شد. هیچ غلط‌املائی یافت نشد",\r
+DlgSpellNoChanges              : "بررسی املا انجام شد. هیچ واژه‌ای تغییر نیافت",\r
+DlgSpellOneChange              : "بررسی املا انجام شد. یک واژه تغییر یافت",\r
+DlgSpellManyChanges            : "بررسی املا انجام شد. %1 واژه تغییر یافت",\r
+\r
+IeSpellDownload                        : "بررسی‌کنندهٴ املا نصب نشده است. آیا می‌خواهید آن را هم‌اکنون دریافت کنید؟",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "متن (مقدار)",\r
+DlgButtonType          : "نوع",\r
+DlgButtonTypeBtn       : "دکمه",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "بازنشانی (Reset)",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "نام",\r
+DlgCheckboxValue       : "مقدار",\r
+DlgCheckboxSelected    : "برگزیده",\r
+\r
+// Form Dialog\r
+DlgFormName            : "نام",\r
+DlgFormAction  : "رویداد",\r
+DlgFormMethod  : "متد",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "نام",\r
+DlgSelectValue         : "مقدار",\r
+DlgSelectSize          : "اندازه",\r
+DlgSelectLines         : "خطوط",\r
+DlgSelectChkMulti      : "گزینش چندگانه فراهم باشد",\r
+DlgSelectOpAvail       : "گزینه‌های دردسترس",\r
+DlgSelectOpText                : "متن",\r
+DlgSelectOpValue       : "مقدار",\r
+DlgSelectBtnAdd                : "افزودن",\r
+DlgSelectBtnModify     : "ویرایش",\r
+DlgSelectBtnUp         : "بالا",\r
+DlgSelectBtnDown       : "پائین",\r
+DlgSelectBtnSetValue : "تنظیم به عنوان مقدار ِبرگزیده",\r
+DlgSelectBtnDelete     : "پاک‌کردن",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "نام",\r
+DlgTextareaCols        : "ستونها",\r
+DlgTextareaRows        : "سطرها",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "نام",\r
+DlgTextValue           : "مقدار",\r
+DlgTextCharWidth       : "پهنای نویسه",\r
+DlgTextMaxChars                : "بیشینهٴ نویسه‌ها",\r
+DlgTextType                    : "نوع",\r
+DlgTextTypeText                : "متن",\r
+DlgTextTypePass                : "گذرواژه",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "نام",\r
+DlgHiddenValue : "مقدار",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "ویژگیهای فهرست نقطه‌ای",\r
+NumberedListProp       : "ویژگیهای فهرست شماره‌دار",\r
+DlgLstStart                    : "آغاز",\r
+DlgLstType                     : "نوع",\r
+DlgLstTypeCircle       : "دایره",\r
+DlgLstTypeDisc         : "قرص",\r
+DlgLstTypeSquare       : "چهارگوش",\r
+DlgLstTypeNumbers      : "شماره‌ها (1، 2، 3)",\r
+DlgLstTypeLCase                : "نویسه‌های کوچک (a، b، c)",\r
+DlgLstTypeUCase                : "نویسه‌های بزرگ (A، B، C)",\r
+DlgLstTypeSRoman       : "شمارگان رومی کوچک (i، ii، iii)",\r
+DlgLstTypeLRoman       : "شمارگان رومی بزرگ (I، II، III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "عمومی",\r
+DlgDocBackTab          : "پس‌زمینه",\r
+DlgDocColorsTab                : "رنگها و حاشیه‌ها",\r
+DlgDocMetaTab          : "فراداده",\r
+\r
+DlgDocPageTitle                : "عنوان صفحه",\r
+DlgDocLangDir          : "جهت زبان",\r
+DlgDocLangDirLTR       : "چپ به راست (LTR(",\r
+DlgDocLangDirRTL       : "راست به چپ (RTL(",\r
+DlgDocLangCode         : "کد زبان",\r
+DlgDocCharSet          : "رمزگذاری نویسه‌گان",\r
+DlgDocCharSetCE                : "اروپای مرکزی",\r
+DlgDocCharSetCT                : "چینی رسمی (Big5)",\r
+DlgDocCharSetCR                : "سیریلیک",\r
+DlgDocCharSetGR                : "یونانی",\r
+DlgDocCharSetJP                : "ژاپنی",\r
+DlgDocCharSetKR                : "کره‌ای",\r
+DlgDocCharSetTR                : "ترکی",\r
+DlgDocCharSetUN                : "یونیکُد (UTF-8)",\r
+DlgDocCharSetWE                : "اروپای غربی",\r
+DlgDocCharSetOther     : "رمزگذاری نویسه‌گان دیگر",\r
+\r
+DlgDocDocType          : "عنوان نوع سند",\r
+DlgDocDocTypeOther     : "عنوان نوع سند دیگر",\r
+DlgDocIncXHTML         : "شامل تعاریف XHTML",\r
+DlgDocBgColor          : "رنگ پس‌زمینه",\r
+DlgDocBgImage          : "URL تصویر پس‌زمینه",\r
+DlgDocBgNoScroll       : "پس‌زمینهٴ پیمایش‌ناپذیر",\r
+DlgDocCText                    : "متن",\r
+DlgDocCLink                    : "پیوند",\r
+DlgDocCVisited         : "پیوند مشاهده‌شده",\r
+DlgDocCActive          : "پیوند فعال",\r
+DlgDocMargins          : "حاشیه‌های صفحه",\r
+DlgDocMaTop                    : "بالا",\r
+DlgDocMaLeft           : "چپ",\r
+DlgDocMaRight          : "راست",\r
+DlgDocMaBottom         : "پایین",\r
+DlgDocMeIndex          : "کلیدواژگان نمایه‌گذاری سند (با کاما جدا شوند)",\r
+DlgDocMeDescr          : "توصیف سند",\r
+DlgDocMeAuthor         : "نویسنده",\r
+DlgDocMeCopy           : "کپی‌رایت",\r
+DlgDocPreview          : "پیش‌نمایش",\r
+\r
+// Templates Dialog\r
+Templates                      : "الگوها",\r
+DlgTemplatesTitle      : "الگوهای محتویات",\r
+DlgTemplatesSelMsg     : "لطفا الگوی موردنظر را برای بازکردن در ویرایشگر برگزینید<br>(محتویات کنونی از دست خواهند رفت):",\r
+DlgTemplatesLoading    : "بارگذاری فهرست الگوها. لطفا صبر کنید...",\r
+DlgTemplatesNoTpl      : "(الگوئی تعریف نشده است)",\r
+DlgTemplatesReplace    : "محتویات کنونی جایگزین شوند",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "درباره",\r
+DlgAboutBrowserInfoTab : "اطلاعات مرورگر",\r
+DlgAboutLicenseTab     : "گواهینامه",\r
+DlgAboutVersion                : "نگارش",\r
+DlgAboutInfo           : "برای آگاهی بیشتر به این نشانی بروید"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/fi.js b/httemplate/elements/fckeditor/editor/lang/fi.js
new file mode 100644 (file)
index 0000000..7e7986a
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Finnish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Piilota työkalurivi",\r
+ToolbarExpand          : "Näytä työkalurivi",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Tallenna",\r
+NewPage                                : "Tyhjennä",\r
+Preview                                : "Esikatsele",\r
+Cut                                    : "Leikkaa",\r
+Copy                           : "Kopioi",\r
+Paste                          : "Liitä",\r
+PasteText                      : "Liitä tekstinä",\r
+PasteWord                      : "Liitä Wordista",\r
+Print                          : "Tulosta",\r
+SelectAll                      : "Valitse kaikki",\r
+RemoveFormat           : "Poista muotoilu",\r
+InsertLinkLbl          : "Linkki",\r
+InsertLink                     : "Lisää linkki/muokkaa linkkiä",\r
+RemoveLink                     : "Poista linkki",\r
+Anchor                         : "Lisää ankkuri/muokkaa ankkuria",\r
+InsertImageLbl         : "Kuva",\r
+InsertImage                    : "Lisää kuva/muokkaa kuvaa",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Lisää/muokkaa Flashia",\r
+InsertTableLbl         : "Taulu",\r
+InsertTable                    : "Lisää taulu/muokkaa taulua",\r
+InsertLineLbl          : "Murtoviiva",\r
+InsertLine                     : "Lisää murtoviiva",\r
+InsertSpecialCharLbl: "Erikoismerkki",\r
+InsertSpecialChar      : "Lisää erikoismerkki",\r
+InsertSmileyLbl                : "Hymiö",\r
+InsertSmiley           : "Lisää hymiö",\r
+About                          : "FCKeditorista",\r
+Bold                           : "Lihavoitu",\r
+Italic                         : "Kursivoitu",\r
+Underline                      : "Alleviivattu",\r
+StrikeThrough          : "Yliviivattu",\r
+Subscript                      : "Alaindeksi",\r
+Superscript                    : "Yläindeksi",\r
+LeftJustify                    : "Tasaa vasemmat reunat",\r
+CenterJustify          : "Keskitä",\r
+RightJustify           : "Tasaa oikeat reunat",\r
+BlockJustify           : "Tasaa molemmat reunat",\r
+DecreaseIndent         : "Pienennä sisennystä",\r
+IncreaseIndent         : "Suurenna sisennystä",\r
+Undo                           : "Kumoa",\r
+Redo                           : "Toista",\r
+NumberedListLbl                : "Numerointi",\r
+NumberedList           : "Lisää/poista numerointi",\r
+BulletedListLbl                : "Luottelomerkit",\r
+BulletedList           : "Lisää/poista luottelomerkit",\r
+ShowTableBorders       : "Näytä taulun rajat",\r
+ShowDetails                    : "Näytä muotoilu",\r
+Style                          : "Tyyli",\r
+FontFormat                     : "Muotoilu",\r
+Font                           : "Fontti",\r
+FontSize                       : "Koko",\r
+TextColor                      : "Tekstiväri",\r
+BGColor                                : "Taustaväri",\r
+Source                         : "Koodi",\r
+Find                           : "Etsi",\r
+Replace                                : "Korvaa",\r
+SpellCheck                     : "Tarkista oikeinkirjoitus",\r
+UniversalKeyboard      : "Universaali näppäimistö",\r
+PageBreakLbl           : "Sivun vaihto",\r
+PageBreak                      : "Lisää sivun vaihto",\r
+\r
+Form                   : "Lomake",\r
+Checkbox               : "Valintaruutu",\r
+RadioButton            : "Radiopainike",\r
+TextField              : "Tekstikenttä",\r
+Textarea               : "Tekstilaatikko",\r
+HiddenField            : "Piilokenttä",\r
+Button                 : "Painike",\r
+SelectionField : "Valintakenttä",\r
+ImageButton            : "Kuvapainike",\r
+\r
+FitWindow              : "Suurenna editori koko ikkunaan",\r
+\r
+// Context Menu\r
+EditLink                       : "Muokkaa linkkiä",\r
+CellCM                         : "Solu",\r
+RowCM                          : "Rivi",\r
+ColumnCM                       : "Sarake",\r
+InsertRow                      : "Lisää rivi",\r
+DeleteRows                     : "Poista rivit",\r
+InsertColumn           : "Lisää sarake",\r
+DeleteColumns          : "Poista sarakkeet",\r
+InsertCell                     : "Lisää solu",\r
+DeleteCells                    : "Poista solut",\r
+MergeCells                     : "Yhdistä solut",\r
+SplitCell                      : "Jaa solu",\r
+TableDelete                    : "Poista taulu",\r
+CellProperties         : "Solun ominaisuudet",\r
+TableProperties                : "Taulun ominaisuudet",\r
+ImageProperties                : "Kuvan ominaisuudet",\r
+FlashProperties                : "Flash ominaisuudet",\r
+\r
+AnchorProp                     : "Ankkurin ominaisuudet",\r
+ButtonProp                     : "Painikkeen ominaisuudet",\r
+CheckboxProp           : "Valintaruudun ominaisuudet",\r
+HiddenFieldProp                : "Piilokentän ominaisuudet",\r
+RadioButtonProp                : "Radiopainikkeen ominaisuudet",\r
+ImageButtonProp                : "Kuvapainikkeen ominaisuudet",\r
+TextFieldProp          : "Tekstikentän ominaisuudet",\r
+SelectionFieldProp     : "Valintakentän ominaisuudet",\r
+TextareaProp           : "Tekstilaatikon ominaisuudet",\r
+FormProp                       : "Lomakkeen ominaisuudet",\r
+\r
+FontFormats                    : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Prosessoidaan XHTML:ää. Odota hetki...",\r
+Done                           : "Valmis",\r
+PasteWordConfirm       : "Teksti, jonka haluat liittää, näyttää olevan kopioitu Wordista. Haluatko puhdistaa sen ennen liittämistä?",\r
+NotCompatiblePaste     : "Tämä komento toimii vain Internet Explorer 5.5:ssa tai uudemmassa. Haluatko liittää ilman puhdistusta?",\r
+UnknownToolbarItem     : "Tuntemanton työkalu \"%1\"",\r
+UnknownCommand         : "Tuntematon komento \"%1\"",\r
+NotImplemented         : "Komentoa ei ole liitetty sovellukseen",\r
+UnknownToolbarSet      : "Työkalukokonaisuus \"%1\" ei ole olemassa",\r
+NoActiveX                      : "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.",\r
+BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",\r
+DialogBlocked          : "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Peruuta",\r
+DlgBtnClose                    : "Sulje",\r
+DlgBtnBrowseServer     : "Selaa palvelinta",\r
+DlgAdvancedTag         : "Lisäominaisuudet",\r
+DlgOpOther                     : "Muut",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Lisää URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ei asetettu>",\r
+DlgGenId                       : "Tunniste",\r
+DlgGenLangDir          : "Kielen suunta",\r
+DlgGenLangDirLtr       : "Vasemmalta oikealle (LTR)",\r
+DlgGenLangDirRtl       : "Oikealta vasemmalle (RTL)",\r
+DlgGenLangCode         : "Kielikoodi",\r
+DlgGenAccessKey                : "Pikanäppäin",\r
+DlgGenName                     : "Nimi",\r
+DlgGenTabIndex         : "Tabulaattori indeksi",\r
+DlgGenLongDescr                : "Pitkän kuvauksen URL",\r
+DlgGenClass                    : "Tyyliluokat",\r
+DlgGenTitle                    : "Avustava otsikko",\r
+DlgGenContType         : "Avustava sisällön tyyppi",\r
+DlgGenLinkCharset      : "Linkitetty kirjaimisto",\r
+DlgGenStyle                    : "Tyyli",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Kuvan ominaisuudet",\r
+DlgImgInfoTab          : "Kuvan tiedot",\r
+DlgImgBtnUpload                : "Lähetä palvelimelle",\r
+DlgImgURL                      : "Osoite",\r
+DlgImgUpload           : "Lisää kuva",\r
+DlgImgAlt                      : "Vaihtoehtoinen teksti",\r
+DlgImgWidth                    : "Leveys",\r
+DlgImgHeight           : "Korkeus",\r
+DlgImgLockRatio                : "Lukitse suhteet",\r
+DlgBtnResetSize                : "Alkuperäinen koko",\r
+DlgImgBorder           : "Raja",\r
+DlgImgHSpace           : "Vaakatila",\r
+DlgImgVSpace           : "Pystytila",\r
+DlgImgAlign                    : "Kohdistus",\r
+DlgImgAlignLeft                : "Vasemmalle",\r
+DlgImgAlignAbsBottom: "Aivan alas",\r
+DlgImgAlignAbsMiddle: "Aivan keskelle",\r
+DlgImgAlignBaseline    : "Alas (teksti)",\r
+DlgImgAlignBottom      : "Alas",\r
+DlgImgAlignMiddle      : "Keskelle",\r
+DlgImgAlignRight       : "Oikealle",\r
+DlgImgAlignTextTop     : "Ylös (teksti)",\r
+DlgImgAlignTop         : "Ylös",\r
+DlgImgPreview          : "Esikatselu",\r
+DlgImgAlertUrl         : "Kirjoita kuvan osoite (URL)",\r
+DlgImgLinkTab          : "Linkki",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash ominaisuudet",\r
+DlgFlashChkPlay                : "Automaattinen käynnistys",\r
+DlgFlashChkLoop                : "Toisto",\r
+DlgFlashChkMenu                : "Näytä Flash-valikko",\r
+DlgFlashScale          : "Levitä",\r
+DlgFlashScaleAll       : "Näytä kaikki",\r
+DlgFlashScaleNoBorder  : "Ei rajaa",\r
+DlgFlashScaleFit       : "Tarkka koko",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Linkki",\r
+DlgLnkInfoTab          : "Linkin tiedot",\r
+DlgLnkTargetTab                : "Kohde",\r
+\r
+DlgLnkType                     : "Linkkityyppi",\r
+DlgLnkTypeURL          : "Osoite",\r
+DlgLnkTypeAnchor       : "Ankkuri tässä sivussa",\r
+DlgLnkTypeEMail                : "Sähköposti",\r
+DlgLnkProto                    : "Protokolla",\r
+DlgLnkProtoOther       : "<muu>",\r
+DlgLnkURL                      : "Osoite",\r
+DlgLnkAnchorSel                : "Valitse ankkuri",\r
+DlgLnkAnchorByName     : "Ankkurin nimen mukaan",\r
+DlgLnkAnchorById       : "Ankkurin ID:n mukaan",\r
+DlgLnkNoAnchors                : "<Ei ankkureita tässä dokumentissa>",               //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Sähköpostiosoite",\r
+DlgLnkEMailSubject     : "Aihe",\r
+DlgLnkEMailBody                : "Viesti",\r
+DlgLnkUpload           : "Lisää tiedosto",\r
+DlgLnkBtnUpload                : "Lähetä palvelimelle",\r
+\r
+DlgLnkTarget           : "Kohde",\r
+DlgLnkTargetFrame      : "<kehys>",\r
+DlgLnkTargetPopup      : "<popup ikkuna>",\r
+DlgLnkTargetBlank      : "Uusi ikkuna (_blank)",\r
+DlgLnkTargetParent     : "Emoikkuna (_parent)",\r
+DlgLnkTargetSelf       : "Sama ikkuna (_self)",\r
+DlgLnkTargetTop                : "Päällimmäisin ikkuna (_top)",\r
+DlgLnkTargetFrameName  : "Kohdekehyksen nimi",\r
+DlgLnkPopWinName       : "Popup ikkunan nimi",\r
+DlgLnkPopWinFeat       : "Popup ikkunan ominaisuudet",\r
+DlgLnkPopResize                : "Venytettävä",\r
+DlgLnkPopLocation      : "Osoiterivi",\r
+DlgLnkPopMenu          : "Valikkorivi",\r
+DlgLnkPopScroll                : "Vierityspalkit",\r
+DlgLnkPopStatus                : "Tilarivi",\r
+DlgLnkPopToolbar       : "Vakiopainikkeet",\r
+DlgLnkPopFullScrn      : "Täysi ikkuna (IE)",\r
+DlgLnkPopDependent     : "Riippuva (Netscape)",\r
+DlgLnkPopWidth         : "Leveys",\r
+DlgLnkPopHeight                : "Korkeus",\r
+DlgLnkPopLeft          : "Vasemmalta (px)",\r
+DlgLnkPopTop           : "Ylhäältä (px)",\r
+\r
+DlnLnkMsgNoUrl         : "Linkille on kirjoitettava URL",\r
+DlnLnkMsgNoEMail       : "Kirjoita sähköpostiosoite",\r
+DlnLnkMsgNoAnchor      : "Valitse ankkuri",\r
+DlnLnkMsgInvPopName    : "Popup-ikkunan nimi pitää alkaa aakkosella ja ei saa sisältää välejä",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Valitse väri",\r
+DlgColorBtnClear       : "Tyhjennä",\r
+DlgColorHighlight      : "Kohdalla",\r
+DlgColorSelected       : "Valittu",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Lisää hymiö",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Valitse erikoismerkki",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Taulun ominaisuudet",\r
+DlgTableRows           : "Rivit",\r
+DlgTableColumns                : "Sarakkeet",\r
+DlgTableBorder         : "Rajan paksuus",\r
+DlgTableAlign          : "Kohdistus",\r
+DlgTableAlignNotSet    : "<ei asetettu>",\r
+DlgTableAlignLeft      : "Vasemmalle",\r
+DlgTableAlignCenter    : "Keskelle",\r
+DlgTableAlignRight     : "Oikealle",\r
+DlgTableWidth          : "Leveys",\r
+DlgTableWidthPx                : "pikseliä",\r
+DlgTableWidthPc                : "prosenttia",\r
+DlgTableHeight         : "Korkeus",\r
+DlgTableCellSpace      : "Solujen väli",\r
+DlgTableCellPad                : "Solujen sisennys",\r
+DlgTableCaption                : "Otsikko",\r
+DlgTableSummary                : "Yhteenveto",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Solun ominaisuudet",\r
+DlgCellWidth           : "Leveys",\r
+DlgCellWidthPx         : "pikseliä",\r
+DlgCellWidthPc         : "prosenttia",\r
+DlgCellHeight          : "Korkeus",\r
+DlgCellWordWrap                : "Tekstikierrätys",\r
+DlgCellWordWrapNotSet  : "<Ei asetettu>",\r
+DlgCellWordWrapYes     : "Kyllä",\r
+DlgCellWordWrapNo      : "Ei",\r
+DlgCellHorAlign                : "Vaakakohdistus",\r
+DlgCellHorAlignNotSet  : "<Ei asetettu>",\r
+DlgCellHorAlignLeft    : "Vasemmalle",\r
+DlgCellHorAlignCenter  : "Keskelle",\r
+DlgCellHorAlignRight: "Oikealle",\r
+DlgCellVerAlign                : "Pystykohdistus",\r
+DlgCellVerAlignNotSet  : "<Ei asetettu>",\r
+DlgCellVerAlignTop     : "Ylös",\r
+DlgCellVerAlignMiddle  : "Keskelle",\r
+DlgCellVerAlignBottom  : "Alas",\r
+DlgCellVerAlignBaseline        : "Tekstin alas",\r
+DlgCellRowSpan         : "Rivin jatkuvuus",\r
+DlgCellCollSpan                : "Sarakkeen jatkuvuus",\r
+DlgCellBackColor       : "Taustaväri",\r
+DlgCellBorderColor     : "Rajan väri",\r
+DlgCellBtnSelect       : "Valitse...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Etsi",\r
+DlgFindFindBtn         : "Etsi",\r
+DlgFindNotFoundMsg     : "Etsittyä tekstiä ei löytynyt.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Korvaa",\r
+DlgReplaceFindLbl              : "Etsi mitä:",\r
+DlgReplaceReplaceLbl   : "Korvaa tällä:",\r
+DlgReplaceCaseChk              : "Sama kirjainkoko",\r
+DlgReplaceReplaceBtn   : "Korvaa",\r
+DlgReplaceReplAllBtn   : "Korvaa kaikki",\r
+DlgReplaceWordChk              : "Koko sana",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).",\r
+PasteErrorCopy : "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).",\r
+\r
+PasteAsText            : "Liitä tekstinä",\r
+PasteFromWord  : "Liitä Wordista",\r
+\r
+DlgPasteMsg2   : "Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.",\r
+DlgPasteIgnoreFont             : "Jätä huomioimatta fonttimääritykset",\r
+DlgPasteRemoveStyles   : "Poista tyylimääritykset",\r
+DlgPasteCleanBox               : "Tyhjennä",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automaattinen",\r
+ColorMoreColors        : "Lisää värejä...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentin ominaisuudet",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankkurin ominaisuudet",\r
+DlgAnchorName          : "Nimi",\r
+DlgAnchorErrorName     : "Ankkurille on kirjoitettava nimi",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ei sanakirjassa",\r
+DlgSpellChangeTo               : "Vaihda",\r
+DlgSpellBtnIgnore              : "Jätä huomioimatta",\r
+DlgSpellBtnIgnoreAll   : "Jätä kaikki huomioimatta",\r
+DlgSpellBtnReplace             : "Korvaa",\r
+DlgSpellBtnReplaceAll  : "Korvaa kaikki",\r
+DlgSpellBtnUndo                        : "Kumoa",\r
+DlgSpellNoSuggestions  : "Ei ehdotuksia",\r
+DlgSpellProgress               : "Tarkistus käynnissä...",\r
+DlgSpellNoMispell              : "Tarkistus valmis: Ei virheitä",\r
+DlgSpellNoChanges              : "Tarkistus valmis: Yhtään sanaa ei muutettu",\r
+DlgSpellOneChange              : "Tarkistus valmis: Yksi sana muutettiin",\r
+DlgSpellManyChanges            : "Tarkistus valmis: %1 sanaa muutettiin",\r
+\r
+IeSpellDownload                        : "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Teksti (arvo)",\r
+DlgButtonType          : "Tyyppi",\r
+DlgButtonTypeBtn       : "Painike",\r
+DlgButtonTypeSbm       : "Lähetä",\r
+DlgButtonTypeRst       : "Tyhjennä",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nimi",\r
+DlgCheckboxValue       : "Arvo",\r
+DlgCheckboxSelected    : "Valittu",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nimi",\r
+DlgFormAction  : "Toiminto",\r
+DlgFormMethod  : "Tapa",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nimi",\r
+DlgSelectValue         : "Arvo",\r
+DlgSelectSize          : "Koko",\r
+DlgSelectLines         : "Rivit",\r
+DlgSelectChkMulti      : "Salli usea valinta",\r
+DlgSelectOpAvail       : "Ominaisuudet",\r
+DlgSelectOpText                : "Teksti",\r
+DlgSelectOpValue       : "Arvo",\r
+DlgSelectBtnAdd                : "Lisää",\r
+DlgSelectBtnModify     : "Muuta",\r
+DlgSelectBtnUp         : "Ylös",\r
+DlgSelectBtnDown       : "Alas",\r
+DlgSelectBtnSetValue : "Aseta valituksi",\r
+DlgSelectBtnDelete     : "Poista",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nimi",\r
+DlgTextareaCols        : "Sarakkeita",\r
+DlgTextareaRows        : "Rivejä",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nimi",\r
+DlgTextValue           : "Arvo",\r
+DlgTextCharWidth       : "Leveys",\r
+DlgTextMaxChars                : "Maksimi merkkimäärä",\r
+DlgTextType                    : "Tyyppi",\r
+DlgTextTypeText                : "Teksti",\r
+DlgTextTypePass                : "Salasana",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nimi",\r
+DlgHiddenValue : "Arvo",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Luettelon ominaisuudet",\r
+NumberedListProp       : "Numeroinnin ominaisuudet",\r
+DlgLstStart                    : "Alku",\r
+DlgLstType                     : "Tyyppi",\r
+DlgLstTypeCircle       : "Kehä",\r
+DlgLstTypeDisc         : "Ympyrä",\r
+DlgLstTypeSquare       : "Neliö",\r
+DlgLstTypeNumbers      : "Numerot (1, 2, 3)",\r
+DlgLstTypeLCase                : "Pienet kirjaimet (a, b, c)",\r
+DlgLstTypeUCase                : "Isot kirjaimet (A, B, C)",\r
+DlgLstTypeSRoman       : "Pienet roomalaiset numerot (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Isot roomalaiset numerot (Ii, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Yleiset",\r
+DlgDocBackTab          : "Tausta",\r
+DlgDocColorsTab                : "Värit ja marginaalit",\r
+DlgDocMetaTab          : "Meta-tieto",\r
+\r
+DlgDocPageTitle                : "Sivun nimi",\r
+DlgDocLangDir          : "Kielen suunta",\r
+DlgDocLangDirLTR       : "Vasemmalta oikealle (LTR)",\r
+DlgDocLangDirRTL       : "Oikealta vasemmalle (RTL)",\r
+DlgDocLangCode         : "Kielikoodi",\r
+DlgDocCharSet          : "Merkistökoodaus",\r
+DlgDocCharSetCE                : "Keskieurooppalainen",\r
+DlgDocCharSetCT                : "Kiina, perinteinen (Big5)",\r
+DlgDocCharSetCR                : "Kyrillinen",\r
+DlgDocCharSetGR                : "Kreikka",\r
+DlgDocCharSetJP                : "Japani",\r
+DlgDocCharSetKR                : "Korealainen",\r
+DlgDocCharSetTR                : "Turkkilainen",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Länsieurooppalainen",\r
+DlgDocCharSetOther     : "Muu merkistökoodaus",\r
+\r
+DlgDocDocType          : "Dokumentin tyyppi",\r
+DlgDocDocTypeOther     : "Muu dokumentin tyyppi",\r
+DlgDocIncXHTML         : "Lisää XHTML julistukset",\r
+DlgDocBgColor          : "Taustaväri",\r
+DlgDocBgImage          : "Taustakuva",\r
+DlgDocBgNoScroll       : "Paikallaanpysyvä tausta",\r
+DlgDocCText                    : "Teksti",\r
+DlgDocCLink                    : "Linkki",\r
+DlgDocCVisited         : "Vierailtu linkki",\r
+DlgDocCActive          : "Aktiivinen linkki",\r
+DlgDocMargins          : "Sivun marginaalit",\r
+DlgDocMaTop                    : "Ylä",\r
+DlgDocMaLeft           : "Vasen",\r
+DlgDocMaRight          : "Oikea",\r
+DlgDocMaBottom         : "Ala",\r
+DlgDocMeIndex          : "Hakusanat (pilkulla erotettuna)",\r
+DlgDocMeDescr          : "Kuvaus",\r
+DlgDocMeAuthor         : "Tekijä",\r
+DlgDocMeCopy           : "Tekijänoikeudet",\r
+DlgDocPreview          : "Esikatselu",\r
+\r
+// Templates Dialog\r
+Templates                      : "Pohjat",\r
+DlgTemplatesTitle      : "Sisältöpohjat",\r
+DlgTemplatesSelMsg     : "Valitse pohja editoriin<br>(aiempi sisältö menetetään):",\r
+DlgTemplatesLoading    : "Ladataan listaa pohjista. Hetkinen...",\r
+DlgTemplatesNoTpl      : "(Ei määriteltyjä pohjia)",\r
+DlgTemplatesReplace    : "Korvaa editorin koko sisältö",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Editorista",\r
+DlgAboutBrowserInfoTab : "Selaimen tiedot",\r
+DlgAboutLicenseTab     : "Lisenssi",\r
+DlgAboutVersion                : "versio",\r
+DlgAboutInfo           : "Lisää tietoa osoitteesta"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/fo.js b/httemplate/elements/fckeditor/editor/lang/fo.js
new file mode 100644 (file)
index 0000000..830c43e
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Faroese language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Fjal amboðsbjálkan",\r
+ToolbarExpand          : "Vís amboðsbjálkan",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Goym",\r
+NewPage                                : "Nýggj síða",\r
+Preview                                : "Frumsýning",\r
+Cut                                    : "Kvett",\r
+Copy                           : "Avrita",\r
+Paste                          : "Innrita",\r
+PasteText                      : "Innrita reinan tekst",\r
+PasteWord                      : "Innrita frá Word",\r
+Print                          : "Prenta",\r
+SelectAll                      : "Markera alt",\r
+RemoveFormat           : "Strika sniðgeving",\r
+InsertLinkLbl          : "Tilknýti",\r
+InsertLink                     : "Ger/broyt tilknýti",\r
+RemoveLink                     : "Strika tilknýti",\r
+Anchor                         : "Ger/broyt marknastein",\r
+InsertImageLbl         : "Myndir",\r
+InsertImage                    : "Set inn/broyt mynd",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Set inn/broyt Flash",\r
+InsertTableLbl         : "Tabell",\r
+InsertTable                    : "Set inn/broyt tabell",\r
+InsertLineLbl          : "Linja",\r
+InsertLine                     : "Ger vatnrætta linju",\r
+InsertSpecialCharLbl: "Sertekn",\r
+InsertSpecialChar      : "Set inn sertekn",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Set inn Smiley",\r
+About                          : "Um FCKeditor",\r
+Bold                           : "Feit skrift",\r
+Italic                         : "Skráskrift",\r
+Underline                      : "Undirstrikað",\r
+StrikeThrough          : "Yvirstrikað",\r
+Subscript                      : "Lækkað skrift",\r
+Superscript                    : "Hækkað skrift",\r
+LeftJustify                    : "Vinstrasett",\r
+CenterJustify          : "Miðsett",\r
+RightJustify           : "Høgrasett",\r
+BlockJustify           : "Javnir tekstkantar",\r
+DecreaseIndent         : "Minka reglubrotarinntriv",\r
+IncreaseIndent         : "Økja reglubrotarinntriv",\r
+Undo                           : "Angra",\r
+Redo                           : "Vend aftur",\r
+NumberedListLbl                : "Talmerktur listi",\r
+NumberedList           : "Ger/strika talmerktan lista",\r
+BulletedListLbl                : "Punktmerktur listi",\r
+BulletedList           : "Ger/strika punktmerktan lista",\r
+ShowTableBorders       : "Vís tabellbordar",\r
+ShowDetails                    : "Vís í smálutum",\r
+Style                          : "Typografi",\r
+FontFormat                     : "Skriftsnið",\r
+Font                           : "Skrift",\r
+FontSize                       : "Skriftstødd",\r
+TextColor                      : "Tekstlitur",\r
+BGColor                                : "Bakgrundslitur",\r
+Source                         : "Kelda",\r
+Find                           : "Leita",\r
+Replace                                : "Yvirskriva",\r
+SpellCheck                     : "Kanna stavseting",\r
+UniversalKeyboard      : "Knappaborð",\r
+PageBreakLbl           : "Síðuskift",\r
+PageBreak                      : "Ger síðuskift",\r
+\r
+Form                   : "Formur",\r
+Checkbox               : "Flugubein",\r
+RadioButton            : "Radioknøttur",\r
+TextField              : "Tekstteigur",\r
+Textarea               : "Tekstumráði",\r
+HiddenField            : "Fjaldur teigur",\r
+Button                 : "Knøttur",\r
+SelectionField : "Valskrá",\r
+ImageButton            : "Myndaknøttur",\r
+\r
+FitWindow              : "Set tekstviðgera til fulla stødd",\r
+\r
+// Context Menu\r
+EditLink                       : "Broyt tilknýti",\r
+CellCM                         : "Meski",\r
+RowCM                          : "Rað",\r
+ColumnCM                       : "Kolonna",\r
+InsertRow                      : "Nýtt rað",\r
+DeleteRows                     : "Strika røðir",\r
+InsertColumn           : "Nýggj kolonna",\r
+DeleteColumns          : "Strika kolonnur",\r
+InsertCell                     : "Nýggjur meski",\r
+DeleteCells                    : "Strika meskar",\r
+MergeCells                     : "Flætta meskar",\r
+SplitCell                      : "Být sundur meskar",\r
+TableDelete                    : "Strika tabell",\r
+CellProperties         : "Meskueginleikar",\r
+TableProperties                : "Tabelleginleikar",\r
+ImageProperties                : "Myndaeginleikar",\r
+FlashProperties                : "Flash eginleikar",\r
+\r
+AnchorProp                     : "Eginleikar fyri marknastein",\r
+ButtonProp                     : "Eginleikar fyri knøtt",\r
+CheckboxProp           : "Eginleikar fyri flugubein",\r
+HiddenFieldProp                : "Eginleikar fyri fjaldan teig",\r
+RadioButtonProp                : "Eginleikar fyri radioknøtt",\r
+ImageButtonProp                : "Eginleikar fyri myndaknøtt",\r
+TextFieldProp          : "Eginleikar fyri tekstteig",\r
+SelectionFieldProp     : "Eginleikar fyri valskrá",\r
+TextareaProp           : "Eginleikar fyri tekstumráði",\r
+FormProp                       : "Eginleikar fyri Form",\r
+\r
+FontFormats                    : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML verður viðgjørt. Bíða við...",\r
+Done                           : "Liðugt",\r
+PasteWordConfirm       : "Teksturin, royndur verður at seta inn, tykist at stava frá Word. Vilt tú reinsa tekstin, áðrenn hann verður settur inn?",\r
+NotCompatiblePaste     : "Hetta er bert tøkt í Internet Explorer 5.5 og nýggjari. Vilt tú seta tekstin inn kortini - óreinsaðan?",\r
+UnknownToolbarItem     : "Ókendur lutur í amboðsbjálkanum \"%1\"",\r
+UnknownCommand         : "Ókend kommando \"%1\"",\r
+NotImplemented         : "Hetta er ikki tøkt í hesi útgávuni",\r
+UnknownToolbarSet      : "Amboðsbjálkin \"%1\" finst ikki",\r
+NoActiveX                      : "Trygdaruppsetingin í alnótskaganum kann sum er avmarka onkrar hentleikar í tekstviðgeranum. Tú mást loyva møguleikanum \"Run/Kør ActiveX controls and plug-ins\". Tú kanst uppliva feilir og ávaringar um tvørrandi hentleikar.",\r
+BrowseServerBlocked : "Ambætarakagin kundi ikki opnast. Tryggja tær, at allar pop-up forðingar eru óvirknar.",\r
+DialogBlocked          : "Tað eyðnaðist ikki at opna samskiftisrútin. Tryggja tær, at allar pop-up forðingar eru óvirknar.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Góðkent",\r
+DlgBtnCancel           : "Avlýst",\r
+DlgBtnClose                    : "Lat aftur",\r
+DlgBtnBrowseServer     : "Ambætarakagi",\r
+DlgAdvancedTag         : "Fjølbroytt",\r
+DlgOpOther                     : "<Annað>",\r
+DlgInfoTab                     : "Upplýsingar",\r
+DlgAlertUrl                    : "Vinarliga veit ein URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ikki sett>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Tekstkós",\r
+DlgGenLangDirLtr       : "Frá vinstru til høgru (LTR)",\r
+DlgGenLangDirRtl       : "Frá høgru til vinstru (RTL)",\r
+DlgGenLangCode         : "Málkoda",\r
+DlgGenAccessKey                : "Snarvegisknappur",\r
+DlgGenName                     : "Navn",\r
+DlgGenTabIndex         : "Inntriv indeks",\r
+DlgGenLongDescr                : "Víðkað URL frágreiðing",\r
+DlgGenClass                    : "Typografi klassar",\r
+DlgGenTitle                    : "Vegleiðandi heiti",\r
+DlgGenContType         : "Vegleiðandi innihaldsslag",\r
+DlgGenLinkCharset      : "Atknýtt teknsett",\r
+DlgGenStyle                    : "Typografi",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Myndaeginleikar",\r
+DlgImgInfoTab          : "Myndaupplýsingar",\r
+DlgImgBtnUpload                : "Send til ambætaran",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Send",\r
+DlgImgAlt                      : "Alternativur tekstur",\r
+DlgImgWidth                    : "Breidd",\r
+DlgImgHeight           : "Hædd",\r
+DlgImgLockRatio                : "Læs lutfallið",\r
+DlgBtnResetSize                : "Upprunastødd",\r
+DlgImgBorder           : "Bordi",\r
+DlgImgHSpace           : "Høgri breddi",\r
+DlgImgVSpace           : "Vinstri breddi",\r
+DlgImgAlign                    : "Justering",\r
+DlgImgAlignLeft                : "Vinstra",\r
+DlgImgAlignAbsBottom: "Abs botnur",\r
+DlgImgAlignAbsMiddle: "Abs miðja",\r
+DlgImgAlignBaseline    : "Basislinja",\r
+DlgImgAlignBottom      : "Botnur",\r
+DlgImgAlignMiddle      : "Miðja",\r
+DlgImgAlignRight       : "Høgra",\r
+DlgImgAlignTextTop     : "Tekst toppur",\r
+DlgImgAlignTop         : "Ovast",\r
+DlgImgPreview          : "Frumsýning",\r
+DlgImgAlertUrl         : "Rita slóðina til myndina",\r
+DlgImgLinkTab          : "Tilknýti",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash eginleikar",\r
+DlgFlashChkPlay                : "Avspælingin byrjar sjálv",\r
+DlgFlashChkLoop                : "Endurspæl",\r
+DlgFlashChkMenu                : "Ger Flash skrá virkna",\r
+DlgFlashScale          : "Skalering",\r
+DlgFlashScaleAll       : "Vís alt",\r
+DlgFlashScaleNoBorder  : "Eingin bordi",\r
+DlgFlashScaleFit       : "Neyv skalering",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Tilknýti",\r
+DlgLnkInfoTab          : "Tilknýtis upplýsingar",\r
+DlgLnkTargetTab                : "Mál",\r
+\r
+DlgLnkType                     : "Tilknýtisslag",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Tilknýti til marknastein í tekstinum",\r
+DlgLnkTypeEMail                : "Teldupostur",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<Annað>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Vel ein marknastein",\r
+DlgLnkAnchorByName     : "Eftir navni á marknasteini",\r
+DlgLnkAnchorById       : "Eftir element Id",\r
+DlgLnkNoAnchors                : "(Eingir marknasteinar eru í hesum dokumentið)",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Teldupost-adressa",\r
+DlgLnkEMailSubject     : "Evni",\r
+DlgLnkEMailBody                : "Breyðtekstur",\r
+DlgLnkUpload           : "Send til ambætaran",\r
+DlgLnkBtnUpload                : "Send til ambætaran",\r
+\r
+DlgLnkTarget           : "Mál",\r
+DlgLnkTargetFrame      : "<ramma>",\r
+DlgLnkTargetPopup      : "<popup vindeyga>",\r
+DlgLnkTargetBlank      : "Nýtt vindeyga (_blank)",\r
+DlgLnkTargetParent     : "Upphavliga vindeygað (_parent)",\r
+DlgLnkTargetSelf       : "Sama vindeygað (_self)",\r
+DlgLnkTargetTop                : "Alt vindeygað (_top)",\r
+DlgLnkTargetFrameName  : "Vís navn vindeygans",\r
+DlgLnkPopWinName       : "Popup vindeygans navn",\r
+DlgLnkPopWinFeat       : "Popup vindeygans víðkaðu eginleikar",\r
+DlgLnkPopResize                : "Kann broyta stødd",\r
+DlgLnkPopLocation      : "Adressulinja",\r
+DlgLnkPopMenu          : "Skrábjálki",\r
+DlgLnkPopScroll                : "Rullibjálki",\r
+DlgLnkPopStatus                : "Støðufrágreiðingarbjálki",\r
+DlgLnkPopToolbar       : "Amboðsbjálki",\r
+DlgLnkPopFullScrn      : "Fullur skermur (IE)",\r
+DlgLnkPopDependent     : "Bundið (Netscape)",\r
+DlgLnkPopWidth         : "Breidd",\r
+DlgLnkPopHeight                : "Hædd",\r
+DlgLnkPopLeft          : "Frástøða frá vinstru",\r
+DlgLnkPopTop           : "Frástøða frá íerva",\r
+\r
+DlnLnkMsgNoUrl         : "Vinarliga skriva tilknýti (URL)",\r
+DlnLnkMsgNoEMail       : "Vinarliga skriva teldupost-adressu",\r
+DlnLnkMsgNoAnchor      : "Vinarliga vel marknastein",\r
+DlnLnkMsgInvPopName    : "Popup navnið má byrja við bókstavi og má ikki hava millumrúm",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Vel lit",\r
+DlgColorBtnClear       : "Strika alt",\r
+DlgColorHighlight      : "Framhevja",\r
+DlgColorSelected       : "Valt",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Vel Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Vel sertekn",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Eginleikar fyri tabell",\r
+DlgTableRows           : "Røðir",\r
+DlgTableColumns                : "Kolonnur",\r
+DlgTableBorder         : "Bordabreidd",\r
+DlgTableAlign          : "Justering",\r
+DlgTableAlignNotSet    : "<Einki valt>",\r
+DlgTableAlignLeft      : "Vinstrasett",\r
+DlgTableAlignCenter    : "Miðsett",\r
+DlgTableAlignRight     : "Høgrasett",\r
+DlgTableWidth          : "Breidd",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "prosent",\r
+DlgTableHeight         : "Hædd",\r
+DlgTableCellSpace      : "Fjarstøða millum meskar",\r
+DlgTableCellPad                : "Meskubreddi",\r
+DlgTableCaption                : "Tabellfrágreiðing",\r
+DlgTableSummary                : "Samandráttur",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Mesku eginleikar",\r
+DlgCellWidth           : "Breidd",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "prosent",\r
+DlgCellHeight          : "Hædd",\r
+DlgCellWordWrap                : "Orðkloyving",\r
+DlgCellWordWrapNotSet  : "<Einki valt>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nei",\r
+DlgCellHorAlign                : "Vatnrøtt justering",\r
+DlgCellHorAlignNotSet  : "<Einki valt>",\r
+DlgCellHorAlignLeft    : "Vinstrasett",\r
+DlgCellHorAlignCenter  : "Miðsett",\r
+DlgCellHorAlignRight: "Høgrasett",\r
+DlgCellVerAlign                : "Lodrøtt justering",\r
+DlgCellVerAlignNotSet  : "<Ikki sett>",\r
+DlgCellVerAlignTop     : "Ovast",\r
+DlgCellVerAlignMiddle  : "Miðjan",\r
+DlgCellVerAlignBottom  : "Niðast",\r
+DlgCellVerAlignBaseline        : "Basislinja",\r
+DlgCellRowSpan         : "Røðir, meskin fevnir um",\r
+DlgCellCollSpan                : "Kolonnur, meskin fevnir um",\r
+DlgCellBackColor       : "Bakgrundslitur",\r
+DlgCellBorderColor     : "Litur á borda",\r
+DlgCellBtnSelect       : "Vel...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Finn",\r
+DlgFindFindBtn         : "Finn",\r
+DlgFindNotFoundMsg     : "Leititeksturin varð ikki funnin",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Yvirskriva",\r
+DlgReplaceFindLbl              : "Finn:",\r
+DlgReplaceReplaceLbl   : "Yvirskriva við:",\r
+DlgReplaceCaseChk              : "Munur á stórum og smáðum bókstavum",\r
+DlgReplaceReplaceBtn   : "Yvirskriva",\r
+DlgReplaceReplAllBtn   : "Yvirskriva alt",\r
+DlgReplaceWordChk              : "Bert heil orð",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).",\r
+PasteErrorCopy : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (CTRL+C).",\r
+\r
+PasteAsText            : "Innrita som reinan tekst",\r
+PasteFromWord  : "Innrita fra Word",\r
+\r
+DlgPasteMsg2   : "Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>CTRL+V</strong>) og klikk á <strong>Góðtak</strong>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Forfjóna Font definitiónirnar",\r
+DlgPasteRemoveStyles   : "Strika Styles definitiónir",\r
+DlgPasteCleanBox               : "Reinskanarkassi",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Av sær sjálvum",\r
+ColorMoreColors        : "Fleiri litir...",\r
+\r
+// Document Properties\r
+DocProps               : "Eginleikar fyri dokument",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Eginleikar fyri marknastein",\r
+DlgAnchorName          : "Heiti marknasteinsins",\r
+DlgAnchorErrorName     : "Vinarliga rita marknasteinsins heiti",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Finst ikki í orðabókini",\r
+DlgSpellChangeTo               : "Broyt til",\r
+DlgSpellBtnIgnore              : "Forfjóna",\r
+DlgSpellBtnIgnoreAll   : "Forfjóna alt",\r
+DlgSpellBtnReplace             : "Yvirskriva",\r
+DlgSpellBtnReplaceAll  : "Yvirskriva alt",\r
+DlgSpellBtnUndo                        : "Angra",\r
+DlgSpellNoSuggestions  : "- Einki uppskot -",\r
+DlgSpellProgress               : "Rættstavarin arbeiðir...",\r
+DlgSpellNoMispell              : "Rættstavarain liðugur: Eingin feilur funnin",\r
+DlgSpellNoChanges              : "Rættstavarain liðugur: Einki orð varð broytt",\r
+DlgSpellOneChange              : "Rættstavarain liðugur: Eitt orð er broytt",\r
+DlgSpellManyChanges            : "Rættstavarain liðugur: %1 orð broytt",\r
+\r
+IeSpellDownload                        : "Rættstavarin er ikki tøkur í tekstviðgeranum. Vilt tú heinta hann nú?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekstur",\r
+DlgButtonType          : "Slag",\r
+DlgButtonTypeBtn       : "Knøttur",\r
+DlgButtonTypeSbm       : "Send",\r
+DlgButtonTypeRst       : "Nullstilla",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Navn",\r
+DlgCheckboxValue       : "Virði",\r
+DlgCheckboxSelected    : "Valt",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Navn",\r
+DlgFormAction  : "Hending",\r
+DlgFormMethod  : "Háttur",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Navn",\r
+DlgSelectValue         : "Virði",\r
+DlgSelectSize          : "Stødd",\r
+DlgSelectLines         : "Linjur",\r
+DlgSelectChkMulti      : "Loyv fleiri valmøguleikum samstundis",\r
+DlgSelectOpAvail       : "Tøkir møguleikar",\r
+DlgSelectOpText                : "Tekstur",\r
+DlgSelectOpValue       : "Virði",\r
+DlgSelectBtnAdd                : "Legg afturat",\r
+DlgSelectBtnModify     : "Broyt",\r
+DlgSelectBtnUp         : "Upp",\r
+DlgSelectBtnDown       : "Niður",\r
+DlgSelectBtnSetValue : "Set sum valt virði",\r
+DlgSelectBtnDelete     : "Strika",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Navn",\r
+DlgTextareaCols        : "kolonnur",\r
+DlgTextareaRows        : "røðir",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Navn",\r
+DlgTextValue           : "Virði",\r
+DlgTextCharWidth       : "Breidd (sjónlig tekn)",\r
+DlgTextMaxChars                : "Mest loyvdu tekn",\r
+DlgTextType                    : "Slag",\r
+DlgTextTypeText                : "Tekstur",\r
+DlgTextTypePass                : "Loyniorð",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Navn",\r
+DlgHiddenValue : "Virði",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Eginleikar fyri punktmerktan lista",\r
+NumberedListProp       : "Eginleikar fyri talmerktan lista",\r
+DlgLstStart                    : "Byrjan",\r
+DlgLstType                     : "Slag",\r
+DlgLstTypeCircle       : "Sirkul",\r
+DlgLstTypeDisc         : "Fyltur sirkul",\r
+DlgLstTypeSquare       : "Fjórhyrningur",\r
+DlgLstTypeNumbers      : "Talmerkt (1, 2, 3)",\r
+DlgLstTypeLCase                : "Smáir bókstavir (a, b, c)",\r
+DlgLstTypeUCase                : "Stórir bókstavir (A, B, C)",\r
+DlgLstTypeSRoman       : "Smá rómaratøl (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Stór rómaratøl (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Generelt",\r
+DlgDocBackTab          : "Bakgrund",\r
+DlgDocColorsTab                : "Litir og breddar",\r
+DlgDocMetaTab          : "META-upplýsingar",\r
+\r
+DlgDocPageTitle                : "Síðuheiti",\r
+DlgDocLangDir          : "Tekstkós",\r
+DlgDocLangDirLTR       : "Frá vinstru móti høgru (LTR)",\r
+DlgDocLangDirRTL       : "Frá høgru móti vinstru (RTL)",\r
+DlgDocLangCode         : "Málkoda",\r
+DlgDocCharSet          : "Teknsett koda",\r
+DlgDocCharSetCE                : "Miðeuropa",\r
+DlgDocCharSetCT                : "Kinesiskt traditionelt (Big5)",\r
+DlgDocCharSetCR                : "Cyrilliskt",\r
+DlgDocCharSetGR                : "Grikst",\r
+DlgDocCharSetJP                : "Japanskt",\r
+DlgDocCharSetKR                : "Koreanskt",\r
+DlgDocCharSetTR                : "Turkiskt",\r
+DlgDocCharSetUN                : "UNICODE (UTF-8)",\r
+DlgDocCharSetWE                : "Vestureuropa",\r
+DlgDocCharSetOther     : "Onnur teknsett koda",\r
+\r
+DlgDocDocType          : "Dokumentslag yvirskrift",\r
+DlgDocDocTypeOther     : "Annað dokumentslag yvirskrift",\r
+DlgDocIncXHTML         : "Viðfest XHTML deklaratiónir",\r
+DlgDocBgColor          : "Bakgrundslitur",\r
+DlgDocBgImage          : "Leið til bakgrundsmynd (URL)",\r
+DlgDocBgNoScroll       : "Læst bakgrund (rullar ikki)",\r
+DlgDocCText                    : "Tekstur",\r
+DlgDocCLink                    : "Tilknýti",\r
+DlgDocCVisited         : "Vitjaði tilknýti",\r
+DlgDocCActive          : "Virkin tilknýti",\r
+DlgDocMargins          : "Síðubreddar",\r
+DlgDocMaTop                    : "Ovast",\r
+DlgDocMaLeft           : "Vinstra",\r
+DlgDocMaRight          : "Høgra",\r
+DlgDocMaBottom         : "Niðast",\r
+DlgDocMeIndex          : "Dokument index lyklaorð (sundurbýtt við komma)",\r
+DlgDocMeDescr          : "Dokumentlýsing",\r
+DlgDocMeAuthor         : "Høvundur",\r
+DlgDocMeCopy           : "Upphavsrættindi",\r
+DlgDocPreview          : "Frumsýning",\r
+\r
+// Templates Dialog\r
+Templates                      : "Skabelónir",\r
+DlgTemplatesTitle      : "Innihaldsskabelónir",\r
+DlgTemplatesSelMsg     : "Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):",\r
+DlgTemplatesLoading    : "Heinti yvirlit yvir skabelónir. Vinarliga bíða við...",\r
+DlgTemplatesNoTpl      : "(Ongar skabelónir tøkar)",\r
+DlgTemplatesReplace    : "Yvirskriva núverandi innihald",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Um",\r
+DlgAboutBrowserInfoTab : "Upplýsingar um alnótskagan",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "Fyri fleiri upplýsingar, far til"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/fr.js b/httemplate/elements/fckeditor/editor/lang/fr.js
new file mode 100644 (file)
index 0000000..6d46fa0
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * French language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Masquer Outils",\r
+ToolbarExpand          : "Afficher Outils",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Enregistrer",\r
+NewPage                                : "Nouvelle page",\r
+Preview                                : "Prévisualisation",\r
+Cut                                    : "Couper",\r
+Copy                           : "Copier",\r
+Paste                          : "Coller",\r
+PasteText                      : "Coller comme texte",\r
+PasteWord                      : "Coller de Word",\r
+Print                          : "Imprimer",\r
+SelectAll                      : "Tout sélectionner",\r
+RemoveFormat           : "Supprimer le format",\r
+InsertLinkLbl          : "Lien",\r
+InsertLink                     : "Insérer/modifier le lien",\r
+RemoveLink                     : "Supprimer le lien",\r
+Anchor                         : "Insérer/modifier l'ancre",\r
+InsertImageLbl         : "Image",\r
+InsertImage                    : "Insérer/modifier l'image",\r
+InsertFlashLbl         : "Animation Flash",\r
+InsertFlash                    : "Insérer/modifier l'animation Flash",\r
+InsertTableLbl         : "Tableau",\r
+InsertTable                    : "Insérer/modifier le tableau",\r
+InsertLineLbl          : "Séparateur",\r
+InsertLine                     : "Insérer un séparateur",\r
+InsertSpecialCharLbl: "Caractères spéciaux",\r
+InsertSpecialChar      : "Insérer un caractère spécial",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Insérer un Smiley",\r
+About                          : "A propos de FCKeditor",\r
+Bold                           : "Gras",\r
+Italic                         : "Italique",\r
+Underline                      : "Souligné",\r
+StrikeThrough          : "Barré",\r
+Subscript                      : "Indice",\r
+Superscript                    : "Exposant",\r
+LeftJustify                    : "Aligné à gauche",\r
+CenterJustify          : "Centré",\r
+RightJustify           : "Aligné à Droite",\r
+BlockJustify           : "Texte justifié",\r
+DecreaseIndent         : "Diminuer le retrait",\r
+IncreaseIndent         : "Augmenter le retrait",\r
+Undo                           : "Annuler",\r
+Redo                           : "Refaire",\r
+NumberedListLbl                : "Liste numérotée",\r
+NumberedList           : "Insérer/supprimer la liste numérotée",\r
+BulletedListLbl                : "Liste à puces",\r
+BulletedList           : "Insérer/supprimer la liste à puces",\r
+ShowTableBorders       : "Afficher les bordures du tableau",\r
+ShowDetails                    : "Afficher les caractères invisibles",\r
+Style                          : "Style",\r
+FontFormat                     : "Format",\r
+Font                           : "Police",\r
+FontSize                       : "Taille",\r
+TextColor                      : "Couleur de caractère",\r
+BGColor                                : "Couleur de fond",\r
+Source                         : "Source",\r
+Find                           : "Chercher",\r
+Replace                                : "Remplacer",\r
+SpellCheck                     : "Orthographe",\r
+UniversalKeyboard      : "Clavier universel",\r
+PageBreakLbl           : "Saut de page",\r
+PageBreak                      : "Insérer un saut de page",\r
+\r
+Form                   : "Formulaire",\r
+Checkbox               : "Case à cocher",\r
+RadioButton            : "Bouton radio",\r
+TextField              : "Champ texte",\r
+Textarea               : "Zone de texte",\r
+HiddenField            : "Champ caché",\r
+Button                 : "Bouton",\r
+SelectionField : "Liste/menu",\r
+ImageButton            : "Bouton image",\r
+\r
+FitWindow              : "Edition pleine page",\r
+\r
+// Context Menu\r
+EditLink                       : "Modifier le lien",\r
+CellCM                         : "Cellule",\r
+RowCM                          : "Ligne",\r
+ColumnCM                       : "Colonne",\r
+InsertRow                      : "Insérer une ligne",\r
+DeleteRows                     : "Supprimer des lignes",\r
+InsertColumn           : "Insérer une colonne",\r
+DeleteColumns          : "Supprimer des colonnes",\r
+InsertCell                     : "Insérer une cellule",\r
+DeleteCells                    : "Supprimer des cellules",\r
+MergeCells                     : "Fusionner les cellules",\r
+SplitCell                      : "Scinder les cellules",\r
+TableDelete                    : "Supprimer le tableau",\r
+CellProperties         : "Propriétés de cellule",\r
+TableProperties                : "Propriétés du tableau",\r
+ImageProperties                : "Propriétés de l'image",\r
+FlashProperties                : "Propriétés de l'animation Flash",\r
+\r
+AnchorProp                     : "Propriétés de l'ancre",\r
+ButtonProp                     : "Propriétés du bouton",\r
+CheckboxProp           : "Propriétés de la case à cocher",\r
+HiddenFieldProp                : "Propriétés du champ caché",\r
+RadioButtonProp                : "Propriétés du bouton radio",\r
+ImageButtonProp                : "Propriétés du bouton image",\r
+TextFieldProp          : "Propriétés du champ texte",\r
+SelectionFieldProp     : "Propriétés de la liste/du menu",\r
+TextareaProp           : "Propriétés de la zone de texte",\r
+FormProp                       : "Propriétés du formulaire",\r
+\r
+FontFormats                    : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Calcul XHTML. Veuillez patienter...",\r
+Done                           : "Terminé",\r
+PasteWordConfirm       : "Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?",\r
+NotCompatiblePaste     : "Cette commande nécessite Internet Explorer version 5.5 minimum. Souhaitez-vous coller sans nettoyage?",\r
+UnknownToolbarItem     : "Elément de barre d'outil inconnu \"%1\"",\r
+UnknownCommand         : "Nom de commande inconnu \"%1\"",\r
+NotImplemented         : "Commande non encore écrite",\r
+UnknownToolbarSet      : "La barre d'outils \"%1\" n'existe pas",\r
+NoActiveX                      : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",\r
+BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",\r
+DialogBlocked          : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Annuler",\r
+DlgBtnClose                    : "Fermer",\r
+DlgBtnBrowseServer     : "Parcourir le serveur",\r
+DlgAdvancedTag         : "Avancé",\r
+DlgOpOther                     : "<Autre>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Veuillez saisir l'URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<Par défaut>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Sens d'écriture",\r
+DlgGenLangDirLtr       : "De gauche à droite (LTR)",\r
+DlgGenLangDirRtl       : "De droite à gauche (RTL)",\r
+DlgGenLangCode         : "Code langue",\r
+DlgGenAccessKey                : "Equivalent clavier",\r
+DlgGenName                     : "Nom",\r
+DlgGenTabIndex         : "Ordre de tabulation",\r
+DlgGenLongDescr                : "URL de description longue",\r
+DlgGenClass                    : "Classes de feuilles de style",\r
+DlgGenTitle                    : "Titre",\r
+DlgGenContType         : "Type de contenu",\r
+DlgGenLinkCharset      : "Encodage de caractère",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Propriétés de l'image",\r
+DlgImgInfoTab          : "Informations sur l'image",\r
+DlgImgBtnUpload                : "Envoyer sur le serveur",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Télécharger",\r
+DlgImgAlt                      : "Texte de remplacement",\r
+DlgImgWidth                    : "Largeur",\r
+DlgImgHeight           : "Hauteur",\r
+DlgImgLockRatio                : "Garder les proportions",\r
+DlgBtnResetSize                : "Taille originale",\r
+DlgImgBorder           : "Bordure",\r
+DlgImgHSpace           : "Espacement horizontal",\r
+DlgImgVSpace           : "Espacement vertical",\r
+DlgImgAlign                    : "Alignement",\r
+DlgImgAlignLeft                : "Gauche",\r
+DlgImgAlignAbsBottom: "Abs Bas",\r
+DlgImgAlignAbsMiddle: "Abs Milieu",\r
+DlgImgAlignBaseline    : "Bas du texte",\r
+DlgImgAlignBottom      : "Bas",\r
+DlgImgAlignMiddle      : "Milieu",\r
+DlgImgAlignRight       : "Droite",\r
+DlgImgAlignTextTop     : "Haut du texte",\r
+DlgImgAlignTop         : "Haut",\r
+DlgImgPreview          : "Prévisualisation",\r
+DlgImgAlertUrl         : "Veuillez saisir l'URL de l'image",\r
+DlgImgLinkTab          : "Lien",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propriétés de l'animation Flash",\r
+DlgFlashChkPlay                : "Lecture automatique",\r
+DlgFlashChkLoop                : "Boucle",\r
+DlgFlashChkMenu                : "Activer le menu Flash",\r
+DlgFlashScale          : "Affichage",\r
+DlgFlashScaleAll       : "Par défaut (tout montrer)",\r
+DlgFlashScaleNoBorder  : "Sans bordure",\r
+DlgFlashScaleFit       : "Ajuster aux dimensions",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Propriétés du lien",\r
+DlgLnkInfoTab          : "Informations sur le lien",\r
+DlgLnkTargetTab                : "Destination",\r
+\r
+DlgLnkType                     : "Type de lien",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ancre dans cette page",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocole",\r
+DlgLnkProtoOther       : "<autre>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Sélectionner une ancre",\r
+DlgLnkAnchorByName     : "Par nom",\r
+DlgLnkAnchorById       : "Par id",\r
+DlgLnkNoAnchors                : "<Pas d'ancre disponible dans le document>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Adresse E-Mail",\r
+DlgLnkEMailSubject     : "Sujet du message",\r
+DlgLnkEMailBody                : "Corps du message",\r
+DlgLnkUpload           : "Télécharger",\r
+DlgLnkBtnUpload                : "Envoyer sur le serveur",\r
+\r
+DlgLnkTarget           : "Destination",\r
+DlgLnkTargetFrame      : "<cadre>",\r
+DlgLnkTargetPopup      : "<fenêtre popup>",\r
+DlgLnkTargetBlank      : "Nouvelle fenêtre (_blank)",\r
+DlgLnkTargetParent     : "Fenêtre mère (_parent)",\r
+DlgLnkTargetSelf       : "Même fenêtre (_self)",\r
+DlgLnkTargetTop                : "Fenêtre supérieure (_top)",\r
+DlgLnkTargetFrameName  : "Nom du cadre de destination",\r
+DlgLnkPopWinName       : "Nom de la fenêtre popup",\r
+DlgLnkPopWinFeat       : "Caractéristiques de la fenêtre popup",\r
+DlgLnkPopResize                : "Taille modifiable",\r
+DlgLnkPopLocation      : "Barre d'adresses",\r
+DlgLnkPopMenu          : "Barre de menu",\r
+DlgLnkPopScroll                : "Barres de défilement",\r
+DlgLnkPopStatus                : "Barre d'état",\r
+DlgLnkPopToolbar       : "Barre d'outils",\r
+DlgLnkPopFullScrn      : "Plein écran (IE)",\r
+DlgLnkPopDependent     : "Dépendante (Netscape)",\r
+DlgLnkPopWidth         : "Largeur",\r
+DlgLnkPopHeight                : "Hauteur",\r
+DlgLnkPopLeft          : "Position à partir de la gauche",\r
+DlgLnkPopTop           : "Position à partir du haut",\r
+\r
+DlnLnkMsgNoUrl         : "Veuillez saisir l'URL",\r
+DlnLnkMsgNoEMail       : "Veuillez saisir l'adresse e-mail",\r
+DlnLnkMsgNoAnchor      : "Veuillez sélectionner une ancre",\r
+DlnLnkMsgInvPopName    : "Le nom de la fenêtre popup doit commencer par une lettre et ne doit pas contenir d'espace",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Sélectionner",\r
+DlgColorBtnClear       : "Effacer",\r
+DlgColorHighlight      : "Prévisualisation",\r
+DlgColorSelected       : "Sélectionné",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Insérer un Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Insérer un caractère spécial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Propriétés du tableau",\r
+DlgTableRows           : "Lignes",\r
+DlgTableColumns                : "Colonnes",\r
+DlgTableBorder         : "Bordure",\r
+DlgTableAlign          : "Alignement",\r
+DlgTableAlignNotSet    : "<Par défaut>",\r
+DlgTableAlignLeft      : "Gauche",\r
+DlgTableAlignCenter    : "Centré",\r
+DlgTableAlignRight     : "Droite",\r
+DlgTableWidth          : "Largeur",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "pourcentage",\r
+DlgTableHeight         : "Hauteur",\r
+DlgTableCellSpace      : "Espacement",\r
+DlgTableCellPad                : "Contour",\r
+DlgTableCaption                : "Titre",\r
+DlgTableSummary                : "Résumé",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Propriétés de la cellule",\r
+DlgCellWidth           : "Largeur",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "pourcentage",\r
+DlgCellHeight          : "Hauteur",\r
+DlgCellWordWrap                : "Retour à la ligne",\r
+DlgCellWordWrapNotSet  : "<Par défaut>",\r
+DlgCellWordWrapYes     : "Oui",\r
+DlgCellWordWrapNo      : "Non",\r
+DlgCellHorAlign                : "Alignement horizontal",\r
+DlgCellHorAlignNotSet  : "<Par défaut>",\r
+DlgCellHorAlignLeft    : "Gauche",\r
+DlgCellHorAlignCenter  : "Centré",\r
+DlgCellHorAlignRight: "Droite",\r
+DlgCellVerAlign                : "Alignement vertical",\r
+DlgCellVerAlignNotSet  : "<Par défaut>",\r
+DlgCellVerAlignTop     : "Haut",\r
+DlgCellVerAlignMiddle  : "Milieu",\r
+DlgCellVerAlignBottom  : "Bas",\r
+DlgCellVerAlignBaseline        : "Bas du texte",\r
+DlgCellRowSpan         : "Lignes fusionnées",\r
+DlgCellCollSpan                : "Colonnes fusionnées",\r
+DlgCellBackColor       : "Fond",\r
+DlgCellBorderColor     : "Bordure",\r
+DlgCellBtnSelect       : "Choisir...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Chercher",\r
+DlgFindFindBtn         : "Chercher",\r
+DlgFindNotFoundMsg     : "Le texte indiqué est introuvable.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Remplacer",\r
+DlgReplaceFindLbl              : "Rechercher:",\r
+DlgReplaceReplaceLbl   : "Remplacer par:",\r
+DlgReplaceCaseChk              : "Respecter la casse",\r
+DlgReplaceReplaceBtn   : "Remplacer",\r
+DlgReplaceReplAllBtn   : "Tout remplacer",\r
+DlgReplaceWordChk              : "Mot entier",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).",\r
+PasteErrorCopy : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).",\r
+\r
+PasteAsText            : "Coller comme texte",\r
+PasteFromWord  : "Coller à partir de Word",\r
+\r
+DlgPasteMsg2   : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorer les polices de caractères",\r
+DlgPasteRemoveStyles   : "Supprimer les styles",\r
+DlgPasteCleanBox               : "Effacer le contenu",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatique",\r
+ColorMoreColors        : "Plus de couleurs...",\r
+\r
+// Document Properties\r
+DocProps               : "Propriétés du document",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Propriétés de l'ancre",\r
+DlgAnchorName          : "Nom de l'ancre",\r
+DlgAnchorErrorName     : "Veuillez saisir le nom de l'ancre",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Pas dans le dictionnaire",\r
+DlgSpellChangeTo               : "Changer en",\r
+DlgSpellBtnIgnore              : "Ignorer",\r
+DlgSpellBtnIgnoreAll   : "Ignorer tout",\r
+DlgSpellBtnReplace             : "Remplacer",\r
+DlgSpellBtnReplaceAll  : "Remplacer tout",\r
+DlgSpellBtnUndo                        : "Annuler",\r
+DlgSpellNoSuggestions  : "- Aucune suggestion -",\r
+DlgSpellProgress               : "Vérification d'orthographe en cours...",\r
+DlgSpellNoMispell              : "Vérification d'orthographe terminée: Aucune erreur trouvée",\r
+DlgSpellNoChanges              : "Vérification d'orthographe terminée: Pas de modifications",\r
+DlgSpellOneChange              : "Vérification d'orthographe terminée: Un mot modifié",\r
+DlgSpellManyChanges            : "Vérification d'orthographe terminée: %1 mots modifiés",\r
+\r
+IeSpellDownload                        : "Le Correcteur n'est pas installé. Souhaitez-vous le télécharger maintenant?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Texte (valeur)",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Bouton",\r
+DlgButtonTypeSbm       : "Envoyer",\r
+DlgButtonTypeRst       : "Réinitialiser",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nom",\r
+DlgCheckboxValue       : "Valeur",\r
+DlgCheckboxSelected    : "Sélectionné",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nom",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Méthode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nom",\r
+DlgSelectValue         : "Valeur",\r
+DlgSelectSize          : "Taille",\r
+DlgSelectLines         : "lignes",\r
+DlgSelectChkMulti      : "Sélection multiple",\r
+DlgSelectOpAvail       : "Options disponibles",\r
+DlgSelectOpText                : "Texte",\r
+DlgSelectOpValue       : "Valeur",\r
+DlgSelectBtnAdd                : "Ajouter",\r
+DlgSelectBtnModify     : "Modifier",\r
+DlgSelectBtnUp         : "Monter",\r
+DlgSelectBtnDown       : "Descendre",\r
+DlgSelectBtnSetValue : "Valeur sélectionnée",\r
+DlgSelectBtnDelete     : "Supprimer",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nom",\r
+DlgTextareaCols        : "Colonnes",\r
+DlgTextareaRows        : "Lignes",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nom",\r
+DlgTextValue           : "Valeur",\r
+DlgTextCharWidth       : "Largeur en caractères",\r
+DlgTextMaxChars                : "Nombre maximum de caractères",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Texte",\r
+DlgTextTypePass                : "Mot de passe",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nom",\r
+DlgHiddenValue : "Valeur",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Propriétés de liste à puces",\r
+NumberedListProp       : "Propriétés de liste numérotée",\r
+DlgLstStart                    : "Début",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Cercle",\r
+DlgLstTypeDisc         : "Disque",\r
+DlgLstTypeSquare       : "Carré",\r
+DlgLstTypeNumbers      : "Nombres (1, 2, 3)",\r
+DlgLstTypeLCase                : "Lettres minuscules (a, b, c)",\r
+DlgLstTypeUCase                : "Lettres majuscules (A, B, C)",\r
+DlgLstTypeSRoman       : "Chiffres romains minuscules (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Chiffres romains majuscules (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Général",\r
+DlgDocBackTab          : "Fond",\r
+DlgDocColorsTab                : "Couleurs et marges",\r
+DlgDocMetaTab          : "Métadonnées",\r
+\r
+DlgDocPageTitle                : "Titre de la page",\r
+DlgDocLangDir          : "Sens d'écriture",\r
+DlgDocLangDirLTR       : "De la gauche vers la droite (LTR)",\r
+DlgDocLangDirRTL       : "De la droite vers la gauche (RTL)",\r
+DlgDocLangCode         : "Code langue",\r
+DlgDocCharSet          : "Encodage de caractère",\r
+DlgDocCharSetCE                : "Europe Centrale",\r
+DlgDocCharSetCT                : "Chinois Traditionnel (Big5)",\r
+DlgDocCharSetCR                : "Cyrillique",\r
+DlgDocCharSetGR                : "Grec",\r
+DlgDocCharSetJP                : "Japanais",\r
+DlgDocCharSetKR                : "Coréen",\r
+DlgDocCharSetTR                : "Turc",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Occidental",\r
+DlgDocCharSetOther     : "Autre encodage de caractère",\r
+\r
+DlgDocDocType          : "Type de document",\r
+DlgDocDocTypeOther     : "Autre type de document",\r
+DlgDocIncXHTML         : "Inclure les déclarations XHTML",\r
+DlgDocBgColor          : "Couleur de fond",\r
+DlgDocBgImage          : "Image de fond",\r
+DlgDocBgNoScroll       : "Image fixe sans défilement",\r
+DlgDocCText                    : "Texte",\r
+DlgDocCLink                    : "Lien",\r
+DlgDocCVisited         : "Lien visité",\r
+DlgDocCActive          : "Lien activé",\r
+DlgDocMargins          : "Marges",\r
+DlgDocMaTop                    : "Haut",\r
+DlgDocMaLeft           : "Gauche",\r
+DlgDocMaRight          : "Droite",\r
+DlgDocMaBottom         : "Bas",\r
+DlgDocMeIndex          : "Mots-clés (séparés par des virgules)",\r
+DlgDocMeDescr          : "Description",\r
+DlgDocMeAuthor         : "Auteur",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Prévisualisation",\r
+\r
+// Templates Dialog\r
+Templates                      : "Modèles",\r
+DlgTemplatesTitle      : "Modèles de contenu",\r
+DlgTemplatesSelMsg     : "Veuillez sélectionner le modèle à ouvrir dans l'éditeur<br>(le contenu actuel sera remplacé):",\r
+DlgTemplatesLoading    : "Chargement de la liste des modèles. Veuillez patienter...",\r
+DlgTemplatesNoTpl      : "(Aucun modèle disponible)",\r
+DlgTemplatesReplace    : "Remplacer tout le contenu",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "A propos de",\r
+DlgAboutBrowserInfoTab : "Navigateur",\r
+DlgAboutLicenseTab     : "License",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "Pour plus d'informations, aller à"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/gl.js b/httemplate/elements/fckeditor/editor/lang/gl.js
new file mode 100644 (file)
index 0000000..238d108
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Galician language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Ocultar Ferramentas",\r
+ToolbarExpand          : "Mostrar Ferramentas",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Gardar",\r
+NewPage                                : "Nova Páxina",\r
+Preview                                : "Vista Previa",\r
+Cut                                    : "Cortar",\r
+Copy                           : "Copiar",\r
+Paste                          : "Pegar",\r
+PasteText                      : "Pegar como texto plano",\r
+PasteWord                      : "Pegar dende Word",\r
+Print                          : "Imprimir",\r
+SelectAll                      : "Seleccionar todo",\r
+RemoveFormat           : "Eliminar Formato",\r
+InsertLinkLbl          : "Ligazón",\r
+InsertLink                     : "Inserir/Editar Ligazón",\r
+RemoveLink                     : "Eliminar Ligazón",\r
+Anchor                         : "Inserir/Editar Referencia",\r
+InsertImageLbl         : "Imaxe",\r
+InsertImage                    : "Inserir/Editar Imaxe",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Inserir/Editar Flash",\r
+InsertTableLbl         : "Tabla",\r
+InsertTable                    : "Inserir/Editar Tabla",\r
+InsertLineLbl          : "Liña",\r
+InsertLine                     : "Inserir Liña Horizontal",\r
+InsertSpecialCharLbl: "Carácter Special",\r
+InsertSpecialChar      : "Inserir Carácter Especial",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Inserir Smiley",\r
+About                          : "Acerca de FCKeditor",\r
+Bold                           : "Negrita",\r
+Italic                         : "Cursiva",\r
+Underline                      : "Sub-raiado",\r
+StrikeThrough          : "Tachado",\r
+Subscript                      : "Subíndice",\r
+Superscript                    : "Superíndice",\r
+LeftJustify                    : "Aliñar á Esquerda",\r
+CenterJustify          : "Centrado",\r
+RightJustify           : "Aliñar á Dereita",\r
+BlockJustify           : "Xustificado",\r
+DecreaseIndent         : "Disminuir Sangría",\r
+IncreaseIndent         : "Aumentar Sangría",\r
+Undo                           : "Desfacer",\r
+Redo                           : "Refacer",\r
+NumberedListLbl                : "Lista Numerada",\r
+NumberedList           : "Inserir/Eliminar Lista Numerada",\r
+BulletedListLbl                : "Marcas",\r
+BulletedList           : "Inserir/Eliminar Marcas",\r
+ShowTableBorders       : "Mostrar Bordes das Táboas",\r
+ShowDetails                    : "Mostrar Marcas Parágrafo",\r
+Style                          : "Estilo",\r
+FontFormat                     : "Formato",\r
+Font                           : "Tipo",\r
+FontSize                       : "Tamaño",\r
+TextColor                      : "Cor do Texto",\r
+BGColor                                : "Cor do Fondo",\r
+Source                         : "Código Fonte",\r
+Find                           : "Procurar",\r
+Replace                                : "Substituir",\r
+SpellCheck                     : "Corrección Ortográfica",\r
+UniversalKeyboard      : "Teclado Universal",\r
+PageBreakLbl           : "Salto de Páxina",\r
+PageBreak                      : "Inserir Salto de Páxina",\r
+\r
+Form                   : "Formulario",\r
+Checkbox               : "Cadro de Verificación",\r
+RadioButton            : "Botón de Radio",\r
+TextField              : "Campo de Texto",\r
+Textarea               : "Área de Texto",\r
+HiddenField            : "Campo Oculto",\r
+Button                 : "Botón",\r
+SelectionField : "Campo de Selección",\r
+ImageButton            : "Botón de Imaxe",\r
+\r
+FitWindow              : "Maximizar o tamaño do editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Editar Ligazón",\r
+CellCM                         : "Cela",\r
+RowCM                          : "Fila",\r
+ColumnCM                       : "Columna",\r
+InsertRow                      : "Inserir Fila",\r
+DeleteRows                     : "Borrar Filas",\r
+InsertColumn           : "Inserir Columna",\r
+DeleteColumns          : "Borrar Columnas",\r
+InsertCell                     : "Inserir Cela",\r
+DeleteCells                    : "Borrar Cela",\r
+MergeCells                     : "Unir Celas",\r
+SplitCell                      : "Partir Celas",\r
+TableDelete                    : "Borrar Táboa",\r
+CellProperties         : "Propriedades da Cela",\r
+TableProperties                : "Propriedades da Táboa",\r
+ImageProperties                : "Propriedades Imaxe",\r
+FlashProperties                : "Propriedades Flash",\r
+\r
+AnchorProp                     : "Propriedades da Referencia",\r
+ButtonProp                     : "Propriedades do Botón",\r
+CheckboxProp           : "Propriedades do Cadro de Verificación",\r
+HiddenFieldProp                : "Propriedades do Campo Oculto",\r
+RadioButtonProp                : "Propriedades do Botón de Radio",\r
+ImageButtonProp                : "Propriedades do Botón de Imaxe",\r
+TextFieldProp          : "Propriedades do Campo de Texto",\r
+SelectionFieldProp     : "Propriedades do Campo de Selección",\r
+TextareaProp           : "Propriedades da Área de Texto",\r
+FormProp                       : "Propriedades do Formulario",\r
+\r
+FontFormats                    : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Procesando XHTML. Por facor, agarde...",\r
+Done                           : "Feiro",\r
+PasteWordConfirm       : "Parece que o texto que quere pegar está copiado do Word.¿Quere limpar o formato antes de pegalo?",\r
+NotCompatiblePaste     : "Este comando está disponible para Internet Explorer versión 5.5 ou superior. ¿Quere pegalo sen limpar o formato?",\r
+UnknownToolbarItem     : "Ítem de ferramentas descoñecido \"%1\"",\r
+UnknownCommand         : "Nome de comando descoñecido \"%1\"",\r
+NotImplemented         : "Comando non implementado",\r
+UnknownToolbarSet      : "O conxunto de ferramentas \"%1\" non existe",\r
+NoActiveX                      : "As opcións de seguridade do seu navegador poderían limitar algunha das características de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan características e experimentar erros",\r
+BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",\r
+DialogBlocked          : "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancelar",\r
+DlgBtnClose                    : "Pechar",\r
+DlgBtnBrowseServer     : "Navegar no Servidor",\r
+DlgAdvancedTag         : "Advanzado",\r
+DlgOpOther                     : "<Outro>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Por favor, insira a URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<non definido>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Orientación do Idioma",\r
+DlgGenLangDirLtr       : "Esquerda a Dereita (LTR)",\r
+DlgGenLangDirRtl       : "Dereita a Esquerda (RTL)",\r
+DlgGenLangCode         : "Código do Idioma",\r
+DlgGenAccessKey                : "Chave de Acceso",\r
+DlgGenName                     : "Nome",\r
+DlgGenTabIndex         : "Índice de Tabulación",\r
+DlgGenLongDescr                : "Descrición Completa da URL",\r
+DlgGenClass                    : "Clases da Folla de Estilos",\r
+DlgGenTitle                    : "Título",\r
+DlgGenContType         : "Tipo de Contido",\r
+DlgGenLinkCharset      : "Fonte de Caracteres Vinculado",\r
+DlgGenStyle                    : "Estilo",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Propriedades da Imaxe",\r
+DlgImgInfoTab          : "Información da Imaxe",\r
+DlgImgBtnUpload                : "Enviar ó Servidor",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Carregar",\r
+DlgImgAlt                      : "Texto Alternativo",\r
+DlgImgWidth                    : "Largura",\r
+DlgImgHeight           : "Altura",\r
+DlgImgLockRatio                : "Proporcional",\r
+DlgBtnResetSize                : "Tamaño Orixinal",\r
+DlgImgBorder           : "Límite",\r
+DlgImgHSpace           : "Esp. Horiz.",\r
+DlgImgVSpace           : "Esp. Vert.",\r
+DlgImgAlign                    : "Aliñamento",\r
+DlgImgAlignLeft                : "Esquerda",\r
+DlgImgAlignAbsBottom: "Abs Inferior",\r
+DlgImgAlignAbsMiddle: "Abs Centro",\r
+DlgImgAlignBaseline    : "Liña Base",\r
+DlgImgAlignBottom      : "Pé",\r
+DlgImgAlignMiddle      : "Centro",\r
+DlgImgAlignRight       : "Dereita",\r
+DlgImgAlignTextTop     : "Tope do Texto",\r
+DlgImgAlignTop         : "Tope",\r
+DlgImgPreview          : "Vista Previa",\r
+DlgImgAlertUrl         : "Por favor, escriba a URL da imaxe",\r
+DlgImgLinkTab          : "Ligazón",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propriedades Flash",\r
+DlgFlashChkPlay                : "Auto Execución",\r
+DlgFlashChkLoop                : "Bucle",\r
+DlgFlashChkMenu                : "Activar Menú Flash",\r
+DlgFlashScale          : "Escalar",\r
+DlgFlashScaleAll       : "Amosar Todo",\r
+DlgFlashScaleNoBorder  : "Sen Borde",\r
+DlgFlashScaleFit       : "Encaixar axustando",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Ligazón",\r
+DlgLnkInfoTab          : "Información da Ligazón",\r
+DlgLnkTargetTab                : "Referencia a esta páxina",\r
+\r
+DlgLnkType                     : "Tipo de Ligazón",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Referencia nesta páxina",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocolo",\r
+DlgLnkProtoOther       : "<outro>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Seleccionar unha Referencia",\r
+DlgLnkAnchorByName     : "Por Nome de Referencia",\r
+DlgLnkAnchorById       : "Por Element Id",\r
+DlgLnkNoAnchors                : "<Non hai referencias disponibles no documento>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Enderezo de E-Mail",\r
+DlgLnkEMailSubject     : "Asunto do Mensaxe",\r
+DlgLnkEMailBody                : "Corpo do Mensaxe",\r
+DlgLnkUpload           : "Carregar",\r
+DlgLnkBtnUpload                : "Enviar ó servidor",\r
+\r
+DlgLnkTarget           : "Destino",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<Xanela Emerxente>",\r
+DlgLnkTargetBlank      : "Nova Xanela (_blank)",\r
+DlgLnkTargetParent     : "Xanela Pai (_parent)",\r
+DlgLnkTargetSelf       : "Mesma Xanela (_self)",\r
+DlgLnkTargetTop                : "Xanela Primaria (_top)",\r
+DlgLnkTargetFrameName  : "Nome do Marco Destino",\r
+DlgLnkPopWinName       : "Nome da Xanela Emerxente",\r
+DlgLnkPopWinFeat       : "Características da Xanela Emerxente",\r
+DlgLnkPopResize                : "Axustable",\r
+DlgLnkPopLocation      : "Barra de Localización",\r
+DlgLnkPopMenu          : "Barra de Menú",\r
+DlgLnkPopScroll                : "Barras de Desplazamento",\r
+DlgLnkPopStatus                : "Barra de Estado",\r
+DlgLnkPopToolbar       : "Barra de Ferramentas",\r
+DlgLnkPopFullScrn      : "A Toda Pantalla (IE)",\r
+DlgLnkPopDependent     : "Dependente (Netscape)",\r
+DlgLnkPopWidth         : "Largura",\r
+DlgLnkPopHeight                : "Altura",\r
+DlgLnkPopLeft          : "Posición Esquerda",\r
+DlgLnkPopTop           : "Posición dende Arriba",\r
+\r
+DlnLnkMsgNoUrl         : "Por favor, escriba a ligazón URL",\r
+DlnLnkMsgNoEMail       : "Por favor, escriba o enderezo de e-mail",\r
+DlnLnkMsgNoAnchor      : "Por favor, seleccione un destino",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Seleccionar Color",\r
+DlgColorBtnClear       : "Nengunha",\r
+DlgColorHighlight      : "Destacado",\r
+DlgColorSelected       : "Seleccionado",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Inserte un Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Seleccione Caracter Especial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Propiedades da Táboa",\r
+DlgTableRows           : "Filas",\r
+DlgTableColumns                : "Columnas",\r
+DlgTableBorder         : "Tamaño do Borde",\r
+DlgTableAlign          : "Aliñamento",\r
+DlgTableAlignNotSet    : "<Non Definido>",\r
+DlgTableAlignLeft      : "Esquerda",\r
+DlgTableAlignCenter    : "Centro",\r
+DlgTableAlignRight     : "Ereita",\r
+DlgTableWidth          : "Largura",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Altura",\r
+DlgTableCellSpace      : "Marxe entre Celas",\r
+DlgTableCellPad                : "Marxe interior",\r
+DlgTableCaption                : "Título",\r
+DlgTableSummary                : "Sumario",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Propriedades da Cela",\r
+DlgCellWidth           : "Largura",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Altura",\r
+DlgCellWordWrap                : "Axustar Liñas",\r
+DlgCellWordWrapNotSet  : "<Non Definido>",\r
+DlgCellWordWrapYes     : "Si",\r
+DlgCellWordWrapNo      : "Non",\r
+DlgCellHorAlign                : "Aliñamento Horizontal",\r
+DlgCellHorAlignNotSet  : "<Non definido>",\r
+DlgCellHorAlignLeft    : "Esquerda",\r
+DlgCellHorAlignCenter  : "Centro",\r
+DlgCellHorAlignRight: "Dereita",\r
+DlgCellVerAlign                : "Aliñamento Vertical",\r
+DlgCellVerAlignNotSet  : "<Non definido>",\r
+DlgCellVerAlignTop     : "Arriba",\r
+DlgCellVerAlignMiddle  : "Medio",\r
+DlgCellVerAlignBottom  : "Abaixo",\r
+DlgCellVerAlignBaseline        : "Liña de Base",\r
+DlgCellRowSpan         : "Ocupar Filas",\r
+DlgCellCollSpan                : "Ocupar Columnas",\r
+DlgCellBackColor       : "Color de Fondo",\r
+DlgCellBorderColor     : "Color de Borde",\r
+DlgCellBtnSelect       : "Seleccionar...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Procurar",\r
+DlgFindFindBtn         : "Procurar",\r
+DlgFindNotFoundMsg     : "Non te atopou o texto indicado.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Substituir",\r
+DlgReplaceFindLbl              : "Texto a procurar:",\r
+DlgReplaceReplaceLbl   : "Substituir con:",\r
+DlgReplaceCaseChk              : "Coincidir Mai./min.",\r
+DlgReplaceReplaceBtn   : "Substituir",\r
+DlgReplaceReplAllBtn   : "Substitiur Todo",\r
+DlgReplaceWordChk              : "Coincidir con toda a palabra",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).",\r
+PasteErrorCopy : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).",\r
+\r
+PasteAsText            : "Pegar como texto plano",\r
+PasteFromWord  : "Pegar dende Word",\r
+\r
+DlgPasteMsg2   : "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorar as definicións de Tipografía",\r
+DlgPasteRemoveStyles   : "Eliminar as definicións de Estilos",\r
+DlgPasteCleanBox               : "Limpar o Cadro",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automático",\r
+ColorMoreColors        : "Máis Cores...",\r
+\r
+// Document Properties\r
+DocProps               : "Propriedades do Documento",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Propriedades da Referencia",\r
+DlgAnchorName          : "Nome da Referencia",\r
+DlgAnchorErrorName     : "Por favor, escriba o nome da referencia",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Non está no diccionario",\r
+DlgSpellChangeTo               : "Cambiar a",\r
+DlgSpellBtnIgnore              : "Ignorar",\r
+DlgSpellBtnIgnoreAll   : "Ignorar Todas",\r
+DlgSpellBtnReplace             : "Substituir",\r
+DlgSpellBtnReplaceAll  : "Substituir Todas",\r
+DlgSpellBtnUndo                        : "Desfacer",\r
+DlgSpellNoSuggestions  : "- Sen candidatos -",\r
+DlgSpellProgress               : "Corrección ortográfica en progreso...",\r
+DlgSpellNoMispell              : "Corrección ortográfica rematada: Non se atoparon erros",\r
+DlgSpellNoChanges              : "Corrección ortográfica rematada: Non se substituiu nengunha verba",\r
+DlgSpellOneChange              : "Corrección ortográfica rematada: Unha verba substituida",\r
+DlgSpellManyChanges            : "Corrección ortográfica rematada: %1 verbas substituidas",\r
+\r
+IeSpellDownload                        : "O corrector ortográfico non está instalado. ¿Quere descargalo agora?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Texto (Valor)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nome",\r
+DlgCheckboxValue       : "Valor",\r
+DlgCheckboxSelected    : "Seleccionado",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nome",\r
+DlgFormAction  : "Acción",\r
+DlgFormMethod  : "Método",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nome",\r
+DlgSelectValue         : "Valor",\r
+DlgSelectSize          : "Tamaño",\r
+DlgSelectLines         : "liñas",\r
+DlgSelectChkMulti      : "Permitir múltiples seleccións",\r
+DlgSelectOpAvail       : "Opcións Disponibles",\r
+DlgSelectOpText                : "Texto",\r
+DlgSelectOpValue       : "Valor",\r
+DlgSelectBtnAdd                : "Engadir",\r
+DlgSelectBtnModify     : "Modificar",\r
+DlgSelectBtnUp         : "Subir",\r
+DlgSelectBtnDown       : "Baixar",\r
+DlgSelectBtnSetValue : "Definir como valor por defecto",\r
+DlgSelectBtnDelete     : "Borrar",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nome",\r
+DlgTextareaCols        : "Columnas",\r
+DlgTextareaRows        : "Filas",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nome",\r
+DlgTextValue           : "Valor",\r
+DlgTextCharWidth       : "Tamaño do Caracter",\r
+DlgTextMaxChars                : "Máximo de Caracteres",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Texto",\r
+DlgTextTypePass                : "Chave",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nome",\r
+DlgHiddenValue : "Valor",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Propriedades das Marcas",\r
+NumberedListProp       : "Propriedades da Lista de Numeración",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Círculo",\r
+DlgLstTypeDisc         : "Disco",\r
+DlgLstTypeSquare       : "Cuadrado",\r
+DlgLstTypeNumbers      : "Números (1, 2, 3)",\r
+DlgLstTypeLCase                : "Letras Minúsculas (a, b, c)",\r
+DlgLstTypeUCase                : "Letras Maiúsculas (A, B, C)",\r
+DlgLstTypeSRoman       : "Números Romanos en minúscula (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Números Romanos en Maiúscula (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Xeral",\r
+DlgDocBackTab          : "Fondo",\r
+DlgDocColorsTab                : "Cores e Marxes",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Título da Páxina",\r
+DlgDocLangDir          : "Orientación do Idioma",\r
+DlgDocLangDirLTR       : "Esquerda a Dereita (LTR)",\r
+DlgDocLangDirRTL       : "Dereita a Esquerda (RTL)",\r
+DlgDocLangCode         : "Código de Idioma",\r
+DlgDocCharSet          : "Codificación do Xogo de Caracteres",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Outra Codificación do Xogo de Caracteres",\r
+\r
+DlgDocDocType          : "Encabezado do Tipo de Documento",\r
+DlgDocDocTypeOther     : "Outro Encabezado do Tipo de Documento",\r
+DlgDocIncXHTML         : "Incluir Declaracións XHTML",\r
+DlgDocBgColor          : "Cor de Fondo",\r
+DlgDocBgImage          : "URL da Imaxe de Fondo",\r
+DlgDocBgNoScroll       : "Fondo Fixo",\r
+DlgDocCText                    : "Texto",\r
+DlgDocCLink                    : "Ligazóns",\r
+DlgDocCVisited         : "Ligazón Visitada",\r
+DlgDocCActive          : "Ligazón Activa",\r
+DlgDocMargins          : "Marxes da Páxina",\r
+DlgDocMaTop                    : "Arriba",\r
+DlgDocMaLeft           : "Esquerda",\r
+DlgDocMaRight          : "Dereita",\r
+DlgDocMaBottom         : "Abaixo",\r
+DlgDocMeIndex          : "Palabras Chave de Indexación do Documento (separadas por comas)",\r
+DlgDocMeDescr          : "Descripción do Documento",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Vista Previa",\r
+\r
+// Templates Dialog\r
+Templates                      : "Plantillas",\r
+DlgTemplatesTitle      : "Plantillas de Contido",\r
+DlgTemplatesSelMsg     : "Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):",\r
+DlgTemplatesLoading    : "Cargando listado de plantillas. Por favor, espere...",\r
+DlgTemplatesNoTpl      : "(Non hai plantillas definidas)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Acerca de",\r
+DlgAboutBrowserInfoTab : "Información do Navegador",\r
+DlgAboutLicenseTab     : "Licencia",\r
+DlgAboutVersion                : "versión",\r
+DlgAboutInfo           : "Para máis información visitar:"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/he.js b/httemplate/elements/fckeditor/editor/lang/he.js
new file mode 100644 (file)
index 0000000..ef2b979
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Hebrew language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "rtl",\r
+\r
+ToolbarCollapse                : "כיווץ סרגל הכלים",\r
+ToolbarExpand          : "פתיחת סרגל הכלים",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "שמירה",\r
+NewPage                                : "דף חדש",\r
+Preview                                : "תצוגה מקדימה",\r
+Cut                                    : "גזירה",\r
+Copy                           : "העתקה",\r
+Paste                          : "הדבקה",\r
+PasteText                      : "הדבקה כטקסט פשוט",\r
+PasteWord                      : "הדבקה מ-וורד",\r
+Print                          : "הדפסה",\r
+SelectAll                      : "בחירת הכל",\r
+RemoveFormat           : "הסרת העיצוב",\r
+InsertLinkLbl          : "קישור",\r
+InsertLink                     : "הוספת/עריכת קישור",\r
+RemoveLink                     : "הסרת הקישור",\r
+Anchor                         : "הוספת/עריכת נקודת עיגון",\r
+InsertImageLbl         : "תמונה",\r
+InsertImage                    : "הוספת/עריכת תמונה",\r
+InsertFlashLbl         : "פלאש",\r
+InsertFlash                    : "הוסף/ערוך פלאש",\r
+InsertTableLbl         : "טבלה",\r
+InsertTable                    : "הוספת/עריכת טבלה",\r
+InsertLineLbl          : "קו",\r
+InsertLine                     : "הוספת קו אופקי",\r
+InsertSpecialCharLbl: "תו מיוחד",\r
+InsertSpecialChar      : "הוספת תו מיוחד",\r
+InsertSmileyLbl                : "סמיילי",\r
+InsertSmiley           : "הוספת סמיילי",\r
+About                          : "אודות FCKeditor",\r
+Bold                           : "מודגש",\r
+Italic                         : "נטוי",\r
+Underline                      : "קו תחתון",\r
+StrikeThrough          : "כתיב מחוק",\r
+Subscript                      : "כתיב תחתון",\r
+Superscript                    : "כתיב עליון",\r
+LeftJustify                    : "יישור לשמאל",\r
+CenterJustify          : "מרכוז",\r
+RightJustify           : "יישור לימין",\r
+BlockJustify           : "יישור לשוליים",\r
+DecreaseIndent         : "הקטנת אינדנטציה",\r
+IncreaseIndent         : "הגדלת אינדנטציה",\r
+Undo                           : "ביטול צעד אחרון",\r
+Redo                           : "חזרה על צעד אחרון",\r
+NumberedListLbl                : "רשימה ממוספרת",\r
+NumberedList           : "הוספת/הסרת רשימה ממוספרת",\r
+BulletedListLbl                : "רשימת נקודות",\r
+BulletedList           : "הוספת/הסרת רשימת נקודות",\r
+ShowTableBorders       : "הצגת מסגרת הטבלה",\r
+ShowDetails                    : "הצגת פרטים",\r
+Style                          : "סגנון",\r
+FontFormat                     : "עיצוב",\r
+Font                           : "גופן",\r
+FontSize                       : "גודל",\r
+TextColor                      : "צבע טקסט",\r
+BGColor                                : "צבע רקע",\r
+Source                         : "מקור",\r
+Find                           : "חיפוש",\r
+Replace                                : "החלפה",\r
+SpellCheck                     : "בדיקת איות",\r
+UniversalKeyboard      : "מקלדת אוניברסלית",\r
+PageBreakLbl           : "שבירת דף",\r
+PageBreak                      : "הוסף שבירת דף",\r
+\r
+Form                   : "טופס",\r
+Checkbox               : "תיבת סימון",\r
+RadioButton            : "לחצן אפשרויות",\r
+TextField              : "שדה טקסט",\r
+Textarea               : "איזור טקסט",\r
+HiddenField            : "שדה חבוי",\r
+Button                 : "כפתור",\r
+SelectionField : "שדה בחירה",\r
+ImageButton            : "כפתור תמונה",\r
+\r
+FitWindow              : "הגדל את גודל העורך",\r
+\r
+// Context Menu\r
+EditLink                       : "עריכת קישור",\r
+CellCM                         : "תא",\r
+RowCM                          : "שורה",\r
+ColumnCM                       : "עמודה",\r
+InsertRow                      : "הוספת שורה",\r
+DeleteRows                     : "מחיקת שורות",\r
+InsertColumn           : "הוספת עמודה",\r
+DeleteColumns          : "מחיקת עמודות",\r
+InsertCell                     : "הוספת תא",\r
+DeleteCells                    : "מחיקת תאים",\r
+MergeCells                     : "מיזוג תאים",\r
+SplitCell                      : "פיצול תאים",\r
+TableDelete                    : "מחק טבלה",\r
+CellProperties         : "תכונות התא",\r
+TableProperties                : "תכונות הטבלה",\r
+ImageProperties                : "תכונות התמונה",\r
+FlashProperties                : "מאפייני פלאש",\r
+\r
+AnchorProp                     : "מאפייני נקודת עיגון",\r
+ButtonProp                     : "מאפייני כפתור",\r
+CheckboxProp           : "מאפייני תיבת סימון",\r
+HiddenFieldProp                : "מאפיני שדה חבוי",\r
+RadioButtonProp                : "מאפייני לחצן אפשרויות",\r
+ImageButtonProp                : "מאפיני כפתור תמונה",\r
+TextFieldProp          : "מאפייני שדה טקסט",\r
+SelectionFieldProp     : "מאפייני שדה בחירה",\r
+TextareaProp           : "מאפיני איזור טקסט",\r
+FormProp                       : "מאפיני טופס",\r
+\r
+FontFormats                    : "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",         //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "מעבד XHTML, נא להמתין...",\r
+Done                           : "המשימה הושלמה",\r
+PasteWordConfirm       : "נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?",\r
+NotCompatiblePaste     : "פעולה זו זמינה לדפדפן אינטרנט אקספלורר מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?",\r
+UnknownToolbarItem     : "פריט לא ידוע בסרגל הכלים \"%1\"",\r
+UnknownCommand         : "שם פעולה לא ידוע \"%1\"",\r
+NotImplemented         : "הפקודה לא מיושמת",\r
+UnknownToolbarSet      : "ערכת סרגל הכלים \"%1\" לא קיימת",\r
+NoActiveX                      : "הגדרות אבטחה של הדפדפן עלולות לגביל את אפשרויות העריכה.יש לאפשר את האופציה \"הרץ פקדים פעילים ותוספות\". תוכל לחוות טעויות וחיווים של אפשרויות שחסרים.",\r
+BrowseServerBlocked : "לא ניתן לגשת לדפדפן משאבים.אנא וודא שחוסם חלונות הקופצים לא פעיל.",\r
+DialogBlocked          : "לא היה ניתן לפתוח חלון דיאלוג. אנא וודא שחוסם חלונות קופצים לא פעיל.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "אישור",\r
+DlgBtnCancel           : "ביטול",\r
+DlgBtnClose                    : "סגירה",\r
+DlgBtnBrowseServer     : "סייר השרת",\r
+DlgAdvancedTag         : "אפשרויות מתקדמות",\r
+DlgOpOther                     : "<אחר>",\r
+DlgInfoTab                     : "מידע",\r
+DlgAlertUrl                    : "אנה הזן URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<לא נקבע>",\r
+DlgGenId                       : "זיהוי (Id)",\r
+DlgGenLangDir          : "כיוון שפה",\r
+DlgGenLangDirLtr       : "שמאל לימין (LTR)",\r
+DlgGenLangDirRtl       : "ימין לשמאל (RTL)",\r
+DlgGenLangCode         : "קוד שפה",\r
+DlgGenAccessKey                : "מקש גישה",\r
+DlgGenName                     : "שם",\r
+DlgGenTabIndex         : "מספר טאב",\r
+DlgGenLongDescr                : "קישור לתיאור מפורט",\r
+DlgGenClass                    : "גיליונות עיצוב קבוצות",\r
+DlgGenTitle                    : "כותרת מוצעת",\r
+DlgGenContType         : "Content Type מוצע",\r
+DlgGenLinkCharset      : "קידוד המשאב המקושר",\r
+DlgGenStyle                    : "סגנון",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "תכונות התמונה",\r
+DlgImgInfoTab          : "מידע על התמונה",\r
+DlgImgBtnUpload                : "שליחה לשרת",\r
+DlgImgURL                      : "כתובת (URL)",\r
+DlgImgUpload           : "העלאה",\r
+DlgImgAlt                      : "טקסט חלופי",\r
+DlgImgWidth                    : "רוחב",\r
+DlgImgHeight           : "גובה",\r
+DlgImgLockRatio                : "נעילת היחס",\r
+DlgBtnResetSize                : "איפוס הגודל",\r
+DlgImgBorder           : "מסגרת",\r
+DlgImgHSpace           : "מרווח אופקי",\r
+DlgImgVSpace           : "מרווח אנכי",\r
+DlgImgAlign                    : "יישור",\r
+DlgImgAlignLeft                : "לשמאל",\r
+DlgImgAlignAbsBottom: "לתחתית האבסולוטית",\r
+DlgImgAlignAbsMiddle: "מרכוז אבסולוטי",\r
+DlgImgAlignBaseline    : "לקו התחתית",\r
+DlgImgAlignBottom      : "לתחתית",\r
+DlgImgAlignMiddle      : "לאמצע",\r
+DlgImgAlignRight       : "לימין",\r
+DlgImgAlignTextTop     : "לראש הטקסט",\r
+DlgImgAlignTop         : "למעלה",\r
+DlgImgPreview          : "תצוגה מקדימה",\r
+DlgImgAlertUrl         : "נא להקליד את כתובת התמונה",\r
+DlgImgLinkTab          : "קישור",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "מאפיני פלאש",\r
+DlgFlashChkPlay                : "נגן אוטומטי",\r
+DlgFlashChkLoop                : "לולאה",\r
+DlgFlashChkMenu                : "אפשר תפריט פלאש",\r
+DlgFlashScale          : "גודל",\r
+DlgFlashScaleAll       : "הצג הכל",\r
+DlgFlashScaleNoBorder  : "ללא גבולות",\r
+DlgFlashScaleFit       : "התאמה מושלמת",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "קישור",\r
+DlgLnkInfoTab          : "מידע על הקישור",\r
+DlgLnkTargetTab                : "מטרה",\r
+\r
+DlgLnkType                     : "סוג קישור",\r
+DlgLnkTypeURL          : "כתובת (URL)",\r
+DlgLnkTypeAnchor       : "עוגן בעמוד זה",\r
+DlgLnkTypeEMail                : "דוא''ל",\r
+DlgLnkProto                    : "פרוטוקול",\r
+DlgLnkProtoOther       : "<אחר>",\r
+DlgLnkURL                      : "כתובת (URL)",\r
+DlgLnkAnchorSel                : "בחירת עוגן",\r
+DlgLnkAnchorByName     : "עפ''י שם העוגן",\r
+DlgLnkAnchorById       : "עפ''י זיהוי (Id) הרכיב",\r
+DlgLnkNoAnchors                : "(אין עוגנים זמינים בדף)",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "כתובת הדוא''ל",\r
+DlgLnkEMailSubject     : "נושא ההודעה",\r
+DlgLnkEMailBody                : "גוף ההודעה",\r
+DlgLnkUpload           : "העלאה",\r
+DlgLnkBtnUpload                : "שליחה לשרת",\r
+\r
+DlgLnkTarget           : "מטרה",\r
+DlgLnkTargetFrame      : "<מסגרת>",\r
+DlgLnkTargetPopup      : "<חלון קופץ>",\r
+DlgLnkTargetBlank      : "חלון חדש (_blank)",\r
+DlgLnkTargetParent     : "חלון האב (_parent)",\r
+DlgLnkTargetSelf       : "באותו החלון (_self)",\r
+DlgLnkTargetTop                : "חלון ראשי (_top)",\r
+DlgLnkTargetFrameName  : "שם מסגרת היעד",\r
+DlgLnkPopWinName       : "שם החלון הקופץ",\r
+DlgLnkPopWinFeat       : "תכונות החלון הקופץ",\r
+DlgLnkPopResize                : "בעל גודל ניתן לשינוי",\r
+DlgLnkPopLocation      : "סרגל כתובת",\r
+DlgLnkPopMenu          : "סרגל תפריט",\r
+DlgLnkPopScroll                : "ניתן לגלילה",\r
+DlgLnkPopStatus                : "סרגל חיווי",\r
+DlgLnkPopToolbar       : "סרגל הכלים",\r
+DlgLnkPopFullScrn      : "מסך מלא (IE)",\r
+DlgLnkPopDependent     : "תלוי (Netscape)",\r
+DlgLnkPopWidth         : "רוחב",\r
+DlgLnkPopHeight                : "גובה",\r
+DlgLnkPopLeft          : "מיקום צד שמאל",\r
+DlgLnkPopTop           : "מיקום צד עליון",\r
+\r
+DlnLnkMsgNoUrl         : "נא להקליד את כתובת הקישור (URL)",\r
+DlnLnkMsgNoEMail       : "נא להקליד את כתובת הדוא''ל",\r
+DlnLnkMsgNoAnchor      : "נא לבחור עוגן במסמך",\r
+DlnLnkMsgInvPopName    : "שם החלון הקופץ חייב להתחיל באותיות ואסור לכלול רווחים",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "בחירת צבע",\r
+DlgColorBtnClear       : "איפוס",\r
+DlgColorHighlight      : "נוכחי",\r
+DlgColorSelected       : "נבחר",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "הוספת סמיילי",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "בחירת תו מיוחד",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "תכונות טבלה",\r
+DlgTableRows           : "שורות",\r
+DlgTableColumns                : "עמודות",\r
+DlgTableBorder         : "גודל מסגרת",\r
+DlgTableAlign          : "יישור",\r
+DlgTableAlignNotSet    : "<לא נקבע>",\r
+DlgTableAlignLeft      : "שמאל",\r
+DlgTableAlignCenter    : "מרכז",\r
+DlgTableAlignRight     : "ימין",\r
+DlgTableWidth          : "רוחב",\r
+DlgTableWidthPx                : "פיקסלים",\r
+DlgTableWidthPc                : "אחוז",\r
+DlgTableHeight         : "גובה",\r
+DlgTableCellSpace      : "מרווח תא",\r
+DlgTableCellPad                : "ריפוד תא",\r
+DlgTableCaption                : "כיתוב",\r
+DlgTableSummary                : "סיכום",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "תכונות תא",\r
+DlgCellWidth           : "רוחב",\r
+DlgCellWidthPx         : "פיקסלים",\r
+DlgCellWidthPc         : "אחוז",\r
+DlgCellHeight          : "גובה",\r
+DlgCellWordWrap                : "גלילת שורות",\r
+DlgCellWordWrapNotSet  : "<לא נקבע>",\r
+DlgCellWordWrapYes     : "כן",\r
+DlgCellWordWrapNo      : "לא",\r
+DlgCellHorAlign                : "יישור אופקי",\r
+DlgCellHorAlignNotSet  : "<לא נקבע>",\r
+DlgCellHorAlignLeft    : "שמאל",\r
+DlgCellHorAlignCenter  : "מרכז",\r
+DlgCellHorAlignRight: "ימין",\r
+DlgCellVerAlign                : "יישור אנכי",\r
+DlgCellVerAlignNotSet  : "<לא נקבע>",\r
+DlgCellVerAlignTop     : "למעלה",\r
+DlgCellVerAlignMiddle  : "לאמצע",\r
+DlgCellVerAlignBottom  : "לתחתית",\r
+DlgCellVerAlignBaseline        : "קו תחתית",\r
+DlgCellRowSpan         : "טווח שורות",\r
+DlgCellCollSpan                : "טווח עמודות",\r
+DlgCellBackColor       : "צבע רקע",\r
+DlgCellBorderColor     : "צבע מסגרת",\r
+DlgCellBtnSelect       : "בחירה...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "חיפוש",\r
+DlgFindFindBtn         : "חיפוש",\r
+DlgFindNotFoundMsg     : "הטקסט המבוקש לא נמצא.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "החלפה",\r
+DlgReplaceFindLbl              : "חיפוש מחרוזת:",\r
+DlgReplaceReplaceLbl   : "החלפה במחרוזת:",\r
+DlgReplaceCaseChk              : "התאמת סוג אותיות (Case)",\r
+DlgReplaceReplaceBtn   : "החלפה",\r
+DlgReplaceReplAllBtn   : "החלפה בכל העמוד",\r
+DlgReplaceWordChk              : "התאמה למילה המלאה",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה  אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).",\r
+PasteErrorCopy : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).",\r
+\r
+PasteAsText            : "הדבקה כטקסט פשוט",\r
+PasteFromWord  : "הדבקה מ-וורד",\r
+\r
+DlgPasteMsg2   : "אנא הדבק בתוך הקופסה באמצעות  (<STRONG>Ctrl+V</STRONG>) ולחץ על  <STRONG>אישור</STRONG>.",\r
+DlgPasteSec            : "עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (clipboard) בצורה ישירה.אנא בצע הדבק שוב בחלון זה.",\r
+DlgPasteIgnoreFont             : "התעלם מהגדרות סוג פונט",\r
+DlgPasteRemoveStyles   : "הסר הגדרות סגנון",\r
+DlgPasteCleanBox               : "ניקוי קופסה",\r
+\r
+// Color Picker\r
+ColorAutomatic : "אוטומטי",\r
+ColorMoreColors        : "צבעים נוספים...",\r
+\r
+// Document Properties\r
+DocProps               : "מאפיני מסמך",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "מאפיני נקודת עיגון",\r
+DlgAnchorName          : "שם לנקודת עיגון",\r
+DlgAnchorErrorName     : "אנא הזן שם לנקודת עיגון",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "לא נמצא במילון",\r
+DlgSpellChangeTo               : "שנה ל",\r
+DlgSpellBtnIgnore              : "התעלם",\r
+DlgSpellBtnIgnoreAll   : "התעלם מהכל",\r
+DlgSpellBtnReplace             : "החלף",\r
+DlgSpellBtnReplaceAll  : "החלף הכל",\r
+DlgSpellBtnUndo                        : "החזר",\r
+DlgSpellNoSuggestions  : "- אין הצעות -",\r
+DlgSpellProgress               : "בדיקות איות בתהליך ....",\r
+DlgSpellNoMispell              : "בדיקות איות הסתיימה: לא נמצאו שגיעות כתיב",\r
+DlgSpellNoChanges              : "בדיקות איות הסתיימה: לא שונתה אף מילה",\r
+DlgSpellOneChange              : "בדיקות איות הסתיימה: שונתה מילה אחת",\r
+DlgSpellManyChanges            : "בדיקות איות הסתיימה: %1 מילים שונו",\r
+\r
+IeSpellDownload                        : "בודק האיות לא מותקן, האם אתה מעוניין להוריד?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "טקסט (ערך)",\r
+DlgButtonType          : "סוג",\r
+DlgButtonTypeBtn       : "כפתור",\r
+DlgButtonTypeSbm       : "שלח",\r
+DlgButtonTypeRst       : "אפס",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "שם",\r
+DlgCheckboxValue       : "ערך",\r
+DlgCheckboxSelected    : "בחור",\r
+\r
+// Form Dialog\r
+DlgFormName            : "שם",\r
+DlgFormAction  : "שלח אל",\r
+DlgFormMethod  : "סוג שליחה",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "שם",\r
+DlgSelectValue         : "ערך",\r
+DlgSelectSize          : "גודל",\r
+DlgSelectLines         : "שורות",\r
+DlgSelectChkMulti      : "אפשר בחירות מרובות",\r
+DlgSelectOpAvail       : "אפשרויות זמינות",\r
+DlgSelectOpText                : "טקסט",\r
+DlgSelectOpValue       : "ערך",\r
+DlgSelectBtnAdd                : "הוסף",\r
+DlgSelectBtnModify     : "שנה",\r
+DlgSelectBtnUp         : "למעלה",\r
+DlgSelectBtnDown       : "למטה",\r
+DlgSelectBtnSetValue : "קבע כברירת מחדל",\r
+DlgSelectBtnDelete     : "מחק",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "שם",\r
+DlgTextareaCols        : "עמודות",\r
+DlgTextareaRows        : "שורות",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "שם",\r
+DlgTextValue           : "ערך",\r
+DlgTextCharWidth       : "רוחב באותיות",\r
+DlgTextMaxChars                : "מקסימות אותיות",\r
+DlgTextType                    : "סוג",\r
+DlgTextTypeText                : "טקסט",\r
+DlgTextTypePass                : "סיסמה",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "שם",\r
+DlgHiddenValue : "ערך",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "מאפייני רשימה",\r
+NumberedListProp       : "מאפייני רשימה ממוספרת",\r
+DlgLstStart                    : "התחלה",\r
+DlgLstType                     : "סוג",\r
+DlgLstTypeCircle       : "עיגול",\r
+DlgLstTypeDisc         : "דיסק",\r
+DlgLstTypeSquare       : "מרובע",\r
+DlgLstTypeNumbers      : "מספרים (1, 2, 3)",\r
+DlgLstTypeLCase                : "אותיות קטנות (a, b, c)",\r
+DlgLstTypeUCase                : "אותיות גדולות (A, B, C)",\r
+DlgLstTypeSRoman       : "ספרות רומאיות קטנות (i, ii, iii)",\r
+DlgLstTypeLRoman       : "ספרות רומאיות גדולות (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "כללי",\r
+DlgDocBackTab          : "רקע",\r
+DlgDocColorsTab                : "צבעים וגבולות",\r
+DlgDocMetaTab          : "נתוני META",\r
+\r
+DlgDocPageTitle                : "כותרת דף",\r
+DlgDocLangDir          : "כיוון שפה",\r
+DlgDocLangDirLTR       : "שמאל לימין (LTR)",\r
+DlgDocLangDirRTL       : "ימין לשמאל (RTL)",\r
+DlgDocLangCode         : "קוד שפה",\r
+DlgDocCharSet          : "קידוד אותיות",\r
+DlgDocCharSetCE                : "מרכז אירופה",\r
+DlgDocCharSetCT                : "סיני מסורתי (Big5)",\r
+DlgDocCharSetCR                : "קירילי",\r
+DlgDocCharSetGR                : "יוונית",\r
+DlgDocCharSetJP                : "יפנית",\r
+DlgDocCharSetKR                : "קוראנית",\r
+DlgDocCharSetTR                : "טורקית",\r
+DlgDocCharSetUN                : "יוני קוד (UTF-8)",\r
+DlgDocCharSetWE                : "מערב אירופה",\r
+DlgDocCharSetOther     : "קידוד אותיות אחר",\r
+\r
+DlgDocDocType          : "הגדרות סוג מסמך",\r
+DlgDocDocTypeOther     : "הגדרות סוג מסמך אחרות",\r
+DlgDocIncXHTML         : "כלול הגדרות XHTML",\r
+DlgDocBgColor          : "צבע רקע",\r
+DlgDocBgImage          : "URL לתמונת רקע",\r
+DlgDocBgNoScroll       : "רגע ללא גלילה",\r
+DlgDocCText                    : "טקסט",\r
+DlgDocCLink                    : "קישור",\r
+DlgDocCVisited         : "קישור שבוקר",\r
+DlgDocCActive          : " קישור פעיל",\r
+DlgDocMargins          : "גבולות דף",\r
+DlgDocMaTop                    : "למעלה",\r
+DlgDocMaLeft           : "שמאלה",\r
+DlgDocMaRight          : "ימינה",\r
+DlgDocMaBottom         : "למטה",\r
+DlgDocMeIndex          : "מפתח עניינים של המסמך )מופרד בפסיק(",\r
+DlgDocMeDescr          : "תאור מסמך",\r
+DlgDocMeAuthor         : "מחבר",\r
+DlgDocMeCopy           : "זכויות יוצרים",\r
+DlgDocPreview          : "תצוגה מקדימה",\r
+\r
+// Templates Dialog\r
+Templates                      : "תבניות",\r
+DlgTemplatesTitle      : "תביות תוכן",\r
+DlgTemplatesSelMsg     : "אנא בחר תבנית לפתיחה בעורך <BR>התוכן המקורי ימחק:",\r
+DlgTemplatesLoading    : "מעלה רשימת תבניות אנא המתן",\r
+DlgTemplatesNoTpl      : "(לא הוגדרו תבניות)",\r
+DlgTemplatesReplace    : "החלפת תוכן ממשי",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "אודות",\r
+DlgAboutBrowserInfoTab : "גירסת דפדפן",\r
+DlgAboutLicenseTab     : "רשיון",\r
+DlgAboutVersion                : "גירסא",\r
+DlgAboutInfo           : "מידע נוסף ניתן למצוא כאן:"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/hi.js b/httemplate/elements/fckeditor/editor/lang/hi.js
new file mode 100644 (file)
index 0000000..fdc5e39
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Hindi language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "टूलबार सिमटायें",\r
+ToolbarExpand          : "टूलबार का विस्तार करें",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "सेव",\r
+NewPage                                : "नया पेज",\r
+Preview                                : "प्रीव्यू",\r
+Cut                                    : "कट",\r
+Copy                           : "कॉपी",\r
+Paste                          : "पेस्ट",\r
+PasteText                      : "पेस्ट (सादा टॅक्स्ट)",\r
+PasteWord                      : "पेस्ट (वर्ड से)",\r
+Print                          : "प्रिन्ट",\r
+SelectAll                      : "सब सॅलॅक्ट करें",\r
+RemoveFormat           : "फ़ॉर्मैट हटायें",\r
+InsertLinkLbl          : "लिंक",\r
+InsertLink                     : "लिंक इन्सर्ट/संपादन",\r
+RemoveLink                     : "लिंक हटायें",\r
+Anchor                         : "ऐंकर इन्सर्ट/संपादन",\r
+InsertImageLbl         : "तस्वीर",\r
+InsertImage                    : "तस्वीर इन्सर्ट/संपादन",\r
+InsertFlashLbl         : "फ़्लैश",\r
+InsertFlash                    : "फ़्लैश इन्सर्ट/संपादन",\r
+InsertTableLbl         : "टेबल",\r
+InsertTable                    : "टेबल इन्सर्ट/संपादन",\r
+InsertLineLbl          : "रेखा",\r
+InsertLine                     : "हॉरिज़ॉन्टल रेखा इन्सर्ट करें",\r
+InsertSpecialCharLbl: "विशेष करॅक्टर",\r
+InsertSpecialChar      : "विशेष करॅक्टर इन्सर्ट करें",\r
+InsertSmileyLbl                : "स्माइली",\r
+InsertSmiley           : "स्माइली इन्सर्ट करें",\r
+About                          : "FCKeditor के बारे में",\r
+Bold                           : "बोल्ड",\r
+Italic                         : "इटैलिक",\r
+Underline                      : "रेखांकण",\r
+StrikeThrough          : "स्ट्राइक थ्रू",\r
+Subscript                      : "अधोलेख",\r
+Superscript                    : "अभिलेख",\r
+LeftJustify                    : "बायीं तरफ",\r
+CenterJustify          : "बीच में",\r
+RightJustify           : "दायीं तरफ",\r
+BlockJustify           : "ब्लॉक जस्टीफ़ाई",\r
+DecreaseIndent         : "इन्डॅन्ट कम करें",\r
+IncreaseIndent         : "इन्डॅन्ट बढ़ायें",\r
+Undo                           : "अन्डू",\r
+Redo                           : "रीडू",\r
+NumberedListLbl                : "अंकीय सूची",\r
+NumberedList           : "अंकीय सूची इन्सर्ट/संपादन",\r
+BulletedListLbl                : "बुलॅट सूची",\r
+BulletedList           : "बुलॅट सूची इन्सर्ट/संपादन",\r
+ShowTableBorders       : "टेबल बॉर्डरयें दिखायें",\r
+ShowDetails                    : "ज्यादा   दिखायें",\r
+Style                          : "स्टाइल",\r
+FontFormat                     : "फ़ॉर्मैट",\r
+Font                           : "फ़ॉन्ट",\r
+FontSize                       : "साइज़",\r
+TextColor                      : "टेक्स्ट रंग",\r
+BGColor                                : "बैक्ग्राउन्ड रंग",\r
+Source                         : "सोर्स",\r
+Find                           : "खोजें",\r
+Replace                                : "रीप्लेस",\r
+SpellCheck                     : "वर्तनी (स्पेलिंग) जाँच",\r
+UniversalKeyboard      : "यूनीवर्सल कीबोर्ड",\r
+PageBreakLbl           : "पेज ब्रेक",\r
+PageBreak                      : "पेज ब्रेक इन्सर्ट् करें",\r
+\r
+Form                   : "फ़ॉर्म",\r
+Checkbox               : "चॅक बॉक्स",\r
+RadioButton            : "रेडिओ बटन",\r
+TextField              : "टेक्स्ट फ़ील्ड",\r
+Textarea               : "टेक्स्ट एरिया",\r
+HiddenField            : "गुप्त फ़ील्ड",\r
+Button                 : "बटन",\r
+SelectionField : "चुनाव फ़ील्ड",\r
+ImageButton            : "तस्वीर बटन",\r
+\r
+FitWindow              : "एडिटर साइज़ को चरम सीमा तक बढ़ायें",\r
+\r
+// Context Menu\r
+EditLink                       : "लिंक संपादन",\r
+CellCM                         : "खाना",\r
+RowCM                          : "पंक्ति",\r
+ColumnCM                       : "कालम",\r
+InsertRow                      : "पंक्ति इन्सर्ट करें",\r
+DeleteRows                     : "पंक्तियाँ डिलीट करें",\r
+InsertColumn           : "कॉलम इन्सर्ट करें",\r
+DeleteColumns          : "कॉलम डिलीट करें",\r
+InsertCell                     : "सॅल इन्सर्ट करें",\r
+DeleteCells                    : "सॅल डिलीट करें",\r
+MergeCells                     : "सॅल मिलायें",\r
+SplitCell                      : "सॅल अलग करें",\r
+TableDelete                    : "टेबल डिलीट करें",\r
+CellProperties         : "सॅल प्रॉपर्टीज़",\r
+TableProperties                : "टेबल प्रॉपर्टीज़",\r
+ImageProperties                : "तस्वीर प्रॉपर्टीज़",\r
+FlashProperties                : "फ़्लैश प्रॉपर्टीज़",\r
+\r
+AnchorProp                     : "ऐंकर प्रॉपर्टीज़",\r
+ButtonProp                     : "बटन प्रॉपर्टीज़",\r
+CheckboxProp           : "चॅक बॉक्स प्रॉपर्टीज़",\r
+HiddenFieldProp                : "गुप्त फ़ील्ड प्रॉपर्टीज़",\r
+RadioButtonProp                : "रेडिओ बटन प्रॉपर्टीज़",\r
+ImageButtonProp                : "तस्वीर बटन प्रॉपर्टीज़",\r
+TextFieldProp          : "टेक्स्ट फ़ील्ड प्रॉपर्टीज़",\r
+SelectionFieldProp     : "चुनाव फ़ील्ड प्रॉपर्टीज़",\r
+TextareaProp           : "टेक्स्त एरिया प्रॉपर्टीज़",\r
+FormProp                       : "फ़ॉर्म प्रॉपर्टीज़",\r
+\r
+FontFormats                    : "साधारण;फ़ॉर्मैटॅड;पता;शीर्षक 1;शीर्षक 2;शीर्षक 3;शीर्षक 4;शीर्षक 5;शीर्षक 6;शीर्षक (DIV)",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML प्रोसॅस हो रहा है। ज़रा ठहरें...",\r
+Done                           : "पूरा हुआ",\r
+PasteWordConfirm       : "आप जो टेक्स्ट पेस्ट करना चाहते हैं, वह वर्ड से कॉपी किया हुआ लग रहा है। क्या पेस्ट करने से पहले आप इसे साफ़ करना चाहेंगे?",\r
+NotCompatiblePaste     : "यह कमांड इन्टरनॅट एक्स्प्लोरर(Internet Explorer) 5.5 या उसके बाद के वर्ज़न के लिए ही उपलब्ध है। क्या आप बिना साफ़ किए पेस्ट करना चाहेंगे?",\r
+UnknownToolbarItem     : "अनजान टूलबार आइटम \"%1\"",\r
+UnknownCommand         : "अनजान कमान्ड \"%1\"",\r
+NotImplemented         : "कमान्ड इम्प्लीमॅन्ट नहीं किया गया है",\r
+UnknownToolbarSet      : "टूलबार सॅट \"%1\" उपलब्ध नहीं है",\r
+NoActiveX                      : "आपके ब्राउज़र् की सुरक्शा सेटिंग्स् एडिटर की कुछ् फ़ीचरों को सीमित कर् सकती हैं। क्रिपया \"Run ActiveX controls and plug-ins\" विकल्प को एनेबल करें. आपको एरर्स् और गायब फ़ीचर्स् का अनुभव हो सकता है।",\r
+BrowseServerBlocked : "रिसोर्सेज़ ब्राउज़र् नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",\r
+DialogBlocked          : "डायलग विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ठीक है",\r
+DlgBtnCancel           : "रद्द करें",\r
+DlgBtnClose                    : "बन्द करें",\r
+DlgBtnBrowseServer     : "सर्वर ब्राउज़ करें",\r
+DlgAdvancedTag         : "ऍड्वान्स्ड",\r
+DlgOpOther                     : "<अन्य>",\r
+DlgInfoTab                     : "सूचना",\r
+DlgAlertUrl                    : "URL इन्सर्ट करें",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<सॅट नहीं>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "भाषा लिखने की दिशा",\r
+DlgGenLangDirLtr       : "बायें से दायें (LTR)",\r
+DlgGenLangDirRtl       : "दायें से बायें (RTL)",\r
+DlgGenLangCode         : "भाषा कोड",\r
+DlgGenAccessKey                : "ऍक्सॅस की",\r
+DlgGenName                     : "नाम",\r
+DlgGenTabIndex         : "टैब इन्डॅक्स",\r
+DlgGenLongDescr                : "अधिक विवरण के लिए URL",\r
+DlgGenClass                    : "स्टाइल-शीट क्लास",\r
+DlgGenTitle                    : "परामर्श शीर्शक",\r
+DlgGenContType         : "परामर्श कन्टॅन्ट प्रकार",\r
+DlgGenLinkCharset      : "लिंक रिसोर्स करॅक्टर सॅट",\r
+DlgGenStyle                    : "स्टाइल",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "तस्वीर प्रॉपर्टीज़",\r
+DlgImgInfoTab          : "तस्वीर की जानकारी",\r
+DlgImgBtnUpload                : "इसे सर्वर को भेजें",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "अपलोड",\r
+DlgImgAlt                      : "वैकल्पिक टेक्स्ट",\r
+DlgImgWidth                    : "चौड़ाई",\r
+DlgImgHeight           : "ऊँचाई",\r
+DlgImgLockRatio                : "लॉक अनुपात",\r
+DlgBtnResetSize                : "रीसॅट साइज़",\r
+DlgImgBorder           : "बॉर्डर",\r
+DlgImgHSpace           : "हॉरिज़ॉन्टल स्पेस",\r
+DlgImgVSpace           : "वर्टिकल स्पेस",\r
+DlgImgAlign                    : "ऍलाइन",\r
+DlgImgAlignLeft                : "दायें",\r
+DlgImgAlignAbsBottom: "Abs नीचे",\r
+DlgImgAlignAbsMiddle: "Abs ऊपर",\r
+DlgImgAlignBaseline    : "मूल रेखा",\r
+DlgImgAlignBottom      : "नीचे",\r
+DlgImgAlignMiddle      : "मध्य",\r
+DlgImgAlignRight       : "दायें",\r
+DlgImgAlignTextTop     : "टेक्स्ट ऊपर",\r
+DlgImgAlignTop         : "ऊपर",\r
+DlgImgPreview          : "प्रीव्यू",\r
+DlgImgAlertUrl         : "तस्वीर का URL टाइप करें ",\r
+DlgImgLinkTab          : "लिंक",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "फ़्लैश प्रॉपर्टीज़",\r
+DlgFlashChkPlay                : "ऑटो प्ले",\r
+DlgFlashChkLoop                : "लूप",\r
+DlgFlashChkMenu                : "फ़्लैश मॅन्यू का प्रयोग करें",\r
+DlgFlashScale          : "स्केल",\r
+DlgFlashScaleAll       : "सभी दिखायें",\r
+DlgFlashScaleNoBorder  : "कोई बॉर्डर नहीं",\r
+DlgFlashScaleFit       : "बिल्कुल फ़िट",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "लिंक",\r
+DlgLnkInfoTab          : "लिंक  ",\r
+DlgLnkTargetTab                : "टार्गेट",\r
+\r
+DlgLnkType                     : "लिंक प्रकार",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "इस पेज का ऐंकर",\r
+DlgLnkTypeEMail                : "ई-मेल",\r
+DlgLnkProto                    : "प्रोटोकॉल",\r
+DlgLnkProtoOther       : "<अन्य>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "ऐंकर चुनें",\r
+DlgLnkAnchorByName     : "ऐंकर नाम से",\r
+DlgLnkAnchorById       : "ऍलीमॅन्ट Id से",\r
+DlgLnkNoAnchors                : "<डॉक्यूमॅन्ट में ऐंकर्स की संख्या>",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "ई-मेल पता",\r
+DlgLnkEMailSubject     : "संदेश विषय",\r
+DlgLnkEMailBody                : "संदेश",\r
+DlgLnkUpload           : "अपलोड",\r
+DlgLnkBtnUpload                : "इसे सर्वर को भेजें",\r
+\r
+DlgLnkTarget           : "टार्गेट",\r
+DlgLnkTargetFrame      : "<फ़्रेम>",\r
+DlgLnkTargetPopup      : "<पॉप-अप विन्डो>",\r
+DlgLnkTargetBlank      : "नया विन्डो (_blank)",\r
+DlgLnkTargetParent     : "मूल विन्डो (_parent)",\r
+DlgLnkTargetSelf       : "इसी विन्डो (_self)",\r
+DlgLnkTargetTop                : "शीर्ष विन्डो (_top)",\r
+DlgLnkTargetFrameName  : "टार्गेट फ़्रेम का नाम",\r
+DlgLnkPopWinName       : "पॉप-अप विन्डो का नाम",\r
+DlgLnkPopWinFeat       : "पॉप-अप विन्डो फ़ीचर्स",\r
+DlgLnkPopResize                : "साइज़ बदला जा सकता है",\r
+DlgLnkPopLocation      : "लोकेशन बार",\r
+DlgLnkPopMenu          : "मॅन्यू बार",\r
+DlgLnkPopScroll                : "स्क्रॉल बार",\r
+DlgLnkPopStatus                : "स्टेटस बार",\r
+DlgLnkPopToolbar       : "टूल बार",\r
+DlgLnkPopFullScrn      : "फ़ुल स्क्रीन (IE)",\r
+DlgLnkPopDependent     : "डिपेन्डॅन्ट (Netscape)",\r
+DlgLnkPopWidth         : "चौड़ाई",\r
+DlgLnkPopHeight                : "ऊँचाई",\r
+DlgLnkPopLeft          : "बायीं तरफ",\r
+DlgLnkPopTop           : "दायीं तरफ",\r
+\r
+DlnLnkMsgNoUrl         : "लिंक URL टाइप करें",\r
+DlnLnkMsgNoEMail       : "ई-मेल पता टाइप करें",\r
+DlnLnkMsgNoAnchor      : "ऐंकर चुनें",\r
+DlnLnkMsgInvPopName    : "पॉप-अप का नाम अल्फाबेट से शुरू होना चाहिये और उसमें स्पेस नहीं होने चाहिए",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "रंग चुनें",\r
+DlgColorBtnClear       : "साफ़ करें",\r
+DlgColorHighlight      : "हाइलाइट",\r
+DlgColorSelected       : "सॅलॅक्टॅड",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "स्माइली इन्सर्ट करें",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "विशेष करॅक्टर चुनें",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "टेबल प्रॉपर्टीज़",\r
+DlgTableRows           : "पंक्तियाँ",\r
+DlgTableColumns                : "कॉलम",\r
+DlgTableBorder         : "बॉर्डर साइज़",\r
+DlgTableAlign          : "ऍलाइन्मॅन्ट",\r
+DlgTableAlignNotSet    : "<सॅट नहीं>",\r
+DlgTableAlignLeft      : "दायें",\r
+DlgTableAlignCenter    : "बीच में",\r
+DlgTableAlignRight     : "बायें",\r
+DlgTableWidth          : "चौड़ाई",\r
+DlgTableWidthPx                : "पिक्सॅल",\r
+DlgTableWidthPc                : "प्रतिशत",\r
+DlgTableHeight         : "ऊँचाई",\r
+DlgTableCellSpace      : "सॅल अंतर",\r
+DlgTableCellPad                : "सॅल पैडिंग",\r
+DlgTableCaption                : "शीर्षक",\r
+DlgTableSummary                : "सारांश",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "सॅल प्रॉपर्टीज़",\r
+DlgCellWidth           : "चौड़ाई",\r
+DlgCellWidthPx         : "पिक्सॅल",\r
+DlgCellWidthPc         : "प्रतिशत",\r
+DlgCellHeight          : "ऊँचाई",\r
+DlgCellWordWrap                : "वर्ड रैप",\r
+DlgCellWordWrapNotSet  : "<सॅट नहीं>",\r
+DlgCellWordWrapYes     : "हाँ",\r
+DlgCellWordWrapNo      : "नहीं",\r
+DlgCellHorAlign                : "हॉरिज़ॉन्टल ऍलाइन्मॅन्ट",\r
+DlgCellHorAlignNotSet  : "<सॅट नहीं>",\r
+DlgCellHorAlignLeft    : "दायें",\r
+DlgCellHorAlignCenter  : "बीच में",\r
+DlgCellHorAlignRight: "बायें",\r
+DlgCellVerAlign                : "वर्टिकल ऍलाइन्मॅन्ट",\r
+DlgCellVerAlignNotSet  : "<सॅट नहीं>",\r
+DlgCellVerAlignTop     : "ऊपर",\r
+DlgCellVerAlignMiddle  : "मध्य",\r
+DlgCellVerAlignBottom  : "नीचे",\r
+DlgCellVerAlignBaseline        : "मूलरेखा",\r
+DlgCellRowSpan         : "पंक्ति स्पैन",\r
+DlgCellCollSpan                : "कॉलम स्पैन",\r
+DlgCellBackColor       : "बैक्ग्राउन्ड रंग",\r
+DlgCellBorderColor     : "बॉर्डर का रंग",\r
+DlgCellBtnSelect       : "चुनें...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "खोजें",\r
+DlgFindFindBtn         : "खोजें",\r
+DlgFindNotFoundMsg     : "आपके द्वारा दिया गया टेक्स्ट नहीं मिला",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "रिप्लेस",\r
+DlgReplaceFindLbl              : "यह खोजें:",\r
+DlgReplaceReplaceLbl   : "इससे रिप्लेस करें:",\r
+DlgReplaceCaseChk              : "केस मिलायें",\r
+DlgReplaceReplaceBtn   : "रिप्लेस",\r
+DlgReplaceReplAllBtn   : "सभी रिप्लेस करें",\r
+DlgReplaceWordChk              : "पूरा शब्द मिलायें",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।",\r
+PasteErrorCopy : "आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।",\r
+\r
+PasteAsText            : "पेस्ट (सादा टॅक्स्ट)",\r
+PasteFromWord  : "पेस्ट (वर्ड से)",\r
+\r
+DlgPasteMsg2   : "Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "फ़ॉन्ट परिभाषा निकालें",\r
+DlgPasteRemoveStyles   : "स्टाइल परिभाषा निकालें",\r
+DlgPasteCleanBox               : "बॉक्स साफ़ करें",\r
+\r
+// Color Picker\r
+ColorAutomatic : "ऑटोमैटिक",\r
+ColorMoreColors        : "और रंग...",\r
+\r
+// Document Properties\r
+DocProps               : "डॉक्यूमॅन्ट प्रॉपर्टीज़",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "ऐंकर प्रॉपर्टीज़",\r
+DlgAnchorName          : "ऐंकर का नाम",\r
+DlgAnchorErrorName     : "ऐंकर का नाम टाइप करें",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "शब्दकोश में नहीं",\r
+DlgSpellChangeTo               : "इसमें बदलें",\r
+DlgSpellBtnIgnore              : "इग्नोर",\r
+DlgSpellBtnIgnoreAll   : "सभी इग्नोर करें",\r
+DlgSpellBtnReplace             : "रिप्लेस",\r
+DlgSpellBtnReplaceAll  : "सभी रिप्लेस करें",\r
+DlgSpellBtnUndo                        : "अन्डू",\r
+DlgSpellNoSuggestions  : "- कोई सुझाव नहीं -",\r
+DlgSpellProgress               : "वर्तनी की जाँच (स्पॅल-चॅक) जारी है...",\r
+DlgSpellNoMispell              : "वर्तनी की जाँच : कोई गलत वर्तनी (स्पॅलिंग) नहीं पाई गई",\r
+DlgSpellNoChanges              : "वर्तनी की जाँच :कोई शब्द नहीं बदला गया",\r
+DlgSpellOneChange              : "वर्तनी की जाँच : एक शब्द बदला गया",\r
+DlgSpellManyChanges            : "वर्तनी की जाँच : %1 शब्द बदले गये",\r
+\r
+IeSpellDownload                        : "स्पॅल-चॅकर इन्स्टाल नहीं किया गया है। क्या आप इसे डा‌उनलोड करना चाहेंगे?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "टेक्स्ट (वैल्यू)",\r
+DlgButtonType          : "प्रकार",\r
+DlgButtonTypeBtn       : "बटन",\r
+DlgButtonTypeSbm       : "सब्मिट",\r
+DlgButtonTypeRst       : "रिसेट",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "नाम",\r
+DlgCheckboxValue       : "वैल्यू",\r
+DlgCheckboxSelected    : "सॅलॅक्टॅड",\r
+\r
+// Form Dialog\r
+DlgFormName            : "नाम",\r
+DlgFormAction  : "ऍक्शन",\r
+DlgFormMethod  : "तरीका",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "नाम",\r
+DlgSelectValue         : "वैल्यू",\r
+DlgSelectSize          : "साइज़",\r
+DlgSelectLines         : "पंक्तियाँ",\r
+DlgSelectChkMulti      : "एक से ज्यादा विकल्प चुनने दें",\r
+DlgSelectOpAvail       : "उपलब्ध विकल्प",\r
+DlgSelectOpText                : "टेक्स्ट",\r
+DlgSelectOpValue       : "वैल्यू",\r
+DlgSelectBtnAdd                : "जोड़ें",\r
+DlgSelectBtnModify     : "बदलें",\r
+DlgSelectBtnUp         : "ऊपर",\r
+DlgSelectBtnDown       : "नीचे",\r
+DlgSelectBtnSetValue : "चुनी गई वैल्यू सॅट करें",\r
+DlgSelectBtnDelete     : "डिलीट",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "नाम",\r
+DlgTextareaCols        : "कॉलम",\r
+DlgTextareaRows        : "पंक्तियां",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "नाम",\r
+DlgTextValue           : "वैल्यू",\r
+DlgTextCharWidth       : "करॅक्टर की चौढ़ाई",\r
+DlgTextMaxChars                : "अधिकतम करॅक्टर",\r
+DlgTextType                    : "टाइप",\r
+DlgTextTypeText                : "टेक्स्ट",\r
+DlgTextTypePass                : "पास्वर्ड",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "नाम",\r
+DlgHiddenValue : "वैल्यू",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "बुलॅट सूची प्रॉपर्टीज़",\r
+NumberedListProp       : "अंकीय सूची प्रॉपर्टीज़",\r
+DlgLstStart                    : "प्रारम्भ",\r
+DlgLstType                     : "प्रकार",\r
+DlgLstTypeCircle       : "गोल",\r
+DlgLstTypeDisc         : "डिस्क",\r
+DlgLstTypeSquare       : "चौकॊण",\r
+DlgLstTypeNumbers      : "अंक (1, 2, 3)",\r
+DlgLstTypeLCase                : "छोटे अक्षर (a, b, c)",\r
+DlgLstTypeUCase                : "बड़े अक्षर (A, B, C)",\r
+DlgLstTypeSRoman       : "छोटे रोमन अंक (i, ii, iii)",\r
+DlgLstTypeLRoman       : "बड़े रोमन अंक (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "आम",\r
+DlgDocBackTab          : "बैक्ग्राउन्ड",\r
+DlgDocColorsTab                : "रंग और मार्जिन",\r
+DlgDocMetaTab          : "मॅटाडेटा",\r
+\r
+DlgDocPageTitle                : "पेज शीर्षक",\r
+DlgDocLangDir          : "भाषा लिखने की दिशा",\r
+DlgDocLangDirLTR       : "बायें से दायें (LTR)",\r
+DlgDocLangDirRTL       : "दायें से बायें (RTL)",\r
+DlgDocLangCode         : "भाषा कोड",\r
+DlgDocCharSet          : "करेक्टर सॅट ऍन्कोडिंग",\r
+DlgDocCharSetCE                : "मध्य यूरोपीय (Central European)",\r
+DlgDocCharSetCT                : "चीनी (Chinese Traditional Big5)",\r
+DlgDocCharSetCR                : "सिरीलिक (Cyrillic)",\r
+DlgDocCharSetGR                : "यवन (Greek)",\r
+DlgDocCharSetJP                : "जापानी (Japanese)",\r
+DlgDocCharSetKR                : "कोरीयन (Korean)",\r
+DlgDocCharSetTR                : "तुर्की (Turkish)",\r
+DlgDocCharSetUN                : "यूनीकोड (UTF-8)",\r
+DlgDocCharSetWE                : "पश्चिम यूरोपीय (Western European)",\r
+DlgDocCharSetOther     : "अन्य करेक्टर सॅट ऍन्कोडिंग",\r
+\r
+DlgDocDocType          : "डॉक्यूमॅन्ट प्रकार शीर्षक",\r
+DlgDocDocTypeOther     : "अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",\r
+DlgDocIncXHTML         : "XHTML सूचना सम्मिलित करें",\r
+DlgDocBgColor          : "बैक्ग्राउन्ड रंग",\r
+DlgDocBgImage          : "बैक्ग्राउन्ड तस्वीर URL",\r
+DlgDocBgNoScroll       : "स्क्रॉल न करने वाला बैक्ग्राउन्ड",\r
+DlgDocCText                    : "टेक्स्ट",\r
+DlgDocCLink                    : "लिंक",\r
+DlgDocCVisited         : "विज़िट किया गया लिंक",\r
+DlgDocCActive          : "सक्रिय लिंक",\r
+DlgDocMargins          : "पेज मार्जिन",\r
+DlgDocMaTop                    : "ऊपर",\r
+DlgDocMaLeft           : "बायें",\r
+DlgDocMaRight          : "दायें",\r
+DlgDocMaBottom         : "नीचे",\r
+DlgDocMeIndex          : "डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",\r
+DlgDocMeDescr          : "डॉक्यूमॅन्ट करॅक्टरन",\r
+DlgDocMeAuthor         : "लेखक",\r
+DlgDocMeCopy           : "कॉपीराइट",\r
+DlgDocPreview          : "प्रीव्यू",\r
+\r
+// Templates Dialog\r
+Templates                      : "टॅम्प्लेट",\r
+DlgTemplatesTitle      : "कन्टेन्ट टॅम्प्लेट",\r
+DlgTemplatesSelMsg     : "ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",\r
+DlgTemplatesLoading    : "टॅम्प्लेट सूची लोड की जा रही है। ज़रा ठहरें...",\r
+DlgTemplatesNoTpl      : "(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",\r
+DlgTemplatesReplace    : "मूल शब्दों को बदलें",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "FCKEditor के बारे में",\r
+DlgAboutBrowserInfoTab : "ब्राउज़र के बारे में",\r
+DlgAboutLicenseTab     : "लाइसैन्स",\r
+DlgAboutVersion                : "वर्ज़न",\r
+DlgAboutInfo           : "अधिक जानकारी के लिये यहाँ जायें:"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/hr.js b/httemplate/elements/fckeditor/editor/lang/hr.js
new file mode 100644 (file)
index 0000000..f088b10
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Croatian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Smanji trake s alatima",\r
+ToolbarExpand          : "Proširi trake s alatima",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Snimi",\r
+NewPage                                : "Nova stranica",\r
+Preview                                : "Pregledaj",\r
+Cut                                    : "Izreži",\r
+Copy                           : "Kopiraj",\r
+Paste                          : "Zalijepi",\r
+PasteText                      : "Zalijepi kao čisti tekst",\r
+PasteWord                      : "Zalijepi iz Worda",\r
+Print                          : "Ispiši",\r
+SelectAll                      : "Odaberi sve",\r
+RemoveFormat           : "Ukloni formatiranje",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Ubaci/promijeni link",\r
+RemoveLink                     : "Ukloni link",\r
+Anchor                         : "Ubaci/promijeni sidro",\r
+InsertImageLbl         : "Slika",\r
+InsertImage                    : "Ubaci/promijeni sliku",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Ubaci/promijeni Flash",\r
+InsertTableLbl         : "Tablica",\r
+InsertTable                    : "Ubaci/promijeni tablicu",\r
+InsertLineLbl          : "Linija",\r
+InsertLine                     : "Ubaci vodoravnu liniju",\r
+InsertSpecialCharLbl: "Posebni karakteri",\r
+InsertSpecialChar      : "Ubaci posebne znakove",\r
+InsertSmileyLbl                : "Smješko",\r
+InsertSmiley           : "Ubaci smješka",\r
+About                          : "O FCKeditoru",\r
+Bold                           : "Podebljaj",\r
+Italic                         : "Ukosi",\r
+Underline                      : "Potcrtano",\r
+StrikeThrough          : "Precrtano",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Lijevo poravnanje",\r
+CenterJustify          : "Središnje poravnanje",\r
+RightJustify           : "Desno poravnanje",\r
+BlockJustify           : "Blok poravnanje",\r
+DecreaseIndent         : "Pomakni ulijevo",\r
+IncreaseIndent         : "Pomakni udesno",\r
+Undo                           : "Poništi",\r
+Redo                           : "Ponovi",\r
+NumberedListLbl                : "Brojčana lista",\r
+NumberedList           : "Ubaci/ukloni brojčanu listu",\r
+BulletedListLbl                : "Obična lista",\r
+BulletedList           : "Ubaci/ukloni običnu listu",\r
+ShowTableBorders       : "Prikaži okvir tablice",\r
+ShowDetails                    : "Prikaži detalje",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Veličina",\r
+TextColor                      : "Boja teksta",\r
+BGColor                                : "Boja pozadine",\r
+Source                         : "Kôd",\r
+Find                           : "Pronađi",\r
+Replace                                : "Zamijeni",\r
+SpellCheck                     : "Provjeri pravopis",\r
+UniversalKeyboard      : "Univerzalna tipkovnica",\r
+PageBreakLbl           : "Prijelom stranice",\r
+PageBreak                      : "Ubaci prijelom stranice",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Hidden Field",\r
+Button                 : "Button",\r
+SelectionField : "Selection Field",\r
+ImageButton            : "Image Button",\r
+\r
+FitWindow              : "Povećaj veličinu editora",\r
+\r
+// Context Menu\r
+EditLink                       : "Promijeni link",\r
+CellCM                         : "Ćelija",\r
+RowCM                          : "Red",\r
+ColumnCM                       : "Kolona",\r
+InsertRow                      : "Ubaci red",\r
+DeleteRows                     : "Izbriši redove",\r
+InsertColumn           : "Ubaci kolonu",\r
+DeleteColumns          : "Izbriši kolone",\r
+InsertCell                     : "Ubaci ćelije",\r
+DeleteCells                    : "Izbriši ćelije",\r
+MergeCells                     : "Spoji ćelije",\r
+SplitCell                      : "Razdvoji ćelije",\r
+TableDelete                    : "Izbriši tablicu",\r
+CellProperties         : "Svojstva ćelije",\r
+TableProperties                : "Svojstva tablice",\r
+ImageProperties                : "Svojstva slike",\r
+FlashProperties                : "Flash svojstva",\r
+\r
+AnchorProp                     : "Svojstva sidra",\r
+ButtonProp                     : "Image Button svojstva",\r
+CheckboxProp           : "Checkbox svojstva",\r
+HiddenFieldProp                : "Hidden Field svojstva",\r
+RadioButtonProp                : "Radio Button svojstva",\r
+ImageButtonProp                : "Image Button svojstva",\r
+TextFieldProp          : "Text Field svojstva",\r
+SelectionFieldProp     : "Selection svojstva",\r
+TextareaProp           : "Textarea svojstva",\r
+FormProp                       : "Form svojstva",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Obrađujem XHTML. Molimo pričekajte...",\r
+Done                           : "Završio",\r
+PasteWordConfirm       : "Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?",\r
+NotCompatiblePaste     : "Ova naredba je dostupna samo u Internet Exploreru 5.5 ili novijem. Želite li nastaviti bez čišćenja?",\r
+UnknownToolbarItem     : "Nepoznati član trake s alatima \"%1\"",\r
+UnknownCommand         : "Nepoznata naredba \"%1\"",\r
+NotImplemented         : "Naredba nije implementirana",\r
+UnknownToolbarSet      : "Traka s alatima \"%1\" ne postoji",\r
+NoActiveX                      : "Vaše postavke pretraživača mogle bi ograničiti neke od mogućnosti editora. Morate uključiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne učinite, moguće su razliite greške tijekom rada.",\r
+BrowseServerBlocked : "Pretraivač nije moguće otvoriti. Provjerite da li je uključeno blokiranje pop-up prozora.",\r
+DialogBlocked          : "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Poništi",\r
+DlgBtnClose                    : "Zatvori",\r
+DlgBtnBrowseServer     : "Pretraži server",\r
+DlgAdvancedTag         : "Napredno",\r
+DlgOpOther                     : "<Drugo>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Molimo unesite URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nije postavljeno>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Smjer jezika",\r
+DlgGenLangDirLtr       : "S lijeva na desno (LTR)",\r
+DlgGenLangDirRtl       : "S desna na lijevo (RTL)",\r
+DlgGenLangCode         : "Kôd jezika",\r
+DlgGenAccessKey                : "Pristupna tipka",\r
+DlgGenName                     : "Naziv",\r
+DlgGenTabIndex         : "Tab Indeks",\r
+DlgGenLongDescr                : "Dugački opis URL",\r
+DlgGenClass                    : "Stylesheet klase",\r
+DlgGenTitle                    : "Advisory naslov",\r
+DlgGenContType         : "Advisory vrsta sadržaja",\r
+DlgGenLinkCharset      : "Kodna stranica povezanih resursa",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Svojstva slika",\r
+DlgImgInfoTab          : "Info slike",\r
+DlgImgBtnUpload                : "Pošalji na server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Pošalji",\r
+DlgImgAlt                      : "Alternativni tekst",\r
+DlgImgWidth                    : "Širina",\r
+DlgImgHeight           : "Visina",\r
+DlgImgLockRatio                : "Zaključaj odnos",\r
+DlgBtnResetSize                : "Obriši veličinu",\r
+DlgImgBorder           : "Okvir",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Poravnaj",\r
+DlgImgAlignLeft                : "Lijevo",\r
+DlgImgAlignAbsBottom: "Abs dolje",\r
+DlgImgAlignAbsMiddle: "Abs sredina",\r
+DlgImgAlignBaseline    : "Bazno",\r
+DlgImgAlignBottom      : "Dolje",\r
+DlgImgAlignMiddle      : "Sredina",\r
+DlgImgAlignRight       : "Desno",\r
+DlgImgAlignTextTop     : "Vrh teksta",\r
+DlgImgAlignTop         : "Vrh",\r
+DlgImgPreview          : "Pregledaj",\r
+DlgImgAlertUrl         : "Unesite URL slike",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash svojstva",\r
+DlgFlashChkPlay                : "Auto Play",\r
+DlgFlashChkLoop                : "Ponavljaj",\r
+DlgFlashChkMenu                : "Omogući Flash izbornik",\r
+DlgFlashScale          : "Omjer",\r
+DlgFlashScaleAll       : "Prikaži sve",\r
+DlgFlashScaleNoBorder  : "Bez okvira",\r
+DlgFlashScaleFit       : "Točna veličina",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Meta",\r
+\r
+DlgLnkType                     : "Link vrsta",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Sidro na ovoj stranici",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<drugo>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Odaberi sidro",\r
+DlgLnkAnchorByName     : "Po nazivu sidra",\r
+DlgLnkAnchorById       : "Po Id elementa",\r
+DlgLnkNoAnchors                : "<Nema dostupnih sidra>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail adresa",\r
+DlgLnkEMailSubject     : "Naslov",\r
+DlgLnkEMailBody                : "Sadržaj poruke",\r
+DlgLnkUpload           : "Pošalji",\r
+DlgLnkBtnUpload                : "Pošalji na server",\r
+\r
+DlgLnkTarget           : "Meta",\r
+DlgLnkTargetFrame      : "<okvir>",\r
+DlgLnkTargetPopup      : "<popup prozor>",\r
+DlgLnkTargetBlank      : "Novi prozor (_blank)",\r
+DlgLnkTargetParent     : "Roditeljski prozor (_parent)",\r
+DlgLnkTargetSelf       : "Isti prozor (_self)",\r
+DlgLnkTargetTop                : "Vršni prozor (_top)",\r
+DlgLnkTargetFrameName  : "Ime ciljnog okvira",\r
+DlgLnkPopWinName       : "Naziv popup prozora",\r
+DlgLnkPopWinFeat       : "Mogućnosti popup prozora",\r
+DlgLnkPopResize                : "Promjenljive veličine",\r
+DlgLnkPopLocation      : "Traka za lokaciju",\r
+DlgLnkPopMenu          : "Izborna traka",\r
+DlgLnkPopScroll                : "Scroll traka",\r
+DlgLnkPopStatus                : "Statusna traka",\r
+DlgLnkPopToolbar       : "Traka s alatima",\r
+DlgLnkPopFullScrn      : "Cijeli ekran (IE)",\r
+DlgLnkPopDependent     : "Ovisno (Netscape)",\r
+DlgLnkPopWidth         : "Širina",\r
+DlgLnkPopHeight                : "Visina",\r
+DlgLnkPopLeft          : "Lijeva pozicija",\r
+DlgLnkPopTop           : "Gornja pozicija",\r
+\r
+DlnLnkMsgNoUrl         : "Molimo upišite URL link",\r
+DlnLnkMsgNoEMail       : "Molimo upišite e-mail adresu",\r
+DlnLnkMsgNoAnchor      : "Molimo odaberite sidro",\r
+DlnLnkMsgInvPopName    : "Ime popup prozora mora početi sa slovom i ne smije sadržavati razmake",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Odaberite boju",\r
+DlgColorBtnClear       : "Obriši",\r
+DlgColorHighlight      : "Osvijetli",\r
+DlgColorSelected       : "Odaberi",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Ubaci smješka",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Odaberite posebni karakter",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Svojstva tablice",\r
+DlgTableRows           : "Redova",\r
+DlgTableColumns                : "Kolona",\r
+DlgTableBorder         : "Veličina okvira",\r
+DlgTableAlign          : "Poravnanje",\r
+DlgTableAlignNotSet    : "<nije postavljeno>",\r
+DlgTableAlignLeft      : "Lijevo",\r
+DlgTableAlignCenter    : "Središnje",\r
+DlgTableAlignRight     : "Desno",\r
+DlgTableWidth          : "Širina",\r
+DlgTableWidthPx                : "piksela",\r
+DlgTableWidthPc                : "postotaka",\r
+DlgTableHeight         : "Visina",\r
+DlgTableCellSpace      : "Prostornost ćelija",\r
+DlgTableCellPad                : "Razmak ćelija",\r
+DlgTableCaption                : "Naslov",\r
+DlgTableSummary                : "Sažetak",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Svojstva ćelije",\r
+DlgCellWidth           : "Širina",\r
+DlgCellWidthPx         : "piksela",\r
+DlgCellWidthPc         : "postotaka",\r
+DlgCellHeight          : "Visina",\r
+DlgCellWordWrap                : "Word Wrap",\r
+DlgCellWordWrapNotSet  : "<nije postavljeno>",\r
+DlgCellWordWrapYes     : "Da",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Vodoravno poravnanje",\r
+DlgCellHorAlignNotSet  : "<nije postavljeno>",\r
+DlgCellHorAlignLeft    : "Lijevo",\r
+DlgCellHorAlignCenter  : "Središnje",\r
+DlgCellHorAlignRight: "Desno",\r
+DlgCellVerAlign                : "Okomito poravnanje",\r
+DlgCellVerAlignNotSet  : "<nije postavljeno>",\r
+DlgCellVerAlignTop     : "Gornje",\r
+DlgCellVerAlignMiddle  : "Srednišnje",\r
+DlgCellVerAlignBottom  : "Donje",\r
+DlgCellVerAlignBaseline        : "Bazno",\r
+DlgCellRowSpan         : "Spajanje redova",\r
+DlgCellCollSpan                : "Spajanje kolona",\r
+DlgCellBackColor       : "Boja pozadine",\r
+DlgCellBorderColor     : "Boja okvira",\r
+DlgCellBtnSelect       : "Odaberi...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Pronađi",\r
+DlgFindFindBtn         : "Pronađi",\r
+DlgFindNotFoundMsg     : "Traženi tekst nije pronađen.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Zamijeni",\r
+DlgReplaceFindLbl              : "Pronađi:",\r
+DlgReplaceReplaceLbl   : "Zamijeni s:",\r
+DlgReplaceCaseChk              : "Usporedi mala/velika slova",\r
+DlgReplaceReplaceBtn   : "Zamijeni",\r
+DlgReplaceReplAllBtn   : "Zamijeni sve",\r
+DlgReplaceWordChk              : "Usporedi cijele riječi",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).",\r
+PasteErrorCopy : "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).",\r
+\r
+PasteAsText            : "Zalijepi kao čisti tekst",\r
+PasteFromWord  : "Zalijepi iz Worda",\r
+\r
+DlgPasteMsg2   : "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Zanemari definiciju vrste fonta",\r
+DlgPasteRemoveStyles   : "Ukloni definicije stilova",\r
+DlgPasteCleanBox               : "Očisti okvir",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatski",\r
+ColorMoreColors        : "Više boja...",\r
+\r
+// Document Properties\r
+DocProps               : "Svojstva dokumenta",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Svojstva sidra",\r
+DlgAnchorName          : "Ime sidra",\r
+DlgAnchorErrorName     : "Molimo unesite ime sidra",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nije u rječniku",\r
+DlgSpellChangeTo               : "Promijeni u",\r
+DlgSpellBtnIgnore              : "Zanemari",\r
+DlgSpellBtnIgnoreAll   : "Zanemari sve",\r
+DlgSpellBtnReplace             : "Zamijeni",\r
+DlgSpellBtnReplaceAll  : "Zamijeni sve",\r
+DlgSpellBtnUndo                        : "Vrati",\r
+DlgSpellNoSuggestions  : "-Nema preporuke-",\r
+DlgSpellProgress               : "Provjera u tijeku...",\r
+DlgSpellNoMispell              : "Provjera završena: Nema grešaka",\r
+DlgSpellNoChanges              : "Provjera završena: Nije napravljena promjena",\r
+DlgSpellOneChange              : "Provjera završena: Jedna riječ promjenjena",\r
+DlgSpellManyChanges            : "Provjera završena: Promijenjeno %1 riječi",\r
+\r
+IeSpellDownload                        : "Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst (vrijednost)",\r
+DlgButtonType          : "Vrsta",\r
+DlgButtonTypeBtn       : "Gumb",\r
+DlgButtonTypeSbm       : "Pošalji",\r
+DlgButtonTypeRst       : "Poništi",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Ime",\r
+DlgCheckboxValue       : "Vrijednost",\r
+DlgCheckboxSelected    : "Odabrano",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Ime",\r
+DlgFormAction  : "Akcija",\r
+DlgFormMethod  : "Metoda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Ime",\r
+DlgSelectValue         : "Vrijednost",\r
+DlgSelectSize          : "Veličina",\r
+DlgSelectLines         : "linija",\r
+DlgSelectChkMulti      : "Dozvoli višestruki odabir",\r
+DlgSelectOpAvail       : "Dostupne opcije",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Vrijednost",\r
+DlgSelectBtnAdd                : "Dodaj",\r
+DlgSelectBtnModify     : "Promijeni",\r
+DlgSelectBtnUp         : "Gore",\r
+DlgSelectBtnDown       : "Dolje",\r
+DlgSelectBtnSetValue : "Postavi kao odabranu vrijednost",\r
+DlgSelectBtnDelete     : "Obriši",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Ime",\r
+DlgTextareaCols        : "Kolona",\r
+DlgTextareaRows        : "Redova",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Ime",\r
+DlgTextValue           : "Vrijednost",\r
+DlgTextCharWidth       : "Širina",\r
+DlgTextMaxChars                : "Najviše karaktera",\r
+DlgTextType                    : "Vrsta",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Šifra",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Ime",\r
+DlgHiddenValue : "Vrijednost",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Svojstva liste",\r
+NumberedListProp       : "Svojstva brojčane liste",\r
+DlgLstStart                    : "Početak",\r
+DlgLstType                     : "Vrsta",\r
+DlgLstTypeCircle       : "Krug",\r
+DlgLstTypeDisc         : "Disk",\r
+DlgLstTypeSquare       : "Kvadrat",\r
+DlgLstTypeNumbers      : "Brojevi (1, 2, 3)",\r
+DlgLstTypeLCase                : "Mala slova (a, b, c)",\r
+DlgLstTypeUCase                : "Velika slova (A, B, C)",\r
+DlgLstTypeSRoman       : "Male rimske brojke (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Velike rimske brojke (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Općenito",\r
+DlgDocBackTab          : "Pozadina",\r
+DlgDocColorsTab                : "Boje i margine",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Naslov stranice",\r
+DlgDocLangDir          : "Smjer jezika",\r
+DlgDocLangDirLTR       : "S lijeva na desno",\r
+DlgDocLangDirRTL       : "S desna na lijevo",\r
+DlgDocLangCode         : "Kôd jezika",\r
+DlgDocCharSet          : "Enkodiranje znakova",\r
+DlgDocCharSetCE                : "Središnja Europa",\r
+DlgDocCharSetCT                : "Tradicionalna kineska (Big5)",\r
+DlgDocCharSetCR                : "Ćirilica",\r
+DlgDocCharSetGR                : "Grčka",\r
+DlgDocCharSetJP                : "Japanska",\r
+DlgDocCharSetKR                : "Koreanska",\r
+DlgDocCharSetTR                : "Turska",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Zapadna Europa",\r
+DlgDocCharSetOther     : "Ostalo enkodiranje znakova",\r
+\r
+DlgDocDocType          : "Zaglavlje vrste dokumenta",\r
+DlgDocDocTypeOther     : "Ostalo zaglavlje vrste dokumenta",\r
+DlgDocIncXHTML         : "Ubaci XHTML deklaracije",\r
+DlgDocBgColor          : "Boja pozadine",\r
+DlgDocBgImage          : "URL slike pozadine",\r
+DlgDocBgNoScroll       : "Pozadine se ne pomiče",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Posjećeni link",\r
+DlgDocCActive          : "Aktivni link",\r
+DlgDocMargins          : "Margine stranice",\r
+DlgDocMaTop                    : "Vrh",\r
+DlgDocMaLeft           : "Lijevo",\r
+DlgDocMaRight          : "Desno",\r
+DlgDocMaBottom         : "Dolje",\r
+DlgDocMeIndex          : "Ključne riječi dokumenta (odvojene zarezom)",\r
+DlgDocMeDescr          : "Opis dokumenta",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Autorska prava",\r
+DlgDocPreview          : "Pregledaj",\r
+\r
+// Templates Dialog\r
+Templates                      : "Predlošci",\r
+DlgTemplatesTitle      : "Predlošci sadržaja",\r
+DlgTemplatesSelMsg     : "Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj će biti izgubljen):",\r
+DlgTemplatesLoading    : "Učitavam listu predložaka. Molimo pričekajte...",\r
+DlgTemplatesNoTpl      : "(Nema definiranih predložaka)",\r
+DlgTemplatesReplace    : "Zamijeni trenutne sadržaje",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "O FCKEditoru",\r
+DlgAboutBrowserInfoTab : "Podaci o pretraživaču",\r
+DlgAboutLicenseTab     : "Licenca",\r
+DlgAboutVersion                : "inačica",\r
+DlgAboutInfo           : "Za više informacija posjetite"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/hu.js b/httemplate/elements/fckeditor/editor/lang/hu.js
new file mode 100644 (file)
index 0000000..73b912c
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Hungarian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Eszköztár elrejtése",\r
+ToolbarExpand          : "Eszköztár megjelenítése",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Mentés",\r
+NewPage                                : "Új oldal",\r
+Preview                                : "Előnézet",\r
+Cut                                    : "Kivágás",\r
+Copy                           : "Másolás",\r
+Paste                          : "Beillesztés",\r
+PasteText                      : "Beillesztés formázás nélkül",\r
+PasteWord                      : "Beillesztés Word-ből",\r
+Print                          : "Nyomtatás",\r
+SelectAll                      : "Mindent kijelöl",\r
+RemoveFormat           : "Formázás eltávolítása",\r
+InsertLinkLbl          : "Hivatkozás",\r
+InsertLink                     : "Hivatkozás beillesztése/módosítása",\r
+RemoveLink                     : "Hivatkozás törlése",\r
+Anchor                         : "Horgony beillesztése/szerkesztése",\r
+InsertImageLbl         : "Kép",\r
+InsertImage                    : "Kép beillesztése/módosítása",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash beillesztése, módosítása",\r
+InsertTableLbl         : "Táblázat",\r
+InsertTable                    : "Táblázat beillesztése/módosítása",\r
+InsertLineLbl          : "Vonal",\r
+InsertLine                     : "Elválasztóvonal beillesztése",\r
+InsertSpecialCharLbl: "Speciális karakter",\r
+InsertSpecialChar      : "Speciális karakter beillesztése",\r
+InsertSmileyLbl                : "Hangulatjelek",\r
+InsertSmiley           : "Hangulatjelek beillesztése",\r
+About                          : "FCKeditor névjegy",\r
+Bold                           : "Félkövér",\r
+Italic                         : "Dőlt",\r
+Underline                      : "Aláhúzott",\r
+StrikeThrough          : "Áthúzott",\r
+Subscript                      : "Alsó index",\r
+Superscript                    : "Felső index",\r
+LeftJustify                    : "Balra",\r
+CenterJustify          : "Középre",\r
+RightJustify           : "Jobbra",\r
+BlockJustify           : "Sorkizárt",\r
+DecreaseIndent         : "Behúzás csökkentése",\r
+IncreaseIndent         : "Behúzás növelése",\r
+Undo                           : "Visszavonás",\r
+Redo                           : "Ismétlés",\r
+NumberedListLbl                : "Számozás",\r
+NumberedList           : "Számozás beillesztése/törlése",\r
+BulletedListLbl                : "Felsorolás",\r
+BulletedList           : "Felsorolás beillesztése/törlése",\r
+ShowTableBorders       : "Táblázat szegély mutatása",\r
+ShowDetails                    : "Részletek mutatása",\r
+Style                          : "Stílus",\r
+FontFormat                     : "Formátum",\r
+Font                           : "Betűtípus",\r
+FontSize                       : "Méret",\r
+TextColor                      : "Betűszín",\r
+BGColor                                : "Háttérszín",\r
+Source                         : "Forráskód",\r
+Find                           : "Keresés",\r
+Replace                                : "Csere",\r
+SpellCheck                     : "Helyesírás-ellenőrzés",\r
+UniversalKeyboard      : "Univerzális billentyűzet",\r
+PageBreakLbl           : "Oldaltörés",\r
+PageBreak                      : "Oldaltörés beillesztése",\r
+\r
+Form                   : "Űrlap",\r
+Checkbox               : "Jelölőnégyzet",\r
+RadioButton            : "Választógomb",\r
+TextField              : "Szövegmező",\r
+Textarea               : "Szövegterület",\r
+HiddenField            : "Rejtettmező",\r
+Button                 : "Gomb",\r
+SelectionField : "Legördülő lista",\r
+ImageButton            : "Képgomb",\r
+\r
+FitWindow              : "Maximalizálás",\r
+\r
+// Context Menu\r
+EditLink                       : "Hivatkozás módosítása",\r
+CellCM                         : "Cella",\r
+RowCM                          : "Sor",\r
+ColumnCM                       : "Oszlop",\r
+InsertRow                      : "Sor beszúrása",\r
+DeleteRows                     : "Sorok törlése",\r
+InsertColumn           : "Oszlop beszúrása",\r
+DeleteColumns          : "Oszlopok törlése",\r
+InsertCell                     : "Cella beszúrása",\r
+DeleteCells                    : "Cellák törlése",\r
+MergeCells                     : "Cellák egyesítése",\r
+SplitCell                      : "Cella szétválasztása",\r
+TableDelete                    : "Táblázat törlése",\r
+CellProperties         : "Cella tulajdonságai",\r
+TableProperties                : "Táblázat tulajdonságai",\r
+ImageProperties                : "Kép tulajdonságai",\r
+FlashProperties                : "Flash tulajdonságai",\r
+\r
+AnchorProp                     : "Horgony tulajdonságai",\r
+ButtonProp                     : "Gomb tulajdonságai",\r
+CheckboxProp           : "Jelölőnégyzet tulajdonságai",\r
+HiddenFieldProp                : "Rejtett mező tulajdonságai",\r
+RadioButtonProp                : "Választógomb tulajdonságai",\r
+ImageButtonProp                : "Képgomb tulajdonságai",\r
+TextFieldProp          : "Szövegmező tulajdonságai",\r
+SelectionFieldProp     : "Legördülő lista tulajdonságai",\r
+TextareaProp           : "Szövegterület tulajdonságai",\r
+FormProp                       : "Űrlap tulajdonságai",\r
+\r
+FontFormats                    : "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML feldolgozása. Kérem várjon...",\r
+Done                           : "Kész",\r
+PasteWordConfirm       : "A beilleszteni kívánt szöveg Word-ből van másolva. El kívánja távolítani a formázást a beillesztés előtt?",\r
+NotCompatiblePaste     : "Ez a parancs csak Internet Explorer 5.5 verziótól használható. Megpróbálja beilleszteni a szöveget az eredeti formázással?",\r
+UnknownToolbarItem     : "Ismeretlen eszköztár elem \"%1\"",\r
+UnknownCommand         : "Ismeretlen parancs \"%1\"",\r
+NotImplemented         : "A parancs nem hajtható végre",\r
+UnknownToolbarSet      : "Az eszközkészlet \"%1\" nem létezik",\r
+NoActiveX                      : "A böngésző biztonsági beállításai korlátozzák a szerkesztő lehetőségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Ettől függetlenül előfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.",\r
+BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészőt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",\r
+DialogBlocked          : "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Rendben",\r
+DlgBtnCancel           : "Mégsem",\r
+DlgBtnClose                    : "Bezárás",\r
+DlgBtnBrowseServer     : "Böngészés a szerveren",\r
+DlgAdvancedTag         : "További opciók",\r
+DlgOpOther                     : "Egyéb",\r
+DlgInfoTab                     : "Alaptulajdonságok",\r
+DlgAlertUrl                    : "Illessze be a webcímet",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nincs beállítva>",\r
+DlgGenId                       : "Azonosító",\r
+DlgGenLangDir          : "Írás iránya",\r
+DlgGenLangDirLtr       : "Balról jobbra",\r
+DlgGenLangDirRtl       : "Jobbról balra",\r
+DlgGenLangCode         : "Nyelv kódja",\r
+DlgGenAccessKey                : "Billentyűkombináció",\r
+DlgGenName                     : "Név",\r
+DlgGenTabIndex         : "Tabulátor index",\r
+DlgGenLongDescr                : "Részletes leírás webcíme",\r
+DlgGenClass                    : "Stíluskészlet",\r
+DlgGenTitle                    : "Súgócimke",\r
+DlgGenContType         : "Súgó tartalomtípusa",\r
+DlgGenLinkCharset      : "Hivatkozott tartalom kódlapja",\r
+DlgGenStyle                    : "Stílus",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Kép tulajdonságai",\r
+DlgImgInfoTab          : "Alaptulajdonságok",\r
+DlgImgBtnUpload                : "Küldés a szerverre",\r
+DlgImgURL                      : "Hivatkozás",\r
+DlgImgUpload           : "Feltöltés",\r
+DlgImgAlt                      : "Buborék szöveg",\r
+DlgImgWidth                    : "Szélesség",\r
+DlgImgHeight           : "Magasság",\r
+DlgImgLockRatio                : "Arány megtartása",\r
+DlgBtnResetSize                : "Eredeti méret",\r
+DlgImgBorder           : "Keret",\r
+DlgImgHSpace           : "Vízsz. táv",\r
+DlgImgVSpace           : "Függ. táv",\r
+DlgImgAlign                    : "Igazítás",\r
+DlgImgAlignLeft                : "Bal",\r
+DlgImgAlignAbsBottom: "Legaljára",\r
+DlgImgAlignAbsMiddle: "Közepére",\r
+DlgImgAlignBaseline    : "Alapvonalhoz",\r
+DlgImgAlignBottom      : "Aljára",\r
+DlgImgAlignMiddle      : "Középre",\r
+DlgImgAlignRight       : "Jobbra",\r
+DlgImgAlignTextTop     : "Szöveg tetejére",\r
+DlgImgAlignTop         : "Tetejére",\r
+DlgImgPreview          : "Előnézet",\r
+DlgImgAlertUrl         : "Töltse ki a kép webcímét",\r
+DlgImgLinkTab          : "Hivatkozás",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash tulajdonságai",\r
+DlgFlashChkPlay                : "Automata lejátszás",\r
+DlgFlashChkLoop                : "Folyamatosan",\r
+DlgFlashChkMenu                : "Flash menü engedélyezése",\r
+DlgFlashScale          : "Méretezés",\r
+DlgFlashScaleAll       : "Mindent mutat",\r
+DlgFlashScaleNoBorder  : "Keret nélkül",\r
+DlgFlashScaleFit       : "Teljes kitöltés",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Hivatkozás tulajdonságai",\r
+DlgLnkInfoTab          : "Alaptulajdonságok",\r
+DlgLnkTargetTab                : "Megjelenítés",\r
+\r
+DlgLnkType                     : "Hivatkozás típusa",\r
+DlgLnkTypeURL          : "Webcím",\r
+DlgLnkTypeAnchor       : "Horgony az oldalon",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<más>",\r
+DlgLnkURL                      : "Webcím",\r
+DlgLnkAnchorSel                : "Horgony választása",\r
+DlgLnkAnchorByName     : "Horgony név szerint",\r
+DlgLnkAnchorById       : "Azonosító szerint",\r
+DlgLnkNoAnchors                : "<Nincs horgony a dokumentumban>",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail cím",\r
+DlgLnkEMailSubject     : "Üzenet tárgya",\r
+DlgLnkEMailBody                : "Üzenet",\r
+DlgLnkUpload           : "Feltöltés",\r
+DlgLnkBtnUpload                : "Küldés a szerverre",\r
+\r
+DlgLnkTarget           : "Tartalom megjelenítése",\r
+DlgLnkTargetFrame      : "<keretben>",\r
+DlgLnkTargetPopup      : "<felugró ablakban>",\r
+DlgLnkTargetBlank      : "Új ablakban (_blank)",\r
+DlgLnkTargetParent     : "Szülő ablakban (_parent)",\r
+DlgLnkTargetSelf       : "Azonos ablakban (_self)",\r
+DlgLnkTargetTop                : "Legfelső ablakban (_top)",\r
+DlgLnkTargetFrameName  : "Keret neve",\r
+DlgLnkPopWinName       : "Felugró ablak neve",\r
+DlgLnkPopWinFeat       : "Felugró ablak jellemzői",\r
+DlgLnkPopResize                : "Méretezhető",\r
+DlgLnkPopLocation      : "Címsor",\r
+DlgLnkPopMenu          : "Menü sor",\r
+DlgLnkPopScroll                : "Gördítősáv",\r
+DlgLnkPopStatus                : "Állapotsor",\r
+DlgLnkPopToolbar       : "Eszköztár",\r
+DlgLnkPopFullScrn      : "Teljes képernyő (csak IE)",\r
+DlgLnkPopDependent     : "Szülőhöz kapcsolt (csak Netscape)",\r
+DlgLnkPopWidth         : "Szélesség",\r
+DlgLnkPopHeight                : "Magasság",\r
+DlgLnkPopLeft          : "Bal pozíció",\r
+DlgLnkPopTop           : "Felső pozíció",\r
+\r
+DlnLnkMsgNoUrl         : "Adja meg a hivatkozás webcímét",\r
+DlnLnkMsgNoEMail       : "Adja meg az E-Mail címet",\r
+DlnLnkMsgNoAnchor      : "Válasszon egy horgonyt",\r
+DlnLnkMsgInvPopName    : "A felbukkanó ablak neve alfanumerikus karakterrel kezdôdjön, valamint ne tartalmazzon szóközt",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Színválasztás",\r
+DlgColorBtnClear       : "Törlés",\r
+DlgColorHighlight      : "Előnézet",\r
+DlgColorSelected       : "Kiválasztott",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Hangulatjel beszúrása",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Speciális karakter választása",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Táblázat tulajdonságai",\r
+DlgTableRows           : "Sorok",\r
+DlgTableColumns                : "Oszlopok",\r
+DlgTableBorder         : "Szegélyméret",\r
+DlgTableAlign          : "Igazítás",\r
+DlgTableAlignNotSet    : "<Nincs beállítva>",\r
+DlgTableAlignLeft      : "Balra",\r
+DlgTableAlignCenter    : "Középre",\r
+DlgTableAlignRight     : "Jobbra",\r
+DlgTableWidth          : "Szélesség",\r
+DlgTableWidthPx                : "képpont",\r
+DlgTableWidthPc                : "százalék",\r
+DlgTableHeight         : "Magasság",\r
+DlgTableCellSpace      : "Cella térköz",\r
+DlgTableCellPad                : "Cella belső margó",\r
+DlgTableCaption                : "Felirat",\r
+DlgTableSummary                : "Leírás",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cella tulajdonságai",\r
+DlgCellWidth           : "Szélesség",\r
+DlgCellWidthPx         : "képpont",\r
+DlgCellWidthPc         : "százalék",\r
+DlgCellHeight          : "Magasság",\r
+DlgCellWordWrap                : "Sortörés",\r
+DlgCellWordWrapNotSet  : "<Nincs beállítva>",\r
+DlgCellWordWrapYes     : "Igen",\r
+DlgCellWordWrapNo      : "Nem",\r
+DlgCellHorAlign                : "Vízsz. igazítás",\r
+DlgCellHorAlignNotSet  : "<Nincs beállítva>",\r
+DlgCellHorAlignLeft    : "Balra",\r
+DlgCellHorAlignCenter  : "Középre",\r
+DlgCellHorAlignRight: "Jobbra",\r
+DlgCellVerAlign                : "Függ. igazítás",\r
+DlgCellVerAlignNotSet  : "<Nincs beállítva>",\r
+DlgCellVerAlignTop     : "Tetejére",\r
+DlgCellVerAlignMiddle  : "Középre",\r
+DlgCellVerAlignBottom  : "Aljára",\r
+DlgCellVerAlignBaseline        : "Egyvonalba",\r
+DlgCellRowSpan         : "Sorok egyesítése",\r
+DlgCellCollSpan                : "Oszlopok egyesítése",\r
+DlgCellBackColor       : "Háttérszín",\r
+DlgCellBorderColor     : "Szegélyszín",\r
+DlgCellBtnSelect       : "Kiválasztás...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Keresés",\r
+DlgFindFindBtn         : "Keresés",\r
+DlgFindNotFoundMsg     : "A keresett szöveg nem található.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Csere",\r
+DlgReplaceFindLbl              : "Keresett szöveg:",\r
+DlgReplaceReplaceLbl   : "Csere erre:",\r
+DlgReplaceCaseChk              : "kis- és nagybetű megkülönböztetése",\r
+DlgReplaceReplaceBtn   : "Csere",\r
+DlgReplaceReplAllBtn   : "Az összes cseréje",\r
+DlgReplaceWordChk              : "csak ha ez a teljes szó",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",\r
+PasteErrorCopy : "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",\r
+\r
+PasteAsText            : "Beillesztés formázatlan szövegként",\r
+PasteFromWord  : "Beillesztés Word-ből",\r
+\r
+DlgPasteMsg2   : "Másolja be az alábbi mezőbe a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Betű formázások megszüntetése",\r
+DlgPasteRemoveStyles   : "Stílusok eltávolítása",\r
+DlgPasteCleanBox               : "Törlés",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatikus",\r
+ColorMoreColors        : "További színek...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentum tulajdonságai",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Horgony tulajdonságai",\r
+DlgAnchorName          : "Horgony neve",\r
+DlgAnchorErrorName     : "Kérem adja meg a horgony nevét",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nincs a szótárban",\r
+DlgSpellChangeTo               : "Módosítás",\r
+DlgSpellBtnIgnore              : "Kihagyja",\r
+DlgSpellBtnIgnoreAll   : "Mindet kihagyja",\r
+DlgSpellBtnReplace             : "Csere",\r
+DlgSpellBtnReplaceAll  : "Összes cseréje",\r
+DlgSpellBtnUndo                        : "Visszavonás",\r
+DlgSpellNoSuggestions  : "Nincs javaslat",\r
+DlgSpellProgress               : "Helyesírás-ellenőrzés folyamatban...",\r
+DlgSpellNoMispell              : "Helyesírás-ellenőrzés kész: Nem találtam hibát",\r
+DlgSpellNoChanges              : "Helyesírás-ellenőrzés kész: Nincs változtatott szó",\r
+DlgSpellOneChange              : "Helyesírás-ellenőrzés kész: Egy szó cserélve",\r
+DlgSpellManyChanges            : "Helyesírás-ellenőrzés kész: %1 szó cserélve",\r
+\r
+IeSpellDownload                        : "A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Szöveg (Érték)",\r
+DlgButtonType          : "Típus",\r
+DlgButtonTypeBtn       : "Gomb",\r
+DlgButtonTypeSbm       : "Küldés",\r
+DlgButtonTypeRst       : "Alaphelyzet",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Név",\r
+DlgCheckboxValue       : "Érték",\r
+DlgCheckboxSelected    : "Kiválasztott",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Név",\r
+DlgFormAction  : "Adatfeldolgozást végző hivatkozás",\r
+DlgFormMethod  : "Adatküldés módja",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Név",\r
+DlgSelectValue         : "Érték",\r
+DlgSelectSize          : "Méret",\r
+DlgSelectLines         : "sor",\r
+DlgSelectChkMulti      : "több sor is kiválasztható",\r
+DlgSelectOpAvail       : "Elérhető opciók",\r
+DlgSelectOpText                : "Szöveg",\r
+DlgSelectOpValue       : "Érték",\r
+DlgSelectBtnAdd                : "Hozzáad",\r
+DlgSelectBtnModify     : "Módosít",\r
+DlgSelectBtnUp         : "Fel",\r
+DlgSelectBtnDown       : "Le",\r
+DlgSelectBtnSetValue : "Legyen az alapértelmezett érték",\r
+DlgSelectBtnDelete     : "Töröl",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Név",\r
+DlgTextareaCols        : "Karakterek száma egy sorban",\r
+DlgTextareaRows        : "Sorok száma",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Név",\r
+DlgTextValue           : "Érték",\r
+DlgTextCharWidth       : "Megjelenített karakterek száma",\r
+DlgTextMaxChars                : "Maximális karakterszám",\r
+DlgTextType                    : "Típus",\r
+DlgTextTypeText                : "Szöveg",\r
+DlgTextTypePass                : "Jelszó",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Név",\r
+DlgHiddenValue : "Érték",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Felsorolás tulajdonságai",\r
+NumberedListProp       : "Számozás tulajdonságai",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Formátum",\r
+DlgLstTypeCircle       : "Kör",\r
+DlgLstTypeDisc         : "Lemez",\r
+DlgLstTypeSquare       : "Négyzet",\r
+DlgLstTypeNumbers      : "Számok (1, 2, 3)",\r
+DlgLstTypeLCase                : "Kisbetűk (a, b, c)",\r
+DlgLstTypeUCase                : "Nagybetűk (A, B, C)",\r
+DlgLstTypeSRoman       : "Kis római számok (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Nagy római számok (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Általános",\r
+DlgDocBackTab          : "Háttér",\r
+DlgDocColorsTab                : "Színek és margók",\r
+DlgDocMetaTab          : "Meta adatok",\r
+\r
+DlgDocPageTitle                : "Oldalcím",\r
+DlgDocLangDir          : "Írás iránya",\r
+DlgDocLangDirLTR       : "Balról jobbra",\r
+DlgDocLangDirRTL       : "Jobbról balra",\r
+DlgDocLangCode         : "Nyelv kód",\r
+DlgDocCharSet          : "Karakterkódolás",\r
+DlgDocCharSetCE                : "Közép-Európai",\r
+DlgDocCharSetCT                : "Kínai Tradicionális (Big5)",\r
+DlgDocCharSetCR                : "Cyrill",\r
+DlgDocCharSetGR                : "Görög",\r
+DlgDocCharSetJP                : "Japán",\r
+DlgDocCharSetKR                : "Koreai",\r
+DlgDocCharSetTR                : "Török",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Nyugat-Európai",\r
+DlgDocCharSetOther     : "Más karakterkódolás",\r
+\r
+DlgDocDocType          : "Dokumentum típus fejléc",\r
+DlgDocDocTypeOther     : "Más dokumentum típus fejléc",\r
+DlgDocIncXHTML         : "XHTML deklarációk beillesztése",\r
+DlgDocBgColor          : "Háttérszín",\r
+DlgDocBgImage          : "Háttérkép cím",\r
+DlgDocBgNoScroll       : "Nem gördíthető háttér",\r
+DlgDocCText                    : "Szöveg",\r
+DlgDocCLink                    : "Cím",\r
+DlgDocCVisited         : "Látogatott cím",\r
+DlgDocCActive          : "Aktív cím",\r
+DlgDocMargins          : "Oldal margók",\r
+DlgDocMaTop                    : "Felső",\r
+DlgDocMaLeft           : "Bal",\r
+DlgDocMaRight          : "Jobb",\r
+DlgDocMaBottom         : "Alsó",\r
+DlgDocMeIndex          : "Dokumentum keresőszavak (vesszővel elválasztva)",\r
+DlgDocMeDescr          : "Dokumentum leírás",\r
+DlgDocMeAuthor         : "Szerző",\r
+DlgDocMeCopy           : "Szerzői jog",\r
+DlgDocPreview          : "Előnézet",\r
+\r
+// Templates Dialog\r
+Templates                      : "Sablonok",\r
+DlgTemplatesTitle      : "Elérhető sablonok",\r
+DlgTemplatesSelMsg     : "Válassza ki melyik sablon nyíljon meg a szerkesztőben<br>(a jelenlegi tartalom elveszik):",\r
+DlgTemplatesLoading    : "Sablon lista betöltése. Kis türelmet...",\r
+DlgTemplatesNoTpl      : "(Nincs sablon megadva)",\r
+DlgTemplatesReplace    : "Kicseréli a jelenlegi tartalmat",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Névjegy",\r
+DlgAboutBrowserInfoTab : "Böngésző információ",\r
+DlgAboutLicenseTab     : "Licensz",\r
+DlgAboutVersion                : "verzió",\r
+DlgAboutInfo           : "További információkért látogasson el ide:"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/it.js b/httemplate/elements/fckeditor/editor/lang/it.js
new file mode 100644 (file)
index 0000000..a3dee1b
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Italian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Nascondi la barra degli strumenti",\r
+ToolbarExpand          : "Mostra la barra degli strumenti",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Salva",\r
+NewPage                                : "Nuova pagina vuota",\r
+Preview                                : "Anteprima",\r
+Cut                                    : "Taglia",\r
+Copy                           : "Copia",\r
+Paste                          : "Incolla",\r
+PasteText                      : "Incolla come testo semplice",\r
+PasteWord                      : "Incolla da Word",\r
+Print                          : "Stampa",\r
+SelectAll                      : "Seleziona tutto",\r
+RemoveFormat           : "Elimina formattazione",\r
+InsertLinkLbl          : "Collegamento",\r
+InsertLink                     : "Inserisci/Modifica collegamento",\r
+RemoveLink                     : "Elimina collegamento",\r
+Anchor                         : "Inserisci/Modifica Ancora",\r
+InsertImageLbl         : "Immagine",\r
+InsertImage                    : "Inserisci/Modifica immagine",\r
+InsertFlashLbl         : "Oggetto Flash",\r
+InsertFlash                    : "Inserisci/Modifica Oggetto Flash",\r
+InsertTableLbl         : "Tabella",\r
+InsertTable                    : "Inserisci/Modifica tabella",\r
+InsertLineLbl          : "Riga orizzontale",\r
+InsertLine                     : "Inserisci riga orizzontale",\r
+InsertSpecialCharLbl: "Caratteri speciali",\r
+InsertSpecialChar      : "Inserisci carattere speciale",\r
+InsertSmileyLbl                : "Emoticon",\r
+InsertSmiley           : "Inserisci emoticon",\r
+About                          : "Informazioni su FCKeditor",\r
+Bold                           : "Grassetto",\r
+Italic                         : "Corsivo",\r
+Underline                      : "Sottolineato",\r
+StrikeThrough          : "Barrato",\r
+Subscript                      : "Pedice",\r
+Superscript                    : "Apice",\r
+LeftJustify                    : "Allinea a sinistra",\r
+CenterJustify          : "Centra",\r
+RightJustify           : "Allinea a destra",\r
+BlockJustify           : "Giustifica",\r
+DecreaseIndent         : "Riduci rientro",\r
+IncreaseIndent         : "Aumenta rientro",\r
+Undo                           : "Annulla",\r
+Redo                           : "Ripristina",\r
+NumberedListLbl                : "Elenco numerato",\r
+NumberedList           : "Inserisci/Modifica elenco numerato",\r
+BulletedListLbl                : "Elenco puntato",\r
+BulletedList           : "Inserisci/Modifica elenco puntato",\r
+ShowTableBorders       : "Mostra bordi tabelle",\r
+ShowDetails                    : "Mostra dettagli",\r
+Style                          : "Stile",\r
+FontFormat                     : "Formato",\r
+Font                           : "Font",\r
+FontSize                       : "Dimensione",\r
+TextColor                      : "Colore testo",\r
+BGColor                                : "Colore sfondo",\r
+Source                         : "Codice Sorgente",\r
+Find                           : "Trova",\r
+Replace                                : "Sostituisci",\r
+SpellCheck                     : "Correttore ortografico",\r
+UniversalKeyboard      : "Tastiera universale",\r
+PageBreakLbl           : "Interruzione di pagina",\r
+PageBreak                      : "Inserisci interruzione di pagina",\r
+\r
+Form                   : "Modulo",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Radio Button",\r
+TextField              : "Campo di testo",\r
+Textarea               : "Area di testo",\r
+HiddenField            : "Campo nascosto",\r
+Button                 : "Bottone",\r
+SelectionField : "Menu di selezione",\r
+ImageButton            : "Bottone immagine",\r
+\r
+FitWindow              : "Massimizza l'area dell'editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Modifica collegamento",\r
+CellCM                         : "Cella",\r
+RowCM                          : "Riga",\r
+ColumnCM                       : "Colonna",\r
+InsertRow                      : "Inserisci riga",\r
+DeleteRows                     : "Elimina righe",\r
+InsertColumn           : "Inserisci colonna",\r
+DeleteColumns          : "Elimina colonne",\r
+InsertCell                     : "Inserisci cella",\r
+DeleteCells                    : "Elimina celle",\r
+MergeCells                     : "Unisce celle",\r
+SplitCell                      : "Dividi celle",\r
+TableDelete                    : "Cancella Tabella",\r
+CellProperties         : "Proprietà cella",\r
+TableProperties                : "Proprietà tabella",\r
+ImageProperties                : "Proprietà immagine",\r
+FlashProperties                : "Proprietà Oggetto Flash",\r
+\r
+AnchorProp                     : "Proprietà ancora",\r
+ButtonProp                     : "Proprietà bottone",\r
+CheckboxProp           : "Proprietà checkbox",\r
+HiddenFieldProp                : "Proprietà campo nascosto",\r
+RadioButtonProp                : "Proprietà radio button",\r
+ImageButtonProp                : "Proprietà bottone immagine",\r
+TextFieldProp          : "Proprietà campo di testo",\r
+SelectionFieldProp     : "Proprietà menu di selezione",\r
+TextareaProp           : "Proprietà area di testo",\r
+FormProp                       : "Proprietà modulo",\r
+\r
+FontFormats                    : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",         //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Elaborazione XHTML in corso. Attendere prego...",\r
+Done                           : "Completato",\r
+PasteWordConfirm       : "Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?",\r
+NotCompatiblePaste     : "Questa funzione è disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?",\r
+UnknownToolbarItem     : "Elemento della barra strumenti sconosciuto \"%1\"",\r
+UnknownCommand         : "Comando sconosciuto \"%1\"",\r
+NotImplemented         : "Comando non implementato",\r
+UnknownToolbarSet      : "La barra di strumenti \"%1\" non esiste",\r
+NoActiveX                      : "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.",\r
+BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",\r
+DialogBlocked          : "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Annulla",\r
+DlgBtnClose                    : "Chiudi",\r
+DlgBtnBrowseServer     : "Cerca sul server",\r
+DlgAdvancedTag         : "Avanzate",\r
+DlgOpOther                     : "<Altro>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Devi inserire l'URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<non impostato>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Direzione scrittura",\r
+DlgGenLangDirLtr       : "Da Sinistra a Destra (LTR)",\r
+DlgGenLangDirRtl       : "Da Destra a Sinistra (RTL)",\r
+DlgGenLangCode         : "Codice Lingua",\r
+DlgGenAccessKey                : "Scorciatoia<br />da tastiera",\r
+DlgGenName                     : "Nome",\r
+DlgGenTabIndex         : "Ordine di tabulazione",\r
+DlgGenLongDescr                : "URL descrizione estesa",\r
+DlgGenClass                    : "Nome classe CSS",\r
+DlgGenTitle                    : "Titolo",\r
+DlgGenContType         : "Tipo della risorsa collegata",\r
+DlgGenLinkCharset      : "Set di caretteri della risorsa collegata",\r
+DlgGenStyle                    : "Stile",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Proprietà immagine",\r
+DlgImgInfoTab          : "Informazioni immagine",\r
+DlgImgBtnUpload                : "Invia al server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Carica",\r
+DlgImgAlt                      : "Testo alternativo",\r
+DlgImgWidth                    : "Larghezza",\r
+DlgImgHeight           : "Altezza",\r
+DlgImgLockRatio                : "Blocca rapporto",\r
+DlgBtnResetSize                : "Reimposta dimensione",\r
+DlgImgBorder           : "Bordo",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Allineamento",\r
+DlgImgAlignLeft                : "Sinistra",\r
+DlgImgAlignAbsBottom: "In basso assoluto",\r
+DlgImgAlignAbsMiddle: "Centrato assoluto",\r
+DlgImgAlignBaseline    : "Linea base",\r
+DlgImgAlignBottom      : "In Basso",\r
+DlgImgAlignMiddle      : "Centrato",\r
+DlgImgAlignRight       : "Destra",\r
+DlgImgAlignTextTop     : "In alto al testo",\r
+DlgImgAlignTop         : "In Alto",\r
+DlgImgPreview          : "Anteprima",\r
+DlgImgAlertUrl         : "Devi inserire l'URL per l'immagine",\r
+DlgImgLinkTab          : "Collegamento",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Proprietà Oggetto Flash",\r
+DlgFlashChkPlay                : "Avvio Automatico",\r
+DlgFlashChkLoop                : "Cicla",\r
+DlgFlashChkMenu                : "Abilita Menu di Flash",\r
+DlgFlashScale          : "Ridimensiona",\r
+DlgFlashScaleAll       : "Mostra Tutto",\r
+DlgFlashScaleNoBorder  : "Senza Bordo",\r
+DlgFlashScaleFit       : "Dimensione Esatta",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Collegamento",\r
+DlgLnkInfoTab          : "Informazioni collegamento",\r
+DlgLnkTargetTab                : "Destinazione",\r
+\r
+DlgLnkType                     : "Tipo di Collegamento",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ancora nella pagina",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocollo",\r
+DlgLnkProtoOther       : "<altro>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Scegli Ancora",\r
+DlgLnkAnchorByName     : "Per Nome",\r
+DlgLnkAnchorById       : "Per id elemento",\r
+DlgLnkNoAnchors                : "<Nessuna ancora disponibile nel documento>",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Indirizzo E-Mail",\r
+DlgLnkEMailSubject     : "Oggetto del messaggio",\r
+DlgLnkEMailBody                : "Corpo del messaggio",\r
+DlgLnkUpload           : "Carica",\r
+DlgLnkBtnUpload                : "Invia al Server",\r
+\r
+DlgLnkTarget           : "Destinazione",\r
+DlgLnkTargetFrame      : "<riquadro>",\r
+DlgLnkTargetPopup      : "<finestra popup>",\r
+DlgLnkTargetBlank      : "Nuova finestra (_blank)",\r
+DlgLnkTargetParent     : "Finestra padre (_parent)",\r
+DlgLnkTargetSelf       : "Stessa finestra (_self)",\r
+DlgLnkTargetTop                : "Finestra superiore (_top)",\r
+DlgLnkTargetFrameName  : "Nome del riquadro di destinazione",\r
+DlgLnkPopWinName       : "Nome finestra popup",\r
+DlgLnkPopWinFeat       : "Caratteristiche finestra popup",\r
+DlgLnkPopResize                : "Ridimensionabile",\r
+DlgLnkPopLocation      : "Barra degli indirizzi",\r
+DlgLnkPopMenu          : "Barra del menu",\r
+DlgLnkPopScroll                : "Barre di scorrimento",\r
+DlgLnkPopStatus                : "Barra di stato",\r
+DlgLnkPopToolbar       : "Barra degli strumenti",\r
+DlgLnkPopFullScrn      : "A tutto schermo (IE)",\r
+DlgLnkPopDependent     : "Dipendente (Netscape)",\r
+DlgLnkPopWidth         : "Larghezza",\r
+DlgLnkPopHeight                : "Altezza",\r
+DlgLnkPopLeft          : "Posizione da sinistra",\r
+DlgLnkPopTop           : "Posizione dall'alto",\r
+\r
+DlnLnkMsgNoUrl         : "Devi inserire l'URL del collegamento",\r
+DlnLnkMsgNoEMail       : "Devi inserire un'indirizzo e-mail",\r
+DlnLnkMsgNoAnchor      : "Devi selezionare un'ancora",\r
+DlnLnkMsgInvPopName    : "Il nome del popup deve iniziare con una lettera, e non può contenere spazi",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Seleziona colore",\r
+DlgColorBtnClear       : "Vuota",\r
+DlgColorHighlight      : "Evidenziato",\r
+DlgColorSelected       : "Selezionato",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Inserisci emoticon",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Seleziona carattere speciale",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Proprietà tabella",\r
+DlgTableRows           : "Righe",\r
+DlgTableColumns                : "Colonne",\r
+DlgTableBorder         : "Dimensione bordo",\r
+DlgTableAlign          : "Allineamento",\r
+DlgTableAlignNotSet    : "<non impostato>",\r
+DlgTableAlignLeft      : "Sinistra",\r
+DlgTableAlignCenter    : "Centrato",\r
+DlgTableAlignRight     : "Destra",\r
+DlgTableWidth          : "Larghezza",\r
+DlgTableWidthPx                : "pixel",\r
+DlgTableWidthPc                : "percento",\r
+DlgTableHeight         : "Altezza",\r
+DlgTableCellSpace      : "Spaziatura celle",\r
+DlgTableCellPad                : "Padding celle",\r
+DlgTableCaption                : "Intestazione",\r
+DlgTableSummary                : "Indice",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Proprietà cella",\r
+DlgCellWidth           : "Larghezza",\r
+DlgCellWidthPx         : "pixel",\r
+DlgCellWidthPc         : "percento",\r
+DlgCellHeight          : "Altezza",\r
+DlgCellWordWrap                : "A capo automatico",\r
+DlgCellWordWrapNotSet  : "<non impostato>",\r
+DlgCellWordWrapYes     : "Si",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "Allineamento orizzontale",\r
+DlgCellHorAlignNotSet  : "<non impostato>",\r
+DlgCellHorAlignLeft    : "Sinistra",\r
+DlgCellHorAlignCenter  : "Centrato",\r
+DlgCellHorAlignRight: "Destra",\r
+DlgCellVerAlign                : "Allineamento verticale",\r
+DlgCellVerAlignNotSet  : "<non impostato>",\r
+DlgCellVerAlignTop     : "In Alto",\r
+DlgCellVerAlignMiddle  : "Centrato",\r
+DlgCellVerAlignBottom  : "In Basso",\r
+DlgCellVerAlignBaseline        : "Linea base",\r
+DlgCellRowSpan         : "Righe occupate",\r
+DlgCellCollSpan                : "Colonne occupate",\r
+DlgCellBackColor       : "Colore sfondo",\r
+DlgCellBorderColor     : "Colore bordo",\r
+DlgCellBtnSelect       : "Scegli...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Trova",\r
+DlgFindFindBtn         : "Trova",\r
+DlgFindNotFoundMsg     : "L'elemento cercato non è stato trovato.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Sostituisci",\r
+DlgReplaceFindLbl              : "Trova:",\r
+DlgReplaceReplaceLbl   : "Sostituisci con:",\r
+DlgReplaceCaseChk              : "Maiuscole/minuscole",\r
+DlgReplaceReplaceBtn   : "Sostituisci",\r
+DlgReplaceReplAllBtn   : "Sostituisci tutto",\r
+DlgReplaceWordChk              : "Solo parole intere",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).",\r
+PasteErrorCopy : "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).",\r
+\r
+PasteAsText            : "Incolla come testo semplice",\r
+PasteFromWord  : "Incolla da Word",\r
+\r
+DlgPasteMsg2   : "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignora le definizioni di Font",\r
+DlgPasteRemoveStyles   : "Rimuovi le definizioni di Stile",\r
+DlgPasteCleanBox               : "Svuota area di testo",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatico",\r
+ColorMoreColors        : "Altri colori...",\r
+\r
+// Document Properties\r
+DocProps               : "Proprietà del Documento",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Proprietà ancora",\r
+DlgAnchorName          : "Nome ancora",\r
+DlgAnchorErrorName     : "Inserici il nome dell'ancora",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Non nel dizionario",\r
+DlgSpellChangeTo               : "Cambia in",\r
+DlgSpellBtnIgnore              : "Ignora",\r
+DlgSpellBtnIgnoreAll   : "Ignora tutto",\r
+DlgSpellBtnReplace             : "Cambia",\r
+DlgSpellBtnReplaceAll  : "Cambia tutto",\r
+DlgSpellBtnUndo                        : "Annulla",\r
+DlgSpellNoSuggestions  : "- Nessun suggerimento -",\r
+DlgSpellProgress               : "Controllo ortografico in corso",\r
+DlgSpellNoMispell              : "Controllo ortografico completato: nessun errore trovato",\r
+DlgSpellNoChanges              : "Controllo ortografico completato: nessuna parola cambiata",\r
+DlgSpellOneChange              : "Controllo ortografico completato: 1 parola cambiata",\r
+DlgSpellManyChanges            : "Controllo ortografico completato: %1 parole cambiate",\r
+\r
+IeSpellDownload                        : "Contollo ortografico non installato. Lo vuoi scaricare ora?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Testo (Value)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Bottone",\r
+DlgButtonTypeSbm       : "Invio",\r
+DlgButtonTypeRst       : "Annulla",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nome",\r
+DlgCheckboxValue       : "Valore",\r
+DlgCheckboxSelected    : "Selezionato",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nome",\r
+DlgFormAction  : "Azione",\r
+DlgFormMethod  : "Metodo",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nome",\r
+DlgSelectValue         : "Valore",\r
+DlgSelectSize          : "Dimensione",\r
+DlgSelectLines         : "righe",\r
+DlgSelectChkMulti      : "Permetti selezione multipla",\r
+DlgSelectOpAvail       : "Opzioni disponibili",\r
+DlgSelectOpText                : "Testo",\r
+DlgSelectOpValue       : "Valore",\r
+DlgSelectBtnAdd                : "Aggiungi",\r
+DlgSelectBtnModify     : "Modifica",\r
+DlgSelectBtnUp         : "Su",\r
+DlgSelectBtnDown       : "Gi",\r
+DlgSelectBtnSetValue : "Imposta come predefinito",\r
+DlgSelectBtnDelete     : "Rimuovi",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nome",\r
+DlgTextareaCols        : "Colonne",\r
+DlgTextareaRows        : "Righe",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nome",\r
+DlgTextValue           : "Valore",\r
+DlgTextCharWidth       : "Larghezza",\r
+DlgTextMaxChars                : "Numero massimo di caratteri",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Testo",\r
+DlgTextTypePass                : "Password",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nome",\r
+DlgHiddenValue : "Valore",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Proprietà lista puntata",\r
+NumberedListProp       : "Proprietà lista numerata",\r
+DlgLstStart                    : "Inizio",\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Tondo",\r
+DlgLstTypeDisc         : "Disco",\r
+DlgLstTypeSquare       : "Quadrato",\r
+DlgLstTypeNumbers      : "Numeri (1, 2, 3)",\r
+DlgLstTypeLCase                : "Caratteri minuscoli (a, b, c)",\r
+DlgLstTypeUCase                : "Caratteri maiuscoli (A, B, C)",\r
+DlgLstTypeSRoman       : "Numeri Romani minuscoli (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Numeri Romani maiuscoli (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Genarale",\r
+DlgDocBackTab          : "Sfondo",\r
+DlgDocColorsTab                : "Colori e margini",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Titolo pagina",\r
+DlgDocLangDir          : "Direzione scrittura",\r
+DlgDocLangDirLTR       : "Da Sinistra a Destra (LTR)",\r
+DlgDocLangDirRTL       : "Da Destra a Sinistra (RTL)",\r
+DlgDocLangCode         : "Codice Lingua",\r
+DlgDocCharSet          : "Set di caretteri",\r
+DlgDocCharSetCE                : "Europa Centrale",\r
+DlgDocCharSetCT                : "Cinese Tradizionale (Big5)",\r
+DlgDocCharSetCR                : "Cirillico",\r
+DlgDocCharSetGR                : "Greco",\r
+DlgDocCharSetJP                : "Giapponese",\r
+DlgDocCharSetKR                : "Coreano",\r
+DlgDocCharSetTR                : "Turco",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Europa Occidentale",\r
+DlgDocCharSetOther     : "Altro set di caretteri",\r
+\r
+DlgDocDocType          : "Intestazione DocType",\r
+DlgDocDocTypeOther     : "Altra intestazione DocType",\r
+DlgDocIncXHTML         : "Includi dichiarazione XHTML",\r
+DlgDocBgColor          : "Colore di sfondo",\r
+DlgDocBgImage          : "Immagine di sfondo",\r
+DlgDocBgNoScroll       : "Sfondo fissato",\r
+DlgDocCText                    : "Testo",\r
+DlgDocCLink                    : "Collegamento",\r
+DlgDocCVisited         : "Collegamento visitato",\r
+DlgDocCActive          : "Collegamento attivo",\r
+DlgDocMargins          : "Margini",\r
+DlgDocMaTop                    : "In Alto",\r
+DlgDocMaLeft           : "A Sinistra",\r
+DlgDocMaRight          : "A Destra",\r
+DlgDocMaBottom         : "In Basso",\r
+DlgDocMeIndex          : "Chiavi di indicizzazione documento (separate da virgola)",\r
+DlgDocMeDescr          : "Descrizione documento",\r
+DlgDocMeAuthor         : "Autore",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Anteprima",\r
+\r
+// Templates Dialog\r
+Templates                      : "Modelli",\r
+DlgTemplatesTitle      : "Contenuto dei modelli",\r
+DlgTemplatesSelMsg     : "Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrà eliminato):",\r
+DlgTemplatesLoading    : "Caricamento modelli in corso. Attendere prego...",\r
+DlgTemplatesNoTpl      : "(Nessun modello definito)",\r
+DlgTemplatesReplace    : "Cancella il contenuto corrente",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Informazioni",\r
+DlgAboutBrowserInfoTab : "Informazioni Browser",\r
+DlgAboutLicenseTab     : "Licenza",\r
+DlgAboutVersion                : "versione",\r
+DlgAboutInfo           : "Per maggiori informazioni visitare"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ja.js b/httemplate/elements/fckeditor/editor/lang/ja.js
new file mode 100644 (file)
index 0000000..c567d21
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Japanese language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "ツールバーを隠す",\r
+ToolbarExpand          : "ツールバーを表示",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "保存",\r
+NewPage                                : "新しいページ",\r
+Preview                                : "プレビュー",\r
+Cut                                    : "切り取り",\r
+Copy                           : "コピー",\r
+Paste                          : "貼り付け",\r
+PasteText                      : "プレーンテキスト貼り付け",\r
+PasteWord                      : "ワード文章から貼り付け",\r
+Print                          : "印刷",\r
+SelectAll                      : "すべて選択",\r
+RemoveFormat           : "フォーマット削除",\r
+InsertLinkLbl          : "リンク",\r
+InsertLink                     : "リンク挿入/編集",\r
+RemoveLink                     : "リンク削除",\r
+Anchor                         : "アンカー挿入/編集",\r
+InsertImageLbl         : "イメージ",\r
+InsertImage                    : "イメージ挿入/編集",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash挿入/編集",\r
+InsertTableLbl         : "テーブル",\r
+InsertTable                    : "テーブル挿入/編集",\r
+InsertLineLbl          : "ライン",\r
+InsertLine                     : "横罫線",\r
+InsertSpecialCharLbl: "特殊文字",\r
+InsertSpecialChar      : "特殊文字挿入",\r
+InsertSmileyLbl                : "絵文字",\r
+InsertSmiley           : "絵文字挿入",\r
+About                          : "FCKeditorヘルプ",\r
+Bold                           : "太字",\r
+Italic                         : "斜体",\r
+Underline                      : "下線",\r
+StrikeThrough          : "打ち消し線",\r
+Subscript                      : "添え字",\r
+Superscript                    : "上付き文字",\r
+LeftJustify                    : "左揃え",\r
+CenterJustify          : "中央揃え",\r
+RightJustify           : "右揃え",\r
+BlockJustify           : "両端揃え",\r
+DecreaseIndent         : "インデント解除",\r
+IncreaseIndent         : "インデント",\r
+Undo                           : "元に戻す",\r
+Redo                           : "やり直し",\r
+NumberedListLbl                : "段落番号",\r
+NumberedList           : "段落番号の追加/削除",\r
+BulletedListLbl                : "箇条書き",\r
+BulletedList           : "箇条書きの追加/削除",\r
+ShowTableBorders       : "テーブルボーダー表示",\r
+ShowDetails                    : "詳細表示",\r
+Style                          : "スタイル",\r
+FontFormat                     : "フォーマット",\r
+Font                           : "フォント",\r
+FontSize                       : "サイズ",\r
+TextColor                      : "テキスト色",\r
+BGColor                                : "背景色",\r
+Source                         : "ソース",\r
+Find                           : "検索",\r
+Replace                                : "置き換え",\r
+SpellCheck                     : "スペルチェック",\r
+UniversalKeyboard      : "ユニバーサル・キーボード",\r
+PageBreakLbl           : "改ページ",\r
+PageBreak                      : "改ページ挿入",\r
+\r
+Form                   : "フォーム",\r
+Checkbox               : "チェックボックス",\r
+RadioButton            : "ラジオボタン",\r
+TextField              : "1行テキスト",\r
+Textarea               : "テキストエリア",\r
+HiddenField            : "不可視フィールド",\r
+Button                 : "ボタン",\r
+SelectionField : "選択フィールド",\r
+ImageButton            : "画像ボタン",\r
+\r
+FitWindow              : "エディタサイズを最大にします",\r
+\r
+// Context Menu\r
+EditLink                       : "リンク編集",\r
+CellCM                         : "セル",\r
+RowCM                          : "行",\r
+ColumnCM                       : "カラム",\r
+InsertRow                      : "行挿入",\r
+DeleteRows                     : "行削除",\r
+InsertColumn           : "列挿入",\r
+DeleteColumns          : "列削除",\r
+InsertCell                     : "セル挿入",\r
+DeleteCells                    : "セル削除",\r
+MergeCells                     : "セル結合",\r
+SplitCell                      : "セル分割",\r
+TableDelete                    : "テーブル削除",\r
+CellProperties         : "セル プロパティ",\r
+TableProperties                : "テーブル プロパティ",\r
+ImageProperties                : "イメージ プロパティ",\r
+FlashProperties                : "Flash プロパティ",\r
+\r
+AnchorProp                     : "アンカー プロパティ",\r
+ButtonProp                     : "ボタン プロパティ",\r
+CheckboxProp           : "チェックボックス プロパティ",\r
+HiddenFieldProp                : "不可視フィールド プロパティ",\r
+RadioButtonProp                : "ラジオボタン プロパティ",\r
+ImageButtonProp                : "画像ボタン プロパティ",\r
+TextFieldProp          : "1行テキスト プロパティ",\r
+SelectionFieldProp     : "選択フィールド プロパティ",\r
+TextareaProp           : "テキストエリア プロパティ",\r
+FormProp                       : "フォーム プロパティ",\r
+\r
+FontFormats                    : "標準;書式付き;アドレス;見出し 1;見出し 2;見出し 3;見出し 4;見出し 5;見出し 6;標準 (DIV)",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML処理中. しばらくお待ちください...",\r
+Done                           : "完了",\r
+PasteWordConfirm       : "貼り付けを行うテキストは、ワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか?",\r
+NotCompatiblePaste     : "このコマンドはインターネット・エクスプローラーバージョン5.5以上で利用可能です。クリーニングしないで貼り付けを行いますか?",\r
+UnknownToolbarItem     : "未知のツールバー項目 \"%1\"",\r
+UnknownCommand         : "未知のコマンド名 \"%1\"",\r
+NotImplemented         : "コマンドはインプリメントされませんでした。",\r
+UnknownToolbarSet      : "ツールバー設定 \"%1\" 存在しません。",\r
+NoActiveX                      : "エラー、警告メッセージなどが発生した場合、ブラウザーのセキュリティ設定によりエディタのいくつかの機能が制限されている可能性があります。セキュリティ設定のオプションで\"ActiveXコントロールとプラグインの実行\"を有効にするにしてください。",\r
+BrowseServerBlocked : "サーバーブラウザーを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",\r
+DialogBlocked          : "ダイアログウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "キャンセル",\r
+DlgBtnClose                    : "閉じる",\r
+DlgBtnBrowseServer     : "サーバーブラウザー",\r
+DlgAdvancedTag         : "高度な設定",\r
+DlgOpOther                     : "<その他>",\r
+DlgInfoTab                     : "情報",\r
+DlgAlertUrl                    : "URLを挿入してください",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<なし>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "文字表記の方向",\r
+DlgGenLangDirLtr       : "左から右 (LTR)",\r
+DlgGenLangDirRtl       : "右から左 (RTL)",\r
+DlgGenLangCode         : "言語コード",\r
+DlgGenAccessKey                : "アクセスキー",\r
+DlgGenName                     : "Name属性",\r
+DlgGenTabIndex         : "タブインデックス",\r
+DlgGenLongDescr                : "longdesc属性(長文説明)",\r
+DlgGenClass                    : "スタイルシートクラス",\r
+DlgGenTitle                    : "Title属性",\r
+DlgGenContType         : "Content Type属性",\r
+DlgGenLinkCharset      : "リンクcharset属性",\r
+DlgGenStyle                    : "スタイルシート",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "イメージ プロパティ",\r
+DlgImgInfoTab          : "イメージ 情報",\r
+DlgImgBtnUpload                : "サーバーに送信",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "アップロード",\r
+DlgImgAlt                      : "代替テキスト",\r
+DlgImgWidth                    : "幅",\r
+DlgImgHeight           : "高さ",\r
+DlgImgLockRatio                : "ロック比率",\r
+DlgBtnResetSize                : "サイズリセット",\r
+DlgImgBorder           : "ボーダー",\r
+DlgImgHSpace           : "横間隔",\r
+DlgImgVSpace           : "縦間隔",\r
+DlgImgAlign                    : "行揃え",\r
+DlgImgAlignLeft                : "左",\r
+DlgImgAlignAbsBottom: "下部(絶対的)",\r
+DlgImgAlignAbsMiddle: "中央(絶対的)",\r
+DlgImgAlignBaseline    : "ベースライン",\r
+DlgImgAlignBottom      : "下",\r
+DlgImgAlignMiddle      : "中央",\r
+DlgImgAlignRight       : "右",\r
+DlgImgAlignTextTop     : "テキスト上部",\r
+DlgImgAlignTop         : "上",\r
+DlgImgPreview          : "プレビュー",\r
+DlgImgAlertUrl         : "イメージのURLを入力してください。",\r
+DlgImgLinkTab          : "リンク",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash プロパティ",\r
+DlgFlashChkPlay                : "再生",\r
+DlgFlashChkLoop                : "ループ再生",\r
+DlgFlashChkMenu                : "Flashメニュー可能",\r
+DlgFlashScale          : "拡大縮小設定",\r
+DlgFlashScaleAll       : "すべて表示",\r
+DlgFlashScaleNoBorder  : "外が見えない様に拡大",\r
+DlgFlashScaleFit       : "上下左右にフィット",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "ハイパーリンク",\r
+DlgLnkInfoTab          : "ハイパーリンク 情報",\r
+DlgLnkTargetTab                : "ターゲット",\r
+\r
+DlgLnkType                     : "リンクタイプ",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "このページのアンカー",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "プロトコル",\r
+DlgLnkProtoOther       : "<その他>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "アンカーを選択",\r
+DlgLnkAnchorByName     : "アンカー名",\r
+DlgLnkAnchorById       : "エレメントID",\r
+DlgLnkNoAnchors                : "<ドキュメントにおいて利用可能なアンカーはありません。>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail アドレス",\r
+DlgLnkEMailSubject     : "件名",\r
+DlgLnkEMailBody                : "本文",\r
+DlgLnkUpload           : "アップロード",\r
+DlgLnkBtnUpload                : "サーバーに送信",\r
+\r
+DlgLnkTarget           : "ターゲット",\r
+DlgLnkTargetFrame      : "<フレーム>",\r
+DlgLnkTargetPopup      : "<ポップアップウィンドウ>",\r
+DlgLnkTargetBlank      : "新しいウィンドウ (_blank)",\r
+DlgLnkTargetParent     : "親ウィンドウ (_parent)",\r
+DlgLnkTargetSelf       : "同じウィンドウ (_self)",\r
+DlgLnkTargetTop                : "最上位ウィンドウ (_top)",\r
+DlgLnkTargetFrameName  : "目的のフレーム名",\r
+DlgLnkPopWinName       : "ポップアップウィンドウ名",\r
+DlgLnkPopWinFeat       : "ポップアップウィンドウ特徴",\r
+DlgLnkPopResize                : "リサイズ可能",\r
+DlgLnkPopLocation      : "ロケーションバー",\r
+DlgLnkPopMenu          : "メニューバー",\r
+DlgLnkPopScroll                : "スクロールバー",\r
+DlgLnkPopStatus                : "ステータスバー",\r
+DlgLnkPopToolbar       : "ツールバー",\r
+DlgLnkPopFullScrn      : "全画面モード(IE)",\r
+DlgLnkPopDependent     : "開いたウィンドウに連動して閉じる (Netscape)",\r
+DlgLnkPopWidth         : "幅",\r
+DlgLnkPopHeight                : "高さ",\r
+DlgLnkPopLeft          : "左端からの座標で指定",\r
+DlgLnkPopTop           : "上端からの座標で指定",\r
+\r
+DlnLnkMsgNoUrl         : "リンクURLを入力してください。",\r
+DlnLnkMsgNoEMail       : "メールアドレスを入力してください。",\r
+DlnLnkMsgNoAnchor      : "アンカーを選択してください。",\r
+DlnLnkMsgInvPopName    : "ポップ・アップ名は英字で始まる文字で指定してくだい。ポップ・アップ名にスペースは含めません",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "色選択",\r
+DlgColorBtnClear       : "クリア",\r
+DlgColorHighlight      : "ハイライト",\r
+DlgColorSelected       : "選択色",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "顔文字挿入",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "特殊文字選択",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "テーブル プロパティ",\r
+DlgTableRows           : "行",\r
+DlgTableColumns                : "列",\r
+DlgTableBorder         : "ボーダーサイズ",\r
+DlgTableAlign          : "キャプションの整列",\r
+DlgTableAlignNotSet    : "<なし>",\r
+DlgTableAlignLeft      : "左",\r
+DlgTableAlignCenter    : "中央",\r
+DlgTableAlignRight     : "右",\r
+DlgTableWidth          : "テーブル幅",\r
+DlgTableWidthPx                : "ピクセル",\r
+DlgTableWidthPc                : "パーセント",\r
+DlgTableHeight         : "テーブル高さ",\r
+DlgTableCellSpace      : "セル内余白",\r
+DlgTableCellPad                : "セル内間隔",\r
+DlgTableCaption                : "キャプション",\r
+DlgTableSummary                : "テーブル目的/構造",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "セル プロパティ",\r
+DlgCellWidth           : "幅",\r
+DlgCellWidthPx         : "ピクセル",\r
+DlgCellWidthPc         : "パーセント",\r
+DlgCellHeight          : "高さ",\r
+DlgCellWordWrap                : "折り返し",\r
+DlgCellWordWrapNotSet  : "<なし>",\r
+DlgCellWordWrapYes     : "Yes",\r
+DlgCellWordWrapNo      : "No",\r
+DlgCellHorAlign                : "セル横の整列",\r
+DlgCellHorAlignNotSet  : "<なし>",\r
+DlgCellHorAlignLeft    : "左",\r
+DlgCellHorAlignCenter  : "中央",\r
+DlgCellHorAlignRight: "右",\r
+DlgCellVerAlign                : "セル縦の整列",\r
+DlgCellVerAlignNotSet  : "<なし>",\r
+DlgCellVerAlignTop     : "上",\r
+DlgCellVerAlignMiddle  : "中央",\r
+DlgCellVerAlignBottom  : "下",\r
+DlgCellVerAlignBaseline        : "ベースライン",\r
+DlgCellRowSpan         : "縦幅(行数)",\r
+DlgCellCollSpan                : "横幅(列数)",\r
+DlgCellBackColor       : "背景色",\r
+DlgCellBorderColor     : "ボーダーカラー",\r
+DlgCellBtnSelect       : "選択...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "検索",\r
+DlgFindFindBtn         : "検索",\r
+DlgFindNotFoundMsg     : "指定された文字列は見つかりませんでした。",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "置き換え",\r
+DlgReplaceFindLbl              : "検索する文字列:",\r
+DlgReplaceReplaceLbl   : "置換えする文字列:",\r
+DlgReplaceCaseChk              : "部分一致",\r
+DlgReplaceReplaceBtn   : "置換え",\r
+DlgReplaceReplAllBtn   : "すべて置換え",\r
+DlgReplaceWordChk              : "単語単位で一致",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。",\r
+PasteErrorCopy : "ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。",\r
+\r
+PasteAsText            : "プレーンテキスト貼り付け",\r
+PasteFromWord  : "ワード文章から貼り付け",\r
+\r
+DlgPasteMsg2   : "キーボード(<STRONG>Ctrl+V</STRONG>)を使用して、次の入力エリア内で貼って、<STRONG>OK</STRONG>を押してください。",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "FontタグのFace属性を無視します。",\r
+DlgPasteRemoveStyles   : "スタイル定義を削除します。",\r
+DlgPasteCleanBox               : "入力エリアクリア",\r
+\r
+// Color Picker\r
+ColorAutomatic : "自動",\r
+ColorMoreColors        : "その他の色...",\r
+\r
+// Document Properties\r
+DocProps               : "文書 プロパティ",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "アンカー プロパティ",\r
+DlgAnchorName          : "アンカー名",\r
+DlgAnchorErrorName     : "アンカー名を必ず入力してください。",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "辞書にありません",\r
+DlgSpellChangeTo               : "変更",\r
+DlgSpellBtnIgnore              : "無視",\r
+DlgSpellBtnIgnoreAll   : "すべて無視",\r
+DlgSpellBtnReplace             : "置換",\r
+DlgSpellBtnReplaceAll  : "すべて置換",\r
+DlgSpellBtnUndo                        : "やり直し",\r
+DlgSpellNoSuggestions  : "- 該当なし -",\r
+DlgSpellProgress               : "スペルチェック処理中...",\r
+DlgSpellNoMispell              : "スペルチェック完了: スペルの誤りはありませんでした",\r
+DlgSpellNoChanges              : "スペルチェック完了: 語句は変更されませんでした",\r
+DlgSpellOneChange              : "スペルチェック完了: 1語句変更されました",\r
+DlgSpellManyChanges            : "スペルチェック完了: %1 語句変更されました",\r
+\r
+IeSpellDownload                        : "スペルチェッカーがインストールされていません。今すぐダウンロードしますか?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "テキスト (値)",\r
+DlgButtonType          : "タイプ",\r
+DlgButtonTypeBtn       : "ボタン",\r
+DlgButtonTypeSbm       : "送信",\r
+DlgButtonTypeRst       : "リセット",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "名前",\r
+DlgCheckboxValue       : "値",\r
+DlgCheckboxSelected    : "選択済み",\r
+\r
+// Form Dialog\r
+DlgFormName            : "フォーム名",\r
+DlgFormAction  : "アクション",\r
+DlgFormMethod  : "メソッド",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "名前",\r
+DlgSelectValue         : "値",\r
+DlgSelectSize          : "サイズ",\r
+DlgSelectLines         : "行",\r
+DlgSelectChkMulti      : "複数項目選択を許可",\r
+DlgSelectOpAvail       : "利用可能なオプション",\r
+DlgSelectOpText                : "選択項目名",\r
+DlgSelectOpValue       : "選択項目値",\r
+DlgSelectBtnAdd                : "追加",\r
+DlgSelectBtnModify     : "編集",\r
+DlgSelectBtnUp         : "上へ",\r
+DlgSelectBtnDown       : "下へ",\r
+DlgSelectBtnSetValue : "選択した値を設定",\r
+DlgSelectBtnDelete     : "削除",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "名前",\r
+DlgTextareaCols        : "列",\r
+DlgTextareaRows        : "行",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "名前",\r
+DlgTextValue           : "値",\r
+DlgTextCharWidth       : "サイズ",\r
+DlgTextMaxChars                : "最大長",\r
+DlgTextType                    : "タイプ",\r
+DlgTextTypeText                : "テキスト",\r
+DlgTextTypePass                : "パスワード入力",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "名前",\r
+DlgHiddenValue : "値",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "箇条書き プロパティ",\r
+NumberedListProp       : "段落番号 プロパティ",\r
+DlgLstStart                    : "開始文字",\r
+DlgLstType                     : "タイプ",\r
+DlgLstTypeCircle       : "白丸",\r
+DlgLstTypeDisc         : "黒丸",\r
+DlgLstTypeSquare       : "四角",\r
+DlgLstTypeNumbers      : "アラビア数字 (1, 2, 3)",\r
+DlgLstTypeLCase                : "英字小文字 (a, b, c)",\r
+DlgLstTypeUCase                : "英字大文字 (A, B, C)",\r
+DlgLstTypeSRoman       : "ローマ数字小文字 (i, ii, iii)",\r
+DlgLstTypeLRoman       : "ローマ数字大文字 (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "全般",\r
+DlgDocBackTab          : "背景",\r
+DlgDocColorsTab                : "色とマージン",\r
+DlgDocMetaTab          : "メタデータ",\r
+\r
+DlgDocPageTitle                : "ページタイトル",\r
+DlgDocLangDir          : "言語文字表記の方向",\r
+DlgDocLangDirLTR       : "左から右に表記(LTR)",\r
+DlgDocLangDirRTL       : "右から左に表記(RTL)",\r
+DlgDocLangCode         : "言語コード",\r
+DlgDocCharSet          : "文字セット符号化",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "他の文字セット符号化",\r
+\r
+DlgDocDocType          : "文書タイプヘッダー",\r
+DlgDocDocTypeOther     : "その他文書タイプヘッダー",\r
+DlgDocIncXHTML         : "XHTML宣言をインクルード",\r
+DlgDocBgColor          : "背景色",\r
+DlgDocBgImage          : "背景画像 URL",\r
+DlgDocBgNoScroll       : "スクロールしない背景",\r
+DlgDocCText                    : "テキスト",\r
+DlgDocCLink                    : "リンク",\r
+DlgDocCVisited         : "アクセス済みリンク",\r
+DlgDocCActive          : "アクセス中リンク",\r
+DlgDocMargins          : "ページ・マージン",\r
+DlgDocMaTop                    : "上部",\r
+DlgDocMaLeft           : "左",\r
+DlgDocMaRight          : "右",\r
+DlgDocMaBottom         : "下部",\r
+DlgDocMeIndex          : "文書のキーワード(カンマ区切り)",\r
+DlgDocMeDescr          : "文書の概要",\r
+DlgDocMeAuthor         : "文書の作者",\r
+DlgDocMeCopy           : "文書の著作権",\r
+DlgDocPreview          : "プレビュー",\r
+\r
+// Templates Dialog\r
+Templates                      : "テンプレート(雛形)",\r
+DlgTemplatesTitle      : "テンプレート内容",\r
+DlgTemplatesSelMsg     : "エディターで使用するテンプレートを選択してください。<br>(現在のエディタの内容は失われます):",\r
+DlgTemplatesLoading    : "テンプレート一覧読み込み中. しばらくお待ちください...",\r
+DlgTemplatesNoTpl      : "(テンプレートが定義されていません)",\r
+DlgTemplatesReplace    : "現在のエディタの内容と置換えをします",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "バージョン情報",\r
+DlgAboutBrowserInfoTab : "ブラウザ情報",\r
+DlgAboutLicenseTab     : "ライセンス",\r
+DlgAboutVersion                : "バージョン",\r
+DlgAboutInfo           : "より詳しい情報はこちらで"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/km.js b/httemplate/elements/fckeditor/editor/lang/km.js
new file mode 100644 (file)
index 0000000..e90291f
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Khmer language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "បង្រួមរបាឧបរកណ៍",\r
+ToolbarExpand          : "ពង្រីករបាឧបរណ៍",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "រក្សាទុក",\r
+NewPage                                : "ទំព័រថ្មី",\r
+Preview                                : "មើលសាកល្បង",\r
+Cut                                    : "កាត់យក",\r
+Copy                           : "ចំលងយក",\r
+Paste                          : "ចំលងដាក់",\r
+PasteText                      : "ចំលងដាក់ជាអត្ថបទធម្មតា",\r
+PasteWord                      : "ចំលងដាក់ពី Word",\r
+Print                          : "បោះពុម្ភ",\r
+SelectAll                      : "ជ្រើសរើសទាំងអស់",\r
+RemoveFormat           : "លប់ចោល ការរចនា",\r
+InsertLinkLbl          : "ឈ្នាប់",\r
+InsertLink                     : "បន្ថែម/កែប្រែ ឈ្នាប់",\r
+RemoveLink                     : "លប់ឈ្នាប់",\r
+Anchor                         : "បន្ថែម/កែប្រែ យុថ្កា",\r
+InsertImageLbl         : "រូបភាព",\r
+InsertImage                    : "បន្ថែម/កែប្រែ រូបភាព",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "បន្ថែម/កែប្រែ Flash",\r
+InsertTableLbl         : "តារាង",\r
+InsertTable                    : "បន្ថែម/កែប្រែ តារាង",\r
+InsertLineLbl          : "បន្ទាត់",\r
+InsertLine                     : "បន្ថែមបន្ទាត់ផ្តេក",\r
+InsertSpecialCharLbl: "អក្សរពិសេស",\r
+InsertSpecialChar      : "បន្ថែមអក្សរពិសេស",\r
+InsertSmileyLbl                : "រូបភាព",\r
+InsertSmiley           : "បន្ថែម រូបភាព",\r
+About                          : "អំពី FCKeditor",\r
+Bold                           : "អក្សរដិតធំ",\r
+Italic                         : "អក្សរផ្តេក",\r
+Underline                      : "ដិតបន្ទាត់ពីក្រោមអក្សរ",\r
+StrikeThrough          : "ដិតបន្ទាត់ពាក់កណ្តាលអក្សរ",\r
+Subscript                      : "អក្សរតូចក្រោម",\r
+Superscript                    : "អក្សរតូចលើ",\r
+LeftJustify                    : "តំរឹមឆ្វេង",\r
+CenterJustify          : "តំរឹមកណ្តាល",\r
+RightJustify           : "តំរឹមស្តាំ",\r
+BlockJustify           : "តំរឹមសងខាង",\r
+DecreaseIndent         : "បន្ថយការចូលបន្ទាត់",\r
+IncreaseIndent         : "បន្ថែមការចូលបន្ទាត់",\r
+Undo                           : "សារឡើងវិញ",\r
+Redo                           : "ធ្វើឡើងវិញ",\r
+NumberedListLbl                : "បញ្ជីជាអក្សរ",\r
+NumberedList           : "បន្ថែម/លប់ បញ្ជីជាអក្សរ",\r
+BulletedListLbl                : "បញ្ជីជារង្វង់មូល",\r
+BulletedList           : "បន្ថែម/លប់ បញ្ជីជារង្វង់មូល",\r
+ShowTableBorders       : "បង្ហាញស៊ុមតារាង",\r
+ShowDetails                    : "បង្ហាញពិស្តារ",\r
+Style                          : "ម៉ូត",\r
+FontFormat                     : "រចនា",\r
+Font                           : "ហ្វុង",\r
+FontSize                       : "ទំហំ",\r
+TextColor                      : "ពណ៌អក្សរ",\r
+BGColor                                : "ពណ៌ផ្ទៃខាងក្រោយ",\r
+Source                         : "កូត",\r
+Find                           : "ស្វែងរក",\r
+Replace                                : "ជំនួស",\r
+SpellCheck                     : "ពិនិត្យអក្ខរាវិរុទ្ធ",\r
+UniversalKeyboard      : "ក្តារពុម្ភអក្សរសកល",\r
+PageBreakLbl           : "ការផ្តាច់ទំព័រ",\r
+PageBreak                      : "បន្ថែម ការផ្តាច់ទំព័រ",\r
+\r
+Form                   : "បែបបទ",\r
+Checkbox               : "ប្រអប់ជ្រើសរើស",\r
+RadioButton            : "ប៉ូតុនរង្វង់មូល",\r
+TextField              : "ជួរសរសេរអត្ថបទ",\r
+Textarea               : "តំបន់សរសេរអត្ថបទ",\r
+HiddenField            : "ជួរលាក់",\r
+Button                 : "ប៉ូតុន",\r
+SelectionField : "ជួរជ្រើសរើស",\r
+ImageButton            : "ប៉ូតុនរូបភាព",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "កែប្រែឈ្នាប់",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "បន្ថែមជួរផ្តេក",\r
+DeleteRows                     : "លប់ជួរផ្តេក",\r
+InsertColumn           : "បន្ថែមជួរឈរ",\r
+DeleteColumns          : "លប់ជួរឈរ",\r
+InsertCell                     : "បន្ថែម សែល",\r
+DeleteCells                    : "លប់សែល",\r
+MergeCells                     : "បញ្ជូលសែល",\r
+SplitCell                      : "ផ្តាច់សែល",\r
+TableDelete                    : "លប់តារាង",\r
+CellProperties         : "ការកំណត់សែល",\r
+TableProperties                : "ការកំណត់តារាង",\r
+ImageProperties                : "ការកំណត់រូបភាព",\r
+FlashProperties                : "ការកំណត់ Flash",\r
+\r
+AnchorProp                     : "ការកំណត់យុថ្កា",\r
+ButtonProp                     : "ការកំណត់ ប៉ូតុន",\r
+CheckboxProp           : "ការកំណត់ប្រអប់ជ្រើសរើស",\r
+HiddenFieldProp                : "ការកំណត់ជួរលាក់",\r
+RadioButtonProp                : "ការកំណត់ប៉ូតុនរង្វង់",\r
+ImageButtonProp                : "ការកំណត់ប៉ូតុនរូបភាព",\r
+TextFieldProp          : "ការកំណត់ជួរអត្ថបទ",\r
+SelectionFieldProp     : "ការកំណត់ជួរជ្រើសរើស",\r
+TextareaProp           : "ការកំណត់កន្លែងសរសេរអត្ថបទ",\r
+FormProp                       : "ការកំណត់បែបបទ",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...",\r
+Done                           : "ចប់រួចរាល់",\r
+PasteWordConfirm       : "អត្ថបទដែលលោកអ្នកបំរុងចំលងដាក់ ហាក់បីដូចជាត្រូវចំលងមកពីកម្មវិធី​Word​។ តើលោកអ្នកចង់សំអាតមុនចំលងអត្ថបទដាក់ទេ?",\r
+NotCompatiblePaste     : "ពាក្យបញ្ជានេះប្រើបានតែជាមួយ Internet Explorer កំរិត 5.5 រឺ លើសនេះ ។ តើលោកអ្នកចង់ចំលងដាក់ដោយមិនចាំបាច់សំអាតទេ?",\r
+UnknownToolbarItem     : "វត្ថុលើរបាឧបរកណ៍ មិនស្គាល់ \"%1\"",\r
+UnknownCommand         : "ឈ្មោះពាក្យបញ្ជា មិនស្គាល់ \"%1\"",\r
+NotImplemented         : "ពាក្យបញ្ជា មិនបានអនុវត្ត",\r
+UnknownToolbarSet      : "របាឧបរកណ៍ \"%1\" ពុំមាន ។",\r
+NoActiveX                      : "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​អាចធ្វើអោយលោកអ្នកមិនអាចប្រើមុខងារខ្លះរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។ លោកអ្នកត្រូវកំណត់អោយ \"ActiveX និង​កម្មវិធីជំនួយក្នុង (plug-ins)\" អោយដំណើរការ ។ លោកអ្នកអាចជួបប្រទះនឹង បញ្ហា ព្រមជាមួយនឹងការបាត់បង់មុខងារណាមួយរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។",\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "វីនដូវមិនអាចបើកបានទេ ។ សូមពិនិត្យចំពោះកម្មវិធីបិទ វីនដូវលោត (popup) ថាតើវាដំណើរការរឺទេ ។",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "យល់ព្រម",\r
+DlgBtnCancel           : "មិនយល់ព្រម",\r
+DlgBtnClose                    : "បិទ",\r
+DlgBtnBrowseServer     : "មើល",\r
+DlgAdvancedTag         : "កំរិតខ្ពស់",\r
+DlgOpOther                     : "<ផ្សេងទៅត>",\r
+DlgInfoTab                     : "ពត៌មាន",\r
+DlgAlertUrl                    : "សូមសរសេរ URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<មិនមែន>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "ទិសដៅភាសា",\r
+DlgGenLangDirLtr       : "ពីឆ្វេងទៅស្តាំ(LTR)",\r
+DlgGenLangDirRtl       : "ពីស្តាំទៅឆ្វេង(RTL)",\r
+DlgGenLangCode         : "លេខកូតភាសា",\r
+DlgGenAccessKey                : "ឃី សំរាប់ចូល",\r
+DlgGenName                     : "ឈ្មោះ",\r
+DlgGenTabIndex         : "លេខ Tab",\r
+DlgGenLongDescr                : "អធិប្បាយ URL វែង",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "ចំណងជើង ប្រឹក្សា",\r
+DlgGenContType         : "ប្រភេទអត្ថបទ ប្រឹក្សា",\r
+DlgGenLinkCharset      : "លេខកូតអក្សររបស់ឈ្នាប់",\r
+DlgGenStyle                    : "ម៉ូត",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "ការកំណត់រូបភាព",\r
+DlgImgInfoTab          : "ពត៌មានអំពីរូបភាព",\r
+DlgImgBtnUpload                : "បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "ទាញយក",\r
+DlgImgAlt                      : "អត្ថបទជំនួស",\r
+DlgImgWidth                    : "ទទឹង",\r
+DlgImgHeight           : "កំពស់",\r
+DlgImgLockRatio                : "អត្រាឡុក",\r
+DlgBtnResetSize                : "កំណត់ទំហំឡើងវិញ",\r
+DlgImgBorder           : "ស៊ុម",\r
+DlgImgHSpace           : "គំលាតទទឹង",\r
+DlgImgVSpace           : "គំលាតបណ្តោយ",\r
+DlgImgAlign                    : "កំណត់ទីតាំង",\r
+DlgImgAlignLeft                : "ខាងឆ្វង",\r
+DlgImgAlignAbsBottom: "Abs Bottom",    //MISSING\r
+DlgImgAlignAbsMiddle: "Abs Middle",    //MISSING\r
+DlgImgAlignBaseline    : "បន្ទាត់ជាមូលដ្ឋាន",\r
+DlgImgAlignBottom      : "ខាងក្រោម",\r
+DlgImgAlignMiddle      : "កណ្តាល",\r
+DlgImgAlignRight       : "ខាងស្តាំ",\r
+DlgImgAlignTextTop     : "លើអត្ថបទ",\r
+DlgImgAlignTop         : "ខាងលើ",\r
+DlgImgPreview          : "មើលសាកល្បង",\r
+DlgImgAlertUrl         : "សូមសរសេរងាស័យដ្ឋានរបស់រូបភាព",\r
+DlgImgLinkTab          : "ឈ្នាប់",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "ការកំណត់ Flash",\r
+DlgFlashChkPlay                : "លេងដោយស្វ័យប្រវត្ត",\r
+DlgFlashChkLoop                : "ចំនួនដង",\r
+DlgFlashChkMenu                : "បង្ហាញ មឺនុយរបស់ Flash",\r
+DlgFlashScale          : "ទំហំ",\r
+DlgFlashScaleAll       : "បង្ហាញទាំងអស់",\r
+DlgFlashScaleNoBorder  : "មិនបង្ហាញស៊ុម",\r
+DlgFlashScaleFit       : "ត្រូវល្មម",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "ឈ្នាប់",\r
+DlgLnkInfoTab          : "ពត៌មានអំពីឈ្នាប់",\r
+DlgLnkTargetTab                : "គោលដៅ",\r
+\r
+DlgLnkType                     : "ប្រភេទឈ្នាប់",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "យុថ្កានៅក្នុងទំព័រនេះ",\r
+DlgLnkTypeEMail                : "អ៊ីមែល",\r
+DlgLnkProto                    : "ប្រូតូកូល",\r
+DlgLnkProtoOther       : "<ផ្សេងទៀត>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "ជ្រើសរើសយុថ្កា",\r
+DlgLnkAnchorByName     : "តាមឈ្មោះរបស់យុថ្កា",\r
+DlgLnkAnchorById       : "តាម Id",\r
+DlgLnkNoAnchors                : "<ពុំមានយុថ្កានៅក្នុងឯកសារនេះទេ>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "អ៊ីមែល",\r
+DlgLnkEMailSubject     : "ចំណងជើងអត្ថបទ",\r
+DlgLnkEMailBody                : "អត្ថបទ",\r
+DlgLnkUpload           : "ទាញយក",\r
+DlgLnkBtnUpload                : "ទាញយក",\r
+\r
+DlgLnkTarget           : "គោលដៅ",\r
+DlgLnkTargetFrame      : "<ហ្វ្រេម>",\r
+DlgLnkTargetPopup      : "<វីនដូវ លោត>",\r
+DlgLnkTargetBlank      : "វីនដូវថ្មី (_blank)",\r
+DlgLnkTargetParent     : "វីនដូវមេ (_parent)",\r
+DlgLnkTargetSelf       : "វីនដូវដដែល (_self)",\r
+DlgLnkTargetTop                : "វីនដូវនៅលើគេ(_top)",\r
+DlgLnkTargetFrameName  : "ឈ្មោះហ្រ្វេមដែលជាគោលដៅ",\r
+DlgLnkPopWinName       : "ឈ្មោះវីនដូវលោត",\r
+DlgLnkPopWinFeat       : "លក្ខណះរបស់វីនដូលលោត",\r
+DlgLnkPopResize                : "ទំហំអាចផ្លាស់ប្តូរ",\r
+DlgLnkPopLocation      : "របា ទីតាំង",\r
+DlgLnkPopMenu          : "របា មឺនុយ",\r
+DlgLnkPopScroll                : "របា ទាញ",\r
+DlgLnkPopStatus                : "របា ពត៌មាន",\r
+DlgLnkPopToolbar       : "របា ឩបករណ៍",\r
+DlgLnkPopFullScrn      : "អេក្រុងពេញ(IE)",\r
+DlgLnkPopDependent     : "អាស្រ័យលើ (Netscape)",\r
+DlgLnkPopWidth         : "ទទឹង",\r
+DlgLnkPopHeight                : "កំពស់",\r
+DlgLnkPopLeft          : "ទីតាំងខាងឆ្វេង",\r
+DlgLnkPopTop           : "ទីតាំងខាងលើ",\r
+\r
+DlnLnkMsgNoUrl         : "សូមសរសេរ អាស័យដ្ឋាន URL",\r
+DlnLnkMsgNoEMail       : "សូមសរសេរ អាស័យដ្ឋាន អ៊ីមែល",\r
+DlnLnkMsgNoAnchor      : "សូមជ្រើសរើស យុថ្កា",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "ជ្រើសរើស ពណ៌",\r
+DlgColorBtnClear       : "លប់",\r
+DlgColorHighlight      : "ផាត់ពណ៌",\r
+DlgColorSelected       : "បានជ្រើសរើស",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "បញ្ជូលរូបភាព",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "តូអក្សរពិសេស",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "ការកំណត់ តារាង",\r
+DlgTableRows           : "ជួរផ្តេក",\r
+DlgTableColumns                : "ជួរឈរ",\r
+DlgTableBorder         : "ទំហំស៊ុម",\r
+DlgTableAlign          : "ការកំណត់ទីតាំង",\r
+DlgTableAlignNotSet    : "<មិនកំណត់>",\r
+DlgTableAlignLeft      : "ខាងឆ្វេង",\r
+DlgTableAlignCenter    : "កណ្តាល",\r
+DlgTableAlignRight     : "ខាងស្តាំ",\r
+DlgTableWidth          : "ទទឹង",\r
+DlgTableWidthPx                : "ភីកសែល",\r
+DlgTableWidthPc                : "ភាគរយ",\r
+DlgTableHeight         : "កំពស់",\r
+DlgTableCellSpace      : "គំលាតសែល",\r
+DlgTableCellPad                : "គែមសែល",\r
+DlgTableCaption                : "ចំណងជើង",\r
+DlgTableSummary                : "សេចក្តីសង្ខេប",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "ការកំណត់ សែល",\r
+DlgCellWidth           : "ទទឹង",\r
+DlgCellWidthPx         : "ភីកសែល",\r
+DlgCellWidthPc         : "ភាគរយ",\r
+DlgCellHeight          : "កំពស់",\r
+DlgCellWordWrap                : "បង្ហាញអត្ថបទទាំងអស់",\r
+DlgCellWordWrapNotSet  : "<មិនកំណត់>",\r
+DlgCellWordWrapYes     : "បាទ(ចា)",\r
+DlgCellWordWrapNo      : "ទេ",\r
+DlgCellHorAlign                : "តំរឹមផ្តេក",\r
+DlgCellHorAlignNotSet  : "<មិនកំណត់>",\r
+DlgCellHorAlignLeft    : "ខាងឆ្វេង",\r
+DlgCellHorAlignCenter  : "កណ្តាល",\r
+DlgCellHorAlignRight: "Right", //MISSING\r
+DlgCellVerAlign                : "តំរឹមឈរ",\r
+DlgCellVerAlignNotSet  : "<មិនកណត់>",\r
+DlgCellVerAlignTop     : "ខាងលើ",\r
+DlgCellVerAlignMiddle  : "កណ្តាល",\r
+DlgCellVerAlignBottom  : "ខាងក្រោម",\r
+DlgCellVerAlignBaseline        : "បន្ទាត់ជាមូលដ្ឋាន",\r
+DlgCellRowSpan         : "បញ្ជូលជួរផ្តេក",\r
+DlgCellCollSpan                : "បញ្ជូលជួរឈរ",\r
+DlgCellBackColor       : "ពណ៌ផ្នែកខាងក្រោម",\r
+DlgCellBorderColor     : "ពណ៌ស៊ុម",\r
+DlgCellBtnSelect       : "ជ្រើសរើស...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "ស្វែងរក",\r
+DlgFindFindBtn         : "ស្វែងរក",\r
+DlgFindNotFoundMsg     : "ពាក្យនេះ រកមិនឃើញទេ ។",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "ជំនួស",\r
+DlgReplaceFindLbl              : "ស្វែងរកអ្វី:",\r
+DlgReplaceReplaceLbl   : "ជំនួសជាមួយ:",\r
+DlgReplaceCaseChk              : "ករណ៉ត្រូវរក",\r
+DlgReplaceReplaceBtn   : "ជំនួស",\r
+DlgReplaceReplAllBtn   : "ជំនួសទាំងអស់",\r
+DlgReplaceWordChk              : "ត្រូវពាក្យទាំងអស់",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl+X) ។",\r
+PasteErrorCopy : "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl+C)។",\r
+\r
+PasteAsText            : "ចំលងដាក់អត្ថបទធម្មតា",\r
+PasteFromWord  : "ចំលងពាក្យពីកម្មវិធី Word",\r
+\r
+DlgPasteMsg2   : "សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "មិនគិតអំពីប្រភេទពុម្ភអក្សរ",\r
+DlgPasteRemoveStyles   : "លប់ម៉ូត",\r
+DlgPasteCleanBox               : "លប់អត្ថបទចេញពីប្រអប់",\r
+\r
+// Color Picker\r
+ColorAutomatic : "ស្វ័យប្រវត្ត",\r
+ColorMoreColors        : "ពណ៌ផ្សេងទៀត..",\r
+\r
+// Document Properties\r
+DocProps               : "ការកំណត់ ឯកសារ",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "ការកំណត់ចំណងជើងយុទ្ធថ្កា",\r
+DlgAnchorName          : "ឈ្មោះយុទ្ធថ្កា",\r
+DlgAnchorErrorName     : "សូមសរសេរ ឈ្មោះយុទ្ធថ្កា",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "គ្មានក្នុងវចនានុក្រម",\r
+DlgSpellChangeTo               : "ផ្លាស់ប្តូរទៅ",\r
+DlgSpellBtnIgnore              : "មិនផ្លាស់ប្តូរ",\r
+DlgSpellBtnIgnoreAll   : "មិនផ្លាស់ប្តូរ ទាំងអស់",\r
+DlgSpellBtnReplace             : "ជំនួស",\r
+DlgSpellBtnReplaceAll  : "ជំនួសទាំងអស់",\r
+DlgSpellBtnUndo                        : "សារឡើងវិញ",\r
+DlgSpellNoSuggestions  : "- គ្មានសំណើរ -",\r
+DlgSpellProgress               : "កំពុងពិនិត្យអក្ខរាវិរុទ្ធ...",\r
+DlgSpellNoMispell              : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: គ្មានកំហុស",\r
+DlgSpellNoChanges              : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពុំមានផ្លាស់ប្តូរ",\r
+DlgSpellOneChange              : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពាក្យមួយត្រូចបានផ្លាស់ប្តូរ",\r
+DlgSpellManyChanges            : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: %1 ពាក្យបានផ្លាស់ប្តូរ",\r
+\r
+IeSpellDownload                        : "ពុំមានកម្មវិធីពិនិត្យអក្ខរាវិរុទ្ធ ។ តើចង់ទាញយកពីណា?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "អត្ថបទ(តំលៃ)",\r
+DlgButtonType          : "ប្រភេទ",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "ឈ្មោះ",\r
+DlgCheckboxValue       : "តំលៃ",\r
+DlgCheckboxSelected    : "បានជ្រើសរើស",\r
+\r
+// Form Dialog\r
+DlgFormName            : "ឈ្មោះ",\r
+DlgFormAction  : "សកម្មភាព",\r
+DlgFormMethod  : "វិធី",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "ឈ្មោះ",\r
+DlgSelectValue         : "តំលៃ",\r
+DlgSelectSize          : "ទំហំ",\r
+DlgSelectLines         : "បន្ទាត់",\r
+DlgSelectChkMulti      : "អនុញ្ញាតអោយជ្រើសរើសច្រើន",\r
+DlgSelectOpAvail       : "ការកំណត់ជ្រើសរើស ដែលអាចកំណត់បាន",\r
+DlgSelectOpText                : "ពាក្យ",\r
+DlgSelectOpValue       : "តំលៃ",\r
+DlgSelectBtnAdd                : "បន្ថែម",\r
+DlgSelectBtnModify     : "ផ្លាស់ប្តូរ",\r
+DlgSelectBtnUp         : "លើ",\r
+DlgSelectBtnDown       : "ក្រោម",\r
+DlgSelectBtnSetValue : "Set as selected value",        //MISSING\r
+DlgSelectBtnDelete     : "លប់",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "ឈ្មោះ",\r
+DlgTextareaCols        : "ជូរឈរ",\r
+DlgTextareaRows        : "ជូរផ្តេក",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "ឈ្មោះ",\r
+DlgTextValue           : "តំលៃ",\r
+DlgTextCharWidth       : "ទទឹង អក្សរ",\r
+DlgTextMaxChars                : "អក្សរអតិបរិមា",\r
+DlgTextType                    : "ប្រភេទ",\r
+DlgTextTypeText                : "ពាក្យ",\r
+DlgTextTypePass                : "ពាក្យសំងាត់",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "ឈ្មោះ",\r
+DlgHiddenValue : "តំលៃ",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "កំណត់បញ្ជីរង្វង់",\r
+NumberedListProp       : "កំណត់បញ្េជីលេខ",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "ប្រភេទ",\r
+DlgLstTypeCircle       : "រង្វង់",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "ការេ",\r
+DlgLstTypeNumbers      : "លេខ(1, 2, 3)",\r
+DlgLstTypeLCase                : "អក្សរតូច(a, b, c)",\r
+DlgLstTypeUCase                : "អក្សរធំ(A, B, C)",\r
+DlgLstTypeSRoman       : "អក្សរឡាតាំងតូច(i, ii, iii)",\r
+DlgLstTypeLRoman       : "អក្សរឡាតាំងធំ(I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "ទូទៅ",\r
+DlgDocBackTab          : "ផ្នែកខាងក្រោយ",\r
+DlgDocColorsTab                : "ទំព័រ​និង ស៊ុម",\r
+DlgDocMetaTab          : "ទិន្នន័យមេ",\r
+\r
+DlgDocPageTitle                : "ចំណងជើងទំព័រ",\r
+DlgDocLangDir          : "ទិសដៅសរសេរភាសា",\r
+DlgDocLangDirLTR       : "ពីឆ្វេងទៅស្ដាំ(LTR)",\r
+DlgDocLangDirRTL       : "ពីស្ដាំទៅឆ្វេង(RTL)",\r
+DlgDocLangCode         : "លេខកូតភាសា",\r
+DlgDocCharSet          : "កំណត់លេខកូតភាសា",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "កំណត់លេខកូតភាសាផ្សេងទៀត",\r
+\r
+DlgDocDocType          : "ប្រភេទក្បាលទំព័រ",\r
+DlgDocDocTypeOther     : "ប្រភេទក្បាលទំព័រផ្សេងទៀត",\r
+DlgDocIncXHTML         : "បញ្ជូល XHTML",\r
+DlgDocBgColor          : "ពណ៌ខាងក្រោម",\r
+DlgDocBgImage          : "URL របស់រូបភាពខាងក្រោម",\r
+DlgDocBgNoScroll       : "ទំព័រក្រោមមិនប្តូរ",\r
+DlgDocCText                    : "អត្តបទ",\r
+DlgDocCLink                    : "ឈ្នាប់",\r
+DlgDocCVisited         : "ឈ្នាប់មើលហើយ",\r
+DlgDocCActive          : "ឈ្នាប់កំពុងមើល",\r
+DlgDocMargins          : "ស៊ុមទំព័រ",\r
+DlgDocMaTop                    : "លើ",\r
+DlgDocMaLeft           : "ឆ្វេង",\r
+DlgDocMaRight          : "ស្ដាំ",\r
+DlgDocMaBottom         : "ក្រោម",\r
+DlgDocMeIndex          : "ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",\r
+DlgDocMeDescr          : "សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",\r
+DlgDocMeAuthor         : "អ្នកនិពន្ធ",\r
+DlgDocMeCopy           : "រក្សាសិទ្ធិ៏",\r
+DlgDocPreview          : "មើលសាកល្បង",\r
+\r
+// Templates Dialog\r
+Templates                      : "ឯកសារគំរូ",\r
+DlgTemplatesTitle      : "ឯកសារគំរូ របស់អត្ថន័យ",\r
+DlgTemplatesSelMsg     : "សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ<br>(អត្ថបទនឹងបាត់បង់):",\r
+DlgTemplatesLoading    : "កំពុងអានបញ្ជីឯកសារគំរូ ។ សូមរងចាំ...",\r
+DlgTemplatesNoTpl      : "(ពុំមានឯកសារគំរូត្រូវបានកំណត់)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "អំពី",\r
+DlgAboutBrowserInfoTab : "ព៌តមានកម្មវិធីរុករក",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "ជំនាន់",\r
+DlgAboutInfo           : "សំរាប់ព៌តមានផ្សេងទៀត សូមទាក់ទង"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ko.js b/httemplate/elements/fckeditor/editor/lang/ko.js
new file mode 100644 (file)
index 0000000..0a2efa6
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Korean language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "툴바 감추기",\r
+ToolbarExpand          : "툴바 보이기",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "저장하기",\r
+NewPage                                : "새 문서",\r
+Preview                                : "미리보기",\r
+Cut                                    : "잘라내기",\r
+Copy                           : "복사하기",\r
+Paste                          : "붙여넣기",\r
+PasteText                      : "텍스트로 붙여넣기",\r
+PasteWord                      : "MS Word 형식에서 붙여넣기",\r
+Print                          : "인쇄하기",\r
+SelectAll                      : "전체선택",\r
+RemoveFormat           : "포맷 지우기",\r
+InsertLinkLbl          : "링크",\r
+InsertLink                     : "링크 삽입/변경",\r
+RemoveLink                     : "링크 삭제",\r
+Anchor                         : "책갈피 삽입/변경",\r
+InsertImageLbl         : "이미지",\r
+InsertImage                    : "이미지 삽입/변경",\r
+InsertFlashLbl         : "플래쉬",\r
+InsertFlash                    : "플래쉬 삽입/변경",\r
+InsertTableLbl         : "표",\r
+InsertTable                    : "표 삽입/변경",\r
+InsertLineLbl          : "수평선",\r
+InsertLine                     : "수평선 삽입",\r
+InsertSpecialCharLbl: "특수문자 삽입",\r
+InsertSpecialChar      : "특수문자 삽입",\r
+InsertSmileyLbl                : "아이콘",\r
+InsertSmiley           : "아이콘 삽입",\r
+About                          : "FCKeditor에 대하여",\r
+Bold                           : "진하게",\r
+Italic                         : "이텔릭",\r
+Underline                      : "밑줄",\r
+StrikeThrough          : "취소선",\r
+Subscript                      : "아래 첨자",\r
+Superscript                    : "위 첨자",\r
+LeftJustify                    : "왼쪽 정렬",\r
+CenterJustify          : "가운데 정렬",\r
+RightJustify           : "오른쪽 정렬",\r
+BlockJustify           : "양쪽 맞춤",\r
+DecreaseIndent         : "내어쓰기",\r
+IncreaseIndent         : "들여쓰기",\r
+Undo                           : "취소",\r
+Redo                           : "재실행",\r
+NumberedListLbl                : "순서있는 목록",\r
+NumberedList           : "순서있는 목록",\r
+BulletedListLbl                : "순서없는 목록",\r
+BulletedList           : "순서없는 목록",\r
+ShowTableBorders       : "표 테두리 보기",\r
+ShowDetails                    : "문서기호 보기",\r
+Style                          : "스타일",\r
+FontFormat                     : "포맷",\r
+Font                           : "폰트",\r
+FontSize                       : "글자 크기",\r
+TextColor                      : "글자 색상",\r
+BGColor                                : "배경 색상",\r
+Source                         : "소스",\r
+Find                           : "찾기",\r
+Replace                                : "바꾸기",\r
+SpellCheck                     : "철자검사",\r
+UniversalKeyboard      : "다국어 입력기",\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "폼",\r
+Checkbox               : "체크박스",\r
+RadioButton            : "라디오버튼",\r
+TextField              : "입력필드",\r
+Textarea               : "입력영역",\r
+HiddenField            : "숨김필드",\r
+Button                 : "버튼",\r
+SelectionField : "펼침목록",\r
+ImageButton            : "이미지버튼",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "링크 수정",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "가로줄 삽입",\r
+DeleteRows                     : "가로줄 삭제",\r
+InsertColumn           : "세로줄 삽입",\r
+DeleteColumns          : "세로줄 삭제",\r
+InsertCell                     : "셀 삽입",\r
+DeleteCells                    : "셀 삭제",\r
+MergeCells                     : "셀 합치기",\r
+SplitCell                      : "셀 나누기",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "셀 속성",\r
+TableProperties                : "표 속성",\r
+ImageProperties                : "이미지 속성",\r
+FlashProperties                : "플래쉬 속성",\r
+\r
+AnchorProp                     : "책갈피 속성",\r
+ButtonProp                     : "버튼 속성",\r
+CheckboxProp           : "체크박스 속성",\r
+HiddenFieldProp                : "숨김필드 속성",\r
+RadioButtonProp                : "라디오버튼 속성",\r
+ImageButtonProp                : "이미지버튼 속성",\r
+TextFieldProp          : "입력필드 속성",\r
+SelectionFieldProp     : "펼침목록 속성",\r
+TextareaProp           : "입력영역 속성",\r
+FormProp                       : "폼 속성",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML 처리중. 잠시만 기다려주십시요.",\r
+Done                           : "완료",\r
+PasteWordConfirm       : "붙여넣기 할 텍스트는 MS Word에서 복사한 것입니다. 붙여넣기 전에 MS Word 포멧을 삭제하시겠습니까?",\r
+NotCompatiblePaste     : "이 명령은 인터넷익스플로러 5.5 버전 이상에서만 작동합니다. 포멧을 삭제하지 않고 붙여넣기 하시겠습니까?",\r
+UnknownToolbarItem     : "알수없는 툴바입니다. : \"%1\"",\r
+UnknownCommand         : "알수없는 기능입니다. : \"%1\"",\r
+NotImplemented         : "기능이 실행되지 않았습니다.",\r
+UnknownToolbarSet      : "툴바 설정이 없습니다. : \"%1\"",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "예",\r
+DlgBtnCancel           : "아니오",\r
+DlgBtnClose                    : "닫기",\r
+DlgBtnBrowseServer     : "서버 보기",\r
+DlgAdvancedTag         : "자세히",\r
+DlgOpOther                     : "<기타>",\r
+DlgInfoTab                     : "정보",\r
+DlgAlertUrl                    : "URL을 입력하십시요",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<설정되지 않음>",\r
+DlgGenId                       : "ID",\r
+DlgGenLangDir          : "쓰기 방향",\r
+DlgGenLangDirLtr       : "왼쪽에서 오른쪽 (LTR)",\r
+DlgGenLangDirRtl       : "오른쪽에서 왼쪽 (RTL)",\r
+DlgGenLangCode         : "언어 코드",\r
+DlgGenAccessKey                : "엑세스 키",\r
+DlgGenName                     : "Name",\r
+DlgGenTabIndex         : "탭 순서",\r
+DlgGenLongDescr                : "URL 설명",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "이미지 설정",\r
+DlgImgInfoTab          : "이미지 정보",\r
+DlgImgBtnUpload                : "서버로 전송",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "업로드",\r
+DlgImgAlt                      : "이미지 설명",\r
+DlgImgWidth                    : "너비",\r
+DlgImgHeight           : "높이",\r
+DlgImgLockRatio                : "비율 유지",\r
+DlgBtnResetSize                : "원래 크기로",\r
+DlgImgBorder           : "테두리",\r
+DlgImgHSpace           : "수평여백",\r
+DlgImgVSpace           : "수직여백",\r
+DlgImgAlign                    : "정렬",\r
+DlgImgAlignLeft                : "왼쪽",\r
+DlgImgAlignAbsBottom: "줄아래(Abs Bottom)",\r
+DlgImgAlignAbsMiddle: "줄중간(Abs Middle)",\r
+DlgImgAlignBaseline    : "기준선",\r
+DlgImgAlignBottom      : "아래",\r
+DlgImgAlignMiddle      : "중간",\r
+DlgImgAlignRight       : "오른쪽",\r
+DlgImgAlignTextTop     : "글자위(Text Top)",\r
+DlgImgAlignTop         : "위",\r
+DlgImgPreview          : "미리보기",\r
+DlgImgAlertUrl         : "이미지 URL을 입력하십시요",\r
+DlgImgLinkTab          : "링크",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "플래쉬 등록정보",\r
+DlgFlashChkPlay                : "자동재생",\r
+DlgFlashChkLoop                : "반복",\r
+DlgFlashChkMenu                : "플래쉬메뉴 가능",\r
+DlgFlashScale          : "영역",\r
+DlgFlashScaleAll       : "모두보기",\r
+DlgFlashScaleNoBorder  : "경계선없음",\r
+DlgFlashScaleFit       : "영역자동조절",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "링크",\r
+DlgLnkInfoTab          : "링크 정보",\r
+DlgLnkTargetTab                : "타겟",\r
+\r
+DlgLnkType                     : "링크 종류",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "책갈피",\r
+DlgLnkTypeEMail                : "이메일",\r
+DlgLnkProto                    : "프로토콜",\r
+DlgLnkProtoOther       : "<기타>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "책갈피 선택",\r
+DlgLnkAnchorByName     : "책갈피 이름",\r
+DlgLnkAnchorById       : "책갈피 ID",\r
+DlgLnkNoAnchors                : "<문서에 책갈피가 없습니다.>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "이메일 주소",\r
+DlgLnkEMailSubject     : "제목",\r
+DlgLnkEMailBody                : "내용",\r
+DlgLnkUpload           : "업로드",\r
+DlgLnkBtnUpload                : "서버로 전송",\r
+\r
+DlgLnkTarget           : "타겟",\r
+DlgLnkTargetFrame      : "<프레임>",\r
+DlgLnkTargetPopup      : "<팝업창>",\r
+DlgLnkTargetBlank      : "새 창 (_blank)",\r
+DlgLnkTargetParent     : "부모 창 (_parent)",\r
+DlgLnkTargetSelf       : "현재 창 (_self)",\r
+DlgLnkTargetTop                : "최 상위 창 (_top)",\r
+DlgLnkTargetFrameName  : "타겟 프레임 이름",\r
+DlgLnkPopWinName       : "팝업창 이름",\r
+DlgLnkPopWinFeat       : "팝업창 설정",\r
+DlgLnkPopResize                : "크기조정",\r
+DlgLnkPopLocation      : "주소표시줄",\r
+DlgLnkPopMenu          : "메뉴바",\r
+DlgLnkPopScroll                : "스크롤바",\r
+DlgLnkPopStatus                : "상태바",\r
+DlgLnkPopToolbar       : "툴바",\r
+DlgLnkPopFullScrn      : "전체화면 (IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "너비",\r
+DlgLnkPopHeight                : "높이",\r
+DlgLnkPopLeft          : "왼쪽 위치",\r
+DlgLnkPopTop           : "윗쪽 위치",\r
+\r
+DlnLnkMsgNoUrl         : "링크 URL을 입력하십시요.",\r
+DlnLnkMsgNoEMail       : "이메일주소를 입력하십시요.",\r
+DlnLnkMsgNoAnchor      : "책갈피명을 입력하십시요.",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "색상 선택",\r
+DlgColorBtnClear       : "지우기",\r
+DlgColorHighlight      : "현재",\r
+DlgColorSelected       : "선택됨",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "아이콘 삽입",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "특수문자 선택",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "표 설정",\r
+DlgTableRows           : "가로줄",\r
+DlgTableColumns                : "세로줄",\r
+DlgTableBorder         : "테두리 크기",\r
+DlgTableAlign          : "정렬",\r
+DlgTableAlignNotSet    : "<설정되지 않음>",\r
+DlgTableAlignLeft      : "왼쪽",\r
+DlgTableAlignCenter    : "가운데",\r
+DlgTableAlignRight     : "오른쪽",\r
+DlgTableWidth          : "너비",\r
+DlgTableWidthPx                : "픽셀",\r
+DlgTableWidthPc                : "퍼센트",\r
+DlgTableHeight         : "높이",\r
+DlgTableCellSpace      : "셀 간격",\r
+DlgTableCellPad                : "셀 여백",\r
+DlgTableCaption                : "캡션",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "셀 설정",\r
+DlgCellWidth           : "너비",\r
+DlgCellWidthPx         : "픽셀",\r
+DlgCellWidthPc         : "퍼센트",\r
+DlgCellHeight          : "높이",\r
+DlgCellWordWrap                : "워드랩",\r
+DlgCellWordWrapNotSet  : "<설정되지 않음>",\r
+DlgCellWordWrapYes     : "예",\r
+DlgCellWordWrapNo      : "아니오",\r
+DlgCellHorAlign                : "수평 정렬",\r
+DlgCellHorAlignNotSet  : "<설정되지 않음>",\r
+DlgCellHorAlignLeft    : "왼쪽",\r
+DlgCellHorAlignCenter  : "가운데",\r
+DlgCellHorAlignRight: "오른쪽",\r
+DlgCellVerAlign                : "수직 정렬",\r
+DlgCellVerAlignNotSet  : "<설정되지 않음>",\r
+DlgCellVerAlignTop     : "위",\r
+DlgCellVerAlignMiddle  : "중간",\r
+DlgCellVerAlignBottom  : "아래",\r
+DlgCellVerAlignBaseline        : "기준선",\r
+DlgCellRowSpan         : "세로 합치기",\r
+DlgCellCollSpan                : "가로 합치기",\r
+DlgCellBackColor       : "배경 색상",\r
+DlgCellBorderColor     : "테두리 색상",\r
+DlgCellBtnSelect       : "선택",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "찾기",\r
+DlgFindFindBtn         : "찾기",\r
+DlgFindNotFoundMsg     : "문자열을 찾을 수 없습니다.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "바꾸기",\r
+DlgReplaceFindLbl              : "찾을 문자열:",\r
+DlgReplaceReplaceLbl   : "바꿀 문자열:",\r
+DlgReplaceCaseChk              : "대소문자 구분",\r
+DlgReplaceReplaceBtn   : "바꾸기",\r
+DlgReplaceReplAllBtn   : "모두 바꾸기",\r
+DlgReplaceWordChk              : "온전한 단어",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).",\r
+PasteErrorCopy : "브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요.  (Ctrl+C).",\r
+\r
+PasteAsText            : "텍스트로 붙여넣기",\r
+PasteFromWord  : "MS Word 형식에서 붙여넣기",\r
+\r
+DlgPasteMsg2   : "키보드의 (<STRONG>Ctrl+V</STRONG>) 를 이용해서 상자안에 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "폰트 설정 무시",\r
+DlgPasteRemoveStyles   : "스타일 정의 제거",\r
+DlgPasteCleanBox               : "글상자 제거",\r
+\r
+// Color Picker\r
+ColorAutomatic : "기본색상",\r
+ColorMoreColors        : "색상선택...",\r
+\r
+// Document Properties\r
+DocProps               : "문서 속성",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "책갈피 속성",\r
+DlgAnchorName          : "책갈피 이름",\r
+DlgAnchorErrorName     : "책갈피 이름을 입력하십시요.",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "사전에 없는 단어",\r
+DlgSpellChangeTo               : "변경할 단어",\r
+DlgSpellBtnIgnore              : "건너뜀",\r
+DlgSpellBtnIgnoreAll   : "모두 건너뜀",\r
+DlgSpellBtnReplace             : "변경",\r
+DlgSpellBtnReplaceAll  : "모두 변경",\r
+DlgSpellBtnUndo                        : "취소",\r
+DlgSpellNoSuggestions  : "- 추천단어 없음 -",\r
+DlgSpellProgress               : "철자검사를 진행중입니다...",\r
+DlgSpellNoMispell              : "철자검사 완료: 잘못된 철자가 없습니다.",\r
+DlgSpellNoChanges              : "철자검사 완료: 변경된 단어가 없습니다.",\r
+DlgSpellOneChange              : "철자검사 완료: 단어가 변경되었습니다.",\r
+DlgSpellManyChanges            : "철자검사 완료: %1 단어가 변경되었습니다.",\r
+\r
+IeSpellDownload                        : "철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "버튼글자(값)",\r
+DlgButtonType          : "버튼종류",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "이름",\r
+DlgCheckboxValue       : "값",\r
+DlgCheckboxSelected    : "선택됨",\r
+\r
+// Form Dialog\r
+DlgFormName            : "폼이름",\r
+DlgFormAction  : "실행경로(Action)",\r
+DlgFormMethod  : "방법(Method)",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "이름",\r
+DlgSelectValue         : "값",\r
+DlgSelectSize          : "세로크기",\r
+DlgSelectLines         : "줄",\r
+DlgSelectChkMulti      : "여러항목 선택 허용",\r
+DlgSelectOpAvail       : "선택옵션",\r
+DlgSelectOpText                : "이름",\r
+DlgSelectOpValue       : "값",\r
+DlgSelectBtnAdd                : "추가",\r
+DlgSelectBtnModify     : "변경",\r
+DlgSelectBtnUp         : "위로",\r
+DlgSelectBtnDown       : "아래로",\r
+DlgSelectBtnSetValue : "선택된것으로 설정",\r
+DlgSelectBtnDelete     : "삭제",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "이름",\r
+DlgTextareaCols        : "칸수",\r
+DlgTextareaRows        : "줄수",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "이름",\r
+DlgTextValue           : "값",\r
+DlgTextCharWidth       : "글자 너비",\r
+DlgTextMaxChars                : "최대 글자수",\r
+DlgTextType                    : "종류",\r
+DlgTextTypeText                : "문자열",\r
+DlgTextTypePass                : "비밀번호",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "이름",\r
+DlgHiddenValue : "값",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "순서없는 목록 속성",\r
+NumberedListProp       : "순서있는 목록 속성",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "종류",\r
+DlgLstTypeCircle       : "원(Circle)",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "네모점(Square)",\r
+DlgLstTypeNumbers      : "번호 (1, 2, 3)",\r
+DlgLstTypeLCase                : "소문자 (a, b, c)",\r
+DlgLstTypeUCase                : "대문자 (A, B, C)",\r
+DlgLstTypeSRoman       : "로마자 수문자 (i, ii, iii)",\r
+DlgLstTypeLRoman       : "로마자 대문자 (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "일반",\r
+DlgDocBackTab          : "배경",\r
+DlgDocColorsTab                : "색상 및 여백",\r
+DlgDocMetaTab          : "메타데이터",\r
+\r
+DlgDocPageTitle                : "페이지명",\r
+DlgDocLangDir          : "문자 쓰기방향",\r
+DlgDocLangDirLTR       : "왼쪽에서 오른쪽 (LTR)",\r
+DlgDocLangDirRTL       : "오른쪽에서 왼쪽 (RTL)",\r
+DlgDocLangCode         : "언어코드",\r
+DlgDocCharSet          : "캐릭터셋 인코딩",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "다른 캐릭터셋 인코딩",\r
+\r
+DlgDocDocType          : "문서 헤드",\r
+DlgDocDocTypeOther     : "다른 문서헤드",\r
+DlgDocIncXHTML         : "XHTML 문서정의 포함",\r
+DlgDocBgColor          : "배경색상",\r
+DlgDocBgImage          : "배경이미지 URL",\r
+DlgDocBgNoScroll       : "스크롤되지않는 배경",\r
+DlgDocCText                    : "텍스트",\r
+DlgDocCLink                    : "링크",\r
+DlgDocCVisited         : "방문한 링크(Visited)",\r
+DlgDocCActive          : "활성화된 링크(Active)",\r
+DlgDocMargins          : "페이지 여백",\r
+DlgDocMaTop                    : "위",\r
+DlgDocMaLeft           : "왼쪽",\r
+DlgDocMaRight          : "오른쪽",\r
+DlgDocMaBottom         : "아래",\r
+DlgDocMeIndex          : "문서 키워드 (콤마로 구분)",\r
+DlgDocMeDescr          : "문서 설명",\r
+DlgDocMeAuthor         : "작성자",\r
+DlgDocMeCopy           : "저작권",\r
+DlgDocPreview          : "미리보기",\r
+\r
+// Templates Dialog\r
+Templates                      : "템플릿",\r
+DlgTemplatesTitle      : "내용 템플릿",\r
+DlgTemplatesSelMsg     : "에디터에서 사용할 템플릿을 선택하십시요.<br>(지금까지 작성된 내용은 사라집니다.):",\r
+DlgTemplatesLoading    : "템플릿 목록을 불러오는중입니다. 잠시만 기다려주십시요.",\r
+DlgTemplatesNoTpl      : "(템플릿이 없습니다.)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",\r
+DlgAboutBrowserInfoTab : "브라우저 정보",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "버전",\r
+DlgAboutInfo           : "For further information go to"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/lt.js b/httemplate/elements/fckeditor/editor/lang/lt.js
new file mode 100644 (file)
index 0000000..db994d0
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Lithuanian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Sutraukti mygtukų juostą",\r
+ToolbarExpand          : "Išplėsti mygtukų juostą",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Išsaugoti",\r
+NewPage                                : "Naujas puslapis",\r
+Preview                                : "Peržiūra",\r
+Cut                                    : "Iškirpti",\r
+Copy                           : "Kopijuoti",\r
+Paste                          : "Įdėti",\r
+PasteText                      : "Įdėti kaip gryną tekstą",\r
+PasteWord                      : "Įdėti iš Word",\r
+Print                          : "Spausdinti",\r
+SelectAll                      : "Pažymėti viską",\r
+RemoveFormat           : "Panaikinti formatą",\r
+InsertLinkLbl          : "Nuoroda",\r
+InsertLink                     : "Įterpti/taisyti nuorodą",\r
+RemoveLink                     : "Panaikinti nuorodą",\r
+Anchor                         : "Įterpti/modifikuoti žymę",\r
+InsertImageLbl         : "Vaizdas",\r
+InsertImage                    : "Įterpti/taisyti vaizdą",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Įterpti/taisyti Flash",\r
+InsertTableLbl         : "Lentelė",\r
+InsertTable                    : "Įterpti/taisyti lentelę",\r
+InsertLineLbl          : "Linija",\r
+InsertLine                     : "Įterpti horizontalią liniją",\r
+InsertSpecialCharLbl: "Spec. simbolis",\r
+InsertSpecialChar      : "Įterpti specialų simbolį",\r
+InsertSmileyLbl                : "Veideliai",\r
+InsertSmiley           : "Įterpti veidelį",\r
+About                          : "Apie FCKeditor",\r
+Bold                           : "Pusjuodis",\r
+Italic                         : "Kursyvas",\r
+Underline                      : "Pabrauktas",\r
+StrikeThrough          : "Perbrauktas",\r
+Subscript                      : "Apatinis indeksas",\r
+Superscript                    : "Viršutinis indeksas",\r
+LeftJustify                    : "Lygiuoti kairę",\r
+CenterJustify          : "Centruoti",\r
+RightJustify           : "Lygiuoti dešinę",\r
+BlockJustify           : "Lygiuoti abi puses",\r
+DecreaseIndent         : "Sumažinti įtrauką",\r
+IncreaseIndent         : "Padidinti įtrauką",\r
+Undo                           : "Atšaukti",\r
+Redo                           : "Atstatyti",\r
+NumberedListLbl                : "Numeruotas sąrašas",\r
+NumberedList           : "Įterpti/Panaikinti numeruotą sąrašą",\r
+BulletedListLbl                : "Suženklintas sąrašas",\r
+BulletedList           : "Įterpti/Panaikinti suženklintą sąrašą",\r
+ShowTableBorders       : "Rodyti lentelės rėmus",\r
+ShowDetails                    : "Rodyti detales",\r
+Style                          : "Stilius",\r
+FontFormat                     : "Šrifto formatas",\r
+Font                           : "Šriftas",\r
+FontSize                       : "Šrifto dydis",\r
+TextColor                      : "Teksto spalva",\r
+BGColor                                : "Fono spalva",\r
+Source                         : "Šaltinis",\r
+Find                           : "Rasti",\r
+Replace                                : "Pakeisti",\r
+SpellCheck                     : "Rašybos tikrinimas",\r
+UniversalKeyboard      : "Universali klaviatūra",\r
+PageBreakLbl           : "Puslapių skirtukas",\r
+PageBreak                      : "Įterpti puslapių skirtuką",\r
+\r
+Form                   : "Forma",\r
+Checkbox               : "Žymimasis langelis",\r
+RadioButton            : "Žymimoji akutė",\r
+TextField              : "Teksto laukas",\r
+Textarea               : "Teksto sritis",\r
+HiddenField            : "Nerodomas laukas",\r
+Button                 : "Mygtukas",\r
+SelectionField : "Atrankos laukas",\r
+ImageButton            : "Vaizdinis mygtukas",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Taisyti nuorodą",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Įterpti eilutę",\r
+DeleteRows                     : "Šalinti eilutes",\r
+InsertColumn           : "Įterpti stulpelį",\r
+DeleteColumns          : "Šalinti stulpelius",\r
+InsertCell                     : "Įterpti langelį",\r
+DeleteCells                    : "Šalinti langelius",\r
+MergeCells                     : "Sujungti langelius",\r
+SplitCell                      : "Skaidyti langelius",\r
+TableDelete                    : "Šalinti lentelę",\r
+CellProperties         : "Langelio savybės",\r
+TableProperties                : "Lentelės savybės",\r
+ImageProperties                : "Vaizdo savybės",\r
+FlashProperties                : "Flash savybės",\r
+\r
+AnchorProp                     : "Žymės savybės",\r
+ButtonProp                     : "Mygtuko savybės",\r
+CheckboxProp           : "Žymimojo langelio savybės",\r
+HiddenFieldProp                : "Nerodomo lauko savybės",\r
+RadioButtonProp                : "Žymimosios akutės savybės",\r
+ImageButtonProp                : "Vaizdinio mygtuko savybės",\r
+TextFieldProp          : "Teksto lauko savybės",\r
+SelectionFieldProp     : "Atrankos lauko savybės",\r
+TextareaProp           : "Teksto srities savybės",\r
+FormProp                       : "Formos savybės",\r
+\r
+FontFormats                    : "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Apdorojamas XHTML. Prašome palaukti...",\r
+Done                           : "Baigta",\r
+PasteWordConfirm       : "Įdedamas tekstas yra panašus į kopiją iš Word. Ar Jūs norite prieš įdėjimą išvalyti jį?",\r
+NotCompatiblePaste     : "Ši komanda yra prieinama tik per Internet Explorer 5.5 ar aukštesnę versiją. Ar Jūs norite įterpti be valymo?",\r
+UnknownToolbarItem     : "Nežinomas mygtukų juosta elementas \"%1\"",\r
+UnknownCommand         : "Nežinomas komandos vardas \"%1\"",\r
+NotImplemented         : "Komanda nėra įgyvendinta",\r
+UnknownToolbarSet      : "Mygtukų juostos rinkinys \"%1\" neegzistuoja",\r
+NoActiveX                      : "Jūsų naršyklės saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. Jūs turite aktyvuoti opciją \"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.",\r
+BrowseServerBlocked : "Neįmanoma atidaryti naujo naršyklės lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",\r
+DialogBlocked          : "Neįmanoma atidaryti dialogo lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Nutraukti",\r
+DlgBtnClose                    : "Uždaryti",\r
+DlgBtnBrowseServer     : "Naršyti po serverį",\r
+DlgAdvancedTag         : "Papildomas",\r
+DlgOpOther                     : "<Kita>",\r
+DlgInfoTab                     : "Informacija",\r
+DlgAlertUrl                    : "Prašome įrašyti URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nėra nustatyta>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Teksto kryptis",\r
+DlgGenLangDirLtr       : "Iš kairės į dešinę (LTR)",\r
+DlgGenLangDirRtl       : "Iš dešinės į kairę (RTL)",\r
+DlgGenLangCode         : "Kalbos kodas",\r
+DlgGenAccessKey                : "Prieigos raktas",\r
+DlgGenName                     : "Vardas",\r
+DlgGenTabIndex         : "Tabuliavimo indeksas",\r
+DlgGenLongDescr                : "Ilgas aprašymas URL",\r
+DlgGenClass                    : "Stilių lentelės klasės",\r
+DlgGenTitle                    : "Konsultacinė antraštė",\r
+DlgGenContType         : "Konsultacinio turinio tipas",\r
+DlgGenLinkCharset      : "Susietų išteklių simbolių lentelė",\r
+DlgGenStyle                    : "Stilius",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Vaizdo savybės",\r
+DlgImgInfoTab          : "Vaizdo informacija",\r
+DlgImgBtnUpload                : "Siųsti į serverį",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Nusiųsti",\r
+DlgImgAlt                      : "Alternatyvus Tekstas",\r
+DlgImgWidth                    : "Plotis",\r
+DlgImgHeight           : "Aukštis",\r
+DlgImgLockRatio                : "Išlaikyti proporciją",\r
+DlgBtnResetSize                : "Atstatyti dydį",\r
+DlgImgBorder           : "Rėmelis",\r
+DlgImgHSpace           : "Hor.Erdvė",\r
+DlgImgVSpace           : "Vert.Erdvė",\r
+DlgImgAlign                    : "Lygiuoti",\r
+DlgImgAlignLeft                : "Kairę",\r
+DlgImgAlignAbsBottom: "Absoliučią apačią",\r
+DlgImgAlignAbsMiddle: "Absoliutų vidurį",\r
+DlgImgAlignBaseline    : "Apatinę liniją",\r
+DlgImgAlignBottom      : "Apačią",\r
+DlgImgAlignMiddle      : "Vidurį",\r
+DlgImgAlignRight       : "Dešinę",\r
+DlgImgAlignTextTop     : "Teksto viršūnę",\r
+DlgImgAlignTop         : "Viršūnę",\r
+DlgImgPreview          : "Peržiūra",\r
+DlgImgAlertUrl         : "Prašome įvesti vaizdo URL",\r
+DlgImgLinkTab          : "Nuoroda",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash savybės",\r
+DlgFlashChkPlay                : "Automatinis paleidimas",\r
+DlgFlashChkLoop                : "Ciklas",\r
+DlgFlashChkMenu                : "Leisti Flash meniu",\r
+DlgFlashScale          : "Mastelis",\r
+DlgFlashScaleAll       : "Rodyti visą",\r
+DlgFlashScaleNoBorder  : "Be rėmelio",\r
+DlgFlashScaleFit       : "Tikslus atitikimas",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Nuoroda",\r
+DlgLnkInfoTab          : "Nuorodos informacija",\r
+DlgLnkTargetTab                : "Paskirtis",\r
+\r
+DlgLnkType                     : "Nuorodos tipas",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Žymė šiame puslapyje",\r
+DlgLnkTypeEMail                : "El.paštas",\r
+DlgLnkProto                    : "Protokolas",\r
+DlgLnkProtoOther       : "<kitas>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Pasirinkite žymę",\r
+DlgLnkAnchorByName     : "Pagal žymės vardą",\r
+DlgLnkAnchorById       : "Pagal žymės Id",\r
+DlgLnkNoAnchors                : "<Šiame dokumente žymių nėra>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "El.pašto adresas",\r
+DlgLnkEMailSubject     : "Žinutės tema",\r
+DlgLnkEMailBody                : "Žinutės turinys",\r
+DlgLnkUpload           : "Siųsti",\r
+DlgLnkBtnUpload                : "Siųsti į serverį",\r
+\r
+DlgLnkTarget           : "Paskirties vieta",\r
+DlgLnkTargetFrame      : "<kadras>",\r
+DlgLnkTargetPopup      : "<išskleidžiamas langas>",\r
+DlgLnkTargetBlank      : "Naujas langas (_blank)",\r
+DlgLnkTargetParent     : "Pirminis langas (_parent)",\r
+DlgLnkTargetSelf       : "Tas pats langas (_self)",\r
+DlgLnkTargetTop                : "Svarbiausias langas (_top)",\r
+DlgLnkTargetFrameName  : "Paskirties kadro vardas",\r
+DlgLnkPopWinName       : "Paskirties lango vardas",\r
+DlgLnkPopWinFeat       : "Išskleidžiamo lango savybės",\r
+DlgLnkPopResize                : "Keičiamas dydis",\r
+DlgLnkPopLocation      : "Adreso juosta",\r
+DlgLnkPopMenu          : "Meniu juosta",\r
+DlgLnkPopScroll                : "Slinkties juostos",\r
+DlgLnkPopStatus                : "Būsenos juosta",\r
+DlgLnkPopToolbar       : "Mygtukų juosta",\r
+DlgLnkPopFullScrn      : "Visas ekranas (IE)",\r
+DlgLnkPopDependent     : "Priklausomas (Netscape)",\r
+DlgLnkPopWidth         : "Plotis",\r
+DlgLnkPopHeight                : "Aukštis",\r
+DlgLnkPopLeft          : "Kairė pozicija",\r
+DlgLnkPopTop           : "Viršutinė pozicija",\r
+\r
+DlnLnkMsgNoUrl         : "Prašome įvesti nuorodos URL",\r
+DlnLnkMsgNoEMail       : "Prašome įvesti el.pašto adresą",\r
+DlnLnkMsgNoAnchor      : "Prašome pasirinkti žymę",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Pasirinkite spalvą",\r
+DlgColorBtnClear       : "Trinti",\r
+DlgColorHighlight      : "Paryškinta",\r
+DlgColorSelected       : "Pažymėta",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Įterpti veidelį",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Pasirinkite specialų simbolį",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Lentelės savybės",\r
+DlgTableRows           : "Eilutės",\r
+DlgTableColumns                : "Stulpeliai",\r
+DlgTableBorder         : "Rėmelio dydis",\r
+DlgTableAlign          : "Lygiuoti",\r
+DlgTableAlignNotSet    : "<Nenustatyta>",\r
+DlgTableAlignLeft      : "Kairę",\r
+DlgTableAlignCenter    : "Centrą",\r
+DlgTableAlignRight     : "Dešinę",\r
+DlgTableWidth          : "Plotis",\r
+DlgTableWidthPx                : "taškais",\r
+DlgTableWidthPc                : "procentais",\r
+DlgTableHeight         : "Aukštis",\r
+DlgTableCellSpace      : "Tarpas tarp langelių",\r
+DlgTableCellPad                : "Trapas nuo langelio rėmo iki teksto",\r
+DlgTableCaption                : "Antraštė",\r
+DlgTableSummary                : "Santrauka",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Langelio savybės",\r
+DlgCellWidth           : "Plotis",\r
+DlgCellWidthPx         : "taškais",\r
+DlgCellWidthPc         : "procentais",\r
+DlgCellHeight          : "Aukštis",\r
+DlgCellWordWrap                : "Teksto laužymas",\r
+DlgCellWordWrapNotSet  : "<Nenustatyta>",\r
+DlgCellWordWrapYes     : "Taip",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Horizontaliai lygiuoti",\r
+DlgCellHorAlignNotSet  : "<Nenustatyta>",\r
+DlgCellHorAlignLeft    : "Kairę",\r
+DlgCellHorAlignCenter  : "Centrą",\r
+DlgCellHorAlignRight: "Dešinę",\r
+DlgCellVerAlign                : "Vertikaliai lygiuoti",\r
+DlgCellVerAlignNotSet  : "<Nenustatyta>",\r
+DlgCellVerAlignTop     : "Viršų",\r
+DlgCellVerAlignMiddle  : "Vidurį",\r
+DlgCellVerAlignBottom  : "Apačią",\r
+DlgCellVerAlignBaseline        : "Apatinę liniją",\r
+DlgCellRowSpan         : "Eilučių apjungimas",\r
+DlgCellCollSpan                : "Stulpelių apjungimas",\r
+DlgCellBackColor       : "Fono spalva",\r
+DlgCellBorderColor     : "Rėmelio spalva",\r
+DlgCellBtnSelect       : "Pažymėti...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Paieška",\r
+DlgFindFindBtn         : "Surasti",\r
+DlgFindNotFoundMsg     : "Nurodytas tekstas nerastas.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Pakeisti",\r
+DlgReplaceFindLbl              : "Surasti tekstą:",\r
+DlgReplaceReplaceLbl   : "Pakeisti tekstu:",\r
+DlgReplaceCaseChk              : "Skirti didžiąsias ir mažąsias raides",\r
+DlgReplaceReplaceBtn   : "Pakeisti",\r
+DlgReplaceReplAllBtn   : "Pakeisti viską",\r
+DlgReplaceWordChk              : "Atitikti pilną žodį",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).",\r
+PasteErrorCopy : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).",\r
+\r
+PasteAsText            : "Įdėti kaip gryną tekstą",\r
+PasteFromWord  : "Įdėti iš Word",\r
+\r
+DlgPasteMsg2   : "Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl+V</STRONG>) ir spūstelkite mygtuką <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoruoti šriftų nustatymus",\r
+DlgPasteRemoveStyles   : "Pašalinti stilių nustatymus",\r
+DlgPasteCleanBox               : "Trinti įvedimo lauką",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatinis",\r
+ColorMoreColors        : "Daugiau spalvų...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumento savybės",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Žymės savybės",\r
+DlgAnchorName          : "Žymės vardas",\r
+DlgAnchorErrorName     : "Prašome įvesti žymės vardą",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Žodyne nerastas",\r
+DlgSpellChangeTo               : "Pakeisti į",\r
+DlgSpellBtnIgnore              : "Ignoruoti",\r
+DlgSpellBtnIgnoreAll   : "Ignoruoti visus",\r
+DlgSpellBtnReplace             : "Pakeisti",\r
+DlgSpellBtnReplaceAll  : "Pakeisti visus",\r
+DlgSpellBtnUndo                        : "Atšaukti",\r
+DlgSpellNoSuggestions  : "- Nėra pasiūlymų -",\r
+DlgSpellProgress               : "Vyksta rašybos tikrinimas...",\r
+DlgSpellNoMispell              : "Rašybos tikrinimas baigtas: Nerasta rašybos klaidų",\r
+DlgSpellNoChanges              : "Rašybos tikrinimas baigtas: Nėra pakeistų žodžių",\r
+DlgSpellOneChange              : "Rašybos tikrinimas baigtas: Vienas žodis pakeistas",\r
+DlgSpellManyChanges            : "Rašybos tikrinimas baigtas: Pakeista %1 žodžių",\r
+\r
+IeSpellDownload                        : "Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekstas (Reikšmė)",\r
+DlgButtonType          : "Tipas",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Vardas",\r
+DlgCheckboxValue       : "Reikšmė",\r
+DlgCheckboxSelected    : "Pažymėtas",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Vardas",\r
+DlgFormAction  : "Veiksmas",\r
+DlgFormMethod  : "Metodas",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Vardas",\r
+DlgSelectValue         : "Reikšmė",\r
+DlgSelectSize          : "Dydis",\r
+DlgSelectLines         : "eilučių",\r
+DlgSelectChkMulti      : "Leisti daugeriopą atranką",\r
+DlgSelectOpAvail       : "Galimos parinktys",\r
+DlgSelectOpText                : "Tekstas",\r
+DlgSelectOpValue       : "Reikšmė",\r
+DlgSelectBtnAdd                : "Įtraukti",\r
+DlgSelectBtnModify     : "Modifikuoti",\r
+DlgSelectBtnUp         : "Aukštyn",\r
+DlgSelectBtnDown       : "Žemyn",\r
+DlgSelectBtnSetValue : "Laikyti pažymėta reikšme",\r
+DlgSelectBtnDelete     : "Trinti",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Vardas",\r
+DlgTextareaCols        : "Ilgis",\r
+DlgTextareaRows        : "Plotis",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Vardas",\r
+DlgTextValue           : "Reikšmė",\r
+DlgTextCharWidth       : "Ilgis simboliais",\r
+DlgTextMaxChars                : "Maksimalus simbolių skaičius",\r
+DlgTextType                    : "Tipas",\r
+DlgTextTypeText                : "Tekstas",\r
+DlgTextTypePass                : "Slaptažodis",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Vardas",\r
+DlgHiddenValue : "Reikšmė",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Suženklinto sąrašo savybės",\r
+NumberedListProp       : "Numeruoto sąrašo savybės",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tipas",\r
+DlgLstTypeCircle       : "Apskritimas",\r
+DlgLstTypeDisc         : "Diskas",\r
+DlgLstTypeSquare       : "Kvadratas",\r
+DlgLstTypeNumbers      : "Skaičiai (1, 2, 3)",\r
+DlgLstTypeLCase                : "Mažosios raidės (a, b, c)",\r
+DlgLstTypeUCase                : "Didžiosios raidės (A, B, C)",\r
+DlgLstTypeSRoman       : "Romėnų mažieji skaičiai (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Romėnų didieji skaičiai (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Bendros savybės",\r
+DlgDocBackTab          : "Fonas",\r
+DlgDocColorsTab                : "Spalvos ir kraštinės",\r
+DlgDocMetaTab          : "Meta duomenys",\r
+\r
+DlgDocPageTitle                : "Puslapio antraštė",\r
+DlgDocLangDir          : "Kalbos kryptis",\r
+DlgDocLangDirLTR       : "Iš kairės į dešinę (LTR)",\r
+DlgDocLangDirRTL       : "Iš dešinės į kairę (RTL)",\r
+DlgDocLangCode         : "Kalbos kodas",\r
+DlgDocCharSet          : "Simbolių kodavimo lentelė",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Kita simbolių kodavimo lentelė",\r
+\r
+DlgDocDocType          : "Dokumento tipo antraštė",\r
+DlgDocDocTypeOther     : "Kita dokumento tipo antraštė",\r
+DlgDocIncXHTML         : "Įtraukti XHTML deklaracijas",\r
+DlgDocBgColor          : "Fono spalva",\r
+DlgDocBgImage          : "Fono paveikslėlio nuoroda (URL)",\r
+DlgDocBgNoScroll       : "Neslenkantis fonas",\r
+DlgDocCText                    : "Tekstas",\r
+DlgDocCLink                    : "Nuoroda",\r
+DlgDocCVisited         : "Aplankyta nuoroda",\r
+DlgDocCActive          : "Aktyvi nuoroda",\r
+DlgDocMargins          : "Puslapio kraštinės",\r
+DlgDocMaTop                    : "Viršuje",\r
+DlgDocMaLeft           : "Kairėje",\r
+DlgDocMaRight          : "Dešinėje",\r
+DlgDocMaBottom         : "Apačioje",\r
+DlgDocMeIndex          : "Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",\r
+DlgDocMeDescr          : "Dokumento apibūdinimas",\r
+DlgDocMeAuthor         : "Autorius",\r
+DlgDocMeCopy           : "Autorinės teisės",\r
+DlgDocPreview          : "Peržiūra",\r
+\r
+// Templates Dialog\r
+Templates                      : "Šablonai",\r
+DlgTemplatesTitle      : "Turinio šablonai",\r
+DlgTemplatesSelMsg     : "Pasirinkite norimą šabloną<br>(<b>Dėmesio!</b> esamas turinys bus prarastas):",\r
+DlgTemplatesLoading    : "Įkeliamas šablonų sąrašas. Prašome palaukti...",\r
+DlgTemplatesNoTpl      : "(Šablonų sąrašas tuščias)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Apie",\r
+DlgAboutBrowserInfoTab : "Naršyklės informacija",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "versija",\r
+DlgAboutInfo           : "Papildomą informaciją galima gauti"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/lv.js b/httemplate/elements/fckeditor/editor/lang/lv.js
new file mode 100644 (file)
index 0000000..6809426
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Latvian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Samazināt rīku joslu",\r
+ToolbarExpand          : "Paplašināt rīku joslu",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Saglabāt",\r
+NewPage                                : "Jauna lapa",\r
+Preview                                : "Pārskatīt",\r
+Cut                                    : "Izgriezt",\r
+Copy                           : "Kopēt",\r
+Paste                          : "Ievietot",\r
+PasteText                      : "Ievietot kā vienkāršu tekstu",\r
+PasteWord                      : "Ievietot no Worda",\r
+Print                          : "Drukāt",\r
+SelectAll                      : "Iezīmēt visu",\r
+RemoveFormat           : "Noņemt stilus",\r
+InsertLinkLbl          : "Hipersaite",\r
+InsertLink                     : "Ievietot/Labot hipersaiti",\r
+RemoveLink                     : "Noņemt hipersaiti",\r
+Anchor                         : "Ievietot/Labot iezīmi",\r
+InsertImageLbl         : "Attēls",\r
+InsertImage                    : "Ievietot/Labot Attēlu",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Ievietot/Labot Flash",\r
+InsertTableLbl         : "Tabula",\r
+InsertTable                    : "Ievietot/Labot Tabulu",\r
+InsertLineLbl          : "Atdalītājsvītra",\r
+InsertLine                     : "Ievietot horizontālu Atdalītājsvītru",\r
+InsertSpecialCharLbl: "Īpašs simbols",\r
+InsertSpecialChar      : "Ievietot speciālo simbolu",\r
+InsertSmileyLbl                : "Smaidiņi",\r
+InsertSmiley           : "Ievietot smaidiņu",\r
+About                          : "Īsumā par FCKeditor",\r
+Bold                           : "Treknu šriftu",\r
+Italic                         : "Slīprakstā",\r
+Underline                      : "Apakšsvītra",\r
+StrikeThrough          : "Pārsvītrots",\r
+Subscript                      : "Zemrakstā",\r
+Superscript                    : "Augšrakstā",\r
+LeftJustify                    : "Izlīdzināt pa kreisi",\r
+CenterJustify          : "Izlīdzināt pret centru",\r
+RightJustify           : "Izlīdzināt pa labi",\r
+BlockJustify           : "Izlīdzināt malas",\r
+DecreaseIndent         : "Samazināt atkāpi",\r
+IncreaseIndent         : "Palielināt atkāpi",\r
+Undo                           : "Atcelt",\r
+Redo                           : "Atkārtot",\r
+NumberedListLbl                : "Numurēts saraksts",\r
+NumberedList           : "Ievietot/Noņemt numerēto sarakstu",\r
+BulletedListLbl                : "Izcelts saraksts",\r
+BulletedList           : "Ievietot/Noņemt izceltu sarakstu",\r
+ShowTableBorders       : "Parādīt tabulas robežas",\r
+ShowDetails                    : "Parādīt sīkāku informāciju",\r
+Style                          : "Stils",\r
+FontFormat                     : "Formāts",\r
+Font                           : "Šrifts",\r
+FontSize                       : "Izmērs",\r
+TextColor                      : "Teksta krāsa",\r
+BGColor                                : "Fona krāsa",\r
+Source                         : "HTML kods",\r
+Find                           : "Meklēt",\r
+Replace                                : "Nomainīt",\r
+SpellCheck                     : "Pareizrakstības pārbaude",\r
+UniversalKeyboard      : "Universāla klaviatūra",\r
+PageBreakLbl           : "Lapas pārtraukums",\r
+PageBreak                      : "Ievietot lapas pārtraukumu",\r
+\r
+Form                   : "Forma",\r
+Checkbox               : "Atzīmēšanas kastīte",\r
+RadioButton            : "Izvēles poga",\r
+TextField              : "Teksta rinda",\r
+Textarea               : "Teksta laukums",\r
+HiddenField            : "Paslēpta teksta rinda",\r
+Button                 : "Poga",\r
+SelectionField : "Iezīmēšanas lauks",\r
+ImageButton            : "Attēlpoga",\r
+\r
+FitWindow              : "Maksimizēt redaktora izmēru",\r
+\r
+// Context Menu\r
+EditLink                       : "Labot hipersaiti",\r
+CellCM                         : "Šūna",\r
+RowCM                          : "Rinda",\r
+ColumnCM                       : "Kolonna",\r
+InsertRow                      : "Ievietot rindu",\r
+DeleteRows                     : "Dzēst rindas",\r
+InsertColumn           : "Ievietot kolonnu",\r
+DeleteColumns          : "Dzēst kolonnas",\r
+InsertCell                     : "Ievietot rūtiņu",\r
+DeleteCells                    : "Dzēst rūtiņas",\r
+MergeCells                     : "Apvienot rūtiņas",\r
+SplitCell                      : "Sadalīt rūtiņu",\r
+TableDelete                    : "Dzēst tabulu",\r
+CellProperties         : "Rūtiņas īpašības",\r
+TableProperties                : "Tabulas īpašības",\r
+ImageProperties                : "Attēla īpašības",\r
+FlashProperties                : "Flash īpašības",\r
+\r
+AnchorProp                     : "Iezīmes īpašības",\r
+ButtonProp                     : "Pogas īpašības",\r
+CheckboxProp           : "Atzīmēšanas kastītes īpašības",\r
+HiddenFieldProp                : "Paslēptās teksta rindas īpašības",\r
+RadioButtonProp                : "Izvēles poga īpašības",\r
+ImageButtonProp                : "Attēlpogas īpašības",\r
+TextFieldProp          : "Teksta rindas  īpašības",\r
+SelectionFieldProp     : "Iezīmēšanas lauka īpašības",\r
+TextareaProp           : "Teksta laukuma īpašības",\r
+FormProp                       : "Formas īpašības",\r
+\r
+FontFormats                    : "Normāls teksts;Formatēts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Tiek apstrādāts XHTML. Lūdzu uzgaidiet...",\r
+Done                           : "Darīts",\r
+PasteWordConfirm       : "Teksta fragments, kas tiek ievietots, izskatās, ka būtu sagatavots Word'ā. Vai vēlaties to apstrādāt pirms ievietošanas?",\r
+NotCompatiblePaste     : "Šī darbība ir pieejama Internet Explorer'ī, kas jaunāks par 5.5 versiju. Vai vēlaties ievietot bez apstrādes?",\r
+UnknownToolbarItem     : "Nezināms rīku joslas objekts \"%1\"",\r
+UnknownCommand         : "Nezināmas darbības nosaukums \"%1\"",\r
+NotImplemented         : "Darbība netika paveikta",\r
+UnknownToolbarSet      : "Rīku joslas komplekts \"%1\" neeksistē",\r
+NoActiveX                      : "Interneta pārlūkprogrammas drošības uzstādījumi varētu ietekmēt dažas no redaktora īpašībām. Jābūt aktivizētai sadaļai \"Run ActiveX controls and plug-ins\". Savādāk ir iespējamas kļūdas darbībā un kļūdu paziņojumu parādīšanās.",\r
+BrowseServerBlocked : "Resursu pārlūks nevar tikt atvērts. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",\r
+DialogBlocked          : "Nav iespējams atvērt dialoglogu. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Darīts!",\r
+DlgBtnCancel           : "Atcelt",\r
+DlgBtnClose                    : "Aizvērt",\r
+DlgBtnBrowseServer     : "Skatīt servera saturu",\r
+DlgAdvancedTag         : "Izvērstais",\r
+DlgOpOther                     : "<Cits>",\r
+DlgInfoTab                     : "Informācija",\r
+DlgAlertUrl                    : "Lūdzu, ievietojiet hipersaiti",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nav iestatīts>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Valodas lasīšanas virziens",\r
+DlgGenLangDirLtr       : "No kreisās uz labo (LTR)",\r
+DlgGenLangDirRtl       : "No labās uz kreiso (RTL)",\r
+DlgGenLangCode         : "Valodas kods",\r
+DlgGenAccessKey                : "Pieejas kods",\r
+DlgGenName                     : "Nosaukums",\r
+DlgGenTabIndex         : "Ciļņu indekss",\r
+DlgGenLongDescr                : "Gara apraksta Hipersaite",\r
+DlgGenClass                    : "Stilu saraksta klases",\r
+DlgGenTitle                    : "Konsultatīvs virsraksts",\r
+DlgGenContType         : "Konsultatīvs satura tips",\r
+DlgGenLinkCharset      : "Pievienotā resursa kodu tabula",\r
+DlgGenStyle                    : "Stils",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Attēla īpašības",\r
+DlgImgInfoTab          : "Informācija par attēlu",\r
+DlgImgBtnUpload                : "Nosūtīt serverim",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Augšupielādēt",\r
+DlgImgAlt                      : "Alternatīvais teksts",\r
+DlgImgWidth                    : "Platums",\r
+DlgImgHeight           : "Augstums",\r
+DlgImgLockRatio                : "Nemainīga Augstuma/Platuma attiecība",\r
+DlgBtnResetSize                : "Atjaunot sākotnējo izmēru",\r
+DlgImgBorder           : "Rāmis",\r
+DlgImgHSpace           : "Horizontālā telpa",\r
+DlgImgVSpace           : "Vertikālā telpa",\r
+DlgImgAlign                    : "Nolīdzināt",\r
+DlgImgAlignLeft                : "Pa kreisi",\r
+DlgImgAlignAbsBottom: "Absolūti apakšā",\r
+DlgImgAlignAbsMiddle: "Absolūti vertikāli centrēts",\r
+DlgImgAlignBaseline    : "Pamatrindā",\r
+DlgImgAlignBottom      : "Apakšā",\r
+DlgImgAlignMiddle      : "Vertikāli centrēts",\r
+DlgImgAlignRight       : "Pa labi",\r
+DlgImgAlignTextTop     : "Teksta augšā",\r
+DlgImgAlignTop         : "Augšā",\r
+DlgImgPreview          : "Pārskats",\r
+DlgImgAlertUrl         : "Lūdzu norādīt attēla hipersaiti",\r
+DlgImgLinkTab          : "Hipersaite",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash īpašības",\r
+DlgFlashChkPlay                : "Automātiska atskaņošana",\r
+DlgFlashChkLoop                : "Nepārtraukti",\r
+DlgFlashChkMenu                : "Atļaut Flash izvēlni",\r
+DlgFlashScale          : "Mainīt izmēru",\r
+DlgFlashScaleAll       : "Rādīt visu",\r
+DlgFlashScaleNoBorder  : "Bez rāmja",\r
+DlgFlashScaleFit       : "Precīzs izmērs",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Hipersaite",\r
+DlgLnkInfoTab          : "Hipersaites informācija",\r
+DlgLnkTargetTab                : "Mērķis",\r
+\r
+DlgLnkType                     : "Hipersaites tips",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Iezīme šajā lapā",\r
+DlgLnkTypeEMail                : "E-pasts",\r
+DlgLnkProto                    : "Protokols",\r
+DlgLnkProtoOther       : "<cits>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Izvēlēties iezīmi",\r
+DlgLnkAnchorByName     : "Pēc iezīmes nosaukuma",\r
+DlgLnkAnchorById       : "Pēc elementa ID",\r
+DlgLnkNoAnchors                : "<Šajā dokumentā nav iezīmju>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-pasta adrese",\r
+DlgLnkEMailSubject     : "Ziņas tēma",\r
+DlgLnkEMailBody                : "Ziņas saturs",\r
+DlgLnkUpload           : "Augšupielādēt",\r
+DlgLnkBtnUpload                : "Nosūtīt serverim",\r
+\r
+DlgLnkTarget           : "Mērķis",\r
+DlgLnkTargetFrame      : "<ietvars>",\r
+DlgLnkTargetPopup      : "<uznirstošā logā>",\r
+DlgLnkTargetBlank      : "Jaunā logā (_blank)",\r
+DlgLnkTargetParent     : "Esošajā logā (_parent)",\r
+DlgLnkTargetSelf       : "Tajā pašā logā (_self)",\r
+DlgLnkTargetTop                : "Visredzamākajā logā (_top)",\r
+DlgLnkTargetFrameName  : "Mērķa ietvara nosaukums",\r
+DlgLnkPopWinName       : "Uznirstošā loga nosaukums",\r
+DlgLnkPopWinFeat       : "Uznirstošā loga nosaukums īpašības",\r
+DlgLnkPopResize                : "Ar maināmu izmēru",\r
+DlgLnkPopLocation      : "Atrašanās vietas josla",\r
+DlgLnkPopMenu          : "Izvēlnes josla",\r
+DlgLnkPopScroll                : "Ritjoslas",\r
+DlgLnkPopStatus                : "Statusa josla",\r
+DlgLnkPopToolbar       : "Rīku josla",\r
+DlgLnkPopFullScrn      : "Pilnā ekrānā (IE)",\r
+DlgLnkPopDependent     : "Atkarīgs (Netscape)",\r
+DlgLnkPopWidth         : "Platums",\r
+DlgLnkPopHeight                : "Augstums",\r
+DlgLnkPopLeft          : "Kreisā koordināte",\r
+DlgLnkPopTop           : "Augšējā koordināte",\r
+\r
+DlnLnkMsgNoUrl         : "Lūdzu norādi hipersaiti",\r
+DlnLnkMsgNoEMail       : "Lūdzu norādi e-pasta adresi",\r
+DlnLnkMsgNoAnchor      : "Lūdzu norādi iezīmi",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Izvēlies krāsu",\r
+DlgColorBtnClear       : "Dzēst",\r
+DlgColorHighlight      : "Izcelt",\r
+DlgColorSelected       : "Iezīmētais",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Ievietot smaidiņu",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Ievietot īpašu simbolu",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabulas īpašības",\r
+DlgTableRows           : "Rindas",\r
+DlgTableColumns                : "Kolonnas",\r
+DlgTableBorder         : "Rāmja izmērs",\r
+DlgTableAlign          : "Novietojums",\r
+DlgTableAlignNotSet    : "<nav norādīts>",\r
+DlgTableAlignLeft      : "Pa kreisi",\r
+DlgTableAlignCenter    : "Centrēti",\r
+DlgTableAlignRight     : "Pa labi",\r
+DlgTableWidth          : "Platums",\r
+DlgTableWidthPx                : "pikseļos",\r
+DlgTableWidthPc                : "procentuāli",\r
+DlgTableHeight         : "Augstums",\r
+DlgTableCellSpace      : "Rūtiņu atstatums",\r
+DlgTableCellPad                : "Rūtiņu nobīde",\r
+DlgTableCaption                : "Leģenda",\r
+DlgTableSummary                : "Anotācija",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Rūtiņas īpašības",\r
+DlgCellWidth           : "Platums",\r
+DlgCellWidthPx         : "pikseļi",\r
+DlgCellWidthPc         : "procentos",\r
+DlgCellHeight          : "Augstums",\r
+DlgCellWordWrap                : "Teksta pārnese",\r
+DlgCellWordWrapNotSet  : "<nav norādīta>",\r
+DlgCellWordWrapYes     : "Jā",\r
+DlgCellWordWrapNo      : "Nē",\r
+DlgCellHorAlign                : "Horizontāla novietojums",\r
+DlgCellHorAlignNotSet  : "<Nav norādīts>",\r
+DlgCellHorAlignLeft    : "Pa kreisi",\r
+DlgCellHorAlignCenter  : "Centrēti",\r
+DlgCellHorAlignRight: "Pa labi",\r
+DlgCellVerAlign                : "Vertikālais novietojums",\r
+DlgCellVerAlignNotSet  : "<nav norādīts>",\r
+DlgCellVerAlignTop     : "Augša",\r
+DlgCellVerAlignMiddle  : "Vidus",\r
+DlgCellVerAlignBottom  : "Apakša",\r
+DlgCellVerAlignBaseline        : "Pamatrindā",\r
+DlgCellRowSpan         : "Rindu pārnese",\r
+DlgCellCollSpan                : "Kolonnu pārnese",\r
+DlgCellBackColor       : "Fona krāsa",\r
+DlgCellBorderColor     : "Rāmja krāsa",\r
+DlgCellBtnSelect       : "Iezīmē...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Meklētājs",\r
+DlgFindFindBtn         : "Meklēt",\r
+DlgFindNotFoundMsg     : "Norādītā frāze netika atrasta.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Aizvietošana",\r
+DlgReplaceFindLbl              : "Meklēt:",\r
+DlgReplaceReplaceLbl   : "Nomainīt uz:",\r
+DlgReplaceCaseChk              : "Reģistrjūtīgs",\r
+DlgReplaceReplaceBtn   : "Aizvietot",\r
+DlgReplaceReplAllBtn   : "Aizvietot visu",\r
+DlgReplaceWordChk              : "Jāsakrīt pilnībā",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt izgriešanas darbību.  Lūdzu, izmantojiet (Ctrl+X, lai veiktu šo darbību.",\r
+PasteErrorCopy : "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl+C), lai veiktu šo darbību.",\r
+\r
+PasteAsText            : "Ievietot kā vienkāršu tekstu",\r
+PasteFromWord  : "Ievietot no Worda",\r
+\r
+DlgPasteMsg2   : "Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorēt iepriekš norādītos fontus",\r
+DlgPasteRemoveStyles   : "Noņemt norādītos stilus",\r
+DlgPasteCleanBox               : "Apstrādāt laukuma saturu",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automātiska",\r
+ColorMoreColors        : "Plašāka palete...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumenta īpašības",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Iezīmes īpašības",\r
+DlgAnchorName          : "Iezīmes nosaukums",\r
+DlgAnchorErrorName     : "Lūdzu norādiet iezīmes nosaukumu",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Netika atrasts vārdnīcā",\r
+DlgSpellChangeTo               : "Nomainīt uz",\r
+DlgSpellBtnIgnore              : "Ignorēt",\r
+DlgSpellBtnIgnoreAll   : "Ignorēt visu",\r
+DlgSpellBtnReplace             : "Aizvietot",\r
+DlgSpellBtnReplaceAll  : "Aizvietot visu",\r
+DlgSpellBtnUndo                        : "Atcelt",\r
+DlgSpellNoSuggestions  : "- Nav ieteikumu -",\r
+DlgSpellProgress               : "Notiek pareizrakstības pārbaude...",\r
+DlgSpellNoMispell              : "Pareizrakstības pārbaude pabeigta: kļūdas netika atrastas",\r
+DlgSpellNoChanges              : "Pareizrakstības pārbaude pabeigta: nekas netika labots",\r
+DlgSpellOneChange              : "Pareizrakstības pārbaude pabeigta: 1 vārds izmainīts",\r
+DlgSpellManyChanges            : "Pareizrakstības pārbaude pabeigta: %1 vārdi tika mainīti",\r
+\r
+IeSpellDownload                        : "Pareizrakstības pārbaudītājs nav pievienots. Vai vēlaties to lejupielādēt tagad?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Teksts (vērtība)",\r
+DlgButtonType          : "Tips",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nosaukums",\r
+DlgCheckboxValue       : "Vērtība",\r
+DlgCheckboxSelected    : "Iezīmēts",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nosaukums",\r
+DlgFormAction  : "Darbība",\r
+DlgFormMethod  : "Metode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nosaukums",\r
+DlgSelectValue         : "Vērtība",\r
+DlgSelectSize          : "Izmērs",\r
+DlgSelectLines         : "rindas",\r
+DlgSelectChkMulti      : "Atļaut vairākus iezīmējumus",\r
+DlgSelectOpAvail       : "Pieejamās iespējas",\r
+DlgSelectOpText                : "Teksts",\r
+DlgSelectOpValue       : "Vērtība",\r
+DlgSelectBtnAdd                : "Pievienot",\r
+DlgSelectBtnModify     : "Veikt izmaiņas",\r
+DlgSelectBtnUp         : "Augšup",\r
+DlgSelectBtnDown       : "Lejup",\r
+DlgSelectBtnSetValue : "Noteikt kā iezīmēto vērtību",\r
+DlgSelectBtnDelete     : "Dzēst",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nosaukums",\r
+DlgTextareaCols        : "Kolonnas",\r
+DlgTextareaRows        : "Rindas",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nosaukums",\r
+DlgTextValue           : "Vērtība",\r
+DlgTextCharWidth       : "Simbolu platums",\r
+DlgTextMaxChars                : "Simbolu maksimālais daudzums",\r
+DlgTextType                    : "Tips",\r
+DlgTextTypeText                : "Teksts",\r
+DlgTextTypePass                : "Parole",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nosaukums",\r
+DlgHiddenValue : "Vērtība",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Aizzīmju saraksta īpašības",\r
+NumberedListProp       : "Numerētā saraksta īpašības",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tips",\r
+DlgLstTypeCircle       : "Aplis",\r
+DlgLstTypeDisc         : "Disks",\r
+DlgLstTypeSquare       : "Kvadrāts",\r
+DlgLstTypeNumbers      : "Skaitļi (1, 2, 3)",\r
+DlgLstTypeLCase                : "Maziem burtiem (a, b, c)",\r
+DlgLstTypeUCase                : "Lieliem burtiem (A, B, C)",\r
+DlgLstTypeSRoman       : "Maziem romiešu cipariem (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Lieliem romiešu cipariem (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Vispārīga informācija",\r
+DlgDocBackTab          : "Fons",\r
+DlgDocColorsTab                : "Krāsas un robežu nobīdes",\r
+DlgDocMetaTab          : "META dati",\r
+\r
+DlgDocPageTitle                : "Dokumenta virsraksts <Title>",\r
+DlgDocLangDir          : "Valodas lasīšanas virziens",\r
+DlgDocLangDirLTR       : "No kreisās uz labo (LTR)",\r
+DlgDocLangDirRTL       : "No labās uz kreiso (RTL)",\r
+DlgDocLangCode         : "Valodas kods",\r
+DlgDocCharSet          : "Simbolu kodējums",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Cits simbolu kodējums",\r
+\r
+DlgDocDocType          : "Dokumenta tips",\r
+DlgDocDocTypeOther     : "Cits dokumenta tips",\r
+DlgDocIncXHTML         : "Ietvert XHTML deklarācijas",\r
+DlgDocBgColor          : "Fona krāsa",\r
+DlgDocBgImage          : "Fona attēla hipersaite",\r
+DlgDocBgNoScroll       : "Fona attēls ir fiksēts",\r
+DlgDocCText                    : "Teksts",\r
+DlgDocCLink                    : "Hipersaite",\r
+DlgDocCVisited         : "Apmeklēta hipersaite",\r
+DlgDocCActive          : "Aktīva hipersaite",\r
+DlgDocMargins          : "Lapas robežas",\r
+DlgDocMaTop                    : "Augšā",\r
+DlgDocMaLeft           : "Pa kreisi",\r
+DlgDocMaRight          : "Pa labi",\r
+DlgDocMaBottom         : "Apakšā",\r
+DlgDocMeIndex          : "Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",\r
+DlgDocMeDescr          : "Dokumenta apraksts",\r
+DlgDocMeAuthor         : "Autors",\r
+DlgDocMeCopy           : "Autortiesības",\r
+DlgDocPreview          : "Priekšskats",\r
+\r
+// Templates Dialog\r
+Templates                      : "Sagataves",\r
+DlgTemplatesTitle      : "Satura sagataves",\r
+DlgTemplatesSelMsg     : "Lūdzu, norādiet sagatavi, ko atvērt editorā<br>(patreizējie dati tiks zaudēti):",\r
+DlgTemplatesLoading    : "Notiek sagatavju saraksta ielāde. Lūdzu, uzgaidiet...",\r
+DlgTemplatesNoTpl      : "(Nav norādītas sagataves)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Par",\r
+DlgAboutBrowserInfoTab : "Informācija par pārlūkprogrammu",\r
+DlgAboutLicenseTab     : "Licence",\r
+DlgAboutVersion                : "versija",\r
+DlgAboutInfo           : "Papildus informācija ir pieejama"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/mn.js b/httemplate/elements/fckeditor/editor/lang/mn.js
new file mode 100644 (file)
index 0000000..ba8f798
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Mongolian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Багажны хэсэг эвдэх",\r
+ToolbarExpand          : "Багажны хэсэг өргөтгөх",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Хадгалах",\r
+NewPage                                : "Шинэ хуудас",\r
+Preview                                : "Уридчлан харах",\r
+Cut                                    : "Хайчлах",\r
+Copy                           : "Хуулах",\r
+Paste                          : "Буулгах",\r
+PasteText                      : "plain text-ээс буулгах",\r
+PasteWord                      : "Word-оос буулгах",\r
+Print                          : "Хэвлэх",\r
+SelectAll                      : "Бүгдийг нь сонгох",\r
+RemoveFormat           : "Формат авч хаях",\r
+InsertLinkLbl          : "Линк",\r
+InsertLink                     : "Линк Оруулах/Засварлах",\r
+RemoveLink                     : "Линк авч хаях",\r
+Anchor                         : "Insert/Edit Anchor", //MISSING\r
+InsertImageLbl         : "Зураг",\r
+InsertImage                    : "Зураг Оруулах/Засварлах",\r
+InsertFlashLbl         : "Flash",      //MISSING\r
+InsertFlash                    : "Insert/Edit Flash",  //MISSING\r
+InsertTableLbl         : "Хүснэгт",\r
+InsertTable                    : "Хүснэгт Оруулах/Засварлах",\r
+InsertLineLbl          : "Зураас",\r
+InsertLine                     : "Хөндлөн зураас оруулах",\r
+InsertSpecialCharLbl: "Онцгой тэмдэгт",\r
+InsertSpecialChar      : "Онцгой тэмдэгт оруулах",\r
+InsertSmileyLbl                : "Тодорхойлолт",\r
+InsertSmiley           : "Тодорхойлолт оруулах",\r
+About                          : "FCKeditor-н тухай",\r
+Bold                           : "Тод бүдүүн",\r
+Italic                         : "Налуу",\r
+Underline                      : "Доогуур нь зураастай болгох",\r
+StrikeThrough          : "Дундуур нь зураастай болгох",\r
+Subscript                      : "Суурь болгох",\r
+Superscript                    : "Зэрэг болгох",\r
+LeftJustify                    : "Зүүн талд байрлуулах",\r
+CenterJustify          : "Төвд байрлуулах",\r
+RightJustify           : "Баруун талд байрлуулах",\r
+BlockJustify           : "Блок хэлбэрээр байрлуулах",\r
+DecreaseIndent         : "Догол мөр нэмэх",\r
+IncreaseIndent         : "Догол мөр хасах",\r
+Undo                           : "Хүчингүй болгох",\r
+Redo                           : "Өмнөх үйлдлээ сэргээх",\r
+NumberedListLbl                : "Дугаарлагдсан жагсаалт",\r
+NumberedList           : "Дугаарлагдсан жагсаалт Оруулах/Авах",\r
+BulletedListLbl                : "Цэгтэй жагсаалт",\r
+BulletedList           : "Цэгтэй жагсаалт Оруулах/Авах",\r
+ShowTableBorders       : "Хүснэгтийн хүрээг үзүүлэх",\r
+ShowDetails                    : "Деталчлан үзүүлэх",\r
+Style                          : "Загвар",\r
+FontFormat                     : "Формат",\r
+Font                           : "Фонт",\r
+FontSize                       : "Хэмжээ",\r
+TextColor                      : "Фонтны өнгө",\r
+BGColor                                : "Фонны өнгө",\r
+Source                         : "Код",\r
+Find                           : "Хайх",\r
+Replace                                : "Солих",\r
+SpellCheck                     : "Check Spelling",     //MISSING\r
+UniversalKeyboard      : "Universal Keyboard", //MISSING\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Form",       //MISSING\r
+Checkbox               : "Checkbox",   //MISSING\r
+RadioButton            : "Radio Button",       //MISSING\r
+TextField              : "Text Field", //MISSING\r
+Textarea               : "Textarea",   //MISSING\r
+HiddenField            : "Hidden Field",       //MISSING\r
+Button                 : "Button",     //MISSING\r
+SelectionField : "Selection Field",    //MISSING\r
+ImageButton            : "Image Button",       //MISSING\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Холбоос засварлах",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Мөр оруулах",\r
+DeleteRows                     : "Мөр устгах",\r
+InsertColumn           : "Багана оруулах",\r
+DeleteColumns          : "Багана устгах",\r
+InsertCell                     : "Нүх оруулах",\r
+DeleteCells                    : "Нүх устгах",\r
+MergeCells                     : "Нүх нэгтэх",\r
+SplitCell                      : "Нүх тусгайрлах",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Хоосон зайн шинж чанар",\r
+TableProperties                : "Хүснэгт",\r
+ImageProperties                : "Зураг",\r
+FlashProperties                : "Flash Properties",   //MISSING\r
+\r
+AnchorProp                     : "Anchor Properties",  //MISSING\r
+ButtonProp                     : "Button Properties",  //MISSING\r
+CheckboxProp           : "Checkbox Properties",        //MISSING\r
+HiddenFieldProp                : "Hidden Field Properties",    //MISSING\r
+RadioButtonProp                : "Radio Button Properties",    //MISSING\r
+ImageButtonProp                : "Image Button Properties",    //MISSING\r
+TextFieldProp          : "Text Field Properties",      //MISSING\r
+SelectionFieldProp     : "Selection Field Properties", //MISSING\r
+TextareaProp           : "Textarea Properties",        //MISSING\r
+FormProp                       : "Form Properties",    //MISSING\r
+\r
+FontFormats                    : "Хэвийн;Formatted;Хаяг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",                //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML үйл явц явагдаж байна. Хүлээнэ үү...",\r
+Done                           : "Хийх",\r
+PasteWordConfirm       : "Word-оос хуулсан текстээ санаж байгааг нь буулгахыг та хүсч байна уу. Та текст-ээ буулгахын өмнө цэвэрлэх үү?",\r
+NotCompatiblePaste     : "Энэ комманд Internet Explorer-ын 5.5 буюу түүнээс дээш хувилбарт идвэхшинэ. Та цэвэрлэхгүйгээр буулгахыг хүсч байна?",\r
+UnknownToolbarItem     : "Багажны хэсгийн \"%1\" item мэдэгдэхгүй байна",\r
+UnknownCommand         : "\"%1\" комманд нэр мэдагдэхгүй байна",\r
+NotImplemented         : "Зөвшөөрөгдөхгүй комманд",\r
+UnknownToolbarSet      : "Багажны хэсэгт \"%1\" оноох, үүсээгүй байна",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Болих",\r
+DlgBtnClose                    : "Хаах",\r
+DlgBtnBrowseServer     : "Browse Server",      //MISSING\r
+DlgAdvancedTag         : "Нэмэлт",\r
+DlgOpOther                     : "<Other>",    //MISSING\r
+DlgInfoTab                     : "Info",       //MISSING\r
+DlgAlertUrl                    : "Please insert the URL",      //MISSING\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<Оноохгүй>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Хэлний чиглэл",\r
+DlgGenLangDirLtr       : "Зүүнээс баруун (LTR)",\r
+DlgGenLangDirRtl       : "Баруунаас зүүн (RTL)",\r
+DlgGenLangCode         : "Хэлний код",\r
+DlgGenAccessKey                : "Холбох түлхүүр",\r
+DlgGenName                     : "Нэр",\r
+DlgGenTabIndex         : "Tab индекс",\r
+DlgGenLongDescr                : "URL-ын тайлбар",\r
+DlgGenClass                    : "Stylesheet классууд",\r
+DlgGenTitle                    : "Зөвлөлдөх гарчиг",\r
+DlgGenContType         : "Зөвлөлдөх төрлийн агуулга",\r
+DlgGenLinkCharset      : "Тэмдэгт оноох нөөцөд холбогдсон",\r
+DlgGenStyle                    : "Загвар",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Зураг",\r
+DlgImgInfoTab          : "Зурагны мэдээлэл",\r
+DlgImgBtnUpload                : "Үүнийг сервэррүү илгээ",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Хуулах",\r
+DlgImgAlt                      : "Тайлбар текст",\r
+DlgImgWidth                    : "Өргөн",\r
+DlgImgHeight           : "Өндөр",\r
+DlgImgLockRatio                : "Lock Ratio",\r
+DlgBtnResetSize                : "хэмжээ дахин оноох",\r
+DlgImgBorder           : "Хүрээ",\r
+DlgImgHSpace           : "Хөндлөн зай",\r
+DlgImgVSpace           : "Босоо зай",\r
+DlgImgAlign                    : "Эгнээ",\r
+DlgImgAlignLeft                : "Зүүн",\r
+DlgImgAlignAbsBottom: "Abs доод талд",\r
+DlgImgAlignAbsMiddle: "Abs Дунд талд",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Доод талд",\r
+DlgImgAlignMiddle      : "Дунд талд",\r
+DlgImgAlignRight       : "Баруун",\r
+DlgImgAlignTextTop     : "Текст дээр",\r
+DlgImgAlignTop         : "Дээд талд",\r
+DlgImgPreview          : "Уридчлан харах",\r
+DlgImgAlertUrl         : "Зурагны URL-ын төрлийн сонгоно уу",\r
+DlgImgLinkTab          : "Link",       //MISSING\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",   //MISSING\r
+DlgFlashChkPlay                : "Auto Play",  //MISSING\r
+DlgFlashChkLoop                : "Loop",       //MISSING\r
+DlgFlashChkMenu                : "Enable Flash Menu",  //MISSING\r
+DlgFlashScale          : "Scale",      //MISSING\r
+DlgFlashScaleAll       : "Show all",   //MISSING\r
+DlgFlashScaleNoBorder  : "No Border",  //MISSING\r
+DlgFlashScaleFit       : "Exact Fit",  //MISSING\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Линк",\r
+DlgLnkInfoTab          : "Линкийн мэдээлэл",\r
+DlgLnkTargetTab                : "Байрлал",\r
+\r
+DlgLnkType                     : "Линкийн төрөл",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Энэ хуудасандах холбоос",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Протокол",\r
+DlgLnkProtoOther       : "<бусад>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Холбоос сонгох",\r
+DlgLnkAnchorByName     : "Холбоосын нэрээр",\r
+DlgLnkAnchorById       : "Элемэнт Id-гаар",\r
+DlgLnkNoAnchors                : "<Баримт бичиг холбоосгүй байна>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail Хаяг",\r
+DlgLnkEMailSubject     : "Message Subject",\r
+DlgLnkEMailBody                : "Message-ийн агуулга",\r
+DlgLnkUpload           : "Хуулах",\r
+DlgLnkBtnUpload                : "Үүнийг серверрүү илгээ",\r
+\r
+DlgLnkTarget           : "Байрлал",\r
+DlgLnkTargetFrame      : "<Агуулах хүрээ>",\r
+DlgLnkTargetPopup      : "<popup цонх>",\r
+DlgLnkTargetBlank      : "Шинэ цонх (_blank)",\r
+DlgLnkTargetParent     : "Эцэг цонх (_parent)",\r
+DlgLnkTargetSelf       : "Төстэй цонх (_self)",\r
+DlgLnkTargetTop                : "Хамгийн түрүүн байх цонх (_top)",\r
+DlgLnkTargetFrameName  : "Target Frame Name",  //MISSING\r
+DlgLnkPopWinName       : "Popup цонхны нэр",\r
+DlgLnkPopWinFeat       : "Popup цонхны онцлог",\r
+DlgLnkPopResize                : "Хэмжээ өөрчлөх",\r
+DlgLnkPopLocation      : "Location хэсэг",\r
+DlgLnkPopMenu          : "Meню хэсэг",\r
+DlgLnkPopScroll                : "Скрол хэсэгүүд",\r
+DlgLnkPopStatus                : "Статус хэсэг",\r
+DlgLnkPopToolbar       : "Багажны хэсэг",\r
+DlgLnkPopFullScrn      : "Цонх дүүргэх (IE)",\r
+DlgLnkPopDependent     : "Хамаатай (Netscape)",\r
+DlgLnkPopWidth         : "Өргөн",\r
+DlgLnkPopHeight                : "Өндөр",\r
+DlgLnkPopLeft          : "Зүүн байрлал",\r
+DlgLnkPopTop           : "Дээд байрлал",\r
+\r
+DlnLnkMsgNoUrl         : "Линк URL-ээ төрөлжүүлнэ үү",\r
+DlnLnkMsgNoEMail       : "Е-mail хаягаа төрөлжүүлнэ үү",\r
+DlnLnkMsgNoAnchor      : "Холбоосоо сонгоно уу",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Өнгө сонгох",\r
+DlgColorBtnClear       : "Цэвэрлэх",\r
+DlgColorHighlight      : "Өнгө",\r
+DlgColorSelected       : "Сонгогдсон",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Тодорхойлолт оруулах",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Онцгой тэмдэгт сонгох",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Хүснэгт",\r
+DlgTableRows           : "Мөр",\r
+DlgTableColumns                : "Багана",\r
+DlgTableBorder         : "Хүрээний хэмжээ",\r
+DlgTableAlign          : "Эгнээ",\r
+DlgTableAlignNotSet    : "<Оноохгүй>",\r
+DlgTableAlignLeft      : "Зүүн талд",\r
+DlgTableAlignCenter    : "Төвд",\r
+DlgTableAlignRight     : "Баруун талд",\r
+DlgTableWidth          : "Өргөн",\r
+DlgTableWidthPx                : "цэг",\r
+DlgTableWidthPc                : "хувь",\r
+DlgTableHeight         : "Өндөр",\r
+DlgTableCellSpace      : "Нүх хоорондын зай",\r
+DlgTableCellPad                : "Нүх доторлох",\r
+DlgTableCaption                : "Тайлбар",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Хоосон зайн шинж чанар",\r
+DlgCellWidth           : "Өргөн",\r
+DlgCellWidthPx         : "цэг",\r
+DlgCellWidthPc         : "хувь",\r
+DlgCellHeight          : "Өндөр",\r
+DlgCellWordWrap                : "Үг таслах",\r
+DlgCellWordWrapNotSet  : "<Оноохгүй>",\r
+DlgCellWordWrapYes     : "Тийм",\r
+DlgCellWordWrapNo      : "Үгүй",\r
+DlgCellHorAlign                : "Босоо эгнээ",\r
+DlgCellHorAlignNotSet  : "<Оноохгүй>",\r
+DlgCellHorAlignLeft    : "Зүүн",\r
+DlgCellHorAlignCenter  : "Төв",\r
+DlgCellHorAlignRight: "Баруун",\r
+DlgCellVerAlign                : "Хөндлөн эгнээ",\r
+DlgCellVerAlignNotSet  : "<Оноохгүй>",\r
+DlgCellVerAlignTop     : "Дээд тал",\r
+DlgCellVerAlignMiddle  : "Дунд",\r
+DlgCellVerAlignBottom  : "Доод тал",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Нийт мөр",\r
+DlgCellCollSpan                : "Нийт багана",\r
+DlgCellBackColor       : "Фонны өнгө",\r
+DlgCellBorderColor     : "Хүрээний өнгө",\r
+DlgCellBtnSelect       : "Сонго...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Хайх",\r
+DlgFindFindBtn         : "Хайх",\r
+DlgFindNotFoundMsg     : "Хайсан текст олсонгүй.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Солих",\r
+DlgReplaceFindLbl              : "Хайх үг/үсэг:",\r
+DlgReplaceReplaceLbl   : "Солих үг:",\r
+DlgReplaceCaseChk              : "Тэнцэх төлөв",\r
+DlgReplaceReplaceBtn   : "Солих",\r
+DlgReplaceReplAllBtn   : "Бүгдийг нь Солих",\r
+DlgReplaceWordChk              : "Тэнцэх бүтэн үг",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хослолыг ашиглана уу.",\r
+PasteErrorCopy : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хослолыг ашиглана уу.",\r
+\r
+PasteAsText            : "Plain Text-ээс буулгах",\r
+PasteFromWord  : "Word-оос буулгах",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",    //MISSING\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",       //MISSING\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",  //MISSING\r
+DlgPasteCleanBox               : "Clean Up Box",       //MISSING\r
+\r
+// Color Picker\r
+ColorAutomatic : "Автоматаар",\r
+ColorMoreColors        : "Нэмэлт өнгөнүүд...",\r
+\r
+// Document Properties\r
+DocProps               : "Document Properties",        //MISSING\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Anchor Properties",  //MISSING\r
+DlgAnchorName          : "Anchor Name",        //MISSING\r
+DlgAnchorErrorName     : "Please type the anchor name",        //MISSING\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Not in dictionary",  //MISSING\r
+DlgSpellChangeTo               : "Change to",  //MISSING\r
+DlgSpellBtnIgnore              : "Ignore",     //MISSING\r
+DlgSpellBtnIgnoreAll   : "Ignore All", //MISSING\r
+DlgSpellBtnReplace             : "Replace",    //MISSING\r
+DlgSpellBtnReplaceAll  : "Replace All",        //MISSING\r
+DlgSpellBtnUndo                        : "Undo",       //MISSING\r
+DlgSpellNoSuggestions  : "- No suggestions -", //MISSING\r
+DlgSpellProgress               : "Spell check in progress...", //MISSING\r
+DlgSpellNoMispell              : "Spell check complete: No misspellings found",        //MISSING\r
+DlgSpellNoChanges              : "Spell check complete: No words changed",     //MISSING\r
+DlgSpellOneChange              : "Spell check complete: One word changed",     //MISSING\r
+DlgSpellManyChanges            : "Spell check complete: %1 words changed",     //MISSING\r
+\r
+IeSpellDownload                        : "Spell checker not installed. Do you want to download it now?",       //MISSING\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Value)",       //MISSING\r
+DlgButtonType          : "Type",       //MISSING\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Name",       //MISSING\r
+DlgCheckboxValue       : "Value",      //MISSING\r
+DlgCheckboxSelected    : "Selected",   //MISSING\r
+\r
+// Form Dialog\r
+DlgFormName            : "Name",       //MISSING\r
+DlgFormAction  : "Action",     //MISSING\r
+DlgFormMethod  : "Method",     //MISSING\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Name",       //MISSING\r
+DlgSelectValue         : "Value",      //MISSING\r
+DlgSelectSize          : "Size",       //MISSING\r
+DlgSelectLines         : "lines",      //MISSING\r
+DlgSelectChkMulti      : "Allow multiple selections",  //MISSING\r
+DlgSelectOpAvail       : "Available Options",  //MISSING\r
+DlgSelectOpText                : "Text",       //MISSING\r
+DlgSelectOpValue       : "Value",      //MISSING\r
+DlgSelectBtnAdd                : "Add",        //MISSING\r
+DlgSelectBtnModify     : "Modify",     //MISSING\r
+DlgSelectBtnUp         : "Up", //MISSING\r
+DlgSelectBtnDown       : "Down",       //MISSING\r
+DlgSelectBtnSetValue : "Set as selected value",        //MISSING\r
+DlgSelectBtnDelete     : "Delete",     //MISSING\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Name",       //MISSING\r
+DlgTextareaCols        : "Columns",    //MISSING\r
+DlgTextareaRows        : "Rows",       //MISSING\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Name",       //MISSING\r
+DlgTextValue           : "Value",      //MISSING\r
+DlgTextCharWidth       : "Character Width",    //MISSING\r
+DlgTextMaxChars                : "Maximum Characters", //MISSING\r
+DlgTextType                    : "Type",       //MISSING\r
+DlgTextTypeText                : "Text",       //MISSING\r
+DlgTextTypePass                : "Password",   //MISSING\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Name",       //MISSING\r
+DlgHiddenValue : "Value",      //MISSING\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Bulleted List Properties",   //MISSING\r
+NumberedListProp       : "Numbered List Properties",   //MISSING\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Type",       //MISSING\r
+DlgLstTypeCircle       : "Circle",     //MISSING\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Square",     //MISSING\r
+DlgLstTypeNumbers      : "Numbers (1, 2, 3)",  //MISSING\r
+DlgLstTypeLCase                : "Lowercase Letters (a, b, c)",        //MISSING\r
+DlgLstTypeUCase                : "Uppercase Letters (A, B, C)",        //MISSING\r
+DlgLstTypeSRoman       : "Small Roman Numerals (i, ii, iii)",  //MISSING\r
+DlgLstTypeLRoman       : "Large Roman Numerals (I, II, III)",  //MISSING\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",    //MISSING\r
+DlgDocBackTab          : "Background", //MISSING\r
+DlgDocColorsTab                : "Colors and Margins", //MISSING\r
+DlgDocMetaTab          : "Meta Data",  //MISSING\r
+\r
+DlgDocPageTitle                : "Page Title", //MISSING\r
+DlgDocLangDir          : "Language Direction", //MISSING\r
+DlgDocLangDirLTR       : "Left to Right (LTR)",        //MISSING\r
+DlgDocLangDirRTL       : "Right to Left (RTL)",        //MISSING\r
+DlgDocLangCode         : "Language Code",      //MISSING\r
+DlgDocCharSet          : "Character Set Encoding",     //MISSING\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Other Character Set Encoding",       //MISSING\r
+\r
+DlgDocDocType          : "Document Type Heading",      //MISSING\r
+DlgDocDocTypeOther     : "Other Document Type Heading",        //MISSING\r
+DlgDocIncXHTML         : "Include XHTML Declarations", //MISSING\r
+DlgDocBgColor          : "Background Color",   //MISSING\r
+DlgDocBgImage          : "Background Image URL",       //MISSING\r
+DlgDocBgNoScroll       : "Nonscrolling Background",    //MISSING\r
+DlgDocCText                    : "Text",       //MISSING\r
+DlgDocCLink                    : "Link",       //MISSING\r
+DlgDocCVisited         : "Visited Link",       //MISSING\r
+DlgDocCActive          : "Active Link",        //MISSING\r
+DlgDocMargins          : "Page Margins",       //MISSING\r
+DlgDocMaTop                    : "Top",        //MISSING\r
+DlgDocMaLeft           : "Left",       //MISSING\r
+DlgDocMaRight          : "Right",      //MISSING\r
+DlgDocMaBottom         : "Bottom",     //MISSING\r
+DlgDocMeIndex          : "Document Indexing Keywords (comma separated)",       //MISSING\r
+DlgDocMeDescr          : "Document Description",       //MISSING\r
+DlgDocMeAuthor         : "Author",     //MISSING\r
+DlgDocMeCopy           : "Copyright",  //MISSING\r
+DlgDocPreview          : "Preview",    //MISSING\r
+\r
+// Templates Dialog\r
+Templates                      : "Templates",  //MISSING\r
+DlgTemplatesTitle      : "Content Templates",  //MISSING\r
+DlgTemplatesSelMsg     : "Please select the template to open in the editor<br />(the actual contents will be lost):",  //MISSING\r
+DlgTemplatesLoading    : "Loading templates list. Please wait...",     //MISSING\r
+DlgTemplatesNoTpl      : "(No templates defined)",     //MISSING\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "About",      //MISSING\r
+DlgAboutBrowserInfoTab : "Browser Info",       //MISSING\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "Хувилбар",\r
+DlgAboutInfo           : "Мэдээллээр туслах"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ms.js b/httemplate/elements/fckeditor/editor/lang/ms.js
new file mode 100644 (file)
index 0000000..efe0529
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Malay language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Collapse Toolbar",\r
+ToolbarExpand          : "Expand Toolbar",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Simpan",\r
+NewPage                                : "Helaian Baru",\r
+Preview                                : "Prebiu",\r
+Cut                                    : "Potong",\r
+Copy                           : "Salin",\r
+Paste                          : "Tampal",\r
+PasteText                      : "Tampal sebagai Text Biasa",\r
+PasteWord                      : "Tampal dari Word",\r
+Print                          : "Cetak",\r
+SelectAll                      : "Pilih Semua",\r
+RemoveFormat           : "Buang Format",\r
+InsertLinkLbl          : "Sambungan",\r
+InsertLink                     : "Masukkan/Sunting Sambungan",\r
+RemoveLink                     : "Buang Sambungan",\r
+Anchor                         : "Masukkan/Sunting Pautan",\r
+InsertImageLbl         : "Gambar",\r
+InsertImage                    : "Masukkan/Sunting Gambar",\r
+InsertFlashLbl         : "Flash",      //MISSING\r
+InsertFlash                    : "Insert/Edit Flash",  //MISSING\r
+InsertTableLbl         : "Jadual",\r
+InsertTable                    : "Masukkan/Sunting Jadual",\r
+InsertLineLbl          : "Garisan",\r
+InsertLine                     : "Masukkan Garisan Membujur",\r
+InsertSpecialCharLbl: "Huruf Istimewa",\r
+InsertSpecialChar      : "Masukkan Huruf Istimewa",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Masukkan Smiley",\r
+About                          : "Tentang FCKeditor",\r
+Bold                           : "Bold",\r
+Italic                         : "Italic",\r
+Underline                      : "Underline",\r
+StrikeThrough          : "Strike Through",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Jajaran Kiri",\r
+CenterJustify          : "Jajaran Tengah",\r
+RightJustify           : "Jajaran Kanan",\r
+BlockJustify           : "Jajaran Blok",\r
+DecreaseIndent         : "Kurangkan Inden",\r
+IncreaseIndent         : "Tambahkan Inden",\r
+Undo                           : "Batalkan",\r
+Redo                           : "Ulangkan",\r
+NumberedListLbl                : "Senarai bernombor",\r
+NumberedList           : "Masukkan/Sunting Senarai bernombor",\r
+BulletedListLbl                : "Senarai tidak bernombor",\r
+BulletedList           : "Masukkan/Sunting Senarai tidak bernombor",\r
+ShowTableBorders       : "Tunjukkan Border Jadual",\r
+ShowDetails                    : "Tunjukkan Butiran",\r
+Style                          : "Stail",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Saiz",\r
+TextColor                      : "Warna Text",\r
+BGColor                                : "Warna Latarbelakang",\r
+Source                         : "Sumber",\r
+Find                           : "Cari",\r
+Replace                                : "Ganti",\r
+SpellCheck                     : "Semak Ejaan",\r
+UniversalKeyboard      : "Papan Kekunci Universal",\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Borang",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Butang Radio",\r
+TextField              : "Text Field",\r
+Textarea               : "Textarea",\r
+HiddenField            : "Field Tersembunyi",\r
+Button                 : "Butang",\r
+SelectionField : "Field Pilihan",\r
+ImageButton            : "Butang Bergambar",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Sunting Sambungan",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Masukkan Baris",\r
+DeleteRows                     : "Buangkan Baris",\r
+InsertColumn           : "Masukkan Lajur",\r
+DeleteColumns          : "Buangkan Lajur",\r
+InsertCell                     : "Masukkan Sel",\r
+DeleteCells                    : "Buangkan Sel-sel",\r
+MergeCells                     : "Cantumkan Sel-sel",\r
+SplitCell                      : "Bahagikan Sel",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Ciri-ciri Sel",\r
+TableProperties                : "Ciri-ciri Jadual",\r
+ImageProperties                : "Ciri-ciri Gambar",\r
+FlashProperties                : "Flash Properties",   //MISSING\r
+\r
+AnchorProp                     : "Ciri-ciri Pautan",\r
+ButtonProp                     : "Ciri-ciri Butang",\r
+CheckboxProp           : "Ciri-ciri Checkbox",\r
+HiddenFieldProp                : "Ciri-ciri Field Tersembunyi",\r
+RadioButtonProp                : "Ciri-ciri Butang Radio",\r
+ImageButtonProp                : "Ciri-ciri Butang Bergambar",\r
+TextFieldProp          : "Ciri-ciri Text Field",\r
+SelectionFieldProp     : "Ciri-ciri Selection Field",\r
+TextareaProp           : "Ciri-ciri Textarea",\r
+FormProp                       : "Ciri-ciri Borang",\r
+\r
+FontFormats                    : "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",           //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Memproses XHTML. Sila tunggu...",\r
+Done                           : "Siap",\r
+PasteWordConfirm       : "Text yang anda hendak tampal adalah berasal dari Word. Adakah anda mahu membuang semua format Word sebelum tampal ke dalam text?",\r
+NotCompatiblePaste     : "Arahan ini bole dilakukan jika anda mempuunyai Internet Explorer version 5.5 atau yang lebih tinggi. Adakah anda hendak tampal text tanpa membuang format Word?",\r
+UnknownToolbarItem     : "Toolbar item tidak diketahui\"%1\"",\r
+UnknownCommand         : "Arahan tidak diketahui \"%1\"",\r
+NotImplemented         : "Arahan tidak terdapat didalam sistem",\r
+UnknownToolbarSet      : "Set toolbar \"%1\" tidak wujud",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Batal",\r
+DlgBtnClose                    : "Tutup",\r
+DlgBtnBrowseServer     : "Browse Server",\r
+DlgAdvancedTag         : "Advanced",\r
+DlgOpOther                     : "<Lain-lain>",\r
+DlgInfoTab                     : "Info",       //MISSING\r
+DlgAlertUrl                    : "Please insert the URL",      //MISSING\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<tidak di set>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Arah Tulisan",\r
+DlgGenLangDirLtr       : "Kiri ke Kanan (LTR)",\r
+DlgGenLangDirRtl       : "Kanan ke Kiri (RTL)",\r
+DlgGenLangCode         : "Kod Bahasa",\r
+DlgGenAccessKey                : "Kunci Akses",\r
+DlgGenName                     : "Nama",\r
+DlgGenTabIndex         : "Indeks Tab ",\r
+DlgGenLongDescr                : "Butiran Panjang URL",\r
+DlgGenClass                    : "Kelas-kelas Stylesheet",\r
+DlgGenTitle                    : "Tajuk Makluman",\r
+DlgGenContType         : "Jenis Kandungan Makluman",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Stail",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Ciri-ciri Imej",\r
+DlgImgInfoTab          : "Info Imej",\r
+DlgImgBtnUpload                : "Hantar ke Server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Muat Naik",\r
+DlgImgAlt                      : "Text Alternatif",\r
+DlgImgWidth                    : "Lebar",\r
+DlgImgHeight           : "Tinggi",\r
+DlgImgLockRatio                : "Tetapkan Nisbah",\r
+DlgBtnResetSize                : "Saiz Set Semula",\r
+DlgImgBorder           : "Border",\r
+DlgImgHSpace           : "Ruang Melintang",\r
+DlgImgVSpace           : "Ruang Menegak",\r
+DlgImgAlign                    : "Jajaran",\r
+DlgImgAlignLeft                : "Kiri",\r
+DlgImgAlignAbsBottom: "Bawah Mutlak",\r
+DlgImgAlignAbsMiddle: "Pertengahan Mutlak",\r
+DlgImgAlignBaseline    : "Garis Dasar",\r
+DlgImgAlignBottom      : "Bawah",\r
+DlgImgAlignMiddle      : "Pertengahan",\r
+DlgImgAlignRight       : "Kanan",\r
+DlgImgAlignTextTop     : "Atas Text",\r
+DlgImgAlignTop         : "Atas",\r
+DlgImgPreview          : "Prebiu",\r
+DlgImgAlertUrl         : "Sila taip URL untuk fail gambar",\r
+DlgImgLinkTab          : "Sambungan",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Properties",   //MISSING\r
+DlgFlashChkPlay                : "Auto Play",  //MISSING\r
+DlgFlashChkLoop                : "Loop",       //MISSING\r
+DlgFlashChkMenu                : "Enable Flash Menu",  //MISSING\r
+DlgFlashScale          : "Scale",      //MISSING\r
+DlgFlashScaleAll       : "Show all",   //MISSING\r
+DlgFlashScaleNoBorder  : "No Border",  //MISSING\r
+DlgFlashScaleFit       : "Exact Fit",  //MISSING\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Sambungan",\r
+DlgLnkInfoTab          : "Butiran Sambungan",\r
+DlgLnkTargetTab                : "Sasaran",\r
+\r
+DlgLnkType                     : "Jenis Sambungan",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Pautan dalam muka surat ini",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<lain-lain>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Sila pilih pautan",\r
+DlgLnkAnchorByName     : "dengan menggunakan nama pautan",\r
+DlgLnkAnchorById       : "dengan menggunakan ID elemen",\r
+DlgLnkNoAnchors                : "<Tiada pautan terdapat dalam dokumen ini>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Alamat E-Mail",\r
+DlgLnkEMailSubject     : "Subjek Mesej",\r
+DlgLnkEMailBody                : "Isi Kandungan Mesej",\r
+DlgLnkUpload           : "Muat Naik",\r
+DlgLnkBtnUpload                : "Hantar ke Server",\r
+\r
+DlgLnkTarget           : "Sasaran",\r
+DlgLnkTargetFrame      : "<bingkai>",\r
+DlgLnkTargetPopup      : "<tetingkap popup>",\r
+DlgLnkTargetBlank      : "Tetingkap Baru (_blank)",\r
+DlgLnkTargetParent     : "Tetingkap Parent (_parent)",\r
+DlgLnkTargetSelf       : "Tetingkap yang Sama (_self)",\r
+DlgLnkTargetTop                : "Tetingkap yang paling atas (_top)",\r
+DlgLnkTargetFrameName  : "Nama Bingkai Sasaran",\r
+DlgLnkPopWinName       : "Nama Tetingkap Popup",\r
+DlgLnkPopWinFeat       : "Ciri Tetingkap Popup",\r
+DlgLnkPopResize                : "Saiz bolehubah",\r
+DlgLnkPopLocation      : "Bar Lokasi",\r
+DlgLnkPopMenu          : "Bar Menu",\r
+DlgLnkPopScroll                : "Bar-bar skrol",\r
+DlgLnkPopStatus                : "Bar Status",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Skrin Penuh (IE)",\r
+DlgLnkPopDependent     : "Bergantungan (Netscape)",\r
+DlgLnkPopWidth         : "Lebar",\r
+DlgLnkPopHeight                : "Tinggi",\r
+DlgLnkPopLeft          : "Posisi Kiri",\r
+DlgLnkPopTop           : "Posisi Atas",\r
+\r
+DlnLnkMsgNoUrl         : "Sila taip sambungan URL",\r
+DlnLnkMsgNoEMail       : "Sila taip alamat e-mail",\r
+DlnLnkMsgNoAnchor      : "Sila pilih pautan berkenaaan",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Pilihan Warna",\r
+DlgColorBtnClear       : "Nyahwarna",\r
+DlgColorHighlight      : "Terang",\r
+DlgColorSelected       : "Dipilih",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Masukkan Smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Sila pilih huruf istimewa",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Ciri-ciri Jadual",\r
+DlgTableRows           : "Barisan",\r
+DlgTableColumns                : "Jaluran",\r
+DlgTableBorder         : "Saiz Border",\r
+DlgTableAlign          : "Penjajaran",\r
+DlgTableAlignNotSet    : "<Tidak diset>",\r
+DlgTableAlignLeft      : "Kiri",\r
+DlgTableAlignCenter    : "Tengah",\r
+DlgTableAlignRight     : "Kanan",\r
+DlgTableWidth          : "Lebar",\r
+DlgTableWidthPx                : "piksel-piksel",\r
+DlgTableWidthPc                : "peratus",\r
+DlgTableHeight         : "Tinggi",\r
+DlgTableCellSpace      : "Ruangan Antara Sel",\r
+DlgTableCellPad                : "Tambahan Ruang Sel",\r
+DlgTableCaption                : "Keterangan",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Ciri-ciri Sel",\r
+DlgCellWidth           : "Lebar",\r
+DlgCellWidthPx         : "piksel-piksel",\r
+DlgCellWidthPc         : "peratus",\r
+DlgCellHeight          : "Tinggi",\r
+DlgCellWordWrap                : "Mengulung Perkataan",\r
+DlgCellWordWrapNotSet  : "<Tidak diset>",\r
+DlgCellWordWrapYes     : "Ya",\r
+DlgCellWordWrapNo      : "Tidak",\r
+DlgCellHorAlign                : "Jajaran Membujur",\r
+DlgCellHorAlignNotSet  : "<Tidak diset>",\r
+DlgCellHorAlignLeft    : "Kiri",\r
+DlgCellHorAlignCenter  : "Tengah",\r
+DlgCellHorAlignRight: "Kanan",\r
+DlgCellVerAlign                : "Jajaran Menegak",\r
+DlgCellVerAlignNotSet  : "<Tidak diset>",\r
+DlgCellVerAlignTop     : "Atas",\r
+DlgCellVerAlignMiddle  : "Tengah",\r
+DlgCellVerAlignBottom  : "Bawah",\r
+DlgCellVerAlignBaseline        : "Garis Dasar",\r
+DlgCellRowSpan         : "Penggunaan Baris",\r
+DlgCellCollSpan                : "Penggunaan Lajur",\r
+DlgCellBackColor       : "Warna Latarbelakang",\r
+DlgCellBorderColor     : "Warna Border",\r
+DlgCellBtnSelect       : "Pilih...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Carian",\r
+DlgFindFindBtn         : "Cari",\r
+DlgFindNotFoundMsg     : "Text yang dicari tidak dijumpai.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Gantian",\r
+DlgReplaceFindLbl              : "Perkataan yang dicari:",\r
+DlgReplaceReplaceLbl   : "Diganti dengan:",\r
+DlgReplaceCaseChk              : "Padanan case huruf",\r
+DlgReplaceReplaceBtn   : "Ganti",\r
+DlgReplaceReplAllBtn   : "Ganti semua",\r
+DlgReplaceWordChk              : "Padana Keseluruhan perkataan",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",\r
+PasteErrorCopy : "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",\r
+\r
+PasteAsText            : "Tampal sebagai text biasa",\r
+PasteFromWord  : "Tampal dari perisian \"Word\"",\r
+\r
+DlgPasteMsg2   : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",    //MISSING\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignore Font Face definitions",       //MISSING\r
+DlgPasteRemoveStyles   : "Remove Styles definitions",  //MISSING\r
+DlgPasteCleanBox               : "Clean Up Box",       //MISSING\r
+\r
+// Color Picker\r
+ColorAutomatic : "Otomatik",\r
+ColorMoreColors        : "Warna lain-lain...",\r
+\r
+// Document Properties\r
+DocProps               : "Ciri-ciri dokumen",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ciri-ciri Pautan",\r
+DlgAnchorName          : "Nama Pautan",\r
+DlgAnchorErrorName     : "Sila taip nama pautan",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Tidak terdapat didalam kamus",\r
+DlgSpellChangeTo               : "Tukarkan kepada",\r
+DlgSpellBtnIgnore              : "Biar",\r
+DlgSpellBtnIgnoreAll   : "Biarkan semua",\r
+DlgSpellBtnReplace             : "Ganti",\r
+DlgSpellBtnReplaceAll  : "Gantikan Semua",\r
+DlgSpellBtnUndo                        : "Batalkan",\r
+DlgSpellNoSuggestions  : "- Tiada cadangan -",\r
+DlgSpellProgress               : "Pemeriksaan ejaan sedang diproses...",\r
+DlgSpellNoMispell              : "Pemeriksaan ejaan siap: Tiada salah ejaan",\r
+DlgSpellNoChanges              : "Pemeriksaan ejaan siap: Tiada perkataan diubah",\r
+DlgSpellOneChange              : "Pemeriksaan ejaan siap: Satu perkataan telah diubah",\r
+DlgSpellManyChanges            : "Pemeriksaan ejaan siap: %1 perkataan diubah",\r
+\r
+IeSpellDownload                        : "Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Teks (Nilai)",\r
+DlgButtonType          : "Jenis",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nama",\r
+DlgCheckboxValue       : "Nilai",\r
+DlgCheckboxSelected    : "Dipilih",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nama",\r
+DlgFormAction  : "Tindakan borang",\r
+DlgFormMethod  : "Cara borang dihantar",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nama",\r
+DlgSelectValue         : "Nilai",\r
+DlgSelectSize          : "Saiz",\r
+DlgSelectLines         : "garisan",\r
+DlgSelectChkMulti      : "Benarkan pilihan pelbagai",\r
+DlgSelectOpAvail       : "Pilihan sediada",\r
+DlgSelectOpText                : "Teks",\r
+DlgSelectOpValue       : "Nilai",\r
+DlgSelectBtnAdd                : "Tambah Pilihan",\r
+DlgSelectBtnModify     : "Ubah Pilihan",\r
+DlgSelectBtnUp         : "Naik ke atas",\r
+DlgSelectBtnDown       : "Turun ke bawah",\r
+DlgSelectBtnSetValue : "Set sebagai nilai terpilih",\r
+DlgSelectBtnDelete     : "Padam",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nama",\r
+DlgTextareaCols        : "Lajur",\r
+DlgTextareaRows        : "Baris",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nama",\r
+DlgTextValue           : "Nilai",\r
+DlgTextCharWidth       : "Lebar isian",\r
+DlgTextMaxChars                : "Isian Maksimum",\r
+DlgTextType                    : "Jenis",\r
+DlgTextTypeText                : "Teks",\r
+DlgTextTypePass                : "Kata Laluan",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nama",\r
+DlgHiddenValue : "Nilai",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Ciri-ciri senarai berpeluru",\r
+NumberedListProp       : "Ciri-ciri senarai bernombor",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Jenis",\r
+DlgLstTypeCircle       : "Circle",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Square",\r
+DlgLstTypeNumbers      : "Nombor-nombor (1, 2, 3)",\r
+DlgLstTypeLCase                : "Huruf-huruf kecil (a, b, c)",\r
+DlgLstTypeUCase                : "Huruf-huruf besar (A, B, C)",\r
+DlgLstTypeSRoman       : "Nombor Roman Kecil (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Nombor Roman Besar (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Umum",\r
+DlgDocBackTab          : "Latarbelakang",\r
+DlgDocColorsTab                : "Warna dan margin",\r
+DlgDocMetaTab          : "Data Meta",\r
+\r
+DlgDocPageTitle                : "Tajuk Muka Surat",\r
+DlgDocLangDir          : "Arah Tulisan",\r
+DlgDocLangDirLTR       : "Kiri ke Kanan (LTR)",\r
+DlgDocLangDirRTL       : "Kanan ke Kiri (RTL)",\r
+DlgDocLangCode         : "Kod Bahasa",\r
+DlgDocCharSet          : "Enkod Set Huruf",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Enkod Set Huruf yang Lain",\r
+\r
+DlgDocDocType          : "Jenis Kepala Dokumen",\r
+DlgDocDocTypeOther     : "Jenis Kepala Dokumen yang Lain",\r
+DlgDocIncXHTML         : "Masukkan pemula kod XHTML",\r
+DlgDocBgColor          : "Warna Latarbelakang",\r
+DlgDocBgImage          : "URL Gambar Latarbelakang",\r
+DlgDocBgNoScroll       : "Imej Latarbelakang tanpa Skrol",\r
+DlgDocCText                    : "Teks",\r
+DlgDocCLink                    : "Sambungan",\r
+DlgDocCVisited         : "Sambungan telah Dilawati",\r
+DlgDocCActive          : "Sambungan Aktif",\r
+DlgDocMargins          : "Margin Muka Surat",\r
+DlgDocMaTop                    : "Atas",\r
+DlgDocMaLeft           : "Kiri",\r
+DlgDocMaRight          : "Kanan",\r
+DlgDocMaBottom         : "Bawah",\r
+DlgDocMeIndex          : "Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",\r
+DlgDocMeDescr          : "Keterangan Dokumen",\r
+DlgDocMeAuthor         : "Penulis",\r
+DlgDocMeCopy           : "Hakcipta",\r
+DlgDocPreview          : "Prebiu",\r
+\r
+// Templates Dialog\r
+Templates                      : "Templat",\r
+DlgTemplatesTitle      : "Templat Kandungan",\r
+DlgTemplatesSelMsg     : "Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):",\r
+DlgTemplatesLoading    : "Senarai Templat sedang diproses. Sila Tunggu...",\r
+DlgTemplatesNoTpl      : "(Tiada Templat Disimpan)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Tentang",\r
+DlgAboutBrowserInfoTab : "Maklumat Perisian Browser",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "versi",\r
+DlgAboutInfo           : "Untuk maklumat lanjut sila pergi ke"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/nb.js b/httemplate/elements/fckeditor/editor/lang/nb.js
new file mode 100644 (file)
index 0000000..ae9fa64
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Norwegian Bokmål language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skjul verktøylinje",\r
+ToolbarExpand          : "Vis verktøylinje",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Lagre",\r
+NewPage                                : "Ny Side",\r
+Preview                                : "Forhåndsvis",\r
+Cut                                    : "Klipp ut",\r
+Copy                           : "Kopier",\r
+Paste                          : "Lim inn",\r
+PasteText                      : "Lim inn som ren tekst",\r
+PasteWord                      : "Lim inn fra Word",\r
+Print                          : "Skriv ut",\r
+SelectAll                      : "Merk alt",\r
+RemoveFormat           : "Fjern format",\r
+InsertLinkLbl          : "Lenke",\r
+InsertLink                     : "Sett inn/Rediger lenke",\r
+RemoveLink                     : "Fjern lenke",\r
+Anchor                         : "Sett inn/Rediger anker",\r
+InsertImageLbl         : "Bilde",\r
+InsertImage                    : "Sett inn/Rediger bilde",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Sett inn/Rediger Flash",\r
+InsertTableLbl         : "Tabell",\r
+InsertTable                    : "Sett inn/Rediger tabell",\r
+InsertLineLbl          : "Linje",\r
+InsertLine                     : "Sett inn horisontal linje",\r
+InsertSpecialCharLbl: "Spesielt tegn",\r
+InsertSpecialChar      : "Sett inn spesielt tegn",\r
+InsertSmileyLbl                : "Smil",\r
+InsertSmiley           : "Sett inn smil",\r
+About                          : "Om FCKeditor",\r
+Bold                           : "Fet",\r
+Italic                         : "Kursiv",\r
+Underline                      : "Understrek",\r
+StrikeThrough          : "Gjennomstrek",\r
+Subscript                      : "Senket skrift",\r
+Superscript                    : "Hevet skrift",\r
+LeftJustify                    : "Venstrejuster",\r
+CenterJustify          : "Midtjuster",\r
+RightJustify           : "Høyrejuster",\r
+BlockJustify           : "Blokkjuster",\r
+DecreaseIndent         : "Senk nivå",\r
+IncreaseIndent         : "Øk nivå",\r
+Undo                           : "Angre",\r
+Redo                           : "Gjør om",\r
+NumberedListLbl                : "Numrert liste",\r
+NumberedList           : "Sett inn/Fjern numrert liste",\r
+BulletedListLbl                : "Uordnet liste",\r
+BulletedList           : "Sett inn/Fjern uordnet liste",\r
+ShowTableBorders       : "Vis tabellrammer",\r
+ShowDetails                    : "Vis detaljer",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Skrift",\r
+FontSize                       : "Størrelse",\r
+TextColor                      : "Tekstfarge",\r
+BGColor                                : "Bakgrunnsfarge",\r
+Source                         : "Kilde",\r
+Find                           : "Finn",\r
+Replace                                : "Erstatt",\r
+SpellCheck                     : "Stavekontroll",\r
+UniversalKeyboard      : "Universelt tastatur",\r
+PageBreakLbl           : "Sideskift",\r
+PageBreak                      : "Sett inn sideskift",\r
+\r
+Form                   : "Skjema",\r
+Checkbox               : "Sjekkboks",\r
+RadioButton            : "Radioknapp",\r
+TextField              : "Tekstfelt",\r
+Textarea               : "Tekstområde",\r
+HiddenField            : "Skjult felt",\r
+Button                 : "Knapp",\r
+SelectionField : "Dropdown meny",\r
+ImageButton            : "Bildeknapp",\r
+\r
+FitWindow              : "Maksimer størrelsen på redigeringsverktøyet",\r
+\r
+// Context Menu\r
+EditLink                       : "Rediger lenke",\r
+CellCM                         : "Celle",\r
+RowCM                          : "Rader",\r
+ColumnCM                       : "Kolonne",\r
+InsertRow                      : "Sett inn rad",\r
+DeleteRows                     : "Slett rader",\r
+InsertColumn           : "Sett inn kolonne",\r
+DeleteColumns          : "Slett kolonner",\r
+InsertCell                     : "Sett inn celle",\r
+DeleteCells                    : "Slett celler",\r
+MergeCells                     : "Slå sammen celler",\r
+SplitCell                      : "Splitt celler",\r
+TableDelete                    : "Slett tabell",\r
+CellProperties         : "Celleegenskaper",\r
+TableProperties                : "Tabellegenskaper",\r
+ImageProperties                : "Bildeegenskaper",\r
+FlashProperties                : "Flash Egenskaper",\r
+\r
+AnchorProp                     : "Ankeregenskaper",\r
+ButtonProp                     : "Knappegenskaper",\r
+CheckboxProp           : "Sjekkboksegenskaper",\r
+HiddenFieldProp                : "Skjult felt egenskaper",\r
+RadioButtonProp                : "Radioknappegenskaper",\r
+ImageButtonProp                : "Bildeknappegenskaper",\r
+TextFieldProp          : "Tekstfeltegenskaper",\r
+SelectionFieldProp     : "Dropdown menyegenskaper",\r
+TextareaProp           : "Tekstfeltegenskaper",\r
+FormProp                       : "Skjemaegenskaper",\r
+\r
+FontFormats                    : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Lager XHTML. Vennligst vent...",\r
+Done                           : "Ferdig",\r
+PasteWordConfirm       : "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",\r
+NotCompatiblePaste     : "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",\r
+UnknownToolbarItem     : "Ukjent menyvalg \"%1\"",\r
+UnknownCommand         : "Ukjent kommando \"%1\"",\r
+NotImplemented         : "Kommando ikke ennå implimentert",\r
+UnknownToolbarSet      : "Verktøylinjesett \"%1\" finnes ikke",\r
+NoActiveX                      : "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",\r
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",\r
+DialogBlocked          : "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Avbryt",\r
+DlgBtnClose                    : "Lukk",\r
+DlgBtnBrowseServer     : "Bla igjennom server",\r
+DlgAdvancedTag         : "Avansert",\r
+DlgOpOther                     : "<Annet>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Vennligst skriv inn URL'en",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ikke satt>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Språkretning",\r
+DlgGenLangDirLtr       : "Venstre til høyre (VTH)",\r
+DlgGenLangDirRtl       : "Høyre til venstre (HTV)",\r
+DlgGenLangCode         : "Språk kode",\r
+DlgGenAccessKey                : "Aksessknapp",\r
+DlgGenName                     : "Navn",\r
+DlgGenTabIndex         : "Tab Indeks",\r
+DlgGenLongDescr                : "Utvidet beskrivelse",\r
+DlgGenClass                    : "Stilarkklasser",\r
+DlgGenTitle                    : "Tittel",\r
+DlgGenContType         : "Type",\r
+DlgGenLinkCharset      : "Lenket språkkart",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Bildeegenskaper",\r
+DlgImgInfoTab          : "Bildeinformasjon",\r
+DlgImgBtnUpload                : "Send det til serveren",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Last opp",\r
+DlgImgAlt                      : "Alternativ tekst",\r
+DlgImgWidth                    : "Bredde",\r
+DlgImgHeight           : "Høyde",\r
+DlgImgLockRatio                : "Lås forhold",\r
+DlgBtnResetSize                : "Tilbakestill størrelse",\r
+DlgImgBorder           : "Ramme",\r
+DlgImgHSpace           : "HMarg",\r
+DlgImgVSpace           : "VMarg",\r
+DlgImgAlign                    : "Juster",\r
+DlgImgAlignLeft                : "Venstre",\r
+DlgImgAlignAbsBottom: "Abs bunn",\r
+DlgImgAlignAbsMiddle: "Abs midten",\r
+DlgImgAlignBaseline    : "Bunnlinje",\r
+DlgImgAlignBottom      : "Bunn",\r
+DlgImgAlignMiddle      : "Midten",\r
+DlgImgAlignRight       : "Høyre",\r
+DlgImgAlignTextTop     : "Tekst topp",\r
+DlgImgAlignTop         : "Topp",\r
+DlgImgPreview          : "Forhåndsvis",\r
+DlgImgAlertUrl         : "Vennligst skriv bildeurlen",\r
+DlgImgLinkTab          : "Lenke",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Egenskaper",\r
+DlgFlashChkPlay                : "Auto Spill",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Slå på Flash meny",\r
+DlgFlashScale          : "Skaler",\r
+DlgFlashScaleAll       : "Vis alt",\r
+DlgFlashScaleNoBorder  : "Ingen ramme",\r
+DlgFlashScaleFit       : "Skaler til å passeExact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Lenke",\r
+DlgLnkInfoTab          : "Lenkeinfo",\r
+DlgLnkTargetTab                : "Mål",\r
+\r
+DlgLnkType                     : "Lenketype",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Lenke til bokmerke i teksten",\r
+DlgLnkTypeEMail                : "E-Post",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<annet>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Velg ett anker",\r
+DlgLnkAnchorByName     : "Anker etter navn",\r
+DlgLnkAnchorById       : "Element etter ID",\r
+DlgLnkNoAnchors                : "<Ingen anker i dokumentet>",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Post Addresse",\r
+DlgLnkEMailSubject     : "Meldingsemne",\r
+DlgLnkEMailBody                : "Melding",\r
+DlgLnkUpload           : "Last opp",\r
+DlgLnkBtnUpload                : "Send til server",\r
+\r
+DlgLnkTarget           : "Mål",\r
+DlgLnkTargetFrame      : "<ramme>",\r
+DlgLnkTargetPopup      : "<popup vindu>",\r
+DlgLnkTargetBlank      : "Nytt vindu (_blank)",\r
+DlgLnkTargetParent     : "Foreldre vindu (_parent)",\r
+DlgLnkTargetSelf       : "Samme vindu (_self)",\r
+DlgLnkTargetTop                : "Hele vindu (_top)",\r
+DlgLnkTargetFrameName  : "Målramme",\r
+DlgLnkPopWinName       : "Popup vindus navn",\r
+DlgLnkPopWinFeat       : "Popup vindus egenskaper",\r
+DlgLnkPopResize                : "Endre størrelse",\r
+DlgLnkPopLocation      : "Adresselinje",\r
+DlgLnkPopMenu          : "Menylinje",\r
+DlgLnkPopScroll                : "Scrollbar",\r
+DlgLnkPopStatus                : "Statuslinje",\r
+DlgLnkPopToolbar       : "Verktøylinje",\r
+DlgLnkPopFullScrn      : "Full skjerm (IE)",\r
+DlgLnkPopDependent     : "Avhenging (Netscape)",\r
+DlgLnkPopWidth         : "Bredde",\r
+DlgLnkPopHeight                : "Høyde",\r
+DlgLnkPopLeft          : "Venstre posisjon",\r
+DlgLnkPopTop           : "Topp posisjon",\r
+\r
+DlnLnkMsgNoUrl         : "Vennligst skriv inn lenkens url",\r
+DlnLnkMsgNoEMail       : "Vennligst skriv inn e-postadressen",\r
+DlnLnkMsgNoAnchor      : "Vennligst velg ett anker",\r
+DlnLnkMsgInvPopName    : "Popup vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Velg farge",\r
+DlgColorBtnClear       : "Tøm",\r
+DlgColorHighlight      : "Marker",\r
+DlgColorSelected       : "Velg",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Sett inn smil",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Velg spesielt tegn",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabellegenskaper",\r
+DlgTableRows           : "Rader",\r
+DlgTableColumns                : "Kolonner",\r
+DlgTableBorder         : "Rammestørrelse",\r
+DlgTableAlign          : "Justering",\r
+DlgTableAlignNotSet    : "<Ikke satt>",\r
+DlgTableAlignLeft      : "Venstre",\r
+DlgTableAlignCenter    : "Midtjuster",\r
+DlgTableAlignRight     : "Høyre",\r
+DlgTableWidth          : "Bredde",\r
+DlgTableWidthPx                : "pixler",\r
+DlgTableWidthPc                : "prosent",\r
+DlgTableHeight         : "Høyde",\r
+DlgTableCellSpace      : "Celle marg",\r
+DlgTableCellPad                : "Celle polstring",\r
+DlgTableCaption                : "Tittel",\r
+DlgTableSummary                : "Sammendrag",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Celle egenskaper",\r
+DlgCellWidth           : "Bredde",\r
+DlgCellWidthPx         : "pixeler",\r
+DlgCellWidthPc         : "prosent",\r
+DlgCellHeight          : "Høyde",\r
+DlgCellWordWrap                : "Tekstbrytning",\r
+DlgCellWordWrapNotSet  : "<Ikke satt>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nei",\r
+DlgCellHorAlign                : "Horisontal justering",\r
+DlgCellHorAlignNotSet  : "<Ikke satt>",\r
+DlgCellHorAlignLeft    : "Venstre",\r
+DlgCellHorAlignCenter  : "Midtjuster",\r
+DlgCellHorAlignRight: "Høyre",\r
+DlgCellVerAlign                : "Vertikal justering",\r
+DlgCellVerAlignNotSet  : "<Ikke satt>",\r
+DlgCellVerAlignTop     : "Topp",\r
+DlgCellVerAlignMiddle  : "Midten",\r
+DlgCellVerAlignBottom  : "Bunn",\r
+DlgCellVerAlignBaseline        : "Bunnlinje",\r
+DlgCellRowSpan         : "Radspenn",\r
+DlgCellCollSpan                : "Kolonnespenn",\r
+DlgCellBackColor       : "Bakgrunnsfarge",\r
+DlgCellBorderColor     : "Rammefarge",\r
+DlgCellBtnSelect       : "Velg...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Finn",\r
+DlgFindFindBtn         : "Finn",\r
+DlgFindNotFoundMsg     : "Den spesifiserte teksten ble ikke funnet.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Erstatt",\r
+DlgReplaceFindLbl              : "Finn hva:",\r
+DlgReplaceReplaceLbl   : "Erstatt med:",\r
+DlgReplaceCaseChk              : "Riktig case",\r
+DlgReplaceReplaceBtn   : "Erstatt",\r
+DlgReplaceReplAllBtn   : "Erstatt alle",\r
+DlgReplaceWordChk              : "Finn hele ordet",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",\r
+PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",\r
+\r
+PasteAsText            : "Lim inn som ren tekst",\r
+PasteFromWord  : "Lim inn fra word",\r
+\r
+DlgPasteMsg2   : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Fjern skrifttyper",\r
+DlgPasteRemoveStyles   : "Fjern stildefinisjoner",\r
+DlgPasteCleanBox               : "Tøm boksen",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisk",\r
+ColorMoreColors        : "Flere farger...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentegenskaper",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankeregenskaper",\r
+DlgAnchorName          : "Ankernavn",\r
+DlgAnchorErrorName     : "Vennligst skriv inn ankernavnet",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ikke i ordboken",\r
+DlgSpellChangeTo               : "Endre til",\r
+DlgSpellBtnIgnore              : "Ignorer",\r
+DlgSpellBtnIgnoreAll   : "Ignorer alle",\r
+DlgSpellBtnReplace             : "Erstatt",\r
+DlgSpellBtnReplaceAll  : "Erstatt alle",\r
+DlgSpellBtnUndo                        : "Angre",\r
+DlgSpellNoSuggestions  : "- ingen forslag -",\r
+DlgSpellProgress               : "Stavekontroll pågår...",\r
+DlgSpellNoMispell              : "Stavekontroll fullført: ingen feilstavinger funnet",\r
+DlgSpellNoChanges              : "Stavekontroll fullført: ingen ord endret",\r
+DlgSpellOneChange              : "Stavekontroll fullført: Ett ord endret",\r
+DlgSpellManyChanges            : "Stavekontroll fullført: %1 ord endret",\r
+\r
+IeSpellDownload                        : "Stavekontroll ikke installert, vil du laste den ned nå?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Knapp",\r
+DlgButtonTypeSbm       : "Send",\r
+DlgButtonTypeRst       : "Nullstill",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Navn",\r
+DlgCheckboxValue       : "Verdi",\r
+DlgCheckboxSelected    : "Valgt",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Navn",\r
+DlgFormAction  : "Handling",\r
+DlgFormMethod  : "Metode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Navn",\r
+DlgSelectValue         : "Verdi",\r
+DlgSelectSize          : "Størrelse",\r
+DlgSelectLines         : "Linjer",\r
+DlgSelectChkMulti      : "Tillat flervalg",\r
+DlgSelectOpAvail       : "Tilgjenglige alternativer",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Verdi",\r
+DlgSelectBtnAdd                : "Legg til",\r
+DlgSelectBtnModify     : "Endre",\r
+DlgSelectBtnUp         : "Opp",\r
+DlgSelectBtnDown       : "Ned",\r
+DlgSelectBtnSetValue : "Sett som valgt",\r
+DlgSelectBtnDelete     : "Slett",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Navn",\r
+DlgTextareaCols        : "Kolonner",\r
+DlgTextareaRows        : "Rader",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Navn",\r
+DlgTextValue           : "verdi",\r
+DlgTextCharWidth       : "Tegnbredde",\r
+DlgTextMaxChars                : "Maks antall tegn",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Passord",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Navn",\r
+DlgHiddenValue : "Verdi",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Uordnet listeegenskaper",\r
+NumberedListProp       : "Ordnet listeegenskaper",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Sirkel",\r
+DlgLstTypeDisc         : "Hel sirkel",\r
+DlgLstTypeSquare       : "Firkant",\r
+DlgLstTypeNumbers      : "Numre(1, 2, 3)",\r
+DlgLstTypeLCase                : "Små bokstaver (a, b, c)",\r
+DlgLstTypeUCase                : "Store bokstaver(A, B, C)",\r
+DlgLstTypeSRoman       : "Små romerske tall(i, ii, iii)",\r
+DlgLstTypeLRoman       : "Store romerske tall(I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Generalt",\r
+DlgDocBackTab          : "Bakgrunn",\r
+DlgDocColorsTab                : "Farger og marginer",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Sidetittel",\r
+DlgDocLangDir          : "Språkretning",\r
+DlgDocLangDirLTR       : "Venstre til høyre (LTR)",\r
+DlgDocLangDirRTL       : "Høyre til venstre (RTL)",\r
+DlgDocLangCode         : "Språkkode",\r
+DlgDocCharSet          : "Tegnsett",\r
+DlgDocCharSetCE                : "Sentraleuropeisk",\r
+DlgDocCharSetCT                : "Tradisonell kinesisk(Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Gresk",\r
+DlgDocCharSetJP                : "Japansk",\r
+DlgDocCharSetKR                : "Koreansk",\r
+DlgDocCharSetTR                : "Tyrkisk",\r
+DlgDocCharSetUN                : "Unikode (UTF-8)",\r
+DlgDocCharSetWE                : "Vesteuropeisk",\r
+DlgDocCharSetOther     : "Annet tegnsett",\r
+\r
+DlgDocDocType          : "Dokumenttype header",\r
+DlgDocDocTypeOther     : "Annet dokumenttype header",\r
+DlgDocIncXHTML         : "Inkulder XHTML deklarasjon",\r
+DlgDocBgColor          : "Bakgrunnsfarge",\r
+DlgDocBgImage          : "Bakgrunnsbilde url",\r
+DlgDocBgNoScroll       : "Ikke scroll bakgrunnsbilde",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Besøkt lenke",\r
+DlgDocCActive          : "Aktiv lenke",\r
+DlgDocMargins          : "Sidemargin",\r
+DlgDocMaTop                    : "Topp",\r
+DlgDocMaLeft           : "Venstre",\r
+DlgDocMaRight          : "Høyre",\r
+DlgDocMaBottom         : "Bunn",\r
+DlgDocMeIndex          : "Dokument nøkkelord (kommaseparert)",\r
+DlgDocMeDescr          : "Dokumentbeskrivelse",\r
+DlgDocMeAuthor         : "Forfatter",\r
+DlgDocMeCopy           : "Kopirett",\r
+DlgDocPreview          : "Forhåndsvising",\r
+\r
+// Templates Dialog\r
+Templates                      : "Maler",\r
+DlgTemplatesTitle      : "Innholdsmaler",\r
+DlgTemplatesSelMsg     : "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",\r
+DlgTemplatesLoading    : "Laster malliste. Vennligst vent...",\r
+DlgTemplatesNoTpl      : "(Ingen maler definert)",\r
+DlgTemplatesReplace    : "Erstatt faktisk innold",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Om",\r
+DlgAboutBrowserInfoTab : "Nettleserinfo",\r
+DlgAboutLicenseTab     : "Lisens",\r
+DlgAboutVersion                : "versjon",\r
+DlgAboutInfo           : "For further information go to"       //MISSING\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/nl.js b/httemplate/elements/fckeditor/editor/lang/nl.js
new file mode 100644 (file)
index 0000000..f6b26b4
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Dutch language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Menubalk inklappen",\r
+ToolbarExpand          : "Menubalk uitklappen",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Opslaan",\r
+NewPage                                : "Nieuwe pagina",\r
+Preview                                : "Voorbeeld",\r
+Cut                                    : "Knippen",\r
+Copy                           : "Kopiëren",\r
+Paste                          : "Plakken",\r
+PasteText                      : "Plakken als platte tekst",\r
+PasteWord                      : "Plakken als Word-gegevens",\r
+Print                          : "Printen",\r
+SelectAll                      : "Alles selecteren",\r
+RemoveFormat           : "Opmaak verwijderen",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Link invoegen/wijzigen",\r
+RemoveLink                     : "Link verwijderen",\r
+Anchor                         : "Interne link",\r
+InsertImageLbl         : "Afbeelding",\r
+InsertImage                    : "Afbeelding invoegen/wijzigen",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash invoegen/wijzigen",\r
+InsertTableLbl         : "Tabel",\r
+InsertTable                    : "Tabel invoegen/wijzigen",\r
+InsertLineLbl          : "Lijn",\r
+InsertLine                     : "Invoegen horizontale lijn",\r
+InsertSpecialCharLbl: "Speciale tekens",\r
+InsertSpecialChar      : "Speciaal teken invoegen",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Smiley invoegen",\r
+About                          : "Over FCKeditor",\r
+Bold                           : "Vet",\r
+Italic                         : "Schuingedrukt",\r
+Underline                      : "Onderstreept",\r
+StrikeThrough          : "Doorhalen",\r
+Subscript                      : "Subscript",\r
+Superscript                    : "Superscript",\r
+LeftJustify                    : "Links uitlijnen",\r
+CenterJustify          : "Centreren",\r
+RightJustify           : "Rechts uitlijnen",\r
+BlockJustify           : "Uitvullen",\r
+DecreaseIndent         : "Inspringen verkleinen",\r
+IncreaseIndent         : "Inspringen vergroten",\r
+Undo                           : "Ongedaan maken",\r
+Redo                           : "Opnieuw uitvoeren",\r
+NumberedListLbl                : "Genummerde lijst",\r
+NumberedList           : "Genummerde lijst invoegen/verwijderen",\r
+BulletedListLbl                : "Opsomming",\r
+BulletedList           : "Opsomming invoegen/verwijderen",\r
+ShowTableBorders       : "Randen tabel weergeven",\r
+ShowDetails                    : "Details weergeven",\r
+Style                          : "Stijl",\r
+FontFormat                     : "Opmaak",\r
+Font                           : "Lettertype",\r
+FontSize                       : "Grootte",\r
+TextColor                      : "Tekstkleur",\r
+BGColor                                : "Achtergrondkleur",\r
+Source                         : "Code",\r
+Find                           : "Zoeken",\r
+Replace                                : "Vervangen",\r
+SpellCheck                     : "Spellingscontrole",\r
+UniversalKeyboard      : "Universeel toetsenbord",\r
+PageBreakLbl           : "Pagina-einde",\r
+PageBreak                      : "Pagina-einde invoegen",\r
+\r
+Form                   : "Formulier",\r
+Checkbox               : "Aanvinkvakje",\r
+RadioButton            : "Selectievakje",\r
+TextField              : "Tekstveld",\r
+Textarea               : "Tekstvak",\r
+HiddenField            : "Verborgen veld",\r
+Button                 : "Knop",\r
+SelectionField : "Selectieveld",\r
+ImageButton            : "Afbeeldingsknop",\r
+\r
+FitWindow              : "De editor maximaliseren",\r
+\r
+// Context Menu\r
+EditLink                       : "Link wijzigen",\r
+CellCM                         : "Cel",\r
+RowCM                          : "Rij",\r
+ColumnCM                       : "Kolom",\r
+InsertRow                      : "Rij invoegen",\r
+DeleteRows                     : "Rijen verwijderen",\r
+InsertColumn           : "Kolom invoegen",\r
+DeleteColumns          : "Kolommen verwijderen",\r
+InsertCell                     : "Cel",\r
+DeleteCells                    : "Cellen verwijderen",\r
+MergeCells                     : "Cellen samenvoegen",\r
+SplitCell                      : "Cellen splitsen",\r
+TableDelete                    : "Tabel verwijderen",\r
+CellProperties         : "Eigenschappen cel",\r
+TableProperties                : "Eigenschappen tabel",\r
+ImageProperties                : "Eigenschappen afbeelding",\r
+FlashProperties                : "Eigenschappen Flash",\r
+\r
+AnchorProp                     : "Eigenschappen interne link",\r
+ButtonProp                     : "Eigenschappen knop",\r
+CheckboxProp           : "Eigenschappen aanvinkvakje",\r
+HiddenFieldProp                : "Eigenschappen verborgen veld",\r
+RadioButtonProp                : "Eigenschappen selectievakje",\r
+ImageButtonProp                : "Eigenschappen afbeeldingsknop",\r
+TextFieldProp          : "Eigenschappen tekstveld",\r
+SelectionFieldProp     : "Eigenschappen selectieveld",\r
+TextareaProp           : "Eigenschappen tekstvak",\r
+FormProp                       : "Eigenschappen formulier",\r
+\r
+FontFormats                    : "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)",         //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Bezig met verwerken XHTML. Even geduld aub...",\r
+Done                           : "Klaar",\r
+PasteWordConfirm       : "De tekst die je plakte lijkt gekopieerd uit te zijn Word. Wil je de tekst opschonen voordat deze geplakt wordt?",\r
+NotCompatiblePaste     : "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder op te schonen?",\r
+UnknownToolbarItem     : "Onbekend item op menubalk \"%1\"",\r
+UnknownCommand         : "Onbekende opdrachtnaam: \"%1\"",\r
+NotImplemented         : "Opdracht niet geïmplementeerd.",\r
+UnknownToolbarSet      : "Menubalk \"%1\" bestaat niet.",\r
+NoActiveX                      : "De beveilingsinstellingen van je browser zouden sommige functies van de editor kunnen beperken. De optie \"Activeer ActiveX-elementen en plug-ins\" dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.",\r
+BrowseServerBlocked : "De bestandsbrowser kon niet geopend worden. Zorg ervoor dat pop-up-blokkeerders uit staan.",\r
+DialogBlocked          : "Kan het dialoogvenster niet weergeven. Zorg ervoor dat pop-up-blokkeerders uit staan.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Annuleren",\r
+DlgBtnClose                    : "Afsluiten",\r
+DlgBtnBrowseServer     : "Bladeren op server",\r
+DlgAdvancedTag         : "Geavanceerd",\r
+DlgOpOther                     : "<Anders>",\r
+DlgInfoTab                     : "Informatie",\r
+DlgAlertUrl                    : "Geef URL op",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<niet ingevuld>",\r
+DlgGenId                       : "Kenmerk",\r
+DlgGenLangDir          : "Schrijfrichting",\r
+DlgGenLangDirLtr       : "Links naar rechts (LTR)",\r
+DlgGenLangDirRtl       : "Rechts naar links (RTL)",\r
+DlgGenLangCode         : "Taalcode",\r
+DlgGenAccessKey                : "Toegangstoets",\r
+DlgGenName                     : "Naam",\r
+DlgGenTabIndex         : "Tabvolgorde",\r
+DlgGenLongDescr                : "Lange URL-omschrijving",\r
+DlgGenClass                    : "Stylesheet-klassen",\r
+DlgGenTitle                    : "Aanbevolen titel",\r
+DlgGenContType         : "Aanbevolen content-type",\r
+DlgGenLinkCharset      : "Karakterset van gelinkte bron",\r
+DlgGenStyle                    : "Stijl",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Eigenschappen afbeelding",\r
+DlgImgInfoTab          : "Informatie afbeelding",\r
+DlgImgBtnUpload                : "Naar server verzenden",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Upload",\r
+DlgImgAlt                      : "Alternatieve tekst",\r
+DlgImgWidth                    : "Breedte",\r
+DlgImgHeight           : "Hoogte",\r
+DlgImgLockRatio                : "Afmetingen vergrendelen",\r
+DlgBtnResetSize                : "Afmetingen resetten",\r
+DlgImgBorder           : "Rand",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Uitlijning",\r
+DlgImgAlignLeft                : "Links",\r
+DlgImgAlignAbsBottom: "Absoluut-onder",\r
+DlgImgAlignAbsMiddle: "Absoluut-midden",\r
+DlgImgAlignBaseline    : "Basislijn",\r
+DlgImgAlignBottom      : "Beneden",\r
+DlgImgAlignMiddle      : "Midden",\r
+DlgImgAlignRight       : "Rechts",\r
+DlgImgAlignTextTop     : "Boven tekst",\r
+DlgImgAlignTop         : "Boven",\r
+DlgImgPreview          : "Voorbeeld",\r
+DlgImgAlertUrl         : "Geef de URL van de afbeelding",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Eigenschappen Flash",\r
+DlgFlashChkPlay                : "Automatisch afspelen",\r
+DlgFlashChkLoop                : "Herhalen",\r
+DlgFlashChkMenu                : "Flashmenu\'s inschakelen",\r
+DlgFlashScale          : "Schaal",\r
+DlgFlashScaleAll       : "Alles tonen",\r
+DlgFlashScaleNoBorder  : "Geen rand",\r
+DlgFlashScaleFit       : "Precies passend",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Linkomschrijving",\r
+DlgLnkTargetTab                : "Doel",\r
+\r
+DlgLnkType                     : "Linktype",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Interne link in pagina",\r
+DlgLnkTypeEMail                : "E-mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<anders>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Kies een interne link",\r
+DlgLnkAnchorByName     : "Op naam interne link",\r
+DlgLnkAnchorById       : "Op kenmerk interne link",\r
+DlgLnkNoAnchors                : "(Geen interne links in document gevonden)",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-mailadres",\r
+DlgLnkEMailSubject     : "Onderwerp bericht",\r
+DlgLnkEMailBody                : "Inhoud bericht",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Naar de server versturen",\r
+\r
+DlgLnkTarget           : "Doel",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<popup window>",\r
+DlgLnkTargetBlank      : "Nieuw venster (_blank)",\r
+DlgLnkTargetParent     : "Origineel venster (_parent)",\r
+DlgLnkTargetSelf       : "Zelfde venster (_self)",\r
+DlgLnkTargetTop                : "Hele venster (_top)",\r
+DlgLnkTargetFrameName  : "Naam doelframe",\r
+DlgLnkPopWinName       : "Naam popupvenster",\r
+DlgLnkPopWinFeat       : "Instellingen popupvenster",\r
+DlgLnkPopResize                : "Grootte wijzigen",\r
+DlgLnkPopLocation      : "Locatiemenu",\r
+DlgLnkPopMenu          : "Menubalk",\r
+DlgLnkPopScroll                : "Schuifbalken",\r
+DlgLnkPopStatus                : "Statusbalk",\r
+DlgLnkPopToolbar       : "Menubalk",\r
+DlgLnkPopFullScrn      : "Volledig scherm (IE)",\r
+DlgLnkPopDependent     : "Afhankelijk (Netscape)",\r
+DlgLnkPopWidth         : "Breedte",\r
+DlgLnkPopHeight                : "Hoogte",\r
+DlgLnkPopLeft          : "Positie links",\r
+DlgLnkPopTop           : "Positie boven",\r
+\r
+DlnLnkMsgNoUrl         : "Geef de link van de URL",\r
+DlnLnkMsgNoEMail       : "Geef een e-mailadres",\r
+DlnLnkMsgNoAnchor      : "Selecteer een interne link",\r
+DlnLnkMsgInvPopName    : "De naam van de popup moet met een alfa-numerieke waarde beginnen, en mag geen spaties bevatten.",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Selecteer kleur",\r
+DlgColorBtnClear       : "Opschonen",\r
+DlgColorHighlight      : "Accentueren",\r
+DlgColorSelected       : "Geselecteerd",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Smiley invoegen",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Selecteer speciaal teken",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Eigenschappen tabel",\r
+DlgTableRows           : "Rijen",\r
+DlgTableColumns                : "Kolommen",\r
+DlgTableBorder         : "Breedte rand",\r
+DlgTableAlign          : "Uitlijning",\r
+DlgTableAlignNotSet    : "<Niet ingevoerd>",\r
+DlgTableAlignLeft      : "Links",\r
+DlgTableAlignCenter    : "Centreren",\r
+DlgTableAlignRight     : "Rechts",\r
+DlgTableWidth          : "Breedte",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "procent",\r
+DlgTableHeight         : "Hoogte",\r
+DlgTableCellSpace      : "Afstand tussen cellen",\r
+DlgTableCellPad                : "Afstand vanaf rand cel",\r
+DlgTableCaption                : "Naam",\r
+DlgTableSummary                : "Samenvatting",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Eigenschappen cel",\r
+DlgCellWidth           : "Breedte",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "procent",\r
+DlgCellHeight          : "Hoogte",\r
+DlgCellWordWrap                : "Afbreken woorden",\r
+DlgCellWordWrapNotSet  : "<Niet ingevoerd>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nee",\r
+DlgCellHorAlign                : "Horizontale uitlijning",\r
+DlgCellHorAlignNotSet  : "<Niet ingevoerd>",\r
+DlgCellHorAlignLeft    : "Links",\r
+DlgCellHorAlignCenter  : "Centreren",\r
+DlgCellHorAlignRight: "Rechts",\r
+DlgCellVerAlign                : "Verticale uitlijning",\r
+DlgCellVerAlignNotSet  : "<Niet ingevoerd>",\r
+DlgCellVerAlignTop     : "Boven",\r
+DlgCellVerAlignMiddle  : "Midden",\r
+DlgCellVerAlignBottom  : "Beneden",\r
+DlgCellVerAlignBaseline        : "Basislijn",\r
+DlgCellRowSpan         : "Overkoepeling rijen",\r
+DlgCellCollSpan                : "Overkoepeling kolommen",\r
+DlgCellBackColor       : "Achtergrondkleur",\r
+DlgCellBorderColor     : "Randkleur",\r
+DlgCellBtnSelect       : "Selecteren...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Zoeken",\r
+DlgFindFindBtn         : "Zoeken",\r
+DlgFindNotFoundMsg     : "De opgegeven tekst is niet gevonden.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Vervangen",\r
+DlgReplaceFindLbl              : "Zoeken naar:",\r
+DlgReplaceReplaceLbl   : "Vervangen met:",\r
+DlgReplaceCaseChk              : "Hoofdlettergevoelig",\r
+DlgReplaceReplaceBtn   : "Vervangen",\r
+DlgReplaceReplAllBtn   : "Alles vervangen",\r
+DlgReplaceWordChk              : "Hele woord moet voorkomen",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.",\r
+PasteErrorCopy : "De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.",\r
+\r
+PasteAsText            : "Plakken als platte tekst",\r
+PasteFromWord  : "Plakken als Word-gegevens",\r
+\r
+DlgPasteMsg2   : "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en klik op <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Negeer \"Font Face\"-definities",\r
+DlgPasteRemoveStyles   : "Verwijder \"Style\"-definities",\r
+DlgPasteCleanBox               : "Vak opschonen",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisch",\r
+ColorMoreColors        : "Meer kleuren...",\r
+\r
+// Document Properties\r
+DocProps               : "Eigenschappen document",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Eigenschappen interne link",\r
+DlgAnchorName          : "Naam interne link",\r
+DlgAnchorErrorName     : "Geef de naam van de interne link op",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Niet in het woordenboek",\r
+DlgSpellChangeTo               : "Wijzig in",\r
+DlgSpellBtnIgnore              : "Negeren",\r
+DlgSpellBtnIgnoreAll   : "Alles negeren",\r
+DlgSpellBtnReplace             : "Vervangen",\r
+DlgSpellBtnReplaceAll  : "Alles vervangen",\r
+DlgSpellBtnUndo                        : "Ongedaan maken",\r
+DlgSpellNoSuggestions  : "-Geen suggesties-",\r
+DlgSpellProgress               : "Bezig met spellingscontrole...",\r
+DlgSpellNoMispell              : "Klaar met spellingscontrole: geen fouten gevonden",\r
+DlgSpellNoChanges              : "Klaar met spellingscontrole: geen woorden aangepast",\r
+DlgSpellOneChange              : "Klaar met spellingscontrole: één woord aangepast",\r
+DlgSpellManyChanges            : "Klaar met spellingscontrole: %1 woorden aangepast",\r
+\r
+IeSpellDownload                        : "De spellingscontrole niet geïnstalleerd. Wil je deze nu downloaden?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst (waarde)",\r
+DlgButtonType          : "Soort",\r
+DlgButtonTypeBtn       : "Knop",\r
+DlgButtonTypeSbm       : "Versturen",\r
+DlgButtonTypeRst       : "Leegmaken",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Naam",\r
+DlgCheckboxValue       : "Waarde",\r
+DlgCheckboxSelected    : "Geselecteerd",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Naam",\r
+DlgFormAction  : "Actie",\r
+DlgFormMethod  : "Methode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Naam",\r
+DlgSelectValue         : "Waarde",\r
+DlgSelectSize          : "Grootte",\r
+DlgSelectLines         : "Regels",\r
+DlgSelectChkMulti      : "Gecombineerde selecties toestaan",\r
+DlgSelectOpAvail       : "Beschikbare opties",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Waarde",\r
+DlgSelectBtnAdd                : "Toevoegen",\r
+DlgSelectBtnModify     : "Wijzigen",\r
+DlgSelectBtnUp         : "Omhoog",\r
+DlgSelectBtnDown       : "Omlaag",\r
+DlgSelectBtnSetValue : "Als geselecteerde waarde instellen",\r
+DlgSelectBtnDelete     : "Verwijderen",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Naam",\r
+DlgTextareaCols        : "Kolommen",\r
+DlgTextareaRows        : "Rijen",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Naam",\r
+DlgTextValue           : "Waarde",\r
+DlgTextCharWidth       : "Breedte (tekens)",\r
+DlgTextMaxChars                : "Maximum aantal tekens",\r
+DlgTextType                    : "Soort",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Wachtwoord",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Naam",\r
+DlgHiddenValue : "Waarde",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Eigenschappen opsommingslijst",\r
+NumberedListProp       : "Eigenschappen genummerde opsommingslijst",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Soort",\r
+DlgLstTypeCircle       : "Cirkel",\r
+DlgLstTypeDisc         : "Schijf",\r
+DlgLstTypeSquare       : "Vierkant",\r
+DlgLstTypeNumbers      : "Nummers (1, 2, 3)",\r
+DlgLstTypeLCase                : "Kleine letters (a, b, c)",\r
+DlgLstTypeUCase                : "Hoofdletters (A, B, C)",\r
+DlgLstTypeSRoman       : "Klein Romeins (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Groot Romeins (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Algemeen",\r
+DlgDocBackTab          : "Achtergrond",\r
+DlgDocColorsTab                : "Kleuring en marges",\r
+DlgDocMetaTab          : "META-data",\r
+\r
+DlgDocPageTitle                : "Paginatitel",\r
+DlgDocLangDir          : "Schrijfrichting",\r
+DlgDocLangDirLTR       : "Links naar rechts",\r
+DlgDocLangDirRTL       : "Rechts naar links",\r
+DlgDocLangCode         : "Taalcode",\r
+DlgDocCharSet          : "Karakterset-encoding",\r
+DlgDocCharSetCE                : "Centraal Europees",\r
+DlgDocCharSetCT                : "Traditioneel Chinees (Big5)",\r
+DlgDocCharSetCR                : "Cyriliaans",\r
+DlgDocCharSetGR                : "Grieks",\r
+DlgDocCharSetJP                : "Japans",\r
+DlgDocCharSetKR                : "Koreaans",\r
+DlgDocCharSetTR                : "Turks",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "West europees",\r
+DlgDocCharSetOther     : "Andere karakterset-encoding",\r
+\r
+DlgDocDocType          : "Opschrift documentsoort",\r
+DlgDocDocTypeOther     : "Ander opschrift documentsoort",\r
+DlgDocIncXHTML         : "XHTML-declaraties meenemen",\r
+DlgDocBgColor          : "Achtergrondkleur",\r
+DlgDocBgImage          : "URL achtergrondplaatje",\r
+DlgDocBgNoScroll       : "Vaste achtergrond",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Bezochte link",\r
+DlgDocCActive          : "Active link",\r
+DlgDocMargins          : "Afstandsinstellingen document",\r
+DlgDocMaTop                    : "Boven",\r
+DlgDocMaLeft           : "Links",\r
+DlgDocMaRight          : "Rechts",\r
+DlgDocMaBottom         : "Onder",\r
+DlgDocMeIndex          : "Trefwoorden betreffende document (kommagescheiden)",\r
+DlgDocMeDescr          : "Beschrijving document",\r
+DlgDocMeAuthor         : "Auteur",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Voorbeeld",\r
+\r
+// Templates Dialog\r
+Templates                      : "Sjablonen",\r
+DlgTemplatesTitle      : "Inhoud sjabonen",\r
+DlgTemplatesSelMsg     : "Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",\r
+DlgTemplatesLoading    : "Bezig met laden sjabonen. Even geduld alstublieft...",\r
+DlgTemplatesNoTpl      : "(Geen sjablonen gedefinieerd)",\r
+DlgTemplatesReplace    : "Vervang de huidige inhoud",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Over",\r
+DlgAboutBrowserInfoTab : "Browserinformatie",\r
+DlgAboutLicenseTab     : "Licentie",\r
+DlgAboutVersion                : "Versie",\r
+DlgAboutInfo           : "Voor meer informatie ga naar "\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/no.js b/httemplate/elements/fckeditor/editor/lang/no.js
new file mode 100644 (file)
index 0000000..d3b237d
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Norwegian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skjul verktøylinje",\r
+ToolbarExpand          : "Vis verktøylinje",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Lagre",\r
+NewPage                                : "Ny Side",\r
+Preview                                : "Forhåndsvis",\r
+Cut                                    : "Klipp ut",\r
+Copy                           : "Kopier",\r
+Paste                          : "Lim inn",\r
+PasteText                      : "Lim inn som ren tekst",\r
+PasteWord                      : "Lim inn fra Word",\r
+Print                          : "Skriv ut",\r
+SelectAll                      : "Merk alt",\r
+RemoveFormat           : "Fjern format",\r
+InsertLinkLbl          : "Lenke",\r
+InsertLink                     : "Sett inn/Rediger lenke",\r
+RemoveLink                     : "Fjern lenke",\r
+Anchor                         : "Sett inn/Rediger anker",\r
+InsertImageLbl         : "Bilde",\r
+InsertImage                    : "Sett inn/Rediger bilde",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Sett inn/Rediger Flash",\r
+InsertTableLbl         : "Tabell",\r
+InsertTable                    : "Sett inn/Rediger tabell",\r
+InsertLineLbl          : "Linje",\r
+InsertLine                     : "Sett inn horisontal linje",\r
+InsertSpecialCharLbl: "Spesielt tegn",\r
+InsertSpecialChar      : "Sett inn spesielt tegn",\r
+InsertSmileyLbl                : "Smil",\r
+InsertSmiley           : "Sett inn smil",\r
+About                          : "Om FCKeditor",\r
+Bold                           : "Fet",\r
+Italic                         : "Kursiv",\r
+Underline                      : "Understrek",\r
+StrikeThrough          : "Gjennomstrek",\r
+Subscript                      : "Senket skrift",\r
+Superscript                    : "Hevet skrift",\r
+LeftJustify                    : "Venstrejuster",\r
+CenterJustify          : "Midtjuster",\r
+RightJustify           : "Høyrejuster",\r
+BlockJustify           : "Blokkjuster",\r
+DecreaseIndent         : "Senk nivå",\r
+IncreaseIndent         : "Øk nivå",\r
+Undo                           : "Angre",\r
+Redo                           : "Gjør om",\r
+NumberedListLbl                : "Numrert liste",\r
+NumberedList           : "Sett inn/Fjern numrert liste",\r
+BulletedListLbl                : "Uordnet liste",\r
+BulletedList           : "Sett inn/Fjern uordnet liste",\r
+ShowTableBorders       : "Vis tabellrammer",\r
+ShowDetails                    : "Vis detaljer",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Skrift",\r
+FontSize                       : "Størrelse",\r
+TextColor                      : "Tekstfarge",\r
+BGColor                                : "Bakgrunnsfarge",\r
+Source                         : "Kilde",\r
+Find                           : "Finn",\r
+Replace                                : "Erstatt",\r
+SpellCheck                     : "Stavekontroll",\r
+UniversalKeyboard      : "Universelt tastatur",\r
+PageBreakLbl           : "Sideskift",\r
+PageBreak                      : "Sett inn sideskift",\r
+\r
+Form                   : "Skjema",\r
+Checkbox               : "Sjekkboks",\r
+RadioButton            : "Radioknapp",\r
+TextField              : "Tekstfelt",\r
+Textarea               : "Tekstområde",\r
+HiddenField            : "Skjult felt",\r
+Button                 : "Knapp",\r
+SelectionField : "Dropdown meny",\r
+ImageButton            : "Bildeknapp",\r
+\r
+FitWindow              : "Maksimer størrelsen på redigeringsverktøyet",\r
+\r
+// Context Menu\r
+EditLink                       : "Rediger lenke",\r
+CellCM                         : "Celle",\r
+RowCM                          : "Rader",\r
+ColumnCM                       : "Kolonne",\r
+InsertRow                      : "Sett inn rad",\r
+DeleteRows                     : "Slett rader",\r
+InsertColumn           : "Sett inn kolonne",\r
+DeleteColumns          : "Slett kolonner",\r
+InsertCell                     : "Sett inn celle",\r
+DeleteCells                    : "Slett celler",\r
+MergeCells                     : "Slå sammen celler",\r
+SplitCell                      : "Splitt celler",\r
+TableDelete                    : "Slett tabell",\r
+CellProperties         : "Celleegenskaper",\r
+TableProperties                : "Tabellegenskaper",\r
+ImageProperties                : "Bildeegenskaper",\r
+FlashProperties                : "Flash Egenskaper",\r
+\r
+AnchorProp                     : "Ankeregenskaper",\r
+ButtonProp                     : "Knappegenskaper",\r
+CheckboxProp           : "Sjekkboksegenskaper",\r
+HiddenFieldProp                : "Skjult felt egenskaper",\r
+RadioButtonProp                : "Radioknappegenskaper",\r
+ImageButtonProp                : "Bildeknappegenskaper",\r
+TextFieldProp          : "Tekstfeltegenskaper",\r
+SelectionFieldProp     : "Dropdown menyegenskaper",\r
+TextareaProp           : "Tekstfeltegenskaper",\r
+FormProp                       : "Skjemaegenskaper",\r
+\r
+FontFormats                    : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Lager XHTML. Vennligst vent...",\r
+Done                           : "Ferdig",\r
+PasteWordConfirm       : "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",\r
+NotCompatiblePaste     : "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",\r
+UnknownToolbarItem     : "Ukjent menyvalg \"%1\"",\r
+UnknownCommand         : "Ukjent kommando \"%1\"",\r
+NotImplemented         : "Kommando ikke ennå implimentert",\r
+UnknownToolbarSet      : "Verktøylinjesett \"%1\" finnes ikke",\r
+NoActiveX                      : "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",\r
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",\r
+DialogBlocked          : "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Avbryt",\r
+DlgBtnClose                    : "Lukk",\r
+DlgBtnBrowseServer     : "Bla igjennom server",\r
+DlgAdvancedTag         : "Avansert",\r
+DlgOpOther                     : "<Annet>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Vennligst skriv inn URL'en",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ikke satt>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Språkretning",\r
+DlgGenLangDirLtr       : "Venstre til høyre (VTH)",\r
+DlgGenLangDirRtl       : "Høyre til venstre (HTV)",\r
+DlgGenLangCode         : "Språk kode",\r
+DlgGenAccessKey                : "Aksessknapp",\r
+DlgGenName                     : "Navn",\r
+DlgGenTabIndex         : "Tab Indeks",\r
+DlgGenLongDescr                : "Utvidet beskrivelse",\r
+DlgGenClass                    : "Stilarkklasser",\r
+DlgGenTitle                    : "Tittel",\r
+DlgGenContType         : "Type",\r
+DlgGenLinkCharset      : "Lenket språkkart",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Bildeegenskaper",\r
+DlgImgInfoTab          : "Bildeinformasjon",\r
+DlgImgBtnUpload                : "Send det til serveren",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Last opp",\r
+DlgImgAlt                      : "Alternativ tekst",\r
+DlgImgWidth                    : "Bredde",\r
+DlgImgHeight           : "Høyde",\r
+DlgImgLockRatio                : "Lås forhold",\r
+DlgBtnResetSize                : "Tilbakestill størrelse",\r
+DlgImgBorder           : "Ramme",\r
+DlgImgHSpace           : "HMarg",\r
+DlgImgVSpace           : "VMarg",\r
+DlgImgAlign                    : "Juster",\r
+DlgImgAlignLeft                : "Venstre",\r
+DlgImgAlignAbsBottom: "Abs bunn",\r
+DlgImgAlignAbsMiddle: "Abs midten",\r
+DlgImgAlignBaseline    : "Bunnlinje",\r
+DlgImgAlignBottom      : "Bunn",\r
+DlgImgAlignMiddle      : "Midten",\r
+DlgImgAlignRight       : "Høyre",\r
+DlgImgAlignTextTop     : "Tekst topp",\r
+DlgImgAlignTop         : "Topp",\r
+DlgImgPreview          : "Forhåndsvis",\r
+DlgImgAlertUrl         : "Vennligst skriv bildeurlen",\r
+DlgImgLinkTab          : "Lenke",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Egenskaper",\r
+DlgFlashChkPlay                : "Auto Spill",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Slå på Flash meny",\r
+DlgFlashScale          : "Skaler",\r
+DlgFlashScaleAll       : "Vis alt",\r
+DlgFlashScaleNoBorder  : "Ingen ramme",\r
+DlgFlashScaleFit       : "Skaler til å passeExact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Lenke",\r
+DlgLnkInfoTab          : "Lenkeinfo",\r
+DlgLnkTargetTab                : "Mål",\r
+\r
+DlgLnkType                     : "Lenketype",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Lenke til bokmerke i teksten",\r
+DlgLnkTypeEMail                : "E-Post",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<annet>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Velg ett anker",\r
+DlgLnkAnchorByName     : "Anker etter navn",\r
+DlgLnkAnchorById       : "Element etter ID",\r
+DlgLnkNoAnchors                : "<Ingen anker i dokumentet>",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Post Addresse",\r
+DlgLnkEMailSubject     : "Meldingsemne",\r
+DlgLnkEMailBody                : "Melding",\r
+DlgLnkUpload           : "Last opp",\r
+DlgLnkBtnUpload                : "Send til server",\r
+\r
+DlgLnkTarget           : "Mål",\r
+DlgLnkTargetFrame      : "<ramme>",\r
+DlgLnkTargetPopup      : "<popup vindu>",\r
+DlgLnkTargetBlank      : "Nytt vindu (_blank)",\r
+DlgLnkTargetParent     : "Foreldre vindu (_parent)",\r
+DlgLnkTargetSelf       : "Samme vindu (_self)",\r
+DlgLnkTargetTop                : "Hele vindu (_top)",\r
+DlgLnkTargetFrameName  : "Målramme",\r
+DlgLnkPopWinName       : "Popup vindus navn",\r
+DlgLnkPopWinFeat       : "Popup vindus egenskaper",\r
+DlgLnkPopResize                : "Endre størrelse",\r
+DlgLnkPopLocation      : "Adresselinje",\r
+DlgLnkPopMenu          : "Menylinje",\r
+DlgLnkPopScroll                : "Scrollbar",\r
+DlgLnkPopStatus                : "Statuslinje",\r
+DlgLnkPopToolbar       : "Verktøylinje",\r
+DlgLnkPopFullScrn      : "Full skjerm (IE)",\r
+DlgLnkPopDependent     : "Avhenging (Netscape)",\r
+DlgLnkPopWidth         : "Bredde",\r
+DlgLnkPopHeight                : "Høyde",\r
+DlgLnkPopLeft          : "Venstre posisjon",\r
+DlgLnkPopTop           : "Topp posisjon",\r
+\r
+DlnLnkMsgNoUrl         : "Vennligst skriv inn lenkens url",\r
+DlnLnkMsgNoEMail       : "Vennligst skriv inn e-postadressen",\r
+DlnLnkMsgNoAnchor      : "Vennligst velg ett anker",\r
+DlnLnkMsgInvPopName    : "Popup vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Velg farge",\r
+DlgColorBtnClear       : "Tøm",\r
+DlgColorHighlight      : "Marker",\r
+DlgColorSelected       : "Velg",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Sett inn smil",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Velg spesielt tegn",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabellegenskaper",\r
+DlgTableRows           : "Rader",\r
+DlgTableColumns                : "Kolonner",\r
+DlgTableBorder         : "Rammestørrelse",\r
+DlgTableAlign          : "Justering",\r
+DlgTableAlignNotSet    : "<Ikke satt>",\r
+DlgTableAlignLeft      : "Venstre",\r
+DlgTableAlignCenter    : "Midtjuster",\r
+DlgTableAlignRight     : "Høyre",\r
+DlgTableWidth          : "Bredde",\r
+DlgTableWidthPx                : "pixler",\r
+DlgTableWidthPc                : "prosent",\r
+DlgTableHeight         : "Høyde",\r
+DlgTableCellSpace      : "Celle marg",\r
+DlgTableCellPad                : "Celle polstring",\r
+DlgTableCaption                : "Tittel",\r
+DlgTableSummary                : "Sammendrag",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Celle egenskaper",\r
+DlgCellWidth           : "Bredde",\r
+DlgCellWidthPx         : "pixeler",\r
+DlgCellWidthPc         : "prosent",\r
+DlgCellHeight          : "Høyde",\r
+DlgCellWordWrap                : "Tekstbrytning",\r
+DlgCellWordWrapNotSet  : "<Ikke satt>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nei",\r
+DlgCellHorAlign                : "Horisontal justering",\r
+DlgCellHorAlignNotSet  : "<Ikke satt>",\r
+DlgCellHorAlignLeft    : "Venstre",\r
+DlgCellHorAlignCenter  : "Midtjuster",\r
+DlgCellHorAlignRight: "Høyre",\r
+DlgCellVerAlign                : "Vertikal justering",\r
+DlgCellVerAlignNotSet  : "<Ikke satt>",\r
+DlgCellVerAlignTop     : "Topp",\r
+DlgCellVerAlignMiddle  : "Midten",\r
+DlgCellVerAlignBottom  : "Bunn",\r
+DlgCellVerAlignBaseline        : "Bunnlinje",\r
+DlgCellRowSpan         : "Radspenn",\r
+DlgCellCollSpan                : "Kolonnespenn",\r
+DlgCellBackColor       : "Bakgrunnsfarge",\r
+DlgCellBorderColor     : "Rammefarge",\r
+DlgCellBtnSelect       : "Velg...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Finn",\r
+DlgFindFindBtn         : "Finn",\r
+DlgFindNotFoundMsg     : "Den spesifiserte teksten ble ikke funnet.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Erstatt",\r
+DlgReplaceFindLbl              : "Finn hva:",\r
+DlgReplaceReplaceLbl   : "Erstatt med:",\r
+DlgReplaceCaseChk              : "Riktig case",\r
+DlgReplaceReplaceBtn   : "Erstatt",\r
+DlgReplaceReplAllBtn   : "Erstatt alle",\r
+DlgReplaceWordChk              : "Finn hele ordet",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",\r
+PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",\r
+\r
+PasteAsText            : "Lim inn som ren tekst",\r
+PasteFromWord  : "Lim inn fra word",\r
+\r
+DlgPasteMsg2   : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Fjern skrifttyper",\r
+DlgPasteRemoveStyles   : "Fjern stildefinisjoner",\r
+DlgPasteCleanBox               : "Tøm boksen",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisk",\r
+ColorMoreColors        : "Flere farger...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentegenskaper",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankeregenskaper",\r
+DlgAnchorName          : "Ankernavn",\r
+DlgAnchorErrorName     : "Vennligst skriv inn ankernavnet",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ikke i ordboken",\r
+DlgSpellChangeTo               : "Endre til",\r
+DlgSpellBtnIgnore              : "Ignorer",\r
+DlgSpellBtnIgnoreAll   : "Ignorer alle",\r
+DlgSpellBtnReplace             : "Erstatt",\r
+DlgSpellBtnReplaceAll  : "Erstatt alle",\r
+DlgSpellBtnUndo                        : "Angre",\r
+DlgSpellNoSuggestions  : "- ingen forslag -",\r
+DlgSpellProgress               : "Stavekontroll pågår...",\r
+DlgSpellNoMispell              : "Stavekontroll fullført: ingen feilstavinger funnet",\r
+DlgSpellNoChanges              : "Stavekontroll fullført: ingen ord endret",\r
+DlgSpellOneChange              : "Stavekontroll fullført: Ett ord endret",\r
+DlgSpellManyChanges            : "Stavekontroll fullført: %1 ord endret",\r
+\r
+IeSpellDownload                        : "Stavekontroll ikke installert, vil du laste den ned nå?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst",\r
+DlgButtonType          : "Type",\r
+DlgButtonTypeBtn       : "Knapp",\r
+DlgButtonTypeSbm       : "Send",\r
+DlgButtonTypeRst       : "Nullstill",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Navn",\r
+DlgCheckboxValue       : "Verdi",\r
+DlgCheckboxSelected    : "Valgt",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Navn",\r
+DlgFormAction  : "Handling",\r
+DlgFormMethod  : "Metode",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Navn",\r
+DlgSelectValue         : "Verdi",\r
+DlgSelectSize          : "Størrelse",\r
+DlgSelectLines         : "Linjer",\r
+DlgSelectChkMulti      : "Tillat flervalg",\r
+DlgSelectOpAvail       : "Tilgjenglige alternativer",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Verdi",\r
+DlgSelectBtnAdd                : "Legg til",\r
+DlgSelectBtnModify     : "Endre",\r
+DlgSelectBtnUp         : "Opp",\r
+DlgSelectBtnDown       : "Ned",\r
+DlgSelectBtnSetValue : "Sett som valgt",\r
+DlgSelectBtnDelete     : "Slett",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Navn",\r
+DlgTextareaCols        : "Kolonner",\r
+DlgTextareaRows        : "Rader",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Navn",\r
+DlgTextValue           : "verdi",\r
+DlgTextCharWidth       : "Tegnbredde",\r
+DlgTextMaxChars                : "Maks antall tegn",\r
+DlgTextType                    : "Type",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Passord",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Navn",\r
+DlgHiddenValue : "Verdi",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Uordnet listeegenskaper",\r
+NumberedListProp       : "Ordnet listeegenskaper",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Type",\r
+DlgLstTypeCircle       : "Sirkel",\r
+DlgLstTypeDisc         : "Hel sirkel",\r
+DlgLstTypeSquare       : "Firkant",\r
+DlgLstTypeNumbers      : "Numre(1, 2, 3)",\r
+DlgLstTypeLCase                : "Små bokstaver (a, b, c)",\r
+DlgLstTypeUCase                : "Store bokstaver(A, B, C)",\r
+DlgLstTypeSRoman       : "Små romerske tall(i, ii, iii)",\r
+DlgLstTypeLRoman       : "Store romerske tall(I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Generalt",\r
+DlgDocBackTab          : "Bakgrunn",\r
+DlgDocColorsTab                : "Farger og marginer",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Sidetittel",\r
+DlgDocLangDir          : "Språkretning",\r
+DlgDocLangDirLTR       : "Venstre til høyre (LTR)",\r
+DlgDocLangDirRTL       : "Høyre til venstre (RTL)",\r
+DlgDocLangCode         : "Språkkode",\r
+DlgDocCharSet          : "Tegnsett",\r
+DlgDocCharSetCE                : "Sentraleuropeisk",\r
+DlgDocCharSetCT                : "Tradisonell kinesisk(Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Gresk",\r
+DlgDocCharSetJP                : "Japansk",\r
+DlgDocCharSetKR                : "Koreansk",\r
+DlgDocCharSetTR                : "Tyrkisk",\r
+DlgDocCharSetUN                : "Unikode (UTF-8)",\r
+DlgDocCharSetWE                : "Vesteuropeisk",\r
+DlgDocCharSetOther     : "Annet tegnsett",\r
+\r
+DlgDocDocType          : "Dokumenttype header",\r
+DlgDocDocTypeOther     : "Annet dokumenttype header",\r
+DlgDocIncXHTML         : "Inkulder XHTML deklarasjon",\r
+DlgDocBgColor          : "Bakgrunnsfarge",\r
+DlgDocBgImage          : "Bakgrunnsbilde url",\r
+DlgDocBgNoScroll       : "Ikke scroll bakgrunnsbilde",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Besøkt lenke",\r
+DlgDocCActive          : "Aktiv lenke",\r
+DlgDocMargins          : "Sidemargin",\r
+DlgDocMaTop                    : "Topp",\r
+DlgDocMaLeft           : "Venstre",\r
+DlgDocMaRight          : "Høyre",\r
+DlgDocMaBottom         : "Bunn",\r
+DlgDocMeIndex          : "Dokument nøkkelord (kommaseparert)",\r
+DlgDocMeDescr          : "Dokumentbeskrivelse",\r
+DlgDocMeAuthor         : "Forfatter",\r
+DlgDocMeCopy           : "Kopirett",\r
+DlgDocPreview          : "Forhåndsvising",\r
+\r
+// Templates Dialog\r
+Templates                      : "Maler",\r
+DlgTemplatesTitle      : "Innholdsmaler",\r
+DlgTemplatesSelMsg     : "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",\r
+DlgTemplatesLoading    : "Laster malliste. Vennligst vent...",\r
+DlgTemplatesNoTpl      : "(Ingen maler definert)",\r
+DlgTemplatesReplace    : "Erstatt faktisk innold",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Om",\r
+DlgAboutBrowserInfoTab : "Nettleserinfo",\r
+DlgAboutLicenseTab     : "Lisens",\r
+DlgAboutVersion                : "versjon",\r
+DlgAboutInfo           : "For further information go to"       //MISSING\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/pl.js b/httemplate/elements/fckeditor/editor/lang/pl.js
new file mode 100644 (file)
index 0000000..f01994d
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Polish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Zwiń pasek narzędzi",\r
+ToolbarExpand          : "Rozwiń pasek narzędzi",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Zapisz",\r
+NewPage                                : "Nowa strona",\r
+Preview                                : "Podgląd",\r
+Cut                                    : "Wytnij",\r
+Copy                           : "Kopiuj",\r
+Paste                          : "Wklej",\r
+PasteText                      : "Wklej jako czysty tekst",\r
+PasteWord                      : "Wklej z Worda",\r
+Print                          : "Drukuj",\r
+SelectAll                      : "Zaznacz wszystko",\r
+RemoveFormat           : "Usuń formatowanie",\r
+InsertLinkLbl          : "Hiperłącze",\r
+InsertLink                     : "Wstaw/edytuj hiperłącze",\r
+RemoveLink                     : "Usuń hiperłącze",\r
+Anchor                         : "Wstaw/edytuj kotwicę",\r
+InsertImageLbl         : "Obrazek",\r
+InsertImage                    : "Wstaw/edytuj obrazek",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Dodaj/Edytuj element Flash",\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Wstaw/edytuj tabelę",\r
+InsertLineLbl          : "Linia pozioma",\r
+InsertLine                     : "Wstaw poziomą linię",\r
+InsertSpecialCharLbl: "Znak specjalny",\r
+InsertSpecialChar      : "Wstaw znak specjalny",\r
+InsertSmileyLbl                : "Emotikona",\r
+InsertSmiley           : "Wstaw emotikonę",\r
+About                          : "O programie FCKeditor",\r
+Bold                           : "Pogrubienie",\r
+Italic                         : "Kursywa",\r
+Underline                      : "Podkreślenie",\r
+StrikeThrough          : "Przekreślenie",\r
+Subscript                      : "Indeks dolny",\r
+Superscript                    : "Indeks górny",\r
+LeftJustify                    : "Wyrównaj do lewej",\r
+CenterJustify          : "Wyrównaj do środka",\r
+RightJustify           : "Wyrównaj do prawej",\r
+BlockJustify           : "Wyrównaj do lewej i prawej",\r
+DecreaseIndent         : "Zmniejsz wcięcie",\r
+IncreaseIndent         : "Zwiększ wcięcie",\r
+Undo                           : "Cofnij",\r
+Redo                           : "Ponów",\r
+NumberedListLbl                : "Lista numerowana",\r
+NumberedList           : "Wstaw/usuń numerowanie listy",\r
+BulletedListLbl                : "Lista wypunktowana",\r
+BulletedList           : "Wstaw/usuń wypunktowanie listy",\r
+ShowTableBorders       : "Pokazuj ramkę tabeli",\r
+ShowDetails                    : "Pokaż szczegóły",\r
+Style                          : "Styl",\r
+FontFormat                     : "Format",\r
+Font                           : "Czcionka",\r
+FontSize                       : "Rozmiar",\r
+TextColor                      : "Kolor tekstu",\r
+BGColor                                : "Kolor tła",\r
+Source                         : "Źródło dokumentu",\r
+Find                           : "Znajdź",\r
+Replace                                : "Zamień",\r
+SpellCheck                     : "Sprawdź pisownię",\r
+UniversalKeyboard      : "Klawiatura Uniwersalna",\r
+PageBreakLbl           : "Odstęp",\r
+PageBreak                      : "Wstaw odstęp",\r
+\r
+Form                   : "Formularz",\r
+Checkbox               : "Checkbox",\r
+RadioButton            : "Pole wyboru",\r
+TextField              : "Pole tekstowe",\r
+Textarea               : "Obszar tekstowy",\r
+HiddenField            : "Pole ukryte",\r
+Button                 : "Przycisk",\r
+SelectionField : "Lista wyboru",\r
+ImageButton            : "Przycisk obrazek",\r
+\r
+FitWindow              : "Maksymalizuj rozmiar edytora",\r
+\r
+// Context Menu\r
+EditLink                       : "Edytuj hiperłącze",\r
+CellCM                         : "Komórka",\r
+RowCM                          : "Wiersz",\r
+ColumnCM                       : "Kolumna",\r
+InsertRow                      : "Wstaw wiersz",\r
+DeleteRows                     : "Usuń wiersze",\r
+InsertColumn           : "Wstaw kolumnę",\r
+DeleteColumns          : "Usuń kolumny",\r
+InsertCell                     : "Wstaw komórkę",\r
+DeleteCells                    : "Usuń komórki",\r
+MergeCells                     : "Połącz komórki",\r
+SplitCell                      : "Podziel komórkę",\r
+TableDelete                    : "Usuń tabelę",\r
+CellProperties         : "Właściwości komórki",\r
+TableProperties                : "Właściwości tabeli",\r
+ImageProperties                : "Właściwości obrazka",\r
+FlashProperties                : "Właściwości elementu Flash",\r
+\r
+AnchorProp                     : "Właściwości kotwicy",\r
+ButtonProp                     : "Właściwości przycisku",\r
+CheckboxProp           : "Checkbox - właściwości",\r
+HiddenFieldProp                : "Właściwości pola ukrytego",\r
+RadioButtonProp                : "Właściwości pola wyboru",\r
+ImageButtonProp                : "Właściwości przycisku obrazka",\r
+TextFieldProp          : "Właściwości pola tekstowego",\r
+SelectionFieldProp     : "Właściwości listy wyboru",\r
+TextareaProp           : "Właściwości obszaru tekstowego",\r
+FormProp                       : "Właściwości formularza",\r
+\r
+FontFormats                    : "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Przetwarzanie XHTML. Proszę czekać...",\r
+Done                           : "Gotowe",\r
+PasteWordConfirm       : "Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyścic przed wklejeniem?",\r
+NotCompatiblePaste     : "Ta funkcja jest dostępna w programie Internet Explorer w wersji 5.5 lub wyższej. Czy chcesz wkleić tekst bez czyszczenia?",\r
+UnknownToolbarItem     : "Nieznany element paska narzędzi \"%1\"",\r
+UnknownCommand         : "Nieznana komenda \"%1\"",\r
+NotImplemented         : "Komenda niezaimplementowana",\r
+UnknownToolbarSet      : "Pasek narzędzi \"%1\" nie istnieje",\r
+NoActiveX                      : "Ustawienia zabezpieczeń twojej przeglądarki mogą ograniczyć niektóre funkcje edytora. Musisz włączyć opcję \"Uruchamianie formantów Activex i dodatków plugin\". W przeciwnym wypadku mogą pojawiać się błędy.",\r
+BrowseServerBlocked : "Okno menadżera plików nie może zostać otwarte. Upewnij się, że wszystkie blokady popup są wyłączone.",\r
+DialogBlocked          : "Nie można otworzyć okna dialogowego. Upewnij się, że wszystkie blokady popup są wyłączone.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Anuluj",\r
+DlgBtnClose                    : "Zamknij",\r
+DlgBtnBrowseServer     : "Przeglądaj",\r
+DlgAdvancedTag         : "Zaawansowane",\r
+DlgOpOther                     : "<Inny>",\r
+DlgInfoTab                     : "Informacje",\r
+DlgAlertUrl                    : "Proszę podać URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nieustawione>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Kierunek tekstu",\r
+DlgGenLangDirLtr       : "Od lewej do prawej (LTR)",\r
+DlgGenLangDirRtl       : "Od prawej do lewej (RTL)",\r
+DlgGenLangCode         : "Kod języka",\r
+DlgGenAccessKey                : "Klawisz dostępu",\r
+DlgGenName                     : "Nazwa",\r
+DlgGenTabIndex         : "Indeks tabeli",\r
+DlgGenLongDescr                : "Long Description URL",\r
+DlgGenClass                    : "Stylesheet Classes",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Styl",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Właściwości obrazka",\r
+DlgImgInfoTab          : "Informacje o obrazku",\r
+DlgImgBtnUpload                : "Syślij",\r
+DlgImgURL                      : "Adres URL",\r
+DlgImgUpload           : "Wyślij",\r
+DlgImgAlt                      : "Tekst zastępczy",\r
+DlgImgWidth                    : "Szerokość",\r
+DlgImgHeight           : "Wysokość",\r
+DlgImgLockRatio                : "Zablokuj proporcje",\r
+DlgBtnResetSize                : "Przywróć rozmiar",\r
+DlgImgBorder           : "Ramka",\r
+DlgImgHSpace           : "Odstęp poziomy",\r
+DlgImgVSpace           : "Odstęp pionowy",\r
+DlgImgAlign                    : "Wyrównaj",\r
+DlgImgAlignLeft                : "Do lewej",\r
+DlgImgAlignAbsBottom: "Do dołu",\r
+DlgImgAlignAbsMiddle: "Do środka w pionie",\r
+DlgImgAlignBaseline    : "Do linii bazowej",\r
+DlgImgAlignBottom      : "Do dołu",\r
+DlgImgAlignMiddle      : "Do środka",\r
+DlgImgAlignRight       : "Do prawej",\r
+DlgImgAlignTextTop     : "Do góry tekstu",\r
+DlgImgAlignTop         : "Do góry",\r
+DlgImgPreview          : "Podgląd",\r
+DlgImgAlertUrl         : "Podaj adres obrazka.",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Właściwości elementu Flash",\r
+DlgFlashChkPlay                : "Auto Odtwarzanie",\r
+DlgFlashChkLoop                : "Pętla",\r
+DlgFlashChkMenu                : "Włącz menu",\r
+DlgFlashScale          : "Skaluj",\r
+DlgFlashScaleAll       : "Pokaż wszystko",\r
+DlgFlashScaleNoBorder  : "Bez Ramki",\r
+DlgFlashScaleFit       : "Dokładne dopasowanie",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Hiperłącze",\r
+DlgLnkInfoTab          : "Informacje ",\r
+DlgLnkTargetTab                : "Cel",\r
+\r
+DlgLnkType                     : "Typ hiperłącza",\r
+DlgLnkTypeURL          : "Adres URL",\r
+DlgLnkTypeAnchor       : "Odnośnik wewnątrz strony",\r
+DlgLnkTypeEMail                : "Adres e-mail",\r
+DlgLnkProto                    : "Protokół",\r
+DlgLnkProtoOther       : "<inny>",\r
+DlgLnkURL                      : "Adres URL",\r
+DlgLnkAnchorSel                : "Wybierz etykietę",\r
+DlgLnkAnchorByName     : "Wg etykiety",\r
+DlgLnkAnchorById       : "Wg identyfikatora elementu",\r
+DlgLnkNoAnchors                : "<W dokumencie nie zdefiniowano żadnych etykiet>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Adres e-mail",\r
+DlgLnkEMailSubject     : "Temat",\r
+DlgLnkEMailBody                : "Treść",\r
+DlgLnkUpload           : "Upload",\r
+DlgLnkBtnUpload                : "Wyślij",\r
+\r
+DlgLnkTarget           : "Cel",\r
+DlgLnkTargetFrame      : "<ramka>",\r
+DlgLnkTargetPopup      : "<wyskakujące okno>",\r
+DlgLnkTargetBlank      : "Nowe okno (_blank)",\r
+DlgLnkTargetParent     : "Okno nadrzędne (_parent)",\r
+DlgLnkTargetSelf       : "To samo okno (_self)",\r
+DlgLnkTargetTop                : "Okno najwyższe w hierarchii (_top)",\r
+DlgLnkTargetFrameName  : "Nazwa Ramki Docelowej",\r
+DlgLnkPopWinName       : "Nazwa wyskakującego okna",\r
+DlgLnkPopWinFeat       : "Właściwości wyskakującego okna",\r
+DlgLnkPopResize                : "Możliwa zmiana rozmiaru",\r
+DlgLnkPopLocation      : "Pasek adresu",\r
+DlgLnkPopMenu          : "Pasek menu",\r
+DlgLnkPopScroll                : "Paski przewijania",\r
+DlgLnkPopStatus                : "Pasek statusu",\r
+DlgLnkPopToolbar       : "Pasek narzędzi",\r
+DlgLnkPopFullScrn      : "Pełny ekran (IE)",\r
+DlgLnkPopDependent     : "Okno zależne (Netscape)",\r
+DlgLnkPopWidth         : "Szerokość",\r
+DlgLnkPopHeight                : "Wysokość",\r
+DlgLnkPopLeft          : "Pozycja w poziomie",\r
+DlgLnkPopTop           : "Pozycja w pionie",\r
+\r
+DlnLnkMsgNoUrl         : "Podaj adres URL",\r
+DlnLnkMsgNoEMail       : "Podaj adres e-mail",\r
+DlnLnkMsgNoAnchor      : "Wybierz etykietę",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Wybierz kolor",\r
+DlgColorBtnClear       : "Wyczyść",\r
+DlgColorHighlight      : "Podgląd",\r
+DlgColorSelected       : "Wybrane",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Wstaw emotikonę",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Wybierz znak specjalny",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Właściwości tabeli",\r
+DlgTableRows           : "Liczba wierszy",\r
+DlgTableColumns                : "Liczba kolumn",\r
+DlgTableBorder         : "Grubość ramki",\r
+DlgTableAlign          : "Wyrównanie",\r
+DlgTableAlignNotSet    : "<brak ustawień>",\r
+DlgTableAlignLeft      : "Do lewej",\r
+DlgTableAlignCenter    : "Do środka",\r
+DlgTableAlignRight     : "Do prawej",\r
+DlgTableWidth          : "Szerokość",\r
+DlgTableWidthPx                : "piksele",\r
+DlgTableWidthPc                : "%",\r
+DlgTableHeight         : "Wysokość",\r
+DlgTableCellSpace      : "Odstęp pomiędzy komórkami",\r
+DlgTableCellPad                : "Margines wewnętrzny komórek",\r
+DlgTableCaption                : "Tytuł",\r
+DlgTableSummary                : "Podsumowanie",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Właściwości komórki",\r
+DlgCellWidth           : "Szerokość",\r
+DlgCellWidthPx         : "piksele",\r
+DlgCellWidthPc         : "%",\r
+DlgCellHeight          : "Wysokość",\r
+DlgCellWordWrap                : "Zawijanie tekstu",\r
+DlgCellWordWrapNotSet  : "<brak ustawień>",\r
+DlgCellWordWrapYes     : "Tak",\r
+DlgCellWordWrapNo      : "Nie",\r
+DlgCellHorAlign                : "Wyrównanie poziome",\r
+DlgCellHorAlignNotSet  : "<brak ustawień>",\r
+DlgCellHorAlignLeft    : "Do lewej",\r
+DlgCellHorAlignCenter  : "Do środka",\r
+DlgCellHorAlignRight: "Do prawej",\r
+DlgCellVerAlign                : "Wyrównanie pionowe",\r
+DlgCellVerAlignNotSet  : "<brak ustawień>",\r
+DlgCellVerAlignTop     : "Do góry",\r
+DlgCellVerAlignMiddle  : "Do środka",\r
+DlgCellVerAlignBottom  : "Do dołu",\r
+DlgCellVerAlignBaseline        : "Do linii bazowej",\r
+DlgCellRowSpan         : "Zajętość wierszy",\r
+DlgCellCollSpan                : "Zajętość kolumn",\r
+DlgCellBackColor       : "Kolor tła",\r
+DlgCellBorderColor     : "Kolor ramki",\r
+DlgCellBtnSelect       : "Wybierz...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Znajdź",\r
+DlgFindFindBtn         : "Znajdź",\r
+DlgFindNotFoundMsg     : "Nie znaleziono szukanego hasła.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Zamień",\r
+DlgReplaceFindLbl              : "Znajdź:",\r
+DlgReplaceReplaceLbl   : "Zastąp przez:",\r
+DlgReplaceCaseChk              : "Uwzględnij wielkość liter",\r
+DlgReplaceReplaceBtn   : "Zastąp",\r
+DlgReplaceReplAllBtn   : "Zastąp wszystko",\r
+DlgReplaceWordChk              : "Całe słowa",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.",\r
+PasteErrorCopy : "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.",\r
+\r
+PasteAsText            : "Wklej jako czysty tekst",\r
+PasteFromWord  : "Wklej z Worda",\r
+\r
+DlgPasteMsg2   : "Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoruj definicje 'Font Face'",\r
+DlgPasteRemoveStyles   : "Usuń definicje Stylów",\r
+DlgPasteCleanBox               : "Wyczyść",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatycznie",\r
+ColorMoreColors        : "Więcej kolorów...",\r
+\r
+// Document Properties\r
+DocProps               : "Właściwości dokumentu",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Właściwości kotwicy",\r
+DlgAnchorName          : "Nazwa kotwicy",\r
+DlgAnchorErrorName     : "Wpisz nazwę kotwicy",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Słowa nie ma w słowniku",\r
+DlgSpellChangeTo               : "Zmień na",\r
+DlgSpellBtnIgnore              : "Ignoruj",\r
+DlgSpellBtnIgnoreAll   : "Ignoruj wszystkie",\r
+DlgSpellBtnReplace             : "Zmień",\r
+DlgSpellBtnReplaceAll  : "Zmień wszystkie",\r
+DlgSpellBtnUndo                        : "Undo",\r
+DlgSpellNoSuggestions  : "- Brak sugestii -",\r
+DlgSpellProgress               : "Trwa sprawdzanie ...",\r
+DlgSpellNoMispell              : "Sprawdzanie zakończone: nie znaleziono błędów",\r
+DlgSpellNoChanges              : "Sprawdzanie zakończone: nie zmieniono żadnego słowa",\r
+DlgSpellOneChange              : "Sprawdzanie zakończone: zmieniono jedno słowo",\r
+DlgSpellManyChanges            : "Sprawdzanie zakończone: zmieniono %l słów",\r
+\r
+IeSpellDownload                        : "Słownik nie jest zainstalowany. Chcesz go ściągnąć?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst (Wartość)",\r
+DlgButtonType          : "Typ",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nazwa",\r
+DlgCheckboxValue       : "Wartość",\r
+DlgCheckboxSelected    : "Zaznaczony",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nazwa",\r
+DlgFormAction  : "Akcja",\r
+DlgFormMethod  : "Metoda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nazwa",\r
+DlgSelectValue         : "Wartość",\r
+DlgSelectSize          : "Rozmiar",\r
+DlgSelectLines         : "linii",\r
+DlgSelectChkMulti      : "Wielokrotny wybór",\r
+DlgSelectOpAvail       : "Dostępne opcje",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Wartość",\r
+DlgSelectBtnAdd                : "Dodaj",\r
+DlgSelectBtnModify     : "Zmień",\r
+DlgSelectBtnUp         : "Do góry",\r
+DlgSelectBtnDown       : "Do dołu",\r
+DlgSelectBtnSetValue : "Ustaw wartość zaznaczoną",\r
+DlgSelectBtnDelete     : "Usuń",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nazwa",\r
+DlgTextareaCols        : "Kolumnu",\r
+DlgTextareaRows        : "Wiersze",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nazwa",\r
+DlgTextValue           : "Wartość",\r
+DlgTextCharWidth       : "Szerokość w znakach",\r
+DlgTextMaxChars                : "Max. szerokość",\r
+DlgTextType                    : "Typ",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Hasło",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nazwa",\r
+DlgHiddenValue : "Wartość",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Właściwości listy punktowanej",\r
+NumberedListProp       : "Właściwości listy numerowanej",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Typ",\r
+DlgLstTypeCircle       : "Koło",\r
+DlgLstTypeDisc         : "Dysk",\r
+DlgLstTypeSquare       : "Kwadrat",\r
+DlgLstTypeNumbers      : "Cyfry (1, 2, 3)",\r
+DlgLstTypeLCase                : "Małe litery (a, b, c)",\r
+DlgLstTypeUCase                : "Duże litery (A, B, C)",\r
+DlgLstTypeSRoman       : "Numeracja rzymska (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Numeracja rzymska (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Ogólne",\r
+DlgDocBackTab          : "Tło",\r
+DlgDocColorsTab                : "Kolory i marginesy",\r
+DlgDocMetaTab          : "Meta Dane",\r
+\r
+DlgDocPageTitle                : "Tytuł strony",\r
+DlgDocLangDir          : "Kierunek pisania",\r
+DlgDocLangDirLTR       : "Od lewej do prawej (LTR)",\r
+DlgDocLangDirRTL       : "Od prawej do lewej (RTL)",\r
+DlgDocLangCode         : "Kod języka",\r
+DlgDocCharSet          : "Kodowanie znaków",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Inne kodowanie znaków",\r
+\r
+DlgDocDocType          : "Nagłowek typu dokumentu",\r
+DlgDocDocTypeOther     : "Inny typ dokumentu",\r
+DlgDocIncXHTML         : "Dołącz deklarację XHTML",\r
+DlgDocBgColor          : "Kolor tła",\r
+DlgDocBgImage          : "Obrazek tła",\r
+DlgDocBgNoScroll       : "Tło nieruchome",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Hiperłącze",\r
+DlgDocCVisited         : "Odwiedzane hiperłącze",\r
+DlgDocCActive          : "Aktywne hiperłącze",\r
+DlgDocMargins          : "Marginesy strony",\r
+DlgDocMaTop                    : "Górny",\r
+DlgDocMaLeft           : "Lewy",\r
+DlgDocMaRight          : "Prawy",\r
+DlgDocMaBottom         : "Dolny",\r
+DlgDocMeIndex          : "Słowa kluczowe (oddzielone przecinkami)",\r
+DlgDocMeDescr          : "Opis dokumentu",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Copyright",\r
+DlgDocPreview          : "Podgląd",\r
+\r
+// Templates Dialog\r
+Templates                      : "Sablony",\r
+DlgTemplatesTitle      : "Szablony zawartości",\r
+DlgTemplatesSelMsg     : "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):",\r
+DlgTemplatesLoading    : "Ładowanie listy szablonów. Proszę czekać...",\r
+DlgTemplatesNoTpl      : "(Brak zdefiniowanych szablonów)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "O ...",\r
+DlgAboutBrowserInfoTab : "O przeglądarce",\r
+DlgAboutLicenseTab     : "Licencja",\r
+DlgAboutVersion                : "wersja",\r
+DlgAboutInfo           : "Więcej informacji uzyskasz pod adresem"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/pt-br.js b/httemplate/elements/fckeditor/editor/lang/pt-br.js
new file mode 100644 (file)
index 0000000..53a2b5d
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Brazilian Portuguese language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Ocultar Barra de Ferramentas",\r
+ToolbarExpand          : "Exibir Barra de Ferramentas",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Salvar",\r
+NewPage                                : "Novo",\r
+Preview                                : "Visualizar",\r
+Cut                                    : "Recortar",\r
+Copy                           : "Copiar",\r
+Paste                          : "Colar",\r
+PasteText                      : "Colar como Texto sem Formatação",\r
+PasteWord                      : "Colar do Word",\r
+Print                          : "Imprimir",\r
+SelectAll                      : "Selecionar Tudo",\r
+RemoveFormat           : "Remover Formatação",\r
+InsertLinkLbl          : "Hiperlink",\r
+InsertLink                     : "Inserir/Editar Hiperlink",\r
+RemoveLink                     : "Remover Hiperlink",\r
+Anchor                         : "Inserir/Editar Âncora",\r
+InsertImageLbl         : "Figura",\r
+InsertImage                    : "Inserir/Editar Figura",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Insere/Edita Flash",\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Inserir/Editar Tabela",\r
+InsertLineLbl          : "Linha",\r
+InsertLine                     : "Inserir Linha Horizontal",\r
+InsertSpecialCharLbl: "Caracteres Especiais",\r
+InsertSpecialChar      : "Inserir Caractere Especial",\r
+InsertSmileyLbl                : "Emoticon",\r
+InsertSmiley           : "Inserir Emoticon",\r
+About                          : "Sobre FCKeditor",\r
+Bold                           : "Negrito",\r
+Italic                         : "Itálico",\r
+Underline                      : "Sublinhado",\r
+StrikeThrough          : "Tachado",\r
+Subscript                      : "Subscrito",\r
+Superscript                    : "Sobrescrito",\r
+LeftJustify                    : "Alinhar Esquerda",\r
+CenterJustify          : "Centralizar",\r
+RightJustify           : "Alinhar Direita",\r
+BlockJustify           : "Justificado",\r
+DecreaseIndent         : "Diminuir Recuo",\r
+IncreaseIndent         : "Aumentar Recuo",\r
+Undo                           : "Desfazer",\r
+Redo                           : "Refazer",\r
+NumberedListLbl                : "Numeração",\r
+NumberedList           : "Inserir/Remover Numeração",\r
+BulletedListLbl                : "Marcadores",\r
+BulletedList           : "Inserir/Remover Marcadores",\r
+ShowTableBorders       : "Exibir Bordas da Tabela",\r
+ShowDetails                    : "Exibir Detalhes",\r
+Style                          : "Estilo",\r
+FontFormat                     : "Formatação",\r
+Font                           : "Fonte",\r
+FontSize                       : "Tamanho",\r
+TextColor                      : "Cor do Texto",\r
+BGColor                                : "Cor do Plano de Fundo",\r
+Source                         : "Código-Fonte",\r
+Find                           : "Localizar",\r
+Replace                                : "Substituir",\r
+SpellCheck                     : "Verificar Ortografia",\r
+UniversalKeyboard      : "Teclado Universal",\r
+PageBreakLbl           : "Quebra de Página",\r
+PageBreak                      : "Inserir Quebra de Página",\r
+\r
+Form                   : "Formulário",\r
+Checkbox               : "Caixa de Seleção",\r
+RadioButton            : "Botão de Opção",\r
+TextField              : "Caixa de Texto",\r
+Textarea               : "Área de Texto",\r
+HiddenField            : "Campo Oculto",\r
+Button                 : "Botão",\r
+SelectionField : "Caixa de Listagem",\r
+ImageButton            : "Botão de Imagem",\r
+\r
+FitWindow              : "Maximizar o tamanho do editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Editar Hiperlink",\r
+CellCM                         : "Célula",\r
+RowCM                          : "Linha",\r
+ColumnCM                       : "Coluna",\r
+InsertRow                      : "Inserir Linha",\r
+DeleteRows                     : "Remover Linhas",\r
+InsertColumn           : "Inserir Coluna",\r
+DeleteColumns          : "Remover Colunas",\r
+InsertCell                     : "Inserir Células",\r
+DeleteCells                    : "Remover Células",\r
+MergeCells                     : "Mesclar Células",\r
+SplitCell                      : "Dividir Célular",\r
+TableDelete                    : "Apagar Tabela",\r
+CellProperties         : "Formatar Célula",\r
+TableProperties                : "Formatar Tabela",\r
+ImageProperties                : "Formatar Figura",\r
+FlashProperties                : "Propriedades Flash",\r
+\r
+AnchorProp                     : "Formatar Âncora",\r
+ButtonProp                     : "Formatar Botão",\r
+CheckboxProp           : "Formatar Caixa de Seleção",\r
+HiddenFieldProp                : "Formatar Campo Oculto",\r
+RadioButtonProp                : "Formatar Botão de Opção",\r
+ImageButtonProp                : "Formatar Botão de Imagem",\r
+TextFieldProp          : "Formatar Caixa de Texto",\r
+SelectionFieldProp     : "Formatar Caixa de Listagem",\r
+TextareaProp           : "Formatar Área de Texto",\r
+FormProp                       : "Formatar Formulário",\r
+\r
+FontFormats                    : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Processando XHTML. Por favor, aguarde...",\r
+Done                           : "Pronto",\r
+PasteWordConfirm       : "O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?",\r
+NotCompatiblePaste     : "Este comando está disponível para o navegador Internet Explorer 5.5 ou superior. Você gostaria de colar sem remover a formatação?",\r
+UnknownToolbarItem     : "O item da barra de ferramentas \"%1\" não é reconhecido",\r
+UnknownCommand         : "O comando \"%1\" não é reconhecido",\r
+NotImplemented         : "O comando não foi implementado",\r
+UnknownToolbarSet      : "A barra de ferramentas \"%1\" não existe",\r
+NoActiveX                      : "As configurações de segurança do seu browser podem limitar algumas características do editor. Você precisa habilitar a opção \"Executar controles e plug-ins ActiveX\". Você pode experimentar erros e alertas de características faltantes.",\r
+BrowseServerBlocked : "Os recursos do browser não puderam ser abertos. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",\r
+DialogBlocked          : "Não foi possível abrir a janela de diálogo. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancelar",\r
+DlgBtnClose                    : "Fechar",\r
+DlgBtnBrowseServer     : "Localizar no Servidor",\r
+DlgAdvancedTag         : "Avançado",\r
+DlgOpOther                     : "<Outros>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Inserir a URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<não ajustado>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Direção do idioma",\r
+DlgGenLangDirLtr       : "Esquerda para Direita (LTR)",\r
+DlgGenLangDirRtl       : "Direita para Esquerda (RTL)",\r
+DlgGenLangCode         : "Idioma",\r
+DlgGenAccessKey                : "Chave de Acesso",\r
+DlgGenName                     : "Nome",\r
+DlgGenTabIndex         : "Índice de Tabulação",\r
+DlgGenLongDescr                : "Descrição da URL",\r
+DlgGenClass                    : "Classe de Folhas de Estilo",\r
+DlgGenTitle                    : "Título",\r
+DlgGenContType         : "Tipo de Conteúdo",\r
+DlgGenLinkCharset      : "Conjunto de Caracteres do Hiperlink",\r
+DlgGenStyle                    : "Estilos",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Formatar Figura",\r
+DlgImgInfoTab          : "Informações da Figura",\r
+DlgImgBtnUpload                : "Enviar para o Servidor",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Submeter",\r
+DlgImgAlt                      : "Texto Alternativo",\r
+DlgImgWidth                    : "Largura",\r
+DlgImgHeight           : "Altura",\r
+DlgImgLockRatio                : "Manter proporções",\r
+DlgBtnResetSize                : "Redefinir para o Tamanho Original",\r
+DlgImgBorder           : "Borda",\r
+DlgImgHSpace           : "Horizontal",\r
+DlgImgVSpace           : "Vertical",\r
+DlgImgAlign                    : "Alinhamento",\r
+DlgImgAlignLeft                : "Esquerda",\r
+DlgImgAlignAbsBottom: "Inferior Absoluto",\r
+DlgImgAlignAbsMiddle: "Centralizado Absoluto",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Inferior",\r
+DlgImgAlignMiddle      : "Centralizado",\r
+DlgImgAlignRight       : "Direita",\r
+DlgImgAlignTextTop     : "Superior Absoluto",\r
+DlgImgAlignTop         : "Superior",\r
+DlgImgPreview          : "Visualização",\r
+DlgImgAlertUrl         : "Por favor, digite o URL da figura.",\r
+DlgImgLinkTab          : "Hiperlink",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propriedades Flash",\r
+DlgFlashChkPlay                : "Tocar Automaticamente",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Habilita Menu Flash",\r
+DlgFlashScale          : "Escala",\r
+DlgFlashScaleAll       : "Mostrar tudo",\r
+DlgFlashScaleNoBorder  : "Sem Borda",\r
+DlgFlashScaleFit       : "Escala Exata",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Hiperlink",\r
+DlgLnkInfoTab          : "Informações",\r
+DlgLnkTargetTab                : "Destino",\r
+\r
+DlgLnkType                     : "Tipo de hiperlink",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Âncora nesta página",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocolo",\r
+DlgLnkProtoOther       : "<outro>",\r
+DlgLnkURL                      : "URL do hiperlink",\r
+DlgLnkAnchorSel                : "Selecione uma âncora",\r
+DlgLnkAnchorByName     : "Pelo Nome da âncora",\r
+DlgLnkAnchorById       : "Pelo Id do Elemento",\r
+DlgLnkNoAnchors                : "(Não há âncoras disponíveis neste documento)",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Endereço E-Mail",\r
+DlgLnkEMailSubject     : "Assunto da Mensagem",\r
+DlgLnkEMailBody                : "Corpo da Mensagem",\r
+DlgLnkUpload           : "Enviar ao Servidor",\r
+DlgLnkBtnUpload                : "Enviar ao Servidor",\r
+\r
+DlgLnkTarget           : "Destino",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<janela popup>",\r
+DlgLnkTargetBlank      : "Nova Janela (_blank)",\r
+DlgLnkTargetParent     : "Janela Pai (_parent)",\r
+DlgLnkTargetSelf       : "Mesma Janela (_self)",\r
+DlgLnkTargetTop                : "Janela Superior (_top)",\r
+DlgLnkTargetFrameName  : "Nome do Frame de Destino",\r
+DlgLnkPopWinName       : "Nome da Janela Pop-up",\r
+DlgLnkPopWinFeat       : "Atributos da Janela Pop-up",\r
+DlgLnkPopResize                : "Redimensionável",\r
+DlgLnkPopLocation      : "Barra de Endereços",\r
+DlgLnkPopMenu          : "Barra de Menus",\r
+DlgLnkPopScroll                : "Barras de Rolagem",\r
+DlgLnkPopStatus                : "Barra de Status",\r
+DlgLnkPopToolbar       : "Barra de Ferramentas",\r
+DlgLnkPopFullScrn      : "Modo Tela Cheia (IE)",\r
+DlgLnkPopDependent     : "Dependente (Netscape)",\r
+DlgLnkPopWidth         : "Largura",\r
+DlgLnkPopHeight                : "Altura",\r
+DlgLnkPopLeft          : "Esquerda",\r
+DlgLnkPopTop           : "Superior",\r
+\r
+DlnLnkMsgNoUrl         : "Por favor, digite o endereço do Hiperlink",\r
+DlnLnkMsgNoEMail       : "Por favor, digite o endereço de e-mail",\r
+DlnLnkMsgNoAnchor      : "Por favor, selecione uma âncora",\r
+DlnLnkMsgInvPopName    : "O nome da janela popup deve começar com uma letra ou sublinhado (_) e não pode conter espaços",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Selecione uma Cor",\r
+DlgColorBtnClear       : "Limpar",\r
+DlgColorHighlight      : "Visualização",\r
+DlgColorSelected       : "Selecionada",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Inserir Emoticon",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Selecione um Caractere Especial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Formatar Tabela",\r
+DlgTableRows           : "Linhas",\r
+DlgTableColumns                : "Colunas",\r
+DlgTableBorder         : "Borda",\r
+DlgTableAlign          : "Alinhamento",\r
+DlgTableAlignNotSet    : "<Não ajustado>",\r
+DlgTableAlignLeft      : "Esquerda",\r
+DlgTableAlignCenter    : "Centralizado",\r
+DlgTableAlignRight     : "Direita",\r
+DlgTableWidth          : "Largura",\r
+DlgTableWidthPx                : "pixels",\r
+DlgTableWidthPc                : "%",\r
+DlgTableHeight         : "Altura",\r
+DlgTableCellSpace      : "Espaçamento",\r
+DlgTableCellPad                : "Enchimento",\r
+DlgTableCaption                : "Legenda",\r
+DlgTableSummary                : "Resumo",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Formatar célula",\r
+DlgCellWidth           : "Largura",\r
+DlgCellWidthPx         : "pixels",\r
+DlgCellWidthPc         : "%",\r
+DlgCellHeight          : "Altura",\r
+DlgCellWordWrap                : "Quebra de Linha",\r
+DlgCellWordWrapNotSet  : "<Não ajustado>",\r
+DlgCellWordWrapYes     : "Sim",\r
+DlgCellWordWrapNo      : "Não",\r
+DlgCellHorAlign                : "Alinhamento Horizontal",\r
+DlgCellHorAlignNotSet  : "<Não ajustado>",\r
+DlgCellHorAlignLeft    : "Esquerda",\r
+DlgCellHorAlignCenter  : "Centralizado",\r
+DlgCellHorAlignRight: "Direita",\r
+DlgCellVerAlign                : "Alinhamento Vertical",\r
+DlgCellVerAlignNotSet  : "<Não ajustado>",\r
+DlgCellVerAlignTop     : "Superior",\r
+DlgCellVerAlignMiddle  : "Centralizado",\r
+DlgCellVerAlignBottom  : "Inferior",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Transpor Linhas",\r
+DlgCellCollSpan                : "Transpor Colunas",\r
+DlgCellBackColor       : "Cor do Plano de Fundo",\r
+DlgCellBorderColor     : "Cor da Borda",\r
+DlgCellBtnSelect       : "Selecionar...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Localizar...",\r
+DlgFindFindBtn         : "Localizar",\r
+DlgFindNotFoundMsg     : "O texto especificado não foi encontrado.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Substituir",\r
+DlgReplaceFindLbl              : "Procurar por:",\r
+DlgReplaceReplaceLbl   : "Substituir por:",\r
+DlgReplaceCaseChk              : "Coincidir Maiúsculas/Minúsculas",\r
+DlgReplaceReplaceBtn   : "Substituir",\r
+DlgReplaceReplAllBtn   : "Substituir Tudo",\r
+DlgReplaceWordChk              : "Coincidir a palavra inteira",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).",\r
+PasteErrorCopy : "As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).",\r
+\r
+PasteAsText            : "Colar como Texto sem Formatação",\r
+PasteFromWord  : "Colar do Word",\r
+\r
+DlgPasteMsg2   : "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorar definições de fonte",\r
+DlgPasteRemoveStyles   : "Remove definições de estilo",\r
+DlgPasteCleanBox               : "Limpar Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automático",\r
+ColorMoreColors        : "Mais Cores...",\r
+\r
+// Document Properties\r
+DocProps               : "Propriedades Documento",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Formatar Âncora",\r
+DlgAnchorName          : "Nome da Âncora",\r
+DlgAnchorErrorName     : "Por favor, digite o nome da âncora",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Não encontrada",\r
+DlgSpellChangeTo               : "Alterar para",\r
+DlgSpellBtnIgnore              : "Ignorar uma vez",\r
+DlgSpellBtnIgnoreAll   : "Ignorar Todas",\r
+DlgSpellBtnReplace             : "Alterar",\r
+DlgSpellBtnReplaceAll  : "Alterar Todas",\r
+DlgSpellBtnUndo                        : "Desfazer",\r
+DlgSpellNoSuggestions  : "-sem sugestões de ortografia-",\r
+DlgSpellProgress               : "Verificação ortográfica em andamento...",\r
+DlgSpellNoMispell              : "Verificação encerrada: Não foram encontrados erros de ortografia",\r
+DlgSpellNoChanges              : "Verificação ortográfica encerrada: Não houve alterações",\r
+DlgSpellOneChange              : "Verificação ortográfica encerrada: Uma palavra foi alterada",\r
+DlgSpellManyChanges            : "Verificação ortográfica encerrada: %1 foram alteradas",\r
+\r
+IeSpellDownload                        : "A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Texto (Valor)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Botão",\r
+DlgButtonTypeSbm       : "Enviar",\r
+DlgButtonTypeRst       : "Limpar",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nome",\r
+DlgCheckboxValue       : "Valor",\r
+DlgCheckboxSelected    : "Selecionado",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nome",\r
+DlgFormAction  : "Action",\r
+DlgFormMethod  : "Método",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nome",\r
+DlgSelectValue         : "Valor",\r
+DlgSelectSize          : "Tamanho",\r
+DlgSelectLines         : "linhas",\r
+DlgSelectChkMulti      : "Permitir múltiplas seleções",\r
+DlgSelectOpAvail       : "Opções disponíveis",\r
+DlgSelectOpText                : "Texto",\r
+DlgSelectOpValue       : "Valor",\r
+DlgSelectBtnAdd                : "Adicionar",\r
+DlgSelectBtnModify     : "Modificar",\r
+DlgSelectBtnUp         : "Para cima",\r
+DlgSelectBtnDown       : "Para baixo",\r
+DlgSelectBtnSetValue : "Definir como selecionado",\r
+DlgSelectBtnDelete     : "Remover",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nome",\r
+DlgTextareaCols        : "Colunas",\r
+DlgTextareaRows        : "Linhas",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nome",\r
+DlgTextValue           : "Valor",\r
+DlgTextCharWidth       : "Comprimento (em caracteres)",\r
+DlgTextMaxChars                : "Número Máximo de Caracteres",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Texto",\r
+DlgTextTypePass                : "Senha",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nome",\r
+DlgHiddenValue : "Valor",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Formatar Marcadores",\r
+NumberedListProp       : "Formatar Numeração",\r
+DlgLstStart                    : "Iniciar",\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Círculo",\r
+DlgLstTypeDisc         : "Disco",\r
+DlgLstTypeSquare       : "Quadrado",\r
+DlgLstTypeNumbers      : "Números (1, 2, 3)",\r
+DlgLstTypeLCase                : "Letras Minúsculas (a, b, c)",\r
+DlgLstTypeUCase                : "Letras Maiúsculas (A, B, C)",\r
+DlgLstTypeSRoman       : "Números Romanos Minúsculos (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Números Romanos Maiúsculos (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Geral",\r
+DlgDocBackTab          : "Plano de Fundo",\r
+DlgDocColorsTab                : "Cores e Margens",\r
+DlgDocMetaTab          : "Meta Dados",\r
+\r
+DlgDocPageTitle                : "Título da Página",\r
+DlgDocLangDir          : "Direção do Idioma",\r
+DlgDocLangDirLTR       : "Esquerda para Direita (LTR)",\r
+DlgDocLangDirRTL       : "Direita para Esquerda (RTL)",\r
+DlgDocLangCode         : "Código do Idioma",\r
+DlgDocCharSet          : "Codificação de Caracteres",\r
+DlgDocCharSetCE                : "Europa Central",\r
+DlgDocCharSetCT                : "Chinês Tradicional (Big5)",\r
+DlgDocCharSetCR                : "Cirílico",\r
+DlgDocCharSetGR                : "Grego",\r
+DlgDocCharSetJP                : "Japonês",\r
+DlgDocCharSetKR                : "Coreano",\r
+DlgDocCharSetTR                : "Turco",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Europa Ocidental",\r
+DlgDocCharSetOther     : "Outra Codificação de Caracteres",\r
+\r
+DlgDocDocType          : "Cabeçalho Tipo de Documento",\r
+DlgDocDocTypeOther     : "Other Document Type Heading",\r
+DlgDocIncXHTML         : "Incluir Declarações XHTML",\r
+DlgDocBgColor          : "Cor do Plano de Fundo",\r
+DlgDocBgImage          : "URL da Imagem de Plano de Fundo",\r
+DlgDocBgNoScroll       : "Plano de Fundo Fixo",\r
+DlgDocCText                    : "Texto",\r
+DlgDocCLink                    : "Hiperlink",\r
+DlgDocCVisited         : "Hiperlink Visitado",\r
+DlgDocCActive          : "Hiperlink Ativo",\r
+DlgDocMargins          : "Margens da Página",\r
+DlgDocMaTop                    : "Superior",\r
+DlgDocMaLeft           : "Inferior",\r
+DlgDocMaRight          : "Direita",\r
+DlgDocMaBottom         : "Inferior",\r
+DlgDocMeIndex          : "Palavras-chave de Indexação do Documento (separadas por vírgula)",\r
+DlgDocMeDescr          : "Descrição do Documento",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Direitos Autorais",\r
+DlgDocPreview          : "Visualizar",\r
+\r
+// Templates Dialog\r
+Templates                      : "Modelos de layout",\r
+DlgTemplatesTitle      : "Modelo de layout do conteúdo",\r
+DlgTemplatesSelMsg     : "Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):",\r
+DlgTemplatesLoading    : "Carregando a lista de modelos de layout. Aguarde...",\r
+DlgTemplatesNoTpl      : "(Não foram definidos modelos de layout)",\r
+DlgTemplatesReplace    : "Substituir o conteúdo atual",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Sobre",\r
+DlgAboutBrowserInfoTab : "Informações do Navegador",\r
+DlgAboutLicenseTab     : "Licença",\r
+DlgAboutVersion                : "versão",\r
+DlgAboutInfo           : "Para maiores informações visite"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/pt.js b/httemplate/elements/fckeditor/editor/lang/pt.js
new file mode 100644 (file)
index 0000000..23bab35
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Portuguese language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Fechar Barra",\r
+ToolbarExpand          : "Expandir Barra",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Guardar",\r
+NewPage                                : "Nova Página",\r
+Preview                                : "Pré-visualizar",\r
+Cut                                    : "Cortar",\r
+Copy                           : "Copiar",\r
+Paste                          : "Colar",\r
+PasteText                      : "Colar como texto não formatado",\r
+PasteWord                      : "Colar do Word",\r
+Print                          : "Imprimir",\r
+SelectAll                      : "Seleccionar Tudo",\r
+RemoveFormat           : "Eliminar Formato",\r
+InsertLinkLbl          : "Hiperligação",\r
+InsertLink                     : "Inserir/Editar Hiperligação",\r
+RemoveLink                     : "Eliminar Hiperligação",\r
+Anchor                         : " Inserir/Editar Âncora",\r
+InsertImageLbl         : "Imagem",\r
+InsertImage                    : "Inserir/Editar Imagem",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Inserir/Editar Flash",\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Inserir/Editar Tabela",\r
+InsertLineLbl          : "Linha",\r
+InsertLine                     : "Inserir Linha Horizontal",\r
+InsertSpecialCharLbl: "Caracter Especial",\r
+InsertSpecialChar      : "Inserir Caracter Especial",\r
+InsertSmileyLbl                : "Emoticons",\r
+InsertSmiley           : "Inserir Emoticons",\r
+About                          : "Acerca do FCKeditor",\r
+Bold                           : "Negrito",\r
+Italic                         : "Itálico",\r
+Underline                      : "Sublinhado",\r
+StrikeThrough          : "Rasurado",\r
+Subscript                      : "Superior à Linha",\r
+Superscript                    : "Inferior à Linha",\r
+LeftJustify                    : "Alinhar à Esquerda",\r
+CenterJustify          : "Alinhar ao Centro",\r
+RightJustify           : "Alinhar à Direita",\r
+BlockJustify           : "Justificado",\r
+DecreaseIndent         : "Diminuir Avanço",\r
+IncreaseIndent         : "Aumentar Avanço",\r
+Undo                           : "Anular",\r
+Redo                           : "Repetir",\r
+NumberedListLbl                : "Numeração",\r
+NumberedList           : "Inserir/Eliminar Numeração",\r
+BulletedListLbl                : "Marcas",\r
+BulletedList           : "Inserir/Eliminar Marcas",\r
+ShowTableBorders       : "Mostrar Limites da Tabelas",\r
+ShowDetails                    : "Mostrar Parágrafo",\r
+Style                          : "Estilo",\r
+FontFormat                     : "Formato",\r
+Font                           : "Tipo de Letra",\r
+FontSize                       : "Tamanho",\r
+TextColor                      : "Cor do Texto",\r
+BGColor                                : "Cor de Fundo",\r
+Source                         : "Fonte",\r
+Find                           : "Procurar",\r
+Replace                                : "Substituir",\r
+SpellCheck                     : "Verificação Ortográfica",\r
+UniversalKeyboard      : "Teclado Universal",\r
+PageBreakLbl           : "Quebra de Página",\r
+PageBreak                      : "Inserir Quebra de Página",\r
+\r
+Form                   : "Formulário",\r
+Checkbox               : "Caixa de Verificação",\r
+RadioButton            : "Botão de Opção",\r
+TextField              : "Campo de Texto",\r
+Textarea               : "Área de Texto",\r
+HiddenField            : "Campo Escondido",\r
+Button                 : "Botão",\r
+SelectionField : "Caixa de Combinação",\r
+ImageButton            : "Botão de Imagem",\r
+\r
+FitWindow              : "Maximizar o tamanho do editor",\r
+\r
+// Context Menu\r
+EditLink                       : "Editar Hiperligação",\r
+CellCM                         : "Célula",\r
+RowCM                          : "Linha",\r
+ColumnCM                       : "Coluna",\r
+InsertRow                      : "Inserir Linha",\r
+DeleteRows                     : "Eliminar Linhas",\r
+InsertColumn           : "Inserir Coluna",\r
+DeleteColumns          : "Eliminar Coluna",\r
+InsertCell                     : "Inserir Célula",\r
+DeleteCells                    : "Eliminar Célula",\r
+MergeCells                     : "Unir Células",\r
+SplitCell                      : "Dividir Célula",\r
+TableDelete                    : "Eliminar Tabela",\r
+CellProperties         : "Propriedades da Célula",\r
+TableProperties                : "Propriedades da Tabela",\r
+ImageProperties                : "Propriedades da Imagem",\r
+FlashProperties                : "Propriedades do Flash",\r
+\r
+AnchorProp                     : "Propriedades da Âncora",\r
+ButtonProp                     : "Propriedades do Botão",\r
+CheckboxProp           : "Propriedades da Caixa de Verificação",\r
+HiddenFieldProp                : "Propriedades do Campo Escondido",\r
+RadioButtonProp                : "Propriedades do Botão de Opção",\r
+ImageButtonProp                : "Propriedades do Botão de imagens",\r
+TextFieldProp          : "Propriedades do Campo de Texto",\r
+SelectionFieldProp     : "Propriedades da Caixa de Combinação",\r
+TextareaProp           : "Propriedades da Área de Texto",\r
+FormProp                       : "Propriedades do Formulário",\r
+\r
+FontFormats                    : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "A Processar XHTML. Por favor, espere...",\r
+Done                           : "Concluído",\r
+PasteWordConfirm       : "O texto que deseja parece ter sido copiado do Word. Deseja limpar a formatação antes de colar?",\r
+NotCompatiblePaste     : "Este comando só está disponível para Internet Explorer versão 5.5 ou superior. Deseja colar sem limpar a formatação?",\r
+UnknownToolbarItem     : "Item de barra desconhecido \"%1\"",\r
+UnknownCommand         : "Nome de comando desconhecido \"%1\"",\r
+NotImplemented         : "Comando não implementado",\r
+UnknownToolbarSet      : "Nome de barra \"%1\" não definido",\r
+NoActiveX                      : "As definições de segurança do navegador podem limitar algumas potencalidades do editr. Deve activar a opção \"Executar controlos e extensões ActiveX\". Pode ocorrer erros ou verificar que faltam potencialidades.",\r
+BrowseServerBlocked : "Não foi possível abrir o navegador de recursos. Certifique-se que todos os bloqueadores de popup estão desactivados.",\r
+DialogBlocked          : "Não foi possível abrir a janela de diálogo. Certifique-se que todos os bloqueadores de popup estão desactivados.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Cancelar",\r
+DlgBtnClose                    : "Fechar",\r
+DlgBtnBrowseServer     : "Navegar no Servidor",\r
+DlgAdvancedTag         : "Avançado",\r
+DlgOpOther                     : "<Outro>",\r
+DlgInfoTab                     : "Informação",\r
+DlgAlertUrl                    : "Por favor introduza o URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<Não definido>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Orientação de idioma",\r
+DlgGenLangDirLtr       : "Esquerda à Direita (LTR)",\r
+DlgGenLangDirRtl       : "Direita a Esquerda (RTL)",\r
+DlgGenLangCode         : "Código de Idioma",\r
+DlgGenAccessKey                : "Chave de Acesso",\r
+DlgGenName                     : "Nome",\r
+DlgGenTabIndex         : "Índice de Tubulação",\r
+DlgGenLongDescr                : "Descrição Completa do URL",\r
+DlgGenClass                    : "Classes de Estilo de Folhas Classes",\r
+DlgGenTitle                    : "Título",\r
+DlgGenContType         : "Tipo de Conteúdo",\r
+DlgGenLinkCharset      : "Fonte de caracteres vinculado",\r
+DlgGenStyle                    : "Estilo",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Propriedades da Imagem",\r
+DlgImgInfoTab          : "Informação da Imagem",\r
+DlgImgBtnUpload                : "Enviar para o Servidor",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Carregar",\r
+DlgImgAlt                      : "Texto Alternativo",\r
+DlgImgWidth                    : "Largura",\r
+DlgImgHeight           : "Altura",\r
+DlgImgLockRatio                : "Proporcional",\r
+DlgBtnResetSize                : "Tamanho Original",\r
+DlgImgBorder           : "Limite",\r
+DlgImgHSpace           : "Esp.Horiz",\r
+DlgImgVSpace           : "Esp.Vert",\r
+DlgImgAlign                    : "Alinhamento",\r
+DlgImgAlignLeft                : "Esquerda",\r
+DlgImgAlignAbsBottom: "Abs inferior",\r
+DlgImgAlignAbsMiddle: "Abs centro",\r
+DlgImgAlignBaseline    : "Linha de base",\r
+DlgImgAlignBottom      : "Fundo",\r
+DlgImgAlignMiddle      : "Centro",\r
+DlgImgAlignRight       : "Direita",\r
+DlgImgAlignTextTop     : "Topo do texto",\r
+DlgImgAlignTop         : "Topo",\r
+DlgImgPreview          : "Pré-visualizar",\r
+DlgImgAlertUrl         : "Por favor introduza o URL da imagem",\r
+DlgImgLinkTab          : "Hiperligação",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Propriedades do Flash",\r
+DlgFlashChkPlay                : "Reproduzir automaticamente",\r
+DlgFlashChkLoop                : "Loop",\r
+DlgFlashChkMenu                : "Permitir Menu do Flash",\r
+DlgFlashScale          : "Escala",\r
+DlgFlashScaleAll       : "Mostrar tudo",\r
+DlgFlashScaleNoBorder  : "Sem Limites",\r
+DlgFlashScaleFit       : "Tamanho Exacto",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Hiperligação",\r
+DlgLnkInfoTab          : "Informação de Hiperligação",\r
+DlgLnkTargetTab                : "Destino",\r
+\r
+DlgLnkType                     : "Tipo de Hiperligação",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Referência a esta página",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocolo",\r
+DlgLnkProtoOther       : "<outro>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Seleccionar una referência",\r
+DlgLnkAnchorByName     : "Por Nome de Referência",\r
+DlgLnkAnchorById       : "Por ID de elemento",\r
+DlgLnkNoAnchors                : "<Não há referências disponíveis no documento>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Endereço de E-Mail",\r
+DlgLnkEMailSubject     : "Título de Mensagem",\r
+DlgLnkEMailBody                : "Corpo da Mensagem",\r
+DlgLnkUpload           : "Carregar",\r
+DlgLnkBtnUpload                : "Enviar ao Servidor",\r
+\r
+DlgLnkTarget           : "Destino",\r
+DlgLnkTargetFrame      : "<Frame>",\r
+DlgLnkTargetPopup      : "<Janela de popup>",\r
+DlgLnkTargetBlank      : "Nova Janela(_blank)",\r
+DlgLnkTargetParent     : "Janela Pai (_parent)",\r
+DlgLnkTargetSelf       : "Mesma janela (_self)",\r
+DlgLnkTargetTop                : "Janela primaria (_top)",\r
+DlgLnkTargetFrameName  : "Nome do Frame Destino",\r
+DlgLnkPopWinName       : "Nome da Janela de Popup",\r
+DlgLnkPopWinFeat       : "Características de Janela de Popup",\r
+DlgLnkPopResize                : "Ajustável",\r
+DlgLnkPopLocation      : "Barra de localização",\r
+DlgLnkPopMenu          : "Barra de Menu",\r
+DlgLnkPopScroll                : "Barras de deslocamento",\r
+DlgLnkPopStatus                : "Barra de Estado",\r
+DlgLnkPopToolbar       : "Barra de Ferramentas",\r
+DlgLnkPopFullScrn      : "Janela Completa (IE)",\r
+DlgLnkPopDependent     : "Dependente (Netscape)",\r
+DlgLnkPopWidth         : "Largura",\r
+DlgLnkPopHeight                : "Altura",\r
+DlgLnkPopLeft          : "Posição Esquerda",\r
+DlgLnkPopTop           : "Posição Direita",\r
+\r
+DlnLnkMsgNoUrl         : "Por favor introduza a hiperligação URL",\r
+DlnLnkMsgNoEMail       : "Por favor introduza o endereço de e-mail",\r
+DlnLnkMsgNoAnchor      : "Por favor seleccione uma referência",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Seleccionar Cor",\r
+DlgColorBtnClear       : "Nenhuma",\r
+DlgColorHighlight      : "Destacado",\r
+DlgColorSelected       : "Seleccionado",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Inserir um Emoticon",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Seleccione um caracter especial",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Propriedades da Tabela",\r
+DlgTableRows           : "Linhas",\r
+DlgTableColumns                : "Colunas",\r
+DlgTableBorder         : "Tamanho do Limite",\r
+DlgTableAlign          : "Alinhamento",\r
+DlgTableAlignNotSet    : "<Não definido>",\r
+DlgTableAlignLeft      : "Esquerda",\r
+DlgTableAlignCenter    : "Centrado",\r
+DlgTableAlignRight     : "Direita",\r
+DlgTableWidth          : "Largura",\r
+DlgTableWidthPx                : "pixeis",\r
+DlgTableWidthPc                : "percentagem",\r
+DlgTableHeight         : "Altura",\r
+DlgTableCellSpace      : "Esp. e/células",\r
+DlgTableCellPad                : "Esp. interior",\r
+DlgTableCaption                : "Título",\r
+DlgTableSummary                : "Sumário",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Propriedades da Célula",\r
+DlgCellWidth           : "Largura",\r
+DlgCellWidthPx         : "pixeis",\r
+DlgCellWidthPc         : "percentagem",\r
+DlgCellHeight          : "Altura",\r
+DlgCellWordWrap                : "Moldar Texto",\r
+DlgCellWordWrapNotSet  : "<Não definido>",\r
+DlgCellWordWrapYes     : "Sim",\r
+DlgCellWordWrapNo      : "Não",\r
+DlgCellHorAlign                : "Alinhamento Horizontal",\r
+DlgCellHorAlignNotSet  : "<Não definido>",\r
+DlgCellHorAlignLeft    : "Esquerda",\r
+DlgCellHorAlignCenter  : "Centrado",\r
+DlgCellHorAlignRight: "Direita",\r
+DlgCellVerAlign                : "Alinhamento Vertical",\r
+DlgCellVerAlignNotSet  : "<Não definido>",\r
+DlgCellVerAlignTop     : "Topo",\r
+DlgCellVerAlignMiddle  : "Médio",\r
+DlgCellVerAlignBottom  : "Fundi",\r
+DlgCellVerAlignBaseline        : "Linha de Base",\r
+DlgCellRowSpan         : "Unir Linhas",\r
+DlgCellCollSpan                : "Unir Colunas",\r
+DlgCellBackColor       : "Cor do Fundo",\r
+DlgCellBorderColor     : "Cor do Limite",\r
+DlgCellBtnSelect       : "Seleccione...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Procurar",\r
+DlgFindFindBtn         : "Procurar",\r
+DlgFindNotFoundMsg     : "O texto especificado não foi encontrado.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Substituir",\r
+DlgReplaceFindLbl              : "Texto a Procurar:",\r
+DlgReplaceReplaceLbl   : "Substituir por:",\r
+DlgReplaceCaseChk              : "Maiúsculas/Minúsculas",\r
+DlgReplaceReplaceBtn   : "Substituir",\r
+DlgReplaceReplAllBtn   : "Substituir Tudo",\r
+DlgReplaceWordChk              : "Coincidir com toda a palavra",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).",\r
+PasteErrorCopy : "A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).",\r
+\r
+PasteAsText            : "Colar como Texto Simples",\r
+PasteFromWord  : "Colar do Word",\r
+\r
+DlgPasteMsg2   : "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorar da definições do Tipo de Letra ",\r
+DlgPasteRemoveStyles   : "Remover as definições de Estilos",\r
+DlgPasteCleanBox               : "Caixa de Limpeza",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automático",\r
+ColorMoreColors        : "Mais Cores...",\r
+\r
+// Document Properties\r
+DocProps               : "Propriedades do Documento",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Propriedades da Âncora",\r
+DlgAnchorName          : "Nome da Âncora",\r
+DlgAnchorErrorName     : "Por favor, introduza o nome da âncora",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Não está num directório",\r
+DlgSpellChangeTo               : "Mudar para",\r
+DlgSpellBtnIgnore              : "Ignorar",\r
+DlgSpellBtnIgnoreAll   : "Ignorar Tudo",\r
+DlgSpellBtnReplace             : "Substituir",\r
+DlgSpellBtnReplaceAll  : "Substituir Tudo",\r
+DlgSpellBtnUndo                        : "Anular",\r
+DlgSpellNoSuggestions  : "- Sem sugestões -",\r
+DlgSpellProgress               : "Verificação ortográfica em progresso…",\r
+DlgSpellNoMispell              : "Verificação ortográfica completa: não foram encontrados erros",\r
+DlgSpellNoChanges              : "Verificação ortográfica completa: não houve alteração de palavras",\r
+DlgSpellOneChange              : "Verificação ortográfica completa: uma palavra alterada",\r
+DlgSpellManyChanges            : "Verificação ortográfica completa: %1 palavras alteradas",\r
+\r
+IeSpellDownload                        : " Verificação ortográfica não instalada. Quer descarregar agora?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Texto (Valor)",\r
+DlgButtonType          : "Tipo",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nome",\r
+DlgCheckboxValue       : "Valor",\r
+DlgCheckboxSelected    : "Seleccionado",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nome",\r
+DlgFormAction  : "Acção",\r
+DlgFormMethod  : "Método",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nome",\r
+DlgSelectValue         : "Valor",\r
+DlgSelectSize          : "Tamanho",\r
+DlgSelectLines         : "linhas",\r
+DlgSelectChkMulti      : "Permitir selecções múltiplas",\r
+DlgSelectOpAvail       : "Opções Possíveis",\r
+DlgSelectOpText                : "Texto",\r
+DlgSelectOpValue       : "Valor",\r
+DlgSelectBtnAdd                : "Adicionar",\r
+DlgSelectBtnModify     : "Modificar",\r
+DlgSelectBtnUp         : "Para cima",\r
+DlgSelectBtnDown       : "Para baixo",\r
+DlgSelectBtnSetValue : "Definir um valor por defeito",\r
+DlgSelectBtnDelete     : "Apagar",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nome",\r
+DlgTextareaCols        : "Colunas",\r
+DlgTextareaRows        : "Linhas",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nome",\r
+DlgTextValue           : "Valor",\r
+DlgTextCharWidth       : "Tamanho do caracter",\r
+DlgTextMaxChars                : "Nr. Máximo de Caracteres",\r
+DlgTextType                    : "Tipo",\r
+DlgTextTypeText                : "Texto",\r
+DlgTextTypePass                : "Palavra-chave",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nome",\r
+DlgHiddenValue : "Valor",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Propriedades da Marca",\r
+NumberedListProp       : "Propriedades da Numeração",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tipo",\r
+DlgLstTypeCircle       : "Circulo",\r
+DlgLstTypeDisc         : "Disco",\r
+DlgLstTypeSquare       : "Quadrado",\r
+DlgLstTypeNumbers      : "Números (1, 2, 3)",\r
+DlgLstTypeLCase                : "Letras Minúsculas (a, b, c)",\r
+DlgLstTypeUCase                : "Letras Maiúsculas (A, B, C)",\r
+DlgLstTypeSRoman       : "Numeração Romana em Minúsculas (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Numeração Romana em Maiúsculas (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Geral",\r
+DlgDocBackTab          : "Fundo",\r
+DlgDocColorsTab                : "Cores e Margens",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Título da Página",\r
+DlgDocLangDir          : "Orientação de idioma",\r
+DlgDocLangDirLTR       : "Esquerda à Direita (LTR)",\r
+DlgDocLangDirRTL       : "Direita à Esquerda (RTL)",\r
+DlgDocLangCode         : "Código de Idioma",\r
+DlgDocCharSet          : "Codificação de Caracteres",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Outra Codificação de Caracteres",\r
+\r
+DlgDocDocType          : "Tipo de Cabeçalho do Documento",\r
+DlgDocDocTypeOther     : "Outro Tipo de Cabeçalho do Documento",\r
+DlgDocIncXHTML         : "Incluir Declarações XHTML",\r
+DlgDocBgColor          : "Cor de Fundo",\r
+DlgDocBgImage          : "Caminho para a Imagem de Fundo",\r
+DlgDocBgNoScroll       : "Fundo Fixo",\r
+DlgDocCText                    : "Texto",\r
+DlgDocCLink                    : "Hiperligação",\r
+DlgDocCVisited         : "Hiperligação Visitada",\r
+DlgDocCActive          : "Hiperligação Activa",\r
+DlgDocMargins          : "Margem das Páginas",\r
+DlgDocMaTop                    : "Topo",\r
+DlgDocMaLeft           : "Esquerda",\r
+DlgDocMaRight          : "Direita",\r
+DlgDocMaBottom         : "Fundo",\r
+DlgDocMeIndex          : "Palavras de Indexação do Documento (separadas por virgula)",\r
+DlgDocMeDescr          : "Descrição do Documento",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Direitos de Autor",\r
+DlgDocPreview          : "Pré-visualizar",\r
+\r
+// Templates Dialog\r
+Templates                      : "Modelos",\r
+DlgTemplatesTitle      : "Modelo de Conteúdo",\r
+DlgTemplatesSelMsg     : "Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):",\r
+DlgTemplatesLoading    : "A carregar a lista de modelos. Aguarde por favor...",\r
+DlgTemplatesNoTpl      : "(Sem modelos definidos)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Acerca",\r
+DlgAboutBrowserInfoTab : "Informação do Nevegador",\r
+DlgAboutLicenseTab     : "Licença",\r
+DlgAboutVersion                : "versão",\r
+DlgAboutInfo           : "Para mais informações por favor dirija-se a"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ro.js b/httemplate/elements/fckeditor/editor/lang/ro.js
new file mode 100644 (file)
index 0000000..1f36961
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Romanian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Ascunde bara cu opţiuni",\r
+ToolbarExpand          : "Expandează bara cu opţiuni",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Salvează",\r
+NewPage                                : "Pagină nouă",\r
+Preview                                : "Previzualizare",\r
+Cut                                    : "Taie",\r
+Copy                           : "Copiază",\r
+Paste                          : "Adaugă",\r
+PasteText                      : "Adaugă ca text simplu",\r
+PasteWord                      : "Adaugă din Word",\r
+Print                          : "Printează",\r
+SelectAll                      : "Selectează tot",\r
+RemoveFormat           : "Înlătură formatarea",\r
+InsertLinkLbl          : "Link (Legătură web)",\r
+InsertLink                     : "Inserează/Editează link (legătură web)",\r
+RemoveLink                     : "Înlătură link (legătură web)",\r
+Anchor                         : "Inserează/Editează ancoră",\r
+InsertImageLbl         : "Imagine",\r
+InsertImage                    : "Inserează/Editează imagine",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Inserează/Editează flash",\r
+InsertTableLbl         : "Tabel",\r
+InsertTable                    : "Inserează/Editează tabel",\r
+InsertLineLbl          : "Linie",\r
+InsertLine                     : "Inserează linie orizontă",\r
+InsertSpecialCharLbl: "Caracter special",\r
+InsertSpecialChar      : "Inserează caracter special",\r
+InsertSmileyLbl                : "Figură expresivă (Emoticon)",\r
+InsertSmiley           : "Inserează Figură expresivă (Emoticon)",\r
+About                          : "Despre FCKeditor",\r
+Bold                           : "Îngroşat (bold)",\r
+Italic                         : "Înclinat (italic)",\r
+Underline                      : "Subliniat (underline)",\r
+StrikeThrough          : "Tăiat (strike through)",\r
+Subscript                      : "Indice (subscript)",\r
+Superscript                    : "Putere (superscript)",\r
+LeftJustify                    : "Aliniere la stânga",\r
+CenterJustify          : "Aliniere centrală",\r
+RightJustify           : "Aliniere la dreapta",\r
+BlockJustify           : "Aliniere în bloc (Block Justify)",\r
+DecreaseIndent         : "Scade indentarea",\r
+IncreaseIndent         : "Creşte indentarea",\r
+Undo                           : "Starea anterioară (undo)",\r
+Redo                           : "Starea ulterioară (redo)",\r
+NumberedListLbl                : "Listă numerotată",\r
+NumberedList           : "Inserează/Şterge listă numerotată",\r
+BulletedListLbl                : "Listă cu puncte",\r
+BulletedList           : "Inserează/Şterge listă cu puncte",\r
+ShowTableBorders       : "Arată marginile tabelului",\r
+ShowDetails                    : "Arată detalii",\r
+Style                          : "Stil",\r
+FontFormat                     : "Formatare",\r
+Font                           : "Font",\r
+FontSize                       : "Mărime",\r
+TextColor                      : "Culoarea textului",\r
+BGColor                                : "Coloarea fundalului",\r
+Source                         : "Sursa",\r
+Find                           : "Găseşte",\r
+Replace                                : "Înlocuieşte",\r
+SpellCheck                     : "Verifică text",\r
+UniversalKeyboard      : "Tastatură universală",\r
+PageBreakLbl           : "Separator de pagină (Page Break)",\r
+PageBreak                      : "Inserează separator de pagină (Page Break)",\r
+\r
+Form                   : "Formular (Form)",\r
+Checkbox               : "Bifă (Checkbox)",\r
+RadioButton            : "Buton radio (RadioButton)",\r
+TextField              : "Câmp text (TextField)",\r
+Textarea               : "Suprafaţă text (Textarea)",\r
+HiddenField            : "Câmp ascuns (HiddenField)",\r
+Button                 : "Buton",\r
+SelectionField : "Câmp selecţie (SelectionField)",\r
+ImageButton            : "Buton imagine (ImageButton)",\r
+\r
+FitWindow              : "Maximizează mărimea editorului",\r
+\r
+// Context Menu\r
+EditLink                       : "Editează Link",\r
+CellCM                         : "Celulă",\r
+RowCM                          : "Linie",\r
+ColumnCM                       : "Coloană",\r
+InsertRow                      : "Inserează linie",\r
+DeleteRows                     : "Şterge linii",\r
+InsertColumn           : "Inserează coloană",\r
+DeleteColumns          : "Şterge celule",\r
+InsertCell                     : "Inserează celulă",\r
+DeleteCells                    : "Şterge celule",\r
+MergeCells                     : "Uneşte celule",\r
+SplitCell                      : "Împarte celulă",\r
+TableDelete                    : "Şterge tabel",\r
+CellProperties         : "Proprietăţile celulei",\r
+TableProperties                : "Proprietăţile tabelului",\r
+ImageProperties                : "Proprietăţile imaginii",\r
+FlashProperties                : "Proprietăţile flash-ului",\r
+\r
+AnchorProp                     : "Proprietăţi ancoră",\r
+ButtonProp                     : "Proprietăţi buton",\r
+CheckboxProp           : "Proprietăţi bifă (Checkbox)",\r
+HiddenFieldProp                : "Proprietăţi câmp ascuns (Hidden Field)",\r
+RadioButtonProp                : "Proprietăţi buton radio (Radio Button)",\r
+ImageButtonProp                : "Proprietăţi buton imagine (Image Button)",\r
+TextFieldProp          : "Proprietăţi câmp text (Text Field)",\r
+SelectionFieldProp     : "Proprietăţi câmp selecţie (Selection Field)",\r
+TextareaProp           : "Proprietăţi suprafaţă text (Textarea)",\r
+FormProp                       : "Proprietăţi formular (Form)",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html    //MISSING\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Procesăm XHTML. Vă rugăm aşteptaţi...",\r
+Done                           : "Am terminat",\r
+PasteWordConfirm       : "Textul pe care doriţi să-l adăugaţi pare a fi formatat pentru Word. Doriţi să-l curăţaţi de această formatare înainte de a-l adăuga?",\r
+NotCompatiblePaste     : "Această facilitate e disponibilă doar pentru Microsoft Internet Explorer, versiunea 5.5 sau ulterioară. Vreţi să-l adăugaţi fără a-i fi înlăturat formatarea?",\r
+UnknownToolbarItem     : "Obiectul \"%1\" din bara cu opţiuni necunoscut",\r
+UnknownCommand         : "Comanda \"%1\" necunoscută",\r
+NotImplemented         : "Comandă neimplementată",\r
+UnknownToolbarSet      : "Grupul din bara cu opţiuni \"%1\" nu există",\r
+NoActiveX                      : "Setările de securitate ale programului dvs. cu care navigaţi pe internet (browser) pot limita anumite funcţionalităţi ale editorului. Pentru a evita asta, trebuie să activaţi opţiunea \"Run ActiveX controls and plug-ins\". Poate veţi întâlni erori sau veţi observa funcţionalităţi lipsă.",\r
+BrowseServerBlocked : "The resources browser could not be opened. Asiguraţi-vă că nu e activ niciun \"popup blocker\" (funcţionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",\r
+DialogBlocked          : "Nu a fost posibilă deschiderea unei ferestre de dialog. Asiguraţi-vă că nu e activ niciun \"popup blocker\" (funcţionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Bine",\r
+DlgBtnCancel           : "Anulare",\r
+DlgBtnClose                    : "Închidere",\r
+DlgBtnBrowseServer     : "Răsfoieşte server",\r
+DlgAdvancedTag         : "Avansat",\r
+DlgOpOther                     : "<Altul>",\r
+DlgInfoTab                     : "Informaţii",\r
+DlgAlertUrl                    : "Vă rugăm să scrieţi URL-ul",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nesetat>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Direcţia cuvintelor",\r
+DlgGenLangDirLtr       : "stânga-dreapta (LTR)",\r
+DlgGenLangDirRtl       : "dreapta-stânga (RTL)",\r
+DlgGenLangCode         : "Codul limbii",\r
+DlgGenAccessKey                : "Tasta de acces",\r
+DlgGenName                     : "Nume",\r
+DlgGenTabIndex         : "Indexul tabului",\r
+DlgGenLongDescr                : "Descrierea lungă URL",\r
+DlgGenClass                    : "Clasele cu stilul paginii (CSS)",\r
+DlgGenTitle                    : "Titlul consultativ",\r
+DlgGenContType         : "Tipul consultativ al titlului",\r
+DlgGenLinkCharset      : "Setul de caractere al resursei legate",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Proprietăţile imaginii",\r
+DlgImgInfoTab          : "Informaţii despre imagine",\r
+DlgImgBtnUpload                : "Trimite la server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Încarcă",\r
+DlgImgAlt                      : "Text alternativ",\r
+DlgImgWidth                    : "Lăţime",\r
+DlgImgHeight           : "Înălţime",\r
+DlgImgLockRatio                : "Păstrează proporţiile",\r
+DlgBtnResetSize                : "Resetează mărimea",\r
+DlgImgBorder           : "Margine",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Aliniere",\r
+DlgImgAlignLeft                : "Stânga",\r
+DlgImgAlignAbsBottom: "Jos absolut (Abs Bottom)",\r
+DlgImgAlignAbsMiddle: "Mijloc absolut (Abs Middle)",\r
+DlgImgAlignBaseline    : "Linia de jos (Baseline)",\r
+DlgImgAlignBottom      : "Jos",\r
+DlgImgAlignMiddle      : "Mijloc",\r
+DlgImgAlignRight       : "Dreapta",\r
+DlgImgAlignTextTop     : "Text sus",\r
+DlgImgAlignTop         : "Sus",\r
+DlgImgPreview          : "Previzualizare",\r
+DlgImgAlertUrl         : "Vă rugăm să scrieţi URL-ul imaginii",\r
+DlgImgLinkTab          : "Link (Legătură web)",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Proprietăţile flash-ului",\r
+DlgFlashChkPlay                : "Rulează automat",\r
+DlgFlashChkLoop                : "Repetă (Loop)",\r
+DlgFlashChkMenu                : "Activează meniul flash",\r
+DlgFlashScale          : "Scală",\r
+DlgFlashScaleAll       : "Arată tot",\r
+DlgFlashScaleNoBorder  : "Fără margini (No border)",\r
+DlgFlashScaleFit       : "Potriveşte",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link (Legătură web)",\r
+DlgLnkInfoTab          : "Informaţii despre link (Legătură web)",\r
+DlgLnkTargetTab                : "Ţintă (Target)",\r
+\r
+DlgLnkType                     : "Tipul link-ului (al legăturii web)",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ancoră în această pagină",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protocol",\r
+DlgLnkProtoOther       : "<altul>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Selectaţi o ancoră",\r
+DlgLnkAnchorByName     : "după numele ancorei",\r
+DlgLnkAnchorById       : "după Id-ul elementului",\r
+DlgLnkNoAnchors                : "<Nicio ancoră disponibilă în document>",          //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Adresă de e-mail",\r
+DlgLnkEMailSubject     : "Subiectul mesajului",\r
+DlgLnkEMailBody                : "Conţinutul mesajului",\r
+DlgLnkUpload           : "Încarcă",\r
+DlgLnkBtnUpload                : "Trimite la server",\r
+\r
+DlgLnkTarget           : "Ţintă (Target)",\r
+DlgLnkTargetFrame      : "<frame>",\r
+DlgLnkTargetPopup      : "<fereastra popup>",\r
+DlgLnkTargetBlank      : "Fereastră nouă (_blank)",\r
+DlgLnkTargetParent     : "Fereastra părinte (_parent)",\r
+DlgLnkTargetSelf       : "Aceeaşi fereastră (_self)",\r
+DlgLnkTargetTop                : "Fereastra din topul ierarhiei (_top)",\r
+DlgLnkTargetFrameName  : "Numele frame-ului ţintă",\r
+DlgLnkPopWinName       : "Numele ferestrei popup",\r
+DlgLnkPopWinFeat       : "Proprietăţile ferestrei popup",\r
+DlgLnkPopResize                : "Scalabilă",\r
+DlgLnkPopLocation      : "Bara de locaţie",\r
+DlgLnkPopMenu          : "Bara de meniu",\r
+DlgLnkPopScroll                : "Scroll Bars",\r
+DlgLnkPopStatus                : "Bara de status",\r
+DlgLnkPopToolbar       : "Bara de opţiuni",\r
+DlgLnkPopFullScrn      : "Tot ecranul (Full Screen)(IE)",\r
+DlgLnkPopDependent     : "Dependent (Netscape)",\r
+DlgLnkPopWidth         : "Lăţime",\r
+DlgLnkPopHeight                : "Înălţime",\r
+DlgLnkPopLeft          : "Poziţia la stânga",\r
+DlgLnkPopTop           : "Poziţia la dreapta",\r
+\r
+DlnLnkMsgNoUrl         : "Vă rugăm să scrieţi URL-ul",\r
+DlnLnkMsgNoEMail       : "Vă rugăm să scrieţi adresa de e-mail",\r
+DlnLnkMsgNoAnchor      : "Vă rugăm să selectaţi o ancoră",\r
+DlnLnkMsgInvPopName    : "Numele 'popup'-ului trebuie să înceapă cu un caracter alfabetic şi trebuie să nu conţină spaţii",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Selectează culoare",\r
+DlgColorBtnClear       : "Curăţă",\r
+DlgColorHighlight      : "Subliniază (Highlight)",\r
+DlgColorSelected       : "Selectat",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Inserează o figură expresivă (Emoticon)",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Selectează caracter special",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Proprietăţile tabelului",\r
+DlgTableRows           : "Linii",\r
+DlgTableColumns                : "Coloane",\r
+DlgTableBorder         : "Mărimea marginii",\r
+DlgTableAlign          : "Aliniament",\r
+DlgTableAlignNotSet    : "<Nesetat>",\r
+DlgTableAlignLeft      : "Stânga",\r
+DlgTableAlignCenter    : "Centru",\r
+DlgTableAlignRight     : "Dreapta",\r
+DlgTableWidth          : "Lăţime",\r
+DlgTableWidthPx                : "pixeli",\r
+DlgTableWidthPc                : "procente",\r
+DlgTableHeight         : "Înălţime",\r
+DlgTableCellSpace      : "Spaţiu între celule",\r
+DlgTableCellPad                : "Spaţiu în cadrul celulei",\r
+DlgTableCaption                : "Titlu (Caption)",\r
+DlgTableSummary                : "Rezumat",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Proprietăţile celulei",\r
+DlgCellWidth           : "Lăţime",\r
+DlgCellWidthPx         : "pixeli",\r
+DlgCellWidthPc         : "procente",\r
+DlgCellHeight          : "Înălţime",\r
+DlgCellWordWrap                : "Desparte cuvintele (Wrap)",\r
+DlgCellWordWrapNotSet  : "<Nesetat>",\r
+DlgCellWordWrapYes     : "Da",\r
+DlgCellWordWrapNo      : "Nu",\r
+DlgCellHorAlign                : "Aliniament orizontal",\r
+DlgCellHorAlignNotSet  : "<Nesetat>",\r
+DlgCellHorAlignLeft    : "Stânga",\r
+DlgCellHorAlignCenter  : "Centru",\r
+DlgCellHorAlignRight: "Dreapta",\r
+DlgCellVerAlign                : "Aliniament vertical",\r
+DlgCellVerAlignNotSet  : "<Nesetat>",\r
+DlgCellVerAlignTop     : "Sus",\r
+DlgCellVerAlignMiddle  : "Mijloc",\r
+DlgCellVerAlignBottom  : "Jos",\r
+DlgCellVerAlignBaseline        : "Linia de jos (Baseline)",\r
+DlgCellRowSpan         : "Lungimea în linii (Span)",\r
+DlgCellCollSpan                : "Lungimea în coloane (Span)",\r
+DlgCellBackColor       : "Culoarea fundalului",\r
+DlgCellBorderColor     : "Culoarea marginii",\r
+DlgCellBtnSelect       : "Selectaţi...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Găseşte",\r
+DlgFindFindBtn         : "Găseşte",\r
+DlgFindNotFoundMsg     : "Textul specificat nu a fost găsit.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Replace",\r
+DlgReplaceFindLbl              : "Găseşte:",\r
+DlgReplaceReplaceLbl   : "Înlocuieşte cu:",\r
+DlgReplaceCaseChk              : "Deosebeşte majuscule de minuscule (Match case)",\r
+DlgReplaceReplaceBtn   : "Înlocuieşte",\r
+DlgReplaceReplAllBtn   : "Înlocuieşte tot",\r
+DlgReplaceWordChk              : "Doar cuvintele întregi",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl+X).",\r
+PasteErrorCopy : "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl+C).",\r
+\r
+PasteAsText            : "Adaugă ca text simplu (Plain Text)",\r
+PasteFromWord  : "Adaugă din Word",\r
+\r
+DlgPasteMsg2   : "Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoră definiţiile Font Face",\r
+DlgPasteRemoveStyles   : "Şterge definiţiile stilurilor",\r
+DlgPasteCleanBox               : "Şterge căsuţa",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatic",\r
+ColorMoreColors        : "Mai multe culori...",\r
+\r
+// Document Properties\r
+DocProps               : "Proprietăţile documentului",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Proprietăţile ancorei",\r
+DlgAnchorName          : "Numele ancorei",\r
+DlgAnchorErrorName     : "Vă rugăm scrieţi numele ancorei",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nu e în dicţionar",\r
+DlgSpellChangeTo               : "Schimbă în",\r
+DlgSpellBtnIgnore              : "Ignoră",\r
+DlgSpellBtnIgnoreAll   : "Ignoră toate",\r
+DlgSpellBtnReplace             : "Înlocuieşte",\r
+DlgSpellBtnReplaceAll  : "Înlocuieşte tot",\r
+DlgSpellBtnUndo                        : "Starea anterioară (undo)",\r
+DlgSpellNoSuggestions  : "- Fără sugestii -",\r
+DlgSpellProgress               : "Verificarea textului în desfăşurare...",\r
+DlgSpellNoMispell              : "Verificarea textului terminată: Nicio greşeală găsită",\r
+DlgSpellNoChanges              : "Verificarea textului terminată: Niciun cuvânt modificat",\r
+DlgSpellOneChange              : "Verificarea textului terminată: Un cuvânt modificat",\r
+DlgSpellManyChanges            : "Verificarea textului terminată: 1% cuvinte modificate",\r
+\r
+IeSpellDownload                        : "Unealta pentru verificat textul (Spell checker) neinstalată. Doriţi să o descărcaţi acum?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Valoare)",\r
+DlgButtonType          : "Tip",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Nume",\r
+DlgCheckboxValue       : "Valoare",\r
+DlgCheckboxSelected    : "Selectat",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Nume",\r
+DlgFormAction  : "Acţiune",\r
+DlgFormMethod  : "Metodă",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Nume",\r
+DlgSelectValue         : "Valoare",\r
+DlgSelectSize          : "Mărime",\r
+DlgSelectLines         : "linii",\r
+DlgSelectChkMulti      : "Permite selecţii multiple",\r
+DlgSelectOpAvail       : "Opţiuni disponibile",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Valoare",\r
+DlgSelectBtnAdd                : "Adaugă",\r
+DlgSelectBtnModify     : "Modifică",\r
+DlgSelectBtnUp         : "Sus",\r
+DlgSelectBtnDown       : "Jos",\r
+DlgSelectBtnSetValue : "Setează ca valoare selectată",\r
+DlgSelectBtnDelete     : "Şterge",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Nume",\r
+DlgTextareaCols        : "Coloane",\r
+DlgTextareaRows        : "Linii",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Nume",\r
+DlgTextValue           : "Valoare",\r
+DlgTextCharWidth       : "Lărgimea caracterului",\r
+DlgTextMaxChars                : "Caractere maxime",\r
+DlgTextType                    : "Tip",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Parolă",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Nume",\r
+DlgHiddenValue : "Valoare",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Proprietăţile listei punctate (Bulleted List)",\r
+NumberedListProp       : "Proprietăţile listei numerotate (Numbered List)",\r
+DlgLstStart                    : "Start",\r
+DlgLstType                     : "Tip",\r
+DlgLstTypeCircle       : "Cerc",\r
+DlgLstTypeDisc         : "Disc",\r
+DlgLstTypeSquare       : "Pătrat",\r
+DlgLstTypeNumbers      : "Numere (1, 2, 3)",\r
+DlgLstTypeLCase                : "Minuscule-litere mici (a, b, c)",\r
+DlgLstTypeUCase                : "Majuscule (A, B, C)",\r
+DlgLstTypeSRoman       : "Cifre romane mici (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Cifre romane mari (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "General",\r
+DlgDocBackTab          : "Fundal",\r
+DlgDocColorsTab                : "Culori si margini",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Titlul paginii",\r
+DlgDocLangDir          : "Descrierea limbii",\r
+DlgDocLangDirLTR       : "stânga-dreapta (LTR)",\r
+DlgDocLangDirRTL       : "dreapta-stânga (RTL)",\r
+DlgDocLangCode         : "Codul limbii",\r
+DlgDocCharSet          : "Encoding setului de caractere",\r
+DlgDocCharSetCE                : "Central european",\r
+DlgDocCharSetCT                : "Chinezesc tradiţional (Big5)",\r
+DlgDocCharSetCR                : "Chirilic",\r
+DlgDocCharSetGR                : "Grecesc",\r
+DlgDocCharSetJP                : "Japonez",\r
+DlgDocCharSetKR                : "Corean",\r
+DlgDocCharSetTR                : "Turcesc",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Vest european",\r
+DlgDocCharSetOther     : "Alt encoding al setului de caractere",\r
+\r
+DlgDocDocType          : "Document Type Heading",\r
+DlgDocDocTypeOther     : "Alt Document Type Heading",\r
+DlgDocIncXHTML         : "Include declaraţii XHTML",\r
+DlgDocBgColor          : "Culoarea fundalului (Background Color)",\r
+DlgDocBgImage          : "URL-ul imaginii din fundal (Background Image URL)",\r
+DlgDocBgNoScroll       : "Fundal neflotant, fix (Nonscrolling Background)",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Link (Legătură web)",\r
+DlgDocCVisited         : "Link (Legătură web) vizitat",\r
+DlgDocCActive          : "Link (Legătură web) activ",\r
+DlgDocMargins          : "Marginile paginii",\r
+DlgDocMaTop                    : "Sus",\r
+DlgDocMaLeft           : "Stânga",\r
+DlgDocMaRight          : "Dreapta",\r
+DlgDocMaBottom         : "Jos",\r
+DlgDocMeIndex          : "Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",\r
+DlgDocMeDescr          : "Descrierea documentului",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Drepturi de autor",\r
+DlgDocPreview          : "Previzualizare",\r
+\r
+// Templates Dialog\r
+Templates                      : "Template-uri (şabloane)",\r
+DlgTemplatesTitle      : "Template-uri (şabloane) de conţinut",\r
+DlgTemplatesSelMsg     : "Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor<br>(conţinutul actual va fi pierdut):",\r
+DlgTemplatesLoading    : "Se încarcă lista cu template-uri (şabloane). Vă rugăm aşteptaţi...",\r
+DlgTemplatesNoTpl      : "(Niciun template (şablon) definit)",\r
+DlgTemplatesReplace    : "Înlocuieşte cuprinsul actual",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Despre",\r
+DlgAboutBrowserInfoTab : "Informaţii browser",\r
+DlgAboutLicenseTab     : "Licenţă",\r
+DlgAboutVersion                : "versiune",\r
+DlgAboutInfo           : "Pentru informaţii amănunţite, vizitaţi"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/ru.js b/httemplate/elements/fckeditor/editor/lang/ru.js
new file mode 100644 (file)
index 0000000..fdf151b
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Russian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Свернуть панель инструментов",\r
+ToolbarExpand          : "Развернуть панель инструментов",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Сохранить",\r
+NewPage                                : "Новая страница",\r
+Preview                                : "Предварительный просмотр",\r
+Cut                                    : "Вырезать",\r
+Copy                           : "Копировать",\r
+Paste                          : "Вставить",\r
+PasteText                      : "Вставить только текст",\r
+PasteWord                      : "Вставить из Word",\r
+Print                          : "Печать",\r
+SelectAll                      : "Выделить все",\r
+RemoveFormat           : "Убрать форматирование",\r
+InsertLinkLbl          : "Ссылка",\r
+InsertLink                     : "Вставить/Редактировать ссылку",\r
+RemoveLink                     : "Убрать ссылку",\r
+Anchor                         : "Вставить/Редактировать якорь",\r
+InsertImageLbl         : "Изображение",\r
+InsertImage                    : "Вставить/Редактировать изображение",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Вставить/Редактировать Flash",\r
+InsertTableLbl         : "Таблица",\r
+InsertTable                    : "Вставить/Редактировать таблицу",\r
+InsertLineLbl          : "Линия",\r
+InsertLine                     : "Вставить горизонтальную линию",\r
+InsertSpecialCharLbl: "Специальный символ",\r
+InsertSpecialChar      : "Вставить специальный символ",\r
+InsertSmileyLbl                : "Смайлик",\r
+InsertSmiley           : "Вставить смайлик",\r
+About                          : "О FCKeditor",\r
+Bold                           : "Жирный",\r
+Italic                         : "Курсив",\r
+Underline                      : "Подчеркнутый",\r
+StrikeThrough          : "Зачеркнутый",\r
+Subscript                      : "Подстрочный индекс",\r
+Superscript                    : "Надстрочный индекс",\r
+LeftJustify                    : "По левому краю",\r
+CenterJustify          : "По центру",\r
+RightJustify           : "По правому краю",\r
+BlockJustify           : "По ширине",\r
+DecreaseIndent         : "Уменьшить отступ",\r
+IncreaseIndent         : "Увеличить отступ",\r
+Undo                           : "Отменить",\r
+Redo                           : "Повторить",\r
+NumberedListLbl                : "Нумерованный список",\r
+NumberedList           : "Вставить/Удалить нумерованный список",\r
+BulletedListLbl                : "Маркированный список",\r
+BulletedList           : "Вставить/Удалить маркированный список",\r
+ShowTableBorders       : "Показать бордюры таблицы",\r
+ShowDetails                    : "Показать детали",\r
+Style                          : "Стиль",\r
+FontFormat                     : "Форматирование",\r
+Font                           : "Шрифт",\r
+FontSize                       : "Размер",\r
+TextColor                      : "Цвет текста",\r
+BGColor                                : "Цвет фона",\r
+Source                         : "Источник",\r
+Find                           : "Найти",\r
+Replace                                : "Заменить",\r
+SpellCheck                     : "Проверить орфографию",\r
+UniversalKeyboard      : "Универсальная клавиатура",\r
+PageBreakLbl           : "Разрыв страницы",\r
+PageBreak                      : "Вставить разрыв страницы",\r
+\r
+Form                   : "Форма",\r
+Checkbox               : "Флаговая кнопка",\r
+RadioButton            : "Кнопка выбора",\r
+TextField              : "Текстовое поле",\r
+Textarea               : "Текстовая область",\r
+HiddenField            : "Скрытое поле",\r
+Button                 : "Кнопка",\r
+SelectionField : "Список",\r
+ImageButton            : "Кнопка с изображением",\r
+\r
+FitWindow              : "Развернуть окно редактора",\r
+\r
+// Context Menu\r
+EditLink                       : "Вставить ссылку",\r
+CellCM                         : "Ячейка",\r
+RowCM                          : "Строка",\r
+ColumnCM                       : "Колонка",\r
+InsertRow                      : "Вставить строку",\r
+DeleteRows                     : "Удалить строки",\r
+InsertColumn           : "Вставить колонку",\r
+DeleteColumns          : "Удалить колонки",\r
+InsertCell                     : "Вставить ячейку",\r
+DeleteCells                    : "Удалить ячейки",\r
+MergeCells                     : "Соединить ячейки",\r
+SplitCell                      : "Разбить ячейку",\r
+TableDelete                    : "Удалить таблицу",\r
+CellProperties         : "Свойства ячейки",\r
+TableProperties                : "Свойства таблицы",\r
+ImageProperties                : "Свойства изображения",\r
+FlashProperties                : "Свойства Flash",\r
+\r
+AnchorProp                     : "Свойства якоря",\r
+ButtonProp                     : "Свойства кнопки",\r
+CheckboxProp           : "Свойства флаговой кнопки",\r
+HiddenFieldProp                : "Свойства скрытого поля",\r
+RadioButtonProp                : "Свойства кнопки выбора",\r
+ImageButtonProp                : "Свойства кнопки с изображением",\r
+TextFieldProp          : "Свойства текстового поля",\r
+SelectionFieldProp     : "Свойства списка",\r
+TextareaProp           : "Свойства текстовой области",\r
+FormProp                       : "Свойства формы",\r
+\r
+FontFormats                    : "Нормальный;Форматированный;Адрес;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Нормальный (DIV)",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Обработка XHTML. Пожалуйста подождите...",\r
+Done                           : "Сделано",\r
+PasteWordConfirm       : "Текст, который вы хотите вставить, похож на копируемый из Word. Вы хотите очистить его перед вставкой?",\r
+NotCompatiblePaste     : "Эта команда доступна для Internet Explorer версии 5.5 или выше. Вы хотите вставить без очистки?",\r
+UnknownToolbarItem     : "Не известный элемент панели инструментов \"%1\"",\r
+UnknownCommand         : "Не известное имя команды \"%1\"",\r
+NotImplemented         : "Команда не реализована",\r
+UnknownToolbarSet      : "Панель инструментов \"%1\" не существует",\r
+NoActiveX                      : "Настройки безопасности вашего браузера могут ограничивать некоторые свойства редактора. Вы должны включить опцию \"Запускать элементы управления ActiveX и плугины\". Вы можете видеть ошибки и замечать отсутствие возможностей.",\r
+BrowseServerBlocked : "Ресурсы браузера не могут быть открыты. Проверьте что блокировки всплывающих окон выключены.",\r
+DialogBlocked          : "Не возможно открыть окно диалога. Проверьте что блокировки всплывающих окон выключены.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ОК",\r
+DlgBtnCancel           : "Отмена",\r
+DlgBtnClose                    : "Закрыть",\r
+DlgBtnBrowseServer     : "Просмотреть на сервере",\r
+DlgAdvancedTag         : "Расширенный",\r
+DlgOpOther                     : "<Другое>",\r
+DlgInfoTab                     : "Информация",\r
+DlgAlertUrl                    : "Пожалуйста вставьте URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<не определено>",\r
+DlgGenId                       : "Идентификатор",\r
+DlgGenLangDir          : "Направление языка",\r
+DlgGenLangDirLtr       : "Слева на право (LTR)",\r
+DlgGenLangDirRtl       : "Справа на лево (RTL)",\r
+DlgGenLangCode         : "Язык",\r
+DlgGenAccessKey                : "Горячая клавиша",\r
+DlgGenName                     : "Имя",\r
+DlgGenTabIndex         : "Последовательность перехода",\r
+DlgGenLongDescr                : "Длинное описание URL",\r
+DlgGenClass                    : "Класс CSS",\r
+DlgGenTitle                    : "Заголовок",\r
+DlgGenContType         : "Тип содержимого",\r
+DlgGenLinkCharset      : "Кодировка",\r
+DlgGenStyle                    : "Стиль CSS",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Свойства изображения",\r
+DlgImgInfoTab          : "Информация о изображении",\r
+DlgImgBtnUpload                : "Послать на сервер",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Закачать",\r
+DlgImgAlt                      : "Альтернативный текст",\r
+DlgImgWidth                    : "Ширина",\r
+DlgImgHeight           : "Высота",\r
+DlgImgLockRatio                : "Сохранять пропорции",\r
+DlgBtnResetSize                : "Сбросить размер",\r
+DlgImgBorder           : "Бордюр",\r
+DlgImgHSpace           : "Горизонтальный отступ",\r
+DlgImgVSpace           : "Вертикальный отступ",\r
+DlgImgAlign                    : "Выравнивание",\r
+DlgImgAlignLeft                : "По левому краю",\r
+DlgImgAlignAbsBottom: "Абс понизу",\r
+DlgImgAlignAbsMiddle: "Абс посередине",\r
+DlgImgAlignBaseline    : "По базовой линии",\r
+DlgImgAlignBottom      : "Понизу",\r
+DlgImgAlignMiddle      : "Посередине",\r
+DlgImgAlignRight       : "По правому краю",\r
+DlgImgAlignTextTop     : "Текст наверху",\r
+DlgImgAlignTop         : "По верху",\r
+DlgImgPreview          : "Предварительный просмотр",\r
+DlgImgAlertUrl         : "Пожалуйста введите URL изображения",\r
+DlgImgLinkTab          : "Ссылка",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Свойства Flash",\r
+DlgFlashChkPlay                : "Авто проигрывание",\r
+DlgFlashChkLoop                : "Повтор",\r
+DlgFlashChkMenu                : "Включить меню Flash",\r
+DlgFlashScale          : "Масштабировать",\r
+DlgFlashScaleAll       : "Показывать все",\r
+DlgFlashScaleNoBorder  : "Без бордюра",\r
+DlgFlashScaleFit       : "Точное совпадение",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Ссылка",\r
+DlgLnkInfoTab          : "Информация ссылки",\r
+DlgLnkTargetTab                : "Цель",\r
+\r
+DlgLnkType                     : "Тип ссылки",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Якорь на эту страницу",\r
+DlgLnkTypeEMail                : "Эл. почта",\r
+DlgLnkProto                    : "Протокол",\r
+DlgLnkProtoOther       : "<другое>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Выберите якорь",\r
+DlgLnkAnchorByName     : "По имени якоря",\r
+DlgLnkAnchorById       : "По идентификатору элемента",\r
+DlgLnkNoAnchors                : "<Нет якорей доступных в этом документе>",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Адрес эл. почты",\r
+DlgLnkEMailSubject     : "Заголовок сообщения",\r
+DlgLnkEMailBody                : "Тело сообщения",\r
+DlgLnkUpload           : "Закачать",\r
+DlgLnkBtnUpload                : "Послать на сервер",\r
+\r
+DlgLnkTarget           : "Цель",\r
+DlgLnkTargetFrame      : "<фрейм>",\r
+DlgLnkTargetPopup      : "<всплывающее окно>",\r
+DlgLnkTargetBlank      : "Новое окно (_blank)",\r
+DlgLnkTargetParent     : "Родительское окно (_parent)",\r
+DlgLnkTargetSelf       : "Тоже окно (_self)",\r
+DlgLnkTargetTop                : "Самое верхнее окно (_top)",\r
+DlgLnkTargetFrameName  : "Имя целевого фрейма",\r
+DlgLnkPopWinName       : "Имя всплывающего окна",\r
+DlgLnkPopWinFeat       : "Свойства всплывающего окна",\r
+DlgLnkPopResize                : "Изменяющееся в размерах",\r
+DlgLnkPopLocation      : "Панель локации",\r
+DlgLnkPopMenu          : "Панель меню",\r
+DlgLnkPopScroll                : "Полосы прокрутки",\r
+DlgLnkPopStatus                : "Строка состояния",\r
+DlgLnkPopToolbar       : "Панель инструментов",\r
+DlgLnkPopFullScrn      : "Полный экран (IE)",\r
+DlgLnkPopDependent     : "Зависимый (Netscape)",\r
+DlgLnkPopWidth         : "Ширина",\r
+DlgLnkPopHeight                : "Высота",\r
+DlgLnkPopLeft          : "Позиция слева",\r
+DlgLnkPopTop           : "Позиция сверху",\r
+\r
+DlnLnkMsgNoUrl         : "Пожалуйста введите URL ссылки",\r
+DlnLnkMsgNoEMail       : "Пожалуйста введите адрес эл. почты",\r
+DlnLnkMsgNoAnchor      : "Пожалуйста выберете якорь",\r
+DlnLnkMsgInvPopName    : "Название вспывающего окна должно начинаться буквы и не может содержать пробелов",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Выберите цвет",\r
+DlgColorBtnClear       : "Очистить",\r
+DlgColorHighlight      : "Подсвеченный",\r
+DlgColorSelected       : "Выбранный",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Вставить смайлик",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Выберите специальный символ",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Свойства таблицы",\r
+DlgTableRows           : "Строки",\r
+DlgTableColumns                : "Колонки",\r
+DlgTableBorder         : "Размер бордюра",\r
+DlgTableAlign          : "Выравнивание",\r
+DlgTableAlignNotSet    : "<Не уст.>",\r
+DlgTableAlignLeft      : "Слева",\r
+DlgTableAlignCenter    : "По центру",\r
+DlgTableAlignRight     : "Справа",\r
+DlgTableWidth          : "Ширина",\r
+DlgTableWidthPx                : "пикселей",\r
+DlgTableWidthPc                : "процентов",\r
+DlgTableHeight         : "Высота",\r
+DlgTableCellSpace      : "Промежуток (spacing)",\r
+DlgTableCellPad                : "Отступ (padding)",\r
+DlgTableCaption                : "Заголовок",\r
+DlgTableSummary                : "Резюме",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Свойства ячейки",\r
+DlgCellWidth           : "Ширина",\r
+DlgCellWidthPx         : "пикселей",\r
+DlgCellWidthPc         : "процентов",\r
+DlgCellHeight          : "Высота",\r
+DlgCellWordWrap                : "Заворачивание текста",\r
+DlgCellWordWrapNotSet  : "<Не уст.>",\r
+DlgCellWordWrapYes     : "Да",\r
+DlgCellWordWrapNo      : "Нет",\r
+DlgCellHorAlign                : "Гор. выравнивание",\r
+DlgCellHorAlignNotSet  : "<Не уст.>",\r
+DlgCellHorAlignLeft    : "Слева",\r
+DlgCellHorAlignCenter  : "По центру",\r
+DlgCellHorAlignRight: "Справа",\r
+DlgCellVerAlign                : "Верт. выравнивание",\r
+DlgCellVerAlignNotSet  : "<Не уст.>",\r
+DlgCellVerAlignTop     : "Сверху",\r
+DlgCellVerAlignMiddle  : "Посередине",\r
+DlgCellVerAlignBottom  : "Снизу",\r
+DlgCellVerAlignBaseline        : "По базовой линии",\r
+DlgCellRowSpan         : "Диапазон строк (span)",\r
+DlgCellCollSpan                : "Диапазон колонок (span)",\r
+DlgCellBackColor       : "Цвет фона",\r
+DlgCellBorderColor     : "Цвет бордюра",\r
+DlgCellBtnSelect       : "Выберите...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Найти",\r
+DlgFindFindBtn         : "Найти",\r
+DlgFindNotFoundMsg     : "Указанный текст не найден.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Заменить",\r
+DlgReplaceFindLbl              : "Найти:",\r
+DlgReplaceReplaceLbl   : "Заменить на:",\r
+DlgReplaceCaseChk              : "Учитывать регистр",\r
+DlgReplaceReplaceBtn   : "Заменить",\r
+DlgReplaceReplAllBtn   : "Заменить все",\r
+DlgReplaceWordChk              : "Совпадение целых слов",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вырезания. Пожалуйста используйте клавиатуру для этого (Ctrl+X).",\r
+PasteErrorCopy : "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Пожалуйста используйте клавиатуру для этого (Ctrl+C).",\r
+\r
+PasteAsText            : "Вставить только текст",\r
+PasteFromWord  : "Вставить из Word",\r
+\r
+DlgPasteMsg2   : "Пожалуйста вставьте текст в прямоугольник используя сочетание клавиш (<STRONG>Ctrl+V</STRONG>) и нажмите <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Игнорировать определения гарнитуры",\r
+DlgPasteRemoveStyles   : "Убрать определения стилей",\r
+DlgPasteCleanBox               : "Очистить",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Автоматический",\r
+ColorMoreColors        : "Цвета...",\r
+\r
+// Document Properties\r
+DocProps               : "Свойства документа",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Свойства якоря",\r
+DlgAnchorName          : "Имя якоря",\r
+DlgAnchorErrorName     : "Пожалуйста введите имя якоря",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Нет в словаре",\r
+DlgSpellChangeTo               : "Заменить на",\r
+DlgSpellBtnIgnore              : "Игнорировать",\r
+DlgSpellBtnIgnoreAll   : "Игнорировать все",\r
+DlgSpellBtnReplace             : "Заменить",\r
+DlgSpellBtnReplaceAll  : "Заменить все",\r
+DlgSpellBtnUndo                        : "Отменить",\r
+DlgSpellNoSuggestions  : "- Нет предположений -",\r
+DlgSpellProgress               : "Идет проверка орфографии...",\r
+DlgSpellNoMispell              : "Проверка орфографии закончена: ошибок не найдено",\r
+DlgSpellNoChanges              : "Проверка орфографии закончена: ни одного слова не изменено",\r
+DlgSpellOneChange              : "Проверка орфографии закончена: одно слово изменено",\r
+DlgSpellManyChanges            : "Проверка орфографии закончена: 1% слов изменен",\r
+\r
+IeSpellDownload                        : "Модуль проверки орфографии не установлен. Хотите скачать его сейчас?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Текст (Значение)",\r
+DlgButtonType          : "Тип",\r
+DlgButtonTypeBtn       : "Кнопка",\r
+DlgButtonTypeSbm       : "Отправить",\r
+DlgButtonTypeRst       : "Сбросить",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Имя",\r
+DlgCheckboxValue       : "Значение",\r
+DlgCheckboxSelected    : "Выбранная",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Имя",\r
+DlgFormAction  : "Действие",\r
+DlgFormMethod  : "Метод",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Имя",\r
+DlgSelectValue         : "Значение",\r
+DlgSelectSize          : "Размер",\r
+DlgSelectLines         : "линии",\r
+DlgSelectChkMulti      : "Разрешить множественный выбор",\r
+DlgSelectOpAvail       : "Доступные варианты",\r
+DlgSelectOpText                : "Текст",\r
+DlgSelectOpValue       : "Значение",\r
+DlgSelectBtnAdd                : "Добавить",\r
+DlgSelectBtnModify     : "Модифицировать",\r
+DlgSelectBtnUp         : "Вверх",\r
+DlgSelectBtnDown       : "Вниз",\r
+DlgSelectBtnSetValue : "Установить как выбранное значение",\r
+DlgSelectBtnDelete     : "Удалить",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Имя",\r
+DlgTextareaCols        : "Колонки",\r
+DlgTextareaRows        : "Строки",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Имя",\r
+DlgTextValue           : "Значение",\r
+DlgTextCharWidth       : "Ширина",\r
+DlgTextMaxChars                : "Макс. кол-во символов",\r
+DlgTextType                    : "Тип",\r
+DlgTextTypeText                : "Текст",\r
+DlgTextTypePass                : "Пароль",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Имя",\r
+DlgHiddenValue : "Значение",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Свойства маркированного списка",\r
+NumberedListProp       : "Свойства нумерованного списка",\r
+DlgLstStart                    : "Начало",\r
+DlgLstType                     : "Тип",\r
+DlgLstTypeCircle       : "Круг",\r
+DlgLstTypeDisc         : "Диск",\r
+DlgLstTypeSquare       : "Квадрат",\r
+DlgLstTypeNumbers      : "Номера (1, 2, 3)",\r
+DlgLstTypeLCase                : "Буквы нижнего регистра (a, b, c)",\r
+DlgLstTypeUCase                : "Буквы верхнего регистра (A, B, C)",\r
+DlgLstTypeSRoman       : "Малые римские буквы (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Большие римские буквы (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Общие",\r
+DlgDocBackTab          : "Задний фон",\r
+DlgDocColorsTab                : "Цвета и отступы",\r
+DlgDocMetaTab          : "Мета данные",\r
+\r
+DlgDocPageTitle                : "Заголовок страницы",\r
+DlgDocLangDir          : "Направление текста",\r
+DlgDocLangDirLTR       : "Слева на право (LTR)",\r
+DlgDocLangDirRTL       : "Справа на лево (RTL)",\r
+DlgDocLangCode         : "Код языка",\r
+DlgDocCharSet          : "Кодировка набора символов",\r
+DlgDocCharSetCE                : "Центрально-европейская",\r
+DlgDocCharSetCT                : "Китайская традиционная (Big5)",\r
+DlgDocCharSetCR                : "Кириллица",\r
+DlgDocCharSetGR                : "Греческая",\r
+DlgDocCharSetJP                : "Японская",\r
+DlgDocCharSetKR                : "Корейская",\r
+DlgDocCharSetTR                : "Турецкая",\r
+DlgDocCharSetUN                : "Юникод (UTF-8)",\r
+DlgDocCharSetWE                : "Западно-европейская",\r
+DlgDocCharSetOther     : "Другая кодировка набора символов",\r
+\r
+DlgDocDocType          : "Заголовок типа документа",\r
+DlgDocDocTypeOther     : "Другой заголовок типа документа",\r
+DlgDocIncXHTML         : "Включить XHTML объявления",\r
+DlgDocBgColor          : "Цвет фона",\r
+DlgDocBgImage          : "URL изображения фона",\r
+DlgDocBgNoScroll       : "Нескроллируемый фон",\r
+DlgDocCText                    : "Текст",\r
+DlgDocCLink                    : "Ссылка",\r
+DlgDocCVisited         : "Посещенная ссылка",\r
+DlgDocCActive          : "Активная ссылка",\r
+DlgDocMargins          : "Отступы страницы",\r
+DlgDocMaTop                    : "Верхний",\r
+DlgDocMaLeft           : "Левый",\r
+DlgDocMaRight          : "Правый",\r
+DlgDocMaBottom         : "Нижний",\r
+DlgDocMeIndex          : "Ключевые слова документа (разделенные запятой)",\r
+DlgDocMeDescr          : "Описание документа",\r
+DlgDocMeAuthor         : "Автор",\r
+DlgDocMeCopy           : "Авторские права",\r
+DlgDocPreview          : "Предварительный просмотр",\r
+\r
+// Templates Dialog\r
+Templates                      : "Шаблоны",\r
+DlgTemplatesTitle      : "Шаблоны содержимого",\r
+DlgTemplatesSelMsg     : "Пожалуйста выберете шаблон для открытия в редакторе<br>(текущее содержимое будет потеряно):",\r
+DlgTemplatesLoading    : "Загрузка списка шаблонов. Пожалуйста подождите...",\r
+DlgTemplatesNoTpl      : "(Ни одного шаблона не определено)",\r
+DlgTemplatesReplace    : "Заменить текущее содержание",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "О программе",\r
+DlgAboutBrowserInfoTab : "Информация браузера",\r
+DlgAboutLicenseTab     : "Лицензия",\r
+DlgAboutVersion                : "Версия",\r
+DlgAboutInfo           : "Для большей информации, посетите"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/sk.js b/httemplate/elements/fckeditor/editor/lang/sk.js
new file mode 100644 (file)
index 0000000..83d00ba
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Slovak language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Skryť panel nástrojov",\r
+ToolbarExpand          : "Zobraziť panel nástrojov",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Uložit",\r
+NewPage                                : "Nová stránka",\r
+Preview                                : "Náhľad",\r
+Cut                                    : "Vystrihnúť",\r
+Copy                           : "Kopírovať",\r
+Paste                          : "Vložiť",\r
+PasteText                      : "Vložiť ako čistý text",\r
+PasteWord                      : "Vložiť z Wordu",\r
+Print                          : "Tlač",\r
+SelectAll                      : "Vybrať všetko",\r
+RemoveFormat           : "Odstrániť formátovanie",\r
+InsertLinkLbl          : "Odkaz",\r
+InsertLink                     : "Vložiť/zmeniť odkaz",\r
+RemoveLink                     : "Odstrániť odkaz",\r
+Anchor                         : "Vložiť/zmeniť kotvu",\r
+InsertImageLbl         : "Obrázok",\r
+InsertImage                    : "Vložiť/zmeniť obrázok",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Vložiť/zmeniť Flash",\r
+InsertTableLbl         : "Tabuľka",\r
+InsertTable                    : "Vložiť/zmeniť tabuľku",\r
+InsertLineLbl          : "Čiara",\r
+InsertLine                     : "Vložiť vodorovnú čiaru",\r
+InsertSpecialCharLbl: "Špeciálne znaky",\r
+InsertSpecialChar      : "Vložiť špeciálne znaky",\r
+InsertSmileyLbl                : "Smajlíky",\r
+InsertSmiley           : "Vložiť smajlíka",\r
+About                          : "O aplikáci FCKeditor",\r
+Bold                           : "Tučné",\r
+Italic                         : "Kurzíva",\r
+Underline                      : "Podčiarknuté",\r
+StrikeThrough          : "Prečiarknuté",\r
+Subscript                      : "Dolný index",\r
+Superscript                    : "Horný index",\r
+LeftJustify                    : "Zarovnať vľavo",\r
+CenterJustify          : "Zarovnať na stred",\r
+RightJustify           : "Zarovnať vpravo",\r
+BlockJustify           : "Zarovnať do bloku",\r
+DecreaseIndent         : "Zmenšiť odsadenie",\r
+IncreaseIndent         : "Zväčšiť odsadenie",\r
+Undo                           : "Späť",\r
+Redo                           : "Znovu",\r
+NumberedListLbl                : "Číslovanie",\r
+NumberedList           : "Vložiť/odstrániť číslovaný zoznam",\r
+BulletedListLbl                : "Odrážky",\r
+BulletedList           : "Vložiť/odstraniť odrážky",\r
+ShowTableBorders       : "Zobraziť okraje tabuliek",\r
+ShowDetails                    : "Zobraziť podrobnosti",\r
+Style                          : "Štýl",\r
+FontFormat                     : "Formát",\r
+Font                           : "Písmo",\r
+FontSize                       : "Veľkosť",\r
+TextColor                      : "Farba textu",\r
+BGColor                                : "Farba pozadia",\r
+Source                         : "Zdroj",\r
+Find                           : "Hľadať",\r
+Replace                                : "Nahradiť",\r
+SpellCheck                     : "Kontrola pravopisu",\r
+UniversalKeyboard      : "Univerzálna klávesnica",\r
+PageBreakLbl           : "Oddeľovač stránky",\r
+PageBreak                      : "Vložiť oddeľovač stránky",\r
+\r
+Form                   : "Formulár",\r
+Checkbox               : "Zaškrtávacie políčko",\r
+RadioButton            : "Prepínač",\r
+TextField              : "Textové pole",\r
+Textarea               : "Textová oblasť",\r
+HiddenField            : "Skryté pole",\r
+Button                 : "Tlačíidlo",\r
+SelectionField : "Rozbaľovací zoznam",\r
+ImageButton            : "Obrázkové tlačidlo",\r
+\r
+FitWindow              : "Maximalizovať veľkosť okna editora",\r
+\r
+// Context Menu\r
+EditLink                       : "Zmeniť odkaz",\r
+CellCM                         : "Bunka",\r
+RowCM                          : "Riadok",\r
+ColumnCM                       : "Stĺpec",\r
+InsertRow                      : "Vložiť riadok",\r
+DeleteRows                     : "Vymazať riadok",\r
+InsertColumn           : "Vložiť stĺpec",\r
+DeleteColumns          : "Zmazať stĺpec",\r
+InsertCell                     : "Vložiť bunku",\r
+DeleteCells                    : "Vymazať bunky",\r
+MergeCells                     : "Zlúčiť bunky",\r
+SplitCell                      : "Rozdeliť bunku",\r
+TableDelete                    : "Vymazať tabuľku",\r
+CellProperties         : "Vlastnosti bunky",\r
+TableProperties                : "Vlastnosti tabuľky",\r
+ImageProperties                : "Vlastnosti obrázku",\r
+FlashProperties                : "Vlastnosti Flashu",\r
+\r
+AnchorProp                     : "Vlastnosti kotvy",\r
+ButtonProp                     : "Vlastnosti tlačidla",\r
+CheckboxProp           : "Vlastnosti zaškrtávacieho políčka",\r
+HiddenFieldProp                : "Vlastnosti skrytého poľa",\r
+RadioButtonProp                : "Vlastnosti prepínača",\r
+ImageButtonProp                : "Vlastnosti obrázkového tlačidla",\r
+TextFieldProp          : "Vlastnosti textového poľa",\r
+SelectionFieldProp     : "Vlastnosti rozbaľovacieho zoznamu",\r
+TextareaProp           : "Vlastnosti textovej oblasti",\r
+FormProp                       : "Vlastnosti formulára",\r
+\r
+FontFormats                    : "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)",           //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Prebieha spracovanie XHTML. Čakajte prosím...",\r
+Done                           : "Dokončené.",\r
+PasteWordConfirm       : "Vyzerá to tak, že vkladaný text je kopírovaný z Wordu. Chcete ho pred vložením vyčistiť?",\r
+NotCompatiblePaste     : "Tento príkaz je dostupný len v prehliadači Internet Explorer verzie 5.5 alebo vyššej. Chcete vložiť text bez vyčistenia?",\r
+UnknownToolbarItem     : "Neznáma položka panela nástrojov \"%1\"",\r
+UnknownCommand         : "Neznámy príkaz \"%1\"",\r
+NotImplemented         : "Príkaz nie je implementovaný",\r
+UnknownToolbarSet      : "Panel nástrojov \"%1\" neexistuje",\r
+NoActiveX                      : "Bezpečnostné nastavenia vášho prehliadača môžu obmedzovať niektoré funkcie editora. Pre ich plnú funkčnosť musíte zapnúť voľbu \"Spúšťať ActiveX moduly a zásuvné moduly\", inak sa môžete stretnúť s chybami a nefunkčnosťou niektorých funkcií.",\r
+BrowseServerBlocked : "Prehliadač zdrojových prvkov nebolo možné otvoriť. Uistite sa, že máte vypnuté všetky blokovače vyskakujúcich okien.",\r
+DialogBlocked          : "Dialógové okno nebolo možné otvoriť. Uistite sa, že máte vypnuté všetky blokovače vyskakujúcich okien.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Zrušiť",\r
+DlgBtnClose                    : "Zavrieť",\r
+DlgBtnBrowseServer     : "Prechádzať server",\r
+DlgAdvancedTag         : "Rozšírené",\r
+DlgOpOther                     : "<Ďalšie>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Prosím vložte URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nenastavené>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Orientácia jazyka",\r
+DlgGenLangDirLtr       : "Zľava doprava (LTR)",\r
+DlgGenLangDirRtl       : "Sprava doľava (RTL)",\r
+DlgGenLangCode         : "Kód jazyka",\r
+DlgGenAccessKey                : "Prístupový kľúč",\r
+DlgGenName                     : "Meno",\r
+DlgGenTabIndex         : "Poradie prvku",\r
+DlgGenLongDescr                : "Dlhý popis URL",\r
+DlgGenClass                    : "Trieda štýlu",\r
+DlgGenTitle                    : "Pomocný titulok",\r
+DlgGenContType         : "Pomocný typ obsahu",\r
+DlgGenLinkCharset      : "Priradená znaková sada",\r
+DlgGenStyle                    : "Štýl",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Vlastnosti obrázku",\r
+DlgImgInfoTab          : "Informácie o obrázku",\r
+DlgImgBtnUpload                : "Odoslať na server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Odoslať",\r
+DlgImgAlt                      : "Alternatívny text",\r
+DlgImgWidth                    : "Šírka",\r
+DlgImgHeight           : "Výška",\r
+DlgImgLockRatio                : "Zámok",\r
+DlgBtnResetSize                : "Pôvodná veľkosť",\r
+DlgImgBorder           : "Okraje",\r
+DlgImgHSpace           : "H-medzera",\r
+DlgImgVSpace           : "V-medzera",\r
+DlgImgAlign                    : "Zarovnanie",\r
+DlgImgAlignLeft                : "Vľavo",\r
+DlgImgAlignAbsBottom: "Úplne dole",\r
+DlgImgAlignAbsMiddle: "Do stredu",\r
+DlgImgAlignBaseline    : "Na základňu",\r
+DlgImgAlignBottom      : "Dole",\r
+DlgImgAlignMiddle      : "Na stred",\r
+DlgImgAlignRight       : "Vpravo",\r
+DlgImgAlignTextTop     : "Na horný okraj textu",\r
+DlgImgAlignTop         : "Nahor",\r
+DlgImgPreview          : "Náhľad",\r
+DlgImgAlertUrl         : "Zadajte prosím URL obrázku",\r
+DlgImgLinkTab          : "Odkaz",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Vlastnosti Flashu",\r
+DlgFlashChkPlay                : "Automatické prehrávanie",\r
+DlgFlashChkLoop                : "Opakovanie",\r
+DlgFlashChkMenu                : "Povoliť Flash Menu",\r
+DlgFlashScale          : "Mierka",\r
+DlgFlashScaleAll       : "Zobraziť mierku",\r
+DlgFlashScaleNoBorder  : "Bez okrajov",\r
+DlgFlashScaleFit       : "Roztiahnuť na celé",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Odkaz",\r
+DlgLnkInfoTab          : "Informácie o odkaze",\r
+DlgLnkTargetTab                : "Cieľ",\r
+\r
+DlgLnkType                     : "Typ odkazu",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Kotva v tejto stránke",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<iný>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Vybrať kotvu",\r
+DlgLnkAnchorByName     : "Podľa mena kotvy",\r
+DlgLnkAnchorById       : "Podľa Id objektu",\r
+DlgLnkNoAnchors                : "<V stránke nie je definovaná žiadna kotva>",              //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mailová adresa",\r
+DlgLnkEMailSubject     : "Predmet správy",\r
+DlgLnkEMailBody                : "Telo správy",\r
+DlgLnkUpload           : "Odoslať",\r
+DlgLnkBtnUpload                : "Odoslať na server",\r
+\r
+DlgLnkTarget           : "Cieľ",\r
+DlgLnkTargetFrame      : "<rámec>",\r
+DlgLnkTargetPopup      : "<vyskakovacie okno>",\r
+DlgLnkTargetBlank      : "Nové okno (_blank)",\r
+DlgLnkTargetParent     : "Rodičovské okno (_parent)",\r
+DlgLnkTargetSelf       : "Rovnaké okno (_self)",\r
+DlgLnkTargetTop                : "Hlavné okno (_top)",\r
+DlgLnkTargetFrameName  : "Meno rámu cieľa",\r
+DlgLnkPopWinName       : "Názov vyskakovacieho okna",\r
+DlgLnkPopWinFeat       : "Vlastnosti vyskakovacieho okna",\r
+DlgLnkPopResize                : "Meniteľná veľkosť",\r
+DlgLnkPopLocation      : "Panel umiestnenia",\r
+DlgLnkPopMenu          : "Panel ponuky",\r
+DlgLnkPopScroll                : "Posuvníky",\r
+DlgLnkPopStatus                : "Stavový riadok",\r
+DlgLnkPopToolbar       : "Panel nástrojov",\r
+DlgLnkPopFullScrn      : "Celá obrazovka (IE)",\r
+DlgLnkPopDependent     : "Závislosť (Netscape)",\r
+DlgLnkPopWidth         : "Šírka",\r
+DlgLnkPopHeight                : "Výška",\r
+DlgLnkPopLeft          : "Ľavý okraj",\r
+DlgLnkPopTop           : "Horný okraj",\r
+\r
+DlnLnkMsgNoUrl         : "Zadajte prosím URL odkazu",\r
+DlnLnkMsgNoEMail       : "Zadajte prosím e-mailovú adresu",\r
+DlnLnkMsgNoAnchor      : "Vyberte prosím kotvu",\r
+DlnLnkMsgInvPopName    : "Názov vyskakovacieho okna sa musá začínať písmenom a nemôže obsahovať medzery",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Výber farby",\r
+DlgColorBtnClear       : "Vymazať",\r
+DlgColorHighlight      : "Zvýraznená",\r
+DlgColorSelected       : "Vybraná",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Vkladanie smajlíkov",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Výber špeciálneho znaku",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Vlastnosti tabuľky",\r
+DlgTableRows           : "Riadky",\r
+DlgTableColumns                : "Stĺpce",\r
+DlgTableBorder         : "Ohraničenie",\r
+DlgTableAlign          : "Zarovnanie",\r
+DlgTableAlignNotSet    : "<nenastavené>",\r
+DlgTableAlignLeft      : "Vľavo",\r
+DlgTableAlignCenter    : "Na stred",\r
+DlgTableAlignRight     : "Vpravo",\r
+DlgTableWidth          : "Šírka",\r
+DlgTableWidthPx                : "pixelov",\r
+DlgTableWidthPc                : "percent",\r
+DlgTableHeight         : "Výška",\r
+DlgTableCellSpace      : "Vzdialenosť buniek",\r
+DlgTableCellPad                : "Odsadenie obsahu",\r
+DlgTableCaption                : "Popis",\r
+DlgTableSummary                : "Prehľad",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Vlastnosti bunky",\r
+DlgCellWidth           : "Šírka",\r
+DlgCellWidthPx         : "bodov",\r
+DlgCellWidthPc         : "percent",\r
+DlgCellHeight          : "Výška",\r
+DlgCellWordWrap                : "Zalamovannie",\r
+DlgCellWordWrapNotSet  : "<nenastavené>",\r
+DlgCellWordWrapYes     : "Áno",\r
+DlgCellWordWrapNo      : "Nie",\r
+DlgCellHorAlign                : "Vodorovné zarovnanie",\r
+DlgCellHorAlignNotSet  : "<nenastavené>",\r
+DlgCellHorAlignLeft    : "Vľavo",\r
+DlgCellHorAlignCenter  : "Na stred",\r
+DlgCellHorAlignRight: "Vpravo",\r
+DlgCellVerAlign                : "Zvislé zarovnanie",\r
+DlgCellVerAlignNotSet  : "<nenastavené>",\r
+DlgCellVerAlignTop     : "Nahor",\r
+DlgCellVerAlignMiddle  : "Doprostred",\r
+DlgCellVerAlignBottom  : "Dole",\r
+DlgCellVerAlignBaseline        : "Na základňu",\r
+DlgCellRowSpan         : "Zlúčené riadky",\r
+DlgCellCollSpan                : "Zlúčené stĺpce",\r
+DlgCellBackColor       : "Farba pozadia",\r
+DlgCellBorderColor     : "Farba ohraničenia",\r
+DlgCellBtnSelect       : "Výber...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Hľadať",\r
+DlgFindFindBtn         : "Hľadať",\r
+DlgFindNotFoundMsg     : "Hľadaný text nebol nájdený.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Nahradiť",\r
+DlgReplaceFindLbl              : "Čo hľadať:",\r
+DlgReplaceReplaceLbl   : "Čím nahradiť:",\r
+DlgReplaceCaseChk              : "Rozlišovať malé/veľké písmená",\r
+DlgReplaceReplaceBtn   : "Nahradiť",\r
+DlgReplaceReplAllBtn   : "Nahradiť všetko",\r
+DlgReplaceWordChk              : "Len celé slová",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Bezpečnostné nastavenie Vášho prehliadača nedovoľujú editoru spustiť funkciu pre vystrihnutie zvoleného textu do schránky. Prosím vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl+X).",\r
+PasteErrorCopy : "Bezpečnostné nastavenie Vášho prehliadača nedovoľujú editoru spustiť funkciu pre kopírovanie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl+C).",\r
+\r
+PasteAsText            : "Vložiť ako čistý text",\r
+PasteFromWord  : "Vložiť text z Wordu",\r
+\r
+DlgPasteMsg2   : "Prosím vložte nasledovný rámček použitím klávesnice (<STRONG>Ctrl+V</STRONG>) a stlačte <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignorovať nastavenia typu písma",\r
+DlgPasteRemoveStyles   : "Odstrániť formátovanie",\r
+DlgPasteCleanBox               : "Vyčistiť schránku",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automaticky",\r
+ColorMoreColors        : "Viac farieb...",\r
+\r
+// Document Properties\r
+DocProps               : "Vlastnosti dokumentu",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Vlastnosti kotvy",\r
+DlgAnchorName          : "Meno kotvy",\r
+DlgAnchorErrorName     : "Zadajte prosím meno kotvy",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nie je v slovníku",\r
+DlgSpellChangeTo               : "Zmeniť na",\r
+DlgSpellBtnIgnore              : "Ignorovať",\r
+DlgSpellBtnIgnoreAll   : "Ignorovať všetko",\r
+DlgSpellBtnReplace             : "Prepísat",\r
+DlgSpellBtnReplaceAll  : "Prepísat všetko",\r
+DlgSpellBtnUndo                        : "Späť",\r
+DlgSpellNoSuggestions  : "- Žiadny návrh -",\r
+DlgSpellProgress               : "Prebieha kontrola pravopisu...",\r
+DlgSpellNoMispell              : "Kontrola pravopisu dokončená: bez chýb",\r
+DlgSpellNoChanges              : "Kontrola pravopisu dokončená: žiadne slová nezmenené",\r
+DlgSpellOneChange              : "Kontrola pravopisu dokončená: zmenené jedno slovo",\r
+DlgSpellManyChanges            : "Kontrola pravopisu dokončená: zmenených %1 slov",\r
+\r
+IeSpellDownload                        : "Kontrola pravopisu nie je naištalovaná. Chcete ju hneď stiahnuť?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text",\r
+DlgButtonType          : "Typ",\r
+DlgButtonTypeBtn       : "Tlačidlo",\r
+DlgButtonTypeSbm       : "Odoslať",\r
+DlgButtonTypeRst       : "Vymazať",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Názov",\r
+DlgCheckboxValue       : "Hodnota",\r
+DlgCheckboxSelected    : "Vybrané",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Názov",\r
+DlgFormAction  : "Akcie",\r
+DlgFormMethod  : "Metóda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Názov",\r
+DlgSelectValue         : "Hodnota",\r
+DlgSelectSize          : "Veľkosť",\r
+DlgSelectLines         : "riadkov",\r
+DlgSelectChkMulti      : "Povoliť viacnásobný výber",\r
+DlgSelectOpAvail       : "Dostupné možnosti",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Hodnota",\r
+DlgSelectBtnAdd                : "Pridať",\r
+DlgSelectBtnModify     : "Zmeniť",\r
+DlgSelectBtnUp         : "Hore",\r
+DlgSelectBtnDown       : "Dole",\r
+DlgSelectBtnSetValue : "Nastaviť ako vybranú hodnotu",\r
+DlgSelectBtnDelete     : "Zmazať",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Názov",\r
+DlgTextareaCols        : "Stĺpce",\r
+DlgTextareaRows        : "Riadky",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Názov",\r
+DlgTextValue           : "Hodnota",\r
+DlgTextCharWidth       : "Šírka pola (znakov)",\r
+DlgTextMaxChars                : "Maximálny počet znakov",\r
+DlgTextType                    : "Typ",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Heslo",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Názov",\r
+DlgHiddenValue : "Hodnota",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Vlastnosti odrážok",\r
+NumberedListProp       : "Vlastnosti číslovania",\r
+DlgLstStart                    : "Štart",\r
+DlgLstType                     : "Typ",\r
+DlgLstTypeCircle       : "Krúžok",\r
+DlgLstTypeDisc         : "Disk",\r
+DlgLstTypeSquare       : "Štvorec",\r
+DlgLstTypeNumbers      : "Číslovanie (1, 2, 3)",\r
+DlgLstTypeLCase                : "Malé písmená (a, b, c)",\r
+DlgLstTypeUCase                : "Veľké písmená (A, B, C)",\r
+DlgLstTypeSRoman       : "Malé rímske číslice (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Veľké rímske číslice (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Všeobecné",\r
+DlgDocBackTab          : "Pozadie",\r
+DlgDocColorsTab                : "Farby a okraje",\r
+DlgDocMetaTab          : "Meta Data",\r
+\r
+DlgDocPageTitle                : "Titulok",\r
+DlgDocLangDir          : "Orientácie jazyka",\r
+DlgDocLangDirLTR       : "Zľava doprava (LTR)",\r
+DlgDocLangDirRTL       : "Sprava doľava (RTL)",\r
+DlgDocLangCode         : "Kód jazyka",\r
+DlgDocCharSet          : "Kódová stránka",\r
+DlgDocCharSetCE                : "Stredoeurópske",\r
+DlgDocCharSetCT                : "Čínština tradičná (Big5)",\r
+DlgDocCharSetCR                : "Cyrillika",\r
+DlgDocCharSetGR                : "Gréčtina",\r
+DlgDocCharSetJP                : "Japončina",\r
+DlgDocCharSetKR                : "Korejčina",\r
+DlgDocCharSetTR                : "Turečtina",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Západná európa",\r
+DlgDocCharSetOther     : "Iná kódová stránka",\r
+\r
+DlgDocDocType          : "Typ záhlavia dokumentu",\r
+DlgDocDocTypeOther     : "Iný typ záhlavia dokumentu",\r
+DlgDocIncXHTML         : "Obsahuje deklarácie XHTML",\r
+DlgDocBgColor          : "Farba pozadia",\r
+DlgDocBgImage          : "URL adresa obrázku na pozadí",\r
+DlgDocBgNoScroll       : "Fixné pozadie",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Odkaz",\r
+DlgDocCVisited         : "Navštívený odkaz",\r
+DlgDocCActive          : "Aktívny odkaz",\r
+DlgDocMargins          : "Okraje stránky",\r
+DlgDocMaTop                    : "Horný",\r
+DlgDocMaLeft           : "Ľavý",\r
+DlgDocMaRight          : "Pravý",\r
+DlgDocMaBottom         : "Dolný",\r
+DlgDocMeIndex          : "Kľúčové slová pre indexovanie (oddelené čiarkou)",\r
+DlgDocMeDescr          : "Popis stránky",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Autorské práva",\r
+DlgDocPreview          : "Náhľad",\r
+\r
+// Templates Dialog\r
+Templates                      : "Šablóny",\r
+DlgTemplatesTitle      : "Šablóny obsahu",\r
+DlgTemplatesSelMsg     : "Prosím vyberte šablóny na otvorenie v editore<br>(súšasný obsah bude stratený):",\r
+DlgTemplatesLoading    : "Nahrávam zoznam šablón. Čakajte prosím...",\r
+DlgTemplatesNoTpl      : "(žiadne šablóny nenájdené)",\r
+DlgTemplatesReplace    : "Nahradiť aktuálny obsah",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "O aplikáci",\r
+DlgAboutBrowserInfoTab : "Informácie o prehliadači",\r
+DlgAboutLicenseTab     : "Licencia",\r
+DlgAboutVersion                : "verzia",\r
+DlgAboutInfo           : "Viac informácií získate na"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/sl.js b/httemplate/elements/fckeditor/editor/lang/sl.js
new file mode 100644 (file)
index 0000000..95cde15
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Slovenian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Zloži orodno vrstico",\r
+ToolbarExpand          : "Razširi orodno vrstico",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Shrani",\r
+NewPage                                : "Nova stran",\r
+Preview                                : "Predogled",\r
+Cut                                    : "Izreži",\r
+Copy                           : "Kopiraj",\r
+Paste                          : "Prilepi",\r
+PasteText                      : "Prilepi kot golo besedilo",\r
+PasteWord                      : "Prilepi iz Worda",\r
+Print                          : "Natisni",\r
+SelectAll                      : "Izberi vse",\r
+RemoveFormat           : "Odstrani oblikovanje",\r
+InsertLinkLbl          : "Povezava",\r
+InsertLink                     : "Vstavi/uredi povezavo",\r
+RemoveLink                     : "Odstrani povezavo",\r
+Anchor                         : "Vstavi/uredi zaznamek",\r
+InsertImageLbl         : "Slika",\r
+InsertImage                    : "Vstavi/uredi sliko",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Vstavi/Uredi Flash",\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Vstavi/uredi tabelo",\r
+InsertLineLbl          : "Črta",\r
+InsertLine                     : "Vstavi vodoravno črto",\r
+InsertSpecialCharLbl: "Posebni znak",\r
+InsertSpecialChar      : "Vstavi posebni znak",\r
+InsertSmileyLbl                : "Smeško",\r
+InsertSmiley           : "Vstavi smeška",\r
+About                          : "O FCKeditorju",\r
+Bold                           : "Krepko",\r
+Italic                         : "Ležeče",\r
+Underline                      : "Podčrtano",\r
+StrikeThrough          : "Prečrtano",\r
+Subscript                      : "Podpisano",\r
+Superscript                    : "Nadpisano",\r
+LeftJustify                    : "Leva poravnava",\r
+CenterJustify          : "Sredinska poravnava",\r
+RightJustify           : "Desna poravnava",\r
+BlockJustify           : "Obojestranska poravnava",\r
+DecreaseIndent         : "Zmanjšaj zamik",\r
+IncreaseIndent         : "Povečaj zamik",\r
+Undo                           : "Razveljavi",\r
+Redo                           : "Ponovi",\r
+NumberedListLbl                : "Oštevilčen seznam",\r
+NumberedList           : "Vstavi/odstrani oštevilčevanje",\r
+BulletedListLbl                : "Označen seznam",\r
+BulletedList           : "Vstavi/odstrani označevanje",\r
+ShowTableBorders       : "Pokaži meje tabele",\r
+ShowDetails                    : "Pokaži podrobnosti",\r
+Style                          : "Slog",\r
+FontFormat                     : "Oblika",\r
+Font                           : "Pisava",\r
+FontSize                       : "Velikost",\r
+TextColor                      : "Barva besedila",\r
+BGColor                                : "Barva ozadja",\r
+Source                         : "Izvorna koda",\r
+Find                           : "Najdi",\r
+Replace                                : "Zamenjaj",\r
+SpellCheck                     : "Preveri črkovanje",\r
+UniversalKeyboard      : "Večjezična tipkovnica",\r
+PageBreakLbl           : "Prelom strani",\r
+PageBreak                      : "Vstavi prelom strani",\r
+\r
+Form                   : "Obrazec",\r
+Checkbox               : "Potrditveno polje",\r
+RadioButton            : "Izbirno polje",\r
+TextField              : "Vnosno polje",\r
+Textarea               : "Vnosno območje",\r
+HiddenField            : "Skrito polje",\r
+Button                 : "Gumb",\r
+SelectionField : "Spustni seznam",\r
+ImageButton            : "Gumb s sliko",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Uredi povezavo",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Vstavi vrstico",\r
+DeleteRows                     : "Izbriši vrstice",\r
+InsertColumn           : "Vstavi stolpec",\r
+DeleteColumns          : "Izbriši stolpce",\r
+InsertCell                     : "Vstavi celico",\r
+DeleteCells                    : "Izbriši celice",\r
+MergeCells                     : "Združi celice",\r
+SplitCell                      : "Razdeli celico",\r
+TableDelete                    : "Izbriši tabelo",\r
+CellProperties         : "Lastnosti celice",\r
+TableProperties                : "Lastnosti tabele",\r
+ImageProperties                : "Lastnosti slike",\r
+FlashProperties                : "Lastnosti Flash",\r
+\r
+AnchorProp                     : "Lastnosti zaznamka",\r
+ButtonProp                     : "Lastnosti gumba",\r
+CheckboxProp           : "Lastnosti potrditvenega polja",\r
+HiddenFieldProp                : "Lastnosti skritega polja",\r
+RadioButtonProp                : "Lastnosti izbirnega polja",\r
+ImageButtonProp                : "Lastnosti gumba s sliko",\r
+TextFieldProp          : "Lastnosti vnosnega polja",\r
+SelectionFieldProp     : "Lastnosti spustnega seznama",\r
+TextareaProp           : "Lastnosti vnosnega območja",\r
+FormProp                       : "Lastnosti obrazca",\r
+\r
+FontFormats                    : "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Obdelujem XHTML. Prosim počakajte...",\r
+Done                           : "Narejeno",\r
+PasteWordConfirm       : "Izgleda, da želite prilepiti besedilo iz Worda. Ali ga želite očistiti, preden ga prilepite?",\r
+NotCompatiblePaste     : "Ta ukaz deluje le v Internet Explorerje različice 5.5 ali višje. Ali želite prilepiti brez čiščenja?",\r
+UnknownToolbarItem     : "Neznan element orodne vrstice \"%1\"",\r
+UnknownCommand         : "Neznano ime ukaza \"%1\"",\r
+NotImplemented         : "Ukaz ni izdelan",\r
+UnknownToolbarSet      : "Skupina orodnih vrstic \"%1\" ne obstoja",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "V redu",\r
+DlgBtnCancel           : "Prekliči",\r
+DlgBtnClose                    : "Zapri",\r
+DlgBtnBrowseServer     : "Prebrskaj na strežniku",\r
+DlgAdvancedTag         : "Napredno",\r
+DlgOpOther                     : "<Ostalo>",\r
+DlgInfoTab                     : "Podatki",\r
+DlgAlertUrl                    : "Prosim vpiši spletni naslov",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ni postavljen>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Smer jezika",\r
+DlgGenLangDirLtr       : "Od leve proti desni (LTR)",\r
+DlgGenLangDirRtl       : "Od desne proti levi (RTL)",\r
+DlgGenLangCode         : "Oznaka jezika",\r
+DlgGenAccessKey                : "Vstopno geslo",\r
+DlgGenName                     : "Ime",\r
+DlgGenTabIndex         : "Številka tabulatorja",\r
+DlgGenLongDescr                : "Dolg opis URL-ja",\r
+DlgGenClass                    : "Razred stilne predloge",\r
+DlgGenTitle                    : "Predlagani naslov",\r
+DlgGenContType         : "Predlagani tip vsebine (content-type)",\r
+DlgGenLinkCharset      : "Kodna tabela povezanega vira",\r
+DlgGenStyle                    : "Slog",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Lastnosti slike",\r
+DlgImgInfoTab          : "Podatki o sliki",\r
+DlgImgBtnUpload                : "Pošlji na strežnik",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Pošlji",\r
+DlgImgAlt                      : "Nadomestno besedilo",\r
+DlgImgWidth                    : "Širina",\r
+DlgImgHeight           : "Višina",\r
+DlgImgLockRatio                : "Zakleni razmerje",\r
+DlgBtnResetSize                : "Ponastavi velikost",\r
+DlgImgBorder           : "Obroba",\r
+DlgImgHSpace           : "Vodoravni razmik",\r
+DlgImgVSpace           : "Navpični razmik",\r
+DlgImgAlign                    : "Poravnava",\r
+DlgImgAlignLeft                : "Levo",\r
+DlgImgAlignAbsBottom: "Popolnoma na dno",\r
+DlgImgAlignAbsMiddle: "Popolnoma v sredino",\r
+DlgImgAlignBaseline    : "Na osnovno črto",\r
+DlgImgAlignBottom      : "Na dno",\r
+DlgImgAlignMiddle      : "V sredino",\r
+DlgImgAlignRight       : "Desno",\r
+DlgImgAlignTextTop     : "Besedilo na vrh",\r
+DlgImgAlignTop         : "Na vrh",\r
+DlgImgPreview          : "Predogled",\r
+DlgImgAlertUrl         : "Vnesite URL slike",\r
+DlgImgLinkTab          : "Povezava",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Lastnosti Flash",\r
+DlgFlashChkPlay                : "Samodejno predvajaj",\r
+DlgFlashChkLoop                : "Ponavljanje",\r
+DlgFlashChkMenu                : "Omogoči Flash Meni",\r
+DlgFlashScale          : "Povečava",\r
+DlgFlashScaleAll       : "Pokaži vse",\r
+DlgFlashScaleNoBorder  : "Brez obrobe",\r
+DlgFlashScaleFit       : "Natančno prileganje",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Povezava",\r
+DlgLnkInfoTab          : "Podatki o povezavi",\r
+DlgLnkTargetTab                : "Cilj",\r
+\r
+DlgLnkType                     : "Vrsta povezave",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Zaznamek na tej strani",\r
+DlgLnkTypeEMail                : "Elektronski naslov",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<drugo>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Izberi zaznamek",\r
+DlgLnkAnchorByName     : "Po imenu zaznamka",\r
+DlgLnkAnchorById       : "Po ID-ju elementa",\r
+DlgLnkNoAnchors                : "<V tem dokumentu ni zaznamkov>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Elektronski naslov",\r
+DlgLnkEMailSubject     : "Predmet sporočila",\r
+DlgLnkEMailBody                : "Vsebina sporočila",\r
+DlgLnkUpload           : "Prenesi",\r
+DlgLnkBtnUpload                : "Pošlji na strežnik",\r
+\r
+DlgLnkTarget           : "Cilj",\r
+DlgLnkTargetFrame      : "<okvir>",\r
+DlgLnkTargetPopup      : "<pojavno okno>",\r
+DlgLnkTargetBlank      : "Novo okno (_blank)",\r
+DlgLnkTargetParent     : "Starševsko okno (_parent)",\r
+DlgLnkTargetSelf       : "Isto okno (_self)",\r
+DlgLnkTargetTop                : "Najvišje okno (_top)",\r
+DlgLnkTargetFrameName  : "Ime ciljnega okvirja",\r
+DlgLnkPopWinName       : "Ime pojavnega okna",\r
+DlgLnkPopWinFeat       : "Značilnosti pojavnega okna",\r
+DlgLnkPopResize                : "Spremenljive velikosti",\r
+DlgLnkPopLocation      : "Naslovna vrstica",\r
+DlgLnkPopMenu          : "Menijska vrstica",\r
+DlgLnkPopScroll                : "Drsniki",\r
+DlgLnkPopStatus                : "Vrstica stanja",\r
+DlgLnkPopToolbar       : "Orodna vrstica",\r
+DlgLnkPopFullScrn      : "Celozaslonska slika (IE)",\r
+DlgLnkPopDependent     : "Podokno (Netscape)",\r
+DlgLnkPopWidth         : "Širina",\r
+DlgLnkPopHeight                : "Višina",\r
+DlgLnkPopLeft          : "Lega levo",\r
+DlgLnkPopTop           : "Lega na vrhu",\r
+\r
+DlnLnkMsgNoUrl         : "Vnesite URL povezave",\r
+DlnLnkMsgNoEMail       : "Vnesite elektronski naslov",\r
+DlnLnkMsgNoAnchor      : "Izberite zaznamek",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Izberite barvo",\r
+DlgColorBtnClear       : "Počisti",\r
+DlgColorHighlight      : "Označi",\r
+DlgColorSelected       : "Izbrano",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Vstavi smeška",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Izberi posebni znak",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Lastnosti tabele",\r
+DlgTableRows           : "Vrstice",\r
+DlgTableColumns                : "Stolpci",\r
+DlgTableBorder         : "Velikost obrobe",\r
+DlgTableAlign          : "Poravnava",\r
+DlgTableAlignNotSet    : "<Ni nastavljeno>",\r
+DlgTableAlignLeft      : "Levo",\r
+DlgTableAlignCenter    : "Sredinsko",\r
+DlgTableAlignRight     : "Desno",\r
+DlgTableWidth          : "Širina",\r
+DlgTableWidthPx                : "pik",\r
+DlgTableWidthPc                : "procentov",\r
+DlgTableHeight         : "Višina",\r
+DlgTableCellSpace      : "Razmik med celicami",\r
+DlgTableCellPad                : "Polnilo med celicami",\r
+DlgTableCaption                : "Naslov",\r
+DlgTableSummary                : "Povzetek",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Lastnosti celice",\r
+DlgCellWidth           : "Širina",\r
+DlgCellWidthPx         : "pik",\r
+DlgCellWidthPc         : "procentov",\r
+DlgCellHeight          : "Višina",\r
+DlgCellWordWrap                : "Pomikanje besedila",\r
+DlgCellWordWrapNotSet  : "<Ni nastavljeno>",\r
+DlgCellWordWrapYes     : "Da",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Vodoravna poravnava",\r
+DlgCellHorAlignNotSet  : "<Ni nastavljeno>",\r
+DlgCellHorAlignLeft    : "Levo",\r
+DlgCellHorAlignCenter  : "Sredinsko",\r
+DlgCellHorAlignRight: "Desno",\r
+DlgCellVerAlign                : "Navpična poravnava",\r
+DlgCellVerAlignNotSet  : "<Ni nastavljeno>",\r
+DlgCellVerAlignTop     : "Na vrh",\r
+DlgCellVerAlignMiddle  : "V sredino",\r
+DlgCellVerAlignBottom  : "Na dno",\r
+DlgCellVerAlignBaseline        : "Na osnovno črto",\r
+DlgCellRowSpan         : "Spojenih vrstic (row-span)",\r
+DlgCellCollSpan                : "Spojenih stolpcev (col-span)",\r
+DlgCellBackColor       : "Barva ozadja",\r
+DlgCellBorderColor     : "Barva obrobe",\r
+DlgCellBtnSelect       : "Izberi...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Najdi",\r
+DlgFindFindBtn         : "Najdi",\r
+DlgFindNotFoundMsg     : "Navedeno besedilo ni bilo najdeno.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Zamenjaj",\r
+DlgReplaceFindLbl              : "Najdi:",\r
+DlgReplaceReplaceLbl   : "Zamenjaj z:",\r
+DlgReplaceCaseChk              : "Razlikuj velike in male črke",\r
+DlgReplaceReplaceBtn   : "Zamenjaj",\r
+DlgReplaceReplAllBtn   : "Zamenjaj vse",\r
+DlgReplaceWordChk              : "Samo cele besede",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).",\r
+PasteErrorCopy : "Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).",\r
+\r
+PasteAsText            : "Prilepi kot golo besedilo",\r
+PasteFromWord  : "Prilepi iz Worda",\r
+\r
+DlgPasteMsg2   : "Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Prezri obliko pisave",\r
+DlgPasteRemoveStyles   : "Odstrani nastavitve stila",\r
+DlgPasteCleanBox               : "Počisti okvir",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Samodejno",\r
+ColorMoreColors        : "Več barv...",\r
+\r
+// Document Properties\r
+DocProps               : "Lastnosti dokumenta",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Lastnosti zaznamka",\r
+DlgAnchorName          : "Ime zaznamka",\r
+DlgAnchorErrorName     : "Prosim vnesite ime zaznamka",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Ni v slovarju",\r
+DlgSpellChangeTo               : "Spremeni v",\r
+DlgSpellBtnIgnore              : "Prezri",\r
+DlgSpellBtnIgnoreAll   : "Prezri vse",\r
+DlgSpellBtnReplace             : "Zamenjaj",\r
+DlgSpellBtnReplaceAll  : "Zamenjaj vse",\r
+DlgSpellBtnUndo                        : "Razveljavi",\r
+DlgSpellNoSuggestions  : "- Ni predlogov -",\r
+DlgSpellProgress               : "Preverjanje črkovanja se izvaja...",\r
+DlgSpellNoMispell              : "Črkovanje je končano: Brez napak",\r
+DlgSpellNoChanges              : "Črkovanje je končano: Nobena beseda ni bila spremenjena",\r
+DlgSpellOneChange              : "Črkovanje je končano: Spremenjena je bila ena beseda",\r
+DlgSpellManyChanges            : "Črkovanje je končano: Spremenjenih je bilo %1 besed",\r
+\r
+IeSpellDownload                        : "Črkovalnik ni nameščen. Ali ga želite prenesti sedaj?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Besedilo (Vrednost)",\r
+DlgButtonType          : "Tip",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Ime",\r
+DlgCheckboxValue       : "Vrednost",\r
+DlgCheckboxSelected    : "Izbrano",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Ime",\r
+DlgFormAction  : "Akcija",\r
+DlgFormMethod  : "Metoda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Ime",\r
+DlgSelectValue         : "Vrednost",\r
+DlgSelectSize          : "Velikost",\r
+DlgSelectLines         : "vrstic",\r
+DlgSelectChkMulti      : "Dovoli izbor večih vrstic",\r
+DlgSelectOpAvail       : "Razpoložljive izbire",\r
+DlgSelectOpText                : "Besedilo",\r
+DlgSelectOpValue       : "Vrednost",\r
+DlgSelectBtnAdd                : "Dodaj",\r
+DlgSelectBtnModify     : "Spremeni",\r
+DlgSelectBtnUp         : "Gor",\r
+DlgSelectBtnDown       : "Dol",\r
+DlgSelectBtnSetValue : "Postavi kot privzeto izbiro",\r
+DlgSelectBtnDelete     : "Izbriši",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Ime",\r
+DlgTextareaCols        : "Stolpcev",\r
+DlgTextareaRows        : "Vrstic",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Ime",\r
+DlgTextValue           : "Vrednost",\r
+DlgTextCharWidth       : "Dolžina",\r
+DlgTextMaxChars                : "Največje število znakov",\r
+DlgTextType                    : "Tip",\r
+DlgTextTypeText                : "Besedilo",\r
+DlgTextTypePass                : "Geslo",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Ime",\r
+DlgHiddenValue : "Vrednost",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Lastnosti označenega seznama",\r
+NumberedListProp       : "Lastnosti oštevilčenega seznama",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tip",\r
+DlgLstTypeCircle       : "Pikica",\r
+DlgLstTypeDisc         : "Kroglica",\r
+DlgLstTypeSquare       : "Kvadratek",\r
+DlgLstTypeNumbers      : "Številke (1, 2, 3)",\r
+DlgLstTypeLCase                : "Male črke (a, b, c)",\r
+DlgLstTypeUCase                : "Velike črke (A, B, C)",\r
+DlgLstTypeSRoman       : "Male rimske številke (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Velike rimske številke (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Splošno",\r
+DlgDocBackTab          : "Ozadje",\r
+DlgDocColorsTab                : "Barve in zamiki",\r
+DlgDocMetaTab          : "Meta podatki",\r
+\r
+DlgDocPageTitle                : "Naslov strani",\r
+DlgDocLangDir          : "Smer jezika",\r
+DlgDocLangDirLTR       : "Od leve proti desni (LTR)",\r
+DlgDocLangDirRTL       : "Od desne proti levi (RTL)",\r
+DlgDocLangCode         : "Oznaka jezika",\r
+DlgDocCharSet          : "Kodna tabela",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Druga kodna tabela",\r
+\r
+DlgDocDocType          : "Glava tipa dokumenta",\r
+DlgDocDocTypeOther     : "Druga glava tipa dokumenta",\r
+DlgDocIncXHTML         : "Vstavi XHTML deklaracije",\r
+DlgDocBgColor          : "Barva ozadja",\r
+DlgDocBgImage          : "URL slike za ozadje",\r
+DlgDocBgNoScroll       : "Nepremično ozadje",\r
+DlgDocCText                    : "Besedilo",\r
+DlgDocCLink                    : "Povezava",\r
+DlgDocCVisited         : "Obiskana povezava",\r
+DlgDocCActive          : "Aktivna povezava",\r
+DlgDocMargins          : "Zamiki strani",\r
+DlgDocMaTop                    : "Na vrhu",\r
+DlgDocMaLeft           : "Levo",\r
+DlgDocMaRight          : "Desno",\r
+DlgDocMaBottom         : "Spodaj",\r
+DlgDocMeIndex          : "Ključne besede (ločene z vejicami)",\r
+DlgDocMeDescr          : "Opis strani",\r
+DlgDocMeAuthor         : "Avtor",\r
+DlgDocMeCopy           : "Avtorske pravice",\r
+DlgDocPreview          : "Predogled",\r
+\r
+// Templates Dialog\r
+Templates                      : "Predloge",\r
+DlgTemplatesTitle      : "Vsebinske predloge",\r
+DlgTemplatesSelMsg     : "Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):",\r
+DlgTemplatesLoading    : "Nalagam seznam predlog. Prosim počakajte...",\r
+DlgTemplatesNoTpl      : "(Ni pripravljenih predlog)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Vizitka",\r
+DlgAboutBrowserInfoTab : "Informacije o brskalniku",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "različica",\r
+DlgAboutInfo           : "Za več informacij obiščite"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/sr-latn.js b/httemplate/elements/fckeditor/editor/lang/sr-latn.js
new file mode 100644 (file)
index 0000000..5fa8154
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Serbian (Latin) language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Smanji liniju sa alatkama",\r
+ToolbarExpand          : "Proiri liniju sa alatkama",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Sačuvaj",\r
+NewPage                                : "Nova stranica",\r
+Preview                                : "Izgled stranice",\r
+Cut                                    : "Iseci",\r
+Copy                           : "Kopiraj",\r
+Paste                          : "Zalepi",\r
+PasteText                      : "Zalepi kao neformatiran tekst",\r
+PasteWord                      : "Zalepi iz Worda",\r
+Print                          : "Štampa",\r
+SelectAll                      : "Označi sve",\r
+RemoveFormat           : "Ukloni formatiranje",\r
+InsertLinkLbl          : "Link",\r
+InsertLink                     : "Unesi/izmeni link",\r
+RemoveLink                     : "Ukloni link",\r
+Anchor                         : "Unesi/izmeni sidro",\r
+InsertImageLbl         : "Slika",\r
+InsertImage                    : "Unesi/izmeni sliku",\r
+InsertFlashLbl         : "Fleš",\r
+InsertFlash                    : "Unesi/izmeni fleš",\r
+InsertTableLbl         : "Tabela",\r
+InsertTable                    : "Unesi/izmeni tabelu",\r
+InsertLineLbl          : "Linija",\r
+InsertLine                     : "Unesi horizontalnu liniju",\r
+InsertSpecialCharLbl: "Specijalni karakteri",\r
+InsertSpecialChar      : "Unesi specijalni karakter",\r
+InsertSmileyLbl                : "Smajli",\r
+InsertSmiley           : "Unesi smajlija",\r
+About                          : "O FCKeditoru",\r
+Bold                           : "Podebljano",\r
+Italic                         : "Kurziv",\r
+Underline                      : "Podvučeno",\r
+StrikeThrough          : "Precrtano",\r
+Subscript                      : "Indeks",\r
+Superscript                    : "Stepen",\r
+LeftJustify                    : "Levo ravnanje",\r
+CenterJustify          : "Centriran tekst",\r
+RightJustify           : "Desno ravnanje",\r
+BlockJustify           : "Obostrano ravnanje",\r
+DecreaseIndent         : "Smanji levu marginu",\r
+IncreaseIndent         : "Uvećaj levu marginu",\r
+Undo                           : "Poni�ti akciju",\r
+Redo                           : "Ponovi akciju",\r
+NumberedListLbl                : "Nabrojiva lista",\r
+NumberedList           : "Unesi/ukloni nabrojivu listu",\r
+BulletedListLbl                : "Nenabrojiva lista",\r
+BulletedList           : "Unesi/ukloni nenabrojivu listu",\r
+ShowTableBorders       : "Prikaži okvir tabele",\r
+ShowDetails                    : "Prikaži detalje",\r
+Style                          : "Stil",\r
+FontFormat                     : "Format",\r
+Font                           : "Font",\r
+FontSize                       : "Veličina fonta",\r
+TextColor                      : "Boja teksta",\r
+BGColor                                : "Boja pozadine",\r
+Source                         : "Kôd",\r
+Find                           : "Pretraga",\r
+Replace                                : "Zamena",\r
+SpellCheck                     : "Proveri spelovanje",\r
+UniversalKeyboard      : "Univerzalna tastatura",\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Forma",\r
+Checkbox               : "Polje za potvrdu",\r
+RadioButton            : "Radio-dugme",\r
+TextField              : "Tekstualno polje",\r
+Textarea               : "Zona teksta",\r
+HiddenField            : "Skriveno polje",\r
+Button                 : "Dugme",\r
+SelectionField : "Izborno polje",\r
+ImageButton            : "Dugme sa slikom",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Izmeni link",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Unesi red",\r
+DeleteRows                     : "Obriši redove",\r
+InsertColumn           : "Unesi kolonu",\r
+DeleteColumns          : "Obriši kolone",\r
+InsertCell                     : "Unesi ćelije",\r
+DeleteCells                    : "Obriši ćelije",\r
+MergeCells                     : "Spoj celije",\r
+SplitCell                      : "Razdvoji celije",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Osobine celije",\r
+TableProperties                : "Osobine tabele",\r
+ImageProperties                : "Osobine slike",\r
+FlashProperties                : "Osobine fleša",\r
+\r
+AnchorProp                     : "Osobine sidra",\r
+ButtonProp                     : "Osobine dugmeta",\r
+CheckboxProp           : "Osobine polja za potvrdu",\r
+HiddenFieldProp                : "Osobine skrivenog polja",\r
+RadioButtonProp                : "Osobine radio-dugmeta",\r
+ImageButtonProp                : "Osobine dugmeta sa slikom",\r
+TextFieldProp          : "Osobine tekstualnog polja",\r
+SelectionFieldProp     : "Osobine izbornog polja",\r
+TextareaProp           : "Osobine zone teksta",\r
+FormProp                       : "Osobine forme",\r
+\r
+FontFormats                    : "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Obradujem XHTML. Malo strpljenja...",\r
+Done                           : "Završio",\r
+PasteWordConfirm       : "Tekst koji želite da nalepite kopiran je iz Worda. Da li želite da bude očišćen od formata pre lepljenja?",\r
+NotCompatiblePaste     : "Ova komanda je dostupna samo za Internet Explorer od verzije 5.5. Da li želite da nalepim tekst bez čišćenja?",\r
+UnknownToolbarItem     : "Nepoznata stavka toolbara \"%1\"",\r
+UnknownCommand         : "Nepoznata naredba \"%1\"",\r
+NotImplemented         : "Naredba nije implementirana",\r
+UnknownToolbarSet      : "Toolbar \"%1\" ne postoji",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Otkaži",\r
+DlgBtnClose                    : "Zatvori",\r
+DlgBtnBrowseServer     : "Pretraži server",\r
+DlgAdvancedTag         : "Napredni tagovi",\r
+DlgOpOther                     : "<Ostali>",\r
+DlgInfoTab                     : "Info",\r
+DlgAlertUrl                    : "Molimo Vas, unesite URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<nije postavljeno>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Smer jezika",\r
+DlgGenLangDirLtr       : "S leva na desno (LTR)",\r
+DlgGenLangDirRtl       : "S desna na levo (RTL)",\r
+DlgGenLangCode         : "Kôd jezika",\r
+DlgGenAccessKey                : "Pristupni taster",\r
+DlgGenName                     : "Naziv",\r
+DlgGenTabIndex         : "Tab indeks",\r
+DlgGenLongDescr                : "Pun opis URL",\r
+DlgGenClass                    : "Stylesheet klase",\r
+DlgGenTitle                    : "Advisory naslov",\r
+DlgGenContType         : "Advisory vrsta sadržaja",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Stil",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Osobine slika",\r
+DlgImgInfoTab          : "Info slike",\r
+DlgImgBtnUpload                : "Pošalji na server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Pošalji",\r
+DlgImgAlt                      : "Alternativni tekst",\r
+DlgImgWidth                    : "Širina",\r
+DlgImgHeight           : "Visina",\r
+DlgImgLockRatio                : "Zaključaj odnos",\r
+DlgBtnResetSize                : "Resetuj veličinu",\r
+DlgImgBorder           : "Okvir",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Ravnanje",\r
+DlgImgAlignLeft                : "Levo",\r
+DlgImgAlignAbsBottom: "Abs dole",\r
+DlgImgAlignAbsMiddle: "Abs sredina",\r
+DlgImgAlignBaseline    : "Bazno",\r
+DlgImgAlignBottom      : "Dole",\r
+DlgImgAlignMiddle      : "Sredina",\r
+DlgImgAlignRight       : "Desno",\r
+DlgImgAlignTextTop     : "Vrh teksta",\r
+DlgImgAlignTop         : "Vrh",\r
+DlgImgPreview          : "Izgled",\r
+DlgImgAlertUrl         : "Unesite URL slike",\r
+DlgImgLinkTab          : "Link",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Osobine fleša",\r
+DlgFlashChkPlay                : "Automatski start",\r
+DlgFlashChkLoop                : "Ponavljaj",\r
+DlgFlashChkMenu                : "Uključi fleš meni",\r
+DlgFlashScale          : "Skaliraj",\r
+DlgFlashScaleAll       : "Prikaži sve",\r
+DlgFlashScaleNoBorder  : "Bez ivice",\r
+DlgFlashScaleFit       : "Popuni površinu",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Link",\r
+DlgLnkInfoTab          : "Link Info",\r
+DlgLnkTargetTab                : "Meta",\r
+\r
+DlgLnkType                     : "Vrsta linka",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Sidro na ovoj stranici",\r
+DlgLnkTypeEMail                : "E-Mail",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<drugo>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Odaberi sidro",\r
+DlgLnkAnchorByName     : "Po nazivu sidra",\r
+DlgLnkAnchorById       : "Po Id-ju elementa",\r
+DlgLnkNoAnchors                : "<Nema dostupnih sidra>",             //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Mail adresa",\r
+DlgLnkEMailSubject     : "Naslov",\r
+DlgLnkEMailBody                : "Sadržaj poruke",\r
+DlgLnkUpload           : "Pošalji",\r
+DlgLnkBtnUpload                : "Pošalji na server",\r
+\r
+DlgLnkTarget           : "Meta",\r
+DlgLnkTargetFrame      : "<okvir>",\r
+DlgLnkTargetPopup      : "<popup prozor>",\r
+DlgLnkTargetBlank      : "Novi prozor (_blank)",\r
+DlgLnkTargetParent     : "Roditeljski prozor (_parent)",\r
+DlgLnkTargetSelf       : "Isti prozor (_self)",\r
+DlgLnkTargetTop                : "Prozor na vrhu (_top)",\r
+DlgLnkTargetFrameName  : "Naziv odredišnog frejma",\r
+DlgLnkPopWinName       : "Naziv popup prozora",\r
+DlgLnkPopWinFeat       : "Mogućnosti popup prozora",\r
+DlgLnkPopResize                : "Promenljiva velicina",\r
+DlgLnkPopLocation      : "Lokacija",\r
+DlgLnkPopMenu          : "Kontekstni meni",\r
+DlgLnkPopScroll                : "Scroll bar",\r
+DlgLnkPopStatus                : "Statusna linija",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Prikaz preko celog ekrana (IE)",\r
+DlgLnkPopDependent     : "Zavisno (Netscape)",\r
+DlgLnkPopWidth         : "Širina",\r
+DlgLnkPopHeight                : "Visina",\r
+DlgLnkPopLeft          : "Od leve ivice ekrana (px)",\r
+DlgLnkPopTop           : "Od vrha ekrana (px)",\r
+\r
+DlnLnkMsgNoUrl         : "Unesite URL linka",\r
+DlnLnkMsgNoEMail       : "Otkucajte adresu elektronske pote",\r
+DlnLnkMsgNoAnchor      : "Odaberite sidro",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Odaberite boju",\r
+DlgColorBtnClear       : "Obriši",\r
+DlgColorHighlight      : "Posvetli",\r
+DlgColorSelected       : "Odaberi",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Unesi smajlija",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Odaberite specijalni karakter",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Osobine tabele",\r
+DlgTableRows           : "Redova",\r
+DlgTableColumns                : "Kolona",\r
+DlgTableBorder         : "Veličina okvira",\r
+DlgTableAlign          : "Ravnanje",\r
+DlgTableAlignNotSet    : "<nije postavljeno>",\r
+DlgTableAlignLeft      : "Levo",\r
+DlgTableAlignCenter    : "Sredina",\r
+DlgTableAlignRight     : "Desno",\r
+DlgTableWidth          : "Širina",\r
+DlgTableWidthPx                : "piksela",\r
+DlgTableWidthPc                : "procenata",\r
+DlgTableHeight         : "Visina",\r
+DlgTableCellSpace      : "Ćelijski prostor",\r
+DlgTableCellPad                : "Razmak ćelija",\r
+DlgTableCaption                : "Naslov tabele",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Osobine ćelije",\r
+DlgCellWidth           : "Širina",\r
+DlgCellWidthPx         : "piksela",\r
+DlgCellWidthPc         : "procenata",\r
+DlgCellHeight          : "Visina",\r
+DlgCellWordWrap                : "Deljenje reči",\r
+DlgCellWordWrapNotSet  : "<nije postavljeno>",\r
+DlgCellWordWrapYes     : "Da",\r
+DlgCellWordWrapNo      : "Ne",\r
+DlgCellHorAlign                : "Vodoravno ravnanje",\r
+DlgCellHorAlignNotSet  : "<nije postavljeno>",\r
+DlgCellHorAlignLeft    : "Levo",\r
+DlgCellHorAlignCenter  : "Sredina",\r
+DlgCellHorAlignRight: "Desno",\r
+DlgCellVerAlign                : "Vertikalno ravnanje",\r
+DlgCellVerAlignNotSet  : "<nije postavljeno>",\r
+DlgCellVerAlignTop     : "Gornje",\r
+DlgCellVerAlignMiddle  : "Sredina",\r
+DlgCellVerAlignBottom  : "Donje",\r
+DlgCellVerAlignBaseline        : "Bazno",\r
+DlgCellRowSpan         : "Spajanje redova",\r
+DlgCellCollSpan                : "Spajanje kolona",\r
+DlgCellBackColor       : "Boja pozadine",\r
+DlgCellBorderColor     : "Boja okvira",\r
+DlgCellBtnSelect       : "Odaberi...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Pronađi",\r
+DlgFindFindBtn         : "Pronađi",\r
+DlgFindNotFoundMsg     : "Traženi tekst nije pronađen.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Zameni",\r
+DlgReplaceFindLbl              : "Pronadi:",\r
+DlgReplaceReplaceLbl   : "Zameni sa:",\r
+DlgReplaceCaseChk              : "Razlikuj mala i velika slova",\r
+DlgReplaceReplaceBtn   : "Zameni",\r
+DlgReplaceReplAllBtn   : "Zameni sve",\r
+DlgReplaceWordChk              : "Uporedi cele reci",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+X).",\r
+PasteErrorCopy : "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+C).",\r
+\r
+PasteAsText            : "Zalepi kao čist tekst",\r
+PasteFromWord  : "Zalepi iz Worda",\r
+\r
+DlgPasteMsg2   : "Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Ignoriši definicije fontova",\r
+DlgPasteRemoveStyles   : "Ukloni definicije stilova",\r
+DlgPasteCleanBox               : "Obriši sve",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatski",\r
+ColorMoreColors        : "Više boja...",\r
+\r
+// Document Properties\r
+DocProps               : "Osobine dokumenta",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Osobine sidra",\r
+DlgAnchorName          : "Ime sidra",\r
+DlgAnchorErrorName     : "Unesite ime sidra",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Nije u rečniku",\r
+DlgSpellChangeTo               : "Izmeni",\r
+DlgSpellBtnIgnore              : "Ignoriši",\r
+DlgSpellBtnIgnoreAll   : "Ignoriši sve",\r
+DlgSpellBtnReplace             : "Zameni",\r
+DlgSpellBtnReplaceAll  : "Zameni sve",\r
+DlgSpellBtnUndo                        : "Vrati akciju",\r
+DlgSpellNoSuggestions  : "- Bez sugestija -",\r
+DlgSpellProgress               : "Provera spelovanja u toku...",\r
+DlgSpellNoMispell              : "Provera spelovanja završena: greške nisu pronadene",\r
+DlgSpellNoChanges              : "Provera spelovanja završena: Nije izmenjena nijedna rec",\r
+DlgSpellOneChange              : "Provera spelovanja završena: Izmenjena je jedna reč",\r
+DlgSpellManyChanges            : "Provera spelovanja završena: %1 reč(i) je izmenjeno",\r
+\r
+IeSpellDownload                        : "Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Tekst (vrednost)",\r
+DlgButtonType          : "Tip",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Naziv",\r
+DlgCheckboxValue       : "Vrednost",\r
+DlgCheckboxSelected    : "Označeno",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Naziv",\r
+DlgFormAction  : "Akcija",\r
+DlgFormMethod  : "Metoda",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Naziv",\r
+DlgSelectValue         : "Vrednost",\r
+DlgSelectSize          : "Veličina",\r
+DlgSelectLines         : "linija",\r
+DlgSelectChkMulti      : "Dozvoli višestruku selekciju",\r
+DlgSelectOpAvail       : "Dostupne opcije",\r
+DlgSelectOpText                : "Tekst",\r
+DlgSelectOpValue       : "Vrednost",\r
+DlgSelectBtnAdd                : "Dodaj",\r
+DlgSelectBtnModify     : "Izmeni",\r
+DlgSelectBtnUp         : "Gore",\r
+DlgSelectBtnDown       : "Dole",\r
+DlgSelectBtnSetValue : "Podesi kao označenu vrednost",\r
+DlgSelectBtnDelete     : "Obriši",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Naziv",\r
+DlgTextareaCols        : "Broj kolona",\r
+DlgTextareaRows        : "Broj redova",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Naziv",\r
+DlgTextValue           : "Vrednost",\r
+DlgTextCharWidth       : "Širina (karaktera)",\r
+DlgTextMaxChars                : "Maksimalno karaktera",\r
+DlgTextType                    : "Tip",\r
+DlgTextTypeText                : "Tekst",\r
+DlgTextTypePass                : "Lozinka",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Naziv",\r
+DlgHiddenValue : "Vrednost",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Osobine nenabrojive liste",\r
+NumberedListProp       : "Osobine nabrojive liste",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Tip",\r
+DlgLstTypeCircle       : "Krug",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Kvadrat",\r
+DlgLstTypeNumbers      : "Brojevi (1, 2, 3)",\r
+DlgLstTypeLCase                : "mala slova (a, b, c)",\r
+DlgLstTypeUCase                : "VELIKA slova (A, B, C)",\r
+DlgLstTypeSRoman       : "Male rimske cifre (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Velike rimske cifre (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Opšte osobine",\r
+DlgDocBackTab          : "Pozadina",\r
+DlgDocColorsTab                : "Boje i margine",\r
+DlgDocMetaTab          : "Metapodaci",\r
+\r
+DlgDocPageTitle                : "Naslov stranice",\r
+DlgDocLangDir          : "Smer jezika",\r
+DlgDocLangDirLTR       : "Sleva nadesno (LTR)",\r
+DlgDocLangDirRTL       : "Zdesna nalevo (RTL)",\r
+DlgDocLangCode         : "Šifra jezika",\r
+DlgDocCharSet          : "Kodiranje skupa karaktera",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Ostala kodiranja skupa karaktera",\r
+\r
+DlgDocDocType          : "Zaglavlje tipa dokumenta",\r
+DlgDocDocTypeOther     : "Ostala zaglavlja tipa dokumenta",\r
+DlgDocIncXHTML         : "Ukljuci XHTML deklaracije",\r
+DlgDocBgColor          : "Boja pozadine",\r
+DlgDocBgImage          : "URL pozadinske slike",\r
+DlgDocBgNoScroll       : "Fiksirana pozadina",\r
+DlgDocCText                    : "Tekst",\r
+DlgDocCLink                    : "Link",\r
+DlgDocCVisited         : "Posećeni link",\r
+DlgDocCActive          : "Aktivni link",\r
+DlgDocMargins          : "Margine stranice",\r
+DlgDocMaTop                    : "Gornja",\r
+DlgDocMaLeft           : "Leva",\r
+DlgDocMaRight          : "Desna",\r
+DlgDocMaBottom         : "Donja",\r
+DlgDocMeIndex          : "Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",\r
+DlgDocMeDescr          : "Opis dokumenta",\r
+DlgDocMeAuthor         : "Autor",\r
+DlgDocMeCopy           : "Autorska prava",\r
+DlgDocPreview          : "Izgled stranice",\r
+\r
+// Templates Dialog\r
+Templates                      : "Obrasci",\r
+DlgTemplatesTitle      : "Obrasci za sadržaj",\r
+DlgTemplatesSelMsg     : "Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",\r
+DlgTemplatesLoading    : "Učitavam listu obrazaca. Malo strpljenja...",\r
+DlgTemplatesNoTpl      : "(Nema definisanih obrazaca)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "O editoru",\r
+DlgAboutBrowserInfoTab : "Informacije o pretraživacu",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "verzija",\r
+DlgAboutInfo           : "Za više informacija posetite"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/sr.js b/httemplate/elements/fckeditor/editor/lang/sr.js
new file mode 100644 (file)
index 0000000..e7aac23
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Serbian (Cyrillic) language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Смањи линију са алаткама",\r
+ToolbarExpand          : "Прошири линију са алаткама",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Сачувај",\r
+NewPage                                : "Нова страница",\r
+Preview                                : "Изглед странице",\r
+Cut                                    : "Исеци",\r
+Copy                           : "Копирај",\r
+Paste                          : "Залепи",\r
+PasteText                      : "Залепи као неформатиран текст",\r
+PasteWord                      : "Залепи из Worda",\r
+Print                          : "Штампа",\r
+SelectAll                      : "Означи све",\r
+RemoveFormat           : "Уклони форматирање",\r
+InsertLinkLbl          : "Линк",\r
+InsertLink                     : "Унеси/измени линк",\r
+RemoveLink                     : "Уклони линк",\r
+Anchor                         : "Унеси/измени сидро",\r
+InsertImageLbl         : "Слика",\r
+InsertImage                    : "Унеси/измени слику",\r
+InsertFlashLbl         : "Флеш елемент",\r
+InsertFlash                    : "Унеси/измени флеш",\r
+InsertTableLbl         : "Табела",\r
+InsertTable                    : "Унеси/измени табелу",\r
+InsertLineLbl          : "Линија",\r
+InsertLine                     : "Унеси хоризонталну линију",\r
+InsertSpecialCharLbl: "Специјални карактери",\r
+InsertSpecialChar      : "Унеси специјални карактер",\r
+InsertSmileyLbl                : "Смајли",\r
+InsertSmiley           : "Унеси смајлија",\r
+About                          : "О ФЦКедитору",\r
+Bold                           : "Подебљано",\r
+Italic                         : "Курзив",\r
+Underline                      : "Подвучено",\r
+StrikeThrough          : "Прецртано",\r
+Subscript                      : "Индекс",\r
+Superscript                    : "Степен",\r
+LeftJustify                    : "Лево равнање",\r
+CenterJustify          : "Центриран текст",\r
+RightJustify           : "Десно равнање",\r
+BlockJustify           : "Обострано равнање",\r
+DecreaseIndent         : "Смањи леву маргину",\r
+IncreaseIndent         : "Увећај леву маргину",\r
+Undo                           : "Поништи акцију",\r
+Redo                           : "Понови акцију",\r
+NumberedListLbl                : "Набројиву листу",\r
+NumberedList           : "Унеси/уклони набројиву листу",\r
+BulletedListLbl                : "Ненабројива листа",\r
+BulletedList           : "Унеси/уклони ненабројиву листу",\r
+ShowTableBorders       : "Прикажи оквир табеле",\r
+ShowDetails                    : "Прикажи детаље",\r
+Style                          : "Стил",\r
+FontFormat                     : "Формат",\r
+Font                           : "Фонт",\r
+FontSize                       : "Величина фонта",\r
+TextColor                      : "Боја текста",\r
+BGColor                                : "Боја позадине",\r
+Source                         : "Kôд",\r
+Find                           : "Претрага",\r
+Replace                                : "Замена",\r
+SpellCheck                     : "Провери спеловање",\r
+UniversalKeyboard      : "Универзална тастатура",\r
+PageBreakLbl           : "Page Break", //MISSING\r
+PageBreak                      : "Insert Page Break",  //MISSING\r
+\r
+Form                   : "Форма",\r
+Checkbox               : "Поље за потврду",\r
+RadioButton            : "Радио-дугме",\r
+TextField              : "Текстуално поље",\r
+Textarea               : "Зона текста",\r
+HiddenField            : "Скривено поље",\r
+Button                 : "Дугме",\r
+SelectionField : "Изборно поље",\r
+ImageButton            : "Дугме са сликом",\r
+\r
+FitWindow              : "Maximize the editor size",   //MISSING\r
+\r
+// Context Menu\r
+EditLink                       : "Промени линк",\r
+CellCM                         : "Cell",       //MISSING\r
+RowCM                          : "Row",        //MISSING\r
+ColumnCM                       : "Column",     //MISSING\r
+InsertRow                      : "Унеси ред",\r
+DeleteRows                     : "Обриши редове",\r
+InsertColumn           : "Унеси колону",\r
+DeleteColumns          : "Обриши колоне",\r
+InsertCell                     : "Унеси ћелије",\r
+DeleteCells                    : "Обриши ћелије",\r
+MergeCells                     : "Спој ћелије",\r
+SplitCell                      : "Раздвоји ћелије",\r
+TableDelete                    : "Delete Table",       //MISSING\r
+CellProperties         : "Особине ћелије",\r
+TableProperties                : "Особине табеле",\r
+ImageProperties                : "Особине слике",\r
+FlashProperties                : "Особине Флеша",\r
+\r
+AnchorProp                     : "Особине сидра",\r
+ButtonProp                     : "Особине дугмета",\r
+CheckboxProp           : "Особине поља за потврду",\r
+HiddenFieldProp                : "Особине скривеног поља",\r
+RadioButtonProp                : "Особине радио-дугмета",\r
+ImageButtonProp                : "Особине дугмета са сликом",\r
+TextFieldProp          : "Особине текстуалног поља",\r
+SelectionFieldProp     : "Особине изборног поља",\r
+TextareaProp           : "Особине зоне текста",\r
+FormProp                       : "Особине форме",\r
+\r
+FontFormats                    : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Обрађујем XHTML. Maлo стрпљења...",\r
+Done                           : "Завршио",\r
+PasteWordConfirm       : "Текст који желите да налепите копиран је из Worda. Да ли желите да буде очишћен од формата пре лепљења?",\r
+NotCompatiblePaste     : "Ова команда је доступна само за Интернет Екплорер од верзије 5.5. Да ли желите да налепим текст без чишћења?",\r
+UnknownToolbarItem     : "Непозната ставка toolbara \"%1\"",\r
+UnknownCommand         : "Непозната наредба \"%1\"",\r
+NotImplemented         : "Наредба није имплементирана",\r
+UnknownToolbarSet      : "Toolbar \"%1\" не постоји",\r
+NoActiveX                      : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING\r
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",    //MISSING\r
+DialogBlocked          : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",  //MISSING\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Oткажи",\r
+DlgBtnClose                    : "Затвори",\r
+DlgBtnBrowseServer     : "Претражи сервер",\r
+DlgAdvancedTag         : "Напредни тагови",\r
+DlgOpOther                     : "<Остали>",\r
+DlgInfoTab                     : "Инфо",\r
+DlgAlertUrl                    : "Молимо Вас, унесите УРЛ",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<није постављено>",\r
+DlgGenId                       : "Ид",\r
+DlgGenLangDir          : "Смер језика",\r
+DlgGenLangDirLtr       : "С лева на десно (LTR)",\r
+DlgGenLangDirRtl       : "С десна на лево (RTL)",\r
+DlgGenLangCode         : "Kôд језика",\r
+DlgGenAccessKey                : "Приступни тастер",\r
+DlgGenName                     : "Назив",\r
+DlgGenTabIndex         : "Таб индекс",\r
+DlgGenLongDescr                : "Пун опис УРЛ",\r
+DlgGenClass                    : "Stylesheet класе",\r
+DlgGenTitle                    : "Advisory наслов",\r
+DlgGenContType         : "Advisory врста садржаја",\r
+DlgGenLinkCharset      : "Linked Resource Charset",\r
+DlgGenStyle                    : "Стил",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Особине слика",\r
+DlgImgInfoTab          : "Инфо слике",\r
+DlgImgBtnUpload                : "Пошаљи на сервер",\r
+DlgImgURL                      : "УРЛ",\r
+DlgImgUpload           : "Пошаљи",\r
+DlgImgAlt                      : "Алтернативни текст",\r
+DlgImgWidth                    : "Ширина",\r
+DlgImgHeight           : "Висина",\r
+DlgImgLockRatio                : "Закључај однос",\r
+DlgBtnResetSize                : "Ресетуј величину",\r
+DlgImgBorder           : "Оквир",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Равнање",\r
+DlgImgAlignLeft                : "Лево",\r
+DlgImgAlignAbsBottom: "Abs доле",\r
+DlgImgAlignAbsMiddle: "Abs средина",\r
+DlgImgAlignBaseline    : "Базно",\r
+DlgImgAlignBottom      : "Доле",\r
+DlgImgAlignMiddle      : "Средина",\r
+DlgImgAlignRight       : "Десно",\r
+DlgImgAlignTextTop     : "Врх текста",\r
+DlgImgAlignTop         : "Врх",\r
+DlgImgPreview          : "Изглед",\r
+DlgImgAlertUrl         : "Унесите УРЛ слике",\r
+DlgImgLinkTab          : "Линк",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Особине флеша",\r
+DlgFlashChkPlay                : "Аутоматски старт",\r
+DlgFlashChkLoop                : "Понављај",\r
+DlgFlashChkMenu                : "Укључи флеш мени",\r
+DlgFlashScale          : "Скалирај",\r
+DlgFlashScaleAll       : "Прикажи све",\r
+DlgFlashScaleNoBorder  : "Без ивице",\r
+DlgFlashScaleFit       : "Попуни површину",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Линк",\r
+DlgLnkInfoTab          : "Линк инфо",\r
+DlgLnkTargetTab                : "Мета",\r
+\r
+DlgLnkType                     : "Врста линка",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Сидро на овој страници",\r
+DlgLnkTypeEMail                : "Eлектронска пошта",\r
+DlgLnkProto                    : "Протокол",\r
+DlgLnkProtoOther       : "<друго>",\r
+DlgLnkURL                      : "УРЛ",\r
+DlgLnkAnchorSel                : "Одабери сидро",\r
+DlgLnkAnchorByName     : "По називу сидра",\r
+DlgLnkAnchorById       : "Пo Ид-jу елемента",\r
+DlgLnkNoAnchors                : "<Нема доступних сидра>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Адреса електронске поште",\r
+DlgLnkEMailSubject     : "Наслов",\r
+DlgLnkEMailBody                : "Садржај поруке",\r
+DlgLnkUpload           : "Пошаљи",\r
+DlgLnkBtnUpload                : "Пошаљи на сервер",\r
+\r
+DlgLnkTarget           : "Meтa",\r
+DlgLnkTargetFrame      : "<оквир>",\r
+DlgLnkTargetPopup      : "<искачући прозор>",\r
+DlgLnkTargetBlank      : "Нови прозор (_blank)",\r
+DlgLnkTargetParent     : "Родитељски прозор (_parent)",\r
+DlgLnkTargetSelf       : "Исти прозор (_self)",\r
+DlgLnkTargetTop                : "Прозор на врху (_top)",\r
+DlgLnkTargetFrameName  : "Назив одредишног фрејма",\r
+DlgLnkPopWinName       : "Назив искачућег прозора",\r
+DlgLnkPopWinFeat       : "Могућности искачућег прозора",\r
+DlgLnkPopResize                : "Променљива величина",\r
+DlgLnkPopLocation      : "Локација",\r
+DlgLnkPopMenu          : "Контекстни мени",\r
+DlgLnkPopScroll                : "Скрол бар",\r
+DlgLnkPopStatus                : "Статусна линија",\r
+DlgLnkPopToolbar       : "Toolbar",\r
+DlgLnkPopFullScrn      : "Приказ преко целог екрана (ИE)",\r
+DlgLnkPopDependent     : "Зависно (Netscape)",\r
+DlgLnkPopWidth         : "Ширина",\r
+DlgLnkPopHeight                : "Висина",\r
+DlgLnkPopLeft          : "Од леве ивице екрана (пиксела)",\r
+DlgLnkPopTop           : "Од врха екрана (пиксела)",\r
+\r
+DlnLnkMsgNoUrl         : "Унесите УРЛ линка",\r
+DlnLnkMsgNoEMail       : "Откуцајте адресу електронске поште",\r
+DlnLnkMsgNoAnchor      : "Одаберите сидро",\r
+DlnLnkMsgInvPopName    : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Одаберите боју",\r
+DlgColorBtnClear       : "Обриши",\r
+DlgColorHighlight      : "Посветли",\r
+DlgColorSelected       : "Одабери",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Унеси смајлија",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Одаберите специјални карактер",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Особине табеле",\r
+DlgTableRows           : "Редова",\r
+DlgTableColumns                : "Kолона",\r
+DlgTableBorder         : "Величина оквира",\r
+DlgTableAlign          : "Равнање",\r
+DlgTableAlignNotSet    : "<није постављено>",\r
+DlgTableAlignLeft      : "Лево",\r
+DlgTableAlignCenter    : "Средина",\r
+DlgTableAlignRight     : "Десно",\r
+DlgTableWidth          : "Ширина",\r
+DlgTableWidthPx                : "пиксела",\r
+DlgTableWidthPc                : "процената",\r
+DlgTableHeight         : "Висина",\r
+DlgTableCellSpace      : "Ћелијски простор",\r
+DlgTableCellPad                : "Размак ћелија",\r
+DlgTableCaption                : "Наслов табеле",\r
+DlgTableSummary                : "Summary",    //MISSING\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Особине ћелије",\r
+DlgCellWidth           : "Ширина",\r
+DlgCellWidthPx         : "пиксела",\r
+DlgCellWidthPc         : "процената",\r
+DlgCellHeight          : "Висина",\r
+DlgCellWordWrap                : "Дељење речи",\r
+DlgCellWordWrapNotSet  : "<није постављено>",\r
+DlgCellWordWrapYes     : "Да",\r
+DlgCellWordWrapNo      : "Не",\r
+DlgCellHorAlign                : "Водоравно равнање",\r
+DlgCellHorAlignNotSet  : "<није постављено>",\r
+DlgCellHorAlignLeft    : "Лево",\r
+DlgCellHorAlignCenter  : "Средина",\r
+DlgCellHorAlignRight: "Десно",\r
+DlgCellVerAlign                : "Вертикално равнање",\r
+DlgCellVerAlignNotSet  : "<није постављено>",\r
+DlgCellVerAlignTop     : "Горње",\r
+DlgCellVerAlignMiddle  : "Средина",\r
+DlgCellVerAlignBottom  : "Доње",\r
+DlgCellVerAlignBaseline        : "Базно",\r
+DlgCellRowSpan         : "Спајање редова",\r
+DlgCellCollSpan                : "Спајање колона",\r
+DlgCellBackColor       : "Боја позадине",\r
+DlgCellBorderColor     : "Боја оквира",\r
+DlgCellBtnSelect       : "Oдабери...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Пронађи",\r
+DlgFindFindBtn         : "Пронађи",\r
+DlgFindNotFoundMsg     : "Тражени текст није пронађен.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Замени",\r
+DlgReplaceFindLbl              : "Пронађи:",\r
+DlgReplaceReplaceLbl   : "Замени са:",\r
+DlgReplaceCaseChk              : "Разликуј велика и мала слова",\r
+DlgReplaceReplaceBtn   : "Замени",\r
+DlgReplaceReplAllBtn   : "Замени све",\r
+DlgReplaceWordChk              : "Упореди целе речи",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+X).",\r
+PasteErrorCopy : "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+C).",\r
+\r
+PasteAsText            : "Залепи као чист текст",\r
+PasteFromWord  : "Залепи из Worda",\r
+\r
+DlgPasteMsg2   : "Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Игнориши Font Face дефиниције",\r
+DlgPasteRemoveStyles   : "Уклони дефиниције стилова",\r
+DlgPasteCleanBox               : "Обриши све",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Аутоматски",\r
+ColorMoreColors        : "Више боја...",\r
+\r
+// Document Properties\r
+DocProps               : "Особине документа",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Особине сидра",\r
+DlgAnchorName          : "Име сидра",\r
+DlgAnchorErrorName     : "Молимо Вас да унесете име сидра",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Није у речнику",\r
+DlgSpellChangeTo               : "Измени",\r
+DlgSpellBtnIgnore              : "Игнориши",\r
+DlgSpellBtnIgnoreAll   : "Игнориши све",\r
+DlgSpellBtnReplace             : "Замени",\r
+DlgSpellBtnReplaceAll  : "Замени све",\r
+DlgSpellBtnUndo                        : "Врати акцију",\r
+DlgSpellNoSuggestions  : "- Без сугестија -",\r
+DlgSpellProgress               : "Провера спеловања у току...",\r
+DlgSpellNoMispell              : "Провера спеловања завршена: грешке нису пронађене",\r
+DlgSpellNoChanges              : "Провера спеловања завршена: Није измењена ниједна реч",\r
+DlgSpellOneChange              : "Провера спеловања завршена: Измењена је једна реч",\r
+DlgSpellManyChanges            : "Провера спеловања завршена:  %1 реч(и) је измењено",\r
+\r
+IeSpellDownload                        : "Провера спеловања није инсталирана. Да ли желите да је скинете са Интернета?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Текст (вредност)",\r
+DlgButtonType          : "Tип",\r
+DlgButtonTypeBtn       : "Button",     //MISSING\r
+DlgButtonTypeSbm       : "Submit",     //MISSING\r
+DlgButtonTypeRst       : "Reset",      //MISSING\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Назив",\r
+DlgCheckboxValue       : "Вредност",\r
+DlgCheckboxSelected    : "Означено",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Назив",\r
+DlgFormAction  : "Aкција",\r
+DlgFormMethod  : "Mетода",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Назив",\r
+DlgSelectValue         : "Вредност",\r
+DlgSelectSize          : "Величина",\r
+DlgSelectLines         : "линија",\r
+DlgSelectChkMulti      : "Дозволи вишеструку селекцију",\r
+DlgSelectOpAvail       : "Доступне опције",\r
+DlgSelectOpText                : "Текст",\r
+DlgSelectOpValue       : "Вредност",\r
+DlgSelectBtnAdd                : "Додај",\r
+DlgSelectBtnModify     : "Измени",\r
+DlgSelectBtnUp         : "Горе",\r
+DlgSelectBtnDown       : "Доле",\r
+DlgSelectBtnSetValue : "Подеси као означену вредност",\r
+DlgSelectBtnDelete     : "Обриши",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Назив",\r
+DlgTextareaCols        : "Број колона",\r
+DlgTextareaRows        : "Број редова",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Назив",\r
+DlgTextValue           : "Вредност",\r
+DlgTextCharWidth       : "Ширина (карактера)",\r
+DlgTextMaxChars                : "Максимално карактера",\r
+DlgTextType                    : "Тип",\r
+DlgTextTypeText                : "Текст",\r
+DlgTextTypePass                : "Лозинка",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Назив",\r
+DlgHiddenValue : "Вредност",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Особине Bulleted листе",\r
+NumberedListProp       : "Особине набројиве листе",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Тип",\r
+DlgLstTypeCircle       : "Круг",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "Квадрат",\r
+DlgLstTypeNumbers      : "Бројеви (1, 2, 3)",\r
+DlgLstTypeLCase                : "мала слова (a, b, c)",\r
+DlgLstTypeUCase                : "ВЕЛИКА СЛОВА (A, B, C)",\r
+DlgLstTypeSRoman       : "Мале римске цифре (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Велике римске цифре (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Опште особине",\r
+DlgDocBackTab          : "Позадина",\r
+DlgDocColorsTab                : "Боје и маргине",\r
+DlgDocMetaTab          : "Метаподаци",\r
+\r
+DlgDocPageTitle                : "Наслов странице",\r
+DlgDocLangDir          : "Смер језика",\r
+DlgDocLangDirLTR       : "Слева надесно (LTR)",\r
+DlgDocLangDirRTL       : "Здесна налево (RTL)",\r
+DlgDocLangCode         : "Шифра језика",\r
+DlgDocCharSet          : "Кодирање скупа карактера",\r
+DlgDocCharSetCE                : "Central European",   //MISSING\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)", //MISSING\r
+DlgDocCharSetCR                : "Cyrillic",   //MISSING\r
+DlgDocCharSetGR                : "Greek",      //MISSING\r
+DlgDocCharSetJP                : "Japanese",   //MISSING\r
+DlgDocCharSetKR                : "Korean",     //MISSING\r
+DlgDocCharSetTR                : "Turkish",    //MISSING\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",    //MISSING\r
+DlgDocCharSetWE                : "Western European",   //MISSING\r
+DlgDocCharSetOther     : "Остала кодирања скупа карактера",\r
+\r
+DlgDocDocType          : "Заглавље типа документа",\r
+DlgDocDocTypeOther     : "Остала заглавља типа документа",\r
+DlgDocIncXHTML         : "Улључи XHTML декларације",\r
+DlgDocBgColor          : "Боја позадине",\r
+DlgDocBgImage          : "УРЛ позадинске слике",\r
+DlgDocBgNoScroll       : "Фиксирана позадина",\r
+DlgDocCText                    : "Текст",\r
+DlgDocCLink                    : "Линк",\r
+DlgDocCVisited         : "Посећени линк",\r
+DlgDocCActive          : "Активни линк",\r
+DlgDocMargins          : "Маргине странице",\r
+DlgDocMaTop                    : "Горња",\r
+DlgDocMaLeft           : "Лева",\r
+DlgDocMaRight          : "Десна",\r
+DlgDocMaBottom         : "Доња",\r
+DlgDocMeIndex          : "Кључне речи за индексирање документа (раздвојене зарезом)",\r
+DlgDocMeDescr          : "Опис документа",\r
+DlgDocMeAuthor         : "Аутор",\r
+DlgDocMeCopy           : "Ауторска права",\r
+DlgDocPreview          : "Изглед странице",\r
+\r
+// Templates Dialog\r
+Templates                      : "Обрасци",\r
+DlgTemplatesTitle      : "Обрасци за садржај",\r
+DlgTemplatesSelMsg     : "Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",\r
+DlgTemplatesLoading    : "Учитавам листу образаца. Мало стрпљења...",\r
+DlgTemplatesNoTpl      : "(Нема дефинисаних образаца)",\r
+DlgTemplatesReplace    : "Replace actual contents",    //MISSING\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "О едитору",\r
+DlgAboutBrowserInfoTab : "Информације о претраживачу",\r
+DlgAboutLicenseTab     : "License",    //MISSING\r
+DlgAboutVersion                : "верзија",\r
+DlgAboutInfo           : "За више информација посетите"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/sv.js b/httemplate/elements/fckeditor/editor/lang/sv.js
new file mode 100644 (file)
index 0000000..a301a03
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Swedish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Dölj verktygsfält",\r
+ToolbarExpand          : "Visa verktygsfält",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Spara",\r
+NewPage                                : "Ny sida",\r
+Preview                                : "Förhandsgranska",\r
+Cut                                    : "Klipp ut",\r
+Copy                           : "Kopiera",\r
+Paste                          : "Klistra in",\r
+PasteText                      : "Klistra in som text",\r
+PasteWord                      : "Klistra in från Word",\r
+Print                          : "Skriv ut",\r
+SelectAll                      : "Markera allt",\r
+RemoveFormat           : "Radera formatering",\r
+InsertLinkLbl          : "Länk",\r
+InsertLink                     : "Infoga/Redigera länk",\r
+RemoveLink                     : "Radera länk",\r
+Anchor                         : "Infoga/Redigera ankarlänk",\r
+InsertImageLbl         : "Bild",\r
+InsertImage                    : "Infoga/Redigera bild",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Infoga/Redigera Flash",\r
+InsertTableLbl         : "Tabell",\r
+InsertTable                    : "Infoga/Redigera tabell",\r
+InsertLineLbl          : "Linje",\r
+InsertLine                     : "Infoga horisontal linje",\r
+InsertSpecialCharLbl: "Utökade tecken",\r
+InsertSpecialChar      : "Klistra in utökat tecken",\r
+InsertSmileyLbl                : "Smiley",\r
+InsertSmiley           : "Infoga Smiley",\r
+About                          : "Om FCKeditor",\r
+Bold                           : "Fet",\r
+Italic                         : "Kursiv",\r
+Underline                      : "Understruken",\r
+StrikeThrough          : "Genomstruken",\r
+Subscript                      : "Nedsänkta tecken",\r
+Superscript                    : "Upphöjda tecken",\r
+LeftJustify                    : "Vänsterjustera",\r
+CenterJustify          : "Centrera",\r
+RightJustify           : "Högerjustera",\r
+BlockJustify           : "Justera till marginaler",\r
+DecreaseIndent         : "Minska indrag",\r
+IncreaseIndent         : "Öka indrag",\r
+Undo                           : "Ångra",\r
+Redo                           : "Gör om",\r
+NumberedListLbl                : "Numrerad lista",\r
+NumberedList           : "Infoga/Radera numrerad lista",\r
+BulletedListLbl                : "Punktlista",\r
+BulletedList           : "Infoga/Radera punktlista",\r
+ShowTableBorders       : "Visa tabellkant",\r
+ShowDetails                    : "Visa radbrytningar",\r
+Style                          : "Anpassad stil",\r
+FontFormat                     : "Teckenformat",\r
+Font                           : "Typsnitt",\r
+FontSize                       : "Storlek",\r
+TextColor                      : "Textfärg",\r
+BGColor                                : "Bakgrundsfärg",\r
+Source                         : "Källa",\r
+Find                           : "Sök",\r
+Replace                                : "Ersätt",\r
+SpellCheck                     : "Stavningskontroll",\r
+UniversalKeyboard      : "Universellt tangentbord",\r
+PageBreakLbl           : "Sidbrytning",\r
+PageBreak                      : "Infoga sidbrytning",\r
+\r
+Form                   : "Formulär",\r
+Checkbox               : "Kryssruta",\r
+RadioButton            : "Alternativknapp",\r
+TextField              : "Textfält",\r
+Textarea               : "Textruta",\r
+HiddenField            : "Dolt fält",\r
+Button                 : "Knapp",\r
+SelectionField : "Flervalslista",\r
+ImageButton            : "Bildknapp",\r
+\r
+FitWindow              : "Anpassa till fönstrets storlek",\r
+\r
+// Context Menu\r
+EditLink                       : "Redigera länk",\r
+CellCM                         : "Cell",\r
+RowCM                          : "Rad",\r
+ColumnCM                       : "Kolumn",\r
+InsertRow                      : "Infoga rad",\r
+DeleteRows                     : "Radera rad",\r
+InsertColumn           : "Infoga kolumn",\r
+DeleteColumns          : "Radera kolumn",\r
+InsertCell                     : "Infoga cell",\r
+DeleteCells                    : "Radera celler",\r
+MergeCells                     : "Sammanfoga celler",\r
+SplitCell                      : "Separera celler",\r
+TableDelete                    : "Radera tabell",\r
+CellProperties         : "Cellegenskaper",\r
+TableProperties                : "Tabellegenskaper",\r
+ImageProperties                : "Bildegenskaper",\r
+FlashProperties                : "Flashegenskaper",\r
+\r
+AnchorProp                     : "Egenskaper för ankarlänk",\r
+ButtonProp                     : "Egenskaper för knapp",\r
+CheckboxProp           : "Egenskaper för kryssruta",\r
+HiddenFieldProp                : "Egenskaper för dolt fält",\r
+RadioButtonProp                : "Egenskaper för alternativknapp",\r
+ImageButtonProp                : "Egenskaper för bildknapp",\r
+TextFieldProp          : "Egenskaper för textfält",\r
+SelectionFieldProp     : "Egenskaper för flervalslista",\r
+TextareaProp           : "Egenskaper för textruta",\r
+FormProp                       : "Egenskaper för formulär",\r
+\r
+FontFormats                    : "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6;Normal (DIV)",                //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Bearbetar XHTML. Var god vänta...",\r
+Done                           : "Klar",\r
+PasteWordConfirm       : "Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa innan du klistar in?",\r
+NotCompatiblePaste     : "Denna åtgärd är inte tillgängligt för Internet Explorer version 5.5 eller högre. Vill du klistra in utan att rensa?",\r
+UnknownToolbarItem     : "Okänt verktygsfält \"%1\"",\r
+UnknownCommand         : "Okänt kommando \"%1\"",\r
+NotImplemented         : "Kommandot finns ej",\r
+UnknownToolbarSet      : "Verktygsfält \"%1\" finns ej",\r
+NoActiveX                      : "Din webläsares säkerhetsinställningar kan begränsa funktionaliteten. Du bör aktivera \"Kör ActiveX kontroller och plug-ins\". Fel och avsaknad av funktioner kan annars uppstå.",\r
+BrowseServerBlocked : "Kunde Ej öppna resursfönstret. Var god och avaktivera alla popup-blockerare.",\r
+DialogBlocked          : "Kunde Ej öppna dialogfönstret. Var god och avaktivera alla popup-blockerare.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "OK",\r
+DlgBtnCancel           : "Avbryt",\r
+DlgBtnClose                    : "Stäng",\r
+DlgBtnBrowseServer     : "Bläddra på server",\r
+DlgAdvancedTag         : "Avancerad",\r
+DlgOpOther                     : "Övrigt",\r
+DlgInfoTab                     : "Information",\r
+DlgAlertUrl                    : "Var god och ange en URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ej angivet>",\r
+DlgGenId                       : "Id",\r
+DlgGenLangDir          : "Språkriktning",\r
+DlgGenLangDirLtr       : "Vänster till Höger (VTH)",\r
+DlgGenLangDirRtl       : "Höger till Vänster (HTV)",\r
+DlgGenLangCode         : "Språkkod",\r
+DlgGenAccessKey                : "Behörighetsnyckel",\r
+DlgGenName                     : "Namn",\r
+DlgGenTabIndex         : "Tabindex",\r
+DlgGenLongDescr                : "URL-beskrivning",\r
+DlgGenClass                    : "Stylesheet class",\r
+DlgGenTitle                    : "Titel",\r
+DlgGenContType         : "Innehållstyp",\r
+DlgGenLinkCharset      : "Teckenuppställning",\r
+DlgGenStyle                    : "Style",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Bildegenskaper",\r
+DlgImgInfoTab          : "Bildinformation",\r
+DlgImgBtnUpload                : "Skicka till server",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Ladda upp",\r
+DlgImgAlt                      : "Alternativ text",\r
+DlgImgWidth                    : "Bredd",\r
+DlgImgHeight           : "Höjd",\r
+DlgImgLockRatio                : "Lås höjd/bredd förhållanden",\r
+DlgBtnResetSize                : "Återställ storlek",\r
+DlgImgBorder           : "Kant",\r
+DlgImgHSpace           : "Horis. marginal",\r
+DlgImgVSpace           : "Vert. marginal",\r
+DlgImgAlign                    : "Justering",\r
+DlgImgAlignLeft                : "Vänster",\r
+DlgImgAlignAbsBottom: "Absolut nederkant",\r
+DlgImgAlignAbsMiddle: "Absolut centrering",\r
+DlgImgAlignBaseline    : "Baslinje",\r
+DlgImgAlignBottom      : "Nederkant",\r
+DlgImgAlignMiddle      : "Mitten",\r
+DlgImgAlignRight       : "Höger",\r
+DlgImgAlignTextTop     : "Text överkant",\r
+DlgImgAlignTop         : "Överkant",\r
+DlgImgPreview          : "Förhandsgranska",\r
+DlgImgAlertUrl         : "Var god och ange bildens URL",\r
+DlgImgLinkTab          : "Länk",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flashegenskaper",\r
+DlgFlashChkPlay                : "Automatisk uppspelning",\r
+DlgFlashChkLoop                : "Upprepa/Loopa",\r
+DlgFlashChkMenu                : "Aktivera Flashmeny",\r
+DlgFlashScale          : "Skala",\r
+DlgFlashScaleAll       : "Visa allt",\r
+DlgFlashScaleNoBorder  : "Ingen ram",\r
+DlgFlashScaleFit       : "Exakt passning",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Länk",\r
+DlgLnkInfoTab          : "Länkinformation",\r
+DlgLnkTargetTab                : "Mål",\r
+\r
+DlgLnkType                     : "Länktyp",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Ankare i sidan",\r
+DlgLnkTypeEMail                : "E-post",\r
+DlgLnkProto                    : "Protokoll",\r
+DlgLnkProtoOther       : "<övrigt>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Välj ett ankare",\r
+DlgLnkAnchorByName     : "efter ankarnamn",\r
+DlgLnkAnchorById       : "efter objektid",\r
+DlgLnkNoAnchors                : "(Inga ankare kunde hittas)",         //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-postadress",\r
+DlgLnkEMailSubject     : "Ämne",\r
+DlgLnkEMailBody                : "Innehåll",\r
+DlgLnkUpload           : "Ladda upp",\r
+DlgLnkBtnUpload                : "Skicka till servern",\r
+\r
+DlgLnkTarget           : "Mål",\r
+DlgLnkTargetFrame      : "<ram>",\r
+DlgLnkTargetPopup      : "<popup-fönster>",\r
+DlgLnkTargetBlank      : "Nytt fönster (_blank)",\r
+DlgLnkTargetParent     : "Föregående Window (_parent)",\r
+DlgLnkTargetSelf       : "Detta fönstret (_self)",\r
+DlgLnkTargetTop                : "Översta fönstret (_top)",\r
+DlgLnkTargetFrameName  : "Målets ramnamn",\r
+DlgLnkPopWinName       : "Popup-fönstrets namn",\r
+DlgLnkPopWinFeat       : "Popup-fönstrets egenskaper",\r
+DlgLnkPopResize                : "Kan ändra storlek",\r
+DlgLnkPopLocation      : "Adressfält",\r
+DlgLnkPopMenu          : "Menyfält",\r
+DlgLnkPopScroll                : "Scrolllista",\r
+DlgLnkPopStatus                : "Statusfält",\r
+DlgLnkPopToolbar       : "Verktygsfält",\r
+DlgLnkPopFullScrn      : "Helskärm (endast IE)",\r
+DlgLnkPopDependent     : "Beroende (endest Netscape)",\r
+DlgLnkPopWidth         : "Bredd",\r
+DlgLnkPopHeight                : "Höjd",\r
+DlgLnkPopLeft          : "Position från vänster",\r
+DlgLnkPopTop           : "Position från sidans topp",\r
+\r
+DlnLnkMsgNoUrl         : "Var god ange länkens URL",\r
+DlnLnkMsgNoEMail       : "Var god ange E-postadress",\r
+DlnLnkMsgNoAnchor      : "Var god ange ett ankare",\r
+DlnLnkMsgInvPopName    : "Popup-rutans namn måste börja med en alfabetisk bokstav och får inte innehålla mellanslag",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Välj färg",\r
+DlgColorBtnClear       : "Rensa",\r
+DlgColorHighlight      : "Markera",\r
+DlgColorSelected       : "Vald",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Infoga smiley",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Välj utökat tecken",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tabellegenskaper",\r
+DlgTableRows           : "Rader",\r
+DlgTableColumns                : "Kolumner",\r
+DlgTableBorder         : "Kantstorlek",\r
+DlgTableAlign          : "Justering",\r
+DlgTableAlignNotSet    : "<ej angivet>",\r
+DlgTableAlignLeft      : "Vänster",\r
+DlgTableAlignCenter    : "Centrerad",\r
+DlgTableAlignRight     : "Höger",\r
+DlgTableWidth          : "Bredd",\r
+DlgTableWidthPx                : "pixlar",\r
+DlgTableWidthPc                : "procent",\r
+DlgTableHeight         : "Höjd",\r
+DlgTableCellSpace      : "Cellavstånd",\r
+DlgTableCellPad                : "Cellutfyllnad",\r
+DlgTableCaption                : "Rubrik",\r
+DlgTableSummary                : "Sammanfattning",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Cellegenskaper",\r
+DlgCellWidth           : "Bredd",\r
+DlgCellWidthPx         : "pixlar",\r
+DlgCellWidthPc         : "procent",\r
+DlgCellHeight          : "Höjd",\r
+DlgCellWordWrap                : "Automatisk radbrytning",\r
+DlgCellWordWrapNotSet  : "<Ej angivet>",\r
+DlgCellWordWrapYes     : "Ja",\r
+DlgCellWordWrapNo      : "Nej",\r
+DlgCellHorAlign                : "Horisontal justering",\r
+DlgCellHorAlignNotSet  : "<Ej angivet>",\r
+DlgCellHorAlignLeft    : "Vänster",\r
+DlgCellHorAlignCenter  : "Centrerad",\r
+DlgCellHorAlignRight: "Höger",\r
+DlgCellVerAlign                : "Vertikal justering",\r
+DlgCellVerAlignNotSet  : "<Ej angivet>",\r
+DlgCellVerAlignTop     : "Topp",\r
+DlgCellVerAlignMiddle  : "Mitten",\r
+DlgCellVerAlignBottom  : "Nederkant",\r
+DlgCellVerAlignBaseline        : "Underst",\r
+DlgCellRowSpan         : "Radomfång",\r
+DlgCellCollSpan                : "Kolumnomfång",\r
+DlgCellBackColor       : "Bakgrundsfärg",\r
+DlgCellBorderColor     : "Kantfärg",\r
+DlgCellBtnSelect       : "Välj...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Sök",\r
+DlgFindFindBtn         : "Sök",\r
+DlgFindNotFoundMsg     : "Angiven text kunde ej hittas.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Ersätt",\r
+DlgReplaceFindLbl              : "Sök efter:",\r
+DlgReplaceReplaceLbl   : "Ersätt med:",\r
+DlgReplaceCaseChk              : "Skiftläge",\r
+DlgReplaceReplaceBtn   : "Ersätt",\r
+DlgReplaceReplAllBtn   : "Ersätt alla",\r
+DlgReplaceWordChk              : "Inkludera hela ord",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl+X) istället.",\r
+PasteErrorCopy : "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl+C) istället",\r
+\r
+PasteAsText            : "Klistra in som vanlig text",\r
+PasteFromWord  : "Klistra in från Word",\r
+\r
+DlgPasteMsg2   : "Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.",\r
+DlgPasteIgnoreFont             : "Ignorera typsnittsdefinitioner",\r
+DlgPasteRemoveStyles   : "Radera Stildefinitioner",\r
+DlgPasteCleanBox               : "Töm rutans innehåll",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Automatisk",\r
+ColorMoreColors        : "Fler färger...",\r
+\r
+// Document Properties\r
+DocProps               : "Dokumentegenskaper",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Ankaregenskaper",\r
+DlgAnchorName          : "Ankarnamn",\r
+DlgAnchorErrorName     : "Var god ange ett ankarnamn",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Saknas i ordlistan",\r
+DlgSpellChangeTo               : "Ändra till",\r
+DlgSpellBtnIgnore              : "Ignorera",\r
+DlgSpellBtnIgnoreAll   : "Ignorera alla",\r
+DlgSpellBtnReplace             : "Ersätt",\r
+DlgSpellBtnReplaceAll  : "Ersätt alla",\r
+DlgSpellBtnUndo                        : "Ångra",\r
+DlgSpellNoSuggestions  : "- Förslag saknas -",\r
+DlgSpellProgress               : "Stavningskontroll pågår...",\r
+DlgSpellNoMispell              : "Stavningskontroll slutförd: Inga stavfel påträffades.",\r
+DlgSpellNoChanges              : "Stavningskontroll slutförd: Inga ord rättades.",\r
+DlgSpellOneChange              : "Stavningskontroll slutförd: Ett ord rättades.",\r
+DlgSpellManyChanges            : "Stavningskontroll slutförd: %1 ord rättades.",\r
+\r
+IeSpellDownload                        : "Stavningskontrollen är ej installerad. Vill du göra det nu?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Text (Värde)",\r
+DlgButtonType          : "Typ",\r
+DlgButtonTypeBtn       : "Knapp",\r
+DlgButtonTypeSbm       : "Skicka",\r
+DlgButtonTypeRst       : "Återställ",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Namn",\r
+DlgCheckboxValue       : "Värde",\r
+DlgCheckboxSelected    : "Vald",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Namn",\r
+DlgFormAction  : "Funktion",\r
+DlgFormMethod  : "Metod",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Namn",\r
+DlgSelectValue         : "Värde",\r
+DlgSelectSize          : "Storlek",\r
+DlgSelectLines         : "Linjer",\r
+DlgSelectChkMulti      : "Tillåt flerval",\r
+DlgSelectOpAvail       : "Befintliga val",\r
+DlgSelectOpText                : "Text",\r
+DlgSelectOpValue       : "Värde",\r
+DlgSelectBtnAdd                : "Lägg till",\r
+DlgSelectBtnModify     : "Redigera",\r
+DlgSelectBtnUp         : "Upp",\r
+DlgSelectBtnDown       : "Ner",\r
+DlgSelectBtnSetValue : "Markera som valt värde",\r
+DlgSelectBtnDelete     : "Radera",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Namn",\r
+DlgTextareaCols        : "Kolumner",\r
+DlgTextareaRows        : "Rader",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Namn",\r
+DlgTextValue           : "Värde",\r
+DlgTextCharWidth       : "Teckenbredd",\r
+DlgTextMaxChars                : "Max antal tecken",\r
+DlgTextType                    : "Typ",\r
+DlgTextTypeText                : "Text",\r
+DlgTextTypePass                : "Lösenord",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Namn",\r
+DlgHiddenValue : "Värde",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Egenskaper för punktlista",\r
+NumberedListProp       : "Egenskaper för numrerad lista",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "Typ",\r
+DlgLstTypeCircle       : "Cirkel",\r
+DlgLstTypeDisc         : "Punkt",\r
+DlgLstTypeSquare       : "Ruta",\r
+DlgLstTypeNumbers      : "Nummer (1, 2, 3)",\r
+DlgLstTypeLCase                : "Gemener (a, b, c)",\r
+DlgLstTypeUCase                : "Versaler (A, B, C)",\r
+DlgLstTypeSRoman       : "Små romerska siffror (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Stora romerska siffror (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Allmän",\r
+DlgDocBackTab          : "Bakgrund",\r
+DlgDocColorsTab                : "Färg och marginal",\r
+DlgDocMetaTab          : "Metadata",\r
+\r
+DlgDocPageTitle                : "Sidtitel",\r
+DlgDocLangDir          : "Språkriktning",\r
+DlgDocLangDirLTR       : "Vänster till Höger",\r
+DlgDocLangDirRTL       : "Höger till Vänster",\r
+DlgDocLangCode         : "Språkkod",\r
+DlgDocCharSet          : "Teckenuppsättningar",\r
+DlgDocCharSetCE                : "Central Europa",\r
+DlgDocCharSetCT                : "Traditionell Kinesisk (Big5)",\r
+DlgDocCharSetCR                : "Kyrillisk",\r
+DlgDocCharSetGR                : "Grekiska",\r
+DlgDocCharSetJP                : "Japanska",\r
+DlgDocCharSetKR                : "Koreanska",\r
+DlgDocCharSetTR                : "Turkiska",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Väst Europa",\r
+DlgDocCharSetOther     : "Övriga teckenuppsättningar",\r
+\r
+DlgDocDocType          : "Sidhuvud",\r
+DlgDocDocTypeOther     : "Övriga sidhuvuden",\r
+DlgDocIncXHTML         : "Inkludera XHTML deklaration",\r
+DlgDocBgColor          : "Bakgrundsfärg",\r
+DlgDocBgImage          : "Bakgrundsbildens URL",\r
+DlgDocBgNoScroll       : "Fast bakgrund",\r
+DlgDocCText                    : "Text",\r
+DlgDocCLink                    : "Länk",\r
+DlgDocCVisited         : "Besökt länk",\r
+DlgDocCActive          : "Aktiv länk",\r
+DlgDocMargins          : "Sidmarginal",\r
+DlgDocMaTop                    : "Topp",\r
+DlgDocMaLeft           : "Vänster",\r
+DlgDocMaRight          : "Höger",\r
+DlgDocMaBottom         : "Botten",\r
+DlgDocMeIndex          : "Sidans nyckelord",\r
+DlgDocMeDescr          : "Sidans beskrivning",\r
+DlgDocMeAuthor         : "Författare",\r
+DlgDocMeCopy           : "Upphovsrätt",\r
+DlgDocPreview          : "Förhandsgranska",\r
+\r
+// Templates Dialog\r
+Templates                      : "Sidmallar",\r
+DlgTemplatesTitle      : "Sidmallar",\r
+DlgTemplatesSelMsg     : "Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):",\r
+DlgTemplatesLoading    : "Laddar mallar. Var god vänta...",\r
+DlgTemplatesNoTpl      : "(Ingen mall är vald)",\r
+DlgTemplatesReplace    : "Ersätt aktuellt innehåll",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Om",\r
+DlgAboutBrowserInfoTab : "Webläsare",\r
+DlgAboutLicenseTab     : "Licens",\r
+DlgAboutVersion                : "version",\r
+DlgAboutInfo           : "För mer information se"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/th.js b/httemplate/elements/fckeditor/editor/lang/th.js
new file mode 100644 (file)
index 0000000..8c4319a
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Thai language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "ซ่อนแถบเครื่องมือ",\r
+ToolbarExpand          : "แสดงแถบเครื่องมือ",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "บันทึก",\r
+NewPage                                : "สร้างหน้าเอกสารใหม่",\r
+Preview                                : "ดูหน้าเอกสารตัวอย่าง",\r
+Cut                                    : "ตัด",\r
+Copy                           : "สำเนา",\r
+Paste                          : "วาง",\r
+PasteText                      : "วางสำเนาจากตัวอักษรธรรมดา",\r
+PasteWord                      : "วางสำเนาจากตัวอักษรเวิร์ด",\r
+Print                          : "สั่งพิมพ์",\r
+SelectAll                      : "เลือกทั้งหมด",\r
+RemoveFormat           : "ล้างรูปแบบ",\r
+InsertLinkLbl          : "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ",\r
+InsertLink                     : "แทรก/แก้ไข ลิงค์",\r
+RemoveLink                     : "ลบ ลิงค์",\r
+Anchor                         : "แทรก/แก้ไข Anchor",\r
+InsertImageLbl         : "รูปภาพ",\r
+InsertImage                    : "แทรก/แก้ไข รูปภาพ",\r
+InsertFlashLbl         : "ไฟล์ Flash",\r
+InsertFlash                    : "แทรก/แก้ไข ไฟล์ Flash",\r
+InsertTableLbl         : "ตาราง",\r
+InsertTable                    : "แทรก/แก้ไข ตาราง",\r
+InsertLineLbl          : "เส้นคั่นบรรทัด",\r
+InsertLine                     : "แทรกเส้นคั่นบรรทัด",\r
+InsertSpecialCharLbl: "ตัวอักษรพิเศษ",\r
+InsertSpecialChar      : "แทรกตัวอักษรพิเศษ",\r
+InsertSmileyLbl                : "รูปสื่ออารมณ์",\r
+InsertSmiley           : "แทรกรูปสื่ออารมณ์",\r
+About                          : "เกี่ยวกับโปรแกรม FCKeditor",\r
+Bold                           : "ตัวหนา",\r
+Italic                         : "ตัวเอียง",\r
+Underline                      : "ตัวขีดเส้นใต้",\r
+StrikeThrough          : "ตัวขีดเส้นทับ",\r
+Subscript                      : "ตัวห้อย",\r
+Superscript                    : "ตัวยก",\r
+LeftJustify                    : "จัดชิดซ้าย",\r
+CenterJustify          : "จัดกึ่งกลาง",\r
+RightJustify           : "จัดชิดขวา",\r
+BlockJustify           : "จัดพอดีหน้ากระดาษ",\r
+DecreaseIndent         : "ลดระยะย่อหน้า",\r
+IncreaseIndent         : "เพิ่มระยะย่อหน้า",\r
+Undo                           : "ยกเลิกคำสั่ง",\r
+Redo                           : "ทำซ้ำคำสั่ง",\r
+NumberedListLbl                : "ลำดับรายการแบบตัวเลข",\r
+NumberedList           : "แทรก/แก้ไข ลำดับรายการแบบตัวเลข",\r
+BulletedListLbl                : "ลำดับรายการแบบสัญลักษณ์",\r
+BulletedList           : "แทรก/แก้ไข ลำดับรายการแบบสัญลักษณ์",\r
+ShowTableBorders       : "แสดงขอบของตาราง",\r
+ShowDetails                    : "แสดงรายละเอียด",\r
+Style                          : "ลักษณะ",\r
+FontFormat                     : "รูปแบบ",\r
+Font                           : "แบบอักษร",\r
+FontSize                       : "ขนาด",\r
+TextColor                      : "สีตัวอักษร",\r
+BGColor                                : "สีพื้นหลัง",\r
+Source                         : "ดูรหัส HTML",\r
+Find                           : "ค้นหา",\r
+Replace                                : "ค้นหาและแทนที่",\r
+SpellCheck                     : "ตรวจการสะกดคำ",\r
+UniversalKeyboard      : "คีย์บอร์ดหลากภาษา",\r
+PageBreakLbl           : "ใส่ตัวแบ่งหน้า Page Break",\r
+PageBreak                      : "แทรกตัวแบ่งหน้า Page Break",\r
+\r
+Form                   : "แบบฟอร์ม",\r
+Checkbox               : "เช็คบ๊อก",\r
+RadioButton            : "เรดิโอบัตตอน",\r
+TextField              : "เท็กซ์ฟิลด์",\r
+Textarea               : "เท็กซ์แอเรีย",\r
+HiddenField            : "ฮิดเดนฟิลด์",\r
+Button                 : "ปุ่ม",\r
+SelectionField : "แถบตัวเลือก",\r
+ImageButton            : "ปุ่มแบบรูปภาพ",\r
+\r
+FitWindow              : "ขยายขนาดตัวอีดิตเตอร์",\r
+\r
+// Context Menu\r
+EditLink                       : "แก้ไข ลิงค์",\r
+CellCM                         : "ช่องตาราง",\r
+RowCM                          : "แถว",\r
+ColumnCM                       : "คอลัมน์",\r
+InsertRow                      : "แทรกแถว",\r
+DeleteRows                     : "ลบแถว",\r
+InsertColumn           : "แทรกสดมน์",\r
+DeleteColumns          : "ลบสดมน์",\r
+InsertCell                     : "แทรกช่อง",\r
+DeleteCells                    : "ลบช่อง",\r
+MergeCells                     : "ผสานช่อง",\r
+SplitCell                      : "แยกช่อง",\r
+TableDelete                    : "ลบตาราง",\r
+CellProperties         : "คุณสมบัติของช่อง",\r
+TableProperties                : "คุณสมบัติของตาราง",\r
+ImageProperties                : "คุณสมบัติของรูปภาพ",\r
+FlashProperties                : "คุณสมบัติของไฟล์ Flash",\r
+\r
+AnchorProp                     : "รายละเอียด Anchor",\r
+ButtonProp                     : "รายละเอียดของ ปุ่ม",\r
+CheckboxProp           : "คุณสมบัติของ เช็คบ๊อก",\r
+HiddenFieldProp                : "คุณสมบัติของ ฮิดเดนฟิลด์",\r
+RadioButtonProp                : "คุณสมบัติของ เรดิโอบัตตอน",\r
+ImageButtonProp                : "คุณสมบัติของ ปุ่มแบบรูปภาพ",\r
+TextFieldProp          : "คุณสมบัติของ เท็กซ์ฟิลด์",\r
+SelectionFieldProp     : "คุณสมบัติของ แถบตัวเลือก",\r
+TextareaProp           : "คุณสมบัติของ เท็กแอเรีย",\r
+FormProp                       : "คุณสมบัติของ แบบฟอร์ม",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",               //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "โปรแกรมกำลังทำงานด้วยเทคโนโลยี XHTML กรุณารอสักครู่...",\r
+Done                           : "โปรแกรมทำงานเสร็จสมบูรณ์",\r
+PasteWordConfirm       : "ข้อมูลที่ท่านต้องการวางลงในแผ่นงาน ถูกจัดรูปแบบจากโปรแกรมเวิร์ด. ท่านต้องการล้างรูปแบบที่มาจากโปรแกรมเวิร์ดหรือไม่?",\r
+NotCompatiblePaste     : "คำสั่งนี้ทำงานในโปรแกรมท่องเว็บ Internet Explorer version รุ่น 5.5 หรือใหม่กว่าเท่านั้น. ท่านต้องการวางตัวอักษรโดยไม่ล้างรูปแบบที่มาจากโปรแกรมเวิร์ดหรือไม่?",\r
+UnknownToolbarItem     : "ไม่สามารถระบุปุ่มเครื่องมือได้ \"%1\"",\r
+UnknownCommand         : "ไม่สามารถระบุชื่อคำสั่งได้ \"%1\"",\r
+NotImplemented         : "ไม่สามารถใช้งานคำสั่งได้",\r
+UnknownToolbarSet      : "ไม่มีการติดตั้งชุดคำสั่งในแถบเครื่องมือ \"%1\" กรุณาติดต่อผู้ดูแลระบบ",\r
+NoActiveX                      : "โปรแกรมท่องอินเตอร์เน็ตของท่านไม่อนุญาติให้อีดิตเตอร์ทำงาน \"Run ActiveX controls and plug-ins\". หากไม่อนุญาติให้ใช้งาน ActiveX controls ท่านจะไม่สามารถใช้งานได้อย่างเต็มประสิทธิภาพ.",\r
+BrowseServerBlocked : "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ กรุณาปิดเครื่องมือป้องกันป๊อบอัพในโปรแกรมท่องอินเตอร์เน็ตของท่านด้วย",\r
+DialogBlocked          : "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ กรุณาปิดเครื่องมือป้องกันป๊อบอัพในโปรแกรมท่องอินเตอร์เน็ตของท่านด้วย",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ตกลง",\r
+DlgBtnCancel           : "ยกเลิก",\r
+DlgBtnClose                    : "ปิด",\r
+DlgBtnBrowseServer     : "เปิดหน้าต่างจัดการไฟล์อัพโหลด",\r
+DlgAdvancedTag         : "ขั้นสูง",\r
+DlgOpOther                     : "<อื่นๆ>",\r
+DlgInfoTab                     : "อินโฟ",\r
+DlgAlertUrl                    : "กรุณาระบุ URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<ไม่ระบุ>",\r
+DlgGenId                       : "ไอดี",\r
+DlgGenLangDir          : "การเขียน-อ่านภาษา",\r
+DlgGenLangDirLtr       : "จากซ้ายไปขวา (LTR)",\r
+DlgGenLangDirRtl       : "จากขวามาซ้าย (RTL)",\r
+DlgGenLangCode         : "รหัสภาษา",\r
+DlgGenAccessKey                : "แอคเซส คีย์",\r
+DlgGenName                     : "ชื่อ",\r
+DlgGenTabIndex         : "ลำดับของ แท็บ",\r
+DlgGenLongDescr                : "คำอธิบายประกอบ URL",\r
+DlgGenClass                    : "คลาสของไฟล์กำหนดลักษณะการแสดงผล",\r
+DlgGenTitle                    : "คำเกริ่นนำ",\r
+DlgGenContType         : "ชนิดของคำเกริ่นนำ",\r
+DlgGenLinkCharset      : "ลิงค์เชื่อมโยงไปยังชุดตัวอักษร",\r
+DlgGenStyle                    : "ลักษณะการแสดงผล",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "คุณสมบัติของ รูปภาพ",\r
+DlgImgInfoTab          : "ข้อมูลของรูปภาพ",\r
+DlgImgBtnUpload                : "อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",\r
+DlgImgURL                      : "ที่อยู่อ้างอิง URL",\r
+DlgImgUpload           : "อัพโหลดไฟล์",\r
+DlgImgAlt                      : "คำประกอบรูปภาพ",\r
+DlgImgWidth                    : "ความกว้าง",\r
+DlgImgHeight           : "ความสูง",\r
+DlgImgLockRatio                : "กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",\r
+DlgBtnResetSize                : "กำหนดรูปเท่าขนาดจริง",\r
+DlgImgBorder           : "ขนาดขอบรูป",\r
+DlgImgHSpace           : "ระยะแนวนอน",\r
+DlgImgVSpace           : "ระยะแนวตั้ง",\r
+DlgImgAlign                    : "การจัดวาง",\r
+DlgImgAlignLeft                : "ชิดซ้าย",\r
+DlgImgAlignAbsBottom: "ชิดด้านล่างสุด",\r
+DlgImgAlignAbsMiddle: "กึ่งกลาง",\r
+DlgImgAlignBaseline    : "ชิดบรรทัด",\r
+DlgImgAlignBottom      : "ชิดด้านล่าง",\r
+DlgImgAlignMiddle      : "กึ่งกลางแนวตั้ง",\r
+DlgImgAlignRight       : "ชิดขวา",\r
+DlgImgAlignTextTop     : "ใต้ตัวอักษร",\r
+DlgImgAlignTop         : "บนสุด",\r
+DlgImgPreview          : "หน้าเอกสารตัวอย่าง",\r
+DlgImgAlertUrl         : "กรุณาระบุที่อยู่อ้างอิงออนไลน์ของไฟล์รูปภาพ (URL)",\r
+DlgImgLinkTab          : "ลิ้งค์",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "คุณสมบัติของไฟล์ Flash",\r
+DlgFlashChkPlay                : "เล่นอัตโนมัติ Auto Play",\r
+DlgFlashChkLoop                : "เล่นวนรอบ Loop",\r
+DlgFlashChkMenu                : "ให้ใช้งานเมนูของ Flash",\r
+DlgFlashScale          : "อัตราส่วน Scale",\r
+DlgFlashScaleAll       : "แสดงให้เห็นทั้งหมด Show all",\r
+DlgFlashScaleNoBorder  : "ไม่แสดงเส้นขอบ No Border",\r
+DlgFlashScaleFit       : "แสดงให้พอดีกับพื้นที่ Exact Fit",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ",\r
+DlgLnkInfoTab          : "รายละเอียด",\r
+DlgLnkTargetTab                : "การเปิดหน้าจอ",\r
+\r
+DlgLnkType                     : "ประเภทของลิงค์",\r
+DlgLnkTypeURL          : "ที่อยู่อ้างอิงออนไลน์ (URL)",\r
+DlgLnkTypeAnchor       : "จุดเชื่อมโยง (Anchor)",\r
+DlgLnkTypeEMail                : "ส่งอีเมล์ (E-Mail)",\r
+DlgLnkProto                    : "โปรโตคอล",\r
+DlgLnkProtoOther       : "<อื่นๆ>",\r
+DlgLnkURL                      : "ที่อยู่อ้างอิงออนไลน์ (URL)",\r
+DlgLnkAnchorSel                : "ระบุข้อมูลของจุดเชื่อมโยง (Anchor)",\r
+DlgLnkAnchorByName     : "ชื่อ",\r
+DlgLnkAnchorById       : "ไอดี",\r
+DlgLnkNoAnchors                : "(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)",               //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "อีเมล์ (E-Mail)",\r
+DlgLnkEMailSubject     : "หัวเรื่อง",\r
+DlgLnkEMailBody                : "ข้อความ",\r
+DlgLnkUpload           : "อัพโหลดไฟล์",\r
+DlgLnkBtnUpload                : "บันทึกไฟล์ไว้บนเซิร์ฟเวอร์",\r
+\r
+DlgLnkTarget           : "การเปิดหน้าลิงค์",\r
+DlgLnkTargetFrame      : "<เปิดในเฟรม>",\r
+DlgLnkTargetPopup      : "<เปิดหน้าจอเล็ก (Pop-up)>",\r
+DlgLnkTargetBlank      : "เปิดหน้าจอใหม่ (_blank)",\r
+DlgLnkTargetParent     : "เปิดในหน้าหลัก (_parent)",\r
+DlgLnkTargetSelf       : "เปิดในหน้าปัจจุบัน (_self)",\r
+DlgLnkTargetTop                : "เปิดในหน้าบนสุด (_top)",\r
+DlgLnkTargetFrameName  : "ชื่อทาร์เก็ตเฟรม",\r
+DlgLnkPopWinName       : "ระบุชื่อหน้าจอเล็ก (Pop-up)",\r
+DlgLnkPopWinFeat       : "คุณสมบัติของหน้าจอเล็ก (Pop-up)",\r
+DlgLnkPopResize                : "ปรับขนาดหน้าจอ",\r
+DlgLnkPopLocation      : "แสดงที่อยู่ของไฟล์",\r
+DlgLnkPopMenu          : "แสดงแถบเมนู",\r
+DlgLnkPopScroll                : "แสดงแถบเลื่อน",\r
+DlgLnkPopStatus                : "แสดงแถบสถานะ",\r
+DlgLnkPopToolbar       : "แสดงแถบเครื่องมือ",\r
+DlgLnkPopFullScrn      : "แสดงเต็มหน้าจอ (IE5.5++ เท่านั้น)",\r
+DlgLnkPopDependent     : "แสดงเต็มหน้าจอ (Netscape)",\r
+DlgLnkPopWidth         : "กว้าง",\r
+DlgLnkPopHeight                : "สูง",\r
+DlgLnkPopLeft          : "พิกัดซ้าย (Left Position)",\r
+DlgLnkPopTop           : "พิกัดบน (Top Position)",\r
+\r
+DlnLnkMsgNoUrl         : "กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",\r
+DlnLnkMsgNoEMail       : "กรุณาระบุอีเมล์ (E-mail)",\r
+DlnLnkMsgNoAnchor      : "กรุณาระบุจุดเชื่อมโยง (Anchor)",\r
+DlnLnkMsgInvPopName    : "ชื่อของหน้าต่างป๊อบอัพ จะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น และต้องไม่มีช่องว่างในชื่อ",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "เลือกสี",\r
+DlgColorBtnClear       : "ล้างค่ารหัสสี",\r
+DlgColorHighlight      : "ตัวอย่างสี",\r
+DlgColorSelected       : "สีที่เลือก",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "แทรกสัญลักษณ์สื่ออารมณ์",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "แทรกตัวอักษรพิเศษ",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "คุณสมบัติของ ตาราง",\r
+DlgTableRows           : "แถว",\r
+DlgTableColumns                : "สดมน์",\r
+DlgTableBorder         : "ขนาดเส้นขอบ",\r
+DlgTableAlign          : "การจัดตำแหน่ง",\r
+DlgTableAlignNotSet    : "<ไม่ระบุ>",\r
+DlgTableAlignLeft      : "ชิดซ้าย",\r
+DlgTableAlignCenter    : "กึ่งกลาง",\r
+DlgTableAlignRight     : "ชิดขวา",\r
+DlgTableWidth          : "กว้าง",\r
+DlgTableWidthPx                : "จุดสี",\r
+DlgTableWidthPc                : "เปอร์เซ็น",\r
+DlgTableHeight         : "สูง",\r
+DlgTableCellSpace      : "ระยะแนวนอนน",\r
+DlgTableCellPad                : "ระยะแนวตั้ง",\r
+DlgTableCaption                : "หัวเรื่องของตาราง",\r
+DlgTableSummary                : "สรุปความ",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "คุณสมบัติของ ช่อง",\r
+DlgCellWidth           : "กว้าง",\r
+DlgCellWidthPx         : "จุดสี",\r
+DlgCellWidthPc         : "เปอร์เซ็น",\r
+DlgCellHeight          : "สูง",\r
+DlgCellWordWrap                : "ตัดบรรทัดอัตโนมัติ",\r
+DlgCellWordWrapNotSet  : "<ไม่ระบุ>",\r
+DlgCellWordWrapYes     : "ใ่ช่",\r
+DlgCellWordWrapNo      : "ไม่",\r
+DlgCellHorAlign                : "การจัดวางแนวนอน",\r
+DlgCellHorAlignNotSet  : "<ไม่ระบุ>",\r
+DlgCellHorAlignLeft    : "ชิดซ้าย",\r
+DlgCellHorAlignCenter  : "กึ่งกลาง",\r
+DlgCellHorAlignRight: "ชิดขวา",\r
+DlgCellVerAlign                : "การจัดวางแนวตั้ง",\r
+DlgCellVerAlignNotSet  : "<ไม่ระบุ>",\r
+DlgCellVerAlignTop     : "บนสุด",\r
+DlgCellVerAlignMiddle  : "กึ่งกลาง",\r
+DlgCellVerAlignBottom  : "ล่างสุด",\r
+DlgCellVerAlignBaseline        : "อิงบรรทัด",\r
+DlgCellRowSpan         : "จำนวนแถวที่คร่อมกัน",\r
+DlgCellCollSpan                : "จำนวนสดมน์ที่คร่อมกัน",\r
+DlgCellBackColor       : "สีพื้นหลัง",\r
+DlgCellBorderColor     : "สีเส้นขอบ",\r
+DlgCellBtnSelect       : "เลือก..",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "ค้นหา",\r
+DlgFindFindBtn         : "ค้นหา",\r
+DlgFindNotFoundMsg     : "ไม่พบคำที่ค้นหา.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "ค้นหาและแทนที่",\r
+DlgReplaceFindLbl              : "ค้นหาคำว่า:",\r
+DlgReplaceReplaceLbl   : "แทนที่ด้วย:",\r
+DlgReplaceCaseChk              : "ตัวโหญ่-เล็ก ต้องตรงกัน",\r
+DlgReplaceReplaceBtn   : "แทนที่",\r
+DlgReplaceReplAllBtn   : "แทนที่ทั้งหมดที่พบ",\r
+DlgReplaceWordChk              : "ต้องตรงกันทุกคำ",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว X พร้อมกัน).",\r
+PasteErrorCopy : "ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว C พร้อมกัน).",\r
+\r
+PasteAsText            : "วางแบบตัวอักษรธรรมดา",\r
+PasteFromWord  : "วางแบบตัวอักษรจากโปรแกรมเวิร์ด",\r
+\r
+DlgPasteMsg2   : "กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "ไม่สนใจ Font Face definitions",\r
+DlgPasteRemoveStyles   : "ลบ Styles definitions",\r
+DlgPasteCleanBox               : "ล้างข้อมูลใน Box",\r
+\r
+// Color Picker\r
+ColorAutomatic : "สีอัตโนมัติ",\r
+ColorMoreColors        : "เลือกสีอื่นๆ...",\r
+\r
+// Document Properties\r
+DocProps               : "คุณสมบัติของเอกสาร",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "คุณสมบัติของ Anchor",\r
+DlgAnchorName          : "ชื่อ Anchor",\r
+DlgAnchorErrorName     : "กรุณาระบุชื่อของ Anchor",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "ไม่พบในดิกชันนารี",\r
+DlgSpellChangeTo               : "แก้ไขเป็น",\r
+DlgSpellBtnIgnore              : "ยกเว้น",\r
+DlgSpellBtnIgnoreAll   : "ยกเว้นทั้งหมด",\r
+DlgSpellBtnReplace             : "แทนที่",\r
+DlgSpellBtnReplaceAll  : "แทนที่ทั้งหมด",\r
+DlgSpellBtnUndo                        : "ยกเลิก",\r
+DlgSpellNoSuggestions  : "- ไม่มีคำแนะนำใดๆ -",\r
+DlgSpellProgress               : "กำลังตรวจสอบคำสะกด...",\r
+DlgSpellNoMispell              : "ตรวจสอบคำสะกดเสร็จสิ้น: ไม่พบคำสะกดผิด",\r
+DlgSpellNoChanges              : "ตรวจสอบคำสะกดเสร็จสิ้น: ไม่มีการแก้คำใดๆ",\r
+DlgSpellOneChange              : "ตรวจสอบคำสะกดเสร็จสิ้น: แก้ไข1คำ",\r
+DlgSpellManyChanges            : "ตรวจสอบคำสะกดเสร็จสิ้น:: แก้ไข %1 คำ",\r
+\r
+IeSpellDownload                        : "ไม่ได้ติดตั้งระบบตรวจสอบคำสะกด. ต้องการติดตั้งไหมครับ?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "ข้อความ (ค่าตัวแปร)",\r
+DlgButtonType          : "ข้อความ",\r
+DlgButtonTypeBtn       : "Button",\r
+DlgButtonTypeSbm       : "Submit",\r
+DlgButtonTypeRst       : "Reset",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "ชื่อ",\r
+DlgCheckboxValue       : "ค่าตัวแปร",\r
+DlgCheckboxSelected    : "เลือกเป็นค่าเริ่มต้น",\r
+\r
+// Form Dialog\r
+DlgFormName            : "ชื่อ",\r
+DlgFormAction  : "แอคชั่น",\r
+DlgFormMethod  : "เมธอด",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "ชื่อ",\r
+DlgSelectValue         : "ค่าตัวแปร",\r
+DlgSelectSize          : "ขนาด",\r
+DlgSelectLines         : "บรรทัด",\r
+DlgSelectChkMulti      : "เลือกหลายค่าได้",\r
+DlgSelectOpAvail       : "รายการตัวเลือก",\r
+DlgSelectOpText                : "ข้อความ",\r
+DlgSelectOpValue       : "ค่าตัวแปร",\r
+DlgSelectBtnAdd                : "เพิ่ม",\r
+DlgSelectBtnModify     : "แก้ไข",\r
+DlgSelectBtnUp         : "บน",\r
+DlgSelectBtnDown       : "ล่าง",\r
+DlgSelectBtnSetValue : "เลือกเป็นค่าเริ่มต้น",\r
+DlgSelectBtnDelete     : "ลบ",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "ชื่อ",\r
+DlgTextareaCols        : "สดมภ์",\r
+DlgTextareaRows        : "แถว",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "ชื่อ",\r
+DlgTextValue           : "ค่าตัวแปร",\r
+DlgTextCharWidth       : "ความกว้าง",\r
+DlgTextMaxChars                : "จำนวนตัวอักษรสูงสุด",\r
+DlgTextType                    : "ชนิด",\r
+DlgTextTypeText                : "ข้อความ",\r
+DlgTextTypePass                : "รหัสผ่าน",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "ชื่อ",\r
+DlgHiddenValue : "ค่าตัวแปร",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "คุณสมบัติของ บูลเล็ตลิสต์",\r
+NumberedListProp       : "คุณสมบัติของ นัมเบอร์ลิสต์",\r
+DlgLstStart                    : "Start",      //MISSING\r
+DlgLstType                     : "ชนิด",\r
+DlgLstTypeCircle       : "รูปวงกลม",\r
+DlgLstTypeDisc         : "Disc",       //MISSING\r
+DlgLstTypeSquare       : "รูปสี่เหลี่ยม",\r
+DlgLstTypeNumbers      : "หมายเลข (1, 2, 3)",\r
+DlgLstTypeLCase                : "ตัวพิมพ์เล็ก (a, b, c)",\r
+DlgLstTypeUCase                : "ตัวพิมพ์ใหญ่ (A, B, C)",\r
+DlgLstTypeSRoman       : "เลขโรมันพิมพ์เล็ก (i, ii, iii)",\r
+DlgLstTypeLRoman       : "เลขโรมันพิมพ์ใหญ่ (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "ลักษณะทั่วไปของเอกสาร",\r
+DlgDocBackTab          : "พื้นหลัง",\r
+DlgDocColorsTab                : "สีและระยะขอบ",\r
+DlgDocMetaTab          : "ข้อมูลสำหรับเสิร์ชเอนจิ้น",\r
+\r
+DlgDocPageTitle                : "ชื่อไตเติ้ล",\r
+DlgDocLangDir          : "การอ่านภาษา",\r
+DlgDocLangDirLTR       : "จากซ้ายไปขวา (LTR)",\r
+DlgDocLangDirRTL       : "จากขวาไปซ้าย (RTL)",\r
+DlgDocLangCode         : "รหัสภาษา",\r
+DlgDocCharSet          : "ชุดตัวอักษร",\r
+DlgDocCharSetCE                : "Central European",\r
+DlgDocCharSetCT                : "Chinese Traditional (Big5)",\r
+DlgDocCharSetCR                : "Cyrillic",\r
+DlgDocCharSetGR                : "Greek",\r
+DlgDocCharSetJP                : "Japanese",\r
+DlgDocCharSetKR                : "Korean",\r
+DlgDocCharSetTR                : "Turkish",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Western European",\r
+DlgDocCharSetOther     : "ชุดตัวอักษรอื่นๆ",\r
+\r
+DlgDocDocType          : "ประเภทของเอกสาร",\r
+DlgDocDocTypeOther     : "ประเภทเอกสารอื่นๆ",\r
+DlgDocIncXHTML         : "รวมเอา  XHTML Declarations ไว้ด้วย",\r
+DlgDocBgColor          : "สีพื้นหลัง",\r
+DlgDocBgImage          : "ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",\r
+DlgDocBgNoScroll       : "พื้นหลังแบบไม่มีแถบเลื่อน",\r
+DlgDocCText                    : "ข้อความ",\r
+DlgDocCLink                    : "ลิงค์",\r
+DlgDocCVisited         : "ลิงค์ที่เคยคลิ้กแล้ว Visited Link",\r
+DlgDocCActive          : "ลิงค์ที่กำลังคลิ้ก Active Link",\r
+DlgDocMargins          : "ระยะขอบของหน้าเอกสาร",\r
+DlgDocMaTop                    : "ด้านบน",\r
+DlgDocMaLeft           : "ด้านซ้าย",\r
+DlgDocMaRight          : "ด้านขวา",\r
+DlgDocMaBottom         : "ด้านล่าง",\r
+DlgDocMeIndex          : "คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",\r
+DlgDocMeDescr          : "ประโยคอธิบายเกี่ยวกับเอกสาร",\r
+DlgDocMeAuthor         : "ผู้สร้างเอกสาร",\r
+DlgDocMeCopy           : "สงวนลิขสิทธิ์",\r
+DlgDocPreview          : "ตัวอย่างหน้าเอกสาร",\r
+\r
+// Templates Dialog\r
+Templates                      : "เทมเพลต",\r
+DlgTemplatesTitle      : "เทมเพลตของส่วนเนื้อหาเว็บไซต์",\r
+DlgTemplatesSelMsg     : "กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์<br />(เนื้อหาส่วนนี้จะหายไป):",\r
+DlgTemplatesLoading    : "กำลังโหลดรายการเทมเพลตทั้งหมด...",\r
+DlgTemplatesNoTpl      : "(ยังไม่มีการกำหนดเทมเพลต)",\r
+DlgTemplatesReplace    : "แทนที่เนื้อหาเว็บไซต์ที่เลือก",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "เกี่ยวกับโปรแกรม",\r
+DlgAboutBrowserInfoTab : "โปรแกรมท่องเว็บที่ท่านใช้",\r
+DlgAboutLicenseTab     : "ลิขสิทธิ์",\r
+DlgAboutVersion                : "รุ่น",\r
+DlgAboutInfo           : "For further information go to"       //MISSING\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/tr.js b/httemplate/elements/fckeditor/editor/lang/tr.js
new file mode 100644 (file)
index 0000000..53b371e
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Turkish language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Araç Çubuğunu Kapat",\r
+ToolbarExpand          : "Araç Çubuğunu Aç",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Kaydet",\r
+NewPage                                : "Yeni Sayfa",\r
+Preview                                : "Ön İzleme",\r
+Cut                                    : "Kes",\r
+Copy                           : "Kopyala",\r
+Paste                          : "Yapıştır",\r
+PasteText                      : "Düzyazı Olarak Yapıştır",\r
+PasteWord                      : "Word'den Yapıştır",\r
+Print                          : "Yazdır",\r
+SelectAll                      : "Tümünü Seç",\r
+RemoveFormat           : "Biçimi Kaldır",\r
+InsertLinkLbl          : "Köprü",\r
+InsertLink                     : "Köprü Ekle/Düzenle",\r
+RemoveLink                     : "Köprü Kaldır",\r
+Anchor                         : "Çapa Ekle/Düzenle",\r
+InsertImageLbl         : "Resim",\r
+InsertImage                    : "Resim Ekle/Düzenle",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Flash Ekle/Düzenle",\r
+InsertTableLbl         : "Tablo",\r
+InsertTable                    : "Tablo Ekle/Düzenle",\r
+InsertLineLbl          : "Satır",\r
+InsertLine                     : "Yatay Satır Ekle",\r
+InsertSpecialCharLbl: "Özel Karakter",\r
+InsertSpecialChar      : "Özel Karakter Ekle",\r
+InsertSmileyLbl                : "İfade",\r
+InsertSmiley           : "İfade Ekle",\r
+About                          : "FCKeditor Hakkında",\r
+Bold                           : "Kalın",\r
+Italic                         : "İtalik",\r
+Underline                      : "Altı Çizgili",\r
+StrikeThrough          : "Üstü Çizgili",\r
+Subscript                      : "Alt Simge",\r
+Superscript                    : "Üst Simge",\r
+LeftJustify                    : "Sola Dayalı",\r
+CenterJustify          : "Ortalanmış",\r
+RightJustify           : "Sağa Dayalı",\r
+BlockJustify           : "İki Kenara Yaslanmış",\r
+DecreaseIndent         : "Sekme Azalt",\r
+IncreaseIndent         : "Sekme Arttır",\r
+Undo                           : "Geri Al",\r
+Redo                           : "Tekrarla",\r
+NumberedListLbl                : "Numaralı Liste",\r
+NumberedList           : "Numaralı Liste Ekle/Kaldır",\r
+BulletedListLbl                : "Simgeli Liste",\r
+BulletedList           : "Simgeli Liste Ekle/Kaldır",\r
+ShowTableBorders       : "Tablo Kenarlarını Göster",\r
+ShowDetails                    : "Detayları Göster",\r
+Style                          : "Biçem",\r
+FontFormat                     : "Biçim",\r
+Font                           : "Yazı Türü",\r
+FontSize                       : "Boyut",\r
+TextColor                      : "Yazı Rengi",\r
+BGColor                                : "Arka Renk",\r
+Source                         : "Kaynak",\r
+Find                           : "Bul",\r
+Replace                                : "Değiştir",\r
+SpellCheck                     : "Yazım Denetimi",\r
+UniversalKeyboard      : "Evrensel Klavye",\r
+PageBreakLbl           : "Sayfa sonu",\r
+PageBreak                      : "Sayfa Sonu Ekle",\r
+\r
+Form                   : "Form",\r
+Checkbox               : "Onay Kutusu",\r
+RadioButton            : "Seçenek Düğmesi",\r
+TextField              : "Metin Girişi",\r
+Textarea               : "Çok Satırlı Metin",\r
+HiddenField            : "Gizli Veri",\r
+Button                 : "Düğme",\r
+SelectionField : "Seçim Menüsü",\r
+ImageButton            : "Resimli Düğme",\r
+\r
+FitWindow              : "Düzenleyici boyutunu büyüt",\r
+\r
+// Context Menu\r
+EditLink                       : "Köprü Düzenle",\r
+CellCM                         : "Hücre",\r
+RowCM                          : "Satır",\r
+ColumnCM                       : "Sütun",\r
+InsertRow                      : "Satır Ekle",\r
+DeleteRows                     : "Satır Sil",\r
+InsertColumn           : "Sütun Ekle",\r
+DeleteColumns          : "Sütun Sil",\r
+InsertCell                     : "Hücre Ekle",\r
+DeleteCells                    : "Hücre Sil",\r
+MergeCells                     : "Hücreleri Birleştir",\r
+SplitCell                      : "Hücre Böl",\r
+TableDelete                    : "Tabloyu Sil",\r
+CellProperties         : "Hücre Özellikleri",\r
+TableProperties                : "Tablo Özellikleri",\r
+ImageProperties                : "Resim Özellikleri",\r
+FlashProperties                : "Flash Özellikleri",\r
+\r
+AnchorProp                     : "Çapa Özellikleri",\r
+ButtonProp                     : "Düğme Özellikleri",\r
+CheckboxProp           : "Onay Kutusu Özellikleri",\r
+HiddenFieldProp                : "Gizli Veri Özellikleri",\r
+RadioButtonProp                : "Seçenek Düğmesi Özellikleri",\r
+ImageButtonProp                : "Resimli Düğme Özellikleri",\r
+TextFieldProp          : "Metin Girişi Özellikleri",\r
+SelectionFieldProp     : "Seçim Menüsü Özellikleri",\r
+TextareaProp           : "Çok Satırlı Metin Özellikleri",\r
+FormProp                       : "Form Özellikleri",\r
+\r
+FontFormats                    : "Normal;Biçimli;Adres;Başlık 1;Başlık 2;Başlık 3;Başlık 4;Başlık 5;Başlık 6;Paragraf (DIV)",             //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "XHTML işleniyor. Lütfen bekleyin...",\r
+Done                           : "Bitti",\r
+PasteWordConfirm       : "Yapıştırdığınız yazı Word'den gelmişe benziyor. Yapıştırmadan önce gereksiz eklentileri silmek ister misiniz?",\r
+NotCompatiblePaste     : "Bu komut Internet Explorer 5.5 ve ileriki sürümleri için mevcuttur. Temizlenmeden yapıştırılmasını ister misiniz ?",\r
+UnknownToolbarItem     : "Bilinmeyen araç çubugu öğesi \"%1\"",\r
+UnknownCommand         : "Bilinmeyen komut \"%1\"",\r
+NotImplemented         : "Komut uyarlanamadı",\r
+UnknownToolbarSet      : "\"%1\" araç çubuğu öğesi mevcut değil",\r
+NoActiveX                      : "Kullandığınız tarayıcının güvenlik ayarları bazı özelliklerin kullanılmasını engelliyor. Bu özelliklerin çalışması için \"Run ActiveX controls and plug-ins (Activex ve eklentileri çalıştır)\" seçeneğinin aktif yapılması gerekiyor. Kullanılamayan eklentiler ve hatalar konusunda daha fazla bilgi sahibi olun.",\r
+BrowseServerBlocked : "Kaynak tarayıcısı açılamadı. Tüm \"popup blocker\" programlarının devre dışı olduğundan emin olun. (Yahoo toolbar, Msn toolbar, Google toolbar gibi)",\r
+DialogBlocked          : "Diyalog açmak mümkün olmadı. Tüm \"Popup Blocker\" programlarının devre dışı olduğundan emin olun.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Tamam",\r
+DlgBtnCancel           : "İptal",\r
+DlgBtnClose                    : "Kapat",\r
+DlgBtnBrowseServer     : "Sunucuyu Gez",\r
+DlgAdvancedTag         : "Gelişmiş",\r
+DlgOpOther                     : "<Diğer>",\r
+DlgInfoTab                     : "Bilgi",\r
+DlgAlertUrl                    : "Lütfen URL girin",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<tanımlanmamış>",\r
+DlgGenId                       : "Kimlik",\r
+DlgGenLangDir          : "Dil Yönü",\r
+DlgGenLangDirLtr       : "Soldan Sağa (LTR)",\r
+DlgGenLangDirRtl       : "Sağdan Sola (RTL)",\r
+DlgGenLangCode         : "Dil Kodlaması",\r
+DlgGenAccessKey                : "Erişim Tuşu",\r
+DlgGenName                     : "Ad",\r
+DlgGenTabIndex         : "Sekme İndeksi",\r
+DlgGenLongDescr                : "Uzun Tanımlı URL",\r
+DlgGenClass                    : "Biçem Sayfası Sınıfları",\r
+DlgGenTitle                    : "Danışma Başlığı",\r
+DlgGenContType         : "Danışma İçerik Türü",\r
+DlgGenLinkCharset      : "Bağlı Kaynak Karakter Gurubu",\r
+DlgGenStyle                    : "Biçem",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Resim Özellikleri",\r
+DlgImgInfoTab          : "Resim Bilgisi",\r
+DlgImgBtnUpload                : "Sunucuya Yolla",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Karşıya Yükle",\r
+DlgImgAlt                      : "Alternatif Yazı",\r
+DlgImgWidth                    : "Genişlik",\r
+DlgImgHeight           : "Yükseklik",\r
+DlgImgLockRatio                : "Oranı Kilitle",\r
+DlgBtnResetSize                : "Boyutu Başa Döndür",\r
+DlgImgBorder           : "Kenar",\r
+DlgImgHSpace           : "Yatay Boşluk",\r
+DlgImgVSpace           : "Dikey Boşluk",\r
+DlgImgAlign                    : "Hizalama",\r
+DlgImgAlignLeft                : "Sol",\r
+DlgImgAlignAbsBottom: "Tam Altı",\r
+DlgImgAlignAbsMiddle: "Tam Ortası",\r
+DlgImgAlignBaseline    : "Taban Çizgisi",\r
+DlgImgAlignBottom      : "Alt",\r
+DlgImgAlignMiddle      : "Orta",\r
+DlgImgAlignRight       : "Sağ",\r
+DlgImgAlignTextTop     : "Yazı Tepeye",\r
+DlgImgAlignTop         : "Tepe",\r
+DlgImgPreview          : "Ön İzleme",\r
+DlgImgAlertUrl         : "Lütfen resmin URL'sini yazınız",\r
+DlgImgLinkTab          : "Köprü",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash Özellikleri",\r
+DlgFlashChkPlay                : "Otomatik Oynat",\r
+DlgFlashChkLoop                : "Döngü",\r
+DlgFlashChkMenu                : "Flash Menüsünü Kullan",\r
+DlgFlashScale          : "Boyutlandır",\r
+DlgFlashScaleAll       : "Hepsini Göster",\r
+DlgFlashScaleNoBorder  : "Kenar Yok",\r
+DlgFlashScaleFit       : "Tam Sığdır",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Köprü",\r
+DlgLnkInfoTab          : "Köprü Bilgisi",\r
+DlgLnkTargetTab                : "Hedef",\r
+\r
+DlgLnkType                     : "Köprü Türü",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Bu sayfada çapa",\r
+DlgLnkTypeEMail                : "E-Posta",\r
+DlgLnkProto                    : "Protokol",\r
+DlgLnkProtoOther       : "<diğer>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Çapa Seç",\r
+DlgLnkAnchorByName     : "Çapa Adı ile",\r
+DlgLnkAnchorById       : "Eleman Kimlik Numarası ile",\r
+DlgLnkNoAnchors                : "<Bu belgede hiç çapa yok>",                //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "E-Posta Adresi",\r
+DlgLnkEMailSubject     : "İleti Konusu",\r
+DlgLnkEMailBody                : "İleti Gövdesi",\r
+DlgLnkUpload           : "Karşıya Yükle",\r
+DlgLnkBtnUpload                : "Sunucuya Gönder",\r
+\r
+DlgLnkTarget           : "Hedef",\r
+DlgLnkTargetFrame      : "<çerçeve>",\r
+DlgLnkTargetPopup      : "<yeni açılan pencere>",\r
+DlgLnkTargetBlank      : "Yeni Pencere(_blank)",\r
+DlgLnkTargetParent     : "Anne Pencere (_parent)",\r
+DlgLnkTargetSelf       : "Kendi Penceresi (_self)",\r
+DlgLnkTargetTop                : "En Üst Pencere (_top)",\r
+DlgLnkTargetFrameName  : "Hedef Çerçeve Adı",\r
+DlgLnkPopWinName       : "Yeni Açılan Pencere Adı",\r
+DlgLnkPopWinFeat       : "Yeni Açılan Pencere Özellikleri",\r
+DlgLnkPopResize                : "Boyutlandırılabilir",\r
+DlgLnkPopLocation      : "Yer Çubuğu",\r
+DlgLnkPopMenu          : "Menü Çubuğu",\r
+DlgLnkPopScroll                : "Kaydırma Çubukları",\r
+DlgLnkPopStatus                : "Durum Çubuğu",\r
+DlgLnkPopToolbar       : "Araç Çubuğu",\r
+DlgLnkPopFullScrn      : "Tam Ekran (IE)",\r
+DlgLnkPopDependent     : "Bağımlı (Netscape)",\r
+DlgLnkPopWidth         : "Genişlik",\r
+DlgLnkPopHeight                : "Yükseklik",\r
+DlgLnkPopLeft          : "Sola Göre Konum",\r
+DlgLnkPopTop           : "Yukarıya Göre Konum",\r
+\r
+DlnLnkMsgNoUrl         : "Lütfen köprü URL'sini yazın",\r
+DlnLnkMsgNoEMail       : "Lütfen E-posta adresini yazın",\r
+DlnLnkMsgNoAnchor      : "Lütfen bir çapa seçin",\r
+DlnLnkMsgInvPopName    : "Açılır pencere adı abecesel bir karakterle başlamalı ve boşluk içermemelidir",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Renk Seç",\r
+DlgColorBtnClear       : "Temizle",\r
+DlgColorHighlight      : "Vurgula",\r
+DlgColorSelected       : "Seçilmiş",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "İfade Ekle",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Özel Karakter Seç",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Tablo Özellikleri",\r
+DlgTableRows           : "Satırlar",\r
+DlgTableColumns                : "Sütunlar",\r
+DlgTableBorder         : "Kenar Kalınlığı",\r
+DlgTableAlign          : "Hizalama",\r
+DlgTableAlignNotSet    : "<Tanımlanmamış>",\r
+DlgTableAlignLeft      : "Sol",\r
+DlgTableAlignCenter    : "Merkez",\r
+DlgTableAlignRight     : "Sağ",\r
+DlgTableWidth          : "Genişlik",\r
+DlgTableWidthPx                : "piksel",\r
+DlgTableWidthPc                : "yüzde",\r
+DlgTableHeight         : "Yükseklik",\r
+DlgTableCellSpace      : "Izgara kalınlığı",\r
+DlgTableCellPad                : "Izgara yazı arası",\r
+DlgTableCaption                : "Başlık",\r
+DlgTableSummary                : "Özet",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Hücre Özellikleri",\r
+DlgCellWidth           : "Genişlik",\r
+DlgCellWidthPx         : "piksel",\r
+DlgCellWidthPc         : "yüzde",\r
+DlgCellHeight          : "Yükseklik",\r
+DlgCellWordWrap                : "Sözcük Kaydır",\r
+DlgCellWordWrapNotSet  : "<Tanımlanmamış>",\r
+DlgCellWordWrapYes     : "Evet",\r
+DlgCellWordWrapNo      : "Hayır",\r
+DlgCellHorAlign                : "Yatay Hizalama",\r
+DlgCellHorAlignNotSet  : "<Tanımlanmamış>",\r
+DlgCellHorAlignLeft    : "Sol",\r
+DlgCellHorAlignCenter  : "Merkez",\r
+DlgCellHorAlignRight: "Sağ",\r
+DlgCellVerAlign                : "Dikey Hizalama",\r
+DlgCellVerAlignNotSet  : "<Tanımlanmamış>",\r
+DlgCellVerAlignTop     : "Tepe",\r
+DlgCellVerAlignMiddle  : "Orta",\r
+DlgCellVerAlignBottom  : "Alt",\r
+DlgCellVerAlignBaseline        : "Taban Çizgisi",\r
+DlgCellRowSpan         : "Satır Kapla",\r
+DlgCellCollSpan                : "Sütun Kapla",\r
+DlgCellBackColor       : "Arka Plan Rengi",\r
+DlgCellBorderColor     : "Kenar Rengi",\r
+DlgCellBtnSelect       : "Seç...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Bul",\r
+DlgFindFindBtn         : "Bul",\r
+DlgFindNotFoundMsg     : "Belirtilen yazı bulunamadı.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Değiştir",\r
+DlgReplaceFindLbl              : "Aranan:",\r
+DlgReplaceReplaceLbl   : "Bununla değiştir:",\r
+DlgReplaceCaseChk              : "Büyük/küçük harf duyarlı",\r
+DlgReplaceReplaceBtn   : "Değiştir",\r
+DlgReplaceReplAllBtn   : "Tümünü Değiştir",\r
+DlgReplaceWordChk              : "Kelimenin tamamı uysun",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl+X) tuşlarını kullanın.",\r
+PasteErrorCopy : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl+C) tuşlarını kullanın.",\r
+\r
+PasteAsText            : "Düz Metin Olarak Yapıştır",\r
+PasteFromWord  : "Word'den yapıştır",\r
+\r
+DlgPasteMsg2   : "Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Yazı Tipi tanımlarını yoksay",\r
+DlgPasteRemoveStyles   : "Biçem Tanımlarını çıkar",\r
+DlgPasteCleanBox               : "Temizlik Kutusu",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Otomatik",\r
+ColorMoreColors        : "Diğer renkler...",\r
+\r
+// Document Properties\r
+DocProps               : "Belge Özellikleri",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Çapa Özellikleri",\r
+DlgAnchorName          : "Çapa Adı",\r
+DlgAnchorErrorName     : "Lütfen çapa için ad giriniz",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Sözlükte Yok",\r
+DlgSpellChangeTo               : "Şuna değiştir:",\r
+DlgSpellBtnIgnore              : "Yoksay",\r
+DlgSpellBtnIgnoreAll   : "Tümünü Yoksay",\r
+DlgSpellBtnReplace             : "Değiştir",\r
+DlgSpellBtnReplaceAll  : "Tümünü Değiştir",\r
+DlgSpellBtnUndo                        : "Geri Al",\r
+DlgSpellNoSuggestions  : "- Öneri Yok -",\r
+DlgSpellProgress               : "Yazım denetimi işlemde...",\r
+DlgSpellNoMispell              : "Yazım denetimi tamamlandı: Yanlış yazıma rastlanmadı",\r
+DlgSpellNoChanges              : "Yazım denetimi tamamlandı: Hiçbir kelime değiştirilmedi",\r
+DlgSpellOneChange              : "Yazım denetimi tamamlandı: Bir kelime değiştirildi",\r
+DlgSpellManyChanges            : "Yazım denetimi tamamlandı: %1 kelime değiştirildi",\r
+\r
+IeSpellDownload                        : "Yazım denetimi yüklenmemiş. Şimdi yüklemek ister misiniz?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Metin (Değer)",\r
+DlgButtonType          : "Tip",\r
+DlgButtonTypeBtn       : "Düğme",\r
+DlgButtonTypeSbm       : "Gönder",\r
+DlgButtonTypeRst       : "Sıfırla",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Ad",\r
+DlgCheckboxValue       : "Değer",\r
+DlgCheckboxSelected    : "Seçili",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Ad",\r
+DlgFormAction  : "İşlem",\r
+DlgFormMethod  : "Yöntem",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Ad",\r
+DlgSelectValue         : "Değer",\r
+DlgSelectSize          : "Boyut",\r
+DlgSelectLines         : "satır",\r
+DlgSelectChkMulti      : "Çoklu seçime izin ver",\r
+DlgSelectOpAvail       : "Mevcut Seçenekler",\r
+DlgSelectOpText                : "Metin",\r
+DlgSelectOpValue       : "Değer",\r
+DlgSelectBtnAdd                : "Ekle",\r
+DlgSelectBtnModify     : "Düzenle",\r
+DlgSelectBtnUp         : "Yukarı",\r
+DlgSelectBtnDown       : "Aşağı",\r
+DlgSelectBtnSetValue : "Seçili değer olarak ata",\r
+DlgSelectBtnDelete     : "Sil",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Ad",\r
+DlgTextareaCols        : "Sütunlar",\r
+DlgTextareaRows        : "Satırlar",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Ad",\r
+DlgTextValue           : "Değer",\r
+DlgTextCharWidth       : "Karakter Genişliği",\r
+DlgTextMaxChars                : "En Fazla Karakter",\r
+DlgTextType                    : "Tür",\r
+DlgTextTypeText                : "Metin",\r
+DlgTextTypePass                : "Parola",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Ad",\r
+DlgHiddenValue : "Değer",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Simgeli Liste Özellikleri",\r
+NumberedListProp       : "Numaralı Liste Özellikleri",\r
+DlgLstStart                    : "Başlangıç",\r
+DlgLstType                     : "Tip",\r
+DlgLstTypeCircle       : "Çember",\r
+DlgLstTypeDisc         : "Disk",\r
+DlgLstTypeSquare       : "Kare",\r
+DlgLstTypeNumbers      : "Sayılar (1, 2, 3)",\r
+DlgLstTypeLCase                : "Küçük Harfler (a, b, c)",\r
+DlgLstTypeUCase                : "Büyük Harfler (A, B, C)",\r
+DlgLstTypeSRoman       : "Küçük Romen Rakamları (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Büyük Romen Rakamları (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Genel",\r
+DlgDocBackTab          : "Arka Plan",\r
+DlgDocColorsTab                : "Renkler ve Kenar Boşlukları",\r
+DlgDocMetaTab          : "Tanım Bilgisi (Meta)",\r
+\r
+DlgDocPageTitle                : "Sayfa Başlığı",\r
+DlgDocLangDir          : "Dil Yönü",\r
+DlgDocLangDirLTR       : "Soldan Sağa (LTR)",\r
+DlgDocLangDirRTL       : "Sağdan Sola (RTL)",\r
+DlgDocLangCode         : "Dil Kodu",\r
+DlgDocCharSet          : "Karakter Kümesi Kodlaması",\r
+DlgDocCharSetCE                : "Orta Avrupa",\r
+DlgDocCharSetCT                : "Geleneksel Çince (Big5)",\r
+DlgDocCharSetCR                : "Kiril",\r
+DlgDocCharSetGR                : "Yunanca",\r
+DlgDocCharSetJP                : "Japonca",\r
+DlgDocCharSetKR                : "Korece",\r
+DlgDocCharSetTR                : "Türkçe",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Batı Avrupa",\r
+DlgDocCharSetOther     : "Diğer Karakter Kümesi Kodlaması",\r
+\r
+DlgDocDocType          : "Belge Türü Başlığı",\r
+DlgDocDocTypeOther     : "Diğer Belge Türü Başlığı",\r
+DlgDocIncXHTML         : "XHTML Bildirimlerini Dahil Et",\r
+DlgDocBgColor          : "Arka Plan Rengi",\r
+DlgDocBgImage          : "Arka Plan Resim URLsi",\r
+DlgDocBgNoScroll       : "Sabit Arka Plan",\r
+DlgDocCText                    : "Metin",\r
+DlgDocCLink                    : "Köprü",\r
+DlgDocCVisited         : "Ziyaret Edilmiş Köprü",\r
+DlgDocCActive          : "Etkin Köprü",\r
+DlgDocMargins          : "Kenar Boşlukları",\r
+DlgDocMaTop                    : "Tepe",\r
+DlgDocMaLeft           : "Sol",\r
+DlgDocMaRight          : "Sağ",\r
+DlgDocMaBottom         : "Alt",\r
+DlgDocMeIndex          : "Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",\r
+DlgDocMeDescr          : "Belge Tanımı",\r
+DlgDocMeAuthor         : "Yazar",\r
+DlgDocMeCopy           : "Telif",\r
+DlgDocPreview          : "Ön İzleme",\r
+\r
+// Templates Dialog\r
+Templates                      : "Şablonlar",\r
+DlgTemplatesTitle      : "İçerik Şablonları",\r
+DlgTemplatesSelMsg     : "Düzenleyicide açmak için lütfen bir şablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):",\r
+DlgTemplatesLoading    : "Şablon listesi yüklenmekte. Lütfen bekleyiniz...",\r
+DlgTemplatesNoTpl      : "(Belirli bir şablon seçilmedi)",\r
+DlgTemplatesReplace    : "Mevcut içerik ile değiştir",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Hakkında",\r
+DlgAboutBrowserInfoTab : "Gezgin Bilgisi",\r
+DlgAboutLicenseTab     : "Lisans",\r
+DlgAboutVersion                : "sürüm",\r
+DlgAboutInfo           : "Daha fazla bilgi için:"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/uk.js b/httemplate/elements/fckeditor/editor/lang/uk.js
new file mode 100644 (file)
index 0000000..1defaac
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Ukrainian language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Згорнути панель інструментів",\r
+ToolbarExpand          : "Розгорнути панель інструментів",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Зберегти",\r
+NewPage                                : "Нова сторінка",\r
+Preview                                : "Попередній перегляд",\r
+Cut                                    : "Вирізати",\r
+Copy                           : "Копіювати",\r
+Paste                          : "Вставити",\r
+PasteText                      : "Вставити тільки текст",\r
+PasteWord                      : "Вставити з Word",\r
+Print                          : "Друк",\r
+SelectAll                      : "Виділити все",\r
+RemoveFormat           : "Прибрати форматування",\r
+InsertLinkLbl          : "Посилання",\r
+InsertLink                     : "Вставити/Редагувати посилання",\r
+RemoveLink                     : "Знищити посилання",\r
+Anchor                         : "Вставити/Редагувати якір",\r
+InsertImageLbl         : "Зображення",\r
+InsertImage                    : "Вставити/Редагувати зображення",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Вставити/Редагувати Flash",\r
+InsertTableLbl         : "Таблиця",\r
+InsertTable                    : "Вставити/Редагувати таблицю",\r
+InsertLineLbl          : "Лінія",\r
+InsertLine                     : "Вставити горизонтальну лінію",\r
+InsertSpecialCharLbl: "Спеціальний символ",\r
+InsertSpecialChar      : "Вставити спеціальний символ",\r
+InsertSmileyLbl                : "Смайлик",\r
+InsertSmiley           : "Вставити смайлик",\r
+About                          : "Про FCKeditor",\r
+Bold                           : "Жирний",\r
+Italic                         : "Курсив",\r
+Underline                      : "Підкреслений",\r
+StrikeThrough          : "Закреслений",\r
+Subscript                      : "Підрядковий індекс",\r
+Superscript                    : "Надрядковий индекс",\r
+LeftJustify                    : "По лівому краю",\r
+CenterJustify          : "По центру",\r
+RightJustify           : "По правому краю",\r
+BlockJustify           : "По ширині",\r
+DecreaseIndent         : "Зменшити відступ",\r
+IncreaseIndent         : "Збільшити відступ",\r
+Undo                           : "Повернути",\r
+Redo                           : "Повторити",\r
+NumberedListLbl                : "Нумерований список",\r
+NumberedList           : "Вставити/Видалити нумерований список",\r
+BulletedListLbl                : "Маркований список",\r
+BulletedList           : "Вставити/Видалити маркований список",\r
+ShowTableBorders       : "Показати бордюри таблиці",\r
+ShowDetails                    : "Показати деталі",\r
+Style                          : "Стиль",\r
+FontFormat                     : "Форматування",\r
+Font                           : "Шрифт",\r
+FontSize                       : "Розмір",\r
+TextColor                      : "Колір тексту",\r
+BGColor                                : "Колір фону",\r
+Source                         : "Джерело",\r
+Find                           : "Пошук",\r
+Replace                                : "Заміна",\r
+SpellCheck                     : "Перевірити орфографію",\r
+UniversalKeyboard      : "Універсальна клавіатура",\r
+PageBreakLbl           : "Розривши сторінки",\r
+PageBreak                      : "Вставити розривши сторінки",\r
+\r
+Form                   : "Форма",\r
+Checkbox               : "Флагова кнопка",\r
+RadioButton            : "Кнопка вибору",\r
+TextField              : "Текстове поле",\r
+Textarea               : "Текстова область",\r
+HiddenField            : "Приховане поле",\r
+Button                 : "Кнопка",\r
+SelectionField : "Список",\r
+ImageButton            : "Кнопка із зображенням",\r
+\r
+FitWindow              : "Розвернути вікно редактора",\r
+\r
+// Context Menu\r
+EditLink                       : "Вставити посилання",\r
+CellCM                         : "Осередок",\r
+RowCM                          : "Рядок",\r
+ColumnCM                       : "Колонка",\r
+InsertRow                      : "Вставити строку",\r
+DeleteRows                     : "Видалити строки",\r
+InsertColumn           : "Вставити колонку",\r
+DeleteColumns          : "Видалити колонки",\r
+InsertCell                     : "Вставити комірку",\r
+DeleteCells                    : "Видалити комірки",\r
+MergeCells                     : "Об'єднати комірки",\r
+SplitCell                      : "Роз'єднати комірку",\r
+TableDelete                    : "Видалити таблицю",\r
+CellProperties         : "Властивості комірки",\r
+TableProperties                : "Властивості таблиці",\r
+ImageProperties                : "Властивості зображення",\r
+FlashProperties                : "Властивості Flash",\r
+\r
+AnchorProp                     : "Властивості якоря",\r
+ButtonProp                     : "Властивості кнопки",\r
+CheckboxProp           : "Властивості флагової кнопки",\r
+HiddenFieldProp                : "Властивості прихованого поля",\r
+RadioButtonProp                : "Властивості кнопки вибору",\r
+ImageButtonProp                : "Властивості кнопки із зображенням",\r
+TextFieldProp          : "Властивості текстового поля",\r
+SelectionFieldProp     : "Властивості списку",\r
+TextareaProp           : "Властивості текстової області",\r
+FormProp                       : "Властивості форми",\r
+\r
+FontFormats                    : "Нормальний;Форматований;Адреса;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Нормальний (DIV)",                //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Обробка XHTML. Зачекайте, будь ласка...",\r
+Done                           : "Зроблено",\r
+PasteWordConfirm       : "Текст, що ви хочете вставити, схожий на копійований з Word. Ви хочете очистити його перед вставкою?",\r
+NotCompatiblePaste     : "Ця команда доступна для Internet Explorer версії 5.5 або вище. Ви хочете вставити без очищення?",\r
+UnknownToolbarItem     : "Невідомий елемент панелі інструментів \"%1\"",\r
+UnknownCommand         : "Невідоме ім'я команди \"%1\"",\r
+NotImplemented         : "Команда не реалізована",\r
+UnknownToolbarSet      : "Панель інструментів \"%1\" не існує",\r
+NoActiveX                      : "Настройки безпеки вашого браузера можуть обмежувати деякі властивості редактора. Ви повинні включити опцію \"Запускати елементи управління ACTIVEX і плугіни\". Ви можете бачити помилки і помічати відсутність можливостей.",\r
+BrowseServerBlocked : "Ресурси браузера не можуть бути відкриті. Перевірте що блокування спливаючих вікон вимкнені.",\r
+DialogBlocked          : "Не можливо відкрити вікно діалогу. Перевірте що блокування спливаючих вікон вимкнені.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "ОК",\r
+DlgBtnCancel           : "Скасувати",\r
+DlgBtnClose                    : "Зачинити",\r
+DlgBtnBrowseServer     : "Передивитися на сервері",\r
+DlgAdvancedTag         : "Розширений",\r
+DlgOpOther                     : "<Інше>",\r
+DlgInfoTab                     : "Інфо",\r
+DlgAlertUrl                    : "Вставте, будь-ласка, URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<не визначено>",\r
+DlgGenId                       : "Ідентифікатор",\r
+DlgGenLangDir          : "Напрямок мови",\r
+DlgGenLangDirLtr       : "Зліва на право (LTR)",\r
+DlgGenLangDirRtl       : "Зправа на ліво (RTL)",\r
+DlgGenLangCode         : "Мова",\r
+DlgGenAccessKey                : "Гаряча клавіша",\r
+DlgGenName                     : "Им'я",\r
+DlgGenTabIndex         : "Послідовність переходу",\r
+DlgGenLongDescr                : "Довгий опис URL",\r
+DlgGenClass                    : "Клас CSS",\r
+DlgGenTitle                    : "Заголовок",\r
+DlgGenContType         : "Тип вмісту",\r
+DlgGenLinkCharset      : "Кодировка",\r
+DlgGenStyle                    : "Стиль CSS",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Властивості зображення",\r
+DlgImgInfoTab          : "Інформація про изображении",\r
+DlgImgBtnUpload                : "Надіслати на сервер",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Закачати",\r
+DlgImgAlt                      : "Альтернативний текст",\r
+DlgImgWidth                    : "Ширина",\r
+DlgImgHeight           : "Висота",\r
+DlgImgLockRatio                : "Зберегти пропорції",\r
+DlgBtnResetSize                : "Скинути розмір",\r
+DlgImgBorder           : "Бордюр",\r
+DlgImgHSpace           : "Горизонтальний відступ",\r
+DlgImgVSpace           : "Вертикальний відступ",\r
+DlgImgAlign                    : "Вирівнювання",\r
+DlgImgAlignLeft                : "По лівому краю",\r
+DlgImgAlignAbsBottom: "Абс по низу",\r
+DlgImgAlignAbsMiddle: "Абс по середині",\r
+DlgImgAlignBaseline    : "По базовій лінії",\r
+DlgImgAlignBottom      : "По низу",\r
+DlgImgAlignMiddle      : "По середині",\r
+DlgImgAlignRight       : "По правому краю",\r
+DlgImgAlignTextTop     : "Текст на верху",\r
+DlgImgAlignTop         : "По верху",\r
+DlgImgPreview          : "Попередній перегляд",\r
+DlgImgAlertUrl         : "Будь ласка, введіть URL зображення",\r
+DlgImgLinkTab          : "Посилання",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Властивості Flash",\r
+DlgFlashChkPlay                : "Авто програвання",\r
+DlgFlashChkLoop                : "Зациклити",\r
+DlgFlashChkMenu                : "Дозволити меню Flash",\r
+DlgFlashScale          : "Масштаб",\r
+DlgFlashScaleAll       : "Показати всі",\r
+DlgFlashScaleNoBorder  : "Без рамки",\r
+DlgFlashScaleFit       : "Дійсний розмір",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Посилання",\r
+DlgLnkInfoTab          : "Інформація посилання",\r
+DlgLnkTargetTab                : "Ціль",\r
+\r
+DlgLnkType                     : "Тип посилання",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Якір на цю сторінку",\r
+DlgLnkTypeEMail                : "Эл. пошта",\r
+DlgLnkProto                    : "Протокол",\r
+DlgLnkProtoOther       : "<інше>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Оберіть якір",\r
+DlgLnkAnchorByName     : "За ім'ям якоря",\r
+DlgLnkAnchorById       : "За ідентифікатором елемента",\r
+DlgLnkNoAnchors                : "<Немає якорів доступних в цьому документі>",              //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Адреса ел. пошти",\r
+DlgLnkEMailSubject     : "Тема листа",\r
+DlgLnkEMailBody                : "Тіло повідомлення",\r
+DlgLnkUpload           : "Закачати",\r
+DlgLnkBtnUpload                : "Переслати на сервер",\r
+\r
+DlgLnkTarget           : "Ціль",\r
+DlgLnkTargetFrame      : "<фрейм>",\r
+DlgLnkTargetPopup      : "<спливаюче вікно>",\r
+DlgLnkTargetBlank      : "Нове вікно (_blank)",\r
+DlgLnkTargetParent     : "Батьківське вікно (_parent)",\r
+DlgLnkTargetSelf       : "Теж вікно (_self)",\r
+DlgLnkTargetTop                : "Найвище вікно (_top)",\r
+DlgLnkTargetFrameName  : "Ім'я целевого фрейма",\r
+DlgLnkPopWinName       : "Ім'я спливаючого вікна",\r
+DlgLnkPopWinFeat       : "Властивості спливаючого вікна",\r
+DlgLnkPopResize                : "Змінюється в розмірах",\r
+DlgLnkPopLocation      : "Панель локації",\r
+DlgLnkPopMenu          : "Панель меню",\r
+DlgLnkPopScroll                : "Полоси прокрутки",\r
+DlgLnkPopStatus                : "Строка статусу",\r
+DlgLnkPopToolbar       : "Панель інструментів",\r
+DlgLnkPopFullScrn      : "Повний екран (IE)",\r
+DlgLnkPopDependent     : "Залежний (Netscape)",\r
+DlgLnkPopWidth         : "Ширина",\r
+DlgLnkPopHeight                : "Висота",\r
+DlgLnkPopLeft          : "Позиція зліва",\r
+DlgLnkPopTop           : "Позиція зверху",\r
+\r
+DlnLnkMsgNoUrl         : "Будь ласка, занесіть URL посилання",\r
+DlnLnkMsgNoEMail       : "Будь ласка, занесіть адрес эл. почты",\r
+DlnLnkMsgNoAnchor      : "Будь ласка, оберіть якір",\r
+DlnLnkMsgInvPopName    : "Назва спливаючого вікна повинна починатися букви і не може містити пропусків",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Оберіть колір",\r
+DlgColorBtnClear       : "Очистити",\r
+DlgColorHighlight      : "Підсвічений",\r
+DlgColorSelected       : "Обраний",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Вставити смайлик",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Оберіть спеціальний символ",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Властивості таблиці",\r
+DlgTableRows           : "Строки",\r
+DlgTableColumns                : "Колонки",\r
+DlgTableBorder         : "Розмір бордюра",\r
+DlgTableAlign          : "Вирівнювання",\r
+DlgTableAlignNotSet    : "<Не вст.>",\r
+DlgTableAlignLeft      : "Зліва",\r
+DlgTableAlignCenter    : "По центру",\r
+DlgTableAlignRight     : "Зправа",\r
+DlgTableWidth          : "Ширина",\r
+DlgTableWidthPx                : "пікселів",\r
+DlgTableWidthPc                : "відсотків",\r
+DlgTableHeight         : "Висота",\r
+DlgTableCellSpace      : "Проміжок (spacing)",\r
+DlgTableCellPad                : "Відступ (padding)",\r
+DlgTableCaption                : "Заголовок",\r
+DlgTableSummary                : "Резюме",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Властивості комірки",\r
+DlgCellWidth           : "Ширина",\r
+DlgCellWidthPx         : "пікселів",\r
+DlgCellWidthPc         : "відсотків",\r
+DlgCellHeight          : "Висота",\r
+DlgCellWordWrap                : "Згортання текста",\r
+DlgCellWordWrapNotSet  : "<Не вст.>",\r
+DlgCellWordWrapYes     : "Так",\r
+DlgCellWordWrapNo      : "Ні",\r
+DlgCellHorAlign                : "Горизонтальне вирівнювання",\r
+DlgCellHorAlignNotSet  : "<Не вст.>",\r
+DlgCellHorAlignLeft    : "Зліва",\r
+DlgCellHorAlignCenter  : "По центру",\r
+DlgCellHorAlignRight: "Зправа",\r
+DlgCellVerAlign                : "Вертикальное вирівнювання",\r
+DlgCellVerAlignNotSet  : "<Не вст.>",\r
+DlgCellVerAlignTop     : "Зверху",\r
+DlgCellVerAlignMiddle  : "Посередині",\r
+DlgCellVerAlignBottom  : "Знизу",\r
+DlgCellVerAlignBaseline        : "По базовій лінії",\r
+DlgCellRowSpan         : "Діапазон строк (span)",\r
+DlgCellCollSpan                : "Діапазон колонок (span)",\r
+DlgCellBackColor       : "Колір фона",\r
+DlgCellBorderColor     : "Колір бордюра",\r
+DlgCellBtnSelect       : "Оберіть...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Пошук",\r
+DlgFindFindBtn         : "Пошук",\r
+DlgFindNotFoundMsg     : "Вказаний текст не знайдений.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Замінити",\r
+DlgReplaceFindLbl              : "Шукати:",\r
+DlgReplaceReplaceLbl   : "Замінити на:",\r
+DlgReplaceCaseChk              : "Учитывать регистр",\r
+DlgReplaceReplaceBtn   : "Замінити",\r
+DlgReplaceReplAllBtn   : "Замінити все",\r
+DlgReplaceWordChk              : "Збіг цілих слів",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl+X).",\r
+PasteErrorCopy : "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl+C).",\r
+\r
+PasteAsText            : "Вставити тільки текст",\r
+PasteFromWord  : "Вставити з Word",\r
+\r
+DlgPasteMsg2   : "Будь-ласка, вставте з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натисніть <STRONG>OK</STRONG>.",\r
+DlgPasteSec            : "Редактор не може отримати прямий доступ до буферу обміну у зв'язку з налаштуваннями вашого браузера. Вам потрібно вставити інформацію повторно в це вікно.",\r
+DlgPasteIgnoreFont             : "Ігнорувати налаштування шрифтів",\r
+DlgPasteRemoveStyles   : "Видалити налаштування стилів",\r
+DlgPasteCleanBox               : "Очистити область",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Автоматичний",\r
+ColorMoreColors        : "Кольори...",\r
+\r
+// Document Properties\r
+DocProps               : "Властивості документа",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Властивості якоря",\r
+DlgAnchorName          : "Ім'я якоря",\r
+DlgAnchorErrorName     : "Будь ласка, занесіть ім'я якоря",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Не має в словнику",\r
+DlgSpellChangeTo               : "Замінити на",\r
+DlgSpellBtnIgnore              : "Ігнорувати",\r
+DlgSpellBtnIgnoreAll   : "Ігнорувати все",\r
+DlgSpellBtnReplace             : "Замінити",\r
+DlgSpellBtnReplaceAll  : "Замінити все",\r
+DlgSpellBtnUndo                        : "Назад",\r
+DlgSpellNoSuggestions  : "- Немає припущень -",\r
+DlgSpellProgress               : "Виконується перевірка орфографії...",\r
+DlgSpellNoMispell              : "Перевірку орфографії завершено: помилок не знайдено",\r
+DlgSpellNoChanges              : "Перевірку орфографії завершено: жодне слово не змінено",\r
+DlgSpellOneChange              : "Перевірку орфографії завершено: змінено одно слово",\r
+DlgSpellManyChanges            : "Перевірку орфографії завершено: 1% слів змінено",\r
+\r
+IeSpellDownload                        : "Модуль перевірки орфографії не встановлено. Бажаєтн завантажити його зараз?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Текст (Значення)",\r
+DlgButtonType          : "Тип",\r
+DlgButtonTypeBtn       : "Кнопка",\r
+DlgButtonTypeSbm       : "Відправити",\r
+DlgButtonTypeRst       : "Скинути",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Ім'я",\r
+DlgCheckboxValue       : "Значення",\r
+DlgCheckboxSelected    : "Обрана",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Ім'я",\r
+DlgFormAction  : "Дія",\r
+DlgFormMethod  : "Метод",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Ім'я",\r
+DlgSelectValue         : "Значення",\r
+DlgSelectSize          : "Розмір",\r
+DlgSelectLines         : "лінії",\r
+DlgSelectChkMulti      : "Дозволити обрання декількох позицій",\r
+DlgSelectOpAvail       : "Доступні варіанти",\r
+DlgSelectOpText                : "Текст",\r
+DlgSelectOpValue       : "Значення",\r
+DlgSelectBtnAdd                : "Добавити",\r
+DlgSelectBtnModify     : "Змінити",\r
+DlgSelectBtnUp         : "Вгору",\r
+DlgSelectBtnDown       : "Вниз",\r
+DlgSelectBtnSetValue : "Встановити як вибране значення",\r
+DlgSelectBtnDelete     : "Видалити",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Ім'я",\r
+DlgTextareaCols        : "Колонки",\r
+DlgTextareaRows        : "Строки",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Ім'я",\r
+DlgTextValue           : "Значення",\r
+DlgTextCharWidth       : "Ширина",\r
+DlgTextMaxChars                : "Макс. кіл-ть символів",\r
+DlgTextType                    : "Тип",\r
+DlgTextTypeText                : "Текст",\r
+DlgTextTypePass                : "Пароль",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Ім'я",\r
+DlgHiddenValue : "Значення",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Властивості маркованого списка",\r
+NumberedListProp       : "Властивості нумерованного списка",\r
+DlgLstStart                    : "Початок",\r
+DlgLstType                     : "Тип",\r
+DlgLstTypeCircle       : "Коло",\r
+DlgLstTypeDisc         : "Диск",\r
+DlgLstTypeSquare       : "Квадрат",\r
+DlgLstTypeNumbers      : "Номери (1, 2, 3)",\r
+DlgLstTypeLCase                : "Літери нижнього регістра(a, b, c)",\r
+DlgLstTypeUCase                : "Букви верхнього регістра (A, B, C)",\r
+DlgLstTypeSRoman       : "Малі римські літери (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Великі римські літери (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Загальні",\r
+DlgDocBackTab          : "Заднє тло",\r
+DlgDocColorsTab                : "Кольори та відступи",\r
+DlgDocMetaTab          : "Мета дані",\r
+\r
+DlgDocPageTitle                : "Заголовок сторінки",\r
+DlgDocLangDir          : "Напрямок тексту",\r
+DlgDocLangDirLTR       : "Зліва на право (LTR)",\r
+DlgDocLangDirRTL       : "Зправа на лево (RTL)",\r
+DlgDocLangCode         : "Код мови",\r
+DlgDocCharSet          : "Кодування набору символів",\r
+DlgDocCharSetCE                : "Центрально-європейська",\r
+DlgDocCharSetCT                : "Китайська традиційна (Big5)",\r
+DlgDocCharSetCR                : "Кирилиця",\r
+DlgDocCharSetGR                : "Грецька",\r
+DlgDocCharSetJP                : "Японська",\r
+DlgDocCharSetKR                : "Корейська",\r
+DlgDocCharSetTR                : "Турецька",\r
+DlgDocCharSetUN                : "Юнікод (UTF-8)",\r
+DlgDocCharSetWE                : "Західно-европейская",\r
+DlgDocCharSetOther     : "Інше кодування набору символів",\r
+\r
+DlgDocDocType          : "Заголовок типу документу",\r
+DlgDocDocTypeOther     : "Інший заголовок типу документу",\r
+DlgDocIncXHTML         : "Ввімкнути XHTML оголошення",\r
+DlgDocBgColor          : "Колір тла",\r
+DlgDocBgImage          : "URL зображення тла",\r
+DlgDocBgNoScroll       : "Тло без прокрутки",\r
+DlgDocCText                    : "Текст",\r
+DlgDocCLink                    : "Посилання",\r
+DlgDocCVisited         : "Відвідане посилання",\r
+DlgDocCActive          : "Активне посилання",\r
+DlgDocMargins          : "Відступи сторінки",\r
+DlgDocMaTop                    : "Верхній",\r
+DlgDocMaLeft           : "Лівий",\r
+DlgDocMaRight          : "Правий",\r
+DlgDocMaBottom         : "Нижній",\r
+DlgDocMeIndex          : "Ключові слова документа (розділені комами)",\r
+DlgDocMeDescr          : "Опис документа",\r
+DlgDocMeAuthor         : "Автор",\r
+DlgDocMeCopy           : "Авторські права",\r
+DlgDocPreview          : "Попередній перегляд",\r
+\r
+// Templates Dialog\r
+Templates                      : "Шаблони",\r
+DlgTemplatesTitle      : "Шаблони змісту",\r
+DlgTemplatesSelMsg     : "Оберіть, будь ласка, шаблон для відкриття в редакторі<br>(поточний зміст буде втрачено):",\r
+DlgTemplatesLoading    : "Завантаження списку шаблонів. Зачекайте, будь ласка...",\r
+DlgTemplatesNoTpl      : "(Не визначено жодного шаблону)",\r
+DlgTemplatesReplace    : "Замінити поточний вміст",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Про програму",\r
+DlgAboutBrowserInfoTab : "Інформація браузера",\r
+DlgAboutLicenseTab     : "Ліцензія",\r
+DlgAboutVersion                : "Версія",\r
+DlgAboutInfo           : "Додаткову інформацію дивіться на "\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/vi.js b/httemplate/elements/fckeditor/editor/lang/vi.js
new file mode 100644 (file)
index 0000000..5c2c608
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Vietnamese language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "Thu gọn Thanh công cụ",\r
+ToolbarExpand          : "Mở rộng Thanh công cụ",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "Lưu",\r
+NewPage                                : "Trang mới",\r
+Preview                                : "Xem trước",\r
+Cut                                    : "Cắt",\r
+Copy                           : "Sao chép",\r
+Paste                          : "Dán",\r
+PasteText                      : "Dán theo dạng văn bản thuần",\r
+PasteWord                      : "Dán với định dạng Word",\r
+Print                          : "In",\r
+SelectAll                      : "Chọn Tất cả",\r
+RemoveFormat           : "Xoá Định dạng",\r
+InsertLinkLbl          : "Liên kết",\r
+InsertLink                     : "Chèn/Sửa Liên kết",\r
+RemoveLink                     : "Xoá Liên kết",\r
+Anchor                         : "Chèn/Sửa Neo",\r
+InsertImageLbl         : "Hình ảnh",\r
+InsertImage                    : "Chèn/Sửa Hình ảnh",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "Chèn/Sửa Flash",\r
+InsertTableLbl         : "Bảng",\r
+InsertTable                    : "Chèn/Sửa Bảng",\r
+InsertLineLbl          : "Đường phân cách ngang",\r
+InsertLine                     : "Chèn Đường phân cách ngang",\r
+InsertSpecialCharLbl: "Ký tự đặc biệt",\r
+InsertSpecialChar      : "Chèn Ký tự đặc biệt",\r
+InsertSmileyLbl                : "Hình biểu lộ cảm xúc (mặt cười)",\r
+InsertSmiley           : "Chèn Hình biểu lộ cảm xúc (mặt cười)",\r
+About                          : "Giới thiệu về FCKeditor",\r
+Bold                           : "Đậm",\r
+Italic                         : "Nghiêng",\r
+Underline                      : "Gạch chân",\r
+StrikeThrough          : "Gạch xuyên ngang",\r
+Subscript                      : "Chỉ số dưới",\r
+Superscript                    : "Chỉ số trên",\r
+LeftJustify                    : "Canh trái",\r
+CenterJustify          : "Canh giữa",\r
+RightJustify           : "Canh phải",\r
+BlockJustify           : "Canh đều",\r
+DecreaseIndent         : "Dịch ra ngoài",\r
+IncreaseIndent         : "Dịch vào trong",\r
+Undo                           : "Khôi phục thao tác",\r
+Redo                           : "Làm lại thao tác",\r
+NumberedListLbl                : "Danh sách có thứ tự",\r
+NumberedList           : "Chèn/Xoá Danh sách có thứ tự",\r
+BulletedListLbl                : "Danh sách không thứ tự",\r
+BulletedList           : "Chèn/Xoá Danh sách không thứ tự",\r
+ShowTableBorders       : "Hiển thị Đường viền bảng",\r
+ShowDetails                    : "Hiển thị Chi tiết",\r
+Style                          : "Mẫu",\r
+FontFormat                     : "Định dạng",\r
+Font                           : "Phông",\r
+FontSize                       : "Cỡ chữ",\r
+TextColor                      : "Màu chữ",\r
+BGColor                                : "Màu nền",\r
+Source                         : "Mã HTML",\r
+Find                           : "Tìm kiếm",\r
+Replace                                : "Thay thế",\r
+SpellCheck                     : "Kiểm tra Chính tả",\r
+UniversalKeyboard      : "Bàn phím Quốc tế",\r
+PageBreakLbl           : "Ngắt trang",\r
+PageBreak                      : "Chèn Ngắt trang",\r
+\r
+Form                   : "Biểu mẫu",\r
+Checkbox               : "Nút kiểm",\r
+RadioButton            : "Nút chọn",\r
+TextField              : "Trường văn bản",\r
+Textarea               : "Vùng văn bản",\r
+HiddenField            : "Trường ẩn",\r
+Button                 : "Nút",\r
+SelectionField : "Ô chọn",\r
+ImageButton            : "Nút hình ảnh",\r
+\r
+FitWindow              : "Mở rộng tối đa kích thước trình biên tập",\r
+\r
+// Context Menu\r
+EditLink                       : "Sửa Liên kết",\r
+CellCM                         : "Ô",\r
+RowCM                          : "Hàng",\r
+ColumnCM                       : "Cột",\r
+InsertRow                      : "Chèn Hàng",\r
+DeleteRows                     : "Xoá Hàng",\r
+InsertColumn           : "Chèn Cột",\r
+DeleteColumns          : "Xoá Cột",\r
+InsertCell                     : "Chèn Ô",\r
+DeleteCells                    : "Xoá Ô",\r
+MergeCells                     : "Trộn Ô",\r
+SplitCell                      : "Chia Ô",\r
+TableDelete                    : "Xóa Bảng",\r
+CellProperties         : "Thuộc tính Ô",\r
+TableProperties                : "Thuộc tính Bảng",\r
+ImageProperties                : "Thuộc tính Hình ảnh",\r
+FlashProperties                : "Thuộc tính Flash",\r
+\r
+AnchorProp                     : "Thuộc tính Neo",\r
+ButtonProp                     : "Thuộc tính Nút",\r
+CheckboxProp           : "Thuộc tính Nút kiểm",\r
+HiddenFieldProp                : "Thuộc tính Trường ẩn",\r
+RadioButtonProp                : "Thuộc tính Nút chọn",\r
+ImageButtonProp                : "Thuộc tính Nút hình ảnh",\r
+TextFieldProp          : "Thuộc tính Trường văn bản",\r
+SelectionFieldProp     : "Thuộc tính Ô chọn",\r
+TextareaProp           : "Thuộc tính Vùng văn bản",\r
+FormProp                       : "Thuộc tính Biểu mẫu",\r
+\r
+FontFormats                    : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",          //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "Đang xử lý XHTML. Vui lòng đợi trong giây lát...",\r
+Done                           : "Đã hoàn thành",\r
+PasteWordConfirm       : "Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?",\r
+NotCompatiblePaste     : "Lệnh này chỉ được hỗ trợ từ trình duyệt Internet Explorer phiên bản 5.5 hoặc mới hơn. Bạn có muốn dán nguyên mẫu?",\r
+UnknownToolbarItem     : "Không rõ mục trên thanh công cụ \"%1\"",\r
+UnknownCommand         : "Không rõ lệnh \"%1\"",\r
+NotImplemented         : "Lệnh không được thực hiện",\r
+UnknownToolbarSet      : "Thanh công cụ \"%1\" không tồn tại",\r
+NoActiveX                      : "Các thiết lập bảo mật của trình duyệt có thể giới hạn một số chức năng của trình biên tập. Bạn phải bật tùy chọn \"Run ActiveX controls and plug-ins\". Bạn có thể gặp một số lỗi và thấy thiếu đi một số chức năng.",\r
+BrowseServerBlocked : "Không thể mở được bộ duyệt tài nguyên. Hãy đảm bảo chức năng chặn popup đã bị vô hiệu hóa.",\r
+DialogBlocked          : "Không thể mở được cửa sổ hộp thoại. Hãy đảm bảo chức năng chặn popup đã bị vô hiệu hóa.",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "Đồng ý",\r
+DlgBtnCancel           : "Bỏ qua",\r
+DlgBtnClose                    : "Đóng",\r
+DlgBtnBrowseServer     : "Duyệt trên máy chủ",\r
+DlgAdvancedTag         : "Mở rộng",\r
+DlgOpOther                     : "<Khác>",\r
+DlgInfoTab                     : "Thông tin",\r
+DlgAlertUrl                    : "Hãy nhập vào một URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<không thiết lập>",\r
+DlgGenId                       : "Định danh",\r
+DlgGenLangDir          : "Đường dẫn Ngôn ngữ",\r
+DlgGenLangDirLtr       : "Trái sang Phải (LTR)",\r
+DlgGenLangDirRtl       : "Phải sang Trái (RTL)",\r
+DlgGenLangCode         : "Mã Ngôn ngữ",\r
+DlgGenAccessKey                : "Phím Hỗ trợ truy cập",\r
+DlgGenName                     : "Tên",\r
+DlgGenTabIndex         : "Chỉ số của Tab",\r
+DlgGenLongDescr                : "Mô tả URL",\r
+DlgGenClass                    : "Lớp Stylesheet",\r
+DlgGenTitle                    : "Advisory Title",\r
+DlgGenContType         : "Advisory Content Type",\r
+DlgGenLinkCharset      : "Bảng mã của tài nguyên được liên kết đến",\r
+DlgGenStyle                    : "Mẫu",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "Thuộc tính Hình ảnh",\r
+DlgImgInfoTab          : "Thông tin Hình ảnh",\r
+DlgImgBtnUpload                : "Tải lên Máy chủ",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "Tải lên",\r
+DlgImgAlt                      : "Chú thích Hình ảnh",\r
+DlgImgWidth                    : "Rộng",\r
+DlgImgHeight           : "Cao",\r
+DlgImgLockRatio                : "Giữ tỷ lệ",\r
+DlgBtnResetSize                : "Kích thước gốc",\r
+DlgImgBorder           : "Đường viền",\r
+DlgImgHSpace           : "HSpace",\r
+DlgImgVSpace           : "VSpace",\r
+DlgImgAlign                    : "Vị trí",\r
+DlgImgAlignLeft                : "Trái",\r
+DlgImgAlignAbsBottom: "Dưới tuyệt đối",\r
+DlgImgAlignAbsMiddle: "Giữa tuyệt đối",\r
+DlgImgAlignBaseline    : "Baseline",\r
+DlgImgAlignBottom      : "Dưới",\r
+DlgImgAlignMiddle      : "Giữa",\r
+DlgImgAlignRight       : "Phải",\r
+DlgImgAlignTextTop     : "Phía trên chữ",\r
+DlgImgAlignTop         : "Trên",\r
+DlgImgPreview          : "Xem trước",\r
+DlgImgAlertUrl         : "Hãy đưa vào URL của hình ảnh",\r
+DlgImgLinkTab          : "Liên kết",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Thuộc tính Flash",\r
+DlgFlashChkPlay                : "Tự động chạy",\r
+DlgFlashChkLoop                : "Lặp",\r
+DlgFlashChkMenu                : "Cho phép bật Menu của Flash",\r
+DlgFlashScale          : "Tỷ lệ",\r
+DlgFlashScaleAll       : "Hiển thị tất cả",\r
+DlgFlashScaleNoBorder  : "Không đường viền",\r
+DlgFlashScaleFit       : "Vừa vặn",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "Liên kết",\r
+DlgLnkInfoTab          : "Thông tin Liên kết",\r
+DlgLnkTargetTab                : "Đích",\r
+\r
+DlgLnkType                     : "Kiểu Liên kết",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "Neo trong trang này",\r
+DlgLnkTypeEMail                : "Thư điện tử",\r
+DlgLnkProto                    : "Giao thức",\r
+DlgLnkProtoOther       : "<khác>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "Chọn một Neo",\r
+DlgLnkAnchorByName     : "Theo Tên Neo",\r
+DlgLnkAnchorById       : "Theo Định danh Element",\r
+DlgLnkNoAnchors                : "<Không có Neo nào trong tài liệu>",            //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "Thư điện tử",\r
+DlgLnkEMailSubject     : "Tiêu đề Thông điệp",\r
+DlgLnkEMailBody                : "Nội dung Thông điệp",\r
+DlgLnkUpload           : "Tải lên",\r
+DlgLnkBtnUpload                : "Tải lên Máy chủ",\r
+\r
+DlgLnkTarget           : "Đích",\r
+DlgLnkTargetFrame      : "<khung>",\r
+DlgLnkTargetPopup      : "<cửa sổ popup>",\r
+DlgLnkTargetBlank      : "Cửa sổ mới (_blank)",\r
+DlgLnkTargetParent     : "Cửa sổ cha (_parent)",\r
+DlgLnkTargetSelf       : "Cùng cửa sổ (_self)",\r
+DlgLnkTargetTop                : "Cửa sổ trên cùng(_top)",\r
+DlgLnkTargetFrameName  : "Tên Khung đích",\r
+DlgLnkPopWinName       : "Tên Cửa sổ Popup",\r
+DlgLnkPopWinFeat       : "Đặc điểm của Cửa sổ Popup",\r
+DlgLnkPopResize                : "Kích thước thay đổi",\r
+DlgLnkPopLocation      : "Thanh vị trí",\r
+DlgLnkPopMenu          : "Thanh Menu",\r
+DlgLnkPopScroll                : "Thanh cuộn",\r
+DlgLnkPopStatus                : "Thanh trạng thái",\r
+DlgLnkPopToolbar       : "Thanh công cụ",\r
+DlgLnkPopFullScrn      : "Toàn màn hình (IE)",\r
+DlgLnkPopDependent     : "Phụ thuộc (Netscape)",\r
+DlgLnkPopWidth         : "Rộng",\r
+DlgLnkPopHeight                : "Cao",\r
+DlgLnkPopLeft          : "Vị trí Trái",\r
+DlgLnkPopTop           : "Vị trí Trên",\r
+\r
+DlnLnkMsgNoUrl         : "Hãy đưa vào Liên kết URL",\r
+DlnLnkMsgNoEMail       : "Hãy đưa vào địa chỉ thư điện tử",\r
+DlnLnkMsgNoAnchor      : "Hãy chọn một Neo",\r
+DlnLnkMsgInvPopName    : "Tên của cửa sổ Popup phải bắt đầu bằng một ký tự và không được chứa khoảng trắng",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "Chọn màu",\r
+DlgColorBtnClear       : "Xoá",\r
+DlgColorHighlight      : "Tô sáng",\r
+DlgColorSelected       : "Đã chọn",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "Chèn Hình biểu lộ cảm xúc (mặt cười)",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "Hãy chọn Ký tự đặc biệt",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "Thuộc tính bảng",\r
+DlgTableRows           : "Hàng",\r
+DlgTableColumns                : "Cột",\r
+DlgTableBorder         : "Cỡ Đường viền",\r
+DlgTableAlign          : "Canh lề",\r
+DlgTableAlignNotSet    : "<Chưa thiết lập>",\r
+DlgTableAlignLeft      : "Trái",\r
+DlgTableAlignCenter    : "Giữa",\r
+DlgTableAlignRight     : "Phải",\r
+DlgTableWidth          : "Rộng",\r
+DlgTableWidthPx                : "điểm (px)",\r
+DlgTableWidthPc                : "%",\r
+DlgTableHeight         : "Cao",\r
+DlgTableCellSpace      : "Khoảng cách Ô",\r
+DlgTableCellPad                : "Đệm Ô",\r
+DlgTableCaption                : "Đầu đề",\r
+DlgTableSummary                : "Tóm lược",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "Thuộc tính Ô",\r
+DlgCellWidth           : "Rộng",\r
+DlgCellWidthPx         : "điểm (px)",\r
+DlgCellWidthPc         : "%",\r
+DlgCellHeight          : "Cao",\r
+DlgCellWordWrap                : "Bọc từ",\r
+DlgCellWordWrapNotSet  : "<Chưa thiết lập>",\r
+DlgCellWordWrapYes     : "Đồng ý",\r
+DlgCellWordWrapNo      : "Không",\r
+DlgCellHorAlign                : "Canh theo Chiều ngang",\r
+DlgCellHorAlignNotSet  : "<Chưa thiết lập>",\r
+DlgCellHorAlignLeft    : "Trái",\r
+DlgCellHorAlignCenter  : "Giữa",\r
+DlgCellHorAlignRight: "Phải",\r
+DlgCellVerAlign                : "Canh theo Chiều dọc",\r
+DlgCellVerAlignNotSet  : "<Chưa thiết lập>",\r
+DlgCellVerAlignTop     : "Trên",\r
+DlgCellVerAlignMiddle  : "Giữa",\r
+DlgCellVerAlignBottom  : "Dưới",\r
+DlgCellVerAlignBaseline        : "Baseline",\r
+DlgCellRowSpan         : "Nối Hàng",\r
+DlgCellCollSpan                : "Nối Cột",\r
+DlgCellBackColor       : "Màu nền",\r
+DlgCellBorderColor     : "Màu viền",\r
+DlgCellBtnSelect       : "Chọn...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "Tìm kiếm",\r
+DlgFindFindBtn         : "Tìm kiếm",\r
+DlgFindNotFoundMsg     : "Không tìm thấy chuỗi cần tìm.",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "Thay thế",\r
+DlgReplaceFindLbl              : "Tìm chuỗi:",\r
+DlgReplaceReplaceLbl   : "Thay bằng:",\r
+DlgReplaceCaseChk              : "Phân biệt chữ hoa/thường",\r
+DlgReplaceReplaceBtn   : "Thay thế",\r
+DlgReplaceReplAllBtn   : "Thay thế Tất cả",\r
+DlgReplaceWordChk              : "Đúng toàn bộ từ",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl+X).",\r
+PasteErrorCopy : "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl+C).",\r
+\r
+PasteAsText            : "Dán theo định dạng văn bản thuần",\r
+PasteFromWord  : "Dán với định dạng Word",\r
+\r
+DlgPasteMsg2   : "Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "Chấp nhận các định dạng phông",\r
+DlgPasteRemoveStyles   : "Gỡ bỏ các định dạng Styles",\r
+DlgPasteCleanBox               : "Xóa nội dung",\r
+\r
+// Color Picker\r
+ColorAutomatic : "Tự động",\r
+ColorMoreColors        : "Màu khác...",\r
+\r
+// Document Properties\r
+DocProps               : "Thuộc tính Tài liệu",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "Thuộc tính Neo",\r
+DlgAnchorName          : "Tên của Neo",\r
+DlgAnchorErrorName     : "Hãy đưa vào tên của Neo",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "Không có trong từ điển",\r
+DlgSpellChangeTo               : "Chuyển thành",\r
+DlgSpellBtnIgnore              : "Bỏ qua",\r
+DlgSpellBtnIgnoreAll   : "Bỏ qua Tất cả",\r
+DlgSpellBtnReplace             : "Thay thế",\r
+DlgSpellBtnReplaceAll  : "Thay thế Tất cả",\r
+DlgSpellBtnUndo                        : "Phục hồi lại",\r
+DlgSpellNoSuggestions  : "- Không đưa ra gợi ý về từ -",\r
+DlgSpellProgress               : "Đang tiến hành kiểm tra chính tả...",\r
+DlgSpellNoMispell              : "Hoàn tất kiểm tra chính tả: Không có lỗi chính tả",\r
+DlgSpellNoChanges              : "Hoàn tất kiểm tra chính tả: Không có từ nào được thay đổi",\r
+DlgSpellOneChange              : "Hoàn tất kiểm tra chính tả: Một từ đã được thay đổi",\r
+DlgSpellManyChanges            : "Hoàn tất kiểm tra chính tả: %1 từ đã được thay đổi",\r
+\r
+IeSpellDownload                        : "Chức năng kiểm tra chính tả chưa được cài đặt. Bạn có muốn tải về ngay bây giờ?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "Chuỗi hiển thị (Giá trị)",\r
+DlgButtonType          : "Kiểu",\r
+DlgButtonTypeBtn       : "Nút Bấm",\r
+DlgButtonTypeSbm       : "Nút Gửi",\r
+DlgButtonTypeRst       : "Nút Nhập lại",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "Tên",\r
+DlgCheckboxValue       : "Giá trị",\r
+DlgCheckboxSelected    : "Được chọn",\r
+\r
+// Form Dialog\r
+DlgFormName            : "Tên",\r
+DlgFormAction  : "Hành động",\r
+DlgFormMethod  : "Phương thức",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "Tên",\r
+DlgSelectValue         : "Giá trị",\r
+DlgSelectSize          : "Kích cỡ",\r
+DlgSelectLines         : "dòng",\r
+DlgSelectChkMulti      : "Cho phép chọn nhiều",\r
+DlgSelectOpAvail       : "Các tùy chọn có thể sử dụng",\r
+DlgSelectOpText                : "Văn bản",\r
+DlgSelectOpValue       : "Giá trị",\r
+DlgSelectBtnAdd                : "Thêm",\r
+DlgSelectBtnModify     : "Thay đổi",\r
+DlgSelectBtnUp         : "Lên",\r
+DlgSelectBtnDown       : "Xuống",\r
+DlgSelectBtnSetValue : "Giá trị được chọn",\r
+DlgSelectBtnDelete     : "Xoá",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "Tên",\r
+DlgTextareaCols        : "Cột",\r
+DlgTextareaRows        : "Hàng",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "Tên",\r
+DlgTextValue           : "Giá trị",\r
+DlgTextCharWidth       : "Rộng",\r
+DlgTextMaxChars                : "Số Ký tự tối đa",\r
+DlgTextType                    : "Kiểu",\r
+DlgTextTypeText                : "Ký tự",\r
+DlgTextTypePass                : "Mật khẩu",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "Tên",\r
+DlgHiddenValue : "Giá trị",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "Thuộc tính Danh sách không thứ tự",\r
+NumberedListProp       : "Thuộc tính Danh sách có thứ tự",\r
+DlgLstStart                    : "Bắt đầu",\r
+DlgLstType                     : "Kiểu",\r
+DlgLstTypeCircle       : "Hình tròn",\r
+DlgLstTypeDisc         : "Hình đĩa",\r
+DlgLstTypeSquare       : "Hình vuông",\r
+DlgLstTypeNumbers      : "Số thứ tự (1, 2, 3)",\r
+DlgLstTypeLCase                : "Chữ cái thường (a, b, c)",\r
+DlgLstTypeUCase                : "Chữ cái hoa (A, B, C)",\r
+DlgLstTypeSRoman       : "Số La Mã thường (i, ii, iii)",\r
+DlgLstTypeLRoman       : "Số La Mã hoa (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "Toàn thể",\r
+DlgDocBackTab          : "Nền",\r
+DlgDocColorsTab                : "Màu sắc và Đường biên",\r
+DlgDocMetaTab          : "Siêu dữ liệu",\r
+\r
+DlgDocPageTitle                : "Tiêu đề Trang",\r
+DlgDocLangDir          : "Đường dẫn Ngôn ngữ",\r
+DlgDocLangDirLTR       : "Trái sang Phải (LTR)",\r
+DlgDocLangDirRTL       : "Phải sang Trái (RTL)",\r
+DlgDocLangCode         : "Mã Ngôn ngữ",\r
+DlgDocCharSet          : "Bảng mã ký tự",\r
+DlgDocCharSetCE                : "Trung Âu",\r
+DlgDocCharSetCT                : "Tiếng Trung Quốc (Big5)",\r
+DlgDocCharSetCR                : "Tiếng Kirin",\r
+DlgDocCharSetGR                : "Tiếng Hy Lạp",\r
+DlgDocCharSetJP                : "Tiếng Nhật",\r
+DlgDocCharSetKR                : "Tiếng Hàn",\r
+DlgDocCharSetTR                : "Tiếng Thổ Nhĩ Kỳ",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "Tây Âu",\r
+DlgDocCharSetOther     : "Bảng mã ký tự khác",\r
+\r
+DlgDocDocType          : "Kiểu Đề mục Tài liệu",\r
+DlgDocDocTypeOther     : "Kiểu Đề mục Tài liệu khác",\r
+DlgDocIncXHTML         : "Bao gồm cả định nghĩa XHTML",\r
+DlgDocBgColor          : "Màu nền",\r
+DlgDocBgImage          : "URL của Hình ảnh nền",\r
+DlgDocBgNoScroll       : "Không cuộn nền",\r
+DlgDocCText                    : "Văn bản",\r
+DlgDocCLink                    : "Liên kết",\r
+DlgDocCVisited         : "Liên kết Đã ghé thăm",\r
+DlgDocCActive          : "Liên kết Hiện hành",\r
+DlgDocMargins          : "Đường biên của Trang",\r
+DlgDocMaTop                    : "Trên",\r
+DlgDocMaLeft           : "Trái",\r
+DlgDocMaRight          : "Phải",\r
+DlgDocMaBottom         : "Dưới",\r
+DlgDocMeIndex          : "Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",\r
+DlgDocMeDescr          : "Mô tả tài liệu",\r
+DlgDocMeAuthor         : "Tác giả",\r
+DlgDocMeCopy           : "Bản quyền",\r
+DlgDocPreview          : "Xem trước",\r
+\r
+// Templates Dialog\r
+Templates                      : "Mẫu dựng sẵn",\r
+DlgTemplatesTitle      : "Nội dung Mẫu dựng sẵn",\r
+DlgTemplatesSelMsg     : "Hãy chọn Mẫu dựng sẵn để mở trong trình biên tập<br>(nội dung hiện tại sẽ bị mất):",\r
+DlgTemplatesLoading    : "Đang nạp Danh sách Mẫu dựng sẵn. Vui lòng đợi trong giây lát...",\r
+DlgTemplatesNoTpl      : "(Không có Mẫu dựng sẵn nào được định nghĩa)",\r
+DlgTemplatesReplace    : "Thay thế nội dung hiện tại",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "Giới thiệu",\r
+DlgAboutBrowserInfoTab : "Thông tin trình duyệt",\r
+DlgAboutLicenseTab     : "Giấy phép",\r
+DlgAboutVersion                : "phiên bản",\r
+DlgAboutInfo           : "Để biết thêm thông tin, hãy truy cập"\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/zh-cn.js b/httemplate/elements/fckeditor/editor/lang/zh-cn.js
new file mode 100644 (file)
index 0000000..6d6f4f4
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Chinese Simplified language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "折叠工具栏",\r
+ToolbarExpand          : "展开工具栏",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "保存",\r
+NewPage                                : "新建",\r
+Preview                                : "预览",\r
+Cut                                    : "剪切",\r
+Copy                           : "复制",\r
+Paste                          : "粘贴",\r
+PasteText                      : "粘贴为无格式文本",\r
+PasteWord                      : "从 MS Word 粘贴",\r
+Print                          : "打印",\r
+SelectAll                      : "全选",\r
+RemoveFormat           : "清除格式",\r
+InsertLinkLbl          : "超链接",\r
+InsertLink                     : "插入/编辑超链接",\r
+RemoveLink                     : "取消超链接",\r
+Anchor                         : "插入/编辑锚点链接",\r
+InsertImageLbl         : "图象",\r
+InsertImage                    : "插入/编辑图象",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "插入/编辑 Flash",\r
+InsertTableLbl         : "表格",\r
+InsertTable                    : "插入/编辑表格",\r
+InsertLineLbl          : "水平线",\r
+InsertLine                     : "插入水平线",\r
+InsertSpecialCharLbl: "特殊符号",\r
+InsertSpecialChar      : "插入特殊符号",\r
+InsertSmileyLbl                : "表情符",\r
+InsertSmiley           : "插入表情图标",\r
+About                          : "关于 FCKeditor",\r
+Bold                           : "加粗",\r
+Italic                         : "倾斜",\r
+Underline                      : "下划线",\r
+StrikeThrough          : "删除线",\r
+Subscript                      : "下标",\r
+Superscript                    : "上标",\r
+LeftJustify                    : "左对齐",\r
+CenterJustify          : "居中对齐",\r
+RightJustify           : "右对齐",\r
+BlockJustify           : "两端对齐",\r
+DecreaseIndent         : "减少缩进量",\r
+IncreaseIndent         : "增加缩进量",\r
+Undo                           : "撤消",\r
+Redo                           : "重做",\r
+NumberedListLbl                : "编号列表",\r
+NumberedList           : "插入/删除编号列表",\r
+BulletedListLbl                : "项目列表",\r
+BulletedList           : "插入/删除项目列表",\r
+ShowTableBorders       : "显示表格边框",\r
+ShowDetails                    : "显示详细资料",\r
+Style                          : "样式",\r
+FontFormat                     : "格式",\r
+Font                           : "字体",\r
+FontSize                       : "大小",\r
+TextColor                      : "文本颜色",\r
+BGColor                                : "背景颜色",\r
+Source                         : "源代码",\r
+Find                           : "查找",\r
+Replace                                : "替换",\r
+SpellCheck                     : "拼写检查",\r
+UniversalKeyboard      : "软键盘",\r
+PageBreakLbl           : "分页符",\r
+PageBreak                      : "插入分页符",\r
+\r
+Form                   : "表单",\r
+Checkbox               : "复选框",\r
+RadioButton            : "单选按钮",\r
+TextField              : "单行文本",\r
+Textarea               : "多行文本",\r
+HiddenField            : "隐藏域",\r
+Button                 : "按钮",\r
+SelectionField : "列表/菜单",\r
+ImageButton            : "图像域",\r
+\r
+FitWindow              : "全屏编辑",\r
+\r
+// Context Menu\r
+EditLink                       : "编辑超链接",\r
+CellCM                         : "单元格",\r
+RowCM                          : "行",\r
+ColumnCM                       : "列",\r
+InsertRow                      : "插入行",\r
+DeleteRows                     : "删除行",\r
+InsertColumn           : "插入列",\r
+DeleteColumns          : "删除列",\r
+InsertCell                     : "插入单元格",\r
+DeleteCells                    : "删除单元格",\r
+MergeCells                     : "合并单元格",\r
+SplitCell                      : "拆分单元格",\r
+TableDelete                    : "删除表格",\r
+CellProperties         : "单元格属性",\r
+TableProperties                : "表格属性",\r
+ImageProperties                : "图象属性",\r
+FlashProperties                : "Flash 属性",\r
+\r
+AnchorProp                     : "锚点链接属性",\r
+ButtonProp                     : "按钮属性",\r
+CheckboxProp           : "复选框属性",\r
+HiddenFieldProp                : "隐藏域属性",\r
+RadioButtonProp                : "单选按钮属性",\r
+ImageButtonProp                : "图像域属性",\r
+TextFieldProp          : "单行文本属性",\r
+SelectionFieldProp     : "菜单/列表属性",\r
+TextareaProp           : "多行文本属性",\r
+FormProp                       : "表单属性",\r
+\r
+FontFormats                    : "普通;已编排格式;地址;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段落(DIV)",            //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "正在处理 XHTML,请稍等...",\r
+Done                           : "完成",\r
+PasteWordConfirm       : "您要粘贴的内容好像是来自 MS Word,是否要清除 MS Word 格式后再粘贴?",\r
+NotCompatiblePaste     : "该命令需要 Internet Explorer 5.5 或更高版本的支持,是否按常规粘贴进行?",\r
+UnknownToolbarItem     : "未知工具栏项目 \"%1\"",\r
+UnknownCommand         : "未知命令名称 \"%1\"",\r
+NotImplemented         : "命令无法执行",\r
+UnknownToolbarSet      : "工具栏设置 \"%1\" 不存在",\r
+NoActiveX                      : "浏览器安全设置限制了本编辑器的某些功能。您必须启用安全设置中的“运行 ActiveX 控件和插件”,否则将出现某些错误并缺少功能。",\r
+BrowseServerBlocked : "无法打开资源浏览器,请确认是否启用了禁止弹出窗口。",\r
+DialogBlocked          : "无法打开对话框窗口,请确认是否启用了禁止弹出窗口或网页对话框(IE)。",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "确定",\r
+DlgBtnCancel           : "取消",\r
+DlgBtnClose                    : "关闭",\r
+DlgBtnBrowseServer     : "浏览服务器",\r
+DlgAdvancedTag         : "高级",\r
+DlgOpOther                     : "<其它>",\r
+DlgInfoTab                     : "信息",\r
+DlgAlertUrl                    : "请插入 URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<没有设置>",\r
+DlgGenId                       : "ID",\r
+DlgGenLangDir          : "语言方向",\r
+DlgGenLangDirLtr       : "从左到右 (LTR)",\r
+DlgGenLangDirRtl       : "从右到左 (RTL)",\r
+DlgGenLangCode         : "语言代码",\r
+DlgGenAccessKey                : "访问键",\r
+DlgGenName                     : "名称",\r
+DlgGenTabIndex         : "Tab 键次序",\r
+DlgGenLongDescr                : "详细说明地址",\r
+DlgGenClass                    : "样式类名称",\r
+DlgGenTitle                    : "标题",\r
+DlgGenContType         : "内容类型",\r
+DlgGenLinkCharset      : "字符编码",\r
+DlgGenStyle                    : "行内样式",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "图象属性",\r
+DlgImgInfoTab          : "图象",\r
+DlgImgBtnUpload                : "发送到服务器上",\r
+DlgImgURL                      : "源文件",\r
+DlgImgUpload           : "上传",\r
+DlgImgAlt                      : "替换文本",\r
+DlgImgWidth                    : "宽度",\r
+DlgImgHeight           : "高度",\r
+DlgImgLockRatio                : "锁定比例",\r
+DlgBtnResetSize                : "恢复尺寸",\r
+DlgImgBorder           : "边框大小",\r
+DlgImgHSpace           : "水平间距",\r
+DlgImgVSpace           : "垂直间距",\r
+DlgImgAlign                    : "对齐方式",\r
+DlgImgAlignLeft                : "左对齐",\r
+DlgImgAlignAbsBottom: "绝对底边",\r
+DlgImgAlignAbsMiddle: "绝对居中",\r
+DlgImgAlignBaseline    : "基线",\r
+DlgImgAlignBottom      : "底边",\r
+DlgImgAlignMiddle      : "居中",\r
+DlgImgAlignRight       : "右对齐",\r
+DlgImgAlignTextTop     : "文本上方",\r
+DlgImgAlignTop         : "顶端",\r
+DlgImgPreview          : "预览",\r
+DlgImgAlertUrl         : "请输入图象地址",\r
+DlgImgLinkTab          : "链接",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash 属性",\r
+DlgFlashChkPlay                : "自动播放",\r
+DlgFlashChkLoop                : "循环",\r
+DlgFlashChkMenu                : "启用 Flash 菜单",\r
+DlgFlashScale          : "缩放",\r
+DlgFlashScaleAll       : "全部显示",\r
+DlgFlashScaleNoBorder  : "无边框",\r
+DlgFlashScaleFit       : "严格匹配",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "超链接",\r
+DlgLnkInfoTab          : "超链接信息",\r
+DlgLnkTargetTab                : "目标",\r
+\r
+DlgLnkType                     : "超链接类型",\r
+DlgLnkTypeURL          : "超链接",\r
+DlgLnkTypeAnchor       : "页内锚点链接",\r
+DlgLnkTypeEMail                : "电子邮件",\r
+DlgLnkProto                    : "协议",\r
+DlgLnkProtoOther       : "<其它>",\r
+DlgLnkURL                      : "地址",\r
+DlgLnkAnchorSel                : "选择一个锚点",\r
+DlgLnkAnchorByName     : "按锚点名称",\r
+DlgLnkAnchorById       : "按锚点 ID",\r
+DlgLnkNoAnchors                : "<此文档没有可用的锚点>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "地址",\r
+DlgLnkEMailSubject     : "主题",\r
+DlgLnkEMailBody                : "内容",\r
+DlgLnkUpload           : "上传",\r
+DlgLnkBtnUpload                : "发送到服务器上",\r
+\r
+DlgLnkTarget           : "目标",\r
+DlgLnkTargetFrame      : "<框架>",\r
+DlgLnkTargetPopup      : "<弹出窗口>",\r
+DlgLnkTargetBlank      : "新窗口 (_blank)",\r
+DlgLnkTargetParent     : "父窗口 (_parent)",\r
+DlgLnkTargetSelf       : "本窗口 (_self)",\r
+DlgLnkTargetTop                : "整页 (_top)",\r
+DlgLnkTargetFrameName  : "目标框架名称",\r
+DlgLnkPopWinName       : "弹出窗口名称",\r
+DlgLnkPopWinFeat       : "弹出窗口属性",\r
+DlgLnkPopResize                : "调整大小",\r
+DlgLnkPopLocation      : "地址栏",\r
+DlgLnkPopMenu          : "菜单栏",\r
+DlgLnkPopScroll                : "滚动条",\r
+DlgLnkPopStatus                : "状态栏",\r
+DlgLnkPopToolbar       : "工具栏",\r
+DlgLnkPopFullScrn      : "全屏 (IE)",\r
+DlgLnkPopDependent     : "依附 (NS)",\r
+DlgLnkPopWidth         : "宽",\r
+DlgLnkPopHeight                : "高",\r
+DlgLnkPopLeft          : "左",\r
+DlgLnkPopTop           : "右",\r
+\r
+DlnLnkMsgNoUrl         : "请输入超链接地址",\r
+DlnLnkMsgNoEMail       : "请输入电子邮件地址",\r
+DlnLnkMsgNoAnchor      : "请选择一个锚点",\r
+DlnLnkMsgInvPopName    : "弹出窗口名称必须以字母开头,并且不能含有空格。",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "选择颜色",\r
+DlgColorBtnClear       : "清除",\r
+DlgColorHighlight      : "预览",\r
+DlgColorSelected       : "选择",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "插入表情图标",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "选择特殊符号",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "表格属性",\r
+DlgTableRows           : "行数",\r
+DlgTableColumns                : "列数",\r
+DlgTableBorder         : "边框",\r
+DlgTableAlign          : "对齐",\r
+DlgTableAlignNotSet    : "<没有设置>",\r
+DlgTableAlignLeft      : "左对齐",\r
+DlgTableAlignCenter    : "居中",\r
+DlgTableAlignRight     : "右对齐",\r
+DlgTableWidth          : "宽度",\r
+DlgTableWidthPx                : "像素",\r
+DlgTableWidthPc                : "百分比",\r
+DlgTableHeight         : "高度",\r
+DlgTableCellSpace      : "间距",\r
+DlgTableCellPad                : "边距",\r
+DlgTableCaption                : "标题",\r
+DlgTableSummary                : "摘要",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "单元格属性",\r
+DlgCellWidth           : "宽度",\r
+DlgCellWidthPx         : "像素",\r
+DlgCellWidthPc         : "百分比",\r
+DlgCellHeight          : "高度",\r
+DlgCellWordWrap                : "自动换行",\r
+DlgCellWordWrapNotSet  : "<没有设置>",\r
+DlgCellWordWrapYes     : "是",\r
+DlgCellWordWrapNo      : "否",\r
+DlgCellHorAlign                : "水平对齐",\r
+DlgCellHorAlignNotSet  : "<没有设置>",\r
+DlgCellHorAlignLeft    : "左对齐",\r
+DlgCellHorAlignCenter  : "居中",\r
+DlgCellHorAlignRight: "右对齐",\r
+DlgCellVerAlign                : "垂直对齐",\r
+DlgCellVerAlignNotSet  : "<没有设置>",\r
+DlgCellVerAlignTop     : "顶端",\r
+DlgCellVerAlignMiddle  : "居中",\r
+DlgCellVerAlignBottom  : "底部",\r
+DlgCellVerAlignBaseline        : "基线",\r
+DlgCellRowSpan         : "纵跨行数",\r
+DlgCellCollSpan                : "横跨列数",\r
+DlgCellBackColor       : "背景颜色",\r
+DlgCellBorderColor     : "边框颜色",\r
+DlgCellBtnSelect       : "选择...",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "查找",\r
+DlgFindFindBtn         : "查找",\r
+DlgFindNotFoundMsg     : "指定文本没有找到。",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "替换",\r
+DlgReplaceFindLbl              : "查找:",\r
+DlgReplaceReplaceLbl   : "替换:",\r
+DlgReplaceCaseChk              : "区分大小写",\r
+DlgReplaceReplaceBtn   : "替换",\r
+DlgReplaceReplAllBtn   : "全部替换",\r
+DlgReplaceWordChk              : "全字匹配",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl+X)来完成。",\r
+PasteErrorCopy : "您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl+C)来完成。",\r
+\r
+PasteAsText            : "粘贴为无格式文本",\r
+PasteFromWord  : "从 MS Word 粘贴",\r
+\r
+DlgPasteMsg2   : "请使用键盘快捷键(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下面的方框里,再按 <STRONG>确定</STRONG>。",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "忽略 Font 标签",\r
+DlgPasteRemoveStyles   : "清理 CSS 样式",\r
+DlgPasteCleanBox               : "清空上面内容",\r
+\r
+// Color Picker\r
+ColorAutomatic : "自动",\r
+ColorMoreColors        : "其它颜色...",\r
+\r
+// Document Properties\r
+DocProps               : "页面属性",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "命名锚点",\r
+DlgAnchorName          : "锚点名称",\r
+DlgAnchorErrorName     : "请输入锚点名称",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "没有在字典里",\r
+DlgSpellChangeTo               : "更改为",\r
+DlgSpellBtnIgnore              : "忽略",\r
+DlgSpellBtnIgnoreAll   : "全部忽略",\r
+DlgSpellBtnReplace             : "替换",\r
+DlgSpellBtnReplaceAll  : "全部替换",\r
+DlgSpellBtnUndo                        : "撤消",\r
+DlgSpellNoSuggestions  : "- 没有建议 -",\r
+DlgSpellProgress               : "正在进行拼写检查...",\r
+DlgSpellNoMispell              : "拼写检查完成:没有发现拼写错误",\r
+DlgSpellNoChanges              : "拼写检查完成:没有更改任何单词",\r
+DlgSpellOneChange              : "拼写检查完成:更改了一个单词",\r
+DlgSpellManyChanges            : "拼写检查完成:更改了 %1 个单词",\r
+\r
+IeSpellDownload                        : "拼写检查插件还没安装,你是否想现在就下载?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "标签(值)",\r
+DlgButtonType          : "类型",\r
+DlgButtonTypeBtn       : "按钮",\r
+DlgButtonTypeSbm       : "提交",\r
+DlgButtonTypeRst       : "重设",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "名称",\r
+DlgCheckboxValue       : "选定值",\r
+DlgCheckboxSelected    : "已勾选",\r
+\r
+// Form Dialog\r
+DlgFormName            : "名称",\r
+DlgFormAction  : "动作",\r
+DlgFormMethod  : "方法",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "名称",\r
+DlgSelectValue         : "选定",\r
+DlgSelectSize          : "高度",\r
+DlgSelectLines         : "行",\r
+DlgSelectChkMulti      : "允许多选",\r
+DlgSelectOpAvail       : "列表值",\r
+DlgSelectOpText                : "标签",\r
+DlgSelectOpValue       : "值",\r
+DlgSelectBtnAdd                : "新增",\r
+DlgSelectBtnModify     : "修改",\r
+DlgSelectBtnUp         : "上移",\r
+DlgSelectBtnDown       : "下移",\r
+DlgSelectBtnSetValue : "设为初始化时选定",\r
+DlgSelectBtnDelete     : "删除",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "名称",\r
+DlgTextareaCols        : "字符宽度",\r
+DlgTextareaRows        : "行数",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "名称",\r
+DlgTextValue           : "初始值",\r
+DlgTextCharWidth       : "字符宽度",\r
+DlgTextMaxChars                : "最多字符数",\r
+DlgTextType                    : "类型",\r
+DlgTextTypeText                : "文本",\r
+DlgTextTypePass                : "密码",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "名称",\r
+DlgHiddenValue : "初始值",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "项目列表属性",\r
+NumberedListProp       : "编号列表属性",\r
+DlgLstStart                    : "开始序号",\r
+DlgLstType                     : "列表类型",\r
+DlgLstTypeCircle       : "圆圈",\r
+DlgLstTypeDisc         : "圆点",\r
+DlgLstTypeSquare       : "方块",\r
+DlgLstTypeNumbers      : "数字 (1, 2, 3)",\r
+DlgLstTypeLCase                : "小写字母 (a, b, c)",\r
+DlgLstTypeUCase                : "大写字母 (A, B, C)",\r
+DlgLstTypeSRoman       : "小写罗马数字 (i, ii, iii)",\r
+DlgLstTypeLRoman       : "大写罗马数字 (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "常规",\r
+DlgDocBackTab          : "背景",\r
+DlgDocColorsTab                : "颜色和边距",\r
+DlgDocMetaTab          : "Meta 数据",\r
+\r
+DlgDocPageTitle                : "页面标题",\r
+DlgDocLangDir          : "语言方向",\r
+DlgDocLangDirLTR       : "从左到右 (LTR)",\r
+DlgDocLangDirRTL       : "从右到左 (RTL)",\r
+DlgDocLangCode         : "语言代码",\r
+DlgDocCharSet          : "字符编码",\r
+DlgDocCharSetCE                : "中欧",\r
+DlgDocCharSetCT                : "繁体中文 (Big5)",\r
+DlgDocCharSetCR                : "西里尔文",\r
+DlgDocCharSetGR                : "希腊文",\r
+DlgDocCharSetJP                : "日文",\r
+DlgDocCharSetKR                : "韩文",\r
+DlgDocCharSetTR                : "土耳其文",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "西欧",\r
+DlgDocCharSetOther     : "其它字符编码",\r
+\r
+DlgDocDocType          : "文档类型",\r
+DlgDocDocTypeOther     : "其它文档类型",\r
+DlgDocIncXHTML         : "包含 XHTML 声明",\r
+DlgDocBgColor          : "背景颜色",\r
+DlgDocBgImage          : "背景图像",\r
+DlgDocBgNoScroll       : "不滚动背景图像",\r
+DlgDocCText                    : "文本",\r
+DlgDocCLink                    : "超链接",\r
+DlgDocCVisited         : "已访问的超链接",\r
+DlgDocCActive          : "活动超链接",\r
+DlgDocMargins          : "页面边距",\r
+DlgDocMaTop                    : "上",\r
+DlgDocMaLeft           : "左",\r
+DlgDocMaRight          : "右",\r
+DlgDocMaBottom         : "下",\r
+DlgDocMeIndex          : "页面索引关键字 (用半角逗号[,]分隔)",\r
+DlgDocMeDescr          : "页面说明",\r
+DlgDocMeAuthor         : "作者",\r
+DlgDocMeCopy           : "版权",\r
+DlgDocPreview          : "预览",\r
+\r
+// Templates Dialog\r
+Templates                      : "模板",\r
+DlgTemplatesTitle      : "内容模板",\r
+DlgTemplatesSelMsg     : "请选择编辑器内容模板<br>(当前内容将会被清除替换):",\r
+DlgTemplatesLoading    : "正在加载模板列表,请稍等...",\r
+DlgTemplatesNoTpl      : "(没有模板)",\r
+DlgTemplatesReplace    : "替换当前内容",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "关于",\r
+DlgAboutBrowserInfoTab : "浏览器信息",\r
+DlgAboutLicenseTab     : "许可证",\r
+DlgAboutVersion                : "版本",\r
+DlgAboutInfo           : "要获得更多信息请访问 "\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/lang/zh.js b/httemplate/elements/fckeditor/editor/lang/zh.js
new file mode 100644 (file)
index 0000000..b5cd239
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Chinese Traditional language file.\r
+ */\r
+\r
+var FCKLang =\r
+{\r
+// Language direction : "ltr" (left to right) or "rtl" (right to left).\r
+Dir                                    : "ltr",\r
+\r
+ToolbarCollapse                : "隱藏面板",\r
+ToolbarExpand          : "顯示面板",\r
+\r
+// Toolbar Items and Context Menu\r
+Save                           : "儲存",\r
+NewPage                                : "開新檔案",\r
+Preview                                : "預覽",\r
+Cut                                    : "剪下",\r
+Copy                           : "複製",\r
+Paste                          : "貼上",\r
+PasteText                      : "貼為純文字格式",\r
+PasteWord                      : "自 Word 貼上",\r
+Print                          : "列印",\r
+SelectAll                      : "全選",\r
+RemoveFormat           : "清除格式",\r
+InsertLinkLbl          : "超連結",\r
+InsertLink                     : "插入/編輯超連結",\r
+RemoveLink                     : "移除超連結",\r
+Anchor                         : "插入/編輯錨點",\r
+InsertImageLbl         : "影像",\r
+InsertImage                    : "插入/編輯影像",\r
+InsertFlashLbl         : "Flash",\r
+InsertFlash                    : "插入/編輯 Flash",\r
+InsertTableLbl         : "表格",\r
+InsertTable                    : "插入/編輯表格",\r
+InsertLineLbl          : "水平線",\r
+InsertLine                     : "插入水平線",\r
+InsertSpecialCharLbl: "特殊符號",\r
+InsertSpecialChar      : "插入特殊符號",\r
+InsertSmileyLbl                : "表情符號",\r
+InsertSmiley           : "插入表情符號",\r
+About                          : "關於 FCKeditor",\r
+Bold                           : "粗體",\r
+Italic                         : "斜體",\r
+Underline                      : "底線",\r
+StrikeThrough          : "刪除線",\r
+Subscript                      : "下標",\r
+Superscript                    : "上標",\r
+LeftJustify                    : "靠左對齊",\r
+CenterJustify          : "置中",\r
+RightJustify           : "靠右對齊",\r
+BlockJustify           : "左右對齊",\r
+DecreaseIndent         : "減少縮排",\r
+IncreaseIndent         : "增加縮排",\r
+Undo                           : "復原",\r
+Redo                           : "重複",\r
+NumberedListLbl                : "編號清單",\r
+NumberedList           : "插入/移除編號清單",\r
+BulletedListLbl                : "項目清單",\r
+BulletedList           : "插入/移除項目清單",\r
+ShowTableBorders       : "顯示表格邊框",\r
+ShowDetails                    : "顯示詳細資料",\r
+Style                          : "樣式",\r
+FontFormat                     : "格式",\r
+Font                           : "字體",\r
+FontSize                       : "大小",\r
+TextColor                      : "文字顏色",\r
+BGColor                                : "背景顏色",\r
+Source                         : "原始碼",\r
+Find                           : "尋找",\r
+Replace                                : "取代",\r
+SpellCheck                     : "拼字檢查",\r
+UniversalKeyboard      : "萬國鍵盤",\r
+PageBreakLbl           : "分頁符號",\r
+PageBreak                      : "插入分頁符號",\r
+\r
+Form                   : "表單",\r
+Checkbox               : "核取方塊",\r
+RadioButton            : "選項按鈕",\r
+TextField              : "文字方塊",\r
+Textarea               : "文字區域",\r
+HiddenField            : "隱藏欄位",\r
+Button                 : "按鈕",\r
+SelectionField : "清單/選單",\r
+ImageButton            : "影像按鈕",\r
+\r
+FitWindow              : "編輯器最大化",\r
+\r
+// Context Menu\r
+EditLink                       : "編輯超連結",\r
+CellCM                         : "儲存格",\r
+RowCM                          : "列",\r
+ColumnCM                       : "欄",\r
+InsertRow                      : "插入列",\r
+DeleteRows                     : "刪除列",\r
+InsertColumn           : "插入欄",\r
+DeleteColumns          : "刪除欄",\r
+InsertCell                     : "插入儲存格",\r
+DeleteCells                    : "刪除儲存格",\r
+MergeCells                     : "合併儲存格",\r
+SplitCell                      : "分割儲存格",\r
+TableDelete                    : "刪除表格",\r
+CellProperties         : "儲存格屬性",\r
+TableProperties                : "表格屬性",\r
+ImageProperties                : "影像屬性",\r
+FlashProperties                : "Flash 屬性",\r
+\r
+AnchorProp                     : "錨點屬性",\r
+ButtonProp                     : "按鈕屬性",\r
+CheckboxProp           : "核取方塊屬性",\r
+HiddenFieldProp                : "隱藏欄位屬性",\r
+RadioButtonProp                : "選項按鈕屬性",\r
+ImageButtonProp                : "影像按鈕屬性",\r
+TextFieldProp          : "文字方塊屬性",\r
+SelectionFieldProp     : "清單/選單屬性",\r
+TextareaProp           : "文字區域屬性",\r
+FormProp                       : "表單屬性",\r
+\r
+FontFormats                    : "本文;已格式化;位址;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;本文 (DIV)",              //REVIEW : Check _getfontformat.html\r
+\r
+// Alerts and Messages\r
+ProcessingXHTML                : "處理 XHTML 中,請稍候…",\r
+Done                           : "完成",\r
+PasteWordConfirm       : "您想貼上的文字似乎是自 Word 複製而來,請問您是否要先清除 Word 的格式後再行貼上?",\r
+NotCompatiblePaste     : "此指令僅在 Internet Explorer 5.5 或以上的版本有效。請問您是否同意不清除格式即貼上?",\r
+UnknownToolbarItem     : "未知工具列項目 \"%1\"",\r
+UnknownCommand         : "未知指令名稱 \"%1\"",\r
+NotImplemented         : "尚未安裝此指令",\r
+UnknownToolbarSet      : "工具列設定 \"%1\" 不存在",\r
+NoActiveX                      : "瀏覽器的安全性設定限制了本編輯器的某些功能。您必須啟用安全性設定中的「執行ActiveX控制項與外掛程式」項目,否則本編輯器將會出現錯誤並缺少某些功能",\r
+BrowseServerBlocked : "無法開啟資源瀏覽器,請確定所有快顯視窗封鎖程式是否關閉",\r
+DialogBlocked          : "無法開啟對話視窗,請確定所有快顯視窗封鎖程式是否關閉",\r
+\r
+// Dialogs\r
+DlgBtnOK                       : "確定",\r
+DlgBtnCancel           : "取消",\r
+DlgBtnClose                    : "關閉",\r
+DlgBtnBrowseServer     : "瀏覽伺服器端",\r
+DlgAdvancedTag         : "進階",\r
+DlgOpOther                     : "<其他>",\r
+DlgInfoTab                     : "資訊",\r
+DlgAlertUrl                    : "請插入 URL",\r
+\r
+// General Dialogs Labels\r
+DlgGenNotSet           : "<尚未設定>",\r
+DlgGenId                       : "ID",\r
+DlgGenLangDir          : "語言方向",\r
+DlgGenLangDirLtr       : "由左而右 (LTR)",\r
+DlgGenLangDirRtl       : "由右而左 (RTL)",\r
+DlgGenLangCode         : "語言代碼",\r
+DlgGenAccessKey                : "存取鍵",\r
+DlgGenName                     : "名稱",\r
+DlgGenTabIndex         : "定位順序",\r
+DlgGenLongDescr                : "詳細 URL",\r
+DlgGenClass                    : "樣式表類別",\r
+DlgGenTitle                    : "標題",\r
+DlgGenContType         : "內容類型",\r
+DlgGenLinkCharset      : "連結資源之編碼",\r
+DlgGenStyle                    : "樣式",\r
+\r
+// Image Dialog\r
+DlgImgTitle                    : "影像屬性",\r
+DlgImgInfoTab          : "影像資訊",\r
+DlgImgBtnUpload                : "上傳至伺服器",\r
+DlgImgURL                      : "URL",\r
+DlgImgUpload           : "上傳",\r
+DlgImgAlt                      : "替代文字",\r
+DlgImgWidth                    : "寬度",\r
+DlgImgHeight           : "高度",\r
+DlgImgLockRatio                : "等比例",\r
+DlgBtnResetSize                : "重設為原大小",\r
+DlgImgBorder           : "邊框",\r
+DlgImgHSpace           : "水平距離",\r
+DlgImgVSpace           : "垂直距離",\r
+DlgImgAlign                    : "對齊",\r
+DlgImgAlignLeft                : "靠左對齊",\r
+DlgImgAlignAbsBottom: "絕對下方",\r
+DlgImgAlignAbsMiddle: "絕對中間",\r
+DlgImgAlignBaseline    : "基準線",\r
+DlgImgAlignBottom      : "靠下對齊",\r
+DlgImgAlignMiddle      : "置中對齊",\r
+DlgImgAlignRight       : "靠右對齊",\r
+DlgImgAlignTextTop     : "文字上方",\r
+DlgImgAlignTop         : "靠上對齊",\r
+DlgImgPreview          : "預覽",\r
+DlgImgAlertUrl         : "請輸入影像 URL",\r
+DlgImgLinkTab          : "超連結",\r
+\r
+// Flash Dialog\r
+DlgFlashTitle          : "Flash 屬性",\r
+DlgFlashChkPlay                : "自動播放",\r
+DlgFlashChkLoop                : "重複",\r
+DlgFlashChkMenu                : "開啟選單",\r
+DlgFlashScale          : "縮放",\r
+DlgFlashScaleAll       : "全部顯示",\r
+DlgFlashScaleNoBorder  : "無邊框",\r
+DlgFlashScaleFit       : "精確符合",\r
+\r
+// Link Dialog\r
+DlgLnkWindowTitle      : "超連結",\r
+DlgLnkInfoTab          : "超連結資訊",\r
+DlgLnkTargetTab                : "目標",\r
+\r
+DlgLnkType                     : "超連接類型",\r
+DlgLnkTypeURL          : "URL",\r
+DlgLnkTypeAnchor       : "本頁錨點",\r
+DlgLnkTypeEMail                : "電子郵件",\r
+DlgLnkProto                    : "通訊協定",\r
+DlgLnkProtoOther       : "<其他>",\r
+DlgLnkURL                      : "URL",\r
+DlgLnkAnchorSel                : "請選擇錨點",\r
+DlgLnkAnchorByName     : "依錨點名稱",\r
+DlgLnkAnchorById       : "依元件 ID",\r
+DlgLnkNoAnchors                : "<本文件尚無可用之錨點>",           //REVIEW : Change < and > with ( and )\r
+DlgLnkEMail                    : "電子郵件",\r
+DlgLnkEMailSubject     : "郵件主旨",\r
+DlgLnkEMailBody                : "郵件內容",\r
+DlgLnkUpload           : "上傳",\r
+DlgLnkBtnUpload                : "傳送至伺服器",\r
+\r
+DlgLnkTarget           : "目標",\r
+DlgLnkTargetFrame      : "<框架>",\r
+DlgLnkTargetPopup      : "<快顯視窗>",\r
+DlgLnkTargetBlank      : "新視窗 (_blank)",\r
+DlgLnkTargetParent     : "父視窗 (_parent)",\r
+DlgLnkTargetSelf       : "本視窗 (_self)",\r
+DlgLnkTargetTop                : "最上層視窗 (_top)",\r
+DlgLnkTargetFrameName  : "目標框架名稱",\r
+DlgLnkPopWinName       : "快顯視窗名稱",\r
+DlgLnkPopWinFeat       : "快顯視窗屬性",\r
+DlgLnkPopResize                : "可調整大小",\r
+DlgLnkPopLocation      : "網址列",\r
+DlgLnkPopMenu          : "選單列",\r
+DlgLnkPopScroll                : "捲軸",\r
+DlgLnkPopStatus                : "狀態列",\r
+DlgLnkPopToolbar       : "工具列",\r
+DlgLnkPopFullScrn      : "全螢幕 (IE)",\r
+DlgLnkPopDependent     : "從屬 (NS)",\r
+DlgLnkPopWidth         : "寬",\r
+DlgLnkPopHeight                : "高",\r
+DlgLnkPopLeft          : "左",\r
+DlgLnkPopTop           : "右",\r
+\r
+DlnLnkMsgNoUrl         : "請輸入欲連結的 URL",\r
+DlnLnkMsgNoEMail       : "請輸入電子郵件位址",\r
+DlnLnkMsgNoAnchor      : "請選擇錨點",\r
+DlnLnkMsgInvPopName    : "快顯名稱必須以「英文字母」為開頭,且不得含有空白",\r
+\r
+// Color Dialog\r
+DlgColorTitle          : "請選擇顏色",\r
+DlgColorBtnClear       : "清除",\r
+DlgColorHighlight      : "預覽",\r
+DlgColorSelected       : "選擇",\r
+\r
+// Smiley Dialog\r
+DlgSmileyTitle         : "插入表情符號",\r
+\r
+// Special Character Dialog\r
+DlgSpecialCharTitle    : "請選擇特殊符號",\r
+\r
+// Table Dialog\r
+DlgTableTitle          : "表格屬性",\r
+DlgTableRows           : "列數",\r
+DlgTableColumns                : "欄數",\r
+DlgTableBorder         : "邊框",\r
+DlgTableAlign          : "對齊",\r
+DlgTableAlignNotSet    : "<未設定>",\r
+DlgTableAlignLeft      : "靠左對齊",\r
+DlgTableAlignCenter    : "置中",\r
+DlgTableAlignRight     : "靠右對齊",\r
+DlgTableWidth          : "寬度",\r
+DlgTableWidthPx                : "像素",\r
+DlgTableWidthPc                : "百分比",\r
+DlgTableHeight         : "高度",\r
+DlgTableCellSpace      : "間距",\r
+DlgTableCellPad                : "內距",\r
+DlgTableCaption                : "標題",\r
+DlgTableSummary                : "摘要",\r
+\r
+// Table Cell Dialog\r
+DlgCellTitle           : "儲存格屬性",\r
+DlgCellWidth           : "寬度",\r
+DlgCellWidthPx         : "像素",\r
+DlgCellWidthPc         : "百分比",\r
+DlgCellHeight          : "高度",\r
+DlgCellWordWrap                : "自動換行",\r
+DlgCellWordWrapNotSet  : "<尚未設定>",\r
+DlgCellWordWrapYes     : "是",\r
+DlgCellWordWrapNo      : "否",\r
+DlgCellHorAlign                : "水平對齊",\r
+DlgCellHorAlignNotSet  : "<尚未設定>",\r
+DlgCellHorAlignLeft    : "靠左對齊",\r
+DlgCellHorAlignCenter  : "置中",\r
+DlgCellHorAlignRight: "靠右對齊",\r
+DlgCellVerAlign                : "垂直對齊",\r
+DlgCellVerAlignNotSet  : "<尚未設定>",\r
+DlgCellVerAlignTop     : "靠上對齊",\r
+DlgCellVerAlignMiddle  : "置中",\r
+DlgCellVerAlignBottom  : "靠下對齊",\r
+DlgCellVerAlignBaseline        : "基準線",\r
+DlgCellRowSpan         : "合併列數",\r
+DlgCellCollSpan                : "合併欄数",\r
+DlgCellBackColor       : "背景顏色",\r
+DlgCellBorderColor     : "邊框顏色",\r
+DlgCellBtnSelect       : "請選擇…",\r
+\r
+// Find Dialog\r
+DlgFindTitle           : "尋找",\r
+DlgFindFindBtn         : "尋找",\r
+DlgFindNotFoundMsg     : "未找到指定的文字。",\r
+\r
+// Replace Dialog\r
+DlgReplaceTitle                        : "取代",\r
+DlgReplaceFindLbl              : "尋找:",\r
+DlgReplaceReplaceLbl   : "取代:",\r
+DlgReplaceCaseChk              : "大小寫須相符",\r
+DlgReplaceReplaceBtn   : "取代",\r
+DlgReplaceReplAllBtn   : "全部取代",\r
+DlgReplaceWordChk              : "全字相符",\r
+\r
+// Paste Operations / Dialog\r
+PasteErrorCut  : "瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl+X) 剪下。",\r
+PasteErrorCopy : "瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用快捷鍵 (Ctrl+C) 複製。",\r
+\r
+PasteAsText            : "貼為純文字格式",\r
+PasteFromWord  : "自 Word 貼上",\r
+\r
+DlgPasteMsg2   : "請使用快捷鍵 (<strong>Ctrl+V</strong>) 貼到下方區域中並按下 <strong>確定</strong>",\r
+DlgPasteSec            : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",       //MISSING\r
+DlgPasteIgnoreFont             : "移除字型設定",\r
+DlgPasteRemoveStyles   : "移除樣式設定",\r
+DlgPasteCleanBox               : "清除文字區域",\r
+\r
+// Color Picker\r
+ColorAutomatic : "自動",\r
+ColorMoreColors        : "更多顏色…",\r
+\r
+// Document Properties\r
+DocProps               : "文件屬性",\r
+\r
+// Anchor Dialog\r
+DlgAnchorTitle         : "命名錨點",\r
+DlgAnchorName          : "錨點名稱",\r
+DlgAnchorErrorName     : "請輸入錨點名稱",\r
+\r
+// Speller Pages Dialog\r
+DlgSpellNotInDic               : "不在字典中",\r
+DlgSpellChangeTo               : "更改為",\r
+DlgSpellBtnIgnore              : "忽略",\r
+DlgSpellBtnIgnoreAll   : "全部忽略",\r
+DlgSpellBtnReplace             : "取代",\r
+DlgSpellBtnReplaceAll  : "全部取代",\r
+DlgSpellBtnUndo                        : "復原",\r
+DlgSpellNoSuggestions  : "- 無建議值 -",\r
+DlgSpellProgress               : "進行拼字檢查中…",\r
+DlgSpellNoMispell              : "拼字檢查完成:未發現拼字錯誤",\r
+DlgSpellNoChanges              : "拼字檢查完成:未更改任何單字",\r
+DlgSpellOneChange              : "拼字檢查完成:更改了 1 個單字",\r
+DlgSpellManyChanges            : "拼字檢查完成:更改了 %1 個單字",\r
+\r
+IeSpellDownload                        : "尚未安裝拼字檢查元件。您是否想要現在下載?",\r
+\r
+// Button Dialog\r
+DlgButtonText          : "顯示文字 (值)",\r
+DlgButtonType          : "類型",\r
+DlgButtonTypeBtn       : "按鈕 (Button)",\r
+DlgButtonTypeSbm       : "送出 (Submit)",\r
+DlgButtonTypeRst       : "重設 (Reset)",\r
+\r
+// Checkbox and Radio Button Dialogs\r
+DlgCheckboxName                : "名稱",\r
+DlgCheckboxValue       : "選取值",\r
+DlgCheckboxSelected    : "已選取",\r
+\r
+// Form Dialog\r
+DlgFormName            : "名稱",\r
+DlgFormAction  : "動作",\r
+DlgFormMethod  : "方法",\r
+\r
+// Select Field Dialog\r
+DlgSelectName          : "名稱",\r
+DlgSelectValue         : "選取值",\r
+DlgSelectSize          : "大小",\r
+DlgSelectLines         : "行",\r
+DlgSelectChkMulti      : "可多選",\r
+DlgSelectOpAvail       : "可用選項",\r
+DlgSelectOpText                : "顯示文字",\r
+DlgSelectOpValue       : "值",\r
+DlgSelectBtnAdd                : "新增",\r
+DlgSelectBtnModify     : "修改",\r
+DlgSelectBtnUp         : "上移",\r
+DlgSelectBtnDown       : "下移",\r
+DlgSelectBtnSetValue : "設為預設值",\r
+DlgSelectBtnDelete     : "刪除",\r
+\r
+// Textarea Dialog\r
+DlgTextareaName        : "名稱",\r
+DlgTextareaCols        : "字元寬度",\r
+DlgTextareaRows        : "列數",\r
+\r
+// Text Field Dialog\r
+DlgTextName                    : "名稱",\r
+DlgTextValue           : "值",\r
+DlgTextCharWidth       : "字元寬度",\r
+DlgTextMaxChars                : "最多字元數",\r
+DlgTextType                    : "類型",\r
+DlgTextTypeText                : "文字",\r
+DlgTextTypePass                : "密碼",\r
+\r
+// Hidden Field Dialog\r
+DlgHiddenName  : "名稱",\r
+DlgHiddenValue : "值",\r
+\r
+// Bulleted List Dialog\r
+BulletedListProp       : "項目清單屬性",\r
+NumberedListProp       : "編號清單屬性",\r
+DlgLstStart                    : "起始編號",\r
+DlgLstType                     : "清單類型",\r
+DlgLstTypeCircle       : "圓圈",\r
+DlgLstTypeDisc         : "圓點",\r
+DlgLstTypeSquare       : "方塊",\r
+DlgLstTypeNumbers      : "數字 (1, 2, 3)",\r
+DlgLstTypeLCase                : "小寫字母 (a, b, c)",\r
+DlgLstTypeUCase                : "大寫字母 (A, B, C)",\r
+DlgLstTypeSRoman       : "小寫羅馬數字 (i, ii, iii)",\r
+DlgLstTypeLRoman       : "大寫羅馬數字 (I, II, III)",\r
+\r
+// Document Properties Dialog\r
+DlgDocGeneralTab       : "一般",\r
+DlgDocBackTab          : "背景",\r
+DlgDocColorsTab                : "顯色與邊界",\r
+DlgDocMetaTab          : "Meta 資料",\r
+\r
+DlgDocPageTitle                : "頁面標題",\r
+DlgDocLangDir          : "語言方向",\r
+DlgDocLangDirLTR       : "由左而右 (LTR)",\r
+DlgDocLangDirRTL       : "由右而左 (RTL)",\r
+DlgDocLangCode         : "語言代碼",\r
+DlgDocCharSet          : "字元編碼",\r
+DlgDocCharSetCE                : "中歐語系",\r
+DlgDocCharSetCT                : "正體中文 (Big5)",\r
+DlgDocCharSetCR                : "斯拉夫文",\r
+DlgDocCharSetGR                : "希臘文",\r
+DlgDocCharSetJP                : "日文",\r
+DlgDocCharSetKR                : "韓文",\r
+DlgDocCharSetTR                : "土耳其文",\r
+DlgDocCharSetUN                : "Unicode (UTF-8)",\r
+DlgDocCharSetWE                : "西歐語系",\r
+DlgDocCharSetOther     : "其他字元編碼",\r
+\r
+DlgDocDocType          : "文件類型",\r
+DlgDocDocTypeOther     : "其他文件類型",\r
+DlgDocIncXHTML         : "包含 XHTML 定義",\r
+DlgDocBgColor          : "背景顏色",\r
+DlgDocBgImage          : "背景影像",\r
+DlgDocBgNoScroll       : "浮水印",\r
+DlgDocCText                    : "文字",\r
+DlgDocCLink                    : "超連結",\r
+DlgDocCVisited         : "已瀏覽過的超連結",\r
+DlgDocCActive          : "作用中的超連結",\r
+DlgDocMargins          : "頁面邊界",\r
+DlgDocMaTop                    : "上",\r
+DlgDocMaLeft           : "左",\r
+DlgDocMaRight          : "右",\r
+DlgDocMaBottom         : "下",\r
+DlgDocMeIndex          : "文件索引關鍵字 (用半形逗號[,]分隔)",\r
+DlgDocMeDescr          : "文件說明",\r
+DlgDocMeAuthor         : "作者",\r
+DlgDocMeCopy           : "版權所有",\r
+DlgDocPreview          : "預覽",\r
+\r
+// Templates Dialog\r
+Templates                      : "樣版",\r
+DlgTemplatesTitle      : "內容樣版",\r
+DlgTemplatesSelMsg     : "請選擇欲開啟的樣版<br> (原有的內容將會被清除):",\r
+DlgTemplatesLoading    : "讀取樣版清單中,請稍候…",\r
+DlgTemplatesNoTpl      : "(無樣版)",\r
+DlgTemplatesReplace    : "取代原有內容",\r
+\r
+// About Dialog\r
+DlgAboutAboutTab       : "關於",\r
+DlgAboutBrowserInfoTab : "瀏覽器資訊",\r
+DlgAboutLicenseTab     : "許可證",\r
+DlgAboutVersion                : "版本",\r
+DlgAboutInfo           : "想獲得更多資訊請至 "\r
+};
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/autogrow/fckplugin.js b/httemplate/elements/fckeditor/editor/plugins/autogrow/fckplugin.js
new file mode 100644 (file)
index 0000000..7ce1c1c
--- /dev/null
@@ -0,0 +1,92 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Plugin: automatically resizes the editor until a configurable maximun\r
+ * height (FCKConfig.AutoGrowMax), based on its contents.\r
+ */\r
+\r
+var FCKAutoGrow_Min = window.frameElement.offsetHeight ;\r
+\r
+function FCKAutoGrow_Check()\r
+{\r
+       var oInnerDoc = FCK.EditorDocument ;\r
+\r
+       var iFrameHeight, iInnerHeight ;\r
+\r
+       if ( FCKBrowserInfo.IsIE )\r
+       {\r
+               iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;\r
+               iInnerHeight = oInnerDoc.body.scrollHeight ;\r
+       }\r
+       else\r
+       {\r
+               iFrameHeight = FCK.EditorWindow.innerHeight ;\r
+               iInnerHeight = oInnerDoc.body.offsetHeight ;\r
+       }\r
+\r
+       var iDiff = iInnerHeight - iFrameHeight ;\r
+\r
+       if ( iDiff != 0 )\r
+       {\r
+               var iMainFrameSize = window.frameElement.offsetHeight ;\r
+\r
+               if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )\r
+               {\r
+                       iMainFrameSize += iDiff ;\r
+                       if ( iMainFrameSize > FCKConfig.AutoGrowMax )\r
+                               iMainFrameSize = FCKConfig.AutoGrowMax ;\r
+               }\r
+               else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )\r
+               {\r
+                       iMainFrameSize += iDiff ;\r
+                       if ( iMainFrameSize < FCKAutoGrow_Min )\r
+                               iMainFrameSize = FCKAutoGrow_Min ;\r
+               }\r
+               else\r
+                       return ;\r
+\r
+               window.frameElement.height = iMainFrameSize ;\r
+       }\r
+}\r
+\r
+FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;\r
+\r
+function FCKAutoGrow_SetListeners()\r
+{\r
+       if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )\r
+               return ;\r
+\r
+       FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;\r
+       FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;\r
+}\r
+\r
+if ( FCKBrowserInfo.IsIE )\r
+{\r
+//     FCKAutoGrow_SetListeners() ;\r
+       FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;\r
+}\r
+\r
+function FCKAutoGrow_CheckEditorStatus( sender, status )\r
+{\r
+       if ( status == FCK_STATUS_COMPLETE )\r
+               FCKAutoGrow_Check() ;\r
+}\r
+\r
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/fck_placeholder.html b/httemplate/elements/fckeditor/editor/plugins/placeholder/fck_placeholder.html
new file mode 100644 (file)
index 0000000..a334206
--- /dev/null
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placeholder Plugin.\r
+-->\r
+<html>\r
+       <head>\r
+               <title>Placeholder Properties</title>\r
+               <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+               <meta content="noindex, nofollow" name="robots">\r
+               <script language="javascript">\r
+\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
+var FCKLang = oEditor.FCKLang ;\r
+var FCKPlaceholders = oEditor.FCKPlaceholders ;\r
+\r
+window.onload = function ()\r
+{\r
+       // First of all, translate the dialog box texts\r
+       oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
+\r
+       LoadSelected() ;\r
+\r
+       // Show the "Ok" button.\r
+       window.parent.SetOkButton( true ) ;\r
+}\r
+\r
+var eSelected = oEditor.FCKSelection.GetSelectedElement() ;\r
+\r
+function LoadSelected()\r
+{\r
+       if ( !eSelected )\r
+               return ;\r
+\r
+       if ( eSelected.tagName == 'SPAN' && eSelected._fckplaceholder )\r
+               document.getElementById('txtName').value = eSelected._fckplaceholder ;\r
+       else\r
+               eSelected == null ;\r
+}\r
+\r
+function Ok()\r
+{\r
+       var sValue = document.getElementById('txtName').value ;\r
+\r
+       if ( eSelected && eSelected._fckplaceholder == sValue )\r
+               return true ;\r
+\r
+       if ( sValue.length == 0 )\r
+       {\r
+               alert( FCKLang.PlaceholderErrNoName ) ;\r
+               return false ;\r
+       }\r
+\r
+       if ( FCKPlaceholders.Exist( sValue ) )\r
+       {\r
+               alert( FCKLang.PlaceholderErrNameInUse ) ;\r
+               return false ;\r
+       }\r
+\r
+       FCKPlaceholders.Add( sValue ) ;\r
+       return true ;\r
+}\r
+\r
+               </script>\r
+       </head>\r
+       <body scroll="no" style="OVERFLOW: hidden">\r
+               <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">\r
+                       <tr>\r
+                               <td>\r
+                                       <table cellSpacing="0" cellPadding="0" align="center" border="0">\r
+                                               <tr>\r
+                                                       <td>\r
+                                                               <span fckLang="PlaceholderDlgName">Placeholder Name</span><br>\r
+                                                               <input id="txtName" type="text">\r
+                                                       </td>\r
+                                               </tr>\r
+                                       </table>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </body>\r
+</html>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/fckplugin.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/fckplugin.js
new file mode 100644 (file)
index 0000000..26489b8
--- /dev/null
@@ -0,0 +1,187 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Plugin to insert "Placeholders" in the editor.\r
+ */\r
+\r
+// Register the related command.\r
+FCKCommands.RegisterCommand( 'Placeholder', new FCKDialogCommand( 'Placeholder', FCKLang.PlaceholderDlgTitle, FCKPlugins.Items['placeholder'].Path + 'fck_placeholder.html', 340, 170 ) ) ;\r
+\r
+// Create the "Plaholder" toolbar button.\r
+var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ;\r
+oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ;\r
+\r
+FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ;\r
+\r
+\r
+// The object used for all Placeholder operations.\r
+var FCKPlaceholders = new Object() ;\r
+\r
+// Add a new placeholder at the actual selection.\r
+FCKPlaceholders.Add = function( name )\r
+{\r
+       var oSpan = FCK.CreateElement( 'SPAN' ) ;\r
+       this.SetupSpan( oSpan, name ) ;\r
+}\r
+\r
+FCKPlaceholders.SetupSpan = function( span, name )\r
+{\r
+       span.innerHTML = '[[ ' + name + ' ]]' ;\r
+\r
+       span.style.backgroundColor = '#ffff00' ;\r
+       span.style.color = '#000000' ;\r
+\r
+       if ( FCKBrowserInfo.IsGecko )\r
+               span.style.cursor = 'default' ;\r
+\r
+       span._fckplaceholder = name ;\r
+       span.contentEditable = false ;\r
+\r
+       // To avoid it to be resized.\r
+       span.onresizestart = function()\r
+       {\r
+               FCK.EditorWindow.event.returnValue = false ;\r
+               return false ;\r
+       }\r
+}\r
+\r
+// On Gecko we must do this trick so the user select all the SPAN when clicking on it.\r
+FCKPlaceholders._SetupClickListener = function()\r
+{\r
+       FCKPlaceholders._ClickListener = function( e )\r
+       {\r
+               if ( e.target.tagName == 'SPAN' && e.target._fckplaceholder )\r
+                       FCKSelection.SelectNode( e.target ) ;\r
+       }\r
+\r
+       FCK.EditorDocument.addEventListener( 'click', FCKPlaceholders._ClickListener, true ) ;\r
+}\r
+\r
+// Open the Placeholder dialog on double click.\r
+FCKPlaceholders.OnDoubleClick = function( span )\r
+{\r
+       if ( span.tagName == 'SPAN' && span._fckplaceholder )\r
+               FCKCommands.GetCommand( 'Placeholder' ).Execute() ;\r
+}\r
+\r
+FCK.RegisterDoubleClickHandler( FCKPlaceholders.OnDoubleClick, 'SPAN' ) ;\r
+\r
+// Check if a Placholder name is already in use.\r
+FCKPlaceholders.Exist = function( name )\r
+{\r
+       var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;\r
+\r
+       for ( var i = 0 ; i < aSpans.length ; i++ )\r
+       {\r
+               if ( aSpans[i]._fckplaceholder == name )\r
+                       return true ;\r
+       }\r
+\r
+       return false ;\r
+}\r
+\r
+if ( FCKBrowserInfo.IsIE )\r
+{\r
+       FCKPlaceholders.Redraw = function()\r
+       {\r
+               if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )\r
+                       return ;\r
+\r
+               var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ;\r
+               if ( !aPlaholders )\r
+                       return ;\r
+\r
+               var oRange = FCK.EditorDocument.body.createTextRange() ;\r
+\r
+               for ( var i = 0 ; i < aPlaholders.length ; i++ )\r
+               {\r
+                       if ( oRange.findText( aPlaholders[i] ) )\r
+                       {\r
+                               var sName = aPlaholders[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;\r
+                               oRange.pasteHTML( '<span style="color: #000000; background-color: #ffff00" contenteditable="false" _fckplaceholder="' + sName + '">' + aPlaholders[i] + '</span>' ) ;\r
+                       }\r
+               }\r
+       }\r
+}\r
+else\r
+{\r
+       FCKPlaceholders.Redraw = function()\r
+       {\r
+               if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )\r
+                       return ;\r
+\r
+               var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ;\r
+\r
+               var     aNodes = new Array() ;\r
+\r
+               while ( ( oNode = oInteractor.nextNode() ) )\r
+               {\r
+                       aNodes[ aNodes.length ] = oNode ;\r
+               }\r
+\r
+               for ( var n = 0 ; n < aNodes.length ; n++ )\r
+               {\r
+                       var aPieces = aNodes[n].nodeValue.split( /(\[\[[^\[\]]+\]\])/g ) ;\r
+\r
+                       for ( var i = 0 ; i < aPieces.length ; i++ )\r
+                       {\r
+                               if ( aPieces[i].length > 0 )\r
+                               {\r
+                                       if ( aPieces[i].indexOf( '[[' ) == 0 )\r
+                                       {\r
+                                               var sName = aPieces[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;\r
+\r
+                                               var oSpan = FCK.EditorDocument.createElement( 'span' ) ;\r
+                                               FCKPlaceholders.SetupSpan( oSpan, sName ) ;\r
+\r
+                                               aNodes[n].parentNode.insertBefore( oSpan, aNodes[n] ) ;\r
+                                       }\r
+                                       else\r
+                                               aNodes[n].parentNode.insertBefore( FCK.EditorDocument.createTextNode( aPieces[i] ) , aNodes[n] ) ;\r
+                               }\r
+                       }\r
+\r
+                       aNodes[n].parentNode.removeChild( aNodes[n] ) ;\r
+               }\r
+\r
+               FCKPlaceholders._SetupClickListener() ;\r
+       }\r
+\r
+       FCKPlaceholders._AcceptNode = function( node )\r
+       {\r
+               if ( /\[\[[^\[\]]+\]\]/.test( node.nodeValue ) )\r
+                       return NodeFilter.FILTER_ACCEPT ;\r
+               else\r
+                       return NodeFilter.FILTER_SKIP ;\r
+       }\r
+}\r
+\r
+FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ;\r
+\r
+// We must process the SPAN tags to replace then with the real resulting value of the placeholder.\r
+FCKXHtml.TagProcessors['span'] = function( node, htmlNode )\r
+{\r
+       if ( htmlNode._fckplaceholder )\r
+               node = FCKXHtml.XML.createTextNode( '[[' + htmlNode._fckplaceholder + ']]' ) ;\r
+       else\r
+               FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;\r
+\r
+       return node ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/de.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/de.js
new file mode 100644 (file)
index 0000000..a666f8b
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placholder German language file.\r
+ */\r
+FCKLang.PlaceholderBtn                 = 'Einfügen/editieren Platzhalter' ;\r
+FCKLang.PlaceholderDlgTitle            = 'Platzhalter Eigenschaften' ;\r
+FCKLang.PlaceholderDlgName             = 'Platzhalter Name' ;\r
+FCKLang.PlaceholderErrNoName   = 'Bitte den Namen des Platzhalters schreiben' ;\r
+FCKLang.PlaceholderErrNameInUse        = 'Der angegebene Namen ist schon in Gebrauch' ;
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/en.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/en.js
new file mode 100644 (file)
index 0000000..290a3fb
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placholder English language file.\r
+ */\r
+FCKLang.PlaceholderBtn                 = 'Insert/Edit Placeholder' ;\r
+FCKLang.PlaceholderDlgTitle            = 'Placeholder Properties' ;\r
+FCKLang.PlaceholderDlgName             = 'Placeholder Name' ;\r
+FCKLang.PlaceholderErrNoName   = 'Please type the placeholder name' ;\r
+FCKLang.PlaceholderErrNameInUse        = 'The specified name is already in use' ;
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/fr.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/fr.js
new file mode 100644 (file)
index 0000000..f5ac26e
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placeholder French language file.\r
+ */\r
+FCKLang.PlaceholderBtn                 = "Insérer/Modifier l'Espace réservé" ;\r
+FCKLang.PlaceholderDlgTitle            = "Propriétés de l'Espace réservé" ;\r
+FCKLang.PlaceholderDlgName             = "Nom de l'Espace réservé" ;\r
+FCKLang.PlaceholderErrNoName   = "Veuillez saisir le nom de l'Espace réservé" ;\r
+FCKLang.PlaceholderErrNameInUse        = "Ce nom est déjà utilisé" ;\r
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/it.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/it.js
new file mode 100644 (file)
index 0000000..51d75c0
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placholder Italian language file.\r
+ */\r
+FCKLang.PlaceholderBtn                 = 'Aggiungi/Modifica Placeholder' ;\r
+FCKLang.PlaceholderDlgTitle            = 'Proprietà del Placeholder' ;\r
+FCKLang.PlaceholderDlgName             = 'Nome del Placeholder' ;\r
+FCKLang.PlaceholderErrNoName   = 'Digitare il nome del placeholder' ;\r
+FCKLang.PlaceholderErrNameInUse        = 'Il nome inserito è già in uso' ;\r
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/pl.js b/httemplate/elements/fckeditor/editor/plugins/placeholder/lang/pl.js
new file mode 100644 (file)
index 0000000..bc55b38
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Placholder Polish language file.\r
+ */\r
+FCKLang.PlaceholderBtn                 = 'Wstaw/Edytuj nagłówek' ;\r
+FCKLang.PlaceholderDlgTitle            = 'Właśności nagłówka' ;\r
+FCKLang.PlaceholderDlgName             = 'Nazwa nagłówka' ;\r
+FCKLang.PlaceholderErrNoName   = 'Proszę wprowadzić nazwę nagłówka' ;\r
+FCKLang.PlaceholderErrNameInUse        = 'Podana nazwa jest już w użyciu' ;
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/plugins/placeholder/placeholder.gif b/httemplate/elements/fckeditor/editor/plugins/placeholder/placeholder.gif
new file mode 100644 (file)
index 0000000..c07078c
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/plugins/placeholder/placeholder.gif differ
diff --git a/httemplate/elements/fckeditor/editor/plugins/simplecommands/fckplugin.js b/httemplate/elements/fckeditor/editor/plugins/simplecommands/fckplugin.js
new file mode 100644 (file)
index 0000000..cd25b6a
--- /dev/null
@@ -0,0 +1,29 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This plugin register Toolbar items for the combos modifying the style to\r
+ * not show the box.\r
+ */\r
+\r
+FCKToolbarItems.RegisterItem( 'SourceSimple'   , new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'StyleSimple'            , new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;\r
+FCKToolbarItems.RegisterItem( 'FontNameSimple' , new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;\r
+FCKToolbarItems.RegisterItem( 'FontSizeSimple' , new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;\r
+FCKToolbarItems.RegisterItem( 'FontFormatSimple', new FCKToolbarFontFormatCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;\r
diff --git a/httemplate/elements/fckeditor/editor/plugins/tablecommands/fckplugin.js b/httemplate/elements/fckeditor/editor/plugins/tablecommands/fckplugin.js
new file mode 100644 (file)
index 0000000..88dac9c
--- /dev/null
@@ -0,0 +1,32 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This plugin register the required Toolbar items to be able to insert the\r
+ * toolbar commands in the toolbar.\r
+ */\r
+\r
+FCKToolbarItems.RegisterItem( 'TableInsertRow'         , new FCKToolbarButton( 'TableInsertRow'        , FCKLang.InsertRow, null, null, null, null, 62 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableDeleteRows'                , new FCKToolbarButton( 'TableDeleteRows'       , FCKLang.DeleteRows, null, null, null, null, 63 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableInsertColumn'      , new FCKToolbarButton( 'TableInsertColumn'     , FCKLang.InsertColumn, null, null, null, null, 64 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableDeleteColumns'     , new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, null, 65 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableInsertCell'                , new FCKToolbarButton( 'TableInsertCell'       , FCKLang.InsertCell, null, null, null, null, 58 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableDeleteCells'       , new FCKToolbarButton( 'TableDeleteCells'      , FCKLang.DeleteCells, null, null, null, null, 59 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableMergeCells'                , new FCKToolbarButton( 'TableMergeCells'       , FCKLang.MergeCells, null, null, null, null, 60 ) ) ;\r
+FCKToolbarItems.RegisterItem( 'TableSplitCell'         , new FCKToolbarButton( 'TableSplitCell'        , FCKLang.SplitCell, null, null, null, null, 61 ) ) ;
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/skins/_fckviewstrips.html b/httemplate/elements/fckeditor/editor/skins/_fckviewstrips.html
new file mode 100644 (file)
index 0000000..b28b941
--- /dev/null
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Useful page that enumerates all icons in the skins strips.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>FCKeditor - View Icons Strips</title>\r
+       <style type="text/css">\r
+               .TB_Button_Image\r
+               {\r
+                       overflow: hidden;\r
+                       width: 16px;\r
+                       height: 16px;\r
+                       margin: 3px;\r
+                       background-repeat: no-repeat;\r
+               }\r
+\r
+               .TB_Button_Image img\r
+               {\r
+                       position: relative;\r
+               }\r
+       </style>\r
+       <script type="text/javascript">\r
+\r
+window.onload = function()\r
+{\r
+       var eImg1 = document.createElement( 'img' ) ;\r
+       eImg1.onload = Img_OnLoad ;\r
+       eImg1.src = 'default/fck_strip.gif' ;\r
+\r
+       var eImg2 = document.createElement( 'img' ) ;\r
+       eImg2.onload = Img_OnLoad ;\r
+       eImg2.src = 'office2003/fck_strip.gif' ;\r
+\r
+       var eImg3 = document.createElement( 'img' ) ;\r
+       eImg3.onload = Img_OnLoad ;\r
+       eImg3.src = 'silver/fck_strip.gif' ;\r
+}\r
+\r
+var iTotalStrips = 3 ;\r
+var iMaxHeight = 0 ;\r
+\r
+function Img_OnLoad()\r
+{\r
+       if ( iMaxHeight < this.height )\r
+               iMaxHeight = this.height ;\r
+\r
+       iTotalStrips-- ;\r
+\r
+       if ( iTotalStrips == 0 )\r
+               LoadIcons( iMaxHeight / 16 ) ;\r
+}\r
+\r
+function LoadIcons( total )\r
+{\r
+       var xIconsTable = document.getElementById( 'xIconsTable' ) ;\r
+\r
+       for ( var i = 0 ; i < total ; i++ )\r
+       {\r
+               var eRow = xIconsTable.insertRow(-1) ;\r
+\r
+               var eCell = eRow.insertCell(-1) ;\r
+               eCell.innerHTML = i + 1 ;\r
+\r
+               eCell = eRow.insertCell(-1) ;\r
+               eCell.align = 'center' ;\r
+               eCell.style.border = '#dcdcdc 1px solid' ;\r
+               eCell.innerHTML = '<div class="TB_Button_Image"><img src="default/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;\r
+\r
+               eCell = eRow.insertCell(-1) ;\r
+               eCell.align = 'center' ;\r
+               eCell.style.border = '#dcdcdc 1px solid' ;\r
+               eCell.innerHTML = '<div class="TB_Button_Image"><img src="office2003/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;\r
+\r
+               eCell = eRow.insertCell(-1) ;\r
+               eCell.align = 'center' ;\r
+               eCell.style.border = '#dcdcdc 1px solid' ;\r
+               eCell.innerHTML = '<div class="TB_Button_Image"><img src="silver/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;\r
+       }\r
+}\r
+\r
+       </script>\r
+</head>\r
+<body>\r
+       <table id="xIconsTable">\r
+               <tr>\r
+                       <td rowspan="2">\r
+                               Index</td>\r
+                       <td align="center" colspan="3">\r
+                               Skins</td>\r
+               </tr>\r
+               <tr>\r
+                       <td width="80" align="center">\r
+                               default</td>\r
+                       <td width="80" align="center">\r
+                               office2003</td>\r
+                       <td width="80" align="center">\r
+                               silver</td>\r
+               </tr>\r
+       </table>\r
+</body>\r
+</html>\r
diff --git a/httemplate/elements/fckeditor/editor/skins/default/fck_dialog.css b/httemplate/elements/fckeditor/editor/skins/default/fck_dialog.css
new file mode 100644 (file)
index 0000000..9725f6c
--- /dev/null
@@ -0,0 +1,137 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the dialog boxes.\r
+ */\r
+\r
+body\r
+{\r
+       margin: 0px;\r
+       padding: 10px;\r
+}\r
+\r
+body, td, input, select, textarea\r
+{\r
+       font-size: 11px;\r
+       font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;\r
+}\r
+\r
+body, .BackColor\r
+{\r
+       background-color: #f1f1e3;\r
+}\r
+\r
+.PopupBody\r
+{\r
+       margin: 0px;\r
+       padding: 0px;\r
+}\r
+\r
+.PopupTitle\r
+{\r
+       font-weight: bold;\r
+       font-size: 14pt;\r
+       color: #737357;\r
+       background-color: #e3e3c7;\r
+       padding: 3px 10px 3px 10px;\r
+}\r
+\r
+.PopupButtons\r
+{\r
+       border-top: #d5d59d 1px solid;\r
+       background-color: #e3e3c7;\r
+       padding: 7px 10px 7px 10px;\r
+}\r
+\r
+.Button\r
+{\r
+       border: #737357 1px solid;\r
+       color: #3b3b1f;\r
+       background-color: #c7c78f;\r
+}\r
+\r
+#btnOk\r
+{\r
+       width: 100px;\r
+}\r
+\r
+.DarkBackground\r
+{\r
+       background-color: #d7d79f;\r
+}\r
+\r
+.LightBackground\r
+{\r
+       background-color: #ffffbe;\r
+}\r
+\r
+.PopupTitleBorder\r
+{\r
+       border-bottom: #d5d59d 1px solid;\r
+}\r
+\r
+.PopupTabArea\r
+{\r
+       color: #737357;\r
+       background-color: #e3e3c7;\r
+}\r
+\r
+.PopupTabEmptyArea\r
+{\r
+       padding-left: 10px ;\r
+       border-bottom: #d5d59d 1px solid;\r
+}\r
+\r
+.PopupTab, .PopupTabSelected\r
+{\r
+       border-right: #d5d59d 1px solid;\r
+       border-top: #d5d59d 1px solid;\r
+       border-left: #d5d59d 1px solid;\r
+       padding-right: 5px;\r
+       padding-left: 5px;\r
+       padding-bottom: 3px;\r
+       padding-top: 3px;\r
+       color: #737357;\r
+}\r
+\r
+.PopupTab\r
+{\r
+       margin-top: 1px;\r
+       border-bottom: #d5d59d 1px solid;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}\r
+\r
+.PopupTabSelected\r
+{\r
+       font-weight:bold;\r
+       cursor: default;\r
+       padding-top: 4px;\r
+       border-bottom: #f1f1e3 1px solid;\r
+       background-color: #f1f1e3;\r
+}\r
+\r
+.PopupSelectionBox\r
+{\r
+       border: #ff9933 1px solid !important;\r
+       background-color: #fffacd !important;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/skins/default/fck_editor.css b/httemplate/elements/fckeditor/editor/skins/default/fck_editor.css
new file mode 100644 (file)
index 0000000..b849cca
--- /dev/null
@@ -0,0 +1,464 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the editor IFRAME and Toolbar.\r
+ */\r
+\r
+/*\r
+       ### Basic Editor IFRAME Styles.\r
+*/\r
+\r
+body\r
+{\r
+    padding: 1px 1px 1px 1px;\r
+    margin: 0px 0px 0px 0px;\r
+}\r
+\r
+#xEditingArea\r
+{\r
+    border: #696969 1px solid;\r
+}\r
+\r
+.SourceField\r
+{\r
+    padding: 5px;\r
+    margin: 0px;\r
+    font-family: Monospace;\r
+}\r
+\r
+/*\r
+       Toolbar\r
+*/\r
+\r
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse\r
+{\r
+    cursor: default;\r
+    background-color: #efefde;\r
+}\r
+\r
+.TB_ToolbarSet\r
+{\r
+    border-top: #efefde 1px outset;\r
+    border-bottom: #efefde 1px outset;\r
+}\r
+\r
+.TB_ToolbarSet TD\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.TB_Toolbar\r
+{\r
+       height: 24px;\r
+    display: inline-table;     /* inline = Opera jumping buttons bug */\r
+}\r
+\r
+.TB_Separator\r
+{\r
+    width: 1px;\r
+    height: 16px;\r
+    margin: 2px;\r
+    background-color: #999966;\r
+}\r
+\r
+.TB_Start\r
+{\r
+    background-image: url(images/toolbar.start.gif);\r
+    margin: 2px;\r
+    width: 3px;\r
+    background-repeat: no-repeat;\r
+    height: 16px;\r
+}\r
+\r
+.TB_End\r
+{\r
+    display: none;\r
+}\r
+\r
+.TB_ExpandImg\r
+{\r
+    background-image: url(images/toolbar.expand.gif);\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_CollapseImg\r
+{\r
+    background-image: url(images/toolbar.collapse.gif);\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_SideBorder\r
+{\r
+    background-color: #696969;\r
+}\r
+\r
+.TB_Expand, .TB_Collapse\r
+{\r
+    padding: 2px 2px 2px 2px;\r
+    border: #efefde 1px outset;\r
+}\r
+\r
+.TB_Collapse\r
+{\r
+    width: 5px;\r
+}\r
+\r
+.TB_Break\r
+{\r
+    height: 24px; /* IE needs the height to be set, otherwise no break */\r
+}\r
+\r
+/*\r
+       Toolbar Button\r
+*/\r
+\r
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled\r
+{\r
+    border: #efefde 1px solid; /* This is the default border */\r
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */\r
+}\r
+\r
+.TB_Button_On\r
+{\r
+    border: #316ac5 1px solid;\r
+    background-color: #c1d2ee;\r
+}\r
+\r
+.TB_Button_On_Over, .TB_Button_Off_Over\r
+{\r
+    border: #316ac5 1px solid;\r
+    background-color: #dff1ff;\r
+}\r
+\r
+.TB_Button_Off\r
+{\r
+    filter: alpha(opacity=70); /* IE */\r
+    opacity: 0.70; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.TB_Button_Disabled\r
+{\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.TB_Button_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 22px;\r
+}\r
+\r
+.TB_Button_Image\r
+{\r
+    overflow: hidden;\r
+    width: 16px;\r
+    height: 16px;\r
+    margin: 3px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_Button_Image img\r
+{\r
+    position: relative;\r
+}\r
+\r
+.TB_Button_Off .TB_Button_Text\r
+{\r
+       background-color: #efefde;  /* Needed because of a bug on Clear Type */\r
+}\r
+\r
+.TB_ConnectionLine\r
+{\r
+    background-color: #ffffff;\r
+    height: 1px;\r
+    margin-left: 1px;   /* ltr */\r
+    margin-right: 1px;  /* rtl */\r
+}\r
+\r
+.TB_Text\r
+{\r
+       height: 22px;\r
+}\r
+\r
+.TB_Button_Off .TB_Text\r
+{\r
+       background-color: #efefde ;  /* Needed because of a bug on ClearType */\r
+}\r
+\r
+.TB_Button_On_Over .TB_Text\r
+{\r
+       background-color: #dff1ff ;  /* Needed because of a bug on ClearType */\r
+}\r
+\r
+/*\r
+       Menu\r
+*/\r
+\r
+.MN_Menu\r
+{\r
+    border: 1px solid #8f8f73;\r
+    padding: 2px;\r
+    background-color: #ffffff;\r
+    cursor: default;\r
+}\r
+\r
+.MN_Menu, .MN_Menu .MN_Label\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.MN_Item_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Icon\r
+{\r
+    background-color: #e3e3c7;\r
+    text-align: center;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Label\r
+{\r
+    padding-left: 3px;\r
+    padding-right: 3px;\r
+}\r
+\r
+.MN_Separator\r
+{\r
+    height: 3px;\r
+}\r
+\r
+.MN_Separator_Line\r
+{\r
+    border-top: #b9b99d 1px solid;\r
+}\r
+\r
+.MN_Item .MN_Icon IMG\r
+{\r
+    filter: alpha(opacity=70);\r
+    opacity: 0.70;\r
+}\r
+\r
+.MN_Item_Over\r
+{\r
+    color: #ffffff;\r
+    background-color: #8f8f73;\r
+}\r
+\r
+.MN_Item_Over .MN_Icon\r
+{\r
+    background-color: #737357;\r
+}\r
+\r
+.MN_Item_Disabled IMG\r
+{\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.MN_Item_Disabled .MN_Label\r
+{\r
+    color: #b7b7b7;\r
+}\r
+\r
+.MN_Arrow\r
+{\r
+    padding-right: 3px;\r
+    padding-left: 3px;\r
+}\r
+\r
+.MN_ConnectionLine\r
+{\r
+    background-color: #ffffff;\r
+}\r
+\r
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over\r
+{\r
+    border: #8f8f73 1px solid;\r
+    background-color: #ffffff;\r
+}\r
+\r
+/*\r
+       ### Panel Styles\r
+*/\r
+\r
+.FCK_Panel\r
+{\r
+    border: #8f8f73 1px solid;\r
+    padding: 2px;\r
+    background-color: #ffffff;\r
+}\r
+\r
+.FCK_Panel, .FCK_Panel TD\r
+{\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+    font-size: 11px;\r
+}\r
+\r
+/*\r
+       ### Special Combos\r
+*/\r
+\r
+.SC_Panel\r
+{\r
+    overflow: auto;\r
+    white-space: nowrap;\r
+    cursor: default;\r
+    border: 1px solid #8f8f73;\r
+    padding-left: 2px;\r
+    padding-right: 2px;\r
+    background-color: #ffffff;\r
+}\r
+\r
+.SC_Panel, .SC_Panel TD\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.SC_Item, .SC_ItemSelected\r
+{\r
+    margin-top: 2px;\r
+    margin-bottom: 2px;\r
+    background-position: left center;\r
+    padding-left: 11px;\r
+    padding-right: 3px;\r
+    padding-top: 2px;\r
+    padding-bottom: 2px;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    background-repeat: no-repeat;\r
+    border: #dddddd 1px solid;\r
+}\r
+\r
+.SC_Item *, .SC_ItemSelected *\r
+{\r
+    margin-top: 0px;\r
+    margin-bottom: 0px;\r
+}\r
+\r
+.SC_ItemSelected\r
+{\r
+    border: #9a9afb 1px solid;\r
+    background-image: url(images/toolbar.arrowright.gif);\r
+}\r
+\r
+.SC_ItemOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_Field\r
+{\r
+    border: #b7b7a6 1px solid;\r
+    cursor: default;\r
+}\r
+\r
+.SC_FieldCaption\r
+{\r
+    overflow: visible;\r
+    padding-right: 5px;\r
+    padding-left: 5px;\r
+    opacity: 0.75; /* Safari, Opera and Mozilla */\r
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */\r
+    height: 23px;\r
+    background-color: #efefde;\r
+}\r
+\r
+.SC_FieldLabel\r
+{\r
+    white-space: nowrap;\r
+    padding: 2px;\r
+    width: 100%;\r
+    cursor: default;\r
+    background-color: #ffffff;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.SC_FieldButton\r
+{\r
+    background-position: center center;\r
+    background-image: url(images/toolbar.buttonarrow.gif);\r
+    border-left: #b7b7a6 1px solid;\r
+    width: 14px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption\r
+{\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */\r
+}\r
+\r
+.SC_FieldOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_FieldOver .SC_FieldButton\r
+{\r
+    border-left: #316ac5 1px solid;\r
+}\r
+\r
+/*\r
+       ### Color Selector Panel\r
+*/\r
+\r
+.ColorBoxBorder\r
+{\r
+    border: #808080 1px solid;\r
+    position: static;\r
+}\r
+\r
+.ColorBox\r
+{\r
+    font-size: 1px;\r
+    width: 10px;\r
+    position: static;\r
+    height: 10px;\r
+}\r
+\r
+.ColorDeselected, .ColorSelected\r
+{\r
+    cursor: default;\r
+}\r
+\r
+.ColorDeselected\r
+{\r
+    border: #ffffff 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+}\r
+\r
+.ColorSelected\r
+{\r
+    border: #330066 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+    background-color: #c4cdd6;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/skins/default/fck_strip.gif b/httemplate/elements/fckeditor/editor/skins/default/fck_strip.gif
new file mode 100644 (file)
index 0000000..d5ba74e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/fck_strip.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.arrowright.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.arrowright.gif
new file mode 100644 (file)
index 0000000..6843c8d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.arrowright.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif
new file mode 100644 (file)
index 0000000..ea60995
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.collapse.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.collapse.gif
new file mode 100644 (file)
index 0000000..87aa56d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.collapse.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.end.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.end.gif
new file mode 100644 (file)
index 0000000..5bfd67a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.end.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.expand.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.expand.gif
new file mode 100644 (file)
index 0000000..79075e7
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.expand.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.separator.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.separator.gif
new file mode 100644 (file)
index 0000000..eaed04a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.separator.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.start.gif b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.start.gif
new file mode 100644 (file)
index 0000000..1774246
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/default/images/toolbar.start.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/fck_dialog.css b/httemplate/elements/fckeditor/editor/skins/office2003/fck_dialog.css
new file mode 100644 (file)
index 0000000..54a958b
--- /dev/null
@@ -0,0 +1,138 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the dialog boxes.\r
+ */\r
+\r
+body\r
+{\r
+       margin: 0px;\r
+       padding: 10px;\r
+       background-color: #f7f8fd;\r
+}\r
+\r
+body, td, input, select, textarea\r
+{\r
+       font-size: 11px;\r
+       font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;\r
+}\r
+\r
+body, .BackColor\r
+{\r
+       background-color: #f7f8fd;\r
+}\r
+\r
+.PopupBody\r
+{\r
+       margin: 0px;\r
+       padding: 0px;\r
+}\r
+\r
+.PopupTitle\r
+{\r
+       font-weight: bold;\r
+       font-size: 14pt;\r
+       color: #0e3460;\r
+       background-color: #8cb2fd;\r
+       padding: 3px 10px 3px 10px;\r
+}\r
+\r
+.PopupButtons\r
+{\r
+       border-top: #466ca6 1px solid;\r
+       background-color: #8cb2fd;\r
+       padding: 7px 10px 7px 10px;\r
+}\r
+\r
+.Button\r
+{\r
+       border: #1c3460 1px solid;\r
+       color: #000a28;\r
+       background-color: #7096d3;\r
+}\r
+\r
+#btnOk\r
+{\r
+       width: 100px;\r
+}\r
+\r
+.DarkBackground\r
+{\r
+       background-color: #d7d79f;\r
+}\r
+\r
+.LightBackground\r
+{\r
+       background-color: #ffffbe;\r
+}\r
+\r
+.PopupTitleBorder\r
+{\r
+       border-bottom: #d5d59d 1px solid;\r
+}\r
+\r
+.PopupTabArea\r
+{\r
+       color: #0e3460;\r
+       background-color: #8cb2fd;\r
+}\r
+\r
+.PopupTabEmptyArea\r
+{\r
+       padding-left: 10px ;\r
+       border-bottom: #466ca6 1px solid;\r
+}\r
+\r
+.PopupTab, .PopupTabSelected\r
+{\r
+       border-right: #466ca6 1px solid;\r
+       border-top: #466ca6 1px solid;\r
+       border-left: #466ca6 1px solid;\r
+       padding-right: 5px;\r
+       padding-left: 5px;\r
+       padding-bottom: 3px;\r
+       padding-top: 3px;\r
+       color: #0e3460;\r
+}\r
+\r
+.PopupTab\r
+{\r
+       margin-top: 1px;\r
+       border-bottom: #466ca6 1px solid;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}\r
+\r
+.PopupTabSelected\r
+{\r
+       font-weight:bold;\r
+       cursor: default;\r
+       padding-top: 4px;\r
+       border-bottom: #f7f8fd 1px solid;\r
+       background-color: #f7f8fd;\r
+}\r
+\r
+.PopupSelectionBox\r
+{\r
+       border: #1e90ff 1px solid !important;\r
+       background-color: #add8e6 !important;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/fck_editor.css b/httemplate/elements/fckeditor/editor/skins/office2003/fck_editor.css
new file mode 100644 (file)
index 0000000..f68c06f
--- /dev/null
@@ -0,0 +1,476 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the editor IFRAME and Toolbar.\r
+ */\r
+\r
+/*\r
+       ### Basic Editor IFRAME Styles.\r
+*/\r
+\r
+body\r
+{\r
+    padding: 1px 1px 1px 1px;\r
+    margin: 0px 0px 0px 0px;\r
+}\r
+\r
+#xEditingArea\r
+{\r
+    border: #696969 1px solid;\r
+}\r
+\r
+.SourceField\r
+{\r
+    padding: 5px;\r
+    margin: 0px;\r
+    font-family: Monospace;\r
+}\r
+\r
+/*\r
+       Toolbar\r
+*/\r
+\r
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse\r
+{\r
+    cursor: default;\r
+    background-color: #f7f8fd;\r
+}\r
+\r
+.TB_ToolbarSet\r
+{\r
+    border-top: #f7f8fd 1px outset;\r
+    border-bottom: #f7f8fd 1px outset;\r
+}\r
+\r
+.TB_ToolbarSet TD\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.TB_Toolbar\r
+{\r
+       background-color: #d6dff7;\r
+       background-image: url(images/toolbar.bg.gif);\r
+       background-repeat: repeat-x;\r
+    display: inline-table;\r
+}\r
+\r
+.TB_Separator\r
+{\r
+    width: 1px;\r
+    height: 16px;\r
+    margin: 2px;\r
+    background-color: #B2CBFF;\r
+}\r
+\r
+.TB_Start\r
+{\r
+    background-image: url(images/toolbar.start.gif);\r
+    background-repeat: no-repeat;\r
+    background-position: center center;\r
+    margin: 0px;\r
+    width: 7px;\r
+    height: 24px;\r
+}\r
+\r
+.TB_End\r
+{\r
+    background-image: url(images/toolbar.end.gif);\r
+    background-repeat: no-repeat;\r
+    background-position: center left;\r
+    height: 24px;\r
+    width: 4px;\r
+}\r
+\r
+.TB_ExpandImg\r
+{\r
+    background-image: url(images/toolbar.expand.gif);\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_CollapseImg\r
+{\r
+    background-image: url(images/toolbar.collapse.gif);\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_SideBorder\r
+{\r
+    background-color: #696969;\r
+}\r
+\r
+.TB_Expand, .TB_Collapse\r
+{\r
+    padding: 2px 2px 2px 2px;\r
+    border: #f7f8fd 1px outset;\r
+}\r
+\r
+.TB_Collapse\r
+{\r
+    width: 5px;\r
+}\r
+\r
+.TB_Break\r
+{\r
+    height: 24px; /* IE needs the height to be set, otherwise no break */\r
+}\r
+\r
+/*\r
+       Toolbar Button\r
+*/\r
+\r
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled\r
+{\r
+    margin: 1px;\r
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */\r
+}\r
+\r
+.TB_Button_On\r
+{\r
+    margin: 0px;\r
+    border: #316ac5 1px solid;\r
+    background-color: #c1d2ee;\r
+}\r
+\r
+.TB_Button_On_Over, .TB_Button_Off_Over\r
+{\r
+    margin: 0px ;\r
+    border: #316ac5 1px solid;\r
+    background-color: #dff1ff;\r
+}\r
+\r
+.TB_Button_Off\r
+{\r
+    filter: alpha(opacity=70); /* IE */\r
+    opacity: 0.70; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.TB_Button_Disabled\r
+{\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.TB_Button_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 22px;\r
+}\r
+\r
+.TB_Button_Image\r
+{\r
+    overflow: hidden;\r
+    width: 16px;\r
+    height: 16px;\r
+    margin: 3px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.TB_Button_Image img\r
+{\r
+    position: relative;\r
+}\r
+\r
+.TB_Button_Off .TB_Button_Text\r
+{\r
+       background-color: #d6dff7;  /* Needed because of a bug on ClearType */\r
+       background-image: url(images/toolbar.bg.gif);\r
+       background-repeat: repeat-x;\r
+}\r
+\r
+.TB_ConnectionLine\r
+{\r
+    background-color: #f7f8fd;\r
+    height: 1px;\r
+    margin-left: 1px;   /* ltr */\r
+    margin-right: 1px;  /* rtl */\r
+}\r
+\r
+.TB_Button_Off .TB_Text\r
+{\r
+       background-color: #d6dff7;  /* Needed because of a bug on ClearType */\r
+       background-image: url(images/toolbar.bg.gif);\r
+       background-repeat: repeat-x;\r
+}\r
+\r
+.TB_Button_On_Over .TB_Text\r
+{\r
+       background-color: #dff1ff ;  /* Needed because of a bug on ClearType */\r
+}\r
+\r
+/*\r
+       Menu\r
+*/\r
+\r
+.MN_Menu\r
+{\r
+    border: 1px solid #8f8f73;\r
+    padding: 2px;\r
+    background-color: #f7f8fd;\r
+    cursor: default;\r
+}\r
+\r
+.MN_Menu, .MN_Menu .MN_Label\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.MN_Item_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Icon\r
+{\r
+    background-color: #d6dff7;\r
+    text-align: center;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Label\r
+{\r
+    padding-left: 3px;\r
+    padding-right: 3px;\r
+}\r
+\r
+.MN_Separator\r
+{\r
+    height: 3px;\r
+}\r
+\r
+.MN_Separator_Line\r
+{\r
+    border-top: #b9b99d 1px solid;\r
+}\r
+\r
+.MN_Item .MN_Icon IMG\r
+{\r
+    filter: alpha(opacity=70);\r
+    opacity: 0.70;\r
+}\r
+\r
+.MN_Item_Over\r
+{\r
+    color: #ffffff;\r
+    background-color: #7096FA;\r
+}\r
+\r
+.MN_Item_Over .MN_Icon\r
+{\r
+    background-color: #466ca6;\r
+}\r
+\r
+.MN_Item_Disabled IMG\r
+{\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.MN_Item_Disabled .MN_Label\r
+{\r
+    color: #b7b7b7;\r
+}\r
+\r
+.MN_Arrow\r
+{\r
+    padding-right: 3px;\r
+    padding-left: 3px;\r
+}\r
+\r
+.MN_ConnectionLine\r
+{\r
+    background-color: #f7f8fd;\r
+}\r
+\r
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over\r
+{\r
+    border: #8f8f73 1px solid;\r
+    background-color: #f7f8fd;\r
+}\r
+\r
+/*\r
+       ### Panel Styles\r
+*/\r
+\r
+.FCK_Panel\r
+{\r
+    border: #8f8f73 1px solid;\r
+    padding: 2px;\r
+    background-color: #f7f8fd;\r
+}\r
+\r
+.FCK_Panel, .FCK_Panel TD\r
+{\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+    font-size: 11px;\r
+}\r
+\r
+/*\r
+       ### Special Combos\r
+*/\r
+\r
+.SC_Panel\r
+{\r
+    overflow: auto;\r
+    white-space: nowrap;\r
+    cursor: default;\r
+    border: 1px solid #8f8f73;\r
+    padding-left: 2px;\r
+    padding-right: 2px;\r
+    background-color: #ffffff;\r
+}\r
+\r
+.SC_Panel, .SC_Panel TD\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.SC_Item, .SC_ItemSelected\r
+{\r
+    margin-top: 2px;\r
+    margin-bottom: 2px;\r
+    background-position: left center;\r
+    padding-left: 11px;\r
+    padding-right: 3px;\r
+    padding-top: 2px;\r
+    padding-bottom: 2px;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    background-repeat: no-repeat;\r
+    border: #dddddd 1px solid;\r
+}\r
+\r
+.SC_Item *, .SC_ItemSelected *\r
+{\r
+    margin-top: 0px;\r
+    margin-bottom: 0px;\r
+}\r
+\r
+.SC_ItemSelected\r
+{\r
+    border: #9a9afb 1px solid;\r
+    background-image: url(images/toolbar.arrowright.gif);\r
+}\r
+\r
+.SC_ItemOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_Field\r
+{\r
+    margin-top: 2px ;\r
+    border: #b7b7a6 1px solid;\r
+    cursor: default;\r
+}\r
+\r
+.SC_FieldCaption\r
+{\r
+    overflow: visible;\r
+    padding-right: 5px;\r
+    padding-left: 5px;\r
+    opacity: 0.75; /* Safari, Opera and Mozilla */\r
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */\r
+    height: 23px;\r
+       background-color: #d6dff7;  /* Needed because of a bug on ClearType */\r
+       background-image: url(images/toolbar.bg.gif);\r
+       background-repeat: repeat-x;\r
+/*    background-color:  inherit;     Maybe this is needed wait to check */\r
+}\r
+\r
+.SC_FieldLabel\r
+{\r
+    white-space: nowrap;\r
+    padding: 2px;\r
+    width: 100%;\r
+    cursor: default;\r
+    background-color: #ffffff;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.SC_FieldButton\r
+{\r
+    background-position: center center;\r
+    background-image: url(images/toolbar.buttonarrow.gif);\r
+    border-left: #b7b7a6 1px solid;\r
+    width: 14px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption\r
+{\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */\r
+}\r
+\r
+.SC_FieldOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_FieldOver .SC_FieldButton\r
+{\r
+    border-left: #316ac5 1px solid;\r
+}\r
+\r
+/*\r
+       ### Color Selector Panel\r
+*/\r
+\r
+.ColorBoxBorder\r
+{\r
+    border: #808080 1px solid;\r
+    position: static;\r
+}\r
+\r
+.ColorBox\r
+{\r
+    font-size: 1px;\r
+    width: 10px;\r
+    position: static;\r
+    height: 10px;\r
+}\r
+\r
+.ColorDeselected, .ColorSelected\r
+{\r
+    cursor: default;\r
+}\r
+\r
+.ColorDeselected\r
+{\r
+    border: #ffffff 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+}\r
+\r
+.ColorSelected\r
+{\r
+    border: #330066 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+    background-color: #c4cdd6;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/fck_strip.gif b/httemplate/elements/fckeditor/editor/skins/office2003/fck_strip.gif
new file mode 100644 (file)
index 0000000..a7282f2
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/fck_strip.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif
new file mode 100644 (file)
index 0000000..6843c8d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.bg.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.bg.gif
new file mode 100644 (file)
index 0000000..b03960b
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.bg.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif
new file mode 100644 (file)
index 0000000..ea60995
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif
new file mode 100644 (file)
index 0000000..d549166
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.end.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.end.gif
new file mode 100644 (file)
index 0000000..7ff599d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.end.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.expand.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.expand.gif
new file mode 100644 (file)
index 0000000..c4a7326
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.expand.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.separator.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.separator.gif
new file mode 100644 (file)
index 0000000..27db9c3
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.separator.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.start.gif b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.start.gif
new file mode 100644 (file)
index 0000000..41f1241
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/office2003/images/toolbar.start.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/fck_dialog.css b/httemplate/elements/fckeditor/editor/skins/silver/fck_dialog.css
new file mode 100644 (file)
index 0000000..e05c173
--- /dev/null
@@ -0,0 +1,141 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the dialog boxes.\r
+ */\r
+\r
+body\r
+{\r
+       margin: 0px;\r
+       padding: 10px;\r
+       background-color: #f7f7f7;\r
+}\r
+\r
+body, td, input, select, textarea\r
+{\r
+       font-size: 11px;\r
+       font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;\r
+}\r
+\r
+body, .BackColor\r
+{\r
+       background-color: #f7f7f7;\r
+}\r
+\r
+.PopupBody\r
+{\r
+       margin: 0px;\r
+       padding: 0px;\r
+}\r
+\r
+.PopupTitle\r
+{\r
+       padding-right: 10px;\r
+       padding-left: 10px;\r
+       font-weight: bold;\r
+       font-size: 14pt;\r
+       padding-bottom: 3px;\r
+       color: #504845;\r
+       padding-top: 3px;\r
+       background-color: #dedede;\r
+}\r
+\r
+.PopupButtons\r
+{\r
+       border-top: #cec6b5 1px solid;\r
+       background-color: #DEDEDE;\r
+       padding: 7px 10px 7px 10px;\r
+}\r
+\r
+.Button\r
+{\r
+       border: #7a7261 1px solid;\r
+       color: #504845;\r
+       background-color: #cec6b5;\r
+}\r
+\r
+#btnOk\r
+{\r
+       width: 100px;\r
+}\r
+\r
+.DarkBackground\r
+{\r
+       background-color: #d7d79f;\r
+}\r
+\r
+.LightBackground\r
+{\r
+       background-color: #ffffbe;\r
+}\r
+\r
+.PopupTitleBorder\r
+{\r
+       border-bottom: #cec6b5 1px solid;\r
+}\r
+\r
+.PopupTabArea\r
+{\r
+       color: #504845;\r
+       background-color: #DEDEDE;\r
+}\r
+\r
+.PopupTabEmptyArea\r
+{\r
+       padding-left: 10px ;\r
+       border-bottom: #cec6b5 1px solid;\r
+}\r
+\r
+.PopupTab, .PopupTabSelected\r
+{\r
+       border-right: #cec6b5 1px solid;\r
+       border-top: #cec6b5 1px solid;\r
+       border-left: #cec6b5 1px solid;\r
+       padding-right: 5px;\r
+       padding-left: 5px;\r
+       padding-bottom: 3px;\r
+       padding-top: 3px;\r
+       color: #504845;\r
+}\r
+\r
+.PopupTab\r
+{\r
+       margin-top: 1px;\r
+       border-bottom: #cec6b5 1px solid;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}\r
+\r
+.PopupTabSelected\r
+{\r
+       font-weight:bold;\r
+       cursor: default;\r
+       padding-top: 4px;\r
+       border-bottom: #f1f1e3 1px solid;\r
+       background-color: #f7f7f7;\r
+}\r
+\r
+.PopupSelectionBox\r
+{\r
+       border: #a9a9a9 1px solid !important;\r
+       background-color: #dcdcdc !important;\r
+       cursor: pointer;\r
+       cursor: hand;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/fck_editor.css b/httemplate/elements/fckeditor/editor/skins/silver/fck_editor.css
new file mode 100644 (file)
index 0000000..656dcdb
--- /dev/null
@@ -0,0 +1,473 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Styles used by the editor IFRAME and Toolbar.\r
+ */\r
+\r
+/*\r
+       ### Basic Editor IFRAME Styles.\r
+*/\r
+\r
+body\r
+{\r
+       padding: 1px 1px 1px 1px;\r
+       margin: 0px 0px 0px 0px;\r
+}\r
+\r
+#xEditingArea\r
+{\r
+       border: #696969 1px solid;\r
+}\r
+\r
+.SourceField\r
+{\r
+       padding: 5px;\r
+       margin: 0px;\r
+       font-family: Monospace;\r
+}\r
+\r
+/*\r
+       Toolbar\r
+*/\r
+\r
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse\r
+{\r
+    cursor: default;\r
+       background-color: #f7f7f7;\r
+}\r
+\r
+.TB_ToolbarSet\r
+{\r
+       padding: 1px;\r
+       border-top: #efefde 1px outset;\r
+       border-bottom: #efefde 1px outset;\r
+}\r
+\r
+.TB_ToolbarSet TD\r
+{\r
+       font-size: 11px;\r
+       font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.TB_Toolbar\r
+{\r
+    display: inline-table;\r
+}\r
+\r
+.TB_Separator\r
+{\r
+    width: 1px;\r
+    height: 21px;\r
+    margin: 2px;\r
+    background-color: #C6C3BD;\r
+}\r
+\r
+.TB_Start\r
+{\r
+    background-image: url(images/toolbar.start.gif);\r
+    margin-left: 2px;\r
+    margin-right: 2px;\r
+    width: 3px;\r
+    background-repeat: no-repeat;\r
+    height: 27px;\r
+    background-position: center center;\r
+}\r
+\r
+.TB_End\r
+{\r
+       display: none;\r
+}\r
+\r
+.TB_ExpandImg\r
+{\r
+       background-image: url(images/toolbar.expand.gif);\r
+       background-repeat: no-repeat;\r
+}\r
+\r
+.TB_CollapseImg\r
+{\r
+       background-image: url(images/toolbar.collapse.gif);\r
+       background-repeat: no-repeat;\r
+}\r
+\r
+.TB_SideBorder\r
+{\r
+       background-color: #696969;\r
+}\r
+\r
+.TB_Expand, .TB_Collapse\r
+{\r
+       padding: 2px 2px 2px 2px;\r
+       border: #efefde 1px outset;\r
+}\r
+\r
+.TB_Collapse\r
+{\r
+       border: #efefde 1px outset;\r
+       width: 5px;\r
+}\r
+\r
+.TB_Break\r
+{\r
+       height: 27px;\r
+}\r
+\r
+/*\r
+       Toolbar Button\r
+*/\r
+\r
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled\r
+{\r
+       padding: 1px ;\r
+       margin:1px;\r
+       height: 21px;\r
+}\r
+\r
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled\r
+{\r
+       border: #cec6b5 1px solid;\r
+}\r
+\r
+.TB_Button_On\r
+{\r
+       border-color: #316ac5;\r
+       background-color: #c1d2ee;\r
+}\r
+\r
+.TB_Button_On_Over, .TB_Button_Off_Over\r
+{\r
+    border: #316ac5 1px solid;\r
+    background-color: #dff1ff;\r
+}\r
+\r
+.TB_Button_Off\r
+{\r
+       background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;\r
+}\r
+\r
+.TB_Button_Off, .TB_Combo_Off\r
+{\r
+       opacity: 0.70; /* Safari, Opera and Mozilla */\r
+       filter: alpha(opacity=70); /* IE */\r
+       /* -moz-opacity: 0.70; Mozilla (Old) */\r
+}\r
+\r
+.TB_Button_Disabled\r
+{\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+}\r
+\r
+.TB_Button_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 21px;\r
+}\r
+\r
+.TB_Button_Image\r
+{\r
+    overflow: hidden;\r
+    width: 16px;\r
+    height: 16px;\r
+    margin: 3px;\r
+    margin-top: 4px;\r
+    margin-bottom: 2px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+/* For composed button ( icon + text, icon + arrow ), we must compensate the table */\r
+.TB_Button_On TABLE .TB_Button_Image,\r
+.TB_Button_Off TABLE .TB_Button_Image,\r
+.TB_Button_On_Over TABLE .TB_Button_Image,\r
+.TB_Button_Off_Over TABLE .TB_Button_Image,\r
+.TB_Button_Disabled TABLE .TB_Button_Image\r
+{\r
+    margin-top: 3px;\r
+}\r
+\r
+.TB_Button_Image img\r
+{\r
+    position: relative;\r
+}\r
+\r
+.TB_ConnectionLine\r
+{\r
+    background-color: #ffffff;\r
+    height: 1px;\r
+    margin-left: 1px;   /* ltr */\r
+    margin-right: 1px;  /* rtl */\r
+}\r
+\r
+/*\r
+       Menu\r
+*/\r
+\r
+.MN_Menu\r
+{\r
+    border: 1px solid #8f8f73;\r
+    padding: 2px;\r
+    background-color: #f7f7f7;\r
+    cursor: default;\r
+}\r
+\r
+.MN_Menu, .MN_Menu .MN_Label\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.MN_Item_Padding\r
+{\r
+    visibility: hidden;\r
+    width: 3px;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Icon\r
+{\r
+    background-color: #dedede;\r
+    text-align: center;\r
+    height: 20px;\r
+}\r
+\r
+.MN_Label\r
+{\r
+    padding-left: 3px;\r
+    padding-right: 3px;\r
+}\r
+\r
+.MN_Separator\r
+{\r
+    height: 3px;\r
+}\r
+\r
+.MN_Separator_Line\r
+{\r
+    border-top: #b9b99d 1px solid;\r
+}\r
+\r
+.MN_Item .MN_Icon IMG\r
+{\r
+    filter: alpha(opacity=70);\r
+    opacity: 0.70;\r
+}\r
+\r
+.MN_Item_Over\r
+{\r
+    color: #ffffff;\r
+    background-color: #8a857d;\r
+}\r
+\r
+.MN_Item_Over .MN_Icon\r
+{\r
+    background-color: #6c6761;\r
+}\r
+\r
+.MN_Item_Disabled IMG\r
+{\r
+    filter: gray() alpha(opacity=30); /* IE */\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+}\r
+\r
+.MN_Item_Disabled .MN_Label\r
+{\r
+    color: #b7b7b7;\r
+}\r
+\r
+.MN_Arrow\r
+{\r
+    padding-right: 3px;\r
+    padding-left: 3px;\r
+}\r
+\r
+.MN_ConnectionLine\r
+{\r
+    background-color: #ffffff;\r
+}\r
+\r
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over\r
+{\r
+    border: #8f8f73 1px solid;\r
+    background-color: #ffffff;\r
+}\r
+\r
+/*\r
+       ### Panel Styles\r
+*/\r
+\r
+.FCK_Panel\r
+{\r
+    border: #8f8f73 1px solid;\r
+    padding: 2px;\r
+    background-color: #ffffff;\r
+}\r
+\r
+.FCK_Panel, .FCK_Panel TD\r
+{\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+    font-size: 11px;\r
+}\r
+\r
+/*\r
+       ### Special Combos\r
+*/\r
+\r
+.SC_Panel\r
+{\r
+    overflow: auto;\r
+    white-space: nowrap;\r
+    cursor: default;\r
+    border: 1px solid #8f8f73;\r
+    padding-left: 2px;\r
+    padding-right: 2px;\r
+    background-color: #ffffff;\r
+}\r
+\r
+.SC_Panel, .SC_Panel TD\r
+{\r
+    font-size: 11px;\r
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;\r
+}\r
+\r
+.SC_Item, .SC_ItemSelected\r
+{\r
+    margin-top: 2px;\r
+    margin-bottom: 2px;\r
+    background-position: left center;\r
+    padding-left: 11px;\r
+    padding-right: 3px;\r
+    padding-top: 2px;\r
+    padding-bottom: 2px;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    background-repeat: no-repeat;\r
+    border: #dddddd 1px solid;\r
+}\r
+\r
+.SC_Item *, .SC_ItemSelected *\r
+{\r
+    margin-top: 0px;\r
+    margin-bottom: 0px;\r
+}\r
+\r
+.SC_ItemSelected\r
+{\r
+    border: #9a9afb 1px solid;\r
+    background-image: url(images/toolbar.arrowright.gif);\r
+}\r
+\r
+.SC_ItemOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_Field\r
+{\r
+    margin-top:1px ;\r
+    border: #b7b7a6 1px solid;\r
+    cursor: default;\r
+}\r
+\r
+.SC_FieldCaption\r
+{\r
+    padding-top: 1px ;\r
+    overflow: visible;\r
+    padding-right: 5px;\r
+    padding-left: 5px;\r
+    opacity: 0.75; /* Safari, Opera and Mozilla */\r
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */\r
+    height: 23px;\r
+    background-color: #f7f7f7;\r
+}\r
+\r
+.SC_FieldLabel\r
+{\r
+    white-space: nowrap;\r
+    padding: 2px;\r
+    width: 100%;\r
+    cursor: default;\r
+    background-color: #ffffff;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.SC_FieldButton\r
+{\r
+    background-position: center center;\r
+    background-image: url(images/toolbar.buttonarrow.gif);\r
+    border-left: #b7b7a6 1px solid;\r
+    width: 14px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption\r
+{\r
+    opacity: 0.30; /* Safari, Opera and Mozilla */\r
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */\r
+}\r
+\r
+.SC_FieldOver\r
+{\r
+    border: #316ac5 1px solid;\r
+}\r
+\r
+.SC_FieldOver .SC_FieldButton\r
+{\r
+    border-left: #316ac5 1px solid;\r
+}\r
+\r
+/*\r
+       ### Color Selector Panel\r
+*/\r
+\r
+.ColorBoxBorder\r
+{\r
+    border: #808080 1px solid;\r
+    position: static;\r
+}\r
+\r
+.ColorBox\r
+{\r
+    font-size: 1px;\r
+    width: 10px;\r
+    position: static;\r
+    height: 10px;\r
+}\r
+\r
+.ColorDeselected, .ColorSelected\r
+{\r
+    cursor: default;\r
+}\r
+\r
+.ColorDeselected\r
+{\r
+    border: #ffffff 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+}\r
+\r
+.ColorSelected\r
+{\r
+    border: #316ac5 1px solid;\r
+    padding: 2px;\r
+    float: left;\r
+    background-color: #c1d2ee;\r
+}\r
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/fck_strip.gif b/httemplate/elements/fckeditor/editor/skins/silver/fck_strip.gif
new file mode 100644 (file)
index 0000000..d5ba74e
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/fck_strip.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif
new file mode 100644 (file)
index 0000000..6843c8d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif
new file mode 100644 (file)
index 0000000..ea60995
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif
new file mode 100644 (file)
index 0000000..a93ffca
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.collapse.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.collapse.gif
new file mode 100644 (file)
index 0000000..87aa56d
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.collapse.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.end.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.end.gif
new file mode 100644 (file)
index 0000000..5bfd67a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.end.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.expand.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.expand.gif
new file mode 100644 (file)
index 0000000..79075e7
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.expand.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.separator.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.separator.gif
new file mode 100644 (file)
index 0000000..eaed04a
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.separator.gif differ
diff --git a/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.start.gif b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.start.gif
new file mode 100644 (file)
index 0000000..1774246
Binary files /dev/null and b/httemplate/elements/fckeditor/editor/skins/silver/images/toolbar.start.gif differ
diff --git a/httemplate/elements/fckeditor/fckconfig.js b/httemplate/elements/fckeditor/fckconfig.js
new file mode 100644 (file)
index 0000000..215bc0a
--- /dev/null
@@ -0,0 +1,245 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Editor configuration settings.\r
+ *\r
+ * Follow this link for more information:\r
+ * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings\r
+ */\r
+\r
+// Disable the custom Enter Key Handler. This option will be removed in version 2.5.\r
+FCKConfig.DisableEnterKeyHandler = false ;\r
+\r
+FCKConfig.CustomConfigurationsPath = '' ;\r
+\r
+FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;\r
+FCKConfig.ToolbarComboPreviewCSS = '' ;\r
+\r
+FCKConfig.DocType = '' ;\r
+\r
+FCKConfig.BaseHref = '' ;\r
+\r
+FCKConfig.FullPage = false ;\r
+\r
+FCKConfig.Debug = false ;\r
+FCKConfig.AllowQueryStringDebug = true ;\r
+\r
+FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;\r
+//FCKConfig.SkinPath = FCKConfig.BasePath + 'editor/skins/silver/' ;\r
+FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;\r
+\r
+FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;\r
+\r
+// FCKConfig.Plugins.Add( 'autogrow' ) ;\r
+FCKConfig.AutoGrowMax = 400 ;\r
+\r
+// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ;  // ASP style server side code <%...%>\r
+// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;        // PHP style server side code\r
+// FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ;       // ASP.Net style tags <asp:control>\r
+\r
+FCKConfig.AutoDetectLanguage   = true ;\r
+FCKConfig.DefaultLanguage              = 'en' ;\r
+FCKConfig.ContentLangDirection = 'ltr' ;\r
+\r
+FCKConfig.ProcessHTMLEntities  = true ;\r
+FCKConfig.IncludeLatinEntities = true ;\r
+FCKConfig.IncludeGreekEntities = true ;\r
+\r
+FCKConfig.ProcessNumericEntities = false ;\r
+\r
+FCKConfig.AdditionalNumericEntities = ''  ;            // Single Quote: "'"\r
+\r
+FCKConfig.FillEmptyBlocks      = true ;\r
+\r
+FCKConfig.FormatSource         = true ;\r
+FCKConfig.FormatOutput         = true ;\r
+FCKConfig.FormatIndentator     = '    ' ;\r
+\r
+FCKConfig.ForceStrongEm = true ;\r
+FCKConfig.GeckoUseSPAN = false ;\r
+FCKConfig.StartupFocus = false ;\r
+FCKConfig.ForcePasteAsPlainText        = false ;\r
+FCKConfig.AutoDetectPasteFromWord = true ;     // IE only.\r
+FCKConfig.ForceSimpleAmpersand = false ;\r
+FCKConfig.TabSpaces            = 0 ;\r
+FCKConfig.ShowBorders  = true ;\r
+FCKConfig.SourcePopup  = false ;\r
+FCKConfig.ToolbarStartExpanded = true ;\r
+FCKConfig.ToolbarCanCollapse   = true ;\r
+FCKConfig.IgnoreEmptyParagraphValue = true ;\r
+FCKConfig.PreserveSessionOnFileBrowser = false ;\r
+FCKConfig.FloatingPanelsZIndex = 10000 ;\r
+\r
+FCKConfig.TemplateReplaceAll = true ;\r
+FCKConfig.TemplateReplaceCheckbox = true ;\r
+\r
+FCKConfig.ToolbarLocation = 'In' ;\r
+\r
+//FCKConfig.ToolbarSets["Default"] = [\r
+//     ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],\r
+//     ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],\r
+//     ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],\r
+//     ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],\r
+//     '/',\r
+//     ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],\r
+//     ['OrderedList','UnorderedList','-','Outdent','Indent'],\r
+//     ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],\r
+//     ['Link','Unlink','Anchor'],\r
+//     ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],\r
+//     '/',\r
+//     ['Style','FontFormat','FontName','FontSize'],\r
+//     ['TextColor','BGColor'],\r
+//     ['FitWindow','-','About']\r
+//] ;\r
+FCKConfig.ToolbarSets["Default"] = [\r
+       ['Source','DocProps','-','Save','Preview','-'],\r
+       ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],\r
+       ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],\r
+       //['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],\r
+       '/',\r
+       ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],\r
+       ['OrderedList','UnorderedList','-','Outdent','Indent'],\r
+       ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],\r
+       ['Link','Unlink','Anchor'],\r
+       ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],\r
+       '/',\r
+       ['Style','FontFormat','FontName','FontSize'],\r
+       ['TextColor','BGColor'],\r
+       ['FitWindow','-','About']\r
+] ;\r
+\r
+FCKConfig.ToolbarSets["Basic"] = [\r
+       ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']\r
+] ;\r
+\r
+FCKConfig.EnterMode = 'p' ;                    // p | div | br\r
+FCKConfig.ShiftEnterMode = 'br' ;      // p | div | br\r
+\r
+FCKConfig.Keystrokes = [\r
+       [ CTRL + 65 /*A*/, true ],\r
+       [ CTRL + 67 /*C*/, true ],\r
+       [ CTRL + 70 /*F*/, true ],\r
+       [ CTRL + 83 /*S*/, true ],\r
+       [ CTRL + 88 /*X*/, true ],\r
+       [ CTRL + 86 /*V*/, 'Paste' ],\r
+       [ SHIFT + 45 /*INS*/, 'Paste' ],\r
+       [ CTRL + 90 /*Z*/, 'Undo' ],\r
+       [ CTRL + 89 /*Y*/, 'Redo' ],\r
+       [ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],\r
+       [ CTRL + 76 /*L*/, 'Link' ],\r
+       [ CTRL + 66 /*B*/, 'Bold' ],\r
+       [ CTRL + 73 /*I*/, 'Italic' ],\r
+       [ CTRL + 85 /*U*/, 'Underline' ],\r
+       [ CTRL + SHIFT + 83 /*S*/, 'Save' ],\r
+       [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],\r
+       [ CTRL + 9 /*TAB*/, 'Source' ]\r
+] ;\r
+\r
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;\r
+FCKConfig.BrowserContextMenuOnCtrl = false ;\r
+\r
+FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;\r
+\r
+FCKConfig.FontNames            = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;\r
+FCKConfig.FontSizes            = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;\r
+FCKConfig.FontFormats  = 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;\r
+\r
+FCKConfig.StylesXmlPath                = FCKConfig.EditorPath + 'fckstyles.xml' ;\r
+FCKConfig.TemplatesXmlPath     = FCKConfig.EditorPath + 'fcktemplates.xml' ;\r
+\r
+FCKConfig.SpellChecker                 = 'ieSpell' ;   // 'ieSpell' | 'SpellerPages'\r
+FCKConfig.IeSpellDownloadUrl   = 'http://www.iespell.com/download.php' ;\r
+FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ;       // Available extension: .php .cfm .pl\r
+FCKConfig.FirefoxSpellChecker  = false ;\r
+\r
+FCKConfig.MaxUndoLevels = 15 ;\r
+\r
+FCKConfig.DisableObjectResizing = false ;\r
+FCKConfig.DisableFFTableHandles = true ;\r
+\r
+FCKConfig.LinkDlgHideTarget            = false ;\r
+FCKConfig.LinkDlgHideAdvanced  = false ;\r
+\r
+FCKConfig.ImageDlgHideLink             = false ;\r
+FCKConfig.ImageDlgHideAdvanced = false ;\r
+\r
+FCKConfig.FlashDlgHideAdvanced = false ;\r
+\r
+FCKConfig.ProtectedTags = '' ;\r
+\r
+// This will be applied to the body element of the editor\r
+FCKConfig.BodyId = '' ;\r
+FCKConfig.BodyClass = '' ;\r
+\r
+FCKConfig.DefaultLinkTarget = '' ;\r
+\r
+// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word\r
+FCKConfig.CleanWordKeepsStructure = false ;\r
+\r
+// The following value defines which File Browser connector and Quick Upload\r
+// "uploader" to use. It is valid for the default implementaion and it is here\r
+// just to make this configuration file cleaner.\r
+// It is not possible to change this value using an external file or even\r
+// inline when creating the editor instance. In that cases you must set the\r
+// values of LinkBrowserURL, ImageBrowserURL and so on.\r
+// Custom implementations should just ignore it.\r
+var _FileBrowserLanguage       = 'asp' ;       // asp | aspx | cfm | lasso | perl | php | py\r
+var _QuickUploadLanguage       = 'asp' ;       // asp | aspx | cfm | lasso | php\r
+\r
+\r
+// Don't care about the following line. It just calculates the correct connector\r
+// extension to use for the default File Browser (Perl uses "cgi").\r
+var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;\r
+\r
+FCKConfig.LinkBrowser = true ;\r
+FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;\r
+FCKConfig.LinkBrowserWindowWidth       = FCKConfig.ScreenWidth * 0.7 ;         // 70%\r
+FCKConfig.LinkBrowserWindowHeight      = FCKConfig.ScreenHeight * 0.7 ;        // 70%\r
+\r
+FCKConfig.ImageBrowser = true ;\r
+FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;\r
+FCKConfig.ImageBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;     // 70% ;\r
+FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;    // 70% ;\r
+\r
+FCKConfig.FlashBrowser = true ;\r
+FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;\r
+FCKConfig.FlashBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;     //70% ;\r
+FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;    //70% ;\r
+\r
+FCKConfig.LinkUpload = true ;\r
+FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ;\r
+FCKConfig.LinkUploadAllowedExtensions  = "" ;                  // empty for all\r
+FCKConfig.LinkUploadDeniedExtensions   = ".(html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|sh|shtml|shtm|phtm)$" ;  // empty for no one\r
+\r
+FCKConfig.ImageUpload = true ;\r
+FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;\r
+FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ;          // empty for all\r
+FCKConfig.ImageUploadDeniedExtensions  = "" ;                                                  // empty for no one\r
+\r
+FCKConfig.FlashUpload = true ;\r
+FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ;\r
+FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla)$" ;               // empty for all\r
+FCKConfig.FlashUploadDeniedExtensions  = "" ;                                  // empty for no one\r
+\r
+FCKConfig.SmileyPath   = FCKConfig.BasePath + 'images/smiley/msn/' ;\r
+FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_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'] ;\r
+FCKConfig.SmileyColumns = 8 ;\r
+FCKConfig.SmileyWindowWidth            = 320 ;\r
+FCKConfig.SmileyWindowHeight   = 240 ;\r
diff --git a/httemplate/elements/fckeditor/fckeditor.js b/httemplate/elements/fckeditor/fckeditor.js
new file mode 100644 (file)
index 0000000..63ec41f
--- /dev/null
@@ -0,0 +1,214 @@
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the integration file for JavaScript.\r
+ *\r
+ * It defines the FCKeditor class that can be used to create editor\r
+ * instances in a HTML page in the client side. For server side\r
+ * operations, use the specific integration system.\r
+ */\r
+\r
+// FCKeditor Class\r
+var FCKeditor = function( instanceName, width, height, toolbarSet, value )\r
+{\r
+       // Properties\r
+       this.InstanceName       = instanceName ;\r
+       this.Width                      = width                 || '100%' ;\r
+       this.Height                     = height                || '200' ;\r
+       this.ToolbarSet         = toolbarSet    || 'Default' ;\r
+       this.Value                      = value                 || '' ;\r
+       this.BasePath           = '/fckeditor/' ;\r
+       this.CheckBrowser       = true ;\r
+       this.DisplayErrors      = true ;\r
+       this.EnableSafari       = false ;               // This is a temporary property, while Safari support is under development.\r
+       this.EnableOpera        = false ;               // This is a temporary property, while Opera support is under development.\r
+\r
+       this.Config                     = new Object() ;\r
+\r
+       // Events\r
+       this.OnError            = null ;        // function( source, errorNumber, errorDescription )\r
+}\r
+\r
+FCKeditor.prototype.Version                    = '2.4.3' ;\r
+FCKeditor.prototype.VersionBuild       = '15657' ;\r
+\r
+FCKeditor.prototype.Create = function()\r
+{\r
+       document.write( this.CreateHtml() ) ;\r
+}\r
+\r
+FCKeditor.prototype.CreateHtml = function()\r
+{\r
+       // Check for errors\r
+       if ( !this.InstanceName || this.InstanceName.length == 0 )\r
+       {\r
+               this._ThrowError( 701, 'You must specify an instance name.' ) ;\r
+               return '' ;\r
+       }\r
+\r
+       var sHtml = '<div>' ;\r
+\r
+       if ( !this.CheckBrowser || this._IsCompatibleBrowser() )\r
+       {\r
+               sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ;\r
+               sHtml += this._GetConfigHtml() ;\r
+               sHtml += this._GetIFrameHtml() ;\r
+       }\r
+       else\r
+       {\r
+               var sWidth  = this.Width.toString().indexOf('%')  > 0 ? this.Width  : this.Width  + 'px' ;\r
+               var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ;\r
+               sHtml += '<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="width:' + sWidth + ';height:' + sHeight + '">' + this._HTMLEncode( this.Value ) + '<\/textarea>' ;\r
+       }\r
+\r
+       sHtml += '</div>' ;\r
+\r
+       return sHtml ;\r
+}\r
+\r
+FCKeditor.prototype.ReplaceTextarea = function()\r
+{\r
+       if ( !this.CheckBrowser || this._IsCompatibleBrowser() )\r
+       {\r
+               // We must check the elements firstly using the Id and then the name.\r
+               var oTextarea = document.getElementById( this.InstanceName ) ;\r
+               var colElementsByName = document.getElementsByName( this.InstanceName ) ;\r
+               var i = 0;\r
+               while ( oTextarea || i == 0 )\r
+               {\r
+                       if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' )\r
+                               break ;\r
+                       oTextarea = colElementsByName[i++] ;\r
+               }\r
+\r
+               if ( !oTextarea )\r
+               {\r
+                       alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;\r
+                       return ;\r
+               }\r
+\r
+               oTextarea.style.display = 'none' ;\r
+               this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ;\r
+               this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ;\r
+       }\r
+}\r
+\r
+FCKeditor.prototype._InsertHtmlBefore = function( html, element )\r
+{\r
+       if ( element.insertAdjacentHTML )       // IE\r
+               element.insertAdjacentHTML( 'beforeBegin', html ) ;\r
+       else                                                            // Gecko\r
+       {\r
+               var oRange = document.createRange() ;\r
+               oRange.setStartBefore( element ) ;\r
+               var oFragment = oRange.createContextualFragment( html );\r
+               element.parentNode.insertBefore( oFragment, element ) ;\r
+       }\r
+}\r
+\r
+FCKeditor.prototype._GetConfigHtml = function()\r
+{\r
+       var sConfig = '' ;\r
+       for ( var o in this.Config )\r
+       {\r
+               if ( sConfig.length > 0 ) sConfig += '&amp;' ;\r
+               sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ;\r
+       }\r
+\r
+       return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ;\r
+}\r
+\r
+FCKeditor.prototype._GetIFrameHtml = function()\r
+{\r
+       var sFile = 'fckeditor.html' ;\r
+\r
+       try\r
+       {\r
+               if ( (/fcksource=true/i).test( window.top.location.search ) )\r
+                       sFile = 'fckeditor.original.html' ;\r
+       }\r
+       catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }\r
+\r
+       var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;\r
+       if (this.ToolbarSet) sLink += '&amp;Toolbar=' + this.ToolbarSet ;\r
+\r
+       return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ;\r
+}\r
+\r
+FCKeditor.prototype._IsCompatibleBrowser = function()\r
+{\r
+       return FCKeditor_IsCompatibleBrowser( this.EnableSafari, this.EnableOpera ) ;\r
+}\r
+\r
+FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription )\r
+{\r
+       this.ErrorNumber                = errorNumber ;\r
+       this.ErrorDescription   = errorDescription ;\r
+\r
+       if ( this.DisplayErrors )\r
+       {\r
+               document.write( '<div style="COLOR: #ff0000">' ) ;\r
+               document.write( '[ FCKeditor Error ' + this.ErrorNumber + ': ' + this.ErrorDescription + ' ]' ) ;\r
+               document.write( '</div>' ) ;\r
+       }\r
+\r
+       if ( typeof( this.OnError ) == 'function' )\r
+               this.OnError( this, errorNumber, errorDescription ) ;\r
+}\r
+\r
+FCKeditor.prototype._HTMLEncode = function( text )\r
+{\r
+       if ( typeof( text ) != "string" )\r
+               text = text.toString() ;\r
+\r
+       text = text.replace(\r
+               /&/g, "&amp;").replace(\r
+               /"/g, "&quot;").replace(\r
+               /</g, "&lt;").replace(\r
+               />/g, "&gt;") ;\r
+\r
+       return text ;\r
+}\r
+\r
+function FCKeditor_IsCompatibleBrowser( enableSafari, enableOpera )\r
+{\r
+       var sAgent = navigator.userAgent.toLowerCase() ;\r
+\r
+       // Internet Explorer\r
+       if ( sAgent.indexOf("msie") != -1 && sAgent.indexOf("mac") == -1 && sAgent.indexOf("opera") == -1 )\r
+       {\r
+               var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;\r
+               return ( sBrowserVersion >= 5.5 ) ;\r
+       }\r
+\r
+       // Gecko (Opera 9 tries to behave like Gecko at this point).\r
+       if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) )\r
+               return true ;\r
+\r
+       // Opera\r
+       if ( enableOpera && sAgent.indexOf( 'opera' ) == 0 && parseInt( navigator.appVersion, 10 ) >= 9 )\r
+                       return true ;\r
+\r
+       // Safari\r
+       if ( enableSafari && sAgent.indexOf( 'safari' ) != -1 )\r
+               return ( sAgent.match( /safari\/(\d+)/ )[1] >= 312 ) ;  // Build must be at least 312 (1.3)\r
+\r
+       return false ;\r
+}
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/fckpackager.xml b/httemplate/elements/fckeditor/fckpackager.xml
new file mode 100644 (file)
index 0000000..3cae595
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the configuration file to be used with FCKpackager to generate the\r
+ * compressed code files in the "js" folder.\r
+ *\r
+ * Please check http://www.fckeditor.net for more info.\r
+-->\r
+<Package>\r
+       <Header><![CDATA[/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ * \r
+ * == BEGIN LICENSE ==\r
+ * \r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ * \r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ * \r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ * \r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ * \r
+ * == END LICENSE ==\r
+ * \r
+ * This file has been compressed for better performance. The original source\r
+ * can be found at "editor/_source".\r
+ */\r
+]]></Header>\r
+       <Constants removeDeclaration="false">\r
+               <Constant name="FCK_STATUS_NOTLOADED" value="0" />\r
+               <Constant name="FCK_STATUS_ACTIVE" value="1" />\r
+               <Constant name="FCK_STATUS_COMPLETE" value="2" />\r
+               <Constant name="FCK_TRISTATE_OFF" value="0" />\r
+               <Constant name="FCK_TRISTATE_ON" value="1" />\r
+               <Constant name="FCK_TRISTATE_DISABLED" value="-1" />\r
+               <Constant name="FCK_UNKNOWN" value="-9" />\r
+               <Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" />\r
+               <Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" />\r
+               <Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" />\r
+               <Constant name="FCK_EDITMODE_WYSIWYG" value="0" />\r
+               <Constant name="FCK_EDITMODE_SOURCE" value="1" />\r
+       </Constants>\r
+       <PackageFile path="editor/js/fckeditorcode_ie.js">\r
+               <File path="editor/_source/fckconstants.js" />\r
+               <File path="editor/_source/fckjscoreextensions.js" />\r
+               <File path="editor/_source/classes/fckiecleanup.js" />\r
+               <File path="editor/_source/internals/fckbrowserinfo.js" />\r
+               <File path="editor/_source/internals/fckurlparams.js" />\r
+               <File path="editor/_source/classes/fckevents.js" />\r
+               <File path="editor/_source/internals/fck.js" />\r
+               <File path="editor/_source/internals/fck_ie.js" />\r
+               <File path="editor/_source/internals/fckconfig.js" />\r
+               <File path="editor/_source/internals/fckdebug.js" />\r
+               <File path="editor/_source/internals/fckdomtools.js" />\r
+               <File path="editor/_source/internals/fcktools.js" />\r
+               <File path="editor/_source/internals/fcktools_ie.js" />\r
+               <File path="editor/_source/fckeditorapi.js" />\r
+               <File path="editor/_source/classes/fckimagepreloader.js" />\r
+\r
+               <File path="editor/_source/internals/fckregexlib.js" />\r
+               <File path="editor/_source/internals/fcklistslib.js" />\r
+               <File path="editor/_source/internals/fcklanguagemanager.js" />\r
+               <File path="editor/_source/internals/fckxhtmlentities.js" />\r
+               <File path="editor/_source/internals/fckxhtml.js" />\r
+               <File path="editor/_source/internals/fckxhtml_ie.js" />\r
+               <File path="editor/_source/internals/fckcodeformatter.js" />\r
+               <File path="editor/_source/internals/fckundo_ie.js" />\r
+               <File path="editor/_source/classes/fckeditingarea.js" />\r
+               <File path="editor/_source/classes/fckkeystrokehandler.js" />\r
+\r
+               <File path="editor/_source/internals/fcklisthandler.js" />\r
+               <File path="editor/_source/classes/fckelementpath.js" />\r
+               <File path="editor/_source/classes/fckdomrange.js" />\r
+               <File path="editor/_source/classes/fckdomrange_ie.js" />\r
+               <File path="editor/_source/classes/fckdocumentfragment_ie.js" />\r
+               <File path="editor/_source/classes/fckw3crange.js" />\r
+               <File path="editor/_source/classes/fckenterkey.js" />\r
+\r
+               <File path="editor/_source/internals/fckdocumentprocessor.js" />\r
+               <File path="editor/_source/internals/fckselection.js" />\r
+               <File path="editor/_source/internals/fckselection_ie.js" />\r
+\r
+               <File path="editor/_source/internals/fcktablehandler.js" />\r
+               <File path="editor/_source/internals/fcktablehandler_ie.js" />\r
+               <File path="editor/_source/classes/fckxml_ie.js" />\r
+               <File path="editor/_source/classes/fckstyledef.js" />\r
+               <File path="editor/_source/classes/fckstyledef_ie.js" />\r
+               <File path="editor/_source/classes/fckstylesloader.js" />\r
+\r
+               <File path="editor/_source/commandclasses/fcknamedcommand.js" />\r
+               <File path="editor/_source/commandclasses/fck_othercommands.js" />\r
+               <File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" />\r
+               <File path="editor/_source/commandclasses/fcktextcolorcommand.js" />\r
+               <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />\r
+               <File path="editor/_source/commandclasses/fckpastewordcommand.js" />\r
+               <File path="editor/_source/commandclasses/fcktablecommand.js" />\r
+               <File path="editor/_source/commandclasses/fckstylecommand.js" />\r
+               <File path="editor/_source/commandclasses/fckfitwindow.js" />\r
+               <File path="editor/_source/internals/fckcommands.js" />\r
+\r
+               <File path="editor/_source/classes/fckpanel.js" />\r
+               <File path="editor/_source/classes/fckicon.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbuttonui.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbutton.js" />\r
+               <File path="editor/_source/classes/fckspecialcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarspecialcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontscombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarstylecombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarpanelbutton.js" />\r
+               <File path="editor/_source/internals/fcktoolbaritems.js" />\r
+               <File path="editor/_source/classes/fcktoolbar.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbreak_ie.js" />\r
+               <File path="editor/_source/internals/fcktoolbarset.js" />\r
+               <File path="editor/_source/internals/fckdialog.js" />\r
+               <File path="editor/_source/internals/fckdialog_ie.js" />\r
+\r
+               <File path="editor/_source/classes/fckmenuitem.js" />\r
+               <File path="editor/_source/classes/fckmenublock.js" />\r
+               <File path="editor/_source/classes/fckmenublockpanel.js" />\r
+               <File path="editor/_source/classes/fckcontextmenu.js" />\r
+               <File path="editor/_source/internals/fck_contextmenu.js" />\r
+\r
+               <File path="editor/_source/classes/fckplugin.js" />\r
+               <File path="editor/_source/internals/fckplugins.js" />\r
+       </PackageFile>\r
+\r
+       <PackageFile path="editor/js/fckeditorcode_gecko.js">\r
+               <File path="editor/_source/fckconstants.js" />\r
+               <File path="editor/_source/fckjscoreextensions.js" />\r
+               <File path="editor/_source/internals/fckbrowserinfo.js" />\r
+               <File path="editor/_source/internals/fckurlparams.js" />\r
+               <File path="editor/_source/classes/fckevents.js" />\r
+               <File path="editor/_source/internals/fck.js" />\r
+               <File path="editor/_source/internals/fck_gecko.js" />\r
+               <File path="editor/_source/internals/fckconfig.js" />\r
+               <File path="editor/_source/internals/fckdebug.js" />\r
+               <File path="editor/_source/internals/fckdomtools.js" />\r
+               <File path="editor/_source/internals/fcktools.js" />\r
+               <File path="editor/_source/internals/fcktools_gecko.js" />\r
+               <File path="editor/_source/fckeditorapi.js" />\r
+               <File path="editor/_source/classes/fckimagepreloader.js" />\r
+\r
+               <File path="editor/_source/internals/fckregexlib.js" />\r
+               <File path="editor/_source/internals/fcklistslib.js" />\r
+               <File path="editor/_source/internals/fcklanguagemanager.js" />\r
+               <File path="editor/_source/internals/fckxhtmlentities.js" />\r
+               <File path="editor/_source/internals/fckxhtml.js" />\r
+               <File path="editor/_source/internals/fckxhtml_gecko.js" />\r
+               <File path="editor/_source/internals/fckcodeformatter.js" />\r
+               <File path="editor/_source/internals/fckundo_gecko.js" />\r
+               <File path="editor/_source/classes/fckeditingarea.js" />\r
+               <File path="editor/_source/classes/fckkeystrokehandler.js" />\r
+\r
+               <File path="editor/_source/internals/fcklisthandler.js" />\r
+               <File path="editor/_source/classes/fckelementpath.js" />\r
+               <File path="editor/_source/classes/fckdomrange.js" />\r
+               <File path="editor/_source/classes/fckdomrange_gecko.js" />\r
+               <File path="editor/_source/classes/fckdocumentfragment_gecko.js" />\r
+               <File path="editor/_source/classes/fckw3crange.js" />\r
+               <File path="editor/_source/classes/fckenterkey.js" />\r
+\r
+               <File path="editor/_source/internals/fckdocumentprocessor.js" />\r
+               <File path="editor/_source/internals/fckselection.js" />\r
+               <File path="editor/_source/internals/fckselection_gecko.js" />\r
+\r
+               <File path="editor/_source/internals/fcktablehandler.js" />\r
+               <File path="editor/_source/internals/fcktablehandler_gecko.js" />\r
+               <File path="editor/_source/classes/fckxml_gecko.js" />\r
+               <File path="editor/_source/classes/fckstyledef.js" />\r
+               <File path="editor/_source/classes/fckstyledef_gecko.js" />\r
+               <File path="editor/_source/classes/fckstylesloader.js" />\r
+\r
+               <File path="editor/_source/commandclasses/fcknamedcommand.js" />\r
+               <File path="editor/_source/commandclasses/fck_othercommands.js" />\r
+               <File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" />\r
+               <File path="editor/_source/commandclasses/fcktextcolorcommand.js" />\r
+               <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />\r
+               <File path="editor/_source/commandclasses/fckpastewordcommand.js" />\r
+               <File path="editor/_source/commandclasses/fcktablecommand.js" />\r
+               <File path="editor/_source/commandclasses/fckstylecommand.js" />\r
+               <File path="editor/_source/commandclasses/fckfitwindow.js" />\r
+               <File path="editor/_source/internals/fckcommands.js" />\r
+\r
+               <File path="editor/_source/classes/fckpanel.js" />\r
+               <File path="editor/_source/classes/fckicon.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbuttonui.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbutton.js" />\r
+               <File path="editor/_source/classes/fckspecialcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarspecialcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontscombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarstylecombo.js" />\r
+               <File path="editor/_source/classes/fcktoolbarpanelbutton.js" />\r
+               <File path="editor/_source/internals/fcktoolbaritems.js" />\r
+               <File path="editor/_source/classes/fcktoolbar.js" />\r
+               <File path="editor/_source/classes/fcktoolbarbreak_gecko.js" />\r
+               <File path="editor/_source/internals/fcktoolbarset.js" />\r
+               <File path="editor/_source/internals/fckdialog.js" />\r
+               <File path="editor/_source/internals/fckdialog_gecko.js" />\r
+\r
+               <File path="editor/_source/classes/fckmenuitem.js" />\r
+               <File path="editor/_source/classes/fckmenublock.js" />\r
+               <File path="editor/_source/classes/fckmenublockpanel.js" />\r
+               <File path="editor/_source/classes/fckcontextmenu.js" />\r
+               <File path="editor/_source/internals/fck_contextmenu.js" />\r
+\r
+               <File path="editor/_source/classes/fckplugin.js" />\r
+               <File path="editor/_source/internals/fckplugins.js" />\r
+       </PackageFile>\r
+\r
+</Package>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/fckstyles.xml b/httemplate/elements/fckeditor/fckstyles.xml
new file mode 100644 (file)
index 0000000..bfd80e7
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the sample style definitions file. It makes the styles combo\r
+ * completely customizable.\r
+ *\r
+ * See FCKConfig.StylesXmlPath in the configuration file.\r
+-->\r
+<Styles>\r
+       <Style name="Image on Left" element="img">\r
+               <Attribute name="style" value="padding: 5px; margin-right: 5px" />\r
+               <Attribute name="border" value="2" />\r
+               <Attribute name="align" value="left" />\r
+       </Style>\r
+       <Style name="Image on Right" element="img">\r
+               <Attribute name="style" value="padding: 5px; margin-left: 5px" />\r
+               <Attribute name="border" value="2" />\r
+               <Attribute name="align" value="right" />\r
+       </Style>\r
+       <Style name="Custom Bold" element="span">\r
+               <Attribute name="style" value="font-weight: bold;" />\r
+       </Style>\r
+       <Style name="Custom Italic" element="em" />\r
+       <Style name="Title" element="span">\r
+               <Attribute name="class" value="Title" />\r
+       </Style>\r
+       <Style name="Code" element="span">\r
+               <Attribute name="class" value="Code" />\r
+       </Style>\r
+       <Style name="Title H3" element="h3" />\r
+       <Style name="Custom Ruler" element="hr">\r
+               <Attribute name="size" value="1" />\r
+               <Attribute name="color" value="#ff0000" />\r
+       </Style>\r
+</Styles>
\ No newline at end of file
diff --git a/httemplate/elements/fckeditor/fcktemplates.xml b/httemplate/elements/fckeditor/fcktemplates.xml
new file mode 100644 (file)
index 0000000..8761062
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<!--\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * This is the sample templates definitions file. It makes the "templates"\r
+ * command completely customizable.\r
+ *\r
+ * See FCKConfig.TemplatesXmlPath in the configuration file.\r
+-->\r
+<Templates imagesBasePath="fck_template/images/">\r
+       <Template title="Image and Title" image="template1.gif">\r
+               <Description>One main image with a title and text that surround the image.</Description>\r
+               <Html>\r
+                       <![CDATA[\r
+                               <img style="MARGIN-RIGHT: 10px" height="100" alt="" width="100" align="left"/>\r
+                               <h3>Type the title here</h3>\r
+                               Type the text here\r
+                       ]]>\r
+               </Html>\r
+       </Template>\r
+       <Template title="Strange Template" image="template2.gif">\r
+               <Description>A template that defines two colums, each one with a title, and some text.</Description>\r
+               <Html>\r
+                       <![CDATA[\r
+                               <table cellspacing="0" cellpadding="0" width="100%" border="0">\r
+                                       <tbody>\r
+                                               <tr>\r
+                                                       <td width="50%">\r
+                                                       <h3>Title 1</h3>\r
+                                                       </td>\r
+                                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>\r
+                                                       <td width="50%">\r
+                                                       <h3>Title 2</h3>\r
+                                                       </td>\r
+                                               </tr>\r
+                                               <tr>\r
+                                                       <td>Text 1</td>\r
+                                                       <td>&nbsp;</td>\r
+                                                       <td>Text 2</td>\r
+                                               </tr>\r
+                                       </tbody>\r
+                               </table>\r
+                               More text goes here.\r
+                       ]]>\r
+               </Html>\r
+       </Template>\r
+       <Template title="Text and Table" image="template3.gif">\r
+               <Description>A title with some text and a table.</Description>\r
+               <Html>\r
+                       <![CDATA[\r
+                               <table align="left" width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td>\r
+                                       <h3>Title goes here</h3>\r
+                                       <p>\r
+                                       <table style="FLOAT: right" cellspacing="0" cellpadding="0" width="150" border="1">\r
+                                               <tbody>\r
+                                                       <tr>\r
+                                                               <td align="center" colspan="3"><strong>Table title</strong></td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                               <td>&nbsp;</td>\r
+                                                       </tr>\r
+                                               </tbody>\r
+                                       </table>\r
+                                       Type the text here</p>\r
+                               </td></tr></table>\r
+                       ]]>\r
+               </Html>\r
+       </Template>\r
+</Templates>\r
index 6f7cadb..c310e2f 100644 (file)
@@ -1,5 +1,6 @@
 * {
   font-family: Arial, Verdana, Helvetica, sans-serif;
+  /* font-family: Verdana, Arial, Helvetica, sans-serif; */
 }
 
 A:link IMG, A:visited { border-style: none }
diff --git a/httemplate/elements/hidden.html b/httemplate/elements/hidden.html
new file mode 100644 (file)
index 0000000..26da70a
--- /dev/null
@@ -0,0 +1,11 @@
+<INPUT TYPE  = "hidden"
+       NAME  = "<% $opt{field} %>"
+       ID    = "<% $opt{field} %>"
+       VALUE = "<% $opt{curr_value} || $opt{value} %>"
+>
+
+<%init>
+
+my %opt = @_;
+
+</%init>
index 7ee34a9..42e2a83 100644 (file)
@@ -152,8 +152,10 @@ tie my %report_rating, 'Tie::IxHash',
 ;
 
 tie my %report_bill_event, 'Tie::IxHash',
-  'All billing events' => [ $fsurl.'search/cust_bill_event.html', 'All billing events for a date range' ],
-  'Invoice event errors' => [ $fsurl.'search/cust_bill_event.html?failed=1', 'failed credit cards, processor or printer problems, etc.' ],
+  'All billing events' => [ $fsurl.'search/report_cust_event.html', 'All billing events for a date range' ],
+  'Billing event errors' => [ $fsurl.'search/report_cust_event.html?failed=1', 'Failed credit cards, processor or printer problems, etc.' ],
+  'All invoice events' => [ $fsurl.'search/cust_bill_event.html', 'Reports on deprecated, old-style invoice events for a date range' ],
+  'Invoice event errors' => [ $fsurl.'search/cust_bill_event.html?failed=1', 'Reports on deprecated, old-style events for failed credit cards, processor or printer problems, etc.' ],
 ;
 
 tie my %report_financial, 'Tie::IxHash', 
@@ -235,12 +237,18 @@ tie my %config_agent, 'Tie::IxHash',
 ;
 
 tie my %config_billing, 'Tie::IxHash',
-  'View/Edit payment gateways'         => [ $fsurl.'browse/payment_gateway.html', 'Credit card and electronic check processors' ],
-  'View/Edit invoice events'           => [ $fsurl.'browse/part_bill_event.cgi', 'Actions for overdue invoices' ],
-  'View/Edit prepaid cards'            => [ $fsurl.'search/prepay_credit.html', 'View outstanding cards, generate new cards' ],
-  'View/Edit call rates and regions'   => [ $fsurl.'browse/rate.cgi', 'Manage rate plans, regions and prefixes for VoIP and call billing' ],
-  'View/Edit locales and tax rates'    => [ $fsurl.'browse/cust_main_county.cgi', 'Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each' ],
-;
+  'View/Edit payment gateways'         => [ $fsurl.'browse/payment_gateway.html', 'Credit card and electronic check processors' ];
+$config_billing{'View/Edit billing events'} = [ $fsurl.'browse/part_event.html', 'Billing actions for customers, invoices and packages' ]
+    if $curuser->access_right('Configuration')
+    || $curuser->access_right('Edit billing events')
+    || $curuser->access_right('Edit global billing events');
+if ( $curuser->access_right('Configuration') ) {
+  $config_billing{'View/Edit invoice events'}         = [ $fsurl.'browse/part_bill_event.cgi', 'Deprecated, old-style actions for overdue invoices' ];
+  $config_billing{'View/Edit invoice templates'}      = [ $fsurl.'browse/invoice_template.html', 'Edit templates for HTML, plaintext and typeset invoices' ];
+  $config_billing{'View/Edit prepaid cards'}          = [ $fsurl.'search/prepay_credit.html', 'View outstanding cards, generate new cards' ];
+  $config_billing{'View/Edit call rates and regions'} = [ $fsurl.'browse/rate.cgi', 'Manage rate plans, regions and prefixes for VoIP and call billing' ];
+  $config_billing{'View/Edit locales and tax rates'}  = [ $fsurl.'browse/cust_main_county.cgi', 'Change tax rates, or break down a country into states, or a state into counties and assign different tax rates to each' ];
+}
 
 tie my %config_dialup, 'Tie::IxHash',
   'View/Edit access numbers' => [ $fsurl.'browse/svc_acct_pop.cgi', 'Points of Presence' ],
@@ -271,12 +279,17 @@ if ( $curuser->access_right('Configuration' ) ) {
     'Provisioning, services and packages'
                     => [ \%config_export_svc_pkg, ''    ],
     'Resellers'     => [ \%config_agent, ''    ],
-    'Billing'       => [ \%config_billing, ''    ],
-    'Dialup'        => [ \%config_dialup, ''    ],
-    'Fixed (username-less) broadband'
-                    => [ \%config_broadband, ''    ],
   );
 }
+$config_menu{'Billing'} = [ \%config_billing, ''    ]
+  if $curuser->access_right('Configuration')
+  || $curuser->access_right('Edit billing events')
+  || $curuser->access_right('Edit global billing events');
+if ( $curuser->access_right('Configuration') ) {
+  $config_menu{'Dialup'}  = [ \%config_dialup, ''    ];
+  $config_menu{'Fixed (username-less) broadband'} = 
+                            [ \%config_broadband, ''    ];
+}
 $config_menu{'Miscellaneous'} = [ \%config_misc, ''    ]
   if $curuser->access_right('Configuration')
   || $curuser->access_right('Edit advertising sources')
index 3107ff9..54069a5 100644 (file)
@@ -1,10 +1,3 @@
-%
-%  my( $agentnum, %opt ) = @_;
-%
-%  $opt{'records'} = delete $opt{'agents'}
-%    if $opt{'agents'};
-%
-%
 <% include( '/elements/select-table.html',
                  'table'       => 'agent',
                  'name_col'    => 'agent',
                  %opt,
              )
 %>
+<%init>
+
+my %opt = @_;
+my $agentnum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'records'} = delete $opt{'agents'}
+  if $opt{'agents'};
+
+</%init>
diff --git a/httemplate/elements/select-agent_type.html b/httemplate/elements/select-agent_type.html
new file mode 100644 (file)
index 0000000..ba59cd3
--- /dev/null
@@ -0,0 +1,21 @@
+<% include( '/elements/select-table.html',
+                 'table'       => 'agent_type',
+                 'name_col'    => 'atype',
+                 'value'       => $typenum || '',
+                 'empty_label' => 'all',
+                 'hashref'     => { 'disabled' => '' },
+                 #'extra_sql'   => ' AND '.
+                 #                 $FS::CurrentUser::CurrentUser->agentnums_sql.
+                 #                 ' ORDER BY agent',
+                 %opt,
+             )
+%>
+<%init>
+
+my %opt = @_;
+my $typenum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'records'} = delete $opt{'agent_types'}
+  if $opt{'agent_types'};
+
+</%init>
diff --git a/httemplate/elements/select-cust_main-status.html b/httemplate/elements/select-cust_main-status.html
new file mode 100644 (file)
index 0000000..2e0b6cb
--- /dev/null
@@ -0,0 +1,30 @@
+<SELECT NAME="<% $opt{'field'} || 'status' %>"
+        <% $opt{'multiple'} ? 'MULTIPLE' : '' %>
+        <% $onchange %>
+>
+
+  <OPTION VALUE="">all
+
+% foreach my $option ( @{ $opt{'statuses'} } ) { 
+
+    <OPTION VALUE="<% $option %>"
+            <% $option eq $curr_value ? 'SELECTED' : '' %>
+    ><% $option %>
+
+% } 
+
+</SELECT>
+
+<%init>
+
+my %opt = @_;
+
+$opt{'statuses'} ||= [ FS::cust_main->statuses() ]; # { disabled=>'' } )
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+
+</%init>
index 71aaa84..2d545c0 100644 (file)
@@ -1,21 +1,30 @@
-<SELECT NAME="status" <% $opt{'onchange'} %>>
+<SELECT NAME="<% $opt{'field'} || 'status' %>"
+        <% $opt{'multiple'} ? 'MULTIPLE' : '' %>
+        <% $onchange %>
+>
 
   <OPTION VALUE="">all
 
 % foreach my $option ( @{ $opt{'statuses'} } ) { 
-       <OPTION VALUE="<% $option %>" <% $option eq $status ? 'SELECTED' : '' %>><% $option %>
+
+    <OPTION VALUE="<% $option %>"
+            <% $option eq $curr_value ? 'SELECTED' : '' %>
+    ><% $option %>
+
 % } 
 
 </SELECT>
+
 <%init>
-  my( $status, %opt ) = @_;
 
-  $opt{'statuses'} ||= [ FS::cust_pkg->statuses() ]; # { disabled=>'' } )
+my %opt = @_;
+
+$opt{'statuses'} ||= [ FS::cust_pkg->statuses() ]; # { disabled=>'' } )
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
 
-  if ( exists $opt{'onchange'} && $opt{'onchange'} ) {
-    $opt{'onchange'} = ' onChange="' . $opt{'onchange'}. '"';
-  } else {
-    $opt{'onchange'} = '';
-  }
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
 
 </%init>
index 670b70c..c4b8829 100644 (file)
@@ -1,10 +1,3 @@
-%
-%  my( $refnum, %opt ) = @_;
-%
-%  $opt{'records'} = delete $opt{'part_referrals'}
-%    if $opt{'part_referrals'};
-%
-%
 <% include( '/elements/select-table.html',
                  'table'       => 'part_referral',
                  'name_col'    => 'referral',
@@ -16,3 +9,12 @@
                  %opt,
              )
 %>
+<%init>
+
+my %opt = @_;
+my $refnum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'records'} = delete $opt{'part_referrals'}
+  if $opt{'part_referrals'};
+
+</%init>
index 8e873ed..f30259e 100644 (file)
@@ -1,10 +1,3 @@
-%  my( $classnum, %opt ) = @_;
-%
-%  $opt{'records'} = delete $opt{'pkg_class'}
-%    if $opt{'pkg_class'};
-%
-%  #warn "***** select-pkg-class: \n". Dumper(%opt);
-%
 <% include( '/elements/select-table.html',
                  'table'       => 'pkg_class',
                  'name_col'    => 'classname',
@@ -14,3 +7,12 @@
                  %opt,
              )
 %>
+<%init>
+
+my %opt = @_;
+my $classnum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'records'} = delete $opt{'pkg_class'}
+  if $opt{'pkg_class'};
+
+</%init>
index 3235ef6..4bf3d1c 100644 (file)
@@ -1,73 +1,89 @@
-<SELECT NAME="<% $opt{'element_name'} || $key %>" <% $opt{'element_etc'} %>>
+<%doc>
+
+Example:
+
+  include( '/elements/select-table.html',
+
+    #required
+    'table'    => 'table_name',
+    'name_col' => 'name_column',
+   
+    #strongly recommended (you want your forms to be "sticky" on errors, right?)
+    'value'    => 'current_value',
+   
+    #opt
+    'empty_label'   => '', #better specify it though, the default might change
+    'hashref'       => {},
+    'extra_sql'     => '',
+    'records'       => \@records, #instead of hashref
+    'pre_options'   => [ 'value' => 'option' ], #before normal options
+    'element_name ' => '', #HTML element name, defaults to the name of
+                           # the primary key column
+    'field'         => '', #synonym for element_name
+    'element_etc'   => '', #additional attributes (i.e. "DISABLED") for the
+                           #<SELECT> element
+    'multiple'      => 0, # bool
+    'disable_empty' => 0, # bool (implied by multiple)
+    'debug'         => 0, #set true to enable
+
+  )
+
+</%doc>
+
+<SELECT <% $opt{'multiple'} ? 'MULTIPLE' : '' %> NAME="<% $opt{'element_name'} || $opt{'field'} || $key %>" <% $opt{'element_etc'} %>>
 
 % while ( @pre_options ) { 
-
     <OPTION VALUE="<% shift(@pre_options) %>"><% shift(@pre_options) %>
 
 % } 
 
-  <OPTION VALUE=""><% $opt{'empty_label'} || 'all' %>
+% unless ( $opt{'multiple'} || $opt{'disable_empty'} ) {
+    <OPTION VALUE=""><% $opt{'empty_label'} || 'all' %>
+% }
 
 % foreach my $record ( sort { $a->$name_col() cmp $b->$name_col() } @records ) {
-%   my $matches = 0;
-%   ref($opt{'value'}) ? (exists($opt{'value'}->{$record->$key()}) and $matches=1)
-%                      : ($opt{'value'} == $record->$key() and $matches=1);
-
-    <OPTION VALUE="<% $record->$key() %>"<% $matches ? ' SELECTED' : '' %>><% $record->$name_col() %>
-
+%   my $recvalue = $record->$key();
+    <OPTION VALUE="<% $recvalue %>"
+            <% ref($value) && $value->{$recvalue} || $value == $recvalue
+               ? ' SELECTED' : ''
+            %>
+    ><% $record->$name_col() %>
 % } 
 
 </SELECT>
-<%init>
 
-##required
-# 'table'    => 'table_name',
-# 'name_col' => 'name_column',
-#
-##strongly recommended (you want your forms to be "sticky" on errors, right?)
-# 'value'    => 'current_value',
-#
-##opt
-# 'empty_label'  => '', #better specify it though, the default might change
-# 'hashref'      => {},
-# 'extra_sql'    => '',
-# 'records'      => \@records, #instead of hashref
-# 'pre_options'  => [ 'value' => 'option' ], #before normal options
-# 'element_name' => '', #HTML element name, defaults to the name of
-#                       # the primary key column
-# 'element_etc'  => '', #additional attributes (i.e. "DISABLED") for the
-#                       #<SELECT> element
-# 'debug'        => 0, #set true to enable
+<%init>
 
 my( %opt ) = @_;
 
 warn "elements/select-table.html: \n". Dumper(%opt)
   if exists $opt{debug} && $opt{debug};
 
-my $key = dbdef->table($opt{table})->primary_key; #? $opt{primary_key} ||
+my $key = dbdef->table($opt{'table'})->primary_key; #? $opt{'primary_key'} ||
 
-my $name_col = $opt{name_col};
+my $name_col = $opt{'name_col'};
 
-$opt{hashref} ||= {};
+my $value = $opt{'curr_value'} || $opt{'value'};
+$value = [ split(/\s*,\s*/, $value) ] if $opt{'multiple'} && $value =~ /,/;
 
 my @records = ();
-if ( $opt{records} ) {
-  @records = @{ $opt{records} };
+if ( $opt{'records'} ) {
+  @records = @{ $opt{'records'} };
 } else {
   @records = qsearch( {
-    'table'     => $opt{table},
-    'hashref'   => $opt{hashref},
-    'extra_sql' => ( $opt{extra_sql} || '' ),
+    'table'     => $opt{'table'},
+    'hashref'   => ( $opt{'hashref'} || {} ),
+    'extra_sql' => ( $opt{'extra_sql'} || '' ),
   });
 }
 
-unless (    ! $opt{value}
-         or ref($opt{value})
+unless (    ! $value
+         or ref($value)
          or ! exists( $opt{hashref}->{disabled} ) #??
-         or grep { $opt{value} == $_->$key() } @records
+         or grep { $value == $_->$key() } @records
        ) {
   delete $opt{hashref}->{disabled};
-  $opt{hashref}->{$key} = $opt{value};
+  $opt{hashref}->{$key} = $value;
   my $record = qsearchs( {
     'table'     => $opt{table},
     'hashref'   => $opt{hashref},
@@ -76,8 +92,8 @@ unless (    ! $opt{value}
   push @records, $record if $record;
 }
 
-if ( ref( $opt{value} ) eq 'ARRAY' ) {
-  $opt{value} = { map { $_ => 1 } @{$opt{value}} };
+if ( ref( $value ) eq 'ARRAY' ) {
+  $value = { map { $_ => 1 } @$value };
 }
 
 my @pre_options = $opt{pre_options} ? @{ $opt{pre_options} } : ();
diff --git a/httemplate/elements/selectlayers.html b/httemplate/elements/selectlayers.html
new file mode 100644 (file)
index 0000000..4496892
--- /dev/null
@@ -0,0 +1,201 @@
+<%doc>
+
+Example:
+
+  include( '/elements/selectlayers.html',
+    'field'        => $key, # SELECT element NAME (passed as form field)
+                            # also used as ID and a unique key for layers and
+                            # functions
+    'curr_value'   => $selected_layer,
+    'options'      => [ 'option1', 'option2' ],
+    'labels'       => { 'option1' => 'Option 1 Label',
+                        'option2' => 'Option 2 Label',
+                      },
+
+    #XXX put this handling it its own selectlayers-fields.html element?
+    'layer_prefix' => 'prefix_', #optional prefix for fieldnames
+    'layer_fields' => [ 'layer'  => [ 'fieldname',
+                                      { label => 'fieldname2',
+                                        type  => 'text', #implemented:
+                                                         # text, money, fixed,
+                                                         # hidden, checkbox,
+                                                         # checkbox-multiple,
+                                                         # select, select-agent,
+                                                         # select-pkg_class,
+                                                         # select-part_referral,
+                                                         # select-table,
+                                                         #XXX tbd:
+                                                         # more?
+                                      },
+                                      ...
+                                    ],
+                        'layer2' => [ 'l2fieldname',
+                                      ...
+                                    ],
+
+    #current values for layer fields above
+    'layer_values' => { 'layer'  => { 'fieldname'  => 'current_value',
+                                      'fieldname2' => 'field2value',
+                                      ...
+                                    },
+                        'layer2' => { 'l2fieldname' => 'l2value',
+                                      ...
+                                    },
+                        ...
+                      },
+
+    'html_between  => '', #optional HTML displayed between the SELECT and the
+                          #layers, scalar or coderef ('field' passed as a param)
+    'onchange'     => '', #javascript code run when the SELECT changes
+                          # ("what" is the element)
+    'js_only'      => 0, #set true to return only the JS portions
+    'html_only'    => 0, #set true to return only the HTML portions
+  )
+
+</%doc>
+% unless ( $opt{html_only} || $opt{js_only} ) {
+    <SCRIPT TYPE="text/javascript">
+% }
+% unless ( $opt{html_only} ) {
+      //alert('start function define');
+      function <% $key %>changed(what) {
+
+        <% $opt{'onchange'} %>
+
+        var <% $key %>layer = what.options[what.selectedIndex].value;
+
+%       foreach my $layer ( keys %$options ) {
+
+          if (<% $key %>layer == "<% $layer %>" ) {
+
+%           foreach my $not ( grep { $_ ne $layer } keys %$options ) {
+%             my $element = "document.getElementById('${key}d$not').style";
+              <% $element %>.display = "none";
+              <% $element %>.zIndex = 0;
+%           }
+
+%           my $element = "document.getElementById('${key}d$layer').style";
+            <% $element %>.display = "";
+            <% $element %>.zIndex = 1;
+
+          }
+%       }
+
+        //<% $opt{'onchange'} %>
+
+      }
+      //alert('end function define');
+% }
+% unless ( $opt{html_only} || $opt{js_only} ) {
+    </SCRIPT>
+% }
+%
+% unless ( $opt{js_only} ) {
+
+    <SELECT NAME          = "<% $key %>"
+            ID            = "<% $key %>"
+            previousValue = "<% $selected %>"
+            previousText  = "<% $options{$selected} %>"
+            onChange="<% $key %>changed(this);"
+    >
+
+%     foreach my $option ( keys %$options ) {
+
+        <OPTION VALUE="<% $option %>"
+                <% $option eq $selected ? ' SELECTED' : '' %>
+        ><% $options->{$option} %></OPTION>
+
+%     }
+
+    </SELECT>
+
+<% ref($between) ? &{$between}($key) : $between %>
+
+%   foreach my $layer ( keys %$options ) {
+
+      <DIV ID="<% $key %>d<% $layer %>"
+           STYLE="<% $layer eq $selected
+                       ? 'display: ""  ; z-index: 1'
+                       : 'display: none; z-index: 0'
+                  %>"
+      >
+
+        <% layer_callback($layer, $layer_fields, $layer_values, $layer_prefix) %>
+
+      </DIV>
+
+%   }
+
+% }
+<%once>
+
+my $conf = new FS::Conf;
+my $money_char = $conf->config('money_char') || '$';
+
+</%once>
+<%init>
+
+my %opt = @_;
+
+#use Data::Dumper;
+#warn Dumper(%opt);
+
+my $key = $opt{field}; # || 'generate_one' #?
+
+tie my %options, 'Tie::IxHash',
+   map { $_ => $opt{'labels'}->{$_} }
+       @{ $opt{'options'} }; #just arrayref for now
+
+my $between = exists($opt{html_between}) ? $opt{html_between} : '';
+my $options = \%options;
+
+my $selected = exists($opt{curr_value}) ? $opt{curr_value} : '';
+
+#XXX eek.  also eek $layer_fields in the layer_callback() call...
+my $layer_fields = $opt{layer_fields};
+my $layer_values = $opt{layer_values};
+my $layer_prefix = $opt{layer_prefix};
+
+sub layer_callback {
+  my( $layer, $layer_fields, $layer_values, $layer_prefix ) = @_;
+
+  return  '' unless $layer && exists $layer_fields->{$layer};
+  tie my %fields, 'Tie::IxHash', @{ $layer_fields->{$layer} };
+
+  #XXX this should become an element itself... (false laziness w/edit.html)
+  # but at least all the elements inside are the shared mason elements now
+
+  return '' unless keys %fields;
+  my $html = "<TABLE>";
+
+  foreach my $field ( keys %fields ) {
+
+    my $lf = ref($fields{$field})
+               ? $fields{$field}
+               : { 'label'=>$fields{$field} };
+
+    my $value = $layer_values->{$layer}{$field};
+
+    my $type = $lf->{type} || 'text';
+
+    my $include = $type;
+    $include = "input-$include" if $include =~ /^(text|money)$/;
+    $include = "tr-$include" unless $include eq 'hidden';
+
+    $html .= include( "/elements/$include.html",
+                        %$lf,
+                        'field'      => "$layer_prefix$field",
+                        'id'         => "$layer_prefix$field", #separate?
+                        #don't want field0_label0...?
+                        'label_id'   => $layer_prefix.$field."_label",
+
+                        'value'      => ( $lf->{'value'} || $value ), #hmm.
+                        'curr_value' => $value,
+                    );
+
+  }
+  $html .= '</TABLE>';
+  return $html;
+}
+
+</%init>
index 0f532e8..e1e6c36 100644 (file)
@@ -1,10 +1,3 @@
-%
-%  my %opt = @_;
-%  $opt{cellspacing} ||= 0;
-%  $opt{cellpadding} ||= 0;
-%
-%
-
 <STYLE TYPE="text/css">
 
 .grid table { border: solid; empty-cells: show }
 
 </STYLE>
 
-<TABLE CLASS="grid" CELLSPACING=<% $opt{cellspacing} %> CELLPADDING=<% $opt{cellpadding} %> BORDER=1 BORDERCOLOR="#000000" STYLE="border: solid 1px black; empty-cells: show">
+<TABLE CLASS="grid" CELLSPACING=<% $opt{cellspacing} %> CELLPADDING=<% $opt{cellpadding} %> BORDER=1 BORDERCOLOR="#000000" <% $opt{bgcolor} %> STYLE="border: solid 1px black; empty-cells: show">
+
+<%init>
+
+my %opt = @_;
+$opt{cellspacing} ||= 0;
+$opt{cellpadding} ||= 0;
+
+$opt{bgcolor} =~ s/^#//;
+$opt{bgcolor} = 'BGCOLOR="#'. $opt{bgcolor}. '"' if length($opt{bgcolor});
+
+</%init>
 
diff --git a/httemplate/elements/tr-checkbox-multiple.html b/httemplate/elements/tr-checkbox-multiple.html
new file mode 100644 (file)
index 0000000..bb90a82
--- /dev/null
@@ -0,0 +1,40 @@
+<% include('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+
+%   foreach my $option ( @{ $opt{options} } ) { #just arrayref for now
+
+      <INPUT TYPE  = "checkbox"
+             NAME  = "<% $opt{field} %>"
+             ID    = "<% $opt{id}.'_'.$option %>"
+             VALUE = "<% $option %>"
+             <% ref($value) && $value->{$option} || $value eq $option
+                  ? ' CHECKED' : ''
+             %>
+             <% $onchange %>
+
+      >&nbsp;<% $labels->{$option} %>
+
+      <BR>
+
+%   }
+
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $value = $opt{'curr_value'} || $opt{'value'};
+
+my $labels = $opt{'option_labels'} || $opt{'labels'};
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+</%init>
diff --git a/httemplate/elements/tr-checkbox.html b/httemplate/elements/tr-checkbox.html
new file mode 100644 (file)
index 0000000..2e6d1f1
--- /dev/null
@@ -0,0 +1,25 @@
+<% include('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+    <INPUT TYPE  = "checkbox"
+           NAME  = "<% $opt{field} %>"
+           ID    = "<% $opt{id} %>"
+           VALUE = "<% $opt{value} %>"
+           <% $opt{curr_value} eq $opt{value} ? ' CHECKED' : '' %>
+           <% $onchange %>
+    >
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+</%init>
diff --git a/httemplate/elements/tr-fixed.html b/httemplate/elements/tr-fixed.html
new file mode 100644 (file)
index 0000000..ac0dc8d
--- /dev/null
@@ -0,0 +1,15 @@
+<% include('tr-td-label.html', @_ ) %>
+
+  <TD BGCOLOR="#dddddd" <% $style %>><% $opt{'value'} %></TD>
+
+</TR>
+
+<% include('hidden.html', %opt ) %>
+
+<%init>
+
+my %opt = @_;
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+</%init>
diff --git a/httemplate/elements/tr-freq.html b/httemplate/elements/tr-freq.html
new file mode 100644 (file)
index 0000000..cb58bf6
--- /dev/null
@@ -0,0 +1,54 @@
+<% include('tr-td-label.html', @_) %>
+
+  <TD <% $style %>>
+
+    <INPUT TYPE  = "text"
+           SIZE  = "<% $opt{'size'} || 4 %>"
+           NAME  = "<% $opt{'field'} || 'freq' %>"
+           ID    = "<% $opt{'id'} %>"
+           VALUE = "<% $curr_value %>"
+    >
+
+    <SELECT NAME = "<% $opt{'field'} || 'freq' %>_units">
+%     foreach my $freq ( keys %freq ) {
+        <OPTION VALUE="<% $freq %>"
+                <% $freq eq $units ? 'SELECTED' : '' %>
+        ><% $freq{$freq} %>
+%     }
+    </SELECT>
+
+  </TD>
+
+</TR>
+
+<%once>
+
+  tie my %freq, 'Tie::IxHash',
+    #'y' => 'years',
+    'm' => 'months',
+    'w' => 'weeks',
+    'd' => 'days',
+    'h' => 'hours',
+  ;
+
+</%once>
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+my $units = 'm';
+
+if ( $curr_value =~ /^(\d*)([mwdh])$/i ) {
+  $curr_value = $1;
+  $units = lc($2);
+}
+
+</%init>
+
diff --git a/httemplate/elements/tr-input-money.html b/httemplate/elements/tr-input-money.html
new file mode 100644 (file)
index 0000000..8801419
--- /dev/null
@@ -0,0 +1,13 @@
+<% include('tr-input-text.html', @_,
+             'type'   => 'text',
+             'prefix' => $money_char,
+             'size'   => 8,
+          )
+%>
+<%once>
+
+my $conf = new FS::Conf;
+my $money_char = $conf->config('money_char') || '$';
+
+</%once>
+
diff --git a/httemplate/elements/tr-input-text.html b/httemplate/elements/tr-input-text.html
new file mode 100644 (file)
index 0000000..ac21cb5
--- /dev/null
@@ -0,0 +1,31 @@
+<% include('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+
+    <% $opt{'prefix'} %><INPUT TYPE  = "<% $opt{type} || 'text' %>"
+                               NAME  = "<% $opt{field} %>"
+                               ID    = "<% $opt{id} %>"
+                               VALUE = "<% $opt{curr_value} || $opt{value} %>"
+                               <% $size %>
+                               <% $onchange %>
+                        >
+
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $size = $opt{'size'}
+             ? 'SIZE="'. $opt{'size'}. '"'
+             : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+</%init>
diff --git a/httemplate/elements/tr-password.html b/httemplate/elements/tr-password.html
new file mode 100644 (file)
index 0000000..bbc624d
--- /dev/null
@@ -0,0 +1,4 @@
+<% include('tr-input-text.html', @_,
+             'type'   => 'password',
+          )
+%>
index 37b1c1e..69cd95c 100644 (file)
@@ -1,34 +1,37 @@
-%
-%  my( $agentnum, %opt ) = @_;
-%
-%  my @agents;
-%  if ( $opt{'agents'} ) {
-%    #@agents = @{ $opt{'agents'} };
-%    #here is the agent virtualization
-%    my $agentnums_href = $FS::CurrentUser::CurrentUser->agentnums_href;
-%    @agents = grep $agentnums_href->{$_->agentnum}, @{ $opt{'agents'} };
-%    delete $opt{'agents'};
-%  } else {
-%    @agents = $FS::CurrentUser::CurrentUser->agents;
-%  }
-%
-%
 % if ( scalar(@agents) == 1 ) { 
 
+  <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'agentnum' %>" VALUE="<% $agents[0]->agentnum %>">
 
-  <INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $agents[0]->agentnum %>">
 % } else { 
 
-
   <TR>
     <TD ALIGN="right"><% $opt{'label'} || 'Agent' %></TD>
     <TD>
-      <% include( '/elements/select-agent.html', $agentnum,
-                     'agents' => \@agents,
+      <% include( '/elements/select-agent.html',
+                     'curr_value' => $agentnum,
+                     'agents'     => \@agents,
                      %opt,
                  )
       %>
     </TD>
   </TR>
+
 % } 
 
+<%init>
+
+my %opt = @_;
+my $agentnum = $opt{'curr_value'} || $opt{'value'};
+
+my @agents;
+if ( $opt{'agents'} ) {
+  #@agents = @{ $opt{'agents'} };
+  #here is the agent virtualization
+  my $agentnums_href = $FS::CurrentUser::CurrentUser->agentnums_href;
+  @agents = grep $agentnums_href->{$_->agentnum}, @{ $opt{'agents'} };
+  delete $opt{'agents'};
+} else {
+  @agents = $FS::CurrentUser::CurrentUser->agents;
+}
+
+</%init>
diff --git a/httemplate/elements/tr-select-agent_type.html b/httemplate/elements/tr-select-agent_type.html
new file mode 100644 (file)
index 0000000..1b0dfd4
--- /dev/null
@@ -0,0 +1,39 @@
+% if ( scalar(@agent_types) == 1 ) { 
+
+  <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'typenum' %>" VALUE="<% $agent_types[0]->typenum %>">
+
+% } else { 
+
+  <TR>
+    <TD ALIGN="right"><% $opt{'label'} || 'Agent Type' %></TD>
+    <TD>
+      <% include( '/elements/select-agent_type.html',
+                     'curr_value'  => $typenum,
+                     'agent_types' => \@agent_types,
+                     %opt,
+                 )
+      %>
+    </TD>
+  </TR>
+
+% } 
+
+<%init>
+
+my %opt = @_;
+my $typenum = $opt{'curr_value'} || $opt{'value'};
+
+my @agent_types = ();
+if ( $opt{'agent_types'} ) {
+  #@agents = @{ $opt{'agents'} };
+
+  #here is the agent virtualization
+#  my $agentnums_href = $FS::CurrentUser::CurrentUser->agentnums_href;
+#  @agent_types = grep $agentnums_href->{$_->agentnum}, @{ $opt{'agent_types'} };
+
+  delete $opt{'agent_types'};
+} else {
+#  @agents = $FS::CurrentUser::CurrentUser->agents;
+}
+
+</%init>
diff --git a/httemplate/elements/tr-select-cust_main-status.html b/httemplate/elements/tr-select-cust_main-status.html
new file mode 100644 (file)
index 0000000..6700d7e
--- /dev/null
@@ -0,0 +1,29 @@
+<% include ('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+
+    <% include( '/elements/select-cust_main-status.html', 
+                  'curr_value' => $curr_value,
+                  %opt
+              )
+    %>
+
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+#my $onchange = $opt{'onchange'}
+#                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+#                 : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+$opt{'statuses'} ||= [ FS::cust_main->statuses() ]; # { disabled=>'' } )
+
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+
+</%init>
index 22ee146..c3daf72 100644 (file)
@@ -1,14 +1,29 @@
-%
-%  my( $status, %opt ) = @_;
-%
-%  $opt{'statuses'} ||= [ FS::cust_pkg->statuses() ]; # { disabled=>'' } )
-%
-%
-
-
-<TR>
-  <TD ALIGN="right"><% $opt{'label'} || 'Status' %></TD>
-  <TD>
-    <% include( '/elements/select-cust_pkg-status.html', $status, %opt ) %>
+<% include ('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+
+    <% include( '/elements/select-cust_pkg-status.html', 
+                  'curr_value' => $curr_value,
+                  %opt
+              )
+    %>
+
   </TD>
+
 </TR>
+
+<%init>
+
+my %opt = @_;
+
+#my $onchange = $opt{'onchange'}
+#                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+#                 : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+$opt{'statuses'} ||= [ FS::cust_pkg->statuses() ]; # { disabled=>'' } )
+
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+
+</%init>
diff --git a/httemplate/elements/tr-select-invoice_template.html b/httemplate/elements/tr-select-invoice_template.html
new file mode 100644 (file)
index 0000000..7ba8d99
--- /dev/null
@@ -0,0 +1,39 @@
+<% include('tr-td-label.html', @_) %>
+
+  <TD <% $style %>>
+
+    <SELECT NAME = "<% $opt{'field'} || 'templatename' %>"
+            ID   = "<% $opt{'id'} %>"
+    >
+
+%     foreach my $templatename ( '', @templatenames ) {
+            
+        <OPTION VALUE="<% $templatename %>"
+                <% $templatename eq $curr_value ? 'SELECTED' : '' %>
+        ><% $templatename || '(Default)' %>
+
+%     }
+
+    </SELECT>
+
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+
+my $conf = new FS::Conf;
+
+my @templatenames = $conf->invoice_templatenames;
+
+</%init>
diff --git a/httemplate/elements/tr-select-part_pkg.html b/httemplate/elements/tr-select-part_pkg.html
new file mode 100644 (file)
index 0000000..b6d4d4d
--- /dev/null
@@ -0,0 +1,29 @@
+% if ( scalar(@{ $opt{'part_pkg'} }) == 0 ) { 
+
+  <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'pkgpart' %>" VALUE="">
+
+% } else { 
+
+  <TR>
+    <TD ALIGN="right"><% $opt{'label'} || 'Package definition' %></TD>
+    <TD>
+      <% include( '/elements/select-table.html',
+                    'table'     => 'part_pkg',
+                    'name_col'  => 'pkg',
+                    'multiple'  => 1,
+                    #N/A 'empty_label' => '(none)',
+                    %opt,
+                )
+      %>
+    </TD>
+  </TR>
+
+% } 
+
+<%init>
+
+my( %opt ) = @_;
+
+$opt{'part_pkg'} ||= [ qsearch( 'part_pkg', {} ) ]; # { disabled=>'' } )
+
+</%init>
index 35c5b80..cd26c25 100644 (file)
@@ -1,30 +1,35 @@
-%
-%  my( $refnum, %opt ) = @_;
-%
-%  $opt{'part_referrals'} ||=
-%    [ FS::part_referral->all_part_referral( 1 ) ]; #1: include global
-%
-%  my $r = qq!<font color="#ff0000">*</font>&nbsp;!;
-%
-%
 % if ( scalar( @{$opt{'part_referrals'}} ) == 0 ) {
 %     eidiot "You have not created any advertising sources.  You must create at least one advertising source before adding a customer.  Go to ". popurl(2). "browse/part_referral.html and create one or more advertising sources.";
 %   } elsif ( scalar( @{$opt{'part_referrals'}} ) == 1 ) {
-%
 
+     <INPUT TYPE="hidden" NAME="<% $opt{'element_name'} || $opt{'field'} || 'refnum' %>" VALUE="<% $opt{'part_referrals'}->[0]->refnum %>">
 
-     <INPUT TYPE="hidden" NAME="refnum" VALUE="<% $opt{'part_referrals'}->[0]->refnum %>">
 % } else { 
 
-
      <TR>
-       <TH ALIGN="right"><%$r%>Advertising source</TH>
+%      if ( $opt{'label'} ) {
+         <TD ALIGN="right"><% $opt{'label'} %></TD>
+%      } else {
+         <TH ALIGN="right"><%$r%>Advertising source</TH>
+%      }
        <TD>
-         <% include( '/elements/select-part_referral.html', $refnum,
-                        'part_referrals' => $opt{'part_referrals'},
-                    )
+         <% include( '/elements/select-part_referral.html',
+                       'curr_value' => $refnum,
+                       %opt
+                   )
          %>
        </TD>
      </TR>
+
 % } 
+<%init>
+
+my %opt = @_;
+my $refnum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'part_referrals'} ||=
+  [ FS::part_referral->all_part_referral( 1 ) ]; #1: include global
+
+my $r = qq!<font color="#ff0000">*</font>&nbsp;!;
 
+</%init>
index 5421424..aa27609 100644 (file)
@@ -1,20 +1,27 @@
-%  my( $classnum, %opt ) = @_;
-%
-%  $opt{'pkg_class'} ||= [ qsearch( 'pkg_class', { disabled=>'' } ) ];
-%
-%  #warn "***** tr-select-pkg-class: \n". Dumper(%opt);
-%
 % if ( scalar(@{ $opt{'pkg_class'} }) == 0 ) { 
 
-  <INPUT TYPE="hidden" NAME="classnum" VALUE="">
+  <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'classnum' %>" VALUE="">
 
 % } else { 
 
   <TR>
     <TD ALIGN="right"><% $opt{'label'} || 'Package class' %></TD>
     <TD>
-      <% include( '/elements/select-pkg_class.html', $classnum, %opt ) %>
+      <% include( '/elements/select-pkg_class.html',
+                    'curr_value' => $classnum,
+                    %opt
+                )
+      %>
     </TD>
   </TR>
 
 % } 
+
+<%init>
+
+my %opt = @_;
+my $classnum = $opt{'curr_value'} || $opt{'value'};
+
+$opt{'pkg_class'} ||= [ qsearch( 'pkg_class', {} ) ]; # { disabled=>'' } )
+
+</%init>
index 2f8f3a1..71997c2 100755 (executable)
@@ -1,31 +1,30 @@
-
 <SCRIPT TYPE="text/javascript">
-  function sh_add<% $name %>()
+  function sh_add<% $func_suffix %>()
   {
 
-    if (document.getElementById('<% $name %>').selectedIndex == 0){
+    if (document.getElementById('<% $id %>').selectedIndex == 0){
       <% $controlledbutton ? $controlledbutton.'.disabled = true;' : ';' %>
     }else{
       <% $controlledbutton ? $controlledbutton.'.disabled = false;' : ';' %>
     }
 
-%if ($curuser->access_right($access_right)){
+%if ($curuser->access_right($add_access_right)){
 
-    if (document.getElementById('<% $name %>').selectedIndex == 
-         (document.getElementById('<% $name %>').length - 1)) {
-      document.getElementById('new<% $name %>').disabled = false;
-      document.getElementById('new<% $name %>').style.display = 'inline';
-      document.getElementById('new<% $name %>Label').style.display = 'inline';
-      document.getElementById('new<% $name %>T').disabled = false;
-      document.getElementById('new<% $name %>T').style.display = 'inline';
-      document.getElementById('new<% $name %>TLabel').style.display = 'inline';
-    }else{
-      document.getElementById('new<% $name %>').disabled = true;
-      document.getElementById('new<% $name %>').style.display = 'none';
-      document.getElementById('new<% $name %>Label').style.display = 'none';
-      document.getElementById('new<% $name %>T').disabled = true;
-      document.getElementById('new<% $name %>T').style.display = 'none';
-      document.getElementById('new<% $name %>TLabel').style.display = 'none';
+    if (document.getElementById('<% $id %>').selectedIndex == 
+         (document.getElementById('<% $id %>').length - 1)) {
+      document.getElementById('new<% $id %>').disabled = false;
+      document.getElementById('new<% $id %>').style.display = 'inline';
+      document.getElementById('new<% $id %>Label').style.display = 'inline';
+      document.getElementById('new<% $id %>T').disabled = false;
+      document.getElementById('new<% $id %>T').style.display = 'inline';
+      document.getElementById('new<% $id %>TLabel').style.display = 'inline';
+    } else {
+      document.getElementById('new<% $id %>').disabled = true;
+      document.getElementById('new<% $id %>').style.display = 'none';
+      document.getElementById('new<% $id %>Label').style.display = 'none';
+      document.getElementById('new<% $id %>T').disabled = true;
+      document.getElementById('new<% $id %>T').style.display = 'none';
+      document.getElementById('new<% $id %>TLabel').style.display = 'none';
     }
 
 %}
@@ -36,7 +35,7 @@
 <TR>
   <TD ALIGN="right">Reason</TD>
   <TD>
-    <SELECT id="<% $name %>" name="<% $name %>" onFocus="sh_add<% $name %>()" onChange="sh_add<% $name %>()">
+    <SELECT id="<% $id %>" name="<% $name %>" onFocus="sh_add<% $func_suffix %>()" onChange="sh_add<% $func_suffix %>()">
 %    my @reasons = qsearch( { table =>'reason', 
 %                             hashref => {},
 %                             extra_sql => $extra_sql,
@@ -44,9 +43,9 @@
 %                           });
       <OPTION VALUE="" <% ($init_reason eq "") ? 'SELECTED' : '' %>>Select Reason...</OPTION>
 %    foreach my $reason (@reasons) {
-      <OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reason %></OPTION>
+      <OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reasontype->type %> : <% $reason->reason %></OPTION>
 %    }
-%    if ($curuser->access_right($access_right)) {
+%    if ($curuser->access_right($add_access_right)) {
       <OPTION VALUE="-1" <% ($init_reason == -1) ? 'SELECTED' : '' %>>Add new reason</OPTION>
 %    }
 %
 
 <TR>
   <TD ALIGN="right">
-    <P id="new<% $name %>TLabel" style="display:<% $display %>">Reason Type</P>
+    <P id="new<% $id %>TLabel" style="display:<% $display %>">Reason Type</P>
   </TD>
   <TD>
-    <SELECT id="new<% $name %>T" name="new<% $name %>T" disabled="<% $disabled %>" style="display:<% $display %>">
+    <SELECT id="new<% $id %>T" name="new<% $name %>T" "<% $disabled %>" style="display:<% $display %>">
 %     for my $type (qsearch( 'reason_type', { 'class' => $class } )){
         <OPTION VALUE="<% $type->typenum %>" <% ($init_type == $type->typenum) ? 'SELECTED' : '' %>><% $type->type %></OPTION>
 %     }
 
 <TR>
   <TD ALIGN="right">
-    <P id="new<% $name %>Label" style="display:<% $display %>">New Reason</P>
+    <P id="new<% $id %>Label" style="display:<% $display %>">New Reason</P>
   </TD>
-  <TD><INPUT id="new<% $name %>" name="new<% $name %>" type="text" value="<% $init_newreason %>" disabled="<% $disabled %>" style="display:<% $display %>"></TD>
+  <TD><INPUT id="new<% $id %>" name="new<% $name %>" type="text" value="<% $init_newreason %>" "<% $disabled %>" style="display:<% $display %>"></TD>
 </TR>
 
 <%init>
-my($name, $class, $init_reason, $init_type, $init_newreason, $controlledbutton) = @_;
-my($extra_sql, $curuser, $access_right, $display, $disabled); 
 
+my %opt = @_;
+
+my $name = $opt{'field'};
+my $class = $opt{'reason_class'};
+my $init_reason = $opt{'curr_value'};
+
+my $controlledbutton = $opt{'control_button'};
+
+( my $func_suffix = $name ) =~ s/\./_/g;
+
+my $id = $opt{'id'} || $func_suffix;
+
+my( $add_access_right, $access_right ); 
 if ($class eq 'C') {
-  $access_right='Add on-the-fly cancel reason';
-}elsif ($class eq 'S') {
-  $access_right='Add on-the-fly suspend reason';
-}else{
-  print "illegal class: $class";
+  $access_right = 'Cancel customer';
+  $add_access_right = 'Add on-the-fly cancel reason';
+} elsif ($class eq 'S') {
+  $access_right = 'Suspend customer package';
+  $add_access_right = 'Add on-the-fly suspend reason';
+} else {
+  die "illegal class: $class";
 }
 
-if ($init_reason == -1){
+my( $display, $disabled ) = ( 'none', 'DISABLED' );
+my( $init_type, $init_newreason ) = ( '', '' );
+if ($init_reason == -1 || ref($init_reason) ) {
+
   $display = 'inline';
-  $disabled = 'false';
-}else{
-  $display = 'none';
-  $disabled = 'true';
+  $disabled = '';
+
+  if ( ref($init_reason) ) {
+    $init_type      = $init_reason->{'typenum'};
+    $init_newreason = $init_reason->{'reason'};
+    $init_reason = -1;
+  }
+
 }
 
-$extra_sql = "WHERE class = '$class' ORDER BY reason_type";
-$curuser = $FS::CurrentUser::CurrentUser;
+my $extra_sql = "WHERE class = '$class' ORDER BY reason_type";
+my $curuser = $FS::CurrentUser::CurrentUser;
 
 </%init>
-
index 424d5ad..a20dd17 100644 (file)
@@ -2,7 +2,7 @@
 %      || scalar(@{ $opt{'taxclasses'} }) == 0
 % ) { 
 
-  <INPUT TYPE="hidden" NAME="taxclass" VALUE="<% $taxclass %>">
+  <INPUT TYPE="hidden" NAME=""<% $opt{'element_name'} || $opt{'field'} || 'taxclass' %>" VALUE="<% $taxclass %>">
 
 % } else { 
 
diff --git a/httemplate/elements/tr-select.html b/httemplate/elements/tr-select.html
new file mode 100644 (file)
index 0000000..07b0a01
--- /dev/null
@@ -0,0 +1,61 @@
+<% include('tr-td-label.html', @_ ) %>
+
+  <TD <% $style %>>
+
+    <SELECT NAME          = "<% $opt{field} %>"
+            ID            = "<% $opt{id} %>"
+            previousValue = "<% $curr_value %>"
+            previousText  = "<% $labels->{$curr_value} || $curr_value %>"
+            <% $onchange %>
+    >
+
+%   if ( $opt{options} ) {
+%
+%     foreach my $option ( @{ $opt{options} } ) { #just arrayref for now
+
+        <OPTION VALUE="<% $option %>"
+                <% $opt{curr_value} eq $option ? 'SELECTED' : '' %>
+        >
+          <% $labels->{$option} || $option %>
+        </OPTION>
+
+%     }
+%
+%   } else { #deprecated weird value hashref used only by reason.html
+%
+%     my $aref = $opt{'value'}->{'values'};
+%     my $vkey = $opt{'value'}->{'vcolumn'};
+%     my $ckey = $opt{'value'}->{'ccolumn'};
+%     foreach my $v (@$aref) {
+
+        <OPTION VALUE="<% $v->$vkey %>"
+                <% ($opt{curr_value} eq $v->$vkey) ? 'SELECTED' : '' %>
+        >
+          <% $v->$ckey %>
+        </OPTION>
+
+%     }
+%
+%   }
+
+    </SELECT>
+
+  </TD>
+
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+my $onchange = $opt{'onchange'}
+                 ? 'onChange="'. $opt{'onchange'}. '(this)"'
+                 : '';
+
+my $labels = $opt{'option_labels'} || $opt{'labels'};
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+my $curr_value = $opt{'curr_value'};
+
+</%init>
diff --git a/httemplate/elements/tr-selectlayers.html b/httemplate/elements/tr-selectlayers.html
new file mode 100644 (file)
index 0000000..865d822
--- /dev/null
@@ -0,0 +1,25 @@
+% unless ( $opt{js_only} ) {
+
+  <% include('tr-td-label.html', @_ ) %>
+
+    <TD <% $style %>>
+
+% }
+
+      <% include('selectlayers.html', @_ ) %>
+
+% unless ( $opt{js_only} ) {
+
+    </TD>
+
+  </TR>
+
+% }
+
+<%init>
+
+my %opt = @_;
+
+my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+</%init>
index bd96d1c..455038d 100644 (file)
@@ -1,8 +1,3 @@
-%
-%  my( %opt ) = @_;
-%
-
-
 <TR>
   <TD ALIGN="right"><% $opt{'label'} || 'Packages' %></TD>
   <TD>
@@ -17,3 +12,9 @@
     %>
   </TD>
 </TR>
+
+<%init>
+
+my %opt = @_;
+
+</%init>
diff --git a/httemplate/elements/tr-td-label.html b/httemplate/elements/tr-td-label.html
new file mode 100644 (file)
index 0000000..77c0484
--- /dev/null
@@ -0,0 +1,17 @@
+<TR>
+
+  <TD ALIGN="right" VALIGN="top" STYLE="<% $style %>" ID="<% $opt{label_id} || $opt{id}. '_label0' %>">
+
+    <% $opt{label} %>
+
+  </TD>
+
+<%init>
+
+my %opt = @_;
+
+my $style = 'padding-top: 3px';
+$style .= '; '. $opt{'cell_style'}
+  if $opt{'cell_style'};
+
+</%init>
diff --git a/httemplate/elements/tr-title.html b/httemplate/elements/tr-title.html
new file mode 100644 (file)
index 0000000..6e2f58f
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+  <TD BGCOLOR="#e8e8e8" COLSPAN=2>&nbsp;</TD>
+</TR>
+
+<TR>
+  <TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left">
+    <FONT SIZE="+1"><% $opt{value} %></FONT>
+  </TH>
+</TR>
+
+<%init>
+
+my %opt = @_;
+
+</%init>
index c18e94d..be5a71a 100644 (file)
@@ -8,7 +8,7 @@
 
 <% include('/elements/tr-select-agent.html', '', 'label' => 'For agent: ' ) %>
 
-<% include('/elements/tr-select-pkg_class.html', '',
+<% include('/elements/tr-select-pkg_class.html',
               'pre_options' => [ '0' => 'all' ],
               'empty_label' => '(empty class)',
            )
index 652d715..04e4c19 100644 (file)
@@ -18,7 +18,7 @@
 
 <% include('/elements/tr-select-from_to.html' ) %>
 
-<% include('/elements/tr-select-agent.html', '', 'label' => 'For agent: ' ) %>
+<% include('/elements/tr-select-agent.html', 'label' => 'For agent: ' ) %>
 
 <TR>
   <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="12mo" VALUE="1"></TD>
diff --git a/httemplate/misc/cancel_cust.html b/httemplate/misc/cancel_cust.html
new file mode 100644 (file)
index 0000000..a757aa6
--- /dev/null
@@ -0,0 +1,75 @@
+<% include('/elements/header-popup.html', 'Cancel customer' ) %>
+
+% if ( $cgi->param('error') ) { 
+  <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
+  <BR><BR>
+% } 
+
+<FORM NAME="cust_cancel_popup" ACTION="<% popurl(1) %>cust_main-cancel.cgi" METHOD=POST>
+<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>">
+
+
+ <P ALIGN="center"><B>Permanently delete all services and cancel this customer?</B>
+
+ <% $ban %>
+<BR><BR>
+
+<% ntable("#cccccc", 2) %>
+
+<% include('/elements/tr-select-reason.html',
+             'field'          => 'reasonnum',
+             'reason_class'   => 'C',
+             #XXX these need to be sticky on errors too...
+             #'curr_value'     => '',
+             'control_button' => 'document.cust_cancel_popup.submit',
+          )
+%>
+
+</TABLE>
+
+<BR>
+<P ALIGN="CENTER">
+<INPUT TYPE="submit" NAME="submit" VALUE="Cancel customer" disabled='true'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="BUTTON" VALUE="Don't cancel" onClick="parent.cClick();"> 
+
+</FORM>
+</BODY>
+</HTML>
+
+<%init>
+
+my($custnum, $reasonnum, $submit, $cust_main, $curuser, $class); 
+if ( $cgi->param('error') ) {
+  $custnum        = $cgi->param('custnum');
+  $reasonnum     = $cgi->param('reasonnum');
+} else {
+  my( $query ) = $cgi->keywords;
+  if ( $query =~ /^(\d+)$/ ) {
+    $custnum  = $1;
+  } else {
+    die "illegal query ". $cgi->keywords;
+  }
+}
+
+$curuser = $FS::CurrentUser::CurrentUser;
+
+$cust_main = qsearchs( {
+  'table'     => 'cust_main',
+  'hashref'   => { 'custnum' => $custnum },
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+} );
+die "No customer # $custnum" unless $cust_main;
+
+my $ban = '';
+if ( $cust_main->payby =~ /^(CARD|DCRD|CHEK|DCHK)$/ ) {
+  $ban = '<BR><P ALIGN="center">'.
+         '<INPUT TYPE="checkbox" NAME="ban" VALUE="1"> Ban this customer\'s ';
+  if ( $cust_main->payby =~ /^(CARD|DCRD)$/ ) {
+    $ban .= 'credit card';
+  } elsif (  $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
+    $ban .= 'ACH account';
+  }
+}
+
+</%init>
+
index b085d22..642f0c8 100755 (executable)
 %}
 %
 
-<% include('/elements/tr-select-reason.html', 'reasonnum', $class, '', '', '', 'document.sc_popup.submit' ) %>
+<% include('/elements/tr-select-reason.html',
+             'field'          => 'reasonnum',
+             'reason_class'   => $class,
+             #XXX these need to be sticky on errors too...
+             #'curr_value'     => '',
+             'control_button' => 'document.sc_popup.submit',
+          )
+%>
 
 </TABLE>
 
index d29e4f5..2f9c380 100755 (executable)
@@ -1,23 +1,54 @@
-%
-%
-%my $custnum;
-%my $ban = '';
-%if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
-%  $custnum = $1;
-%  $ban = $cgi->param('ban');
-%} else {
-%  my($query) = $cgi->keywords;
-%  $query =~ /^(\d+)$/ || die "Illegal custnum";
-%  $custnum = $1;
-%}
-%
-%my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
-%
-%my @errors = $cust_main->cancel( 'ban' => $ban );
-%eidiot(join(' / ', @errors)) if scalar(@errors);
-%
-%#print $cgi->redirect($p. "view/cust_main.cgi?". $cust_main->custnum);
-%print $cgi->redirect($p);
-%
-%
+<% header("Customer cancelled") %>
+  <SCRIPT TYPE="text/javascript">
+    window.top.location.reload();
+  </SCRIPT>
+  </BODY>
+</HTML>
+<%init>
 
+my $custnum;
+my $ban = '';
+if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
+  $custnum = $1;
+  $ban = $cgi->param('ban');
+} else {
+  my($query) = $cgi->keywords;
+  $query =~ /^(\d+)$/ || die "Illegal custnum";
+  $custnum = $1;
+}
+
+#false laziness w/process/cancel_pkg.html
+
+#untaint reasonnum
+my $reasonnum = $cgi->param('reasonnum');
+$reasonnum =~ /^(-?\d+)$/ || die "Illegal reasonnum";
+$reasonnum = $1;
+
+if ($reasonnum == -1) {
+  $reasonnum = {
+    'typenum' => scalar( $cgi->param('newreasonnumT') ),
+    'reason'  => scalar( $cgi->param('newreasonnum' ) ),
+  };
+}
+
+#eslaf
+
+my $cust_main = qsearchs( {
+  'table'     => 'cust_main',
+  'hashref'   => { 'custnum' => $custnum },
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+} );
+
+warn "cancelling $cust_main";
+my @errors = $cust_main->cancel(
+  'ban'    => $ban,
+  'reason' => $reasonnum,
+);
+my $error = join(' / ', @errors) if scalar(@errors);
+
+if ( $error ) {
+  $cgi->param('error', $error);
+  print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string );
+}
+
+</%init>
index 73efd37..b273a80 100644 (file)
@@ -24,7 +24,8 @@ target table.
 
 <% &ntable("#cccccc") %>
 
-<% include('/elements/tr-select-agent.html', '', #$agentnum,
+<% include('/elements/tr-select-agent.html',
+              #'curr_value' => '', #$agentnum,
               'label'       => "<B>Agent</B>",
               'empty_label' => 'Select agent',
            )
diff --git a/httemplate/misc/email_events.cgi b/httemplate/misc/email_events.cgi
new file mode 100644 (file)
index 0000000..c6efa7d
--- /dev/null
@@ -0,0 +1,4 @@
+%
+%my $server = new FS::UI::Web::JSRPC 'FS::cust_event::process_reemail', $cgi;
+%
+<% $server->process %>
diff --git a/httemplate/misc/fax_events.cgi b/httemplate/misc/fax_events.cgi
new file mode 100644 (file)
index 0000000..bf5ddd1
--- /dev/null
@@ -0,0 +1,4 @@
+% 
+%my $server = new FS::UI::Web::JSRPC 'FS::cust_event::process_refax', $cgi;
+%
+<% $server->process %>
diff --git a/httemplate/misc/order_pkg.html b/httemplate/misc/order_pkg.html
new file mode 100644 (file)
index 0000000..c81f5b0
--- /dev/null
@@ -0,0 +1,67 @@
+<% include('/elements/header-popup.html', 'Order new package' ) %>
+
+<SCRIPT TYPE="text/javascript">
+function enable_order_pkg () {
+  if ( document.OrderPkgForm.pkgpart.selectedIndex > 0 ) {
+    document.OrderPkgForm.submit.disabled = false;
+  } else {
+    document.OrderPkgForm.submit.disabled = true;
+  }
+}
+</SCRIPT>
+
+<FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/quick-cust_pkg.cgi" METHOD="POST">
+
+<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $cust_main->custnum %>">
+
+<% ntable("#cccccc", 2) %>
+<TR>
+  <TH ALIGN="right">Package</TH>
+  <TD>
+    <SELECT NAME="pkgpart" onChange="enable_order_pkg()"><OPTION>Select package
+
+%foreach my $part_pkg (
+%  qsearch( 'part_pkg', { 'disabled' => '' }, '',
+%           ' AND 0 < ( SELECT COUNT(*) FROM type_pkgs '.
+%           '             WHERE typenum = '. $cust_main->agent->typenum.
+%           '             AND type_pkgs.pkgpart = part_pkg.pkgpart )'
+%         )
+%) {
+
+      <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg %> - <% $part_pkg->comment %>
+
+% } 
+
+    </SELECT>
+  </TD>
+</TR>
+
+% if ( $conf->exists('pkg_referral') ) {
+  <% include('/elements/tr-select-part_referral.html',
+               'curr_value'    => scalar( $cgi->param('refnum') ), #get rid of empty_label first# || $cust_main->refnum,
+               'disable_empty' => 1,
+               'multiple'      => $conf->exists('pkg_referral-multiple'),
+            )
+  %>
+% }
+
+</TABLE>
+
+<BR>
+<INPUT NAME="submit" TYPE="submit" VALUE="Order Package" disabled>
+
+</FORM>
+<%init>
+
+my $conf = new FS::Conf;
+
+my($query) = $cgi->keywords;
+$query =~ /^(\d+)$/;
+my $custnum = $1;
+my $cust_main = qsearchs({
+  'table'     => 'cust_main',
+  'hashref'   => { 'custnum' => $custnum },
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+});
+
+</%init>
diff --git a/httemplate/misc/print_events.cgi b/httemplate/misc/print_events.cgi
new file mode 100644 (file)
index 0000000..db7f984
--- /dev/null
@@ -0,0 +1,4 @@
+%
+%my $server = new FS::UI::Web::JSRPC 'FS::cust_event::process_reprint', $cgi; 
+
+<% $server->process %>
index aa54218..805d1a7 100755 (executable)
@@ -1,4 +1,20 @@
+<% header("Package $past{$method}") %>
+  <SCRIPT TYPE="text/javascript">
+    window.top.location.reload();
+  </SCRIPT>
+  </BODY>
+</HTML>
+<%once>
+
+my %past = ( 'cancel'  => 'cancelled',
+             'expire'  => 'expired',
+             'suspend' => 'suspended',
+             'adjourn' => 'adjourned',
+           );
+
+</%once>
 <%init>
+
 #untaint method
 my $method = $cgi->param('method');
 $method =~ /^(cancel|expire|suspend|adjourn)$/ || die "Illegal method";
@@ -24,56 +40,30 @@ if ($method eq 'expire' || $method eq 'adjourn'){
 
 my $cust_pkg = qsearchs( 'cust_pkg', {'pkgnum'=>$pkgnum} );
 
-my $oldAutoCommit = $FS::UID::AutoCommit;
-local $FS::UID::AutoCommit = 0;
-my $dbh = dbh;
-
 #my $otaker = $FS::CurrentUser::CurrentUser->name;
 #$otaker = $FS::CurrentUser::CurrentUser->username
 #  if ($otaker eq "User, Legacy");
 
-my $error = '';
 if ($reasonnum == -1) {
-
-  $error = 'Enter a new reason (or select an existing one)'
-    unless $cgi->param('newreasonnum') !~ /^\s*$/;
-
-  my $reason = new FS::reason({ 'reason_type' => $cgi->param('newreasonnumT'),
-                                'reason'      => $cgi->param('newreasonnum'),
-                              });
-  $error ||= $reason->insert;
-  $reasonnum = $reason->reasonnum
-    unless $error;
+  $reasonnum = {
+    'typenum' => scalar( $cgi->param('newreasonnumT') ),
+    'reason'  => scalar( $cgi->param('newreasonnum' ) ),
+  };
 }
 
-unless ($error) {
-  if ($method eq 'expire' || $method eq 'adjourn'){
-    my %hash = $cust_pkg->hash;
-    $hash{$method}=$date;
-    my $new = new FS::cust_pkg (\%hash);
-    $error = $new->replace($cust_pkg, 'reason' => $reasonnum);
-  }else{
-    $error = $cust_pkg->$method( 'reason' => $reasonnum );
-  }
+my $error;
+if ($method eq 'expire' || $method eq 'adjourn'){
+  my %hash = $cust_pkg->hash;
+  $hash{$method} = $date;
+  my $new = new FS::cust_pkg \%hash;
+  $error = $new->replace($cust_pkg, 'reason' => $reasonnum);
+} else {
+  $error = $cust_pkg->$method( 'reason' => $reasonnum );
 }
 
 if ($error) {
   $cgi->param('error', $error);
-  $dbh->rollback if $oldAutoCommit;
   print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string );
 }
 
-$dbh->commit or die $dbh->errstr if $oldAutoCommit;
-
- my %past = ( 'cancel'  => 'cancelled',
-              'expire'  => 'expired',
-              'suspend' => 'suspended',
-              'adjourn' => 'adjourned',
-            );
 </%init>
-<% header("Package $past{$method}") %>
-  <SCRIPT TYPE="text/javascript">
-    window.top.location.reload();
-  </SCRIPT>
-  </BODY></HTML>
-
index 3f9b706..25f30e9 100644 (file)
@@ -27,6 +27,8 @@
 %
 % }
 %
+% my %param = $access_user->options;
+%
 % #XXX autogen
 % my @paramlist = qw( menu_position
 %                     email_address
 %   last;
 % }
 %
-% $error ||= $access_user->replace( {
-%   map { $_ => scalar($cgi->param($_)) } @paramlist,
-% } );
+% foreach (@paramlist) {
+%   $param{$_} = scalar($cgi->param($_));
+% }
+%
+% $error ||= $access_user->replace( \%param );
 %
 % if ( $error ) {
 %   $cgi->param('error', $error);
index b65608e..7b9386e 100755 (executable)
@@ -199,18 +199,41 @@ my $html_init = join("\n", map {
  qq!<INPUT TYPE="hidden" NAME="open"      VALUE="$open">!,
  qq!<INPUT TYPE="hidden" NAME="days"      VALUE="$days">!,
  qq!</FORM>!
-} qw( print_ email_ fax_ ) );
+} qw( print_ email_ fax_ ) ). 
+
+'<SCRIPT TYPE="text/javascript">
+
+function confirm_print_process() {
+  if ( ! confirm("Are you sure you want to reprint these invoices?") ) {
+    return;
+  }
+  print_process();
+}
+function confirm_email_process() {
+  if ( ! confirm("Are you sure you want to re-email these invoices?") ) {
+    return;
+  }
+  email_process();
+}
+function confirm_fax_process() {
+  if ( ! confirm("Are you sure you want to re-fax these invoices?") ) {
+    return;
+  }
+  fax_process();
+}
+
+</SCRIPT>';
 
 my $menubar =  [
                 'Main menu' => $p,
                 'Print these invoices' =>
-                  "javascript:print_process()",
+                  "javascript:confirm_print_process()",
                 'Email these invoices' =>
-                  "javascript:email_process()",
+                  "javascript:confirm_email_process()",
               ];
 
 push @$menubar, 'Fax these invoices' =>
-                 "javascript:fax_process()"
+                 "javascript:confirm_fax_process()"
  if $conf->exists('hylafax');
 
 </%init>
index ada7e43..ffd95e9 100644 (file)
 %>
 <%init>
 
+my $curuser = $FS::CurrentUser::CurrentUser;
+
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Billing event reports');
+  unless $curuser->access_right('Billing event reports')
+      or $curuser->access_right('View customer billing events')
+         && $cgi->param('invnum') =~ /^(\d+)$/;
 
 my $title = $cgi->param('failed')
               ? 'Failed invoice events'
@@ -93,6 +97,10 @@ if ( $cgi->param('part_bill_event.payby') =~ /^(\w+)$/ ) {
   push @search, "part_bill_event.payby = '$1'";
 }
 
+if ( $cgi->param('invnum') =~ /^(\d+)$/ ) {
+  push @search, "cust_bill_event.invnum = '$1'";
+}
+
 #here is the agent virtualization
 push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
 
@@ -123,7 +131,11 @@ my $conf = new FS::Conf;
 
 my $failed = $cgi->param('failed');
 
-my $html_init = join("\n", map {
+my $html_init = '
+    <FONT SIZE="+1">Invoice events are the deprecated, old-style actions taken o
+n open invoices.  See Reports-&gt;Billing events-&gt;Billing events for current event reports.</FONT><BR><BR>';
+
+$html_init .= join("\n", map {
   ( my $action = $_ ) =~ s/_$//;
   include('/elements/progress-init.html',
             $_.'form',
index 334bda3..0e78ce1 100755 (executable)
@@ -4,6 +4,9 @@
    )
 %>
 
+    <FONT SIZE="+1">Invoice events are the deprecated, old-style actions taken
+    on open invoices.  See Reports-&gt;Billing events-&gt;Billing events for current event reports.</FONT><BR><BR>
+
     <FORM ACTION="cust_bill_event.cgi" METHOD="GET">
     <INPUT TYPE="hidden" NAME="failed" VALUE="<% $cgi->param('failed') %>">
     <TABLE>
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
new file mode 100644 (file)
index 0000000..f9cce46
--- /dev/null
@@ -0,0 +1,282 @@
+<% include( 'elements/search.html',
+                 'title'       => $title,
+                 'html_init'   => $html_init,
+                 'menubar'     => $menubar,
+                 'name'        => 'billing events',
+                 'query'       => $sql_query,
+                 'count_query' => $count_sql,
+                 'header'      => [ 'Event',
+                                    'Date',
+                                    'Status',
+                                    'Trigger',
+                                    #'Inv #', 'Inv Date', 'Cust #',
+                                    #'Invoice',
+                                    
+                                    FS::UI::Web::cust_header(), #'cust_main_custnum',
+                                  ],
+                 'fields' => [
+                               'event',
+                               sub { time2str("%b %d %Y %T", $_[0]->_date) },
+                               $status_sub,
+                               $trigger_sub,
+                               #sub {
+                               #      #my $cust_event = shift;
+                               #      'Invoice #'. $_[0]->invnum.
+                               #      ' ('.
+                               #        time2str("%D", $_[0]->cust_bill_date).
+                               #      ')';
+                               #    },
+                               \&FS::UI::Web::cust_fields,
+                             ],
+                'align' => 'lrll'.FS::UI::Web::cust_aligns(),
+                'links' => [
+                              '',
+                              '',
+                              '',
+                              $trigger_link,
+                              #sub {
+                              #  my $part_event = shift;
+                              #  #XXX
+                              #  my $template = $part_event->templatename;
+                              #  $template .= '-' if $template;
+                              #  [ "${p}view/cust_bill.cgi?$template", 'invnum'];
+                              #},
+
+                              ( map { $_ ne 'Cust. Status' ? $link_cust : '' }
+                                    FS::UI::Web::cust_header()
+                              ),
+                            ],
+                 'color' => [ 
+                              '',
+                              '',
+                              '',
+                              '',
+                              #'',
+                              FS::UI::Web::cust_colors(),
+                            ],
+                 'style' => [ 
+                              '',
+                              '',
+                              '',
+                              '',
+                              #'',
+                              FS::UI::Web::cust_styles(),
+                            ],
+             )
+%>
+<%once>
+
+my $status_sub = sub { 
+  my $cust_event = shift;
+
+  my $status = $cust_event->status;
+  $status .= ': '.$cust_event->statustext
+    if $cust_event->statustext;
+
+  my $part_event = $cust_event->part_event;
+
+  if ( $part_event->eventtable eq 'cust_bill' && $part_event->templatename ) {
+    my $alt_templatename = $part_event->templatename;
+    my $alt_link = "$alt_templatename-". $cust_event->tablenum;
+
+    my $conf = new FS::Conf;
+    my $cust_bill = $cust_event->cust_X;
+
+    $status .= qq{
+          ( <A HREF="${p}view/cust_bill.cgi?$alt_link">view</A>
+          | <A HREF="${p}view/cust_bill-pdf.cgi?$alt_link.pdf">view
+              typeset</A>
+          | <A HREF="${p}misc/print-invoice.cgi?$alt_link">re-print</A>
+    };
+
+    if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { 
+      $status .= qq{
+            | <A HREF="${p}misc/email-invoice.cgi?$alt_link">re-email</A>
+      };
+    } 
+   
+    if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { 
+      $status .= qq{
+            | <A HREF="${p}misc/fax-invoice.cgi?$alt_link">re-fax</A>
+      }
+    } 
+
+    $status .= ' ) ';
+
+  }
+
+  $status;
+};
+
+my $trigger_sub = sub {
+  my $cust_event = shift;
+  my $eventtable = $cust_event->eventtable;
+  my $label = FS::part_event->eventtable_labels->{$eventtable};
+  #if ( $eventtable eq 'cust_pkg' || $eventtable eq 'cust_bill' ) {
+    "$label #". $cust_event->tablenum;
+  #} else {
+  #  $label;
+  #}
+};
+
+my $trigger_link = sub {
+  my $cust_event = shift;
+  my $eventtable = $cust_event->eventtable;
+  if ( $eventtable eq 'cust_pkg' ) {
+    my $custnum = $cust_event->cust_main_custnum;
+    [ "${p}view/cust_main.cgi?$custnum#cust_pkg", 'tablenum' ];
+  } else {
+    [ "${p}view/$eventtable.cgi?", 'tablenum' ];
+  }
+};
+
+</%once>
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('Billing event reports')
+      or $curuser->access_right('View customer billing events')
+         && (    $cgi->param('custnum') =~ /^(\d+)$/
+              || $cgi->param('invnum')  =~ /^(\d+)$/
+              || $cgi->param('pkgnum')  =~ /^(\d+)$/
+            );
+         
+
+my $title = $cgi->param('failed')
+              ? 'Failed billing events'
+              : 'Billing events';
+
+my @search = ();
+
+if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
+  push @search, "agentnum = $1";
+  #my $agent = qsearchs('agent', { 'agentnum' => $1 } );
+  #die "unknown agentnum $1" unless $agent;
+}
+
+my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
+push @search, "cust_event._date >= $beginning",
+              "cust_event._date <= $ending";
+
+if ( $cgi->param('failed') ) {
+  push @search, "statustext != ''",
+                "statustext IS NOT NULL",
+                "statustext != 'N/A'";
+}
+
+#if ( $cgi->param('part_event.payby') =~ /^(\w+)$/ ) {
+#  push @search, "part_event.payby = '$1'";
+#}
+
+if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
+  push @search, "cust_main.custnum = '$1'";
+}
+if ( $cgi->param('invnum') =~ /^(\d+)$/ ) {
+  push @search, "part_event.eventtable = 'cust_bill'",
+                "tablenum = '$1'";
+}
+if ( $cgi->param('pkgnum') =~ /^(\d+)$/ ) {
+  push @search, "part_event.eventtable = 'cust_pkg'",
+                "tablenum = '$1'";
+}
+
+#here is the agent virtualization
+my $agent_sql = $curuser->agentnums_sql;
+$agent_sql =~ s/agentnum/cust_main.agentnum/g;
+push @search, $agent_sql;
+
+my $where = 'WHERE '. join(' AND ', @search );
+
+my $join = "
+       JOIN part_event USING ( eventpart )
+  LEFT JOIN cust_bill ON ( eventtable = 'cust_bill' AND tablenum = invnum  )
+  LEFT JOIN cust_pkg  ON ( eventtable = 'cust_pkg'  AND tablenum = pkgnum  )
+  LEFT JOIN cust_main ON (    ( eventtable = 'cust_main' AND tablenum = cust_main.custnum )
+                           OR ( eventtable = 'cust_bill' AND cust_bill.custnum = cust_main.custnum )
+                           OR ( eventtable = 'cust_pkg'  AND cust_pkg.custnum  = cust_main.custnum )
+                         )
+";
+           #'LEFT JOIN cust_main  USING ( custnum   ) ';
+
+my $sql_query = {
+  'table'     => 'cust_event',
+  'select'    => join(', ',
+                    'cust_event.*',
+                    'part_event.*',
+                    #'cust_bill.custnum',
+                    #'cust_bill._date AS cust_bill_date',
+                    'cust_main.custnum AS cust_main_custnum',
+                    FS::UI::Web::cust_sql_fields(),
+                  ),
+  'hashref'   => {}, 
+  'extra_sql' => "$where ORDER BY _date ASC",
+  'addl_from' => $join,
+};
+
+my $count_sql = "SELECT COUNT(*) FROM cust_event $join $where";
+
+my $conf = new FS::Conf;
+
+my $failed = $cgi->param('failed');
+
+my $html_init = join("\n", map {
+  ( my $action = $_ ) =~ s/_$//;
+  include('/elements/progress-init.html',
+            $_.'form',
+            [ 'action', 'beginning', 'ending', 'failed' ],
+            "../misc/${_}events.cgi",
+            { 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but...
+            $_, #key
+         ),
+  qq!<FORM NAME="${_}form">!,
+  qq!<INPUT TYPE="hidden" NAME="action" VALUE="$_">!, #not used though
+  qq!<INPUT TYPE="hidden" NAME="beginning" VALUE="$beginning">!,
+  qq!<INPUT TYPE="hidden" NAME="ending"    VALUE="$ending">!,
+  qq!<INPUT TYPE="hidden" NAME="failed"    VALUE="$failed">!,
+  qq!</FORM>!
+} qw( print_ email_ fax_ ) ).
+
+'<SCRIPT TYPE="text/javascript">
+
+function confirm_print_process() {
+  if ( ! confirm("Are you sure you want to reprint these invoices?") ) {
+    return;
+  }
+  print_process();
+}
+function confirm_email_process() {
+  if ( ! confirm("Are you sure you want to re-email these invoices?") ) {
+    return;
+  }
+  email_process();
+}
+function confirm_fax_process() {
+  if ( ! confirm("Are you sure you want to re-fax these invoices?") ) {
+    return;
+  }
+  fax_process();
+}
+
+</SCRIPT>';
+
+my $menubar =  [
+                 'Re-print these events' =>
+                   "javascript:confirm_print_process()",
+                 'Re-email these events' =>
+                   "javascript:confirm_email_process()",
+               ];
+
+push @$menubar, 'Re-fax these events' =>
+                  "javascript:confirm_fax_process()"
+  if $conf->exists('hylafax');
+
+my $link_cust = sub {
+  my $cust_event = shift;
+  $cust_event->cust_main_custnum
+    ? [ "${p}view/cust_main.cgi?", 'cust_main_custnum' ]
+    : '';
+};
+
+</%init>
index 7d5e58a..5afc3dc 100644 (file)
@@ -34,7 +34,7 @@
 %  #                    'select'    => '*',
 %  #                    'addl_from' => '', #'LEFT JOIN othertable USING ( key )',
 %  #                    'extra_sql' => '', #'AND otherstuff', #'WHERE onlystuff',
-%  #                    
+%  #                    'order_by'  => 'ORDER BY something',
 %  #
 %  #                  },
 %  #                  # "select * from tablename";
 %  # 'disable_nonefound' => '', # set true to disable the "No matching Xs found"
 %  #                            # message
 %  #
+%  # 'disableable' => 1,  # set true if this table has a "disabled" field, to
+%  #                      # hide disabled records & have "show disabled" links
+%  # 'disabled_statuspos' => 3, #optional position (starting from 0) to insert
+%  #                            #a Status column when showing disabled records
+%  #                            #(query needs to be a qsearch hashref and
+%  #                            # header & fields need to be defined)
+
+%  # 'agent_virt' => 1, # set true if this search should be agent-virtualized
+%  # 'agent_null_right' => 'Access Right', #opt. right to view global records
+%  # 'agent_pos' => 3, #optional position (starting from 0) to insert
+%  #                   #an Agent column 
+%  #                   #(query needs to be a qsearch hashref and
+%  #                   # header & fields need to be defined)
+%  #
 %  # #listref - each item is a literal column name (or method) or coderef
 %  # #if not specified all columns will be shown
 %  # 'fields'      => [
 %  # #(can't be used with a literal query)
 %  # 'disableable' => 1,
 %
-%  my $DEBUG = 0;
-%
 %  my(%opt) = @_;
 %  #warn join(' / ', map { "$_ => $opt{$_}" } keys %opt ). "\n";
 %
+%  my $curuser = $FS::CurrentUser::CurrentUser;
+%
 %  my %align = (
 %    'l' => 'left',
 %    'r' => 'right',
 %  $opt{align} = [ map $align{$_}, split(//, $opt{align}) ],
 %    unless !$opt{align} || ref($opt{align});
 %
+%  if ( $opt{'agent_virt'} ) {
+%
+%    my $agentnums_sql = $curuser->agentnums_sql(
+%                          'null_right' => $opt{'agent_null_right'}
+%                        );
+%
+%    $opt{'query'}{'extra_sql'} .=
+%      ( $opt{'query'}       =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
+%      $agentnums_sql;
+%    $opt{'count_query'} .=
+%      ( $opt{'count_query'} =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
+%      $agentnums_sql;
+%
+%    if ( $opt{'agent_pos'} || $opt{'agent_pos'} eq '0'
+%         and scalar($curuser->agentnums) > 1           ) {
+%      #false laziness w/statuspos above
+%      my $pos = $opt{'agent_pos'};
+%
+%      foreach my $att (qw( align style color size )) {
+%        $opt{$att} ||= [ map '', @{ $opt{'fields'} } ];
+%      }
+%
+%      splice @{ $opt{'header'} }, $pos, 0, 'Agent'; 
+%      splice @{ $opt{'align'}  }, $pos, 0, 'c'; 
+%      splice @{ $opt{'style'}  }, $pos, 0, ''; 
+%      splice @{ $opt{'size'}   }, $pos, 0, ''; 
+%      splice @{ $opt{'fields'} }, $pos, 0,
+%        sub { $_[0]->agentnum ? $_[0]->agent->agent : '(global)'; };
+%      splice @{ $opt{'color'}  }, $pos, 0, '';
+%      splice @{ $opt{'links'}  }, $pos, 0, '' #[ 'agent link?', 'agentnum' ]
+%        if $opt{'links'};
+%
+%    }
+%
+%  }
+%
+%  if ( $opt{'disableable'} ) {
+%  
+%    unless ( $cgi->param('showdisabled') ) { #modify searches
+%  
+%      $opt{'query'}{'hashref'}{'disabled'} = '';
+%      $opt{'query'}{'extra_sql'} =~ s/^\s*WHERE/ AND/i;
+%  
+%      $opt{'count_query'} .=
+%        ( $opt{'count_query'} =~ /WHERE/i ? ' AND ' : ' WHERE ' ).
+%        "( disabled = '' OR disabled IS NULL )";
+%
+%    } elsif (    $opt{'disabled_statuspos'}
+%              || $opt{'disabled_statuspos'} eq '0' ) { #add status column
+%
+%      my $pos = $opt{'disabled_statuspos'};
+%
+%      foreach my $att (qw( align style color size )) {
+%        $opt{$att} ||= [ map '', @{ $opt{'fields'} } ];
+%      }
+%
+%      splice @{ $opt{'header'} }, $pos, 0, 'Status'; 
+%      splice @{ $opt{'align'}  }, $pos, 0, 'c'; 
+%      splice @{ $opt{'style'}  }, $pos, 0, 'b'; 
+%      splice @{ $opt{'size'}   }, $pos, 0, ''; 
+%      splice @{ $opt{'fields'} }, $pos, 0,
+%        sub { shift->disabled ? 'DISABLED' : 'Active'; };
+%      splice @{ $opt{'color'}  }, $pos, 0,
+%        sub { shift->disabled ? 'FF0000'   : '00CC00'; };
+%      splice @{ $opt{'links'}  }, $pos, 0, ''
+%        if $opt{'links'};
+%    }
+%  
+%    #add show/hide disabled links
+%    my $items = $opt{'name'} || PL($opt{'name_singular'});
+%    if ( $cgi->param('showdisabled') ) {
+%      $cgi->param('showdisabled', 0);
+%      $opt{'html_posttotal'} .=
+%        '( <a href="'. $cgi->self_url. qq!">hide disabled $items</a> )!;
+%      $cgi->param('showdisabled', 1);
+%    } else {
+%      $cgi->param('showdisabled', 1);
+%      $opt{'html_posttotal'} .=
+%        '( <a href="'. $cgi->self_url. qq!">show disabled $items</a> )!;
+%      $cgi->param('showdisabled', 0);
+%    }
+%  
+%  }
+%
 %  my $type = '';
 %  my $limit = '';
 %  my($confmax, $maxrecords, $total, $offset, $count_arrayref);
 %
 %  }
 %
-%  #disableable handling
-%  my $posttotal = '';
-%  if ( $opt{disableable} ) {
-%
-%    my $name= $opt{'name_singular'} ? PL($opt{'name_singular'}) : $opt{'name'};
-%
-%    if ( $cgi->param('showdisabled') ) {
-%      $cgi->param('showdisabled', 0);
-%      $posttotal= '( <a href="'. $cgi->self_url. '">'.
-%                  "hide disabled $name</a> )";
-%      $cgi->param('showdisabled', 1);
-%    } else {
-%      $cgi->param('showdisabled', 1);
-%      $posttotal= '( <a href="'. $cgi->self_url. '">'.
-%                  "show disabled $name</a> )";
-%      $cgi->param('showdisabled', 0);
-%    }
-%
-%    if ( $cgi->param('showdisabled') ) {
-%
-%      my $offset = $opt{disableable};
-%
-%      splice @{ $opt{header} }, $offset, 0, 'Status';
-%
-%      splice @{ $opt{fields} }, $offset, 0,
-%        sub { shift->disabled ? 'DISABLED' : 'Active' };
-%
-%      if ( $opt{links} && scalar( @{ $opt{links} } ) ) {
-%        splice @{ $opt{links} }, $offset, 0, '';
-%      }
-%
-%      if ( $opt{align} && scalar( @{ $opt{align} } ) ) {
-%        splice @{ $opt{align} }, $offset, 0, 'center';
-%      }
-%
-%      unless ( $opt{color} && scalar( @{ $opt{color} } ) ) {
-%        #$opt{color} = [ map { '000000'; } @{$opt{header}} ];
-%        $opt{color} = [ map { ''; } @{$opt{header}} ];
-%      }
-%      splice @{ $opt{color} }, $offset, 0,
-%        sub { shift->disabled ? 'FF0000' : '00CC00'; };
-%
-%      if ( $opt{size} && scalar( @{ $opt{size} } ) ) {
-%        splice @{ $opt{size} }, $offset, 0, '';
-%      }
-%
-%      unless ( $opt{style} && scalar( @{ $opt{style} } ) ) {
-%        $opt{style} = [ map { ''; } @{$opt{header}} ];
-%      }
-%      splice @{ $opt{style} }, $offset, 0, 'b';
-%
-%    }
-%
-%  }
-%
 %  # run the query
 %
 %  my $header = $opt{header};
 %    }
 %
 %    #eval "use FS::$opt{'query'};";
-%    $rows = [ qsearch(
-%      $opt{'query'}->{'table'}, 
-%      $opt{'query'}->{'hashref'} || {}, 
-%      $opt{'query'}->{'select'},
-%      $opt{'query'}->{'extra_sql'}. " $limit",
-%      '',
-%      (exists($opt{'query'}->{'addl_from'}) ? $opt{'query'}->{'addl_from'} : '')
-%    ) ];
-%
+%    $rows = [ qsearch({
+%      'select'    => $opt{'query'}->{'select'},
+%      'table'     => $opt{'query'}->{'table'}, 
+%      'addl_from' => (exists($opt{'query'}->{'addl_from'}) ? $opt{'query'}->{'addl_from'} : ''),
+%      'hashref'   => $opt{'query'}->{'hashref'} || {}, 
+%      'extra_sql' => $opt{'query'}->{'extra_sql'},
+%      'order_by'  => $opt{'query'}->{'order_by'}. " $limit",
+%    }) ];
 %  } else {
-%
 %    my $sth = dbh->prepare("$opt{'query'} $limit")
 %      or die "Error preparing $opt{'query'}: ". dbh->errstr;
 %    $sth->execute
 %    $rows = $sth->fetchall_arrayref;
 %
 %    $header ||= $sth->{NAME};
-%
 %  }
 %
-%  warn scalar(@$rows). ' rows returned from '.
-%       ( ref($opt{'query'}) ? 'qsearch query' : 'literal SQL query' )
-%    if $DEBUG || $opt{'debug'};
-%
-%  # display the results - csv, xls or html
-%
 %  if ( $type eq 'csv' ) {
 %
 %    #http_header('Content-Type' => 'text/comma-separated-values' ); #IE chokes
 %           $cgi->param('maxrecords', $maxrecords);
 %         }
 
-          <% $posttotal %>
-
           <% defined($opt{'html_posttotal'}) 
                 ? ( ref($opt{'html_posttotal'})
                       ? &{$opt{'html_posttotal'}}()
 %
 %                                  my $tableref = $_;
 %
-%                                  '<TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>'.
+%                                  '<TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 WIDTH="100%">'.
 %
 %                                  join('', map {
 %
 %
 %                                    join('', map {
 %
-%                                      my $element = $_;
+%                                      my $e = $_;
+%
+%                                      '<TD '.
+%                                        join(' ', map {
+%                                          uc($_).'="'. $e->{$_}. '"';
+%                                        }
+%                                        grep exists($e->{$_}),
+%                                             qw( align bgcolor colspan rowspan
+%                                                 style valign width )
+%                                        ).
+%                                      '>'.
 %
-%                                      '<TD'.
-%                                      ( $element->{'align'}
-%                                          ? ' ALIGN="'. $element->{'align'}. '"'
+%                                      ( $e->{'link'}
+%                                          ? '<A HREF="'. $e->{'link'}. '">'
 %                                          : ''
-%                                      ). '>'.
-%                                      ( $element->{'link'}
-%                                          ? '<A HREF="'. $element->{'link'}.'">'
+%                                      ).
+%                                      ( $e->{'size'}
+%                                         ? '<FONT SIZE="'.uc($e->{'size'}).'">'
+%                                         : ''
+%                                      ).
+%                                      ( $e->{'data_style'}
+%                                          ? '<'. uc($e->{'data_style'}). '>'
 %                                          : ''
 %                                      ).
-%                                      $element->{'data'}.
-%                                      ( $element->{'link'}
-%                                          ? '</A>'
+%                                      $e->{'data'}.
+%                                      ( $e->{'data_style'}
+%                                          ? '</'. uc($e->{'data_style'}). '>'
 %                                          : ''
 %                                      ).
+%                                      ( $e->{'size'} ? '</FONT>' : '' ).
+%                                      ( $e->{'link'} ? '</A>'    : '' ).
 %                                      '</td>';
 %
 %                                    } @$rowref ).
 % } else { 
 % foreach ( @$row ) { 
 
-                          <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $_ %></TD>
+                          <TD CLASS="grid" BGCOLOR="$bgcolor"><% $_ %></TD>
 % } 
 % } 
 
index d684892..892f5c4 100644 (file)
@@ -5,8 +5,8 @@
 
 <TABLE>
   <% include( '/elements/tr-select-agent.html',
-                 ($cgi->param('agentnum') || ''),
-                 'label' => 'Invoices for agent: ',
+                 'curr_value' => scalar( $cgi->param('agentnum') ),
+                 'label'      => 'Invoices for agent: ',
              )
   %>
   <% include( '/elements/tr-input-beginning_ending.html' ) %>
index 1399022..0490f43 100644 (file)
@@ -18,8 +18,8 @@
   </TR>
 
   <% include( '/elements/tr-select-agent.html',
-                 ($cgi->param('agentnum') || ''),
-                 'label' => 'for agent: ',
+                 'curr_value' => scalar( $cgi->param('agentnum') ),
+                 'label'      => 'for agent: ',
              )
   %>
 
diff --git a/httemplate/search/report_cust_event.html b/httemplate/search/report_cust_event.html
new file mode 100644 (file)
index 0000000..44cbadb
--- /dev/null
@@ -0,0 +1,65 @@
+<% include(
+      '/elements/header.html',
+      ( $cgi->param('failed') ? 'Failed billing events' : 'Billing events' ),
+   )
+%>
+
+    <FORM ACTION="cust_event.html" METHOD="GET">
+    <INPUT TYPE="hidden" NAME="failed" VALUE="<% $cgi->param('failed') %>">
+    <TABLE>
+
+      <% include( '/elements/tr-select-agent.html' ) %>
+
+      <!--<TR>
+        <TD ALIGN="right">Customer type</TD>
+        <TD><SELECT MULTIPLE NAME="perhaps_payby">
+          <OPTION SELECTED VALUE="CARD">Credit card (automatic)
+          <OPTION SELECTED VALUE="CHEK">E-check (automatic)
+          <OPTION SELECTED VALUE="LECB">Phone bill billing
+          <OPTION SELECTED VALUE="BILL">Billing
+          <OPTION SELECTED VALUE="DCRD">Credit card (on-demand)
+          <OPTION SELECTED VALUE="DCHK">E-check (on-demand)
+        </TD>
+      </TR>
+      -->
+      <% include( '/elements/tr-input-beginning_ending.html' ) %>
+      <!--
+      <TR>
+        <TD ALIGN="right">Events: </TD>
+        <TD>
+          <SELECT NAME="eventpart">
+            <OPTION SELECTED VALUE=""><% $cgi->param('failed') ? '(all failed events)' : '(all events)' %>
+% #foreach my $part_bill_event ( qsearch( 'part_bill_event', {} ) ) { 
+% #} 
+
+          </SELECT>
+        </TD>
+      </TR>
+      -->
+<!--      <TR>
+        <TD ALIGN="right">Events for payment type: </TD>
+        <TD>
+          <SELECT NAME="part_bill_event.payby">
+            <OPTION SELECTED VALUE="">(all)
+            <OPTION VALUE="CARD">Credit card (automatic)
+            <OPTION VALUE="BILL">Billing
+            <OPTION VALUE="CHEK">Electronic check (automatic)
+            <OPTION VALUE="DCRD">Credit card (on-demand)
+            <OPTION VALUE="DCHK">Electronic check (on-demand)
+            <OPTION VALUE="LECB">Phone bill billing
+            <OPTION VALUE="COMP">Complimentary
+          </SELECT>
+        </TD>
+      </TR>
+-->
+    </TABLE>
+    <BR><INPUT TYPE="submit" VALUE="Get Report">
+    </FORM>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Billing event reports');
+
+</%init>
index c5a64ae..19b7ecc 100644 (file)
@@ -34,8 +34,8 @@
       </TR>
 
       <% include( '/elements/tr-select-agent.html',
-                     ($cgi->param('agentnum') || ''),
-                     'label' => 'for agent: ',
+                     'curr_value' => scalar( $cgi->param('agentnum') ),
+                     'label'      => 'For agent: ',
                  )
       %>
 
index b32b128..d7cb0ae 100644 (file)
@@ -49,8 +49,8 @@
   </TR>
 
   <% include( '/elements/tr-select-agent.html',
-                 ($cgi->param('agentnum') || ''),
-                 'label' => 'for agent: ',
+                 'curr_value' => scalar($cgi->param('agentnum')),
+                 'label'      => 'for agent: ',
              )
   %>
 
index 4e8937c..0cd656c 100644 (file)
@@ -16,8 +16,8 @@
   </TR>
 
   <% include( '/elements/tr-select-agent.html',
-                 ($cgi->param('agentnum') || ''),
-                 'label' => 'for agent: ',
+                 'curr_value' => scalar( $cgi->param('agentnum') ),
+                 'label'      => 'For agent: ',
              )
   %>
 
index 57180c1..dd62f3e 100755 (executable)
@@ -9,11 +9,11 @@
       <TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left"><FONT SIZE="+1">Search options</FONT></TH>
     </TR>
     <% include( '/elements/tr-select-agent.html',
-                   ($cgi->param('agentnum') || ''),
+                   'curr_value' => scalar( $cgi->param('agentnum') ),
                )
     %>
 
-    <% include( '/elements/tr-select-cust_pkg-status.html', '',
+    <% include( '/elements/tr-select-cust_pkg-status.html',
                   'onchange' => 'status_changed(this);',
               )
     %>
@@ -62,7 +62,7 @@
 
     </SCRIPT>
 
-    <% include( '/elements/tr-select-pkg_class.html', '',
+    <% include( '/elements/tr-select-pkg_class.html',
                    'pre_options' => [ '0' => 'all' ],
                    'empty_label' => '(empty class)',
                )
index a702d60..ee8a5d0 100755 (executable)
@@ -132,7 +132,9 @@ my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
                 ' LEFT JOIN cust_main USING ( custnum ) ';
 
 #here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql( 
+                   'null_right' => 'View/link unlinked services'
+                 );
 
 my $extra_sql = 
   scalar(@extra_sql)
index 1bbdbfc..a89b196 100755 (executable)
@@ -5,9 +5,18 @@
 %
 %my @svc_broadband = ();
 %my $sortby=\*svcnum_sort;
+%#XXX agent-virtualization needs to be finished :/
+%my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql( 
+%                      'null_right' => 'View/link unlinked services'
+%                    );
+%
 %if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
 %
-%  @svc_broadband=qsearch('svc_broadband',{});
+%  @svc_broadband = qsearch(
+%    'table'     => 'svc_broadband',
+%    'hashref'   => {},
+%    #needs the join first 'extra_sql' => "WHERE $agentnums_sql",
+%  );
 %
 %  if ( $cgi->param('magic') eq 'unlinked' ) {
 %    @svc_broadband = grep { qsearchs('cust_svc', {
@@ -17,7 +26,7 @@
 %                                    )
 %                          }
 %                    @svc_broadband;
-%  }
+%  } else {
 %
 %  if ( $cgi->param('sortby') =~ /^(\w+)$/ ) {
 %    my $sortby = $1;
index b14a1cc..08ffdba 100755 (executable)
@@ -69,7 +69,9 @@ my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
                 ' LEFT JOIN cust_main USING ( custnum ) ';
 
 #here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql( 
+                   'null_right' => 'View/link unlinked services'
+                 );
 
 my $extra_sql = '';
 if ( @extra_sql ) {
index eeb4c10..2bcd0c8 100755 (executable)
@@ -46,7 +46,6 @@
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('List services');
 
-
 my $conf = new FS::Conf;
 
 my $orderby = 'ORDER BY svcnum';
@@ -71,7 +70,9 @@ my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
                 ' LEFT JOIN cust_main USING ( custnum ) ';
 
 #here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql( 
+                   'null_right' => 'View/link unlinked services'
+                 );
 
 my $extra_sql = 
   scalar(@extra_sql)
index 0c1d578..49340c6 100644 (file)
@@ -74,7 +74,9 @@ my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
                 ' LEFT JOIN cust_main USING ( custnum ) ';
 
 #here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql(
+                   'null_right' => 'View/link unlinked services'
+                 );
 
 my $extra_sql = '';
 if ( @extra_sql ) {
index d9332e9..2e3c461 100755 (executable)
@@ -76,7 +76,9 @@ my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
                 ' LEFT JOIN cust_main USING ( custnum ) ';
 
 #here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql(
+                   'null_right' => 'View/link unlinked services'
+                 );
 
 my $extra_sql = 
   scalar(@extra_sql)
index e2f810c..9c1c1d7 100755 (executable)
@@ -2,7 +2,8 @@
 <%init>
 
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
+  unless $FS::CurrentUser::CurrentUser->access_right('View invoices')
+      or $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
 my $conf = new FS::Conf;
 
index 42e1e61..c5373ff 100755 (executable)
   <A HREF="<% $p %>view/cust_bill-pdf.cgi?<% $link %>.pdf">View typeset invoice</A>
   <BR><BR>
 % } 
-% #false laziness with search/cust_bill_event.cgi
-%   unless ( $templatename ) { 
-
-
-  <% table() %>
-  <TR>
-    <TH>Event</TH>
-    <TH>Date</TH>
-    <TH>Status</TH>
-  </TR>
-% foreach my $cust_bill_event (
-%       sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
-%     ) {
-%
-%    my $status = $cust_bill_event->status;
-%    $status .= ': '. encode_entities($cust_bill_event->statustext)
-%      if $cust_bill_event->statustext;
-%    my $part_bill_event = $cust_bill_event->part_bill_event;
-%  
-
-    <TR>
-      <TD><% $part_bill_event->event %>
-% if ( $part_bill_event->templatename ) {
-%          my $alt_templatename = $part_bill_event->templatename;
-%          my $alt_link = "$alt_templatename-$invnum";
-%        
-
-          ( <A HREF="<% $p %>view/cust_bill.cgi?<% $alt_link %>">view</A>
-          | <A HREF="<% $p %>view/cust_bill-pdf.cgi?<% $alt_link %>.pdf">view
-              typeset</A>
-          | <A HREF="<% $p %>misc/print-invoice.cgi?<% $alt_link %>">re-print</A>
-% if ( grep { $_ ne 'POST' }
-%                       $cust_bill->cust_main->invoicing_list ) { 
-
-            | <A HREF="<% $p %>misc/email-invoice.cgi?<% $alt_link %>">re-email</A>
-% } 
-% if ( $conf->exists('hylafax')
-%                  && length($cust_bill->cust_main->fax) ) { 
 
-            | <A HREF="<% $p %>misc/fax-invoice.cgi?<% $alt_link %>">re-fax</A>
+% my $br = 0;
+% if ( $cust_bill->num_cust_event ) { $br++;
+<A HREF="<%$p%>search/cust_event.html?invnum=<% $cust_bill->invnum %>">(&nbsp;View invoice events&nbsp;)</A> 
 % } 
 
+% if ( $cust_bill->num_cust_bill_event ) { $br++;
+<A HREF="<%$p%>search/cust_bill_event.cgi?invnum=<% $cust_bill->invnum %>">(&nbsp;View deprecated, old-style invoice events&nbsp;)</A> 
+% }
 
-          )
-% } 
+<% $br ? '<BR><BR>' : '' %>
 
-  
-      </TD>
-      <TD><% time2str("%a %b %e %T %Y", $cust_bill_event->_date) %></TD>
-      <TD><% $status %></TD>
-    </TR>
-% } 
-
-
-  </TABLE>
-  <BR>
-% } 
 % if ( $conf->exists('invoice_html') ) { 
 
   <% join('', $cust_bill->print_html('', $templatename) ) %>
index 850b48b..4ca777d 100755 (executable)
@@ -16,52 +16,38 @@ function areyousure(href, message) {
 }
 </SCRIPT>
 
-<SCRIPT TYPE="text/javascript">
-%
-%my $ban = '';
-%if ( $cust_main->payby =~ /^(CARD|DCRD|CHEK|DCHK)$/ ) {
-%  $ban = '<BR><P ALIGN="center">'.
-%         '<INPUT TYPE="checkbox" NAME="ban" VALUE="1"> Ban this customer\\\'s ';
-%  if ( $cust_main->payby =~ /^(CARD|DCRD)$/ ) {
-%    $ban .= 'credit card';
-%  } elsif (  $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
-%    $ban .= 'ACH account';
-%  }
-%}
-%
-
-
-var confirm_cancel = '<FORM METHOD="POST" ACTION="<% $p %>misc/cust_main-cancel.cgi"> <INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>"> <BR><P ALIGN="center"><B>Permanently delete all services and cancel this customer?</B> <% $ban%><BR><P ALIGN="CENTER"> <INPUT TYPE="submit" VALUE="Cancel customer">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="BUTTON" VALUE="Don\'t cancel" onClick="cClick()"> </FORM> ';
-
-</SCRIPT>
 % if ( $curuser->access_right('Cancel customer')
 %        && $cust_main->ncancelled_pkgs
 %      ) {
-%
 
-  <A HREF="javascript:void(0);" onClick="overlib(confirm_cancel, CAPTION, 'Confirm cancellation', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', MIDX, 0, MIDY, 0, DRAGGABLE, WIDTH, 576, HEIGHT, 128, TEXTSIZE, 3, BGCOLOR, '#ff0000', CGCOLOR, '#ff0000' ); return false; ">Cancel this customer</A> | 
+  <% cust_cancel_link($cust_main) %> | 
+
 % } 
+
 % if ( $conf->exists('deletecustomers')
 %        && $curuser->access_right('Delete customer')
 %      ) {
-%
-
   <A HREF="<% $p %>misc/delete-customer.cgi?<% $custnum%>">Delete this customer</A> | 
 % } 
-% unless ( $conf->exists('disable_customer_referrals') ) { 
 
-  <A HREF="<% popurl(2) %>edit/cust_main.cgi?referral_custnum=<% $custnum %>">Refer a new customer</A> | 
-  <A HREF="<% popurl(2) %>search/cust_main.cgi?referral_custnum=<% $custnum %>">View this customer's referrals</A>
+% unless ( $conf->exists('disable_customer_referrals') ) { 
+  <A HREF="<% $p %>edit/cust_main.cgi?referral_custnum=<% $custnum %>">Refer a new customer</A> | 
+  <A HREF="<% $p %>search/cust_main.cgi?referral_custnum=<% $custnum %>">View this customer's referrals</A>
 % } 
 
+<BR><BR>
 
+% if (    $curuser->access_right('Billing event reports') 
+%      || $curuser->access_right('View customer billing events')
+%    ) {
+
+  <A HREF="<% $p %>search/cust_event.html?custnum=<% $custnum %>">View billing events for this customer</A>
+  <BR><BR>
+
+% }
 
-<BR><BR>
-%
 %my $signupurl = $conf->config('signupurl');
 %if ( $signupurl ) {
-%
-
   This customer's signup URL: <A HREF="<% $signupurl %>?ref=<% $custnum %>"><% $signupurl %>?ref=<% $custnum %></A><BR><BR>
 % } 
 
@@ -161,11 +147,41 @@ die "No customer specified (bad URL)!" unless $cgi->keywords;
 my($query) = $cgi->keywords; # needs parens with my, ->keywords returns array
 $query =~ /^(\d+)$/;
 my $custnum = $1;
-my $cust_main = qsearchs({
+my $cust_main = qsearchs( {
   'table'     => 'cust_main',
-  'hashref'   => {'custnum'=>$custnum},
+  'hashref'   => { 'custnum' => $custnum },
   'extra_sql' => ' AND '. $curuser->agentnums_sql,
 });
 die "Customer not found!" unless $cust_main;
 
 </%init>
+<%once>
+
+
+sub cust_cancel_link { cust_popup_link( 'misc/cancel_cust.html',
+                                        'Cancel&nbsp;this&nbsp;customer',
+                                        'Confirm Cancellation',
+                                        '#ff0000',
+                                        @_,
+                                      );
+}
+
+#false laziness w/view/cust_main/packages.html
+
+sub cust_popup_link {
+  my($action, $label, $actionlabel, $color, $cust_main) = @_;
+  $action .= '?'. $cust_main->custnum;
+  popup_link($action, $label, $actionlabel, $color);
+}
+
+sub popup_link {
+  my($action, $label, $actionlabel, $color) = @_;
+  $color ||= '#333399';
+  qq!<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$p$action', 540, 336, 'pkg_or_svc_action_popup' ), CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color', CLOSETEXT, '' ); return false;">$label</A>!;
+
+# CLOSETEXT, '', 
+#WIDTH, 576, HEIGHT, 128, TEXTSIZE, 3,
+#BGCOLOR, '#ff0000', CGCOLOR, '#ff0000'
+}
+
+</%once>
diff --git a/httemplate/view/cust_main/order_pkg.html b/httemplate/view/cust_main/order_pkg.html
deleted file mode 100644 (file)
index f48bf09..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-%
-%  my( $cust_main ) = @_;
-%
-
-
-<SCRIPT TYPE="text/javascript">
-function enable_order_pkg () {
-  if ( document.OrderPkgForm.pkgpart.selectedIndex > 0 ) {
-    document.OrderPkgForm.submit.disabled = false;
-  } else {
-    document.OrderPkgForm.submit.disabled = true;
-  }
-}
-</SCRIPT>
-
-<FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/quick-cust_pkg.cgi" METHOD="POST">
-
-<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $cust_main->custnum %>">
-
-<SELECT NAME="pkgpart" onChange="enable_order_pkg()"><OPTION>Order additional package
-%
-%foreach my $part_pkg (
-%  qsearch( 'part_pkg', { 'disabled' => '' }, '',
-%           ' AND 0 < ( SELECT COUNT(*) FROM type_pkgs '.
-%           '             WHERE typenum = '. $cust_main->agent->typenum.
-%           '             AND type_pkgs.pkgpart = part_pkg.pkgpart )'.
-%           ' ORDER BY pkg'   # case ?
-%         )
-%) {
-%
-
-
-  <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg %> - <% $part_pkg->comment %>
-% } 
-
-
-</SELECT>
-
-<INPUT NAME="submit" TYPE="submit" VALUE="Order Package" disabled>
-
-</FORM>
index 5890726..f424425 100755 (executable)
@@ -1,22 +1,17 @@
-%  my( $cust_main ) = @_;
-%  my $conf = new FS::Conf;
-%
-%  my $curuser = $FS::CurrentUser::CurrentUser;
-%
-%  my $packages = get_packages($cust_main, $conf);
-
+<A NAME="cust_pkg"><FONT SIZE="+2">Packages</FONT></A><BR>
 
-<A NAME="cust_pkg"><FONT SIZE="+2">Packages</FONT></A>
+% my $s = 0;
 % if ( $curuser->access_right('Order customer package') ) { 
-
-  <% include('order_pkg.html', $cust_main ) %>
+  <% $s++ ? ' | ' : '' %>
+  <% order_pkg_link($cust_main) %>
 % } 
+
 % if ( $curuser->access_right('One-time charge')
 %        && $conf->config('payby-default') ne 'HIDE'
 %      ) {
 %
 
-  <% popup_link('edit/quick-charge.html?custnum='. $cust_main->custnum, 'One-time charge', 'One-time charge', 545) %>
+  <% popup_link('edit/quick-charge.html?custnum='. $cust_main->custnum, 'One-time charge', 'One-time charge', '#333399', 545) %>
   <BR>
 % } 
 % if ( $curuser->access_right('Bulk change customer packages') ) { 
@@ -77,27 +72,43 @@ Current packages
 
 <!--pkgnum: <% $cust_pkg->pkgnum %>-->
 <TR>
+
   <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
-    <A NAME="cust_pkg<% $cust_pkg->pkgnum %>"><% $cust_pkg->pkgnum %></A>:
-    <% $part_pkg->pkg %> - <% $part_pkg->comment %><BR>
+
+    <A NAME="cust_pkg<% $cust_pkg->pkgnum %>" ID="cust_pkg<% $cust_pkg->pkgnum %>"><% $cust_pkg->pkgnum %></A>:
+    <% $part_pkg->pkg %> - <% $part_pkg->comment %>
+    <BR>
+
     <FONT SIZE=-1>
 % unless ( $cust_pkg->get('cancel') ) { 
-% if ( $curuser->access_right('Change customer package') ) { 
+%   my $br = 0;
+%   if ( $curuser->access_right('Change customer package') ) { $br=1;
 
             (&nbsp;<%pkg_change_link($cust_pkg)%>&nbsp;)
-% } 
-% if ( $curuser->access_right('Edit customer package dates') ) { 
+%   
+%   if ( $curuser->access_right('Edit customer package dates') ) { $br=1;
 
             (&nbsp;<%pkg_dates_link($cust_pkg)%>&nbsp;)
-% } 
-% if ( $curuser->access_right('Customize customer package') ) { 
+%   
+%   if ( $curuser->access_right('Customize customer package') ) { $br=1;
 
             (&nbsp;<%pkg_customize_link($cust_pkg,$cust_main->custnum)%>&nbsp;)
+%   } 
+    <% $br ? '<BR>' : '' %>
 % } 
-% } 
+
+% if ( $cust_pkg->num_cust_event
+%      && (    $curuser->access_right('Billing event reports')
+%           || $curuser->access_right('View customer billing events')
+%         )
+%    ) {
+    (&nbsp;<%pkg_event_link($cust_pkg)%>&nbsp;)
+% }
 
     </FONT>
+
   </TD>
+
   <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
     <TABLE CLASS="inv" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
 %
@@ -417,157 +428,207 @@ Current packages
 
 <BR>
 % } 
-%
-%#subroutines
-%
-%sub get_packages {
-%  my $cust_main = shift or return undef;
-%  my $conf = shift;
-%  
-%  my @packages = ();
-%  my $method;
-%  if (  $cgi->param('showcancelledpackages') eq '0' #see if it was set by me
-%     || ( $conf->exists('hidecancelledpackages')
-%           && ! $cgi->param('showcancelledpackages') )
-%     )
-%  {
-%    $method = 'ncancelled_pkgs';
-%  } else {
-%    $method = 'all_pkgs';
-%  }
-%
-%  [ $cust_main->$method() ];
-%}
-%  
-%sub svc_provision_link {
-%  my ($cust_pkg, $part_svc, $conf, $curuser) = @_;
-%  ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/&nbsp;/g;
-%  my $num_avail = $part_svc->num_avail;
-%  my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.
-%                       "svcpart=". $part_svc->svcpart;
-%  my $url;
-%  if ( $part_svc->svcdb eq 'svc_external' #could be generalized
-%       && $conf->exists('svc_external-skip_manual')
-%  ) {
-%    $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";
-%  } else {
-%    $url = svc_url(
-%                    'm'        => $m,
-%                    'action'   => 'edit',
-%                    'part_svc' => $part_svc, 
-%                    'query'    => $pkgnum_svcpart,
-%                  );
-%    #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
-%  }
-%
-%  my $link = qq!<A CLASS="provision" HREF="$url">!.
-%             "Provision&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
-%  if ( $conf->exists('legacy_link')
-%       && $curuser->access_right('View/link unlinked services')
-%     )
-%  {
-%    $link .= '<BR>'.
-%             qq!<A CLASS="provision" HREF="${p}misc/link.cgi?!.
-%             qq!$pkgnum_svcpart">!.
-%            "Link&nbsp;to&nbsp;legacy&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
-%  }
-%  $link;
-%}
-%
-%sub svc_unprovision_link {
-%  my $cust_svc = shift or return '';
-%  qq!<A HREF="javascript:areyousure('${p}misc/unprovision.cgi?!. $cust_svc->svcnum.
-%  qq!', 'Permanently unprovision and delete this service?')">Unprovision</A>!;
-%}
-%
-%sub pkg_datestr {
-%  my($cust_pkg, $field, $conf) = @_ or return '';
-%  return '&nbsp;' unless $cust_pkg->get($field);
-%  my $format = '<TD align="left"><B>%b</B></TD>'.
-%               '<TD align="right"><B>&nbsp;%o,</B></TD>'.
-%               '<TD align="right"><B>&nbsp;%Y</B></TD>';
-%  #$format .= '&nbsp;<FONT SIZE=-3>%l:%M:%S%P&nbsp;%z</FONT>'
-%  $format .= '<TD ALIGN="right"><B>&nbsp;%l</TD>'.
-%             '<TD ALIGN="center"><B>:</B></TD>'.
-%             '<TD ALIGN="left"><B>%M</B></TD>'.
-%             '<TD ALIGN="left"><B>&nbsp;%P</B></TD>'
-%    if $conf->exists('cust_pkg-display_times');
-%  my $strip = time2str($format, $cust_pkg->get($field) );
-%  $strip =~ s/ (\d)/$1/g;
-%  $strip;
-%}
-%
-%sub pkg_change_link    { pkg_link('misc/change_pkg',    'Change&nbsp;package', @_ ); }
-%
-%sub pkg_suspend_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=suspend',
-%                                         'Suspend&nbsp;now',
-%                                         'Suspend',
-%                                         @_
-%                                       );
-%                       }
-%
-%sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg',    'Unsuspend',           @_ ); }
-%sub pkg_expire_link    { pkg_link('misc/expire_pkg',    'Cancel&nbsp;later',   @_ ); }
-%sub pkg_dates_link     { pkg_link('edit/REAL_cust_pkg', 'Edit&nbsp;dates',     @_ ); }
-%
-%sub pkg_cancel_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=cancel',
-%                                         'Cancel&nbsp;now',
-%                                         'Cancel',
-%                                         @_
-%                                       );
-%                       }
-%sub pkg_adjourn_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=adjourn',
-%                                         'Suspend&nbsp;later',
-%                                         'Adjourn',
-%                                         @_
-%                                       );
-%                       }
-%
-%sub pkg_expire_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=expire',
-%                                         'Cancel&nbsp;later',
-%                                         'Expire', #"Cancel package $num later"
-%                                         @_
-%                                       );
-%                       }
-%
-%sub svc_recharge_link  { svc_popup_link( 'misc/recharge_svc.html',
-%                                         'Recharge',
-%                                         'Recharge',
-%                                         @_
-%                                       );
-%                       }
-%
-%sub pkg_link {
-%  my($action, $label, $cust_pkg) = @_;
-%  return '' unless $cust_pkg;
-%  qq!<a href="$p$action.cgi?!. $cust_pkg->pkgnum. qq!">$label</a>!;
-%}
-%
-%sub pkg_popup_link {
-%  my($action, $label, $actionlabel, $cust_pkg) = @_;
-%  $action .= '&pkgnum='. $cust_pkg->pkgnum;
-%  $actionlabel .= ' package '. $cust_pkg->pkgnum;
-%  popup_link($action, $label, $actionlabel, 392);
-%}
-%
-%sub svc_popup_link {
-%  my($action, $label, $actionlabel, $cust_svc) = @_;
-%  $action .= '?svcnum='. $cust_svc->svcnum;
-%  $actionlabel .= ' service '. $cust_svc->svcnum;
-%  popup_link($action, $label, $actionlabel, 392);
-%}
-%
-%sub popup_link {
-%  my($action, $label, $actionlabel, $width) = @_;
-%  qq!<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$p$action', $width, 336, 'pkg_or_svc_action_popup' ), CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK ); return false;">$label</A>!;
-%}
-%
-%sub pkg_customize_link {
-%  my $cust_pkg = shift or return '';
-%  my $custnum = $cust_pkg->custnum;
-%  qq!<A HREF="${p}edit/part_pkg.cgi?!.
-%    "keywords=$custnum;".
-%    "clone=". $cust_pkg->part_pkg->pkgpart. ';'.
-%    "pkgnum=". $cust_pkg->pkgnum.
-%    qq!">Customize</A>!;
-%}
+% if ( $cgi->param('fragment') =~ /^cust_pkg(\d+)$/ ) {
+  <SCRIPT>
+    // IE-specific hack.  other browsers listen to #fragments
+    // is this even working?  or is the #target redirection just working cause
+    // we set the URL params differently?
+    var el = document.getElementById( 'cust_pkg<% $1 %>' );
+    if ( el ) el.scrollIntoView(true);
+  </SCRIPT>
+% }
+<%init>
+
+my( $cust_main ) = @_;
+my $conf = new FS::Conf;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+my $packages = get_packages($cust_main, $conf);
+</%init>
+<%once>
+
+#subroutines
+
+sub get_packages {
+  my $cust_main = shift or return undef;
+  my $conf = shift;
+  
+  my @packages = ();
+  my $method;
+  if (  $cgi->param('showcancelledpackages') eq '0' #see if it was set by me
+     || ( $conf->exists('hidecancelledpackages')
+           && ! $cgi->param('showcancelledpackages') )
+     )
+  {
+    $method = 'ncancelled_pkgs';
+  } else {
+    $method = 'all_pkgs';
+  }
+
+  [ $cust_main->$method() ];
+}
+  
+sub svc_provision_link {
+  my ($cust_pkg, $part_svc, $conf, $curuser) = @_;
+  ( my $svc_nbsp = $part_svc->svc ) =~ s/\s+/&nbsp;/g;
+  my $num_avail = $part_svc->num_avail;
+  my $pkgnum_svcpart = "pkgnum=". $cust_pkg->pkgnum. ';'.
+                       "svcpart=". $part_svc->svcpart;
+  my $url;
+  if ( $part_svc->svcdb eq 'svc_external' #could be generalized
+       && $conf->exists('svc_external-skip_manual')
+  ) {
+    $url = "${p}edit/process/". $part_svc->svcdb. ".cgi?$pkgnum_svcpart";
+  } else {
+    $url = svc_url(
+                    'm'        => $m,
+                    'action'   => 'edit',
+                    'part_svc' => $part_svc, 
+                    'query'    => $pkgnum_svcpart,
+                  );
+    #$url = "${p}edit/$svcpart->{svcdb}.cgi?$pkgnum_svcpart";
+  }
+
+  my $link = qq!<A CLASS="provision" HREF="$url">!.
+             "Provision&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
+  if ( $conf->exists('legacy_link')
+       && $curuser->access_right('View/link unlinked services')
+     )
+  {
+    $link .= '<BR>'.
+             qq!<A CLASS="provision" HREF="${p}misc/link.cgi?!.
+             qq!$pkgnum_svcpart">!.
+            "Link&nbsp;to&nbsp;legacy&nbsp;$svc_nbsp&nbsp;($num_avail)</A>";
+  }
+  $link;
+}
+
+sub svc_unprovision_link {
+  my $cust_svc = shift or return '';
+  qq!<A HREF="javascript:areyousure('${p}misc/unprovision.cgi?!. $cust_svc->svcnum.
+  qq!', 'Permanently unprovision and delete this service?')">Unprovision</A>!;
+}
+
+sub pkg_datestr {
+  my($cust_pkg, $field, $conf) = @_ or return '';
+  return '&nbsp;' unless $cust_pkg->get($field);
+  my $format = '<TD align="left"><B>%b</B></TD>'.
+               '<TD align="right"><B>&nbsp;%o,</B></TD>'.
+               '<TD align="right"><B>&nbsp;%Y</B></TD>';
+  #$format .= '&nbsp;<FONT SIZE=-3>%l:%M:%S%P&nbsp;%z</FONT>'
+  $format .= '<TD ALIGN="right"><B>&nbsp;%l</TD>'.
+             '<TD ALIGN="center"><B>:</B></TD>'.
+             '<TD ALIGN="left"><B>%M</B></TD>'.
+             '<TD ALIGN="left"><B>&nbsp;%P</B></TD>'
+    if $conf->exists('cust_pkg-display_times');
+  my $strip = time2str($format, $cust_pkg->get($field) );
+  $strip =~ s/ (\d)/$1/g;
+  $strip;
+}
+
+sub pkg_change_link    { pkg_link('misc/change_pkg',    'Change&nbsp;package', @_ ); }
+
+sub pkg_suspend_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=suspend',
+                                         'Suspend&nbsp;now',
+                                         'Suspend',
+                                         '#FF9900',
+                                         @_
+                                       );
+                       }
+
+sub pkg_adjourn_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=adjourn',
+                                         'Suspend&nbsp;later',
+                                         'Adjourn',
+                                         '#CC6600',
+                                         @_
+                                       );
+                       }
+
+sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg',    'Unsuspend',           @_ ); }
+sub pkg_expire_link    { pkg_link('misc/expire_pkg',    'Cancel&nbsp;later',   @_ ); }
+sub pkg_dates_link     { pkg_link('edit/REAL_cust_pkg', 'Edit&nbsp;dates',     @_ ); }
+
+sub pkg_cancel_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=cancel',
+                                         'Cancel&nbsp;now',
+                                         'Cancel',
+                                         '#ff0000',
+                                         @_
+                                       );
+                       }
+
+sub pkg_expire_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=expire',
+                                         'Cancel&nbsp;later',
+                                         'Expire', #"Cancel package $num later"
+                                         '#CC0000',
+                                         @_
+                                       );
+                       }
+
+sub svc_recharge_link  { svc_popup_link( 'misc/recharge_svc.html',
+                                         'Recharge',
+                                         'Recharge',
+                                         '#333399',
+                                         @_
+                                       );
+                       }
+
+sub order_pkg_link { cust_popup_link( 'misc/order_pkg.html',
+                                      'Order&nbsp;new&nbsp;package',
+                                      'Order new package',
+                                      '#333399',
+                                      @_
+                                    );
+                   }
+
+sub pkg_event_link {
+  my($cust_pkg) = @_;
+  qq!<a href="${p}search/cust_event.html?pkgnum=!. $cust_pkg->pkgnum. qq!">!.
+  'View package events'.
+  '</a>';
+}
+
+sub pkg_link {
+  my($action, $label, $cust_pkg) = @_;
+  return '' unless $cust_pkg;
+  qq!<a href="$p$action.cgi?!. $cust_pkg->pkgnum. qq!">$label</a>!;
+}
+
+sub pkg_popup_link {
+  my($action, $label, $actionlabel, $color, $cust_pkg) = @_;
+  $action .= '&pkgnum='. $cust_pkg->pkgnum;
+  $actionlabel .= ' package '. $cust_pkg->pkgnum;
+  popup_link($action, $label, $actionlabel, $color);
+}
+
+sub svc_popup_link {
+  my($action, $label, $actionlabel, $color, $cust_svc) = @_;
+  $action .= '?svcnum='. $cust_svc->svcnum;
+  $actionlabel .= ' service '. $cust_svc->svcnum;
+  popup_link($action, $label, $actionlabel, $color);
+}
+
+sub cust_popup_link {
+  my($action, $label, $actionlabel, $color, $cust_main) = @_;
+  $action .= '?'. $cust_main->custnum;
+  popup_link($action, $label, $actionlabel, $color);
+}
+
+sub popup_link {
+  my($action, $label, $actionlabel, $color, $width) = @_;
+  $color ||= '#333399';
+  $width ||= 540;
+  qq!<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$p$action', $width, 336, 'pkg_or_svc_action_popup' ), CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color' ); return false;">$label</A>!;
+}
+
+sub pkg_customize_link {
+  my $cust_pkg = shift or return '';
+  my $custnum = $cust_pkg->custnum;
+  qq!<A HREF="${p}edit/part_pkg.cgi?!.
+    "keywords=$custnum;".
+    "clone=". $cust_pkg->part_pkg->pkgpart. ';'.
+    "pkgnum=". $cust_pkg->pkgnum.
+    qq!">Customize</A>!;
+}
+
+</%once>
index b2d98cc..099bc4f 100644 (file)
 %  my $link = $curuser->access_right('View invoices')
 %               ? qq!<A HREF="${p}view/cust_bill.cgi?$invnum">!
 %               : '';
+%  my $events = '';
+%  if ( $cust_bill->num_cust_event
+%       && (    $curuser->access_right('Billing event reports')
+%            || $curuser->access_right('View customer billing events')
+%          )
+%     ) {
+%    $events =
+%      qq!<BR><FONT SIZE="-1"><A HREF="${p}search/cust_event.html?invnum=!.
+%      $cust_bill->invnum. '">(&nbsp;View invoice events&nbsp;)</A></FONT>';
+%  }
 %  push @history, {
 %    'date'   => $cust_bill->_date,
 %    'desc'   => $link. $pre.
 %                "Invoice #$invnum (Balance \$". $cust_bill->owed. ')'.
-%                $post. ( $link ? '</A>' : '' ),
+%                $post. ( $link ? '</A>' : '' ). $events,
 %    'charge' => $cust_bill->charged,
 %  };
 %}
diff --git a/httemplate/view/logo.cgi b/httemplate/view/logo.cgi
new file mode 100644 (file)
index 0000000..aeca0f3
--- /dev/null
@@ -0,0 +1,47 @@
+<% $data %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $conf = new FS::Conf;
+
+my $type;
+if ( $cgi->param('type') eq 'png' ) {
+  $type = 'png';
+} elsif ( $cgi->param('type') eq 'eps' ) {
+  $type = 'eps';
+} else {
+  die "unknown logo type ". $cgi->param('type');
+}
+
+my $data;
+if ( $cgi->param('preview_session') =~ /^(\w+)$/ ) {
+
+  my $session = $1;
+  my $curuser = $FS::CurrentUser::CurrentUser;
+  $data = decode_base64( $curuser->option("logo_preview$session") );
+
+} elsif ( $cgi->param('name') =~ /^([^\.\/]*)$/ ) {
+
+  my $templatename = $1;
+  if ( $templatename && $conf->exists("logo_$templatename.$type") ) {
+    $templatename = "_$templatename";
+  } else {
+    $templatename = '';
+  }
+
+  if ( $type eq 'png' ) {
+    $data = $conf->config_binary("logo$templatename.png");
+  } elsif ( $type eq 'eps' ) {
+    #convert EPS to a png... punting on that for now
+  }
+
+} else {
+  die "neither a valid name nor a valid preview_session specified";
+}
+
+http_header('Content-Type' => 'image/png' );
+
+</%init>
+
index defbee9..bb3a6dd 100644 (file)
@@ -1,9 +1,3 @@
-<% include('elements/svc_Common.html',
-             'table'    => $table,
-            'edit_url' => $p."edit/svc_Common.html?svcdb=$table;svcnum=",
-            %opt,
-          )
-%>
 <%init>
 
 # false laziness w/edit/svc_Common.html
@@ -27,3 +21,9 @@ if ( UNIVERSAL::can("FS::$table", 'table_info') ) {
 }
 
 </%init>
+<% include('elements/svc_Common.html',
+             'table'    => $table,
+            'edit_url' => $p."edit/svc_Common.html?svcdb=$table;svcnum=",
+            %opt,
+          )
+%>
index 2dda484..85074d2 100755 (executable)
@@ -1,7 +1,5 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: cgi-test,v 1.3 2001-08-21 02:32:54 ivan Exp $
-#
 # This is the beginning of a test suite for the web interface.
 # It's also excellent for populating your database with some meaningful test
 # data.  (a derivative is used by the web demo)