Index: tags/2.7.0/CHANGELOG
===================================================================
--- tags/2.7.0/CHANGELOG	(nonexistent)
+++ tags/2.7.0/CHANGELOG	(revision 838)
@@ -0,0 +1,1042 @@
+Change Log
+===============================================================================
+Please note: This change log may not be accurate
+
+$Id$
+
+Legend:
++ = Added
+- = Removed
+# = Bugfix
+! = Update/Change
+
+------------------------------------- 2.7.0 -------------------------------------
+21-Apr-2008 Christian Sommer
+!	set version to 2.7
+#	fixed bug in the PL language file of the JS calendar
++	added some basic functions for module developers
+20-Apr-2008 Thomas Hornik
+#	fix: allow external urls for search-results
+17-Apr-2008 Thomas Hornik
+#	fixed jscalendar's language-files
+16-Apr-2008 Christian Sommer
+#	fixed possible clashes with intro page feature and WB core file /pages/index.php
+15-Apr-2008 Thomas Hornik
+!	revert back to pagename-creation from $page_menu, instead of $page_title
+15-Apr-2008 Christian Sommer
+#	fixed bug introduced with Changeset 826
+14-Apr-2008 Christian Sommer
++	added show_menu2() to pre-installed WB modules (many thanks to Brodie Thiesfield for this great menu function replacment)
+!	allowed tags for multi-lingual module descriptions
+14-Apr-2008 Thomas Hornik
+#	fixed issue with multigroups (level 0 page-creation)
+13-Apr-2008 Thomas Hornik
+!	ASP: off per default. CAPTCHA: removed unneeded $admin. Filename: just convert chars like quote, doublequote, < > & to empty string.
+#	fixed language-files
+10-Apr-2008 Christian Sommer
+!	fixed WB-Link Plugin to work with WB versions below 2.7 ($admin->page_is_visible() only available in WB 2.7)
+09-Apr-2008 Christian Sommer
+!	modified FCKEditor WB-Link Plugin to work also with WB versions below 2.7
+07-Apr-2008 Matthias Gallas
+#	fixed error in german laguage file
+07-Apr-2008 Christian Sommer
++	added the latest FCKEditor v2.60
+-	removed the outdated FCKEditor v2.51
+!	set version from 2.7 (RC3) to 2.7 (RC3a)
+07-Apr-2008 Thomas Hornik
+!	added missing group_id in INSERT-query
+!	removed PHP5 function stripos from installation script
+06-Apr-2008 Christian Sommer
+!	removed some obsolete language variables from news and form module (now defined in global WB language files)
+!	enlarged admin tool icon to match size 50x50px of the other icons
+05-Apr-2008 Matthias Gallas
+!	Moved language variables for edit module CSS from modules language files to core language files
++	Added norwegian translation (Thanks OEH)
+05-Apr-2008 Thomas Hornik
+!	some small fixes: group_id/groups_id-handling, safe_mode-query in install, better work-around for issue with phplib and code-module (removed {})
+#	fixed viewing_groups-handling in /admin/pages/add.php
+!	imported new russian translation from User shlack. Many Thanks
+05-Apr-2008 Christian Sommer
+!	added workaround for template parser class
+!	moved functions to edit module CSS files into the WB core to avoid duplication of code
+!	minor layout change
+!	allowed the character "-" to be used in database names
+04-Apr-2008 Thomas Hornik
+#	fixed: Language-redirect removed query-string from URL
+04-Apr-2008 Christian Sommer
+!	set WB version to 2.7 (RC3) for the next upcoming release candidate
+03-Apr-2008 Christian Sommer
+!	some code clean up in news/form module
+!	small adaption of the edit CSS function file css.functions.php
+!	updated edit module CSS functions to include backend.css into head if possible
+#	fixed bug in Javascript decryption routines of the Output-Filter module
+02-Apr-2008 Matthias Gallas
+#	fixed bug with registration of users are not added to signup group
+02-Apr-2008 Christian Sommer
+#	added handling of missing characters to mailto encryption routines
+!	some code clean-up in News module
+!	fixed some layout issues with Form module (combination with Output-filter)
+!	fixed layout issue with optional subject/body text of encrypted mailto links
+#	fixed bug in the mailto Javascript encryption code of the Output-Filter module
+01-Apr-2008 Christian Sommer
+!	removed typo in English language file
+!	added updated edit CSS functions to the News module
+!	added updated edit CSS functions to the Form module
+31-Mar-2008 Christian Sommer
+#	fixed bug in output filter (mailto links with HTML entities in optional part)
+29-Mar-2008 Christian Sommer
+!	added missing translation to Dutch language file (thanks Bramus)
+28-Mar-2008 Thomas Hornik
+!	Some cleanup in search.php
+!	WYSIWYG: changed field text to LONGTEXT, too.
+25-Mar-2008 Matthias Gallas
+!	Updated Dutch language file (Thanks to Bramus)
+26-Mar-2008 Tomas Hornik
+#	fixed E_NOTICE-message in admin/modules/details.php
+25-Mar-2008 Thomas Hornik
++	search: added search_time_limit in settings (mainly for sites with PHP < 4.3.3 and slow search)
++	search: added missing code to allow query of external data and to process the search data itself
+25-Mar-2008 Matthias Gallas
+#	Fixed missing <body> tag in Admin Interface (ticket #572)
+24-Mar-2008 Matthias Gallas
+!	Updated Danish Language file (Thanks to Achrist)
+! 	Added class nixhier to frontend.css from form and news Modul (required for ASP)
+24-Mar-2008 Thomas Hornik
++	Added RU-language-files, provided by user shlack; converted to entities.
+#	search: great speed-up with large pages - requires PHP >= 4.3.3; small speed-up for PHP < 4.3.3
+#	FCK-Editor: loads large pages faster
+-	removed include/captcha/asp.php. css have to be added to module's css-files.
+23-Mar-2008 Matthias Gallas
+! 	Updated form modul for valid output, removed all javascript (Big thanks to BerndJM)
+17-Mar-2008 Thomas Hornik
+#	fixed an issue with utf8_check() (too slow with many ~100KB pages)
+15-Mar-2008 Thomas Hornik
+#	menulink: link can be menulink or subpage of menulink, too
+#	call_captcha: added parameter 'style', fixed some issue with parameter 'image' and text-style captchas
+13-Mar-2008 Christian Sommer
+! 	adjusted error/warning templates to the updated backend layout
+13-Mar-2008 Matthias Gallas
+! 	replaced one icon in admin interface
+12-Mar-2008 Matthias Gallas
+# 	fixed loading time and some display issues in IE6 of the new admin interface
+!	tweaked the new admin interface a little bit
+12-Mar-2008 Christian Sommer
+! 	adjusted background color of installation and upgrade script
+! 	set version number to 2.7 (RC2) for the upcoming second release candidate
+! 	removed hardcoded /admin folder strings from WB core files where possible
+! 	added WB home folder fix proposed by the forum member spawnferkel (thanks)
+! 	defined <strong> and <em> instead of <b> and <i> as default tags
+12-Mar-2008 Thomas Hornik
++	CAPTCHA: added parameter to call_captcha (can be one of: 'image', 'input' or 'text')
+11-Mar-2008 Christian Sommer
+#	fixed issue with output filter (all .@ in descriptive mailto part: >xxxxx</a> were replaced; now restricted to emails)
+#	fixed issue with WYSIWYG pages (appears if backend language and page frontend language differs)
+08-Mar-2008 Thomas Hornik
+#	fixed issue with news and end-date
+04-Mar-2008 Christian Sommer
+#	fixed issue with smart view URL link
+03-Mar-2008 Thomas Hornik
+#	fixed an issue with text-captcha (default text got saved). Changes default text.
+#	fixed an issue with highlighting
+02-Mar-2008 Thomas Hornik
+#	added missing text in language-files
++	added missing sorting to language dropdown in admin/pages/settings.php
+01-Mar-2008 Thomas Hornik
+#	fixed ticket #562, applied changes from user tavitar with some own additions
++	added check for AddDefaultCharset to install
+29-Feb-2008 Thomas Hornik
+#	fixed issue in pagename generation if AddDefaultCharset is set (as work-around).
+28-Feb-2008 Thomas Hornik
+#	fixed hebrew transliteration-table. Thanks to forum-member iti.
+28-Feb-2008	Christian Sommer
+#	added bugfix from the forum member tavitar to fix an issue with multiple groups (module permission do not add up properly)
+25-Feb-2008	Matthias Gallas
++	added missing Dutch language files for core modules
+24-Feb-2008 Thomas Hornik
+#	issue with menulink in upgrade-script. Fixed.
+23-Feb-2008 Christian Sommer
+!	suppressed warnings in initialize.php if constant already defined; modified upgrade script to make FCK the new default editor
+#	fixed bug in upgrade script (WBMailer setting)
+22-Feb-2008 Christian Sommer
+#	some layout changes on the upgrade-script, fixed error in precheck
+#	restricted database name and table prefix to "a-zA-Z0-9_" (avoid problems with non quoted table/field names)
+20-Feb-2008 Thomas Hornik
+!	added workaround for language sorting-problem
+20-Feb-2008	Christian Sommer
+!	added WYSIWYG DB update and missing WBMAILER settings to upgrade script (added some status messages)
+!	modified upgrade script and suppressed headers already send message (avoid issues with error reporting E_ALL)
+#	added the FCKEditor module PHP connector fix found by the forum member Luisehahne (thanks man)
+!	Updated upgrade script (added WB2.7 basic styles, pre-checks and disclaimer)
+19-Feb-2008	Matthias Gallas
+!	Updated upgrade script
+!	Changed language sorting from directory to name (needs additional to be escaped!)
++	added new languages to install script
+#	fixed some issues and typos in languagefiles
+18-Feb-2008 Thomas Hornik
++	Converted and added some old language-files (BG, CS, PL, RU)
+18-Feb-2008	Christian Sommer
+#	Fixed two broken links
+!	Modified news module to create a default index.php during installation (directory spoofing)
+17-Feb-2008	Matthias Gallas
+-	Removed colloquially german language files as the filename causes issues
+17-Feb-2008	Christian Sommer
+!	removed German Umlauts in some language file (PHP comments)
+#	fixed language bug (backend language switched to the pages language viewed in frontend)
+16-Feb-2008	Thomas Hornik
+!	updated upgrade-script (menulink)
+13-Feb-2008 Thomas Hornik
++	allow externl links in menulink-module
+#	fixed an highlighting-issue: highlighting a page with more than one sections mangled umlauts in the second to last section.
+10-Feb-2008 Matthias Gallas
+#	fixed some errors in standard german language file
++	added new colloquially german language file
+10-Feb-2008 Thomas Hornik
+#	CAPTCHA: Wrong text for calc_ttf-captcha. 
+10-Feb-2008 Christian Sommer
+#	fixed E_NOTICE warning with already defined module frontend constants
+-	removed all stuff other than page_content from the blank template
+!	adapted color for onmouseover effect
+!	added disclaimer to the upgrade-script as the script is not sufficiently tested yet
+!	made Website Header field in Settings visible per default
+!	modified all templates (display Website Header, use show_menu instead of page_menu)
+!	added highlighting of active input elements to all WB backend areas; changed some colors
+!	removed hover highlighting of input fields to avoid possible confusion
+!	added visualization of wrong/empty input fields
+#	fixed a bug with re-enter admin password
+09-Feb-2008 Christian Sommer
+!	modified some colors and CSS definitions of pages, media and section interface
+#	output_filter: fixed bug in regular expression (eats up characters in mailto links)
+#	output_filter: removed word boundary from mailto regex part
+#	fixed bug in menu_link module (IE 7 did not show the select boxes at all)
+#	fixed bug in user signup
+!	output_filter: added word boundary for the mailto regex part
+09-Feb-2008 Thomas Hornwik
+!	jsadmin: added latest changes from swen, fixes most (or all?) issues.
+08-Feb-2008 Matthias Gallas
++	added kewyword id to all new files
+08-Feb-2008 Christian Sommer
+-	Removed admin module mail_filter
++	Added revised version of the output filter module
+08-Feb-2008 Thomas Hornik
+!	module news: set focus on captcha-field if user have to re-enter captcha
+!	Changed maxlength of captcha-fields - don't tell the bots how many chars we want to have.
+-	Removed unused function is_access_denied() from search
+04-Feb-2008 Thomas Hornik
+!	email-addresses are excluded from search-results page.
+#	Fixed possible XSS in account/login.php and forgot-form.php
+04-Feb-2008 Christian Sommer
+#	allowed usage of tags in settings fields: website_header, website_footer
+03-Feb-2008 Thomas Hornik
+#	out-of-date default page isn't shown anymore, instead shows next public page.
+#	fck_wbmodules.php: foreign privates pages in dropdown, fixed.
+03-Feb-2008 Matthias Gallas
++	added kewyword id to all new files
+02-Feb-2008 Christian Sommer
+#	fixed wrong redirect in /admin/images
+02-Feb-2008 Thomas Hornik
+!	search shows email-addresses, even if email-filter is activated (on page with highlighting). Fixed.
++	Added missing text in languages files for jscalendar
+!	settings: pages-directory '/' will be converted to '' (empty string) on save.
+!	changed last remaining call to my_htmlspecialchars() to htmlspecialchars()
+#	fixed path in jscalendar-css
+01-Feb-2008 Christian Sommer
+#	Added default index.php to all folders (directory spoofing)
+01-Feb-2008 Thomas Hornik
+#	Added some missing add_slashes(), get_post_escaped(), and strip_tags() for $_POST, $_GET and $_REQUEST-data. Also for $_SERVER['PHP_SELF'].
+#	Fixed possible XSS-vulnerability in wb/search/search.php
+31-Jan-2008 Thomas Hornik
+!	Adjusted clock-red icon to match wb colors
+#	admin/pages: the parent dropdown-list in index.php and settings.php showed foreign private pages, too. Fixed.
++	Added multi-group to upgrade-script
+30-Jan-2008 Christian Sommer
+#	fixed bug with text Captcha (input was restricted to 10 chars.) and a small layout issue
+30-Jan-2008 Thomas Hornik
+#	registered pages didn't appear in menu. fixed.
+!	Updated upgrade-script. (Some upgrades still missing)
+29-Jan-2008 Thomas Hornik
+#	strtotime()'s behavior differ in PHP4 and PHP5.
+	Had to fix some issues in admin/pages/sections and module news.
+#	Security bugfix: Text file for text-captcha was world-readable. Moved to database.
+#	Text-captcha: empty line in text file, following a question, was accepted as answer. Fixed.
+28-Jan-2008 Matthias Gallas
+#	Replaced all special chars in language files with htmlentities or unicode
++	Added some missing lines in language files
++	Added missing keyword Id
+28-Jan-2008 Christian Sommer
+#	fixed issue with top bar icon alt tag
+!	added some more backend layout modifications
+!	corrected bug in NL.php language file
+!	added missing session cookie forgotten in Changeset 593
+!	added possibility to select the default backend language during installation process
+!	Re-introduced Changeset 593 (filename in pages/ from page_title instead of menu_title)
+#	Fixed some bugs in the Javascript Admin modul
+28-Jan-2008 Thomas Hornik
++	Allow a user-supplied From-Name in form-settings for email und success-email.
+!	changeset 627: menu_link and search/search.php needs some minor changes, too.
++	Added Text-CAPTCHA on request. The captcha-text will be stored in temp/.captcha_text.txt
+27-Jan-2008 Christian Sommer
+!	fixed CSS background color of the installer CSS
+!	replaced static text with variable text from language file
+!	introduced the WB 2.7 backend style developed by Michael Brinsteiner (escpro), thanks man
+!	added missing ID tags
+27-Jan-2008 Christian Sommer
+!	added missing ID tags
+!	added default language for users to avoid empty language fields
+27-Jan-2008 Matthias Gallas
++	added kewyword id to new file
+#	Fixed some spelling errors in german language file
+27-Jan-2008 Thomas Hornik
+!	Module form: user supplied input isn't lost on captcha-failure anymore.
+#	fixed 100%-cpu-load-event in CAPTCHA admin-tool.
++	Added Calc_ttf_image CAPTCHA.
+!	Changed captcha/captcha.php to use table-layout for CAPTCHA.
+!	Some minor changes in CAPTCHA-code.
+!	Added some text to CAPTCHA admin-tool.
+#	Module form: dropdown "success page" listed foreign private pages, too. Fixed.
++	Added preview-images for CAPTCHA.
+!	Improved security: CAPTCHAS can't be loaded from outside WB
+!	CAPTCHA ttf_image: added variant. Adjusted character-pool and one background for better readability.
+26-Jan-2008 Christian Sommer
+!	changed WYSIWYG content field from text to longtext (allows more than 65'534 characters) 
++	Added Javascript Admin module (developed by Stepan Riha, adapted for WB2.7 by Swen Uth)
+26-Jan-2008 Matthias Gallas
+#	fixed bug in Javascript Admin module
++	Added new language files
++	Added keywords to files where they are missing
+26-Jan-2008 Thomas Hornik
+!	fixed some issues with CAPTCHA and ASP. Adjusted baseline of '*' in supplyed fonts to meet
+	baseline of numbers. Added counter to ttf_image generation-loop. Removed now unneeded GD-lib verification.
+	Improved ASP in news-module.
++	module news: added publish_until field to control the visibility of a news-posting by date and time
+!	added strongly "condensed" fonts with many intersections for ttf-CAPTCHA as default fonts.
+	It should be very difficult for spam-bots to recognize intersected characters.
+25-Jan-2008 Christian Sommer
+!	removed changes introduced with changeset 593 (we need to think off if we want to implement that feature)
+25-Jan-2008 Thomas Hornik
++	Added new CAPTCHA. Adapted core: signup and modules: news and form.
++	Added Advanced Spam Protection (ASP) to core: signup and modules news and form.
+#	module news: it was possible to post comments to postings with commenting disabled
+	or to inactive postings. Fixed
+24-Jan-2008 Thomas Hornik
+!	Generate filename in pages/ from page_title instead of menu_title.
+24-Jan-2008 Christian Sommer
+#	fixed bug in Codepress integration (if codepress framework not installed)
++	added language support to all integrated modules (except for news and form module)
+#	fixed another E_NOTICE warning
+24-Jan-2008 Matthias Gallas
++	Added keywords to files where they are missing
+23-Jan-2008 Christian Sommer
++	Added German language file for WB 2.7
+22-Jan-2008 Christian Sommer
++	Added language support for the Admin tools (backup, reload, mail_filter)
+-	Removed all admin tool text outputs from global language file to module language files
+!	Introduced language support for the overview page of the Admin tools
++	Added function get_variable_content to allow extraction of variable content without including files
+!	Changed language support for Addons -> Moduls -> Details
+22-Jan-2008 Matthias Gallas
++	Added keywords to new mail filter files
+22-Jan-2008 Thomas Hornik
++	manage-sections: changed calendar-icon to clock-icon, added second icon to empty date-field.
+21-Jan-2008 Christian Sommer
+!	Removed the manage section icon from the page admin (sections managed by publish by date function) 
+#	Fixed bug with the edit module CSS file implementation (IE7, Opera)
+21-Jan-2008 Thomas Hornik
++	Unique session-identifier for each website baker installation. fixes #354
+20-Jan-2008 Christian Sommer
+#	fixed E_NOTICE-warning in save.php when input data was wrong
++	added the new admin tool email output filter which allows to transform
+	emails before displaying them on the frontend
+20-Jan-2008 Thomas Hornik
+!	upgrade-script.php: fixed mysql_error() handling
+!	upgrade-script.php: added code to update menu_links
+#	fixed a typo in upgrade-script.php
+!	updated admin/pages/sections.php to changed jscalendar-api from changeset 571
+!	module menu_link: after adding a menu_link, the anchor dropdown shows "#"; fixed 
+#	fixed E_NOTICE-warning in news-module (about SECTION_ID in comment.php)
+19-Jan-2008 Christian Sommer
+!	Reduced the success time out and set WYSIWSY background to white
+#	Fixed some errors in form module (only in conjunction with E_ALL)
+!	Added support to configure the mailer settings via the backend
+19-Jan-2008 Matthias Gallas
+#	Fixed bug in news modul with missing variable PAGE_DIRECTORY
++	Added keywords to new files
+19-Jan-2008 Thomas Hornik
+-	Module news: removed old calendar
++	Module news: adapted news to use the new include/jscalendar
++	added installation-instructions to include/jscalendar
+#	Module code: curly backets get deleted by pparse() from phplib. fixed
++	Module menu_link: added dropdown-listbox to select anchor
+!	upgrade-script: added code to convert old menu_links to new ones (partly)
+18-Jan-2008 Matthias Gallas
+!	Updated news modul with features from the advanced news modul
+!	Updated form modul with features from the advanced form modul
+#	Fixed hardcoded /pages issue in intro page feature
++	Added example .htaccess to parse .html files, fixed bug in changeset 555
+!	Revoked parts of changeset 547 and again introduced changeset 540
++	Added keywords to modules/fckeditor and all other new files
+18-Jan-2008 Thomas Hornik
+#	fixed two E_NOTICE-warnings in admin/pages/index.php
++	added new module-based search-function
++	added new publish-by-date code
+17-Jan-2008 Christian Sommer
+#	fixed bug in frontend login and multiple groups (only in conjunction with E_ALL)
+!	removed the PAGE_EXTENSION from frontend login
+17-Jan-2008 Matthias Gallas
+#	Reintroduced changes from changeset 520 and 540 wich where overwritten 
+	by changeset 546
+#	Revoked changeset 541 end removed all PAGE_EXTENSION variables and the related
+	option in WB settings as this function only works on Apache Servers
+	together with .htaccess and mod_rewrite
++	Added keywords to file menu_link/uninstall.php and new admintools files
+17-Jan-2008 Christian Sommer
+!	added the "users in multiple groups" feature (closes parts of ticket #546)
+16-Jan-2008 Thomas Hornik
+!	changed admin/pages/save.php to allow hidden config-elements in table search.
+!	changed module menu_link: added table mod_menu_link, fixed page-deleting-bug,
+	fixed odd behavior in case of menu_link as default-page.
+#	changing PHP-error-level within website baker does not work - fixed (fixed ticket 532)
+14-Jan-2008 Matthias Gallas
+#	Replaced hardcoded .php with the variable PAGE_EXTENSION for the use in pagenames.
+	(!!Attention!! To get extenions other than .php working additional fixes are necessary!)
+#	Replaced the variable PAGE_EXTENSION with hardcoded .php on all places where the
+	pathes points to WB Corefiles with the page extension .php
+#	Replaced hardcoded text in login.php with language variables (fixes ticket 386)
+14-Jan-2008 Christian Sommer
+!	added a missing </tr> tag
+#	re-introduced bugfix of Changeset 472 (fixes ticket 402) accidentally 
+	removed by Changeset 529 (enhanced pages admin)
+13-Jan-2008 Christian Sommer
+#	moved administration tools from Settings to the new section Admin-Tools
+#	this bugfix closes the ticket 529 (WB upgrades modules with identical version)	
+!	increased redirection time after success message, corrected HOME link of the login panel
+!	updated PHPMailer framework to version 2.0.0 (/include/phpmailer)
+#	this bugfix closes ticket 412 (direct call of admin/settings/save.php clears database)
+#	fixed error with redirection to admin panel after installation
+12-Jan-2008 Christian Sommer
+!	introduced smart URL detection for the 'View' menu in the WB backend
+	(if page_id is set, redirect to this page instead of the root)
+!	introduced the enhanced pages admin dialogue (thanks to icouto)
+11-Jan-2008 Christian Sommer
++	added the FCKEditor module files missing in Changeset 527 (/modules/fckeditor)
+-	removed the hmtlarea files in /modules/htmlarea
+!	set the fckeditor as the new default editor /install/save.php
+!	Updated function: register_frontend_modfiles in /framework/frontend.functions.php
+	(added constants MOD_FRONTEND_CSS_REGISTERED, MOD_FRONTEND_JAVASCRIPT_REGISTERED)
+11-Jan-2008 Matthias Gallas
+!	Update codepress to Version 0.9.6
+!	Update phplib to Version 7.4a
+09-Jan-2008 Matthias Gallas
+!	Upgrade pclzip to the newer more php5 complaint version 2.6, see ticket #526
+#	Fixed ticket #542 (Thanks to Thorn)
+23-Dec-2007 Matthias Gallas
+!	Changed all copyright notices to include now 2008
+21-Sep-2007 Matthias Gallas
+#	Fixed a typo in /framework/frontend.functions.php cause that websites using
+	the new register_frontend_modifles() functions do not validate
+24-Jan-2007 Christian Sommer
+!	Replaced some core files to allow configuration of wbmailer via admin settings panel
+------------------------------------- 2.6.7 -------------------------------------
+02-Jan-2007 Christian Sommer
++	Added missing converting file for changeset [504]
+------------------------------------- 2.6.6 -------------------------------------
+01-Jul-2007 Matthias Gallas
+#	Fixed converting issue with some ISO-charsets and speeded up converting on large pages (thanks to Thorn)
+01-Jul-2007 Ryan Djurovich
+#	Fixed bug where error message not displayed when script fails to create a page
+#	Fixed bugs introduced in [484]
+14-May-2007 Matthias Gallas
++	Added support for ISO-8859-6.(Thanks to thorn)
+12-May-2007 Christian Sommer
++	Replaced functions page_css and page_javascript by register_frontend_modfiles
++	Added function register_backend_modfiles to allow backend modules to use optional CSS and JS files
++	Added the JS framework codepress to allow syntax highlighting for JS, HTML, PHP code (textarea)
++	Added the new function register_frontend_modfiles to the built in templates
+08-May-2007 Matthias Gallas
++	Added wrapper to functions.php if mb_string is not available (Thanks to thorn)
++	Added new functions page_css and page_javascript to the built in templates
++	Added search highlight class to css files of the built in templates
+30-Apr-2007 Matthias Gallas
+#	Fixed ticket #392; root_parent not being set correctly (Thanks to eggsurplus)
+10-Apr-2007 Matthias Gallas
++	Optimized search and highlighting funktions (Thanks to thorn)
+03-Apr-2007 Matthias Gallas
+#	Fixed a bug in menulink; if you deleted a menulink page the linked page was also deleted
+	in the pages directory (Special thanks to "Funky_MF" for the fix)
+01-Apr-2007 Matthias Gallas
+#	Fixed issues with some languages when UTF8 is used. Removed all htmlentites
+	from the code (revoked changeset 396) and added new functions instead. Adapted the
+	search and the highlighting to use the new functions. With this changes WB can now
+	be used with charset UTF8 for all languages. Very special thanks to Thorn who wrote
+	and tested this changes.
+12-Mar-2007 Matthias Gallas
++	Added multilingual support to search
+03-Mar-2007 Matthias Gallas
++	Added new function for highlighting search results in the content area
+	(Special thanks to "thorn" and "Funky_MF")
+#	Fixed some issues in search with special chars
+	(Special thanks to "thorn" and "Funky_MF")
+22-Feb-2007 Christian Sommer
+#	Fixed bug in changeset 428 (page files were not deleted in /pages folder due to a typo in wb/framework/function.php)
+16-Feb-2007 Christian Sommer
+!	Suppressed PHP warnings and errors when reading empty intro.php
+16-Feb-2007 Christian Sommer
+#	Applied fix to enable parsing of PHP code in the intro.php 
+12-Feb-2007 Christian Sommer
+!	Added functions page_css and page_javascript which allow to include optional
+	module files module.css and module.js into the <head> section. This allows to 
+	create valid (X)HTML, as CSS definitions of modules are included in the head section
+12-Feb-2007 Christian Sommer
+!	Security enhancement (reduced number of login trials from 50 to 3)
+02-Feb-2007 Matthias Gallas
+#	Applied fix for ticket #380 (Thanks to pcwacht)
+30-Jan-2007 Ryan Djurovich
+#	Applied fix for ticket #376
+29-Jan-2007 Matthias Gallas
++	Added new variable $MODULE_DESCRIPTION wich allows to have optional a language
+	specific description of the modules in the language files of the modules.
+21-Jan-2007 Matthias Gallas
+#	Fixed issue in the search table entries of form modul
+13-Jan-2007 Matthias Gallas
+#	Fixed some bugs in rss.php
+07-Jan-2007 Matthias Gallas
+#	Fixed error when uninstalling the news modul
+02-Jan-2007 Matthias Gallas
++   Added id keywords to all missing files
+#	Fixed issue with Permissions for pages sections
+27-Dec-2006 Matthias Gallas
+#	Fixed form modul stores empty records
+------------------------------------- 2.6.5 -------------------------------------
+25-Dec-2006 Ryan Djurovich
+!	Changed links to WB help website
+24-Dec-2006 Matthias Gallas
+#	Fixed some minor javascript errors in admin (thanks to pcwacht)
+#	Fixed root_parent doesn't get updated when moving item in menu (#305)
+!	Changed all copyright notices to include now 2007
+23-Dec-2006 Matthias Gallas
+#	Fixed IE allows to set a page as parent of itself (#320)
+#	Fixed problem with Page Title has to be escaped (#287)
+#	Fixed the possibility to call the index.php of the templates directly in the browser (#291)
+21-Dec-2006 Matthias Gallas
+#	Fixed missing message when adding a site without page title (#300)
+21-Dec-2006 Ryan Djurovich
+#	Fixed bug with captcha script (#346)
+20-Dec-2006 Matthias Gallas
+#	Fixed Return to Search Results Page (#365)
+!	Set Version to 2.6.5
+-	Removed Changeset 365 because this will be a part of WB 2.7.x
+#	Fixed a little typo error in class.admin.php (#364)
+26-Nov-2006 Ryan Djurovich
++	Added new script that could possibly be apart of 2.7.x as a replacement
+	for having the pages directory 
+17-Nov-2006 Matthias Gallas
+#	Fixed fatal error in line 46 news/comment.php (thanks to eki)(#358)
+15-Nov-2006 Matthias Gallas
+#	Fixed again intropage doesn't work (#71)
+20-Oct-2006 Matthias Gallas
++	Added phpmailer class (thanks to doc)
++	Added Remember-expanded-pages-in-admin (thanks to ephraimt)
++	Added List sorting in admin area (thanks to rsmith)
+#	Fixed table width 100% are wrong displayed in container templates
+	when IE is used (#350)
+#	Fixed large space between menupoints in IE (#349)
+#	Fixed Website description is not displayed when no page description
+	available (#348)
+#	Fixed group images in news modul cannot be stored (#342)
+#	Fixed Typo in form/save_field.php (#341)
+#	Fixed files in /pages/posts folder are not deleted (#340)
+#	Fixed specialchars problem in the news modul (#339)
+#	Fixed news modul stores empty records (#338)
+#	Fixed Captcha didn't work in news comments (#337)
+#	Fixed various php notices (#334)
++	Added new upgrade_function (thanks to kozmoz)
+#	Fixed addons table isn't updated when a modul is updated (#332)
+#	Fixed spelling errors in the signup2.php (#330)
+#	Fixed MySQL 5.x missing default values for INT fields in all system
+	and modules tables (#329)
+#	Fixed installer does not insert admin user (#328)
++	Added support for getting page ID of page that referred search
+	request (#327) (thanks to brofield)
+#	Fixed search results generate invalid XHTML and notify warnings (#326)
+Stefan Braunewell
+#	Fixed Field 'last_reset' doesn't have a default value (#313)
++	Added get_post_escaped to wb class which automatically calls add_slashes
+	on get_post output and used it in form/save_field.php
+------------------------------------- 2.6.4 -------------------------------------
+20-May-2006 Ryan Djurovich
+#	Fixed security issues related to #237
+#	Fixed typo in news save comment page (#282)
+#	Fixed typo in news delete post page (#283)
+!	Added multi-submission protection to form module (#119)
+#	Added notice for when PHP Session Support appears to be disabled in installer,
+	even if it is enabled and the problem actually lies in the users browser (#154)
+19-May-2006 Ryan Djurovich
+#	Fixed problem in forgotten login form where email field is too short (#207)
+#	Fixed typo in forgotten login details email (#190)
+15-May-2006 Stefan Braunewell
+#	Fixed security issues (#237)
+03-May-2006 Stefan Braunewell
+#	Fixed problems with pre-2.6.0 modules in section list
+#	Fixed e-mail bug caused by From: headers in internal mail function calls
+	(#189)
+#	E-mail validation in install script now accepts new top-level domains
+	(#162)
+#	Error status is now overwritten by next database query (#182)
+#	Fixed obscure problem in htmlarea install script
+------------------------------------- 2.6.3 -------------------------------------
+19-Mar-2006 Stefan Braunewell
+#	Fixed ticket #146: problems removing groups from viewers list of a page
+16-Mar-2006 Stefan Braunewell
+!	Changed link target selection. Now self, top and new. (Ticket #145)
+#	Fixed ticket #143. Charset setting is now used in admin login and forgot
+	password pages.
+#	Some changes to the SQL code in the install script for improved 
+	compatibility with new MySQL versions
+#	Fixed ticket #134 - error on browsing media.
++	Improved backup module: new choice between full database or WB-related
+	backup.
+#	Fixed ticket #141 - admin now sees all folders in media
+#	Fixed e-mail sending problems due to additional parameter in mail call.
+#	Applied fix regarding ticket #138: new users now get deleted if
+	sending e-mail fails.
+#	Fixed ticket #137: Last Reset timer not reset in frontend forgotten 
+	password process
+#	Removed duplicate expression from modules/news/install.php which caused
+	problems in installation
+
+01-Mar-2006 Stefan Braunewell
+#	Fixed ticket #68 - Safari problem with displaying all parents.
+#	Fixed ticket #136 - mailing forgotten password in admin login screen leads 
+	to fatal error.
+!	Renamed tag [PROCESSTIME] to [PROCESS_TIME]
+------------------------------------- 2.6.2 -------------------------------------
+03-Feb-2006 Stefan Braunewell (very big special thanks to John and Alex)
+#	Fixed ticket #104 - commas in form field descriptions not allowed.
+#	Cookie REMEMBER_KEY wasn't cleared in account/logout 
+	and expiration date is now set to time in the past.
+#	Smart login not working.
+!	Changed mail calls to new function $wb->mail.
+#	Form: ticket 124 added captcha settings check 
+#	Ticket 118 added formfield type to check for email/text 
+#	Ticket 115 changed comparision /modules/form/view.php 
+#	Added correct timecheck in form submissions
+!	Changed captcha.php call to include timestamp
+!	Changed the e-mail validation code and added a mail function to class wb.
+!	Forgotten password: if sending of e-mail fails, restore old password.
+	Ticket #110
+!	Added more charset options. Ticket #102 - thanks to ruebenwurzel!
+!	Character encoding setting also affects admin backend.
+	Mentioned in ticket #102.
+!	Reintroduced page languages setting. If switched to off, page
+	languages are only used to determine the language file for the
+	universal texts. If on, displayed page and menu are affected by
+	the language session variable.
+#	Fixed bugs in show_breadcrumbs code and added parameter "depth"
+	to set the number of levels to be show.
+#	Fixed a bug where access settings of registered and private pages
+	were displayed incorrectly.
+#	Fixed captcha being cached.
+#	Added an exit call after every heading("Location:...")
+	redirector to prevent unwanted execution of code.
+#	Bug #122. Replaced empty field check by check that setting name is
+	not "wb_version".
+#	Replaced all remaining occurrences of '/media' by MEDIA_DIRECTORY - bug #108.
+#	Fixed bug #99 and two additional instances of typo 
+	catpcha instead of captcha.
+#	Fixed some typos
+#	Fixed some notices and warnings.
+#	Fixed bug #105 - back buttons in addon detail pages not editable.
+!	Replace 'admin' by 'wb' in all account pages. 
+!/#	Moved print_success and print_error code to class.wb.php.
+	Added correct parameters to these functions in account pages. 
+------------------------------------- 2.6.1 -------------------------------------
+12-Dec-2005 Ryan Djurovich
+#	Fixed security vulnerability in class.login.php
+#	Fixed typo in EN language file
+#	Fixed captcha problems (when feature is disabled) in form module and sign-up
+!	Added charset encoding to admin templates
+!	Added extra code to check for selection of addon upon uninstalling
+#	Fixed bugs in RSS news feeder
+#	Fixed bug with PAGE_DESCRIPTION not being set on any page
+------------------------------------- 2.6.0 -------------------------------------
+28-Nov-2005 Ryan Djurovich
++	Added default charset option to (advanced) settings
+#	Form module email fields now have email address validation
+#	Fixed spacing in form submissions
+27-Nov-2005 Ryan Djurovich
++	Added captcha verification to sign-up form
++	Added Captcha to News module
+24-Nov-2005 Stefan Braunewell
+!	Applied aportale's patch to use label instead of javascript toggle code
+20-Nov-2005 Ryan Djurovich
+!	News mod now hides read more link if no need for it (see ticket #56)
++	Added support for mailto: links in the menu link mod
+#	Added direct-access redirection on some files (see ticket #37)
++	Added extra characters to convert.php (see ticket #64)
+#	Fixed ticket #65 (last_reset check in account/forgot_form.php)
+29-Sep-2005 Ryan Djurovich
+!	Cleaned up form buttons in Settings
+!	Moved some options into Advanced Settings
+#	Semi-disabled "separate" page trash option
++	Created a backup module/tool for backing-up the database
+	(thanks to John (pcwacht) for the original code)
++	Created new "blank template", which can be used in case where you don't
+	want anything wrapping page-content.
+19-Sep-2005 Ryan Djurovich
++	Added _license field for all add-ons to specify a license
+!	Renamed _designed_for variables (for all addons) to _platform
++	Created addons table for faster internal referencing of installed addons
+!	Fixed some links, including the "Help" button in Admin
+#	Used nl2br to display body correctly when viewing form-submissions
+15-Sep-2005 Stefan Braunewell
++	Added table module with columns 'name','type' and 'directory' as an
+	index.
++	Added entry to settings table 'wb_version' which holds the version
+	number and can be utilized in future upgrade scripts.
+!	Added upgrade functionality also for templates and languages.
+#/!	Template/modules installation now respects paths.
+!	Moved updates from config.php to database.
+	Created initialize.php (required by config.php) to read settings.
+11-Sep-2005 Stefan Braunewell
+!	HTMLArea is now a module instead of a core component. Files moved
+	from "include" to "modules".
++	Implemented Installation of modules on top of an older version. This is 
+	done via checking $module_version. Instead of install.php, upgrade.php
+	is then called if it exists in the module package. 
+	For module developers: $module_version and $new_module_version are 
+	accessible in upgrade.php to find out what upgrade steps need to be taken.
+!	Changed column names in mod_news_posts from short,long to content_short,
+	content_long.
+09-Sep-2005 Stefan Braunewell
++	Added new advanced setting "Rename Files On Upload". File extensions can be
+	given so that respective files will have a ".txt" appended on media upload.
+#	Fixed "None found" message bug when user has no top level page edit
+	rights.
+#	Fixed missing parent option 'none' - ticket #12 - and a minor scope bug.
++	Added breadcrumbs code. Call using $wb->breadcrumbs().
++	Added utf-8 character encoding meta tag into all stock templates.
+#	Fixed bug when changing a page's parent
+!	Changed the way blocks are treated. Added new frontend class attribute
+	default_block_content that controls what is shown on pages such as
+	search, login, etc. (Ticket #16)
++	Added support for WYSIWYG editor modules (wysiwygmod)
++	When trying to access a registered page, user is automatically redirected
+	there on successful login.
+#	Fixed various issues with system search (mainly related to stripslashes()
+#	Removed stripslashes() in many places in the code. Added check for
+	magic_quotes_gpc to new wb class method add_slashes(). Now database contest
+	is independent of magic_quotes setting..
+05-Sep-2005 Stefan Braunewell
+#	Fixed bug concerning direct access of preferences page.
+#	Reworked page visibility and menu item visibility code (frontend login
+	problem).
+#	Pages in link list in htmlarea popup are now correctly ordered.
+#	Fixed bug where group with existing name can be added.
+04-Sep-2005 Ryan Djurovich
++	Added and RSS newsfeed script to the News module
+04-Sep-2005 Stefan Braunewell
+!	Rewrote menu function. Parameters are now given as attributes to frontend class.
+#	Fixed some occurrences of potential direct access path disclosure
+#	Added directory check to browse.php to prevent xss exploit by trusted users.
+!	Updated code to reflect move to Subversion repository system.
+27-Aug-2005 Stefan Braunewell
+#	Fixed bugs 4,5,6,8,9 in bug tracker
+!	Removed 'USER_LANGUAGE' and 'GET_LANGUAGE' constants.
+	A GET['lang'] now sets the session language variable.
+26-Aug-2005 Stefan Braunewell
+!	Moved redundant code into the new class functions. Created 
+	'compatibility.php' for backward compatibility with
+	modules and templates. Variables and functions can still be accessed
+	in the old way.
+!/+	Reorganized core frontend files, added new base class 'wb' from
+	which 'admin' and the new 'frontend' class inherit. Moved all frontend
+	function into new class. Completely rewrote core index.php.
+	Now all variables and functions that are available to templates and
+	modules are attributes and methods of the frontend and the wb classes
+------------------------------------- 2.5.2 -------------------------------------
+23-Jun-2005 Ryan Djurovich
+!	create_access_file now creates all parent directories if needed
+#	Fixed bug when moving page with subpages to another level
+#	Fixed bug when saving "Settings" (in Admin) on Windows/IIS
+#	Fixed bug where query was not setting error correctly in class.database.php
+22-Jun-2005 Ryan Djurovich
+#	Fixed bug where template permissions were not saved when a adding group
+21-Jun-2005 Ryan Djurovich
+#	Added htmlspecialchars for modifying WYSIWYG, news, etc. modules (Bug #78)
+#	Fixed language problems in some area's of Admin. (Bug #70)
+#	Added a space in website/page keywords (Bug #69)
+#	Fixed bugs on settings2.php (Bug #52)
+!	Links inserted with HTMLArea now use [wblink--PAGE_ID--] instead of raw URL
+13-Jun-2005 Ryan Djurovich
+#	Fixed bug (#88) with news module
+!	Title of Administration login page now taken from language file (Bug #72)
+#	Fixed redirection admin/home to admin/start on admin/index.php
+#	Fixed bug with forgotten password page in admin (Bug #81)
+25-Apr-2005 Ryan Djurovich
+#	Fixed numerous bugs with module uninstallation
+#	Fixed bug when uploading files in Administration -> Media
+!	Installer no-longer requires you to accept the GNU GPL
+------------------------------------- 2.5.1 -------------------------------------
+16-Apr-2005 Ryan Djurovich
+#	Fixed two bugs with account login/logout
+------------------------------------- 2.5.1 -------------------------------------
+15-Apr-2005 Ryan Djurovich
+#	Fixed bug where non-english characters can get used in page filenames. Many
+	measuers have been added (including a new file: wb/framework/convert.php),
+	to prevent any possible errors that can occur in page filenames.
+#	Fixed invalid meta tags in stock templates (meta tags were not closed)
+#	Removed lines 401, 402, and 425 of wb/index.php - not needed
+#	Fixed bug where search and account pages are shown in every block
+	that is in a template
+#	Fixed numerous bugs with media home directories feature
+10-Apr-2005 Ryan Djurovich
+#	Fixed bugs in account/login.php and logout.php where users
+	gets redirected to /pages
+------------------------------------- 2.5.0 -------------------------------------
+08-Apr-2005 Ryan Djurovich
+-	Removed section language feature
++	Added page language feature (replaces need for sections language feature)
+#	Fixed bug where pages using menu_link module can have the URL changed
+-	Page directory no longer stored in link field in pages table, it is now added
+	when the page_link function is called - this makes changing the pages
+	directory much easier and quicker
+!	Pages with visibility of "none" are now no longer directly accessable
++	Added new visibility setting "hidden", acts exactly like none did previously
+!	Template info file can now specify number of menu's available and relative names
+!	Template info file can now specify number of blocks's available and relative names
+------------------------------------- 2.4.3 -------------------------------------
+07-Apr-2005 Ryan Djurovich
+#	page_filename function has been rewritten using str_replace
+	function, which should be faster and will allow characters
+	from other languages into filenames
+!	Created new media_filename function, which is now used
+	by all media functions (create,upload,rename) to determine
+	which characters should be removed from a desired filename
++	New button in Administration page list to view specific page
+#	Updated the page_link function to now be compatible with menu link
+	module when setting pages directory to root
+#	Fixed bugs in search when using "Any Words" option
+#	Fixed bug with news module when pages directory set to root
+!	Changed URL of documentation website on Administration Start page
+------------------------------------- 2.4.2 -------------------------------------
+05-Apr-2005 Ryan Djurovich
+#	Fixed bug where file could be renamed to nothing in Media
+!	Optimised Media create folder, upload file, and rename functions
+#	Fixed bug where stripslashes not run on news post titles in admin
+05-Apr-2005 Stefan Braunewell
+#	Fixed bug concerning usage of the private_sql variable
+#	Fixed bug conerning sub-pages being displayed in menus incorrectly
+------------------------------------- 2.4.1 -------------------------------------
+04-Apr-2005 Ryan Djurovich
+!	Pages with visibility of "none" are again directly accessable
+#	Fixed bugs regarding renaming files and directories in Media section
+!	When home folders disabled, all folders now visible in Media section
+------------------------------------- 2.4.0 -------------------------------------
+03-Apr-2005 Ryan Djurovich
+-	Removed recently added visibility setting of "heading", and relative config vars
++	Added new "menu" field to pages table, and new setting "multiple menus"
+	which replaces the need for the menu headings feature
++	Added links to top of groups and users sections, linking to each other
+!	Change menu width in "Round" template to 170px (was 150px)
+#	Change page "are you sure" deletion message to mention that it will delete
+	all sub-pages as well
+#	Fixed many bugs with news module when viewing posts by group
+!	Pages with visibility of "none" are now no longer directly accessable
+02-Apr-2005 Ryan Djurovich
+-	Removed need to specify DB_URL when calling database class
+#	Stopped fields without a type specified from being shown in form mod
+#	Changed '/media' to MEDIA_DIRECTORY on HTMLArea popup windows
+	for insert link and insert image
++	Added setting which allows you to specify the default WYSIWYG style
++	Added "Server Email" option, to specify what is used in "From" field when
+	sending emails using the PHP mail function. Default is admins email address.
+#	Search now excludes pages which have a visibility of none or heading
+!	Pages are now given modified_when and modified_by when added
+01-Apr-2005 Ryan Djurovich
++	Added option to News module to specify how many posts should be listed
+	per page (by default it is set to unlimited, which functions like previous version)
+#	Added stripslashes when display page titles in search
++	Page descriptions and last updated date now shown in search by default
+30-Mar-2005 Ryan Djurovich
++	Added new feature for Media home folders, where a folder can be specified
+	for a specific user or group of users only
+!	Changed URL of Help button to http://www.websitebaker.org/docs/
++	Added new feature for "Page Trash" - two modes available: inline and separate
+!	When pages are deleted, all sub-pages are now deleted (instead of being moved
+	up a level)
+29-Mar-2005 Ryan Djurovich
+-	Removed Database Settings from Administration Settings (options will not be
+	available in 3.x, so trying to match interface with WB 3.x plans
+!	Changed the name of Path Settings to Filesystem Settings in Administration
+	Settings, and removed ability to change path/url options - matching interface
+	plans for WB 3.x
++	Added same options for OS and file permissions as installer to Settings
+!	Sessions now named with APP_NAME.'_session_id' (e.g. default is wb_session_id)
+28-Mar-2005 Ryan Djurovich
++	New functions available to templates to simplify creation of them. This aims
+	to "future-proof" templates for WB 3.x plans.
+!	Default templates updated to support some of the new functions
++	Added field to pages table "page_trail" which stores a list of the pages
+	parents. This field was needed by the new page_menu function
++	Added option for page visibility "heading" to enabled support for multiple
+	menu's. Also, this helps to "future-proof" templates for WB 3.x plans
++	Added option for page visibility "registered", which acts a little like
+	private, but is still shown in the menu (although users need to log in to view
+	the pages content)
++	Form module submissions now saved to database, and feature now added to
+	limit number of submissions per hour to prevent spamming
++	New field for Form module: email. Allows you to specify their email in
+	"from" field on module settings.
+#	Fixed bug when displaying comments in News module (WB Bug #14)
++	New "under contruction" message if no pages exist
+!	Cleaned-up wb/index.php
+27-Mar-2005 Ryan Djurovich
++	Created advanced mkdir and chmod functions
+#	Fixed bug in media where wrong file/folder is deleted
++	Complete overhall of installer - now only one step! It has been greatly
+	simplified in many ways, has much better validation, reports error much more
+	nicely, and automatically logs the user into the Administrations
++	Must now specify OS type - allows for customizable file permission settings
++	Sections can now have a language code assigned to them
++	Sections can now have a block name/id assigned to them
+!	Home section of Administration renamed to Start, to save confusion with saying
+	Homepage (because this term could either mean the main website or Home section
+	in	Administration). Also, this aims to unify the interface with WB 3.x plans
+!	Moved Users and Groups sections under Access section. This aims to unify the
+	interface with WB 3.x plans, which help to unclutter the menu
+!	Interface for Settings section has been imporved for usability purposes
+#	Fixed HTMLArea where no scrollbar for "insert link" and "insert image" dialogs
+	by placing media list inside an iframe
+#	Fixed stripslashes problem for viewing news comments
+!	Added code from Formesque module (an advanced version of the original Form
+	module, modified by Rudolph Lartey from www.carbonect.com), and made further
+	interface improvements for select box/checkbox group/radio group options.
+#	Possibly fixed bugs where an S appears before file and dir modes
+#	Fixed bug where users can be added with same emails (in Administration)
+-	Removed support for PEAR, as it was deemed an unnecessary addition which only
+	makes code more bulky, and removing it will decrease package size a lot
++	New "homepage redirect" option so first page is included and not redirected to
+#	Fixed text not being shown when module uninstalled
+!	Imporved interface for basic group permissions
+26-Mar-2005 Stefan Braunewell
+#	Fixed bug with front-end logins
+#	Fixed bug when saving intro page 
++	Added check on sign-up if e-mail exists (thanks to P. Melief)
+#	Fixed bugs concerning moving/deleting pages
+#	Fixed list of parents in page settings
+#	Fixed mkdir without mode parameter
+#	Added a check on install to ensure PHP 4.1.x compatibility (thanks to Wanderer)
++	Added support for PAGES_DIRECTORY set to root
++	Search form now supports quotes (thanks to Manafta)
+#	Fixed page section ordering
+#	News items are displayed with name of poster instead of "Unknown"
+#	Deletion confirmation popup window in media section now shows correct file name
+------------------------------------- 2.3.1 -------------------------------------
+03-Fed-2005 Ryan Djurovich
++	Now there is two types of "filesystem modes", one for directories and one
+	for files. Having different settings is very common for most servers, so
+	this addition should fix many problems people had with 2.3.0.
+-	Removed filesystem mode options from installation
+!	Removed duplicate text on installation step 3 for timezone
+!	All "access files" for the news module now stored in pages/posts instead
+	of a sub-dir relative to the page (this fixes many bugs)
+#	Fixed major bugs when deleting pages with sub-pages
+!	Removed the restrictions that prevent a user for changing a pages level
+#	Fixed bug with "toggle" plus/minus in IE for pages list
+#	Fixed some bugs where /pages was not replaced with PAGES_DIRECTORY constant
+------------------------------------- 2.3.0 -------------------------------------
+26-Jan-2005 Ryan Djurovich
+#	Fixed bug in framework/functions.php that made root parent always equal 8
+#	Added missing braces in lines 182 and 208 of admin/pages/settings2.php
+#	Fixed SQL-query on line 172, placing a / after $old_link
+#	Added eregi checks for PAGES_DIRECTORY on lines 140 and 150 of
+	admin/pages/settings2.php
+#	Added ordering cleaning to delete_post.php on line 53 for news module
+!	GMT option is selected for "Default Timezone" in the installer, instead
+	of the old "Please select" message (which had the same value as GMT)
+28-Jan-2005 Ryan Djurovich
+!	Ability to specify the chmod number when WB uploads files, etc.
+!	Modified file headers (copyright/license notice) so they now look almost the
+	same, independant of font. Also, it now covers copyright for 2005.
+30-Jan-2005 Ryan Djurovich
+#	Added code on wb/admin/pages/delete.php to remove sections from the sections
+	table when a page is deleted.
++	New 'Smart Login' prevents users from using external password managers,
+	and can be set to remember the users password using cookies.
+!	SourceForge CVS module now called websitebaker2 (instead of just
+	websitebaker). Also, all file versions have been reset.
+01-Fed-2005 Ryan Djurovich
+!	Added code to prevent from changing a pages level (it simply disables
+	the select box), to prevent many possible bugs.
+------------------------------------- 2.2.4 -------------------------------------
+23-Dec-2004 Ryan Djurovich
+!	Change 'EXACT_PHRASE' to 'EXACT_MATCH' on line 261 of wb/languages/EN.php
+#	Fixed multi-language support in search
++	Added more detailed options to list of PHP error reporting level's
+-	Removed ability to change language and PHP error reporting level
+	on installation to make things easier for newbie's
++	Ability to select custom spacer for page filename's
+!	Changed the way a language code is found on language installation
++	Added template permissions to groups
+#	Fixed bug when trying to change email from Preferences (admin and frontend)
+#	Fixed bug with auto-selection of "System Default" for Preferences
+!	News module now use's WYSIWYG for modifying news posts
++	Ability to specify both the pages and media target directories
+------------------------------------ 2.2.3-c ------------------------------------
+22-Dec-2004 Ryan Djurovich
+#	Fixed problem with DB password being reset if Settings saved in basic mode
+------------------------------------ 2.2.3-b ------------------------------------
+21-Dec-2004 Ryan Djurovich
+#	Fixed minor bug on admin templates section
+#	Fixed bug on rename.php and rename2.php in admin media section
+------------------------------------- 2.2.3 -------------------------------------
+20-Dec-2004 Ryan Djurovich
++	Added WB release version in Administration (top right corner)
+!	New option to prevent users from adding level 0 pages
+#	Fixed bug when deleting post's in News module
++	Added new field in pages table for "root" parent (level 0 parent), for
+	extra flexability in creating templates
+!	Round template now supports unlimited page levels
+------------------------------------- 2.2.2 -------------------------------------
+18-Dec-2004 Ryan Djurovich
++	New option under Search Settings for selecting custom template for search
++	New option when changing page settings to set the target
+#	Fixed error when saving a user after editing
+!	Users can now modify sub-page if they dont have permissions on the parent
+------------------------------------- 2.2.1 -------------------------------------
+15-Dec-2004 Ryan Djurovich
+#	Fixed bug when changing password on preferences form (front-end)
+#	Fixed bug when retrieving user details (administration)
+#	Added check to see if module, template, or language is in use when deleting
+#	Fixed up email that is sent to user from a submitted form
+#	Fixed major problem with module permissions which stopped it from working
+------------------------------------- 2.2.0 -------------------------------------
+14-Dec-2004 (Correct date[s] unkown) Ryan Djurovich
++	Multiple-level page support
++	Multiple section's for pages (including interface)
+!	Removed text created using two words on all areas
+	(e.g. {Intro} {PAGE} is now {INTRO_PAGE})
+	this is for better language support
++	Added Languages section
+!	Moved Templates and Modules under Add-ons section
+!	Changed name of "Default" template to "Round"
++	Added "All CSS" template
++	Added "Jump"
++	Added 
+!	Modified "Box" template to support multiple page levels
++	Added "Menu Link" module
++	Added "News" module
++	Added "Code" module
++	Added "Form" module
++	Added "Wrapper" module
+!	Changed name of "Normal Page" module to "WYSIWYG"
++	Created new admin wrapper script to ease module develpment
++	Media now automatically creates index.php file for every
+	sub-folder made (for security purposes)
+!	Change "Help" link in Administration menu so it now directs
+	to the the new Website Baker documentation website found at:
+	http://www.websitebaker.org/documentation
+!	Password is now required to change email in preferences
++	User can now select custom Language and Date & Time Formats
++	Added search functionality, with three different "methods":
+	1. Using all words  2. Using any words  3. Exact match
++	Added native MySQL database support

Property changes on: tags/2.7.0/CHANGELOG
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/upgrade-script.php
===================================================================
--- tags/2.7.0/wb/upgrade-script.php	(nonexistent)
+++ tags/2.7.0/wb/upgrade-script.php	(revision 838)
@@ -0,0 +1,880 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/** 
+	PHP ROUTINES FOR THE UPGRADE SCRIPT
+**/
+@include_once('config.php');
+
+// this function checks the basic configurations of an existing WB intallation
+function status_msg($message, $class='check', $element='span') {
+	// returns a status message
+	echo '<'.$element .' class="' .$class .'">' .$message .'</' .$element.'>';
+}
+
+function check_baseline_configuration() {
+	// check if config.php file exists and contains values
+	global $database;
+	status_msg('config.php: ');
+	if(defined('WB_PATH') && defined('ADMIN_PATH')) {
+		status_msg('OK', 'ok');
+	} else {
+		// output error message and return error status
+		status_msg('FAILED', 'error');
+		status_msg('<strong>Error:</strong><br />No valid config.php found in: "<em>'
+			.dirname(__FILE__).'</em>"<br />Please check if this script is placed in the WB root directory '
+			.'and check/correct the config.php file before proceeding.<br /><br />You can not proceed before this error is fixed!!!'
+			, 'warning', 'div');
+		return -1;
+	}
+
+	// check if the WB 2.7 installation files were already uploaded via FTP
+	status_msg(', WB 2.7 core files uploaded: ');
+	@include_once(WB_PATH .'/framework/functions.php');
+	@include_once(ADMIN_PATH .'/interface/version.php');
+	if(defined('VERSION') && VERSION == '2.7'
+		&& function_exists('get_variable_content') 
+		&& file_exists(WB_PATH .'/modules/menu_link/languages/DE.php') 
+		&& file_exists(WB_PATH .'/modules/output_filter/filter-routines.php') 
+		&& file_exists(WB_PATH .'/modules/captcha_control/languages/DE.php')
+		&& file_exists(WB_PATH .'/modules/jsadmin/jsadmin_backend_include.php')
+		&& file_exists(ADMIN_PATH .'/admintools/tool.php')
+		&& file_exists(ADMIN_PATH .'/interface/er_levels.php')) {
+		status_msg('OK','ok');
+	} else {
+		// output a warning and return error status
+		status_msg('FAILED','error');
+		status_msg('<strong>Error:</strong><br />Some of the Website Baker 2.7 core files were not found.'
+			.'<br />Please upload all core files (except config.php and folder /install) contained in the WB 2.7 installation package first.'
+			.'<br /><br />You can not proceed before this error is fixed!!!'
+			, 'warning', 'div');
+		return -1;
+	}
+
+	// check database connection (try to extract a single value which should always exist)
+	$matches = '';
+	status_msg(', Database connection: ');
+	if(class_exists('database')) {
+		$table = TABLE_PREFIX .'groups';
+		//$result = $database->query("SELECT group_id FROM $table WHERE group_id = '1' LIMIT 1");
+		$result = $database->query("SELECT name FROM $table WHERE group_id = '1' LIMIT 1");
+		$matches = ($result->numRows() > 0) ? $result->numRows() : '';
+	}
+	if($matches == '1') {
+		status_msg('OK', 'ok');
+	} else {
+		// output error message and return error status
+		status_msg('FAILED', 'error');
+		status_msg('<strong>Error:</strong><br />Unable to connect to your existing Website Baker database.'
+			.'<br />Make sure that the database class is available and the connection data in the config.php file is correct '
+			.'and your database is not corrupt.<br />To check if your database is corrupt, you can use a tool like '
+			.'<a href="http://www.phpmyadmin.net/" target="_blank">phpMyAdmin</a>.'
+			.'<br /><br />You can not proceed before this error is fixed!!!'
+			, 'warning', 'div');
+		return -1;
+	}
+	return 0;
+}
+
+?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Upgrade script from Website Baker v2.6.7 to Website Baker v2.7</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+body {
+	margin:0;
+	padding:0;
+	border:0;
+	background: #EBF7FC;
+	color:#000;
+  font-family: 'Trebuchet MS', Verdana, Arial, Helvetica, Sans-Serif;
+	font-size: small;
+	height:101%;
+}
+
+#container {
+	width:85%;
+	background: #A8BCCB url(<?php echo ADMIN_URL;?>/interface/background.png) repeat-x;
+	border:1px solid #000;
+	color:#000;
+	margin:2em auto;
+	padding:0 15px;
+	min-height: 500px;
+	text-align:left;
+}
+
+p { line-height:1.5em; }
+
+h1,h2,h3,h4,h5,h6 {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #369;
+	margin-top: 1.0em;
+	margin-bottom: 0.1em;
+}
+
+h1 { font-size:150%; }
+h2 { font-size: 130%; border-bottom: 1px #CCC solid; }
+h3 { font-size: 120%; }
+
+.ok, .error { font-weight:bold; }
+.ok { color:green; }
+.error { color:red; }
+.check { color:#555; }
+
+.warning {
+	width: 98%;
+	background:#FFDBDB;
+	padding:0.2em;
+	margin-top:0.5em;
+	border: 1px solid black;
+}
+</style>
+</head>
+<body>
+<div id="container">
+<img src="<?php echo ADMIN_URL;?>/interface/logo.png" alt="Website Baker Logo" />
+
+<h1>Website Baker Upgrade</h1>
+<p>This script is for <strong>upgrading an existing v2.6.7</strong> installation to the latest Website Baker <strong>version 2.7</strong>. The upgrade script checks the configuration of your installed Website Baker system and alters the existing WB database to reflect the changes introduced with WB 2.7.</p>
+
+<?php
+if(!isset($_POST['backup_confirmed'])) { 
+?>
+<h2>Step 1: Check existing installation</h2>
+<p>Checking the configuration of your existing Website Baker installation:<br />
+<?php
+// check the basic Website Baker installation before proceeding
+if(check_baseline_configuration() != 0) {
+echo <<< EOT
+<h3>Checklist before upgrading:</h3>
+<p>To upgrade from an existing WB 2.6.7 version, please perform the following steps in advance:
+<ol>
+<li>Backup the entire <strong>/pages</strong> folder (including all subfolder and files) of your existing WB installation</li>
+<li>Backup the entire <strong>Database</strong> of your existing WB installation (e.g. by the WB admin tool)</li>
+<li>Download the WB 2.7 installation package from the <a href="http://download.websitebaker.org/" target="_blank">official project site</a></li>
+<li>Upload all files contained in the WB 2.7 installation package (except config.php and the folder /install) via FTP over your existing installation</li>
+<li>start this script by typing the URL into your browser</li>
+</ol>
+<strong class="error">Note: </strong>If you have an version lower than 2.6.7, you need to upgrade to 2.6.7 first!! Instructions can be found on the <a href="http://help.websitebaker.org/pages/en/basic-docu/installation/upgrade.php" target="_blank">Website Baker Help portal</a>.</p><p>&nbsp;</p>
+EOT;
+die;
+}
+// pre-checks passed, proceed
+status_msg('<p>Congratulations: You have passed all the required pre-checks.', 'ok');
+?>
+
+<h2>Step 2: Create a backup of your existing data</h2>
+<p>It is highly recommended to <strong>create a manual backup</strong> of the entire <strong>/pages folder</strong> and the <strong>MySQL database</strong> before proceeding.<br /><strong class="error">Note: </strong>The upgrade script alters some settings of your existing database!!! You need to confirm the disclaimer before proceeding.</p>
+
+<form name="send" action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
+<textarea cols="80" rows="5">DISCLAIMER: The Website Baker upgrade script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. One needs to confirm that a manual backup of the /pages folder (including all files and subfolders contained in it) and backup of the entire Website Baker MySQL database was created before you can proceed.</textarea>
+<br /><br /><input name="backup_confirmed" type="checkbox" value="confirmed" />&nbsp;I confirm that a manual backup of the /pages folder and the MySQL database was created.
+<br /><br /><input name="send" type="submit" value="Start upgrade script" />
+</form>
+<br />
+
+<?php
+if(isset($_POST['send'])) {
+	status_msg('<strong>Notice:</strong><br />You need to confirm that you have created a manual backup of the /pages directory and the MySQL database before you can proceed.', 'warning', 'div');
+} 
+?>
+<br /><br />
+<?php
+} else {
+/**
+	THE WEBSITE BAKER UPGRADE SCRIPT STARTS HERE
+**/
+require_once('config.php');
+require_once(WB_PATH.'/framework/functions.php');
+?>
+<h2>Step 3: Upgrading the existing Website Baker installation to WB 2.7</h2>
+<p>will upgrade Website Baker 2.6.7 to version 2.7</p>
+<?php
+
+$OK   = '<span class="ok">OK</span>';
+$FAIL = '<span class="error">FAILED</span>';
+
+
+/**********************************************************
+ *  - modules-based search
+ */
+function db_add_search_key_value($key, $value) {
+	global $database; global $OK; global $FAIL;
+	$table = TABLE_PREFIX.'search';
+	$query = $database->query("SELECT value FROM $table WHERE name = '$key' LIMIT 1");
+	if($query->numRows() > 0) {
+		echo "$key: allready there. $OK.<br />";
+		return true;
+	} else {
+		$database->query("INSERT INTO $table (name,value,extra) VALUES ('$key', '$value', '')");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		$query = $database->query("SELECT value FROM $table WHERE name = '$key' LIMIT 1");
+		if($query->numRows() > 0) {
+			echo "$key: $OK.<br />";
+			return true;
+		} else {
+			echo "$key: $FAIL!<br />";
+			return false;
+		}
+	}
+}
+function db_add_field($field, $table, $desc) {
+	global $database; global $OK; global $FAIL;
+	echo "<u>Adding field '$field' to table '$table'</u><br />";
+	$table = TABLE_PREFIX.$table;
+	$query = $database->query("DESCRIBE $table '$field'");
+	if($query->numRows() == 0) { // add field
+		$query = $database->query("ALTER TABLE $table ADD $field $desc");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		$query = $database->query("DESCRIBE $table '$field'");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		if($query->numRows() > 0) {
+			echo "'$field' added. $OK.<br />";
+		} else {
+			echo "adding '$field' $FAIL!<br />";
+		}
+	} else {
+		echo "'$field' allready there. $OK.<br />";
+	}
+}
+
+echo "<br /><u>Adding module_order, max_excerpt and time_limit to search-table</u><br />";
+// module_order - in which order to show the search-results
+// max_excerpt - how many lines of excerpt to print per matching page
+// time_limit - time-limit for searching per module
+$cfg = array(
+	'module_order' => 'faqbaker,manual,wysiwyg',
+	'max_excerpt' => '15',
+	'time_limit' => '0'
+);
+foreach($cfg as $key=>$value) {
+	db_add_search_key_value($key, $value);
+}
+
+echo "<br /><u>Adding some internal config-elements to search-table</u><br />";
+// These are global config-elements which don't appear in settings-page. Change them in the database if needed.
+// cfg_show_description - whether to show page-description on the results page (true/false), def: true
+// cfg_search_description - whether to search in page-description (true/false), def: true [only used while searching title/link/description/keywords]
+// cfg_search_keywords - whether to search in page-keywords (true/false), def: true [only used while searching title/link/description/keywords]
+// cfg_enable_old_search - use old search-method, too (true/false), def: true [use old method as fallback]
+// cfg_enable_flush - use "ob_flush();flush();" after every page on result page. Will speedup response of result page, but may break template
+$cfg = array(
+	'cfg_show_description' => 'true',
+	'cfg_search_description' => 'true',
+	'cfg_search_keywords' => 'true',
+	'cfg_enable_old_search' => 'true',
+	'cfg_enable_flush' => 'false'
+);
+foreach($cfg as $key=>$value) {
+	db_add_search_key_value($key, $value);
+}
+
+echo "<br /><u>Changing results_loop in search-table</u><br />";
+// adding [EXCERPT]
+
+$query = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'results_loop' LIMIT 1");
+if($query->numRows() > 0) {
+	$fetch_results_loop = $query->fetchRow();
+	$string = $fetch_results_loop['value'];
+	if(preg_match("/\[EXCERPT\]/", $string)) {
+		echo "[EXCERPT] is allready there. $OK.<br />";
+	} else {
+		$string = preg_replace("/10px;\">\[DESCRIPTION\]/", "5px;\">[DESCRIPTION]", $string);
+		$string .= "<tr><td colspan=\"2\" style=\"text-align: justify; padding-bottom: 10px;\">[EXCERPT]</td></tr>";
+		$string = addslashes($string);
+		$database->query("UPDATE ".TABLE_PREFIX."search SET name='results_loop',value='".$string."',extra='' WHERE name = 'results_loop' LIMIT 1");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		$query = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'results_loop' LIMIT 1");
+		if($query->numRows() > 0) {
+			$fetch_results_loop = $query->fetchRow();
+			$string = $fetch_results_loop['value'];
+			if(preg_match("/\[EXCERPT\]/", $string)) {
+				echo "[EXCERPT] added. $OK.<br />";
+			} else {
+				echo "adding [EXCERPT] $FAIL!<br />";
+			}
+		}
+	}
+}
+
+echo "<br /><u>Changing \"Header:\" in search-table</u><br />";
+// adding [SEARCH_PATH]
+
+$query = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'header' LIMIT 1");
+if($query->numRows() > 0) {
+	$fetch_header = $query->fetchRow();
+	$string = $fetch_header['value'];
+	if(preg_match("/\[SEARCH_PATH\]/", $string)) {
+		echo "[SEARCH_PATH] is allready there. $OK.<br />";
+	} else {
+		$string = preg_replace("/<input type=\"text\" name=\"string\" value=\"\[SEARCH_STRING\]\" style=\"width: 100%;\" \/>/", "<input type=\"hidden\" name=\"search_path\" value=\"[SEARCH_PATH]\" /><input type=\"text\" name=\"string\" value=\"[SEARCH_STRING]\" style=\"width: 100%;\" />", $string);
+		$string = addslashes($string);
+		$database->query("UPDATE ".TABLE_PREFIX."search SET name='header',value='".$string."',extra='' WHERE name = 'header' LIMIT 1");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		$query = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'header' LIMIT 1");
+		if($query->numRows() > 0) {
+			$fetch_header = $query->fetchRow();
+			$string = $fetch_header['value'];
+			if(preg_match("/\[SEARCH_PATH\]/", $string)) {
+				echo "[SEARCH_PATH] added. $OK.<br />";
+			} else {
+				echo "adding [SEARCH_PATH] $FAIL!<br />";
+			}
+		}
+	}
+}
+
+
+/**********************************************************
+ *  - publish-by-date
+ */
+// Add fields "publ_start" and "publ_end" to table "sections"
+// check if fields are present
+db_add_field('publ_start', 'sections', "INT NOT NULL DEFAULT '0'");
+db_add_field('publ_end', 'sections', "INT NOT NULL DEFAULT '0'");
+
+
+/**********************************************************
+ *  - core-module menu_link
+ */
+// create table
+$table = TABLE_PREFIX ."mod_menu_link";
+$database->query("DROP TABLE IF EXISTS `$table`");
+$database->query("
+	CREATE TABLE `$table` (
+		`section_id` INT(11) NOT NULL DEFAULT '0',
+		`page_id` INT(11) NOT NULL DEFAULT '0',
+		`target_page_id` INT(11) NOT NULL DEFAULT '0',
+		`anchor` VARCHAR(255) NOT NULL DEFAULT '0' ,
+		`extern` VARCHAR(255) NOT NULL DEFAULT '' ,
+		PRIMARY KEY (`section_id`)
+	)
+");
+// fetch all menu_link-pages in $pages
+$pages = array();
+$table_p = TABLE_PREFIX.'pages';
+$table_s = TABLE_PREFIX.'sections';
+$table_mm = TABLE_PREFIX ."mod_menu_link";
+
+$query_page = $database->query("SELECT p.*, s.section_id FROM $table_p AS p, $table_s AS s WHERE p.page_id=s.page_id AND s.module = 'menu_link'");
+if($query_page->numRows() > 0) {
+	while($page = $query_page->fetchRow()) {
+		$pages[$page['page_id']]['page_details'] = $page;
+	}
+}
+if($pages!=array())
+	echo "<br /><u>Convert menu_links</u><br />";
+
+// get all related files with content from pages/ in $pages, too
+function list_files_dirs($dir, $depth=true, $files=array(), $dirs=array()) {
+	$dh=opendir($dir);
+	while(($file = readdir($dh)) !== false) {
+		if($file == '.' || $file == '..') {
+			continue;
+		}
+		if(is_dir($dir.'/'.$file)) {
+			if($depth) {
+				$dirs[] = $dir.'/'.$file;
+				list($files, $dirs) = list_files_dirs($dir.'/'.$file, $depth, $files, $dirs);
+			}
+		} else {
+			$newfile = $dir.'/'.$file;
+			if(filesize($newfile) <= 100)
+				$files[] = $newfile;
+		}
+	}
+	closedir($dh);
+	return(array($files, $dirs));
+}
+list($files, $dirs) = list_files_dirs(WB_PATH.PAGES_DIRECTORY);
+foreach($files as $file) {
+	if(($content = implode('', file($file))) !== FALSE) {
+		if(preg_match('/\$page_id = (\d+)/', $content, $matches)) {
+			if(array_key_exists($matches[1], $pages)) {
+				$pages[$matches[1]]['file_content'] = $content;
+				$pages[$matches[1]]['filename'] = $file;
+			}
+		}
+	}
+}
+unset($files); unset($dirs);
+// try to convert old menu_links to new ones
+foreach($pages as $p) {
+	$page = $p['page_details'];
+	$file_content = $p['file_content'];
+	$filename = $p['filename'];
+	$link = $p['page_details']['link'];
+	$parent_pid = $p['page_details']['parent'];
+	$page_id = $p['page_details']['page_id'];
+	$section_id = $p['page_details']['section_id'];
+	$menu_title = $p['page_details']['menu_title'];
+
+	// calculate link from wb_pages.parent and menu_title
+	$cur_link = '';
+	if($parent_pid != '0' && $query_link = $database->query("SELECT link FROM $table_p WHERE page_id = '$parent_pid'")) {
+		$res = $query_link->fetchRow();
+		$cur_link .= $res['link'];
+	}
+	$cur_link .= '/'.page_filename($menu_title);
+echo "found: $cur_link<br />";
+	$database->query("UPDATE $table_p SET link = '$cur_link' WHERE page_id = '$page_id'");
+	echo (mysql_error()?'mySQL: '.mysql_error().'<br />':'');
+	
+	$new_filenames[$page_id]['file'] = WB_PATH.PAGES_DIRECTORY.$cur_link.PAGE_EXTENSION;
+	$new_filenames[$page_id]['link'] = $cur_link;
+	$new_filenames[$page_id]['menu'] = $menu_title;
+
+	// delete old access files in pages
+	if(file_exists($filename)) {
+		if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/')) {
+			echo "Cannot delete access file in pages/ - permission denied ($FAIL)<br />";
+		} else {
+			unlink($filename);
+		}
+	}
+	
+	// make entry in wb_mod_menu_link
+	if($query_pid = $database->query("SELECT page_id FROM $table_p WHERE page_id != '$page_id' AND link = '$link'")) {
+		$res = $query_pid->fetchRow();
+		$target_page_id = $res['page_id'];
+		$extern = '';
+		if(strpos($link, '://') !== FALSE || strpos($link, 'mailto:') !== FALSE) {
+			$target_page_id=-1;
+			$extern=addslashes($link);
+		}
+		$database->query("INSERT INTO $table_mm (page_id, section_id, target_page_id, anchor, extern) VALUES ('$page_id', '$section_id', '$target_page_id', '0', '$extern')");
+		echo (mysql_error()?'mySQL: '.mysql_error().'<br />':'');
+	}
+}
+// create new access files in pages/; make directories as needed
+foreach($pages as $p) {
+	$page_id = $p['page_details']['page_id'];
+	$filename = $new_filenames[$page_id]['file'];
+	$menu_title = $new_filenames[$page_id]['menu'];
+	$link = $new_filenames[$page_id]['link'];
+	$content = $p['file_content'];
+	$level = $p['page_details']['level'];
+	$depth = '';
+	for($i=0; $i<=$level; $i++)
+		$depth .= '../';
+	$content = preg_replace('#((../)+)config\.php#', "{$depth}config.php", $content);
+	while(file_exists($filename)) {
+		echo "Cannot create '$filename' - file exist. Renamed to: ";
+		$menu_title .= '_';
+		$link .= '_';
+		$filename = WB_PATH.PAGES_DIRECTORY.$link.PAGE_EXTENSION;
+		echo "$filename<br />";
+		$database->query("UPDATE $table_p SET link='$link', menu_title='$menu_title' WHERE page_id = '$page_id'");
+		echo mysql_error()?'mySQL: '.mysql_error().'<br />':'';
+	}
+	// check if we need to create a subdir somewhere
+	$dirs = array();
+	while(dirname($link) != '/' && dirname($link) != '.' && dirname($link) != '\\') {
+		$link = dirname($link);
+		$dirs[] = WB_PATH.PAGES_DIRECTORY.$link;
+	}
+	foreach(array_reverse($dirs) as $dir) {
+		if(!file_exists($dir)) {
+			@mkdir($dir, OCTAL_DIR_MODE);
+		}
+	}
+	// create new file in pages/
+	if($handle=fopen($filename, "wb")) {
+		if(!fwrite($handle, $content)) {
+			echo "Cannot write to $filename - ($FAIL)<br />";
+		}
+		fclose($handle);
+	} else {
+		echo "Cannot create $filename - ($FAIL)<br />";
+	}
+	
+}
+
+/**********************************************************
+ *  - asp - Advanced Spam Protection
+ */
+echo "<br /><u>Adding table mod_captcha_control</u><br />";
+$table = TABLE_PREFIX.'mod_captcha_control';
+$database->query("DROP TABLE IF EXISTS `$table`");
+$database->query("CREATE TABLE `$table` (
+	`enabled_captcha` VARCHAR(1) NOT NULL DEFAULT '1',
+	`enabled_asp` VARCHAR(1) NOT NULL DEFAULT '0',
+	`captcha_type` VARCHAR(255) NOT NULL DEFAULT 'calc_text',
+	`asp_session_min_age` INT(11) NOT NULL DEFAULT '20',
+	`asp_view_min_age` INT(11) NOT NULL DEFAULT '10',
+	`asp_input_min_age` INT(11) NOT NULL DEFAULT '5',
+	`ct_text` LONGTEXT NOT NULL DEFAULT ''
+	)"
+);
+$database->query("
+	INSERT INTO `$table`
+		(`enabled_captcha`, `enabled_asp`, `captcha_type`)
+	VALUES
+		('1', '1', 'calc_text')
+");
+
+
+/**********************************************************
+ *  - multi-group
+ */
+db_add_field('groups_id', 'users', "VARCHAR( 255 ) NOT NULL DEFAULT '0' AFTER group_id");
+$table = TABLE_PREFIX.'users';
+if($query_group = $database->query("SELECT user_id,group_id,groups_id FROM $table")) {
+	while($group = $query_group->fetchRow()) {
+		if($group['groups_id'] == '0') {
+			if($database->query("UPDATE $table SET groups_id = group_id WHERE user_id = {$group['user_id']}")) {
+				echo 'groups_id updated successfully<br>';
+			}
+			echo mysql_error().'<br />';
+		}
+	}
+}
+
+
+/**********************************************************
+ *  -Javascript Admin
+ */
+echo "<br /><u>Adding table mod_jsadmin</u><br />";
+$table = TABLE_PREFIX ."mod_jsadmin";
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("
+	CREATE TABLE `$table` (
+    `id` INT(11) NOT NULL DEFAULT '0',
+		`name` VARCHAR(255) NOT NULL DEFAULT '0',
+		`value` INT(11) NOT NULL DEFAULT '0',
+   	PRIMARY KEY (`id`)
+	)
+");
+
+global $database;
+echo "Insert default value for mod_jsadmin_persist_order: ";
+echo ($database->query("INSERT INTO ".$table." (id,name,value) VALUES ('1','mod_jsadmin_persist_order','0')")) ? " $OK<br />" : " $FAIL<br />"; 
+echo "Insert default value for mod_jsadmin_ajax_order_pages: ";
+echo ($database->query("INSERT INTO ".$table." (id,name,value) VALUES ('2','mod_jsadmin_ajax_order_pages','0')")) ? " $OK<br />" : " $FAIL<br />"; 
+echo "Insert default value for mod_jsadmin_ajax_order_sections: ";
+echo ($database->query("INSERT INTO ".$table." (id,name,value) VALUES ('3','mod_jsadmin_ajax_order_sections','0')")) ? " $OK<br />" : " $FAIL<br />"; 
+
+/**********************************************************
+ *  - Output Filter
+ */
+echo "<br /><u>Adding table mod_outputfilter</u><br />Status: ";
+$table = TABLE_PREFIX .'mod_output_filter';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("CREATE TABLE `$table` (
+	`email_filter` VARCHAR(1) NOT NULL DEFAULT '0',
+	`mailto_filter` VARCHAR(1) NOT NULL DEFAULT '0',
+	`at_replacement` VARCHAR(255) NOT NULL DEFAULT '(at)',
+	`dot_replacement` VARCHAR(255) NOT NULL DEFAULT '(dot)'
+	)"
+);
+
+// add default values to the module table
+echo ($database->query("INSERT INTO ".TABLE_PREFIX
+	."mod_output_filter (email_filter, mailto_filter, at_replacement, dot_replacement) VALUES ('0', '0', '(at)', '(dot)')")) ? " $OK<br />" : " $FAIL<br />"; 
+	
+
+/**********************************************************
+ *  - Form Modul
+ */
+echo '<br />';
+db_add_field('success_email_subject', 'mod_form_settings', "VARCHAR(255) NOT NULL AFTER `email_subject`");
+echo '<br />';
+db_add_field('success_email_text', 'mod_form_settings', "TEXT NOT NULL AFTER `email_subject`");
+echo '<br />';
+db_add_field('success_email_from', 'mod_form_settings', "VARCHAR(255) NOT NULL AFTER `email_subject`");
+echo '<br />';
+db_add_field('success_email_to', 'mod_form_settings', "TEXT NOT NULL AFTER `email_subject`");
+echo '<br />';
+db_add_field('success_page', 'mod_form_settings', "TEXT NOT NULL AFTER `email_subject`");
+echo '<br />';
+db_add_field('email_fromname', 'mod_form_settings', "VARCHAR( 255 ) NOT NULL AFTER email_from");
+echo '<br />';
+db_add_field('success_email_fromname', 'mod_form_settings', "VARCHAR( 255 ) NOT NULL AFTER success_email_from");
+
+echo "<br /><b>Deleting field success_message from table mod_form_settings</b><br />";
+
+if($database->query("ALTER TABLE `".TABLE_PREFIX."mod_form_settings` DROP `success_message`")) {
+	echo 'Database field success_message droped successfully<br>';
+}
+echo mysql_error().'<br />';
+
+// These are the default setting
+$success_page = 'none';
+$success_email_to = '';
+$success_email_text = 'Thank you for submitting your form on '.WEBSITE_TITLE;
+$success_email_text = addslashes($success_email_text);
+$success_email_subject = 'You have submitted a form';
+
+// Insert default settings into database
+$query_dates = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_settings where section_id != 0 and page_id != 0");
+while($result = $query_dates->fetchRow()) {
+	
+	echo "<B>Add default settings data to database for form section_id= ".$result['section_id']."</b><BR>";
+	$section_id = $result['section_id'];
+
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_form_settings` SET `success_page` = '$success_page' WHERE `section_id` = $section_id")) {
+		echo 'Database data success_page added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_form_settings` SET `success_email_to` = '$success_email_to' WHERE `section_id` = $section_id")) {
+		echo 'Database data success_email_to added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_form_settings` SET `success_email_text` = '$success_email_text' WHERE `section_id` = $section_id")) {
+		echo 'Database data success_email_text added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_form_settings` SET `success_email_subject` = '$success_email_subject' WHERE `section_id` = $section_id")) {
+		echo 'Database data success_email_subject added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+}
+
+// copy field email_to to success_email_from
+$query_dates = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_settings where section_id != 0 and page_id != 0");
+while($result = $query_dates->fetchRow()) {
+	
+	echo "<B>Copying field email_to to success_email_from for form section_id= ".$result['section_id']."</B><BR>";
+	$section_id = $result['section_id'];
+
+	$success_email_from = $result['email_to'];
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_form_settings` SET `success_email_from` = '$success_email_from' WHERE `section_id` = $section_id")) {
+		echo 'Copyied field email_to to success_email_from successfully<br>';
+	}
+	echo mysql_error().'<br />';
+}
+
+
+/**********************************************************
+ *  - News Modul
+ */
+db_add_field('published_when', 'mod_news_posts', "INT NOT NULL AFTER `commenting`");
+db_add_field('published_until', 'mod_news_posts', "INT NOT NULL AFTER `published_when`");
+
+// These are the default setting
+$header = '<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"98%\">';
+$post_loop = '<tr class=\"post_top\">
+<td class=\"post_title\"><a href=\"[LINK]\">[TITLE]</a></td>
+<td class=\"post_date\">[MODI_TIME], [MODI_DATE]</td>
+</tr>
+<tr>
+<td class=\"post_short\" colspan=\"2\">
+[SHORT] 
+<a href=\"[LINK]\">[TEXT_READ_MORE]</a>
+</td>
+</tr>';
+$post_header = addslashes('<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td height="30"><h1>[TITLE]</h1></td>
+<td rowspan="3" style="display: [DISPLAY_IMAGE]"><img src="[GROUP_IMAGE]" alt="[GROUP_TITLE]" /></td>
+</tr>
+<tr>
+<td valign="top"><b>Posted by [DISPLAY_NAME] ([USERNAME]) on [PUBL_DATE]</b></td>
+</tr>
+<tr style="display: [DISPLAY_GROUP]">
+<td valign="top"><a href="[BACK]">[PAGE_TITLE]</a> >> <a href="[BACK]?g=[GROUP_ID]">[GROUP_TITLE]</a></td>
+</tr>
+</table>
+<p style="text-align: justify;">');
+$post_footer = '</p><p>Last changed: [MODI_DATE] at [MODI_TIME]</p>
+<a href=\"[BACK]\">Back</a>';
+$comments_header = addslashes('<br /><br />
+<h2>Comments</h2>
+<table cellpadding="2" cellspacing="0" border="0" width="98%">');
+
+// Insert default settings into database
+$query_dates = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings where section_id != 0 and page_id != 0");
+while($result = $query_dates->fetchRow()) {
+	
+	echo "<B>Add default settings data to database for news section_id= ".$result['section_id']."</b><BR>";
+	$section_id = $result['section_id'];
+
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `header` = '$header' WHERE `section_id` = $section_id")) {
+		echo 'Database data header added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `post_loop` = '$post_loop' WHERE `section_id` = $section_id")) {
+		echo 'Database data post_loop added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `post_header` = '$post_header' WHERE `section_id` = $section_id")) {
+		echo 'Database data post_header added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `post_footer` = '$post_footer' WHERE `section_id` = $section_id")) {
+		echo 'Database data post_footer added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+	
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_settings` SET `comments_header` = '$comments_header' WHERE `section_id` = $section_id")) {
+		echo 'Database data comments_header added successfully<br>';
+	}
+	echo mysql_error().'<br />';
+
+}
+
+// MIGRATING FIELD DATES to POSTED_WHEN
+$query_dates = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts where section_id != 0 and page_id != 0");
+if($query_dates->numRows() > 0) {
+	echo "<B>Copying field posted_when value to published_when</B><BR>";
+}
+while($result = $query_dates->fetchRow()) {
+	$pid = $result['post_id'];
+	$NEW_DATE = $result['posted_when'];
+	if($database->query("UPDATE `".TABLE_PREFIX."mod_news_posts` SET `published_when` = '$NEW_DATE' WHERE `post_id` = $pid")) {
+		echo 'Copying posted_when value to published_when successfully<br>';
+	}
+	echo mysql_error().'<br />';
+}
+
+/**********************************************************
+ *  - Alter the WYSIWYG editor (longtext, default FCK)
+ */
+echo "<br /><u>Alter WYSIWYG editor settings</u><br />Alter field content from text to longtext: ";
+echo ($database->query("ALTER TABLE ".TABLE_PREFIX."mod_wysiwyg MODIFY content LONGTEXT NOT NULL")) ?" $OK<br />" : " $FAIL<br />";
+if(file_exists(WB_PATH .'/modules/fckeditor/include.php')) {
+	echo "Make FCKEditor the new default editor: ";
+	echo ($database->query("UPDATE ".TABLE_PREFIX."settings SET value='fckeditor' WHERE name='wysiwyg_editor'")) ?" $OK<br />" : " $FAIL<br />";
+}
+
+/**********************************************************
+ *  - Add Admintools to Administrator group
+ */
+echo "<br /><u>Add Admintools to Adminsitrator group</u><br />Status: ";
+$full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools';
+echo ($database->query("UPDATE `".TABLE_PREFIX."groups` SET `system_permissions` = '$full_system_permissions' WHERE `name` = 'Administrators'")) ? " $OK<br />" : " $FAIL<br />";
+
+/**********************************************************
+ *  - Add Mailer Settings to settings table
+ */
+echo "<br /><u>Add Mailer Settings to settings table</u><br />Status: ";
+//delete rows to prevent double entries
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_routine'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'server_email'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_default_sendername'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_smtp_host'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_smtp_auth'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_smtp_username'");
+$database->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name = 'wbmailer_smtp_password'");
+//add new rows with default values
+$wbmailer_smtp_host = (defined('WBMAILER_SMTP_HOST')) ? WBMAILER_SMTP_HOST : '';
+$wbmailer_routine = ($wbmailer_smtp_host == '') ? 'phpmail' : 'smtp';
+$settings_rows=	"INSERT INTO `".TABLE_PREFIX."settings` "
+." (name, value) VALUES "
+." ('wbmailer_routine', '$wbmailer_routine'),"
+." ('server_email', 'admin@yourdomain.com'),"		// avoid that mail provider (e.g. mail.com) reject mails like yourname@mail.com
+." ('wbmailer_default_sendername', 'WB Mailer'),"
+." ('wbmailer_smtp_host', '$wbmailer_smtp_host'),"
+." ('wbmailer_smtp_auth', ''),"
+." ('wbmailer_smtp_username', ''),"
+." ('wbmailer_smtp_password', '')";
+echo ($database->query($settings_rows)) ? " $OK<br />" : " $FAIL<br />";
+
+/**********************************************************
+ *  - Set Version to WB 2.7
+ */
+echo "<br /><u>Update database version number to 2.7</u><br />Status: ";
+$version = '2.7';
+echo ($database->query("UPDATE `".TABLE_PREFIX."settings` SET `value` = '$version' WHERE `name` = 'wb_version'")) ? " $OK<br />" : " $FAIL<br />";
+
+/**********************************************************
+ *  - Reload all addons
+ */
+
+//delete modules
+$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'module'");
+// Load all modules
+if($handle = opendir(WB_PATH.'/modules/')) {
+	while(false !== ($file = readdir($handle))) {
+		if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') {
+			load_module(WB_PATH.'/modules/'.$file);
+		}
+	}
+	closedir($handle);
+}
+echo '<br />Modules reloaded<br />';
+
+//delete templates		
+$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+// Load all templates
+if($handle = opendir(WB_PATH.'/templates/')) {
+	while(false !== ($file = readdir($handle))) {
+		if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'index.php') {
+			load_template(WB_PATH.'/templates/'.$file);
+		}
+	}
+	closedir($handle);
+}
+echo '<br />Templates reloaded<br />';
+
+//delete languages
+$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'language'");
+// Load all languages
+if($handle = opendir(WB_PATH.'/languages/')) {
+	while(false !== ($file = readdir($handle))) {
+		if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'index.php') {
+			load_language(WB_PATH.'/languages/'.$file);
+		}
+	}
+	closedir($handle);
+}
+echo '<br />Languages reloaded<br />';
+
+/**********************************************************
+ *  - End of upgrade script
+ */
+$config_msg = ($wbmailer_smtp_host != '') ? '<br /><br />Note: Please remove the line: <strong>define(\'WBMAILER_SMTP_HOST\', \''.$wbmailer_smtp_host.'\');</strong> from file <strong>config.php</strong> before proceeding!' : '';
+echo '<p style="font-size:120%;"><strong>Congratulations: The upgrade script is finished ...</strong></p>';
+status_msg('<strong>Warning:</strong><br />Please delete the file <strong>upgrade-script.php</strong> via FTP before proceeding.<br />If you do not delete this script from your server, others can delete/overwritte database settings by executing this script again. <br /><br />If you are using Admin tools, please update them with the latest version on the WB Add-ons repository to avoid problems.'.$config_msg, 'warning', 'div');
+// show buttons to go to the backend or frontend
+echo '<br />';
+if(defined('WB_URL')) {
+	echo '<form action="'.WB_URL.'" target="_self">';
+	echo '<input type="submit" value="kick me to the Frontend" style="float:left;" />';
+	echo '</form>';
+}
+if(defined('ADMIN_URL')) {
+	echo '<form action="'.ADMIN_URL.'" target="_self">';
+	echo '&nbsp;<input type="submit" value="kick me to the Backend" />';
+	echo '</form>';
+}
+echo '<p>&nbsp;</p>';
+}
+?>
+</div>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/upgrade-script.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/version.php
===================================================================
--- tags/2.7.0/wb/admin/interface/version.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/version.php	(revision 838)
@@ -0,0 +1,42 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Version file
+
+This file is where the WB release version is stored.
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
+if(!defined('VERSION')) define('VERSION', '2.7');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/version.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/header.html
===================================================================
--- tags/2.7.0/wb/admin/interface/header.html	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/header.html	(revision 838)
@@ -0,0 +1,47 @@
+<!-- BEGIN header_block -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>{WEBSITE_TITLE} >> {TEXT_ADMINISTRATION} - {SECTION_NAME}</title>
+<link href="{ADMIN_URL}/interface/stylesheet.css" rel="stylesheet" type="text/css" />
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+{BACKEND_MODULE_CSS}
+{BACKEND_MODULE_JS}
+<script type="text/javascript" src="{WB_URL}/include/codepress/codepress.js"></script>
+<script language="javascript" type="text/javascript">
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}</script>
+</head>
+<body>
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center">
+<tr>
+	<td width="60" valign="top">
+		<a href="{ADMIN_URL}" title="{TITLE_START}"><img src="{ADMIN_URL}/interface/logo.png" border="0" alt="Logo" /></a>
+	</td>
+	<td width="5">&nbsp;</td>
+	<td style="font-size: 14px;" valign="top" align="right">
+         <a href="{ADMIN_URL}" title="{TITLE_START}"><img src="{ADMIN_URL}/images/home.png" border="0" alt="{TITLE_START}" /></a>
+         &nbsp;&nbsp;<a href="{URL_VIEW}" target="_blank" title="{TITLE_VIEW}"><img src="{ADMIN_URL}/images/view.png" border="0" alt="{WB_URL}" /></a>
+	&nbsp; <a href="{URL_HELP}" target="_blank" title="{TITLE_HELP}"><img src="{ADMIN_URL}/images/help.png" border="0" alt="{TITLE_HELP}" /></a>
+         &nbsp; <a href="{ADMIN_URL}/logout" title="{TITLE_LOGOUT}"><img src="{ADMIN_URL}/images/dl.png" border="0" alt="{TITLE_LOGOUT}" /></a>
+</td>
+	<td width="100" align="right" style="padding-top: 10px; padding-right: 15px; color: #000;">
+	Version {VERSION}
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center">
+<tr>
+	<td>
+		<ul class="menu">
+			<!-- BEGIN linkBlock -->
+			<li class="{CLASS}"><a href="{LINK}" target="{TARGET}">{TITLE}</a></li>
+			<!-- END linkBlock -->
+		</ul>
+	</td>
+</tr>
+<tr>
+	<td class="content">
+<!-- END header_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/header.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/stylesheet.css
===================================================================
--- tags/2.7.0/wb/admin/interface/stylesheet.css	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/stylesheet.css	(revision 838)
@@ -0,0 +1,97 @@
+body,td,th,input,textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #A8BCCB;
+	background-image: url(background.png);
+	background-repeat: repeat-x;
+	margin: 0px;
+}
+form {
+	margin: 0;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #003366;
+	height: 1px;
+}
+h1 {
+	text-align: center;
+	font-size: 20px;
+	color: #000000;
+	text-transform: uppercase;
+}
+h2 {
+	font-size: 15px;
+	color: #336699;
+	margin: 5px 0px 5px 0px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+.note {
+	color: #666666;
+	font-size: 10px;
+}
+label {
+	cursor: pointer;
+}
+.menu {
+	margin: 0;
+	padding: 0;
+	padding-top: 8px;
+	padding-bottom: 10px;
+	padding-left: 8px;
+    background: #000 url(menu.png) ;
+    background-repeat:repeat-x;
+}
+.menu li {
+	list-style-type: none;
+	display: inline;
+	padding-right: 1px;
+}
+.menu a, .menu a:link, .menu a:active, .menu a:visited {
+	border-bottom: 0;
+	padding: 7px 11px 9px 11px;
+	color: #fff;
+}
+.menu a:hover {
+	text-decoration: none;
+	color: #fff;
+    background: #fff url(menuo.png) ;
+    background-repeat:repeat-x;
+}
+.current a, .current a:link, .current a:active, .current a:visited {
+	background: #fff url(menuo.png) ;
+    background-repeat:repeat-x;
+	color: #fff;
+}
+.content {
+    background: #fff url(bgtitle.png) ;
+    background-repeat:repeat-x;
+	padding: 20px;
+	height: 280px;
+	width: 750px;
+	text-align: left;
+	vertical-align: top;
+}
+.row_a {
+	background-color: #ECF3F7;
+}
+.row_b {
+	background-color: #DBEBF2;
+}
+.hide {
+	display: none;
+}
+
+input:focus, select:focus, textarea:focus {
+	background: #F1F8FD;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/stylesheet.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/interface/logo.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/menu.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/interface/menu.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/background.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/interface/background.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/menuo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/interface/menuo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/bgtitle.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/interface/bgtitle.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/success.html
===================================================================
--- tags/2.7.0/wb/admin/interface/success.html	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/success.html	(revision 838)
@@ -0,0 +1,16 @@
+<!-- BEGIN main_block -->
+<center>
+	
+	{MESSAGE}
+	
+	<script language="javascript" type="text/javascript">
+		setTimeout("location.href='{REDIRECT}'", 500);
+	</script>
+	
+	<noscript>
+		<br /><br />
+		<a href="{REDIRECT}">{NEXT}</a>
+	</noscript>
+	
+</center>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/success.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/er_levels.php
===================================================================
--- tags/2.7.0/wb/admin/interface/er_levels.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/er_levels.php	(revision 838)
@@ -0,0 +1,59 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Error Reporting Level's list file
+
+This file is used to generate a list of PHP
+Error Reporting Level's for the user to select
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Define that this file is loaded
+if(!defined('ERROR_REPORTING_LEVELS_LOADED')) {
+	define('ERROR_REPORTING_LEVELS_LOADED', true);
+}
+
+// Create array
+$ER_LEVELS = array();
+
+// Add values to list
+if(isset($TEXT['SYSTEM_DEFAULT'])) {
+	$ER_LEVELS[''] = $TEXT['SYSTEM_DEFAULT'];
+} else {
+	$ER_LEVELS[''] = 'System Default';
+}
+$ER_LEVELS['6135'] = 'E_ALL^E_NOTICE'; // standard: E_ALL without E_NOTICE
+$ER_LEVELS['0'] = 'E_NONE';
+$ER_LEVELS['6143'] = 'E_ALL';
+$ER_LEVELS['8191'] = 'E_ALL&E_STRICT'; // for programmers
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/er_levels.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/time_formats.php
===================================================================
--- tags/2.7.0/wb/admin/interface/time_formats.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/time_formats.php	(revision 838)
@@ -0,0 +1,72 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Time format list file
+
+This file is used to generate a list of time formats for the user to select
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Define that this file is loaded
+if(!defined('TIME_FORMATS_LOADED')) {
+	define('TIME_FORMATS_LOADED', true);
+}
+
+// Create array
+$TIME_FORMATS = array();
+
+// Get the current time (in the users timezone if required)
+if(isset($user_time) AND $user_time == true) {
+	$mktime = mktime()+TIMEZONE;
+} else {
+	$mktime = mktime()+DEFAULT_TIMEZONE;
+}
+
+// Add values to list
+$TIME_FORMATS['g:i|A'] = gmdate('g:i A', $mktime);
+$TIME_FORMATS['g:i|a'] = gmdate('g:i a', $mktime);
+$TIME_FORMATS['H:i:s'] = gmdate('H:i:s', $mktime);
+$TIME_FORMATS['H:i'] = gmdate('H:i', $mktime);
+
+// Add "System Default" to list (if we need to)
+if(isset($user_time) AND $user_time == true) {
+	if(isset($TEXT['SYSTEM_DEFAULT'])) {
+		$TIME_FORMATS['system_default'] = gmdate(DEFAULT_TIME_FORMAT, $mktime).' ('.$TEXT['SYSTEM_DEFAULT'].')';
+	} else {
+		$TIME_FORMATS['system_default'] = gmdate(DEFAULT_TIME_FORMAT, $mktime).' (System Default)';
+	}
+}
+
+// Reverse array so "System Default" is at the top
+$TIME_FORMATS = array_reverse($TIME_FORMATS, true);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/time_formats.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/charsets.php
===================================================================
--- tags/2.7.0/wb/admin/interface/charsets.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/charsets.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Charset list file
+
+This file is used to generate a list of charsets for the user to select
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Create array
+$CHARSETS = array();
+$CHARSETS['utf-8'] = 'Unicode (utf-8)';
+$CHARSETS['iso-8859-1'] = 'Latin-1 Western European (iso-8859-1)';
+$CHARSETS['iso-8859-2'] = 'Latin-2 Central European (iso-8859-2)';
+$CHARSETS['iso-8859-3'] = 'Latin-3 Southern European (iso-8859-3)';
+$CHARSETS['iso-8859-4'] = 'Latin-4 Baltic (iso-8859-4)';
+$CHARSETS['iso-8859-5'] = 'Cyrillic (iso-8859-5)';
+$CHARSETS['iso-8859-6'] = 'Arabic (iso-8859-6)';
+$CHARSETS['iso-8859-7'] = 'Greek (iso-8859-7)';
+$CHARSETS['iso-8859-8'] = 'Hebrew (iso-8859-8)';
+$CHARSETS['iso-8859-9'] = 'Latin-5 Turkish (iso-8859-9)';
+$CHARSETS['iso-8859-10'] = 'Latin-6 Nordic (iso-8859-10)';
+$CHARSETS['iso-8859-11'] = 'Thai (iso-8859-11)';
+$CHARSETS['gb2312'] = 'Chinese Simplified (gb2312)';
+$CHARSETS['big5'] = 'Chinese Traditional (big5)';
+$CHARSETS['iso-2022-jp'] = 'Japanese (iso-2022-jp)';
+$CHARSETS['iso-2022-kr'] = 'Korean (iso-2022-kr)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/charsets.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/timezones.php
===================================================================
--- tags/2.7.0/wb/admin/interface/timezones.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/timezones.php	(revision 838)
@@ -0,0 +1,82 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Timezone list file
+
+This file is used to generate a list of timezones for the user to select
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Create array
+$TIMEZONES = array();
+
+// Add "System Default" to top of list
+if(isset($TEXT['SYSTEM_DEFAULT'])) {
+	$TIMEZONES['-20'] = $TEXT['SYSTEM_DEFAULT'];
+} else {
+	$TIMEZONES['-20'] = 'System Default';
+}
+
+$TIMEZONES['-12'] = 'GMT - 12 Hours';
+$TIMEZONES['-11'] = 'GMT -11 Hours';
+$TIMEZONES['-10'] = 'GMT -10 Hours';
+$TIMEZONES['-9'] = 'GMT -9 Hours';
+$TIMEZONES['-8'] = 'GMT -8 Hours';
+$TIMEZONES['-7'] = 'GMT -7 Hours';
+$TIMEZONES['-6'] = 'GMT -6 Hours';
+$TIMEZONES['-5'] = 'GMT -5 Hours';
+$TIMEZONES['-4'] = 'GMT -4 Hours';
+$TIMEZONES['-3.5'] = 'GMT -3.5 Hours';
+$TIMEZONES['-3'] = 'GMT -3 Hours';
+$TIMEZONES['-2'] = 'GMT -2 Hours';
+$TIMEZONES['-1'] = 'GMT -1 Hour';
+$TIMEZONES['0'] = 'GMT';
+$TIMEZONES['1'] = 'GMT +1 Hour';
+$TIMEZONES['2'] = 'GMT +2 Hours';
+$TIMEZONES['3'] = 'GMT +3 Hours';
+$TIMEZONES['3.5'] = 'GMT +3.5 Hours';
+$TIMEZONES['4'] = 'GMT +4 Hours';
+$TIMEZONES['4.5'] = 'GMT +4.5 Hours';
+$TIMEZONES['5'] = 'GMT +5 Hours';
+$TIMEZONES['5.5'] = 'GMT +5.5 Hours';
+$TIMEZONES['6'] = 'GMT +6 Hours';
+$TIMEZONES['6.5'] = 'GMT +6.5 Hours';
+$TIMEZONES['7'] = 'GMT +7 Hours';
+$TIMEZONES['8'] = 'GMT +8 Hours';
+$TIMEZONES['9'] = 'GMT +9 Hours';
+$TIMEZONES['9.5'] = 'GMT +9.5 Hours';
+$TIMEZONES['10'] = 'GMT +10 Hours';
+$TIMEZONES['11'] = 'GMT +11 Hours';
+$TIMEZONES['12'] = 'GMT +12 Hours';
+$TIMEZONES['13'] = 'GMT +13 Hours';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/timezones.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/index.php
===================================================================
--- tags/2.7.0/wb/admin/interface/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/index.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+header('Location: '.ADMIN_URL.'/start/index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/date_formats.php
===================================================================
--- tags/2.7.0/wb/admin/interface/date_formats.php	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/date_formats.php	(revision 838)
@@ -0,0 +1,79 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Date format list file
+
+This file is used to generate a list of date formats for the user to select
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Define that this file is loaded
+if(!defined('DATE_FORMATS_LOADED')) {
+	define('DATE_FORMATS_LOADED', true);
+}
+
+// Create array
+$DATE_FORMATS = array();
+
+// Get the current time (in the users timezone if required)
+if(isset($user_time) AND $user_time == true) {
+	$mktime = mktime()+TIMEZONE;
+} else {
+	$mktime = mktime()+DEFAULT_TIMEZONE;
+}
+
+// Add values to list
+$DATE_FORMATS['l,|jS|F,|Y'] = gmdate('l, jS F, Y', $mktime);
+$DATE_FORMATS['jS|F,|Y'] = gmdate('jS F, Y', $mktime);
+$DATE_FORMATS['d|M|Y'] = gmdate('d M Y', $mktime);
+$DATE_FORMATS['M|d|Y'] = gmdate('M d Y', $mktime);
+$DATE_FORMATS['D|M|d,|Y'] = gmdate('D M d, Y', $mktime);
+$DATE_FORMATS['d-m-Y'] = gmdate('d-m-Y', $mktime).' (D-M-Y)';
+$DATE_FORMATS['m-d-Y'] = gmdate('m-d-Y', $mktime).' (M-D-Y)';
+$DATE_FORMATS['d.m.Y'] = gmdate('d.m.Y', $mktime).' (D.M.Y)';
+$DATE_FORMATS['m.d.Y'] = gmdate('m.d.Y', $mktime).' (M.D.Y)';
+$DATE_FORMATS['d/m/Y'] = gmdate('d/m/Y', $mktime).' (D/M/Y)';
+$DATE_FORMATS['m/d/Y'] = gmdate('m/d/Y', $mktime).' (M/D/Y)';
+
+// Add "System Default" to list (if we need to)
+if(isset($user_time) AND $user_time == true) {
+	if(isset($TEXT['SYSTEM_DEFAULT'])) {
+		$DATE_FORMATS['system_default'] = gmdate(DEFAULT_DATE_FORMAT, $mktime).' ('.$TEXT['SYSTEM_DEFAULT'].')';
+	} else {
+		$DATE_FORMATS['system_default'] = gmdate(DEFAULT_DATE_FORMAT, $mktime).' (System Default)';
+	}
+}
+
+// Reverse array so "System Default" is at the top
+$DATE_FORMATS = array_reverse($DATE_FORMATS, true);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/date_formats.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/footer.html
===================================================================
--- tags/2.7.0/wb/admin/interface/footer.html	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/footer.html	(revision 838)
@@ -0,0 +1,20 @@
+<!-- BEGIN footer_block -->
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding: 10px 0px 10px 0px;">
+<tr>
+	<td align="center" style="font-size: 10px;">
+		<!-- Please note: the below reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+		<a href="http://www.websitebaker.org/" style="color: #000000;" target="_blank">Website Baker</a>
+		is	released under the
+		<a href="http://www.gnu.org/licenses/gpl.html" style="color: #000000;" target="_blank">GNU General Public License</a>
+		<!-- Please note: the above reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+	</td>
+</tr>
+</table>
+
+</body>
+</html>
+<!-- END footer_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/footer.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/interface/error.html
===================================================================
--- tags/2.7.0/wb/admin/interface/error.html	(nonexistent)
+++ tags/2.7.0/wb/admin/interface/error.html	(revision 838)
@@ -0,0 +1,10 @@
+<!-- BEGIN main_block -->
+<center>
+	
+	{MESSAGE}
+	
+	<br /><br />
+	<a href="{LINK}">{BACK}</a>
+	
+</center>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/interface/error.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/settings2.php
===================================================================
--- tags/2.7.0/wb/admin/pages/settings2.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/settings2.php	(revision 838)
@@ -0,0 +1,247 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page id
+if(!isset($_POST['page_id']) OR !is_numeric($_POST['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_POST['page_id'];
+}
+
+// Create new admin object and print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_settings');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get values
+$page_title = $admin->get_post_escaped('page_title');
+$page_title = htmlspecialchars($page_title);
+$menu_title = $admin->get_post_escaped('menu_title');
+$menu_title = htmlspecialchars($menu_title);
+$description = htmlspecialchars($admin->add_slashes($admin->get_post('description')));
+$keywords = htmlspecialchars($admin->add_slashes($admin->get_post('keywords')));
+$parent = $admin->get_post_escaped('parent');
+$visibility = $admin->get_post_escaped('visibility');
+$template = $admin->get_post_escaped('template');
+$target = $admin->get_post_escaped('target');
+$admin_groups = $admin->get_post_escaped('admin_groups');
+$viewing_groups = $admin->get_post_escaped('viewing_groups');
+$searching = $admin->get_post_escaped('searching');
+$language = $admin->get_post_escaped('language');
+$menu = $admin->get_post_escaped('menu');
+
+// Validate data
+if($page_title == '' || substr($page_title,0,1)=='.') {
+	$admin->print_error($MESSAGE['PAGES']['BLANK_PAGE_TITLE']);
+}
+if($menu_title == '' || substr($menu_title,0,1)=='.') {
+	$admin->print_error($MESSAGE['PAGES']['BLANK_MENU_TITLE']);
+}
+
+// Get existing perms
+$database = new database();
+$results = $database->query("SELECT parent,link,position,admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_parent = $results_array['parent'];
+$old_link = $results_array['link'];
+$old_position = $results_array['position'];
+$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
+$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
+
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+	$in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Setup admin groups
+$admin_groups[] = 1;
+//if(!in_array(1, $admin->get_groups_id())) {
+//	$admin_groups[] = implode(",",$admin->get_groups_id());
+//}
+$admin_groups = implode(',', $admin_groups);
+// Setup viewing groups
+$viewing_groups[] = 1;
+//if(!in_array(1, $admin->get_groups_id())) {
+//	$viewing_groups[] = implode(",",$admin->get_groups_id());
+//}
+$viewing_groups = implode(',', $viewing_groups);
+
+// If needed, get new order
+if($parent != $old_parent) {
+	// Include ordering class
+	require(WB_PATH.'/framework/class.order.php');
+	$order = new order(TABLE_PREFIX.'pages', 'position', 'page_id', 'parent');
+	// Get new order
+	$position = $order->get_new($parent);
+	// Clean new order
+	$order->clean($parent);
+} else {
+	$position = $old_position;
+}
+
+// Work out level and root parent
+if ($parent!='0') {
+	$level = level_count($parent)+1;
+	$root_parent = root_parent($parent);
+}
+else {
+	$level = '0';
+	$root_parent = '0';
+}
+
+// Work-out what the link should be
+if($parent == '0') {
+	$link = '/'.page_filename($menu_title);
+	// rename menu titles: index && intro to prevent clashes with intro page feature and WB core file /pages/index.php
+	if($link == '/index' || $link == '/intro') {
+		$link .= '_' .$page_id;
+		$filename = WB_PATH.PAGES_DIRECTORY.'/'.page_filename($menu_title).'_'.$page_id .PAGE_EXTENSION; 
+	} else {
+		$filename = WB_PATH.PAGES_DIRECTORY.'/'.page_filename($menu_title).PAGE_EXTENSION; 
+	}
+} else {
+	$parent_section = '';
+	$parent_titles = array_reverse(get_parent_titles($parent));
+	foreach($parent_titles AS $parent_title) {
+		$parent_section .= page_filename($parent_title).'/';
+	}
+	if($parent_section == '/') { $parent_section = ''; }
+	$link = '/'.$parent_section.page_filename($menu_title);
+	$filename = WB_PATH.PAGES_DIRECTORY.'/'.$parent_section.page_filename($menu_title).PAGE_EXTENSION;  
+}
+
+// Check if a page with same page filename exists
+$database = new database();
+$get_same_page = $database->query("SELECT page_id,page_title FROM ".TABLE_PREFIX."pages WHERE link = '$link' and page_id != '$page_id'");
+if($get_same_page->numRows() > 0) {
+	$admin->print_error($MESSAGE['PAGES']['PAGE_EXISTS']);
+}
+
+// Update page with new order
+$query = "UPDATE ".TABLE_PREFIX."pages SET parent = '$parent', position = '$position' WHERE page_id = '$page_id'";
+$database = new database();
+$database->query($query);
+
+// Get page trail
+$page_trail = get_page_trail($page_id);
+
+// Update page settings in the pages table
+$query = "UPDATE ".TABLE_PREFIX."pages SET parent = '$parent', page_title = '$page_title', menu_title = '$menu_title', menu = '$menu', level = '$level', page_trail = '$page_trail', root_parent = '$root_parent', link = '$link', template = '$template', target = '$target', description = '$description', keywords = '$keywords', position = '$position', visibility = '$visibility', searching = '$searching', language = '$language', admin_groups = '$admin_groups', viewing_groups = '$viewing_groups' WHERE page_id = '$page_id'";
+$database->query($query);
+
+// Clean old order if needed
+if($parent != $old_parent) {
+	$order->clean($old_parent);
+}
+
+/* BEGIN page "access file" code */
+
+// Create a new file in the /pages dir if title changed
+if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/')) {
+	$admin->print_error($MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE']);
+} else {
+	// First check if we need to create a new file
+	if($old_link != $link) {
+		// Delete old file
+		$old_filename = WB_PATH.PAGES_DIRECTORY.$old_link.PAGE_EXTENSION;
+		if(file_exists($old_filename)) {
+			unlink($old_filename);
+		}
+		// Create access file
+		create_access_file($filename,$page_id,$level);
+		// Move a directory for this page
+		if(file_exists(WB_PATH.PAGES_DIRECTORY.$old_link.'/') AND is_dir(WB_PATH.PAGES_DIRECTORY.$old_link.'/')) {
+			rename(WB_PATH.PAGES_DIRECTORY.$old_link.'/', WB_PATH.PAGES_DIRECTORY.$link.'/');
+		}
+		// Update any pages that had the old link with the new one
+		$old_link_len = strlen($old_link);
+		$query_subs = $database->query("SELECT page_id,link,level FROM ".TABLE_PREFIX."pages WHERE link LIKE '%$old_link/%' ORDER BY LEVEL ASC");
+		if($query_subs->numRows() > 0) {
+			while($sub = $query_subs->fetchRow()) {
+				// Double-check to see if it contains old link
+				if(substr($sub['link'], 0, $old_link_len) == $old_link) {
+					// Get new link
+					$replace_this = $old_link;
+					$old_sub_link_len =strlen($sub['link']);
+					$new_sub_link = $link.'/'.substr($sub['link'],$old_link_len+1,$old_sub_link_len);
+					// Work out level
+					$new_sub_level = level_count($sub['page_id']);
+					// Update level and link
+					$database->query("UPDATE ".TABLE_PREFIX."pages SET link = '$new_sub_link', level = '$new_sub_level' WHERE page_id = '".$sub['page_id']."' LIMIT 1");
+					// Re-write the access file for this page
+					$old_subpage_file = WB_PATH.PAGES_DIRECTORY.$new_sub_link.PAGE_EXTENSION;
+					if(file_exists($old_subpage_file)) {
+						unlink($old_subpage_file);
+					}
+					create_access_file(WB_PATH.PAGES_DIRECTORY.$new_sub_link.PAGE_EXTENSION, $sub['page_id'], $new_sub_level);
+				}
+			}
+		}
+	}
+}
+
+// Function to fix page trail of subs
+function fix_page_trail($parent,$root_parent) {
+	// Get objects and vars from outside this function
+	global $admin, $template, $database, $TEXT, $MESSAGE;
+	// Get page list from database
+	$database = new database();
+	$query = "SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent = '$parent'";
+	$get_pages = $database->query($query);
+	// Insert values into main page list
+	if($get_pages->numRows() > 0)	{
+		while($page = $get_pages->fetchRow()) {
+			// Fix page trail
+			$database->query("UPDATE ".TABLE_PREFIX."pages SET ".($root_parent != 0 ?"root_parent = '$root_parent', ":"")." page_trail = '".get_page_trail($page['page_id'])."' WHERE page_id = '".$page['page_id']."'");
+			// Run this query on subs
+			fix_page_trail($page['page_id'],$root_parent);
+		}
+	}
+}
+// Fix sub-pages page trail
+fix_page_trail($page_id,$root_parent);
+
+/* END page "access file" code */
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/settings.php?page_id='.$page_id);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED_SETTINGS'], ADMIN_URL.'/pages/index.php');
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/pages/settings2.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/add.php
===================================================================
--- tags/2.7.0/wb/admin/pages/add.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/add.php	(revision 838)
@@ -0,0 +1,177 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create new admin object and print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_add');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get values
+$title = $admin->get_post_escaped('title');
+$title = htmlspecialchars($title);
+$module = $admin->get_post('type');
+$parent = $admin->get_post('parent');
+$visibility = $admin->get_post('visibility');
+$admin_groups = $admin->get_post('admin_groups');
+$viewing_groups = $admin->get_post('viewing_groups');
+
+// add Admin to admin and viewing-groups
+$admin_groups[] = 1;
+$viewing_groups[] = 1;
+
+if ($parent!=0) {
+	if (!$admin->get_page_permission($parent,'admin'))
+		$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+} elseif (!$admin->get_permission('pages_add_l0','system')) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}	
+
+// Validate data
+if($title == '' || substr($title,0,1)=='.') {
+	$admin->print_error($MESSAGE['PAGES']['BLANK_PAGE_TITLE']);
+}
+
+// Check to see if page created has needed permissions
+if(!in_array(1, $admin->get_groups_id())) {
+	$admin_perm_ok = false;
+	foreach ($admin_groups as $adm_group) {
+		if (in_array($adm_group, $admin->get_groups_id())) {
+			$admin_perm_ok = true;
+		}
+	}
+	if ($admin_perm_ok == false) {
+		$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+	}
+	$admin_perm_ok = false;
+	foreach ($viewing_groups as $view_group) {
+		if (in_array($view_group, $admin->get_groups_id())) {
+			$admin_perm_ok = true;
+		}
+	}
+	if ($admin_perm_ok == false) {
+		$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+	}
+}
+
+$admin_groups = implode(',', $admin_groups);
+$viewing_groups = implode(',', $viewing_groups);
+
+// Work-out what the link and page filename should be
+if($parent == '0') {
+	$link = '/'.page_filename($title);
+	// rename menu titles: index && intro to prevent clashes with intro page feature and WB core file /pages/index.php
+	if($link == '/index' || $link == '/intro') {
+		$link .= '_0';
+		$filename = WB_PATH .PAGES_DIRECTORY .'/' .page_filename($title) .'_0' .PAGE_EXTENSION;
+	} else {
+		$filename = WB_PATH.PAGES_DIRECTORY.'/'.page_filename($title).PAGE_EXTENSION;
+	}
+} else {
+	$parent_section = '';
+	$parent_titles = array_reverse(get_parent_titles($parent));
+	foreach($parent_titles AS $parent_title) {
+		$parent_section .= page_filename($parent_title).'/';
+	}
+	if($parent_section == '/') { $parent_section = ''; }
+	$link = '/'.$parent_section.page_filename($title);
+	$filename = WB_PATH.PAGES_DIRECTORY.'/'.$parent_section.page_filename($title).PAGE_EXTENSION;
+	make_dir(WB_PATH.PAGES_DIRECTORY.'/'.$parent_section);
+}
+
+// Check if a page with same page filename exists
+$get_same_page = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE link = '$link'");
+if($get_same_page->numRows() > 0 OR file_exists(WB_PATH.PAGES_DIRECTORY.$link.PAGE_EXTENSION) OR file_exists(WB_PATH.PAGES_DIRECTORY.$link.'/')) {
+	$admin->print_error($MESSAGE['PAGES']['PAGE_EXISTS']);
+}
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+$order = new order(TABLE_PREFIX.'pages', 'position', 'page_id', 'parent');
+// First clean order
+$order->clean($parent);
+// Get new order
+$position = $order->get_new($parent);
+
+// Work-out if the page parent (if selected) has a seperate template to the default
+$query_parent = $database->query("SELECT template FROM ".TABLE_PREFIX."pages WHERE page_id = '$parent'");
+if($query_parent->numRows() > 0) {
+	$fetch_parent = $query_parent->fetchRow();
+	$template = $fetch_parent['template'];
+} else {
+	$template = '';
+}
+
+// Insert page into pages table
+$query = "INSERT INTO ".TABLE_PREFIX."pages (page_title,menu_title,parent,template,target,position,visibility,searching,menu,language,admin_groups,viewing_groups,modified_when,modified_by) VALUES ('$title','$title','$parent','$template','_top','$position','$visibility','1','1','".DEFAULT_LANGUAGE."','$admin_groups','$viewing_groups','".mktime()."','".$admin->get_user_id()."')";
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+}
+
+// Get the page id
+$page_id = $database->get_one("SELECT LAST_INSERT_ID()");
+
+// Work out level
+$level = level_count($page_id);
+// Work out root parent
+$root_parent = root_parent($page_id);
+// Work out page trail
+$page_trail = get_page_trail($page_id);
+
+// Update page with new level and link
+$database->query("UPDATE ".TABLE_PREFIX."pages SET link = '$link', level = '$level', root_parent = '$root_parent', page_trail = '$page_trail' WHERE page_id = '$page_id'");
+
+// Create a new file in the /pages dir
+create_access_file($filename, $page_id, $level);
+
+// Get new order for section
+$order = new order(TABLE_PREFIX.'sections', 'position', 'section_id', 'page_id');
+$position = $order->get_new($parent);
+
+// Add new record into the sections table
+$database->query("INSERT INTO ".TABLE_PREFIX."sections (page_id,position,module,block) VALUES ('$page_id','$position', '$module','1')");
+
+// Get the section id
+$section_id = $database->get_one("SELECT LAST_INSERT_ID()");
+
+// Include the selected modules add file if it exists
+if(file_exists(WB_PATH.'/modules/'.$module.'/add.php')) {
+	require(WB_PATH.'/modules/'.$module.'/add.php');
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['PAGES']['ADDED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/index.php
===================================================================
--- tags/2.7.0/wb/admin/pages/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/index.php	(revision 838)
@@ -0,0 +1,606 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages');
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+?>
+<!-- Addition for remembering expanded state of pages -->
+<script language="JavaScript">
+function writeSessionCookie (cookieName, cookieValue) {
+    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + ";";
+}
+</script>
+<!-- End addition -->
+
+<script type="text/javascript" language="javascript">
+function toggle_viewers() {
+	if(document.add.visibility.value == 'private') {
+		document.getElementById('viewers').style.display = 'block';
+	} else if(document.add.visibility.value == 'registered') {
+		document.getElementById('viewers').style.display = 'block';
+	} else {
+		document.getElementById('viewers').style.display = 'none';
+	}
+}
+function toggle_visibility(id){
+	if(document.getElementById(id).style.display == "block") {
+		document.getElementById(id).style.display = "none";
+		writeSessionCookie (id, "0");//Addition for remembering expanded state of pages
+	} else {
+		document.getElementById(id).style.display = "block";
+		writeSessionCookie (id, "1");//Addition for remembering expanded state of pages
+	}
+}
+var plus = new Image;
+plus.src = "<?php echo ADMIN_URL; ?>/images/plus_16.png";
+var minus = new Image;
+minus.src = "<?php echo ADMIN_URL; ?>/images/minus_16.png";
+function toggle_plus_minus(id) {
+	var img_src = document.images['plus_minus_' + id].src;
+	if(img_src == plus.src) {
+		document.images['plus_minus_' + id].src = minus.src;
+	} else {
+		document.images['plus_minus_' + id].src = plus.src;
+	}
+}
+</script>
+
+<style type="text/css">
+.pages_list img {
+	display: block;
+}
+ul, li {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+.page_list {
+	display: none;
+}
+</style>
+
+<noscript>
+	<style type="text/css">
+	.page_list {
+		display: block;
+	}
+	</style>
+</noscript>
+<?php
+
+function make_list($parent, $editable_pages) {
+	// Get objects and vars from outside this function
+	global $admin, $template, $database, $TEXT, $MESSAGE, $HEADING;
+	?>
+	<ul id="p<?php echo $parent; ?>" <?php if($parent != 0) { echo 'class="page_list" '; if(isset($_COOKIE["p".$parent]) && $_COOKIE["p".$parent] =="1"){echo'style="display:block;"'; }} ?>>
+	<?php	
+	// Get page list from database
+	$database = new database();
+	if(PAGE_TRASH != 'inline') {
+		$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' AND visibility != 'deleted' ORDER BY position ASC";
+	} else {
+		$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' ORDER BY position ASC";
+	}
+	$get_pages = $database->query($query);
+	
+	// Insert values into main page list
+	if($get_pages->numRows() > 0)	{
+		while($page = $get_pages->fetchRow()) {
+			// Get user perms
+			$admin_groups = explode(',', str_replace('_', '', $page['admin_groups']));
+			$admin_users = explode(',', str_replace('_', '', $page['admin_users']));
+
+			$in_group = FALSE;
+			foreach($admin->get_groups_id() as $cur_gid){
+			    if (in_array($cur_gid, $admin_groups)) {
+			        $in_group = TRUE;
+			    }
+			}
+			if(($in_group) OR is_numeric(array_search($admin->get_user_id(), $admin_users))) {
+				if($page['visibility'] == 'deleted') {
+					if(PAGE_TRASH == 'inline') {
+						$can_modify = true;
+						$editable_pages = $editable_pages+1;
+					} else {
+						$can_modify = false;
+					}
+				} elseif($page['visibility'] != 'deleted') {
+					$can_modify = true;
+					$editable_pages = $editable_pages+1;
+				}
+			} else {
+				if($page['visibility'] == 'private') {
+					continue;
+				}
+				else {
+					$can_modify = false;
+				}
+			}
+						
+			// Work out if we should show a plus or not
+			if(PAGE_TRASH != 'inline') {
+				$get_page_subs = $database->query("SELECT page_id,admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE parent = '".$page['page_id']."' AND visibility!='deleted'");
+			} else {
+				$get_page_subs = $database->query("SELECT page_id,admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE parent = '".$page['page_id']."'");
+			}
+			if($get_page_subs->numRows() > 0) {
+				$display_plus = true;
+			} else {
+				$display_plus = false;
+			}
+			
+			// Work out how many pages there are for this parent
+			$num_pages = $get_pages->numRows();
+			?>
+			
+			<li id="p<?php echo $page['parent']; ?>" style="padding: 2px 0px 2px 0px;">
+			<table width="720" cellpadding="1" cellspacing="0" border="0" style="background-color: #ECF3F7;">
+			<tr onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#ECF3F7'">
+				<td width="20" style="padding-left: <?php echo $page['level']*20; ?>px;">
+					<?php
+					if($display_plus == true) {
+					?>
+					<a href="javascript: toggle_visibility('p<?php echo $page['page_id']; ?>');" title="<?php echo $TEXT['EXPAND'].'/'.$TEXT['COLLAPSE']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/<?php if(isset($_COOKIE["p".$page['page_id']]) && $_COOKIE["p".$page['page_id']] =="1"){echo"minus";}else{echo"plus";}?>_16.png" onclick="toggle_plus_minus('<?php echo $page['page_id']; ?>');" name="plus_minus_<?php echo $page['page_id']; ?>" border="0" alt="+" />
+					</a>
+					<?php
+					}
+					?>
+				</td>
+				<?php if($admin->get_permission('pages_modify') == true AND $can_modify == true) { ?>
+				<td>
+					<a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+						<?php if($page['visibility'] == 'public') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/visible_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PUBLIC']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } elseif($page['visibility'] == 'private') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/private_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PRIVATE']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } elseif($page['visibility'] == 'registered') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/keys_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['REGISTERED']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } elseif($page['visibility'] == 'hidden') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/hidden_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['HIDDEN']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } elseif($page['visibility'] == 'none') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/none_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['NONE']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } elseif($page['visibility'] == 'deleted') { ?>
+							<img src="<?php echo ADMIN_URL; ?>/images/deleted_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['DELETED']; ?>" border="0" align="left" style="margin-right: 5px" />
+						<?php } 
+						echo ($page['page_title']); ?>
+					</a>				
+				</td>
+				<?php } else { ?>
+				<td>
+					<?php if($page['visibility'] == 'public') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/visible_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PUBLIC']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } elseif($page['visibility'] == 'private') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/private_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PRIVATE']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } elseif($page['visibility'] == 'registered') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/keys_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['REGISTERED']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } elseif($page['visibility'] == 'hidden') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/hidden_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['HIDDEN']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } elseif($page['visibility'] == 'none') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/none_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['NONE']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } elseif($page['visibility'] == 'deleted') { ?>
+						<img src="<?php echo ADMIN_URL; ?>/images/deleted_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['DELETED']; ?>" border="0" align="left" style="margin-right: 5px" />
+					<?php } 
+					echo ($page['page_title']); ?>
+				</td>
+				<?php } ?>
+				<td align="left" width="252">
+					<font color="#999999"><?php echo ($page['menu_title']); ?></font>
+				</td>
+				<td width="20">
+					<?php if($page['visibility'] != 'deleted' AND $page['visibility'] != 'none') { ?>
+					<a href="<?php echo $admin->page_link($page['link']); ?>" target="_blank" title="<?php echo $TEXT['VIEW']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/view_16.png" border="0" alt="<?php echo $TEXT['VIEW']; ?>" />
+					</a>
+					<?php } ?>
+				</td>
+				<td width="20">
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/settings.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['SETTINGS']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="<?php echo $TEXT['SETTINGS']; ?>" />
+						</a>
+						<?php } ?>
+					<?php } else { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/restore.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['RESTORE']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/restore_16.png" border="0" alt="<?php echo $TEXT['RESTORE']; ?>" />
+						</a>
+					<?php } ?>
+				</td>
+				<!-- MANAGE SECTIONS AND DATES BUTTONS -->
+				<td width="20">
+				<?php
+				// Work-out if we should show the "manage dates" link
+				if(MANAGE_SECTIONS == 'enabled' && $admin->get_permission('pages_modify')==true && $can_modify==true) {
+					$query_sections = $database->query("SELECT publ_start, publ_end FROM ".TABLE_PREFIX."sections WHERE page_id = '{$page['page_id']}' AND module != 'menu_link'");
+					if($query_sections->numRows() > 0) {
+						$mdate_display=false;
+						while($mdate_res = $query_sections->fetchRow()) {
+							if($mdate_res['publ_start']!='0' || $mdate_res['publ_end']!='0') {
+								$mdate_display=true;
+								break;
+							}
+						}
+						if($mdate_display==1) {
+							$file=$admin->page_is_active($page)?"clock_16.png":"clock_red_16.png";
+							?>
+							<a href="<?php echo ADMIN_URL; ?>/pages/sections.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $HEADING['MANAGE_SECTIONS']; ?>">
+							<img src="<?php echo ADMIN_URL."/images/$file"; ?>" border="0" alt="<?php echo $HEADING['MANAGE_SECTIONS']; ?>" />	
+							</a>
+						<?php } else { ?>
+							<a href="<?php echo ADMIN_URL; ?>/pages/sections.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $HEADING['MANAGE_SECTIONS']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/noclock_16.png" border="0" alt="<?php echo $HEADING['MANAGE_SECTIONS']; ?>" /></a>	
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td width="20">
+				<?php if($page['position'] != 1) { ?>
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/move_up.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" border="0" alt="^" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td width="20">
+				<?php if($page['position'] != $num_pages) { ?>
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/move_down.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" border="0" alt="v" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td width="20">
+					<?php if($admin->get_permission('pages_delete') == true AND $can_modify == true) { ?>
+					<a href="javascript: confirm_link('<?php echo $MESSAGE['PAGES']['DELETE_CONFIRM']; ?>?', '<?php echo ADMIN_URL; ?>/pages/delete.php?page_id=<?php echo $page['page_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+					</a>
+					<?php } ?>
+				</td>
+			</tr>
+			</table>
+			</li>
+							
+			<?php
+			// Get subs
+			$editable_pages=make_list($page['page_id'], $editable_pages);
+		}
+
+	}
+	?>
+	</ul>
+	<?php
+	return $editable_pages;
+}
+
+// Generate pages list
+if($admin->get_permission('pages_view') == true) {
+	?>
+	<table cellpadding="0" cellspacing="0" width="100%" border="0">
+	<tr>
+		<td>
+			<h2><?php echo $HEADING['MODIFY_DELETE_PAGE']; ?></h2>
+		</td>
+		<td align="right">
+			<?php
+				// Check if there are any pages that are in trash, and if we should show a link to the trash page
+				if(PAGE_TRASH == 'separate') {
+					$query_trash = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE visibility = 'deleted'");
+					if($query_trash->numRows() > 0) {
+						?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/trash.php">
+						<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" alt="<?php echo $TEXT['PAGE_TRASH']; ?>" border="0" />
+						<?php echo $TEXT['VIEW_DELETED_PAGES']; ?></a>
+						<?php
+					}
+				}
+			?>
+		</td>
+	</tr>
+	</table>
+	<div class="pages_list">
+	<table cellpadding="0" cellspacing="0" width="720px" border="0">
+	<tr>
+		<td width="20px">
+			&nbsp;
+		</td>
+		<td width="314px">
+			<?php echo $TEXT['VISIBILITY'] .' / ' .$TEXT['PAGE_TITLE']; ?>:
+		</td>
+		<td width="256px" align="left">
+			<?php echo $TEXT['MENU_TITLE']; ?>:
+		</td>
+		<td width="130px" align="center">
+			<?php echo $TEXT['ACTIONS']; ?>:
+		</td>		
+	</tr>
+	</table>
+	<?php
+	$editable_pages = make_list(0, 0);
+	?>
+	</div>
+	<div class="empty_list">
+		<?php echo $TEXT['NONE_FOUND']; ?>
+	</div>
+	<?php
+} else {
+	$editable_pages = 0;
+}
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/pages');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Figure out if the no pages found message should be shown or not
+if($editable_pages == 0) {
+	?>
+	<style type="text/css">
+	.pages_list {
+		display: none;
+	}
+	</style>
+	<?php
+} else {
+	?>
+	<style type="text/css">
+	.empty_list {
+		display: none;
+	}
+	</style>
+	<?php
+}
+
+// Insert values into the add page form
+
+// Group list 1
+
+	$query = "SELECT * FROM ".TABLE_PREFIX."groups";
+
+	$get_groups = $database->query($query);
+	$template->set_block('main_block', 'group_list_block', 'group_list');
+	// Insert admin group and current group first
+	$admin_group_name = $get_groups->fetchRow();
+	$template->set_var(array(
+									'ID' => 1,
+									'TOGGLE' => '',
+									'DISABLED' => ' disabled',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' checked'
+									)
+							);
+	$template->parse('group_list', 'group_list_block', true);
+
+	while($group = $get_groups->fetchRow()) {
+		// check if the user is a member of this group
+		$flag_disabled = '';
+		$flag_checked =  '';
+		$flag_cursor =   'pointer';
+		$flag_color =    '';
+		if (in_array($group["group_id"], $admin->get_groups_id())) {
+			$flag_disabled = ''; //' disabled';
+			$flag_checked =  ' checked';
+			$flag_cursor =   'default';
+			$flag_color =    '000000';
+		}
+
+		// Check if the group is allowed to edit pages
+		$system_permissions = explode(',', $group['system_permissions']);
+		if(is_numeric(array_search('pages_modify', $system_permissions))) {
+			$template->set_var(array(
+											'ID' => $group['group_id'],
+											'TOGGLE' => $group['group_id'],
+											'CHECKED' => $flag_checked,
+											'DISABLED' => $flag_disabled,
+											'LINK_COLOR' => $flag_color,
+											'CURSOR' => $flag_checked,
+											'NAME' => $group['name'],
+											)
+									);
+			$template->parse('group_list', 'group_list_block', true);
+		}
+	}
+// Group list 2
+
+	$query = "SELECT * FROM ".TABLE_PREFIX."groups";
+
+	$get_groups = $database->query($query);
+	$template->set_block('main_block', 'group_list_block2', 'group_list2');
+	// Insert admin group and current group first
+	$admin_group_name = $get_groups->fetchRow();
+	$template->set_var(array(
+									'ID' => 1,
+									'TOGGLE' => '',
+									'DISABLED' => ' disabled',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' checked'
+									)
+							);
+	$template->parse('group_list2', 'group_list_block2', true);
+
+	while($group = $get_groups->fetchRow()) {
+		// check if the user is a member of this group
+		$flag_disabled = '';
+		$flag_checked =  '';
+		$flag_cursor =   'pointer';
+		$flag_color =    '';
+		if (in_array($group["group_id"], $admin->get_groups_id())) {
+			$flag_disabled = ''; //' disabled';
+			$flag_checked =  ' checked';
+			$flag_cursor =   'default';
+			$flag_color =    '000000';
+		}
+
+		$template->set_var(array(
+										'ID' => $group['group_id'],
+										'TOGGLE' => $group['group_id'],
+										'CHECKED' => $flag_checked,
+										'DISABLED' => $flag_disabled,
+										'LINK_COLOR' => $flag_color,
+										'CURSOR' => $flag_cursor,
+										'NAME' => $group['name'],
+										)
+								);
+		$template->parse('group_list2', 'group_list_block2', true);
+	}
+
+// Parent page list
+$database = new database();
+function parent_list($parent) {
+	global $admin, $database, $template;
+	$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' AND visibility!='deleted' ORDER BY position ASC";
+	$get_pages = $database->query($query);
+	while($page = $get_pages->fetchRow()) {
+		if($admin->page_is_visible($page)==false)
+			continue;
+		// Stop users from adding pages with a level of more than the set page level limit
+		if($page['level']+1 < PAGE_LEVEL_LIMIT) {
+			// Get user perms
+			$admin_groups = explode(',', str_replace('_', '', $page['admin_groups']));
+			$admin_users = explode(',', str_replace('_', '', $page['admin_users']));
+			
+			$in_group = FALSE;
+			foreach($admin->get_groups_id() as $cur_gid){
+			    if (in_array($cur_gid, $admin_groups)) {
+			        $in_group = TRUE;
+			    }
+			}
+			if(($in_group) OR is_numeric(array_search($admin->get_user_id(), $admin_users))) {
+				$can_modify = true;
+			} else {
+				$can_modify = false;
+			}
+			// Title -'s prefix
+			$title_prefix = '';
+			for($i = 1; $i <= $page['level']; $i++) { $title_prefix .= ' - '; }
+				$template->set_var(array(
+												'ID' => $page['page_id'],
+												'TITLE' => ($title_prefix.$page['page_title'])
+												)
+										);
+				if($can_modify == true) {
+					$template->set_var('DISABLED', '');
+				} else {
+					$template->set_var('DISABLED', ' disabled="disabled" style="color: #aaa;"');
+				}
+				$template->parse('page_list2', 'page_list_block2', true);
+		}
+		parent_list($page['page_id']);
+	}
+}
+$template->set_block('main_block', 'page_list_block2', 'page_list2');
+if($admin->get_permission('pages_add_l0') == true) {
+	$template->set_var(array(
+									'ID' => '0',
+									'TITLE' => $TEXT['NONE'],
+									'SELECTED' => ' selected',
+									'DISABLED' => ''
+									)
+							);
+	$template->parse('page_list2', 'page_list_block2', true);
+}
+parent_list(0);
+
+// Explode module permissions
+$module_permissions = $_SESSION['MODULE_PERMISSIONS'];
+// Modules list
+$template->set_block('main_block', 'module_list_block', 'module_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page' order by name");
+if($result->numRows() > 0) {
+	while ($module = $result->fetchRow()) {
+		// Check if user is allowed to use this module
+		if(!is_numeric(array_search($module['directory'], $module_permissions))) {
+			$template->set_var('VALUE', $module['directory']);
+			$template->set_var('NAME', $module['name']);
+			if($module['directory'] == 'wysiwyg') {
+				$template->set_var('SELECTED', ' selected');
+			} else {
+				$template->set_var('SELECTED', '');
+			}
+			$template->parse('module_list', 'module_list_block', true);
+		}
+	}
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_ADD_PAGE' => $HEADING['ADD_PAGE'],
+								'HEADING_MODIFY_INTRO_PAGE' => $HEADING['MODIFY_INTRO_PAGE']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_TITLE' => $TEXT['TITLE'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_PARENT' => $TEXT['PARENT'],
+								'TEXT_VISIBILITY' => $TEXT['VISIBILITY'],
+								'TEXT_PUBLIC' => $TEXT['PUBLIC'],
+								'TEXT_PRIVATE' => $TEXT['PRIVATE'],
+								'TEXT_REGISTERED' => $TEXT['REGISTERED'],
+								'TEXT_HIDDEN' => $TEXT['HIDDEN'],
+								'TEXT_NONE' => $TEXT['NONE'],
+								'TEXT_NONE_FOUND' => $TEXT['NONE_FOUND'],
+								'TEXT_ADD' => $TEXT['ADD'],
+								'TEXT_RESET' => $TEXT['RESET'],
+								'TEXT_ADMINISTRATORS' => $TEXT['ADMINISTRATORS'],								
+								'TEXT_PRIVATE_VIEWERS' => $TEXT['PRIVATE_VIEWERS'],
+								'TEXT_REGISTERED_VIEWERS' => $TEXT['REGISTERED_VIEWERS'],
+								'INTRO_LINK' => $MESSAGE['PAGES']['INTRO_LINK'],
+								)
+						);
+
+// Insert permissions values
+if($admin->get_permission('pages_add') != true) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+} elseif($admin->get_permission('pages_add_l0') != true AND $editable_pages == 0) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+}
+if($admin->get_permission('pages_intro') != true OR INTRO_PAGE != 'enabled') {
+	$template->set_var('DISPLAY_INTRO', 'hide');
+}
+
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin 
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/pages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/template.html
===================================================================
--- tags/2.7.0/wb/admin/pages/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/template.html	(revision 838)
@@ -0,0 +1,103 @@
+<!-- BEGIN main_block -->
+
+<br />
+
+</div>
+<div class="{DISPLAY_ADD}">
+
+<h2>{HEADING_ADD_PAGE}</h2>
+
+<form name="add" action="add.php" method="post">
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center">
+<tr>
+	<td width="70" height="20">{TEXT_TITLE}:</td>
+	<td with="240" height="20">
+		<input type="text" name="title" style="width: 232px;" />
+	</td>
+	<td rowspan="6" valign="top" style="padding-left: 20px; padding-top: 8px;">
+		{TEXT_ADMINISTRATORS}:
+		<ul style="list-style-type: none; margin: 0; padding: 0;">
+			<!-- BEGIN group_list_block -->
+			<li>
+			<input type="checkbox" name="admin_groups[]" id="admin_group_{ID}" value="{ID}"{CHECKED}{DISABLED} />
+			<label for="admin_group_{TOGGLE}">{NAME}</label>
+			</li>
+			<!-- END group_list_block -->
+		</ul>
+	</td>
+	<td rowspan="6" valign="top" style="padding-left: 20px; padding-top: 8px;">
+		<div id="viewers" style="display: none;">
+			{TEXT_REGISTERED_VIEWERS}:
+			<ul style="list-style-type: none; margin: 0; padding: 0;">
+				<!-- BEGIN group_list_block2 -->
+				<li>
+				<input type="checkbox" name="viewing_groups[]" id="viewing_group_{ID}" value="{ID}"{CHECKED}{DISABLED} />
+				<label for="viewing_group_{TOGGLE}">{NAME}</label>
+				</li>
+				<!-- END group_list_block2 -->
+			</ul>
+		</div>
+	</td>
+</tr>
+<tr height="20">
+	<td width="70">{TEXT_TYPE}:</td>
+	<td with="240">
+		<select name="type" style="width: 240px;">
+			<!-- BEGIN module_list_block -->
+				<option value="{VALUE}"{SELECTED}>{NAME}</option>
+			<!-- END module_list_block -->
+		</select>
+	</td>
+</tr>
+<tr height="20">
+	<td width="70">{TEXT_PARENT}:</td>
+	<td with="240">
+		<select name="parent" style="width: 240px;">
+			<!-- BEGIN page_list_block2 -->
+			<option value="{ID}"{DISABLED}>{TITLE}</option>
+			<!-- END page_list_block2 -->
+		</select>
+	</td>
+</tr>
+<tr height="20">
+	<td width="70">{TEXT_VISIBILITY}:</td>
+	<td width="240">
+		<select name="visibility" onchange="javascript: toggle_viewers();" style="width: 240px;">
+			<option value="public" selected>{TEXT_PUBLIC}</option>
+			<option value="private">{TEXT_PRIVATE}</option>
+			<option value="registered">{TEXT_REGISTERED}</option>
+			<option value="hidden">{TEXT_HIDDEN}</option>
+			<option value="none">{TEXT_NONE}</option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td width="70">&nbsp;</td>
+	<td colspan="4">
+		<input type="submit" name="submit" value="{TEXT_ADD}" style="width: 117px;" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" style="width: 117px;" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+</table>
+
+</form>
+
+</div>
+<div class="{DISPLAY_INTRO}" style="padding-top: 10px;">
+
+<br />
+
+<h2>{HEADING_MODIFY_INTRO_PAGE}</h2>
+
+<a href="intro.php">
+{INTRO_LINK}
+</a>
+
+</div>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/settings.php
===================================================================
--- tags/2.7.0/wb/admin/pages/settings.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/settings.php	(revision 838)
@@ -0,0 +1,463 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_settings');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions-utf8.php');
+
+// Get perms
+$database = new database();
+$results = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', $results_array['admin_groups']);
+$old_admin_users = explode(',', $results_array['admin_users']);
+
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+        $in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Get page details
+$database = new database();
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_header();
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+
+// Get display name of person who last modified the page
+$user=$admin->get_user_details($results_array['modified_by']);
+
+// Convert the unix ts for modified_when to human a readable form
+if($results_array['modified_when'] != 0) {
+	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
+} else {
+	$modified_ts = 'Unknown';
+}
+
+// Setup template object, parse vars to it, then parse it
+$template = new Template(ADMIN_PATH.'/pages');
+$template->set_file('page', 'settings.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var(array(
+								'PAGE_ID' => $results_array['page_id'],
+								'PAGE_TITLE' => ($results_array['page_title']),
+								'MENU_TITLE' => ($results_array['menu_title']),
+								'DESCRIPTION' => ($results_array['description']),
+								'KEYWORDS' => ($results_array['keywords']),
+								'MODIFIED_BY' => $user['display_name'],
+								'MODIFIED_BY_USERNAME' => $user['username'],
+								'MODIFIED_WHEN' => $modified_ts,
+								'ADMIN_URL' => ADMIN_URL
+								)
+						);
+
+// Work-out if we should show the "manage sections" link
+$query_sections = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'menu_link'");
+if($query_sections->numRows() > 0) {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+} elseif(MANAGE_SECTIONS == 'enabled') {
+	$template->set_var('TEXT_MANAGE_SECTIONS', $HEADING['MANAGE_SECTIONS']);
+} else {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+}
+
+// Visibility
+if($results_array['visibility'] == 'public') {
+	$template->set_var('PUBLIC_SELECTED', ' selected');
+} elseif($results_array['visibility'] == 'private') {
+	$template->set_var('PRIVATE_SELECTED', ' selected');
+} elseif($results_array['visibility'] == 'registered') {
+	$template->set_var('REGISTERED_SELECTED', ' selected');
+} elseif($results_array['visibility'] == 'hidden') {
+	$template->set_var('HIDDEN_SELECTED', ' selected');
+} elseif($results_array['visibility'] == 'none') {
+	$template->set_var('NO_VIS_SELECTED', ' selected');
+}
+// Group list 1 (admin_groups)
+	$admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
+
+	$query = "SELECT * FROM ".TABLE_PREFIX."groups";
+	
+	$get_groups = $database->query($query);
+	$template->set_block('main_block', 'group_list_block', 'group_list');
+	// Insert admin group and current group first
+	$admin_group_name = $get_groups->fetchRow();
+	$template->set_var(array(
+									'ID' => 1,
+									'TOGGLE' => '',
+									'DISABLED' => ' disabled',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' checked'
+									)
+							);
+	$template->parse('group_list', 'group_list_block', true);
+	/*
+	if(!in_array(1, $admin->get_groups_id())) {
+		$users_groups = $admin->get_groups_name();
+		foreach ($admin->get_groups_id() as $users_group_id) {
+			$template->set_var(array(
+										'ID' => $users_group_id,
+										'TOGGLE' => '',
+										'DISABLED' => ' disabled',
+										'LINK_COLOR' => '000000',
+										'CURSOR' => 'default',
+										'NAME' => $users_groups[$users_group_id],
+										'CHECKED' => ' checked'
+										)
+								);
+			$template->parse('group_list', 'group_list_block', true);
+		}
+	}
+	*/
+	while($group = $get_groups->fetchRow()) {
+		// check if the user is a member of this group
+		$flag_disabled = '';
+		$flag_checked =  '';
+		$flag_cursor =   'pointer';
+		$flag_color =    '';
+		if (in_array($group["group_id"], $admin->get_groups_id())) {
+			$flag_disabled = ''; //' disabled';
+			$flag_checked =  ''; //' checked';
+			$flag_cursor =   'default';
+			$flag_color =    '000000';
+		}
+
+		// Check if the group is allowed to edit pages
+		$system_permissions = explode(',', $group['system_permissions']);
+		if(is_numeric(array_search('pages_modify', $system_permissions))) {
+			$template->set_var(array(
+											'ID' => $group['group_id'],
+											'TOGGLE' => $group['group_id'],
+											'DISABLED' => $flag_disabled,
+											'LINK_COLOR' => $flag_color,
+											'CURSOR' => $flag_cursor,
+											'NAME' => $group['name'],
+											'CHECKED' => $flag_checked
+											)
+									);
+			if(is_numeric(array_search($group['group_id'], $admin_groups))) {
+				$template->set_var('CHECKED', 'checked');
+			} else {
+				if (!$flag_checked) $template->set_var('CHECKED', '');
+			}
+			$template->parse('group_list', 'group_list_block', true);
+		}
+	}
+// Group list 2 (viewing_groups)
+	$viewing_groups = explode(',', str_replace('_', '', $results_array['viewing_groups']));
+
+	$query = "SELECT * FROM ".TABLE_PREFIX."groups";
+
+	$get_groups = $database->query($query);
+	$template->set_block('main_block', 'group_list_block2', 'group_list2');
+	// Insert admin group and current group first
+	$admin_group_name = $get_groups->fetchRow();
+	$template->set_var(array(
+									'ID' => 1,
+									'TOGGLE' => '',
+									'DISABLED' => ' disabled',
+									'LINK_COLOR' => '000000',
+									'CURSOR' => 'default',
+									'NAME' => $admin_group_name['name'],
+									'CHECKED' => ' checked'
+									)
+							);
+	$template->parse('group_list2', 'group_list_block2', true);
+
+
+	while($group = $get_groups->fetchRow()) {
+		// check if the user is a member of this group
+		$flag_disabled = '';
+		$flag_checked =  '';
+		$flag_cursor =   'pointer';
+		$flag_color =    '';
+		if (in_array($group["group_id"], $admin->get_groups_id())) {
+			$flag_disabled = ''; //' disabled';
+			$flag_checked =  ''; //' checked';
+			$flag_cursor =   'default';
+			$flag_color =    '000000';
+		}
+
+		$template->set_var(array(
+										'ID' => $group['group_id'],
+										'TOGGLE' => $group['group_id'],
+										'DISABLED' => $flag_disabled,
+										'LINK_COLOR' => $flag_color,
+										'CURSOR' => $flag_cursor,
+										'NAME' => $group['name'],
+										'CHECKED' => $flag_checked
+										)
+								);
+		if(is_numeric(array_search($group['group_id'], $viewing_groups))) {
+			$template->set_var('CHECKED', 'checked');
+		} else {
+			if (!$flag_checked) $template->set_var('CHECKED', '');
+		}
+		$template->parse('group_list2', 'group_list_block2', true);
+	}
+// Show private viewers
+if($results_array['visibility'] == 'private' OR $results_array['visibility'] == 'registered') {
+	$template->set_var('DISPLAY_VIEWERS', '');
+} else {
+	$template->set_var('DISPLAY_VIEWERS', 'none');
+}
+
+// Parent page list
+$database = new database();
+function parent_list($parent) {
+	global $admin, $database, $template, $results_array;
+	$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' ORDER BY position ASC";
+	$get_pages = $database->query($query);
+	while($page = $get_pages->fetchRow()) {
+		if($admin->page_is_visible($page)==false)
+			continue;
+		// If the current page cannot be parent, then its children neither
+		$list_next_level = true;
+		// Stop users from adding pages with a level of more than the set page level limit
+		if($page['level']+1 < PAGE_LEVEL_LIMIT) {
+			// Get user perms
+			$admin_groups = explode(',', str_replace('_', '', $page['admin_groups']));
+			$admin_users = explode(',', str_replace('_', '', $page['admin_users']));
+
+			$in_group = FALSE;
+			foreach($admin->get_groups_id() as $cur_gid){
+			    if (in_array($cur_gid, $admin_groups)) {
+			        $in_group = TRUE;
+			    }
+			}
+			
+			if(($in_group) OR is_numeric(array_search($admin->get_user_id(), $admin_users))) {
+				$can_modify = true;
+			} else {
+				$can_modify = false;
+			}
+			// Title -'s prefix
+			$title_prefix = '';
+			for($i = 1; $i <= $page['level']; $i++) { $title_prefix .= ' - '; }
+			$template->set_var(array(
+											'ID' => $page['page_id'],
+											'TITLE' => ($title_prefix.$page['page_title'])
+											)
+									);
+			if($results_array['parent'] == $page['page_id']) {
+				$template->set_var('SELECTED', ' selected');
+			} elseif($results_array['page_id'] == $page['page_id']) {
+				$template->set_var('SELECTED', ' disabled="disabled" style="color: #aaa;"');
+				$list_next_level=false;
+			} elseif($can_modify != true) {
+				$template->set_var('SELECTED', ' disabled="disabled" style="color: #aaa;"');
+			} else {
+				$template->set_var('SELECTED', '');
+			}
+			$template->parse('page_list2', 'page_list_block2', true);
+		}
+		if ($list_next_level)
+			parent_list($page['page_id']);
+	}
+}
+$template->set_block('main_block', 'page_list_block2', 'page_list2');
+if($admin->get_permission('pages_add_l0') == true OR $results_array['level'] == 0) {
+	if($results_array['parent'] == 0) { $selected = ' selected'; } else { $selected = ''; }
+	$template->set_var(array(
+									'ID' => '0',
+									'TITLE' => $TEXT['NONE'],
+									'SELECTED' => $selected
+									)
+							);
+	$template->parse('page_list2', 'page_list_block2', true);
+}
+parent_list(0);
+
+if($modified_ts == 'Unknown') {
+	$template->set_var('DISPLAY_MODIFIED', 'hide');
+} else {
+	$template->set_var('DISPLAY_MODIFIED', '');
+}
+// Templates list
+$template->set_block('main_block', 'template_list_block', 'template_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) { 
+		// Check if the user has perms to use this template
+		if($addon['directory'] == $results_array['template'] OR $admin->get_permission($addon['directory'], 'template') == true) {
+			$template->set_var('VALUE', $addon['directory']);
+			$template->set_var('NAME', $addon['name']);
+			if($addon['directory'] == $results_array['template']) {
+				$template->set_var('SELECTED', ' selected');
+			} else {
+				$template->set_var('SELECTED', '');
+			}
+			$template->parse('template_list', 'template_list_block', true);
+		}
+	}
+}
+
+// Menu list
+if(MULTIPLE_MENUS == false) {
+	$template->set_var('DISPLAY_MENU_LIST', 'none');
+}
+// Include template info file (if it exists)
+if($results_array['template'] != '') {
+	$template_location = WB_PATH.'/templates/'.$results_array['template'].'/info.php';
+} else {
+	$template_location = WB_PATH.'/templates/'.DEFAULT_TEMPLATE.'/info.php';
+}
+if(file_exists($template_location)) {
+	require($template_location);
+}
+// Check if $menu is set
+if(!isset($menu[1]) OR $menu[1] == '') {
+	// Make our own menu list
+	$menu[1] = $TEXT['MAIN'];
+}
+// Add menu options to the list
+$template->set_block('main_block', 'menu_list_block', 'menu_list');
+foreach($menu AS $number => $name) {
+	$template->set_var('NAME', $name);
+	$template->set_var('VALUE', $number);
+	if($results_array['menu'] == $number) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('menu_list', 'menu_list_block', true);
+}
+
+// Insert language values
+$template->set_block('main_block', 'language_list_block', 'language_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$l_codes[$addon['name']] = $addon['directory'];
+		$l_names[$addon['name']] = entities_to_7bit($addon['name']); // sorting-problem workaround
+	}
+	asort($l_names);
+	foreach($l_names as $l_name=>$v) {
+		// Insert code and name
+		$template->set_var(array(
+								'VALUE' => $l_codes[$l_name],
+								'NAME' => $l_name
+								));
+		// Check if it is selected
+		if($results_array['language'] == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('language_list', 'language_list_block', true);
+	}
+}
+
+// Select disabled if searching is disabled
+if($results_array['searching'] == 0) {
+	$template->set_var('SEARCHING_DISABLED', ' selected');
+}
+// Select what the page target is
+switch ($results_array['target']) {
+	case '_top':
+		$template->set_var('TOP_SELECTED', ' selected');
+		break;
+	case '_self':
+		$template->set_var('SELF_SELECTED', ' selected');
+		break;
+	case '_blank':
+		$template->set_var('BLANK_SELECTED', ' selected');
+		break;
+}
+	
+
+// Insert language text
+$template->set_var(array(
+								'HEADING_MODIFY_PAGE_SETTINGS' => $HEADING['MODIFY_PAGE_SETTINGS'],
+								'TEXT_CURRENT_PAGE' => $TEXT['CURRENT_PAGE'],
+								'TEXT_MODIFY' => $TEXT['MODIFY'],
+								'TEXT_MODIFY_PAGE' => $HEADING['MODIFY_PAGE'],
+								'LAST_MODIFIED' => $MESSAGE['PAGES']['LAST_MODIFIED'],
+								'TEXT_PAGE_TITLE' => $TEXT['PAGE_TITLE'],
+								'TEXT_MENU_TITLE' => $TEXT['MENU_TITLE'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_MENU' => $TEXT['MENU'],
+								'TEXT_PARENT' => $TEXT['PARENT'],
+								'TEXT_VISIBILITY' => $TEXT['VISIBILITY'],
+								'TEXT_PUBLIC' => $TEXT['PUBLIC'],
+								'TEXT_PRIVATE' => $TEXT['PRIVATE'],
+								'TEXT_REGISTERED' => $TEXT['REGISTERED'],
+								'TEXT_NONE' => $TEXT['NONE'],
+								'TEXT_HIDDEN' => $TEXT['HIDDEN'],
+								'TEXT_TEMPLATE' => $TEXT['TEMPLATE'],
+								'TEXT_TARGET' => $TEXT['TARGET'],
+								'TEXT_SYSTEM_DEFAULT' => $TEXT['SYSTEM_DEFAULT'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+								'TEXT_NEW_WINDOW' => $TEXT['NEW_WINDOW'],
+								'TEXT_SAME_WINDOW' => $TEXT['SAME_WINDOW'],
+								'TEXT_TOP_FRAME' => $TEXT['TOP_FRAME'],
+								'TEXT_ADMINISTRATORS' => $TEXT['ADMINISTRATORS'],
+								'TEXT_ALLOWED_VIEWERS' => $TEXT['ALLOWED_VIEWERS'],
+								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
+								'TEXT_KEYWORDS' => $TEXT['KEYWORDS'],
+								'TEXT_SEARCHING' => $TEXT['SEARCHING'],
+								'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+								'TEXT_ENABLED' => $TEXT['ENABLED'],
+								'TEXT_DISABLED' => $TEXT['DISABLED'],
+								'TEXT_SAVE' => $TEXT['SAVE'],
+								'TEXT_RESET' => $TEXT['RESET'],
+								'LAST_MODIFIED' => $MESSAGE['PAGES']['LAST_MODIFIED'],
+								'HEADING_MODIFY_PAGE' => $HEADING['MODIFY_PAGE']
+								)
+						);
+
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/pages/settings.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/sections.php
===================================================================
--- tags/2.7.0/wb/admin/pages/sections.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/sections.php	(revision 838)
@@ -0,0 +1,330 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file
+require('../../config.php');
+
+// Make sure people are allowed to access this page
+if(MANAGE_SECTIONS != 'enabled') {
+	header('Location: '.ADMIN_URL.'/pages/index.php');
+	exit(0);
+}
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify');
+
+// Check if we are supposed to add or delete a section
+if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
+	// Get more information about this section
+	$section_id = $_GET['section_id'];
+	$query_section = $database->query("SELECT module FROM ".TABLE_PREFIX."sections WHERE section_id = '$section_id'");
+	if($query_section->numRows() == 0) {
+		$admin->print_error('Section not found');
+	}
+	$section = $query_section->fetchRow();
+	// Include the modules delete file if it exists
+	if(file_exists(WB_PATH.'/modules/'.$section['module'].'/delete.php')) {
+		require(WB_PATH.'/modules/'.$section['module'].'/delete.php');
+	}
+	$database->query("DELETE FROM ".TABLE_PREFIX."sections WHERE section_id = '$section_id' LIMIT 1");
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	} else {
+		require(WB_PATH.'/framework/class.order.php');
+		$order = new order(TABLE_PREFIX.'sections', 'position', 'section_id', 'page_id');
+		$order->clean($page_id);
+		$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+		$admin->print_footer();
+		exit();
+	}
+} elseif(isset($_POST['module']) AND $_POST['module'] != '') {
+	// Get section info
+	$module = $admin->add_slashes($_POST['module']);
+	// Include the ordering class
+	require(WB_PATH.'/framework/class.order.php');
+	// Get new order
+	$order = new order(TABLE_PREFIX.'sections', 'position', 'section_id', 'page_id');
+	$position = $order->get_new($page_id);	
+	// Insert module into DB
+	$database->query("INSERT INTO ".TABLE_PREFIX."sections (page_id,module,position,block) VALUES ('$page_id','$module','$position','1')");
+	// Get the section id
+	$section_id = $database->get_one("SELECT LAST_INSERT_ID()");	
+	// Include the selected modules add file if it exists
+	if(file_exists(WB_PATH.'/modules/'.$module.'/add.php')) {
+		require(WB_PATH.'/modules/'.$module.'/add.php');
+	}	
+}
+
+// Get perms
+$database = new database();
+$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', $results_array['admin_groups']);
+$old_admin_users = explode(',', $results_array['admin_users']);
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+	$in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Get page details
+$database = new database();
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_header();
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+
+// Set module permissions
+$module_permissions = $_SESSION['MODULE_PERMISSIONS'];
+
+// Unset block var
+unset($block);
+// Include template info file (if it exists)
+if($results_array['template'] != '') {
+	$template_location = WB_PATH.'/templates/'.$results_array['template'].'/info.php';
+} else {
+	$template_location = WB_PATH.'/templates/'.DEFAULT_TEMPLATE.'/info.php';
+}
+if(file_exists($template_location)) {
+	require($template_location);
+}
+// Check if $menu is set
+if(!isset($block[1]) OR $block[1] == '') {
+	// Make our own menu list
+	$block[1] = $TEXT['MAIN'];
+}
+?>
+
+<?php // include jscalendar-setup
+	$jscal_use_time = true; // whether to use a clock, too
+	require_once(WB_PATH."/include/jscalendar/wb-setup.php");
+?>
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" height="50" style="margin-bottom: 10px;">
+<tr style="background-color: #F0F0F0;">
+	<td valign="middle" align="left">
+		<h2><?php echo $HEADING['MANAGE_SECTIONS']; ?></h2>
+	</td>
+	<td align="right">
+		<?php echo $TEXT['CURRENT_PAGE']; ?>: 
+		<b><?php echo ($results_array['page_title']); ?></b>
+		-
+		<a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>"><?php echo $HEADING['MODIFY_PAGE']; ?></a>
+		-
+		<a href="<?php echo ADMIN_URL; ?>/pages/settings.php?page_id=<?php echo $page_id; ?>"><?php echo $TEXT['CHANGE_SETTINGS']; ?></a>
+	</td>
+</tr>
+</table>
+
+<?php
+$query_sections = $database->query("SELECT section_id,module,position,block,publ_start,publ_end FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' ORDER BY position ASC");
+if($query_sections->numRows() > 0) {
+?>
+<form name="section_properties" action="<?php echo ADMIN_URL; ?>/pages/sections_save.php?page_id=<?php echo $page_id; ?>" method="post">
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%">
+<tr>
+	<td><?php echo $TEXT['TYPE']; ?>:</td>
+	<?php if(SECTION_BLOCKS) { ?>
+	<td style="display: {DISPLAY_BLOCK}"><?php echo $TEXT['BLOCK']; ?>:</td>
+	<?php } ?>
+	<td><?php echo $TEXT['PUBL_START_DATE']; ?>:</td>
+	<td><?php echo $TEXT['PUBL_END_DATE']; ?>:</td>
+	<td colspan="3" width="60"><?php echo $TEXT['ACTIONS']; ?>:</td>
+</tr>
+<?php
+	$num_sections = $query_sections->numRows();
+	while($section = $query_sections->fetchRow()) {
+		// Get the modules real name
+		$module_name=$database->get_one("SELECT name FROM ".TABLE_PREFIX."addons WHERE directory='".$section['module']."'");
+		if(!is_numeric(array_search($section['module'], $module_permissions))) {
+			?>
+			<tr onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#FFF'">
+				<td style="width: <?php if(SECTION_BLOCKS) print "120"; else print "200"; ?>px;"><a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>#<?php echo $section['section_id']; ?>"><?php echo $module_name; ?></a></td>
+				<?php if(SECTION_BLOCKS) { ?>
+				<td>
+					<select name="block<?php echo $section['section_id']; ?>" style="width: 120px;">
+						<?php
+						foreach($block AS $number => $name) {
+							?>
+							<option value="<?php echo $number; ?>"<?php if($number == $section['block']) { echo ' selected'; } ?>><?php echo $name; ?></option>
+							<?php
+						}
+						?>
+					</select>
+				</td>
+				<?php } // jscalendar-stuff following ?>
+				<td><input type="text" id="start_date<?php echo $section['section_id']; ?>" name="start_date<?php echo $section['section_id']; ?>" value="<?php if($section['publ_start']==0) print ""; else print date($jscal_format, $section['publ_start'])?>" style="width: 120px;" />
+					<img src="<?php echo ADMIN_URL ?>/images/clock_16.png" id="trigger_start<?php echo $section['section_id']; ?>" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+					<img src="<?php echo ADMIN_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" onclick="document.section_properties.start_date<?php echo $section['section_id']; ?>.value=''" />
+				</td>
+				<td><input type="text" id="end_date<?php echo $section['section_id']; ?>" name="end_date<?php echo $section['section_id']; ?>" value="<?php if($section['publ_end']==0) print ""; else print date($jscal_format, $section['publ_end'])?>" style="width: 120px;" />
+					<img src="<?php echo ADMIN_URL ?>/images/clock_16.png" id="trigger_stop<?php echo $section['section_id']; ?>" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+					<img src="<?php echo ADMIN_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" onclick="document.section_properties.end_date<?php echo $section['section_id']; ?>.value=''"/>
+				</td>
+				<td width="20">
+					<?php if($section['position'] != 1) { ?>
+					<a href="<?php echo ADMIN_URL; ?>/pages/move_up.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section['section_id']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" alt="^" border="0" />
+					</a>
+					<?php } ?>
+				</td>
+				<td width="20">
+					<?php if($section['position'] != $num_sections) { ?>
+					<a href="<?php echo ADMIN_URL; ?>/pages/move_down.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section['section_id']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" alt="v" border="0" />
+					</a>
+					<?php } ?>
+				</td>
+				<td width="20">
+					<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo ADMIN_URL; ?>/pages/sections.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section['section_id']; ?>');">
+						<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" alt="Del" border="0" />
+					</a>
+				</td>
+			</tr>
+			<?php
+			}
+	}
+	?>
+	<tr>
+		<td align="center" colspan="<?php if(SECTION_BLOCKS) print "7"; else print "6"; ?>"><input type="submit" name="save" value="<?php echo $TEXT['SAVE']; ?>" style="width: 150px;" /></td>
+	</tr>
+	</table>
+
+</form>
+<?php
+	// now add the calendars -- remember to to set the range to [1970, 2037] if the date is used as timestamp!
+	// the loop is simply a copy from above.
+	$query_sections = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' ORDER BY position ASC");
+	if($query_sections->numRows() > 0) {
+		$num_sections = $query_sections->numRows();
+		while($section = $query_sections->fetchRow()) {
+			// Get the modules real name
+			$module_name=$database->get_one("SELECT name FROM ".TABLE_PREFIX."addons WHERE directory='".$section['module']."'");
+			if(!is_numeric(array_search($section['module'], $module_permissions))) {
+	?>			
+				<script type="text/javascript">
+					Calendar.setup(
+						{
+							inputField  : "start_date<?php echo $section['section_id']; ?>",
+							ifFormat    : "<?php echo $jscal_ifformat ?>",
+							button      : "trigger_start<?php echo $section['section_id']; ?>",
+							firstDay    : <?php echo $jscal_firstday ?>,
+							<?php if(isset($jscal_use_time) && $jscal_use_time==TRUE) { ?>
+								showsTime   : "true",
+								timeFormat  : "24",
+							<?php } ?>
+							date        : "<?php echo $jscal_today ?>",
+							range       : [1970, 2037],
+							step        : 1
+						}
+					);
+				</script>
+				<script type="text/javascript">
+					Calendar.setup(
+						{
+							inputField  : "end_date<?php echo $section['section_id']; ?>",
+							ifFormat    : "<?php echo $jscal_ifformat ?>",
+							button      : "trigger_stop<?php echo $section['section_id']; ?>",
+							firstDay    : <?php echo $jscal_firstday ?>,
+							<?php if(isset($jscal_use_time) && $jscal_use_time==TRUE) { ?>
+								showsTime   : "true",
+								timeFormat  : "24",
+							<?php } ?>
+							date        : "<?php echo $jscal_today ?>",
+							range       : [1970, 2037],
+							step        : 1
+						}
+					);
+				</script>
+<?php
+			}
+		}
+	}
+?>
+<?php
+}
+
+// Work-out if we should show the "Add Section" form
+$query_sections = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'menu_link'");
+if($query_sections->numRows() == 0) {
+	?>
+	<h2><?php echo $TEXT['ADD_SECTION']; ?></h2>
+	
+	<form name="add" action="<?php echo ADMIN_URL; ?>/pages/sections.php?page_id=<?php echo $page_id; ?>" method="post">
+	
+	<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%">
+	<tr>
+		<td>
+			<select name="module" style="width: 100%;">
+			<?php
+			// Insert module list
+			$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page' AND directory != 'menu_link' order by name");
+			if($result->numRows() > 0) {
+				while($module = $result->fetchRow()) {
+					// Check if user is allowed to use this module
+					if(!is_numeric(array_search($module['directory'], $module_permissions))) {
+						?>
+						<option value="<?php echo $module['directory']; ?>"<?php if($module['directory'] == 'wysiwyg') { echo 'selected'; } ?>><?php echo $module['name']; ?></option>
+						<?php
+					}
+				}
+			}
+			?>
+			</select>
+		</td>
+		<td width="100">
+			<input type="submit" name="submit" value="<?php echo $TEXT['ADD']; ?>" style="width: 100px" />
+		</td>
+	</tr>
+	</table>
+	
+	</form>
+	<?php
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/pages/sections.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/sections_save.php
===================================================================
--- tags/2.7.0/wb/admin/pages/sections_save.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/sections_save.php	(revision 838)
@@ -0,0 +1,129 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file
+require('../../config.php');
+
+// Make sure people are allowed to access this page
+if(MANAGE_SECTIONS != 'enabled') {
+	header('Location: '.ADMIN_URL.'/pages/index.php');
+	exit(0);
+}
+
+require_once(WB_PATH."/include/jscalendar/jscalendar-functions.php");
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify');
+
+// Get perms
+$database = new database();
+$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', $results_array['admin_groups']);
+$old_admin_users = explode(',', $results_array['admin_users']);
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+        $in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Get page details
+$database = new database();
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_header();
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+
+// Set module permissions
+$module_permissions = $_SESSION['MODULE_PERMISSIONS'];
+
+// Loop through sections
+$query_sections = $database->query("SELECT section_id,module,position FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' ORDER BY position ASC");
+if($query_sections->numRows() > 0) {
+	$num_sections = $query_sections->numRows();
+	while($section = $query_sections->fetchRow()) {
+		if(!is_numeric(array_search($section['module'], $module_permissions))) {
+			// Update the section record with properties
+			$section_id = $section['section_id'];
+			$sql = ''; $publ_start = 0; $publ_end = 0;
+			$dst = date("I")?" DST":""; // daylight saving time?
+			if(isset($_POST['block'.$section_id]) AND $_POST['block'.$section_id] != '') {
+				$sql = "block = '".$admin->add_slashes($_POST['block'.$section_id])."'";
+			}
+			// update publ_start and publ_end, trying to make use of the strtotime()-features like "next week", "+1 month", ...
+			if(isset($_POST['start_date'.$section_id]) AND isset($_POST['end_date'.$section_id])) {
+				if(trim($_POST['start_date'.$section_id]) == '0' OR trim($_POST['start_date'.$section_id]) == '') {
+					$publ_start = 0;
+				} else {
+					$publ_start = jscalendar_to_timestamp($_POST['start_date'.$section_id]);
+				}
+				if(trim($_POST['end_date'.$section_id]) == '0' OR trim($_POST['end_date'.$section_id]) == '') {
+					$publ_end = 0;
+				} else {
+					$publ_end = jscalendar_to_timestamp($_POST['end_date'.$section_id], $publ_start);
+				}
+				if($sql != '')
+					$sql .= ",";
+				$sql .= " publ_start = '".$admin->add_slashes($publ_start)."'";
+				$sql .= ", publ_end = '".$admin->add_slashes($publ_end)."'";
+			}
+			$query = "UPDATE ".TABLE_PREFIX."sections SET $sql WHERE section_id = '$section_id' LIMIT 1";
+			if($sql != '') {
+				$database->query($query);
+			}
+		}
+	}
+}
+// Check for error or print success message
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/pages/sections_save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/intro.php
===================================================================
--- tags/2.7.0/wb/admin/pages/intro.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/intro.php	(revision 838)
@@ -0,0 +1,79 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create new admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_intro');
+
+// Get page content
+$filename = WB_PATH.PAGES_DIRECTORY.'/intro'.PAGE_EXTENSION;
+if(file_exists($filename)) {
+	$handle = fopen($filename, "r");
+	$content = fread($handle, filesize($filename));
+	fclose($handle);
+} else {
+	$content = '';
+}
+
+if(!isset($_GET['wysiwyg']) OR $_GET['wysiwyg'] != 'no') {
+	if (!defined('WYSIWYG_EDITOR') OR WYSIWYG_EDITOR=="none" OR !file_exists(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php')) {
+		function show_wysiwyg_editor($name,$id,$content,$width,$height) {
+			echo '<textarea name="'.$name.'" id="'.$id.'" style="width: '.$width.'; height: '.$height.';">'.$content.'</textarea>';
+		}
+	} else {
+		$id_list=array('content');
+		require(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php');
+	}
+}
+?>
+
+
+<form action="intro2.php" method="post">
+
+<input type="hidden" name="page_id" value="{PAGE_ID}" />
+
+<?php
+show_wysiwyg_editor('content','content',$content,'100%','500px');
+?>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input type="submit" value="<?php echo $TEXT['SAVE'];?>" style="width: 100px; margin-top: 5px;" />
+	</td>
+	<td align="right">
+		</form>
+		<input type="button" value="<?php echo $TEXT['CANCEL'];?>" onclick="javascript: window.location = 'index.php';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+<?php
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/intro.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/intro2.php
===================================================================
--- tags/2.7.0/wb/admin/pages/intro2.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/intro2.php	(revision 838)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get posted content
+if(!isset($_POST['content'])) {
+	header("Location: intro".PAGE_EXTENSION."");
+	exit(0);
+} else {
+	$content = $_POST['content'];
+}
+
+// Create new admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_intro');
+
+$content=$admin->strip_slashes($content);
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Write new content
+$filename = WB_PATH.PAGES_DIRECTORY.'/intro'.PAGE_EXTENSION;
+$handle = fopen($filename, 'w');
+if(is_writable($filename)) {
+	if(fwrite($handle, $content)) {
+		fclose($handle);
+		change_mode($filename, 'file');
+		$admin->print_success($MESSAGE['PAGES']['INTRO_SAVED']);
+	} else {
+		fclose($handle);
+		$admin->print_error($MESSAGE['PAGES']['INTRO_NOT_WRITABLE']);
+	}
+} else {
+	$admin->print_error($MESSAGE['PAGES']['INTRO_NOT_WRITABLE']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/intro2.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/save.php
===================================================================
--- tags/2.7.0/wb/admin/pages/save.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/save.php	(revision 838)
@@ -0,0 +1,94 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page & section id
+if(!isset($_POST['page_id']) OR !is_numeric($_POST['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_POST['page_id'];
+}
+if(!isset($_POST['section_id']) OR !is_numeric($_POST['section_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$section_id = $_POST['section_id'];
+}
+
+// Create new admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify');
+
+// Get perms
+$database = new database();
+$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
+$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+        $in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Get page module
+$database = new database();
+$query = "SELECT module FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+$module = $results_array['module'];
+
+// Update the pages table
+$now = mktime();
+$query = "UPDATE ".TABLE_PREFIX."pages SET modified_when = '$now', modified_by = '".$admin->get_user_id()."' WHERE page_id = '$page_id'";
+$database->query($query);
+
+// Include the modules saving script if it exists
+if(file_exists(WB_PATH.'/modules/'.$module.'/save.php')) {
+	require(WB_PATH.'/modules/'.$module.'/save.php');
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), $js_back);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/trash.php
===================================================================
--- tags/2.7.0/wb/admin/pages/trash.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/trash.php	(revision 838)
@@ -0,0 +1,310 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages');
+
+?>
+<script type="text/javascript" language="javascript">
+function toggle_viewers() {
+	if(document.add.visibility.value == 'private') {
+		document.getElementById('private_viewers').style.display = 'block';
+		document.getElementById('registered_viewers').style.display = 'none';
+	} else if(document.add.visibility.value == 'registered') {
+		document.getElementById('private_viewers').style.display = 'none';
+		document.getElementById('registered_viewers').style.display = 'block';
+	} else {
+		document.getElementById('private_viewers').style.display = 'none';
+		document.getElementById('registered_viewers').style.display = 'none';
+	}
+}
+function toggle_visibility(id){
+	if(document.getElementById(id).style.display == "block") {
+		document.getElementById(id).style.display = "none";
+	} else {
+		document.getElementById(id).style.display = "block";
+	}
+}
+var plus = new Image;
+plus.src = "<?php echo ADMIN_URL; ?>/images/plus_16.png";
+var minus = new Image;
+minus.src = "<?php echo ADMIN_URL; ?>/images/minus_16.png";
+function toggle_plus_minus(id) {
+	var img_src = document.images['plus_minus_' + id].src;
+	if(img_src == plus.src) {
+		document.images['plus_minus_' + id].src = minus.src;
+	} else {
+		document.images['plus_minus_' + id].src = plus.src;
+	}
+}
+</script>
+
+<style type="text/css">
+.pages_list img {
+	display: block;
+}
+ul, li {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+.page_list {
+	display: none;
+}
+</style>
+
+<noscript>
+	<style type="text/css">
+	.page_list {
+		display: block;
+	}
+	</style>
+</noscript>
+<?php
+
+function make_list($parent, $editable_pages) {
+	// Get objects and vars from outside this function
+	global $admin, $template, $database, $TEXT, $MESSAGE;
+	?>
+	<ul id="p<?php echo $parent; ?>" <?php if($parent != 0) { echo 'class="page_list"'; } ?>>
+	<?php	
+	// Get page list from database
+	$database = new database();
+	$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' AND visibility = 'deleted' ORDER BY position ASC";
+	$get_pages = $database->query($query);
+	
+	// Insert values into main page list
+	if($get_pages->numRows() > 0)	{
+		while($page = $get_pages->fetchRow()) {
+			// Get user perms
+			$admin_groups = explode(',', str_replace('_', '', $page['admin_groups']));
+			$admin_users = explode(',', str_replace('_', '', $page['admin_users']));
+			$in_old_group = FALSE;
+			foreach($admin->get_groups_id() as $cur_gid){
+			    if (in_array($cur_gid, $old_admin_groups)) {
+				$in_old_group = TRUE;
+			    }
+			}
+			if((!$in_old_group) OR is_numeric(array_search($admin->get_user_id(), $admin_users))) {
+				if($page['visibility'] == 'deleted') {
+					$can_modify = true;
+					$editable_pages = $editable_pages+1;
+				} else {
+					$can_modify = false;
+				}
+			} else {
+				$can_modify = false;
+			}
+						
+			// Work out if we should show a plus or not
+			$get_page_subs = $database->query("SELECT page_id,admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE parent = '".$page['page_id']."'");
+			if($get_page_subs->numRows() > 0) {
+				$display_plus = true;
+			} else {
+				$display_plus = false;
+			}
+			
+			// Work out how many pages there are for this parent
+			$num_pages = $get_pages->numRows();
+			?>
+			
+			<li id="p<?php echo $page['parent']; ?>" style="padding: 2px 0px 2px 0px;">
+			<table width="720" cellpadding="1" cellspacing="0" border="0" style="background-color: #F0F0F0;">
+			<tr>
+				<td width="20" style="padding-left: <?php echo $page['level']*20; ?>px;">
+					<?php
+					if($display_plus == true) {
+					?>
+					<a href="javascript: toggle_visibility('p<?php echo $page['page_id']; ?>');" title="<?php echo $TEXT['EXPAND'].'/'.$TEXT['COLLAPSE']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/plus_16.png" onclick="toggle_plus_minus('<?php echo $page['page_id']; ?>');" name="plus_minus_<?php echo $page['page_id']; ?>" border="0" alt="+" />
+					</a>
+					<?php
+					}
+					?>
+				</td>
+				<?php if($admin->get_permission('pages_modify') == true AND $can_modify == true AND $page['visibility'] != 'heading') { ?>
+				<td>
+					<a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>"><?php echo ($page['page_title']); ?></a>
+				</td>
+				<?php } else { ?>
+				<td>
+					<?php
+					if($page['visibility'] != 'heading') {
+						echo ($page['page_title']);
+					} else {
+						echo '<b>'.($page['page_title']).'</b>';
+					}
+					?>
+				</td>
+				<?php } ?>
+				<td align="left" width="232">
+					<font color="#999999"><?php echo $page['menu_title']; ?></font>
+				</td>
+				<td align="right" valign="middle" width="30" style="padding-right: 20px;">
+				<?php if($page['visibility'] == 'public') { ?>
+					<img src="<?php echo ADMIN_URL; ?>/images/visible_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PUBLIC']; ?>" border="0" />
+				<?php } elseif($page['visibility'] == 'private') { ?>
+					<img src="<?php echo ADMIN_URL; ?>/images/private_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['PRIVATE']; ?>" border="0" />
+				<?php } elseif($page['visibility'] == 'registered') { ?>
+					<img src="<?php echo ADMIN_URL; ?>/images/keys_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['REGISTERED']; ?>" border="0" />
+				<?php } elseif($page['visibility'] == 'none') { ?>
+					<img src="<?php echo ADMIN_URL; ?>/images/hidden_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['NONE']; ?>" border="0" />
+				<?php } elseif($page['visibility'] == 'deleted') { ?>
+					<img src="<?php echo ADMIN_URL; ?>/images/deleted_16.png" alt="<?php echo $TEXT['VISIBILITY']; ?>: <?php echo $TEXT['DELETED']; ?>" border="0" />
+				<?php } ?>
+				</td>
+				<td width="20">
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/settings.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['SETTINGS']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="<?php echo $TEXT['SETTINGS']; ?>" />
+						</a>
+						<?php } ?>
+					<?php } else { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/restore.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['RESTORE']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/restore_16.png" border="0" alt="<?php echo $TEXT['RESTORE']; ?>" />
+						</a>
+					<?php } ?>
+				</td>
+				<td width="20">
+				<?php if($page['position'] != 1) { ?>
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/move_up.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" border="0" alt="^" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td width="20">
+				<?php if($page['position'] != $num_pages) { ?>
+					<?php if($page['visibility'] != 'deleted') { ?>
+						<?php if($admin->get_permission('pages_settings') == true AND $can_modify == true) { ?>
+						<a href="<?php echo ADMIN_URL; ?>/pages/move_down.php?page_id=<?php echo $page['page_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+							<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" border="0" alt="v" />
+						</a>
+						<?php } ?>
+					<?php } ?>
+				<?php } ?>
+				</td>
+				<td width="20">
+					<?php if($admin->get_permission('pages_delete') == true AND $can_modify == true) { ?>
+					<a href="javascript: confirm_link('<?php echo $MESSAGE['PAGES']['DELETE_CONFIRM']; ?>?', '<?php echo ADMIN_URL; ?>/pages/delete.php?page_id=<?php echo $page['page_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+						<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+					</a>
+					<?php } ?>
+				</td>
+			</tr>
+			</table>
+			</li>
+							
+			<?php
+			// Get subs
+			make_list($page['page_id'], $editable_pages);
+		}
+
+	}
+	?>
+	</ul>
+	<?php
+	return $editable_pages;
+}
+
+// Generate pages list
+if($admin->get_permission('pages_view') == true) {
+	?>
+	<table cellpadding="0" cellspacing="0" width="100%" border="0">
+	<tr>
+		<td>
+			<h2><?php echo $HEADING['DELETED_PAGES']; ?></h2>
+		</td>
+		<td align="right">
+				<a href="<?php echo ADMIN_URL; ?>/pages/empty_trash.php">
+				<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" alt="<?php echo $TEXT['PAGE_TRASH']; ?>" border="0" />
+				<?php echo $TEXT['EMPTY_TRASH']; ?></a>
+		</td>
+	</tr>
+	</table>
+	<div class="pages_list">
+	<table cellpadding="1" cellspacing="0" width="720" border="0">
+	<tr>
+		<td width="20">
+			&nbsp;
+		</td>
+		<td>
+			<?php echo $TEXT['PAGE_TITLE']; ?>:
+		</td>
+		<td width="198" align="left">
+			<?php echo $TEXT['MENU_TITLE']; ?>:
+		</td>
+		<td width="80" align="center">
+			<?php echo $TEXT['VISIBILITY']; ?>:
+		</td>
+		<td width="90" align="center">
+			<?php echo $TEXT['ACTIONS']; ?>:
+		</td>		
+	</tr>
+	</table>
+	<?php
+	$editable_pages = make_list(0, 0);
+	?>
+	</div>
+	<div class="empty_list">
+		<?php echo $TEXT['NONE_FOUND']; ?>
+	</div>
+	<?php
+} else {
+	$editable_pages = 0;
+}
+
+// Figure out if the no pages found message should be shown or not
+if($editable_pages == 0) {
+	?>
+	<style type="text/css">
+	.pages_list {
+		display: none;
+	}
+	</style>
+	<?php
+} else {
+	?>
+	<style type="text/css">
+	.empty_list {
+		display: none;
+	}
+	</style>
+	<?php
+}
+
+?>
+<br />< <a href="<?php echo ADMIN_URL; ?>/pages/index.php"><?php echo $MESSAGE['PAGES']['RETURN_TO_PAGES']; ?></a>
+<?php
+
+// Print admin 
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/trash.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/restore.php
===================================================================
--- tags/2.7.0/wb/admin/pages/restore.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/restore.php	(revision 838)
@@ -0,0 +1,109 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object and print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_delete');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get perms
+$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+
+// Find out more about the page
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
+$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
+
+$in_old_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+	$in_old_group = TRUE;
+    }
+}
+if((!$in_old_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+$visibility = $results_array['visibility'];
+
+if(PAGE_TRASH) {
+	if($visibility == 'deleted') {	
+		// Function to change all child pages visibility to deleted
+		function restore_subs($parent = 0) {
+			global $database;
+			// Query pages
+			$query_menu = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' ORDER BY position ASC");
+			// Check if there are any pages to show
+			if($query_menu->numRows() > 0) {
+				// Loop through pages
+				while($page = $query_menu->fetchRow()) {
+					// Update the page visibility to 'deleted'
+					$database->query("UPDATE ".TABLE_PREFIX."pages SET visibility = 'public' WHERE page_id = '".$page['page_id']."' LIMIT 1");
+					// Run this function again for all sub-pages
+					restore_subs($page['page_id']);
+				}
+			}
+		}
+		
+		// Update the page visibility to 'deleted'
+		$database->query("UPDATE ".TABLE_PREFIX."pages SET visibility = 'public' WHERE page_id = '$page_id.' LIMIT 1");
+		
+		// Run trash subs for this page
+		restore_subs($page_id);
+		
+	}
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['PAGES']['RESTORED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/restore.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/move_down.php
===================================================================
--- tags/2.7.0/wb/admin/pages/move_down.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/move_down.php	(revision 838)
@@ -0,0 +1,73 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
+	if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
+		$page_id = $_GET['page_id'];
+		$id = $_GET['section_id'];
+		$id_field = 'section_id';
+		$common_field = 'page_id';
+		$table = TABLE_PREFIX.'sections';
+	} else {
+		$id = $_GET['page_id'];
+		$id_field = 'page_id';
+		$common_field = 'parent';
+		$table = TABLE_PREFIX.'pages';
+	}
+} else {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Create new admin object and print admin header
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_settings');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order($table, 'position', $id_field, $common_field);
+if($id_field == 'page_id') {
+	if($order->move_down($id)) {
+		$admin->print_success($MESSAGE['PAGES']['REORDERED']);
+	} else {
+		$admin->print_error($MESSAGE['PAGES']['CANNOT_REORDER']);
+	}
+} else {
+	if($order->move_down($id)) {
+		$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+	} else {
+		$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/move_down.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/empty_trash.php
===================================================================
--- tags/2.7.0/wb/admin/pages/empty_trash.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/empty_trash.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get page list from database
+$database = new database();
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE visibility = 'deleted' ORDER BY level DESC";
+$get_pages = $database->query($query);
+
+// Insert values into main page list
+if($get_pages->numRows() > 0)	{
+	while($page = $get_pages->fetchRow()) {
+		// Delete page subs
+		$sub_pages = get_subs($page['page_id'], array());
+		foreach($sub_pages AS $sub_page_id) {
+			delete_page($sub_page_id);
+		}	
+		// Delete page
+		delete_page($page['page_id']);
+	}
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($TEXT['TRASH_EMPTIED']);
+}
+
+// Print admin 
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/empty_trash.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/delete.php
===================================================================
--- tags/2.7.0/wb/admin/pages/delete.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/delete.php	(revision 838)
@@ -0,0 +1,107 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object and print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_delete');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get perms
+if (!$admin->get_page_permission($page_id,'admin')) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Find out more about the page
+$query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+
+$results_array = $results->fetchRow();
+
+$visibility = $results_array['visibility'];
+
+// Check if we should delete it or just set the visibility to 'deleted'
+if(PAGE_TRASH != 'disabled' AND $visibility != 'deleted') {
+	// Page trash is enabled and page has not yet been deleted
+	// Function to change all child pages visibility to deleted
+	function trash_subs($parent = 0) {
+		global $database;
+		// Query pages
+		$query_menu = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' ORDER BY position ASC");
+		// Check if there are any pages to show
+		if($query_menu->numRows() > 0) {
+			// Loop through pages
+			while($page = $query_menu->fetchRow()) {
+				// Update the page visibility to 'deleted'
+				$database->query("UPDATE ".TABLE_PREFIX."pages SET visibility = 'deleted' WHERE page_id = '".$page['page_id']."' LIMIT 1");
+				// Run this function again for all sub-pages
+				trash_subs($page['page_id']);
+			}
+		}
+	}
+	
+	// Update the page visibility to 'deleted'
+	$database->query("UPDATE ".TABLE_PREFIX."pages SET visibility = 'deleted' WHERE page_id = '$page_id.' LIMIT 1");
+	
+	// Run trash subs for this page
+	trash_subs($page_id);
+} else {
+	// Really dump the page
+	// Delete page subs
+	$sub_pages = get_subs($page_id, array());
+	foreach($sub_pages AS $sub_page_id) {
+		delete_page($sub_page_id);
+	}
+	// Delete page
+	delete_page($page_id);
+}	
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['PAGES']['DELETED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/move_up.php
===================================================================
--- tags/2.7.0/wb/admin/pages/move_up.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/move_up.php	(revision 838)
@@ -0,0 +1,73 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
+	if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
+		$page_id = $_GET['page_id'];
+		$id = $_GET['section_id'];
+		$id_field = 'section_id';
+		$common_field = 'page_id';
+		$table = TABLE_PREFIX.'sections';
+	} else {
+		$id = $_GET['page_id'];
+		$id_field = 'page_id';
+		$common_field = 'parent';
+		$table = TABLE_PREFIX.'pages';
+	}
+} else {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Create new admin object and print admin header
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_settings');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order($table, 'position', $id_field, $common_field);
+if($id_field == 'page_id') {
+	if($order->move_up($id)) {
+		$admin->print_success($MESSAGE['PAGES']['REORDERED']);
+	} else {
+		$admin->print_error($MESSAGE['PAGES']['CANNOT_REORDER']);
+	}
+} else {
+	if($order->move_up($id)) {
+		$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+	} else {
+		$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/sections.php?page_id='.$page_id);
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/move_up.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/modify.php
===================================================================
--- tags/2.7.0/wb/admin/pages/modify.php	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/modify.php	(revision 838)
@@ -0,0 +1,120 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get page id
+if(!isset($_GET['page_id']) OR !is_numeric($_GET['page_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$page_id = $_GET['page_id'];
+}
+
+// Create new admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify');
+
+// Get perms
+if(!$admin->get_page_permission($page_id,'admin')) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Get page details
+$results_array=$admin->get_page_details($page_id);
+
+// Get display name of person who last modified the page
+$user=$admin->get_user_details($results_array['modified_by']);
+
+// Convert the unix ts for modified_when to human a readable form
+if($results_array['modified_when'] != 0) {
+	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
+} else {
+	$modified_ts = 'Unknown';
+}
+
+// Include page info script
+$template = new Template(ADMIN_PATH.'/pages');
+$template->set_file('page', 'modify.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var(array(
+								'PAGE_ID' => $results_array['page_id'],
+								'PAGE_TITLE' => ($results_array['page_title']),
+								'MODIFIED_BY' => $user['display_name'],
+								'MODIFIED_BY_USERNAME' => $user['username'],
+								'MODIFIED_WHEN' => $modified_ts,
+								'ADMIN_URL' => ADMIN_URL
+								)
+						);
+if($modified_ts == 'Unknown') {
+	$template->set_var('DISPLAY_MODIFIED', 'hide');
+} else {
+	$template->set_var('DISPLAY_MODIFIED', '');
+}
+
+// Work-out if we should show the "manage sections" link
+$query_sections = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'menu_link'");
+if($query_sections->numRows() > 0) {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+} elseif(MANAGE_SECTIONS == 'enabled') {
+	$template->set_var('TEXT_MANAGE_SECTIONS', $HEADING['MANAGE_SECTIONS']);
+} else {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+}
+
+// Insert language TEXT
+$template->set_var(array(
+								'TEXT_CURRENT_PAGE' => $TEXT['CURRENT_PAGE'],
+								'TEXT_CHANGE_SETTINGS' => $TEXT['CHANGE_SETTINGS'],
+								'LAST_MODIFIED' => $MESSAGE['PAGES']['LAST_MODIFIED'],
+								'HEADING_MODIFY_PAGE' => $HEADING['MODIFY_PAGE']
+								)
+						);
+
+// Parse and print header template
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Get sections for this page
+$module_permissions = $_SESSION['MODULE_PERMISSIONS'];
+$query_sections = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' ORDER BY position ASC");
+if($query_sections->numRows() > 0) {
+	while($section = $query_sections->fetchRow()) {
+		$section_id = $section['section_id'];
+		$module = $section['module'];
+		//Have permission?
+		if(!is_numeric(array_search($module, $module_permissions))) {
+			// Include the modules editing script if it exists
+			if(file_exists(WB_PATH.'/modules/'.$module.'/modify.php')) {
+				echo '<a name="'.$section_id.'"></a>';
+				require(WB_PATH.'/modules/'.$module.'/modify.php');
+			}
+		}
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/settings.html
===================================================================
--- tags/2.7.0/wb/admin/pages/settings.html	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/settings.html	(revision 838)
@@ -0,0 +1,199 @@
+<!-- BEGIN main_block -->
+
+<script type="text/javascript" language="javascript">
+function toggle_viewers() {
+	if(document.settings.visibility.value == 'private' || document.settings.visibility.value == 'registered') {
+		document.getElementById('allowed_viewers').style.display = 'block';
+	} else {
+		document.getElementById('allowed_viewers').style.display = 'none';
+	}
+}
+var lastselectedindex = new Array();
+
+function disabled_hack_for_ie(sel) { 
+	var sels = document.getElementsByTagName("select");
+
+    var i;
+    var sel_num_in_doc = 0;
+
+    for (i = 0; i <sels.length; i++)
+    {    if (sel == sels[i])
+        {    sel_num_in_doc = i;
+        }
+    }
+
+     // never true for browsers that support option.disabled
+    if (sel.options[sel.selectedIndex].disabled)
+    {    sel.selectedIndex = lastselectedindex[sel_num_in_doc];
+    } else
+    {    lastselectedindex[sel_num_in_doc] = sel.selectedIndex;
+    }
+
+    return true;
+}
+</script>
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" height="50" style="margin-bottom: 10px;">
+<tr style="background-color: #F0F0F0;">
+	<td valign="middle" align="left">
+		<h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2>
+	</td>
+	<td align="right">
+		{TEXT_CURRENT_PAGE}: 
+		<b>{PAGE_TITLE}</b>
+		- 
+		<a href="{ADMIN_URL}/pages/modify.php?page_id={PAGE_ID}">{TEXT_MODIFY_PAGE}</a>
+		<font style="display: {DISPLAY_MANAGE_SECTIONS}">-</font>
+		<a href="{ADMIN_URL}/pages/sections.php?page_id={PAGE_ID}" style="display: {DISPLAY_MANAGE_SECTIONS}">{TEXT_MANAGE_SECTIONS}</a>
+		<br />
+		<font style="color: #999999;" class="{DISPLAY_MODIFIED}">
+			{LAST_MODIFIED} {MODIFIED_BY} ({MODIFIED_BY_USERNAME}), {MODIFIED_WHEN}
+		</font>
+	</td>
+</tr>
+</table>
+
+<form name="settings" action="settings2.php" method="post">
+
+<input type="hidden" name="page_id" value="{PAGE_ID}" />
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center">
+<tr>
+	<td width="100" height="20">{TEXT_PAGE_TITLE}:</td>
+	<td width="240" height="20">
+		<input type="text" name="page_title" value="{PAGE_TITLE}" style="width: 232px;" />
+	</td>
+	<td rowspan="10" valign="top" style="padding-left: 20px; padding-top: 8px;">
+		{TEXT_ADMINISTRATORS}:
+		<ul style="list-style-type: none; margin: 0; padding: 0;">
+			<!-- BEGIN group_list_block -->
+			<li>
+			<input type="checkbox" name="admin_groups[]" id="admin_group_{ID}" value="{ID}"{CHECKED}{DISABLED} />
+			<label for="admin_group_{TOGGLE}">{NAME}</label>
+			</li>
+			<!-- END group_list_block -->
+		</ul>
+	</td>
+	<td rowspan="10" valign="top" style="padding-left: 20px; padding-top: 8px;">
+		<div id="allowed_viewers" style="display: {DISPLAY_VIEWERS};">
+			{TEXT_ALLOWED_VIEWERS}:
+			<ul style="list-style-type: none; margin: 0; padding: 0;">
+				<!-- BEGIN group_list_block2 -->
+				<li>
+				<input type="checkbox" name="viewing_groups[]" id="viewing_group_{ID}" value="{ID}"{CHECKED}{DISABLED} />
+				<label for="viewing_group_{TOGGLE}">{NAME}</label>
+				</li>
+				<!-- END group_list_block2 -->
+			</ul>
+		</div>
+	</td>
+</tr>
+<tr height="20">
+	<td width="100" height="20">{TEXT_MENU_TITLE}:</td>
+	<td width="240" height="20">
+		<input type="text" name="menu_title" value="{MENU_TITLE}" style="width: 232px;" />
+	</td>
+</tr>
+<tr height="20">
+	<td width="100">{TEXT_PARENT}:</td>
+	<td width="240">
+		<select name="parent" style="width: 240px;" onchange="return disabled_hack_for_ie(this);">
+			<!-- BEGIN page_list_block2 -->
+			<option value="{ID}"{SELECTED}>{TITLE}</option>
+			<!-- END page_list_block2 -->
+		</select>
+	</td>
+</tr>
+<tr height="20">
+	<td width="100">{TEXT_VISIBILITY}:</td>
+	<td width="240">
+		<select name="visibility" onchange="javascript: toggle_viewers();" style="width: 240px;">
+			<option value="public"{PUBLIC_SELECTED}>{TEXT_PUBLIC}</option>
+			<option value="private"{PRIVATE_SELECTED}>{TEXT_PRIVATE}</option>
+			<option value="registered"{REGISTERED_SELECTED}>{TEXT_REGISTERED}</option>
+			<option value="hidden"{HIDDEN_SELECTED}>{TEXT_HIDDEN}</option>
+			<option value="none"{NO_VIS_SELECTED}>{TEXT_NONE}</option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td width="100" valign="top">{TEXT_DESCRIPTION}:</td>
+	<td>
+		<textarea name="description" style="width: 236px; height: 50px;">{DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td width="100" valign="top">{TEXT_KEYWORDS}:</td>
+	<td>
+		<textarea name="keywords" style="width: 236px; height: 50px;">{KEYWORDS}</textarea>
+	</td>
+</tr>
+<tr>
+	<td>
+		{TEXT_TARGET}:
+	</td>
+	<td>
+		<select name="target" style="width: 240px;" value="{TARGET}" />
+			<option value="_blank"{BLANK_SELECTED}>{TEXT_NEW_WINDOW}</option>
+			<option value="_self"{SELF_SELECTED}>{TEXT_SAME_WINDOW}</option>
+			<option value="_top"{TOP_SELECTED}>{TEXT_TOP_FRAME}</option>
+		</select>
+	</td>
+</tr>
+<tr height="20">
+	<td width="100">{TEXT_TEMPLATE}:</td>
+	<td width="240">
+		<select name="template" style="width: 240px;">
+			<option value="">{TEXT_SYSTEM_DEFAULT}</option>
+			<option value="">----------------------</option>
+			<!-- BEGIN template_list_block -->
+			<option value="{VALUE}"{SELECTED}>{NAME}</option>
+			<!-- END template_list_block -->
+		</select>
+	</td>
+</tr>
+<tr height="20" style="display: {DISPLAY_MENU_LIST}">
+	<td width="100">{TEXT_MENU}:</td>
+	<td width="240">
+		<select name="menu" style="width: 240px;">
+			<!-- BEGIN menu_list_block -->
+			<option value="{VALUE}"{SELECTED}>{NAME}</option>
+			<!-- END menu_list_block -->
+		</select>
+	</td>
+</tr>
+<tr height="20" style="display: {DISPLAY_LANGUAGE_LIST}">
+	<td width="100">{TEXT_LANGUAGE}:</td>
+	<td width="240">
+		<select name="language" style="width: 240px;">
+			<!-- BEGIN language_list_block -->
+			<option value="{VALUE}"{SELECTED}>{NAME}</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr height="20">
+	<td width="100">{TEXT_SEARCHING}:</td>
+	<td width="240">
+		<select name="searching" style="width: 240px;">
+			<option value="1">{TEXT_ENABLED}</option>
+			<option value="0"{SEARCHING_DISABLED}>{TEXT_DISABLED}</option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td width="100">&nbsp;</td>
+	<td colspan="4">
+		<input type="submit" name="submit" value="{TEXT_SAVE} {SECTION_SETTINGS}" style="width: 117px;" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" style="width: 117px;" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/settings.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/pages/modify.html
===================================================================
--- tags/2.7.0/wb/admin/pages/modify.html	(nonexistent)
+++ tags/2.7.0/wb/admin/pages/modify.html	(revision 838)
@@ -0,0 +1,22 @@
+<!-- BEGIN main_block -->
+
+<table cellpadding="5" cellspacing="0" border="0" align="center" width="100%" height="50" style="margin-bottom: 10px;">
+<tr style="background-color: #F0F0F0;">
+	<td valign="middle" align="left">
+		<h2>{HEADING_MODIFY_PAGE}</h2>
+	</td>
+	<td align="right">
+		{TEXT_CURRENT_PAGE}:
+		<b>{PAGE_TITLE}</b>
+		- 
+		<a href="{ADMIN_URL}/pages/settings.php?page_id={PAGE_ID}">{TEXT_CHANGE_SETTINGS}</a>
+		<font style="display: {DISPLAY_MANAGE_SECTIONS}">-</font>
+		<a href="{ADMIN_URL}/pages/sections.php?page_id={PAGE_ID}" style="display: {DISPLAY_MANAGE_SECTIONS}">{TEXT_MANAGE_SECTIONS}</a>
+		<font style="color: #999999;" class="{DISPLAY_MODIFIED}"><br />
+		{LAST_MODIFIED} {MODIFIED_BY} ({MODIFIED_BY_USERNAME}), {MODIFIED_WHEN}
+		</font>
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/pages/modify.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/details.php
===================================================================
--- tags/2.7.0/wb/admin/modules/details.php	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/details.php	(revision 838)
@@ -0,0 +1,135 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the config file
+require('../../config.php');
+require_once(WB_PATH .'/framework/functions.php');
+
+// Print admin header
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'modules_view');
+
+// Get module name
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$file = $admin->add_slashes($_POST['file']);
+}
+
+// Check if the module exists
+if(!file_exists(WB_PATH.'/modules/'.$file)) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup module object
+$template = new Template(ADMIN_PATH.'/modules');
+$template->set_file('page', 'details.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND directory = '$file'");
+if($result->numRows() > 0) {
+	$module = $result->fetchRow();
+}
+
+// check if a module description exists for the displayed backend language
+$tool_description = false;
+if(function_exists('file_get_contents') && file_exists(WB_PATH.'/modules/'.$file.'/languages/'.LANGUAGE .'.php')) {
+	// read contents of the module language file into string
+	$data = @file_get_contents(WB_PATH .'/modules/' .$file .'/languages/' .LANGUAGE .'.php');
+	// use regular expressions to fetch the content of the variable from the string
+	$tool_description = get_variable_content('module_description', $data, false, false);
+	// replace optional placeholder {WB_URL} with value stored in config.php
+	if($tool_description !== false && strlen(trim($tool_description)) != 0) {
+		$tool_description = str_replace('{WB_URL}', WB_URL, $tool_description);
+	} else {
+		$tool_description = false;
+	}
+}		
+if($tool_description !== false) {
+	// Override the module-description with correct desription in users language
+	$module['description'] = $tool_description;
+}
+
+$template->set_var(array(
+								'NAME' => $module['name'],
+								'AUTHOR' => $module['author'],
+								'DESCRIPTION' => $module['description'],
+								'VERSION' => $module['version'],
+								'DESIGNED_FOR' => $module['platform']
+								)
+						);
+						
+switch ($module['function']) {
+	case NULL:
+		$type_name = $TEXT['UNKNOWN'];
+	break;
+	case 'page':
+		$type_name = $TEXT['PAGE'];
+	break;
+	case 'wysiwyg':
+		$type_name = $TEXT['WYSIWYG_EDITOR'];
+	break;
+	case 'tool':
+		$type_name = $TEXT['ADMINISTRATION_TOOL'];
+	break;
+	case 'admin':
+		$type_name = $TEXT['ADMIN'];
+	break;
+	case 'administration':
+		$type_name = $TEXT['ADMINISTRATION'];
+	break;
+	default:
+	$type_name = $TEXT['UNKNOWN'];
+}
+$template->set_var('TYPE', $type_name);
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_MODULE_DETAILS' => $HEADING['MODULE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_NAME' => $TEXT['NAME'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
+								'TEXT_VERSION' => $TEXT['VERSION'],
+								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
+								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
+								'TEXT_BACK' => $TEXT['BACK']
+								)
+						);
+
+// Parse module object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/details.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/uninstall.php
===================================================================
--- tags/2.7.0/wb/admin/modules/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/uninstall.php	(revision 838)
@@ -0,0 +1,85 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'modules_uninstall');
+
+// Check if user selected module
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$file = $admin->add_slashes($_POST['file']);
+}
+
+// Extra protection
+if(trim($file) == '') {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Check if the module exists
+if(!is_dir(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['MODULES']['NOT_INSTALLED']);
+}
+
+// Check if the module is in use
+$query_modules = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE module = '".$admin->add_slashes($_POST['file'])."' LIMIT 1");
+if($query_modules->numRows() > 0) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+}
+
+// Check if we have permissions on the directory
+if(!is_writable(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+}
+
+$database->query("DELETE FROM ".TABLE_PREFIX."modules WHERE directory = '$file'"); 
+
+// Run the modules uninstall script if there is one
+if(file_exists(WB_PATH.'/modules/'.$file.'/uninstall.php')) {
+	require(WB_PATH.'/modules/'.$file.'/uninstall.php');
+}
+
+// Try to delete the module dir
+if(!rm_full_dir(WB_PATH.'/modules/'.$file)) {
+	$admin->print_error($MESSAGE['MODULES']['CANNOT_UNINSTALL']);
+} else {
+	// Remove entry from DB
+	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'module'");
+}
+
+// Print success message
+$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/install.php
===================================================================
--- tags/2.7.0/wb/admin/modules/install.php	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/install.php	(revision 838)
@@ -0,0 +1,136 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check if user uploaded a file
+if(!isset($_FILES['userfile'])) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'modules_install');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Set temp vars
+$temp_dir = WB_PATH.'/temp/';
+$temp_file = $temp_dir . $_FILES['userfile']['name'];
+$temp_unzip = WB_PATH.'/temp/unzip/';
+
+// Try to upload the file to the temp dir
+if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UPLOAD']);
+}
+
+// Include the PclZip class file (thanks to 
+require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
+
+// Remove any vars with name "module_directory"
+unset($module_directory);
+
+// Setup the PclZip object
+$archive = new PclZip($temp_file);
+// Unzip the files to the temp unzip folder
+$list = $archive->extract(PCLZIP_OPT_PATH, $temp_unzip);
+// Include the modules info file
+require($temp_unzip.'info.php');
+// Delete the temp unzip directory
+rm_full_dir($temp_unzip);
+
+// Check if the file is valid
+if(!isset($module_directory)) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['GENERIC']['INVALID']);
+}
+
+// Check if this module is already installed
+// and compare versions if so
+$new_module_version=$module_version;
+$action="install";
+if(is_dir(WB_PATH.'/modules/'.$module_directory)) {
+	if(file_exists(WB_PATH.'/modules/'.$module_directory.'/info.php')) {
+		require(WB_PATH.'/modules/'.$module_directory.'/info.php');
+		// Version to be installed is older than currently installed version
+		if ($module_version>=$new_module_version) {
+			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+			$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+		}
+		$action="upgrade";
+	}
+}
+
+// Check if module dir is writable
+if(!is_writable(WB_PATH.'/modules/')) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['GENERIC']['BAD_PERMISSIONS']);
+}
+
+// Set module directory
+$module_dir = WB_PATH.'/modules/'.$module_directory;
+
+// Make sure the module dir exists, and chmod if needed
+make_dir($module_dir);
+
+// Unzip module to the module dir
+$list = $archive->extract(PCLZIP_OPT_PATH, $module_dir);
+if(!$list) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNZIP']);
+}
+
+// Delete the temp zip file
+if(file_exists($temp_file)) { unlink($temp_file); }
+
+// Chmod all the uploaded files
+$dir = dir($module_dir);
+while (false !== $entry = $dir->read()) {
+	// Skip pointers
+	if(substr($entry, 0, 1) != '.' AND $entry != '.svn' AND !is_dir($module_dir.'/'.$entry)) {
+		// Chmod file
+		change_mode($module_dir.'/'.$entry, 'file');
+	}
+}
+
+// Run the modules install // upgrade script if there is one
+if(file_exists(WB_PATH.'/modules/'.$module_directory.'/'.$action.'.php')) {
+	require(WB_PATH.'/modules/'.$module_directory.'/'.$action.'.php');
+}
+
+// Print success message
+if ($action=="install") {
+	// Load module info into DB
+	load_module(WB_PATH.'/modules/'.$module_directory, false);
+	$admin->print_success($MESSAGE['GENERIC']['INSTALLED']);
+} else if ($action=="upgrade") {
+	upgrade_module($module_directory, false);
+	$admin->print_success($MESSAGE['GENERIC']['UPGRADED']);
+}	
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/index.php
===================================================================
--- tags/2.7.0/wb/admin/modules/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/index.php	(revision 838)
@@ -0,0 +1,81 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'modules');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/modules');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into module list
+$template->set_block('main_block', 'module_list_block', 'module_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' order by name");
+if($result->numRows() > 0) {
+	while ($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('module_list', 'module_list_block', true);
+	}
+}
+
+// Insert permissions values
+if($admin->get_permission('modules_install') != true) {
+	$template->set_var('DISPLAY_INSTALL', 'hide');
+}
+if($admin->get_permission('modules_uninstall') != true) {
+	$template->set_var('DISPLAY_UNINSTALL', 'hide');
+}
+if($admin->get_permission('modules_view') != true) {
+	$template->set_var('DISPLAY_LIST', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_INSTALL_MODULE' => $HEADING['INSTALL_MODULE'],
+								'HEADING_UNINSTALL_MODULE' => $HEADING['UNINSTALL_MODULE'],
+								'HEADING_MODULE_DETAILS' => $HEADING['MODULE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_INSTALL' => $TEXT['INSTALL'],
+								'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
+								'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/template.html
===================================================================
--- tags/2.7.0/wb/admin/modules/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/template.html	(revision 838)
@@ -0,0 +1,71 @@
+<!-- BEGIN main_block -->
+
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+
+<h2>{HEADING_INSTALL_MODULE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<input type="file" name="userfile" size="82%" />
+		<script language="javascript" type="text/javascript">
+		document.install.userfile.focus();
+		</script>
+	</td>
+	<td width="110" align="left">
+		<input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+
+<h2>{HEADING_UNINSTALL_MODULE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="file" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN module_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END module_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_UNINSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="details" action="details.php" method="post" class="{DISPLAY_LIST}">
+
+<h2>{HEADING_MODULE_DETAILS}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="file" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN module_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END module_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_VIEW_DETAILS}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/modules/details.html
===================================================================
--- tags/2.7.0/wb/admin/modules/details.html	(nonexistent)
+++ tags/2.7.0/wb/admin/modules/details.html	(revision 838)
@@ -0,0 +1,36 @@
+<!-- BEGIN main_block -->
+
+<h2>{HEADING_MODULE_DETAILS}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0">
+<tr>
+	<td width="100">{TEXT_NAME}:</td>
+	<td>{NAME}</td>
+</tr>
+<tr>
+	<td>{TEXT_TYPE}:</td>
+	<td>{TYPE}</td>
+</tr>
+<tr>
+	<td>{TEXT_AUTHOR}:</td>
+	<td>{AUTHOR}</td>
+</tr>
+<tr>
+	<td>{TEXT_VERSION}:</td>
+	<td>{VERSION}</td>
+</tr>
+<tr>
+	<td>{TEXT_DESIGNED_FOR}:</td>
+	<td>Website Baker {DESIGNED_FOR}</td>
+</tr>
+<tr>
+	<td valign="top">{TEXT_DESCRIPTION}:</td>
+	<td style="text-align: justify;">{DESCRIPTION}</td>
+</tr>
+</table>
+
+<br />
+
+<button onclick="window.location = 'index.php';">{TEXT_BACK}</button>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/modules/details.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/add.php
===================================================================
--- tags/2.7.0/wb/admin/users/add.php	(nonexistent)
+++ tags/2.7.0/wb/admin/users/add.php	(revision 838)
@@ -0,0 +1,106 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'users_add');
+
+// Create new database object
+$database = new database();
+
+// Get details entered
+$groups_id = implode(",", $admin->add_slashes($_POST['groups'])); //should check permissions
+$groups_id = trim($groups_id, ','); // there will be an additional ',' when "Please Choose" was selected, too
+$active = $admin->add_slashes($_POST['active'][0]);
+$username_fieldname = $admin->get_post_escaped('username_fieldname');
+$username = strtolower($admin->get_post_escaped($username_fieldname));
+$password = $admin->get_post('password');
+$password2 = $admin->get_post('password2');
+$display_name = $admin->get_post_escaped('display_name');
+$email = $admin->get_post_escaped('email');
+$home_folder = $admin->get_post_escaped('home_folder');
+$default_language = DEFAULT_LANGUAGE;
+
+// Create a javascript back link
+$js_back = 'javascript: history.go(-1);';
+
+// Check values
+if($groups_id == '') {
+	$admin->print_error($MESSAGE['USERS']['NO_GROUP'], $js_back);
+}
+if(strlen($username) < 2) {
+	$admin->print_error($MESSAGE['USERS']['USERNAME_TOO_SHORT'], $js_back);
+}
+if(strlen($password) < 2) {
+	$admin->print_error($MESSAGE['USERS']['PASSWORD_TOO_SHORT'], $js_back);
+}
+if($password != $password2) {
+	$admin->print_error($MESSAGE['USERS']['PASSWORD_MISMATCH'], $js_back);
+}
+if($email != '') {
+	if($admin->validate_email($email) == false) {
+		$admin->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back);
+	}
+}
+
+// choose group_id from groups_id - workaround for still remaining calls to group_id (to be cleaned-up)
+$gid_tmp = explode(',', $groups_id);
+if(in_array('1', $gid_tmp)) $group_id = '1'; // if user is in administrator-group, get this group
+else $group_id = $gid_tmp[0]; // else just get the first one
+unset($gid_tmp);
+
+// Check if username already exists
+$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE username = '$username'");
+if($results->numRows() > 0) {
+	$admin->print_error($MESSAGE['USERS']['USERNAME_TAKEN'], $js_back);
+}
+
+// Check if the email already exists
+$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE email = '".$admin->add_slashes($_POST['email'])."'");
+if($results->numRows() > 0) {
+	if(isset($MESSAGE['USERS']['EMAIL_TAKEN'])) {
+		$admin->print_error($MESSAGE['USERS']['EMAIL_TAKEN'], $js_back);
+	} else {
+		$admin->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back);
+	}
+}
+
+// MD5 supplied password
+$md5_password = md5($password);
+
+// Inser the user into the database
+$query = "INSERT INTO ".TABLE_PREFIX."users (group_id,groups_id,active,username,password,display_name,home_folder,email,timezone, language) VALUES ('$group_id', '$groups_id', '$active', '$username','$md5_password','$display_name','$home_folder','$email','-72000', '$default_language')";
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['USERS']['ADDED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/save.php
===================================================================
--- tags/2.7.0/wb/admin/users/save.php	(nonexistent)
+++ tags/2.7.0/wb/admin/users/save.php	(revision 838)
@@ -0,0 +1,102 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'users_modify');
+
+// Create new database object
+$database = new database();
+
+// Check if user id is a valid number and doesnt equal 1
+if(!isset($_POST['user_id']) OR !is_numeric($_POST['user_id']) OR $_POST['user_id'] == 1) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$user_id = $_POST['user_id'];
+}
+
+// Gather details entered
+$groups_id = (isset($_POST['groups'])) ? implode(",", $admin->add_slashes($_POST['groups'])) : '';
+$active = $admin->add_slashes($_POST['active'][0]);
+$username_fieldname = $admin->get_post_escaped('username_fieldname');
+$username = strtolower($admin->get_post_escaped($username_fieldname));
+$password = $admin->get_post('password');
+$password2 = $admin->get_post('password2');
+$display_name = $admin->get_post_escaped('display_name');
+$email = $admin->get_post_escaped('email');
+$home_folder = $admin->get_post_escaped('home_folder');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Check values
+if($groups_id == "") {
+	$admin->print_error($MESSAGE['USERS']['NO_GROUP'], $js_back);
+}
+if(strlen($username) < 2) {
+	$admin->print_error($MESSAGE['USERS']['USERNAME_TOO_SHORT'], $js_back);
+}
+if($password != "") {
+	if(strlen($password) < 2) {
+		$admin->print_error($MESSAGE['USERS']['PASSWORD_TOO_SHORT'], $js_back);
+	}
+	if($password != $password2) {
+		$admin->print_error($MESSAGE['USERS']['PASSWORD_MISMATCH'], $js_back);
+	}
+}
+if($email != "") {
+	if($admin->validate_email($email) == false) {
+		$admin->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back);
+	}
+}
+
+// Prevent from renaming user to "admin"
+if($username != 'admin') {
+	$username_code = ", username = '$username'";
+} else {
+	$username_code = '';
+}
+
+// Update the database
+if($password == "") {
+	$query = "UPDATE ".TABLE_PREFIX."users SET groups_id = '$groups_id', active = '$active'$username_code, display_name = '$display_name', home_folder = '$home_folder', email = '$email' WHERE user_id = '$user_id'";
+} else {
+	// MD5 supplied password
+	$md5_password = md5($password);
+	$query = "UPDATE ".TABLE_PREFIX."users SET groups_id = '$groups_id', active = '$active'$username_code, display_name = '$display_name', home_folder = '$home_folder', email = '$email', password = '$md5_password' WHERE user_id = '$user_id'";
+}
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['USERS']['SAVED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/users.php
===================================================================
--- tags/2.7.0/wb/admin/users/users.php	(nonexistent)
+++ tags/2.7.0/wb/admin/users/users.php	(revision 838)
@@ -0,0 +1,186 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file and admin class file
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+
+// Create new database object
+$database = new database();
+
+if(!isset($_POST['action']) OR ($_POST['action'] != "modify" AND $_POST['action'] != "delete")) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Check if user id is a valid number and doesnt equal 1
+if(!isset($_POST['user_id']) OR !is_numeric($_POST['user_id']) OR $_POST['user_id'] == 1) {
+	header("Location: index.php");
+	exit(0);
+}
+
+if($_POST['action'] == 'modify') {
+	// Print header
+	$admin = new admin('Access', 'users_modify');
+	// Get existing values
+	$results = $database->query("SELECT * FROM ".TABLE_PREFIX."users WHERE user_id = '".$_POST['user_id']."'");
+	$user = $results->fetchRow();
+	
+	// Setup template object
+	$template = new Template(ADMIN_PATH.'/users');
+	$template->set_file('page', 'user_form.html');
+	$template->set_block('page', 'main_block', 'main');
+	$template->set_var(	array(
+										'ACTION_URL' => ADMIN_URL.'/users/save.php',
+										'SUBMIT_TITLE' => $TEXT['SAVE'],
+										'USER_ID' => $user['user_id'],
+										'USERNAME' => $user['username'],
+										'DISPLAY_NAME' => $user['display_name'],
+										'EMAIL' => $user['email']
+										)
+							);
+	if($user['active'] == 1) {
+		$template->set_var('ACTIVE_CHECKED', ' checked');
+	} else {
+		$template->set_var('DISABLED_CHECKED', ' checked');
+	}
+	// Add groups to list
+	$template->set_block('main_block', 'group_list_block', 'group_list');
+	$results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1'");
+	if($results->numRows() > 0) {
+		$template->set_var('ID', '');
+		$template->set_var('NAME', $TEXT['PLEASE_SELECT'].'...');
+		$template->set_var('SELECTED', '');
+		$template->parse('group_list', 'group_list_block', true);
+		while($group = $results->fetchRow()) {
+			$template->set_var('ID', $group['group_id']);
+			$template->set_var('NAME', $group['name']);
+			if(in_array($group['group_id'], split(",",$user['groups_id']))) {
+				$template->set_var('SELECTED', 'selected');
+			} else {
+				$template->set_var('SELECTED', '');
+			}
+			$template->parse('group_list', 'group_list_block', true);
+		}
+	}
+	// Only allow the user to add a user to the Administrators group if they belong to it
+	if(in_array(1, $admin->get_groups_id())) {
+		$template->set_var('ID', '1');
+		$users_groups = $admin->get_groups_name();
+		$template->set_var('NAME', $users_groups[1]);
+		
+		$in_group = FALSE;
+		foreach($admin->get_groups_id() as $cur_gid){
+		    if (in_array($cur_gid, split(",", $user['groups_id']))) {
+		        $in_group = TRUE;
+		    }
+		}
+
+		if($in_group) {
+			$template->set_var('SELECTED', 'selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('group_list', 'group_list_block', true);
+	} else {
+		if($results->numRows() == 0) {
+			$template->set_var('ID', '');
+			$template->set_var('NAME', $TEXT['NONE_FOUND']);
+			$template->set_var('SELECTED', 'selected');
+			$template->parse('group_list', 'group_list_block', true);
+		}
+	}	
+	
+	// Generate username field name
+	$username_fieldname = 'username_';
+	$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+	srand((double)microtime()*1000000);
+	$i = 0;
+	while ($i <= 7) {
+		$num = rand() % 33;
+		$tmp = substr($salt, $num, 1);
+		$username_fieldname = $username_fieldname . $tmp;
+		$i++;
+	}
+	
+	// Work-out if home folder should be shown
+	if(!HOME_FOLDERS) {
+		$template->set_var('DISPLAY_HOME_FOLDERS', 'none');
+	}
+	
+	// Include the WB functions file
+	require_once(WB_PATH.'/framework/functions.php');
+	
+	// Add media folders to home folder list
+	$template->set_block('main_block', 'folder_list_block', 'folder_list');
+	foreach(directory_list(WB_PATH.MEDIA_DIRECTORY) AS $name) {
+		$template->set_var('NAME', str_replace(WB_PATH, '', $name));
+		$template->set_var('FOLDER', str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name));
+		if($user['home_folder'] == str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name)) {
+			$template->set_var('SELECTED', ' selected');
+		} else {
+			$template->set_var('SELECTED', ' ');
+		}
+		$template->parse('folder_list', 'folder_list_block', true);
+	}
+	
+	// Insert language text and messages
+	$template->set_var(array(
+									'TEXT_RESET' => $TEXT['RESET'],
+									'TEXT_ACTIVE' => $TEXT['ACTIVE'],
+									'TEXT_DISABLED' => $TEXT['DISABLED'],
+									'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+									'TEXT_USERNAME' => $TEXT['USERNAME'],
+									'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+									'TEXT_RETYPE_PASSWORD' => $TEXT['RETYPE_PASSWORD'],
+									'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+									'TEXT_EMAIL' => $TEXT['EMAIL'],
+									'TEXT_GROUP' => $TEXT['GROUP'],
+									'TEXT_NONE' => $TEXT['NONE'],
+									'TEXT_HOME_FOLDER' => $TEXT['HOME_FOLDER'],
+									'USERNAME_FIELDNAME' => $username_fieldname,
+									'CHANGING_PASSWORD' => $MESSAGE['USERS']['CHANGING_PASSWORD']
+									)
+							);
+	
+	// Parse template object
+	$template->parse('main', 'main_block', false);
+	$template->pparse('output', 'page');
+} elseif($_POST['action'] == 'delete') {
+	// Print header
+	$admin = new admin('Access', 'users_delete');
+	// Delete the user
+	$database->query("DELETE FROM ".TABLE_PREFIX."users WHERE user_id = '".$_POST['user_id']."' LIMIT 1");
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	} else {
+		$admin->print_success($MESSAGE['USERS']['DELETED']);
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/users.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/user_form.html
===================================================================
--- tags/2.7.0/wb/admin/users/user_form.html	(nonexistent)
+++ tags/2.7.0/wb/admin/users/user_form.html	(revision 838)
@@ -0,0 +1,100 @@
+<!-- BEGIN main_block -->
+
+<script language="javascript" type="text/javascript">
+function toggle_radio(radio_on, radio_off) {
+	document.getElementById(radio_on).checked = true;
+	document.getElementById(radio_off).checked = true;
+}
+</script>
+
+<style>
+.value_input input, .value_input text, .value_input select {
+	width: 100%;
+}
+</style>
+
+<h2 style="display: {DISPLAY_EXTRA};">{HEADING_MODIFY_USER}</h2>
+
+<form name="user" action="{ACTION_URL}" method="post" class="{DISPLAY_ADD}">
+<input type="hidden" name="user_id" value="{USER_ID}" />
+<input type="hidden" name="username_fieldname" value="{USERNAME_FIELDNAME}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="150">{TEXT_USERNAME}:</td>
+	<td class="value_input">
+		<input type="text" name="{USERNAME_FIELDNAME}" maxlength="30" value="{USERNAME}" />
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_PASSWORD}:</td>
+	<td class="value_input">
+		<input type="password" name="password" maxlength="30" />
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_RETYPE_PASSWORD}:</td>
+	<td class="value_input">
+		<input type="password" name="password2" maxlength="30" />
+	</td>
+</tr>
+<tr style="display: {DISPLAY_EXTRA};">
+	<td>&nbsp;</td>
+	<td style="font-size: 10px;">
+		{CHANGING_PASSWORD}
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_DISPLAY_NAME}:</td>
+	<td class="value_input">
+		<input type="text" name="display_name" maxlength="255" value="{DISPLAY_NAME}" />
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_EMAIL}:</td>
+	<td class="value_input">
+		<input type="text" name="email" maxlength="255" value="{EMAIL}" />
+	</td>
+</tr>
+<tr style="display: {DISPLAY_HOME_FOLDERS};">
+	<td>{TEXT_HOME_FOLDER}:</td>
+	<td class="value_input">
+		<select name="home_folder">
+			<option value="">{TEXT_NONE}</option>
+			<!-- BEGIN folder_list_block -->
+			<option value="{FOLDER}"{SELECTED}>{NAME}</option>
+			<!-- END folder_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_GROUP}:</td>
+	<td class="value_input">
+		<select name="groups[]" multiple size=5>
+		<!-- BEGIN group_list_block -->
+			<option value="{ID}" {SELECTED}>{NAME}</option>
+		<!-- END group_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="radio" name="active[]" id="active" value="1" {ACTIVE_CHECKED} />
+		<label for="active">{TEXT_ACTIVE}</label>
+		<input type="radio" name="active[]" id="disabled" value="0" {DISABLED_CHECKED} />
+		<label for="disabled">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{SUBMIT_TITLE}" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/user_form.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/index.php
===================================================================
--- tags/2.7.0/wb/admin/users/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/users/index.php	(revision 838)
@@ -0,0 +1,191 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'users');
+
+// Create new template object for the modify/remove menu
+$template = new Template(ADMIN_PATH.'/users');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var('ADMIN_URL', ADMIN_URL);
+
+// Get existing value from database
+$database = new database();
+$query = "SELECT user_id, username, display_name FROM ".TABLE_PREFIX."users WHERE user_id != '1' ORDER BY username";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), 'index.php');
+}
+
+// Insert values into the modify/remove menu
+$template->set_block('main_block', 'list_block', 'list');
+if($results->numRows() > 0) {
+	// Insert first value to say please select
+	$template->set_var('VALUE', '');
+	$template->set_var('NAME', $TEXT['PLEASE_SELECT'].'...');
+	$template->parse('list', 'list_block', true);
+	// Loop through users
+	while($user = $results->fetchRow()) {
+		$template->set_var('VALUE', $user['user_id']);
+		$template->set_var('NAME', $user['display_name'].' ('.$user['username'].')');
+		$template->parse('list', 'list_block', true);
+	}
+} else {
+	// Insert single value to say no users were found
+	$template->set_var('NAME', $TEXT['NONE_FOUND']);
+	$template->parse('list', 'list_block', true);
+}
+
+// Insert permissions values
+if($admin->get_permission('users_add') != true) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+}
+if($admin->get_permission('users_modify') != true) {
+	$template->set_var('DISPLAY_MODIFY', 'hide');
+}
+if($admin->get_permission('users_delete') != true) {
+	$template->set_var('DISPLAY_DELETE', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_MODIFY_DELETE_USER' => $HEADING['MODIFY_DELETE_USER'],
+								'HEADING_ADD_USER' => $HEADING['ADD_USER']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_MODIFY' => $TEXT['MODIFY'],
+								'TEXT_DELETE' => $TEXT['DELETE'],
+								'TEXT_MANAGE_GROUPS' => $TEXT['MANAGE_GROUPS'],
+								'CONFIRM_DELETE' => $MESSAGE['USERS']['CONFIRM_DELETE']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Setup template for add user form
+$template = new Template(ADMIN_PATH.'/users');
+$template->set_file('page', 'user_form.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var('DISPLAY_EXTRA', 'none');
+$template->set_var('ACTIVE_CHECKED', 'checked');
+$template->set_var('ACTION_URL', ADMIN_URL.'/users/add.php');
+$template->set_var('SUBMIT_TITLE', $TEXT['ADD']);
+
+// Add groups to list
+$template->set_block('main_block', 'group_list_block', 'group_list');
+$results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1'");
+if($results->numRows() > 0) {
+	$template->set_var('ID', '');
+	$template->set_var('NAME', $TEXT['PLEASE_SELECT'].'...');
+	$template->set_var('SELECTED', 'selected');
+	$template->parse('group_list', 'group_list_block', true);
+	while($group = $results->fetchRow()) {
+		$template->set_var('ID', $group['group_id']);
+		$template->set_var('NAME', $group['name']);
+		$template->set_var('SELECTED', '');
+		$template->parse('group_list', 'group_list_block', true);
+	}
+}
+// Only allow the user to add a user to the Administrators group if they belong to it
+if(in_array(1, $admin->get_groups_id())) {
+	$users_groups = $admin->get_groups_name();
+	$template->set_var('ID', '1');
+	$template->set_var('NAME', $users_groups[1]);
+	$template->set_var('SELECTED', '');
+	$template->parse('group_list', 'group_list_block', true);
+} else {
+	if($results->numRows() == 0) {
+		$template->set_var('ID', '');
+		$template->set_var('NAME', $TEXT['NONE_FOUND']);
+		$template->parse('group_list', 'group_list_block', true);
+	}
+}
+
+// Insert permissions values
+if($admin->get_permission('users_add') != true) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+}
+
+// Generate username field name
+$username_fieldname = 'username_';
+$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+srand((double)microtime()*1000000);
+$i = 0;
+while ($i <= 7) {
+	$num = rand() % 33;
+	$tmp = substr($salt, $num, 1);
+	$username_fieldname = $username_fieldname . $tmp;
+	$i++;
+}
+
+// Work-out if home folder should be shown
+if(!HOME_FOLDERS) {
+	$template->set_var('DISPLAY_HOME_FOLDERS', 'none');
+}
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Add media folders to home folder list
+$template->set_block('main_block', 'folder_list_block', 'folder_list');
+foreach(directory_list(WB_PATH.MEDIA_DIRECTORY) AS $name) {
+	$template->set_var('NAME', str_replace(WB_PATH, '', $name));
+	$template->set_var('FOLDER', str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name));
+	$template->set_var('SELECTED', ' ');
+	$template->parse('folder_list', 'folder_list_block', true);
+}
+
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_RESET' => $TEXT['RESET'],
+								'TEXT_ACTIVE' => $TEXT['ACTIVE'],
+								'TEXT_DISABLED' => $TEXT['DISABLED'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+								'TEXT_USERNAME' => $TEXT['USERNAME'],
+								'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+								'TEXT_RETYPE_PASSWORD' => $TEXT['RETYPE_PASSWORD'],
+								'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+								'TEXT_EMAIL' => $TEXT['EMAIL'],
+								'TEXT_GROUP' => $TEXT['GROUP'],
+								'TEXT_NONE' => $TEXT['NONE'],
+								'TEXT_HOME_FOLDER' => $TEXT['HOME_FOLDER'],
+								'USERNAME_FIELDNAME' => $username_fieldname,
+								'CHANGING_PASSWORD' => $MESSAGE['USERS']['CHANGING_PASSWORD']
+								)
+						);
+
+// Parse template for add user form
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/users/template.html
===================================================================
--- tags/2.7.0/wb/admin/users/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/users/template.html	(revision 838)
@@ -0,0 +1,35 @@
+<!-- BEGIN main_block -->
+
+<form name="users" action="users.php" method="post">
+
+<input type="hidden" name="action" value="delete" />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<h2>{HEADING_MODIFY_DELETE_USER}</h2>
+	</td>
+	<td align="right">
+		<a href="{ADMIN_URL}/groups/index.php">{TEXT_MANAGE_GROUPS}</a>
+	</td>
+</tr>
+</table>
+
+<br />
+
+<select name="user_id" style="width: 500px;">
+<!-- BEGIN list_block -->
+	<option value="{VALUE}">{NAME}</option>
+<!-- END list_block -->
+</select>
+
+<input type="submit" name="modify" style="width: 100px;" value="{TEXT_MODIFY}" onclick="document.users.action.value = 'modify';" class="{DISPLAY_MODIFY}" />
+<input type="submit" name="delete" style="width: 100px;" value="{TEXT_DELETE}" onclick="return confirm('{CONFIRM_DELETE}');" class="{DISPLAY_DELETE}" />
+
+</form>
+
+<br />
+
+<h2 style="margin-top: 20px;" class="{DISPLAY_ADD}">{HEADING_ADD_USER}</h2>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/users/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/admintools.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/admintools.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/templates.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/templates.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/groups.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/groups.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/media.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/media.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/pages.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/pages.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/settings.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/settings.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/access.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/access.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/preferences.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/preferences.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/users.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/users.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/languages.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/languages.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/addons.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/addons.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/modules.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/modules.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/icons/view.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/icons/index.php
===================================================================
--- tags/2.7.0/wb/admin/images/icons/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/images/icons/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/images/icons/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/dl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/dl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/view.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/home.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/home.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/help.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/help.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/index.php
===================================================================
--- tags/2.7.0/wb/admin/images/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/images/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/images/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/clock_red_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/clock_red_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/reload_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/reload_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/view_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/view_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/folder_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/folder_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/up_folder_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/up_folder_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/clock_del_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/clock_del_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/noclock_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/noclock_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/clock_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/clock_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/deleted_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/deleted_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/private_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/private_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/restore_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/restore_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/modify_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/modify_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/hidden_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/hidden_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/minus_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/minus_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/visible_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/visible_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/none_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/none_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/blank.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/blank.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/delete_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/delete_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/down_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/down_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/keys_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/keys_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/plus_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/plus_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/images/up_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/admin/images/up_16.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/admin/settings/index.php
===================================================================
--- tags/2.7.0/wb/admin/settings/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/settings/index.php	(revision 838)
@@ -0,0 +1,633 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+if(isset($_GET['advanced']) AND $_GET['advanced'] == 'yes') {
+	$admin = new admin('Settings', 'settings_advanced');
+} else {
+	$admin = new admin('Settings', 'settings_basic');
+}
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+require_once(WB_PATH.'/framework/functions-utf8.php');
+
+// Create new template object
+$template = new Template(ADMIN_PATH.'/settings');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Query current settings in the db, then loop through them and print them
+$query = "SELECT * FROM ".TABLE_PREFIX."settings";
+$results = $database->query($query);
+while($setting = $results->fetchRow()) {
+	$setting_name = $setting['name'];
+	$setting_value = htmlspecialchars($setting['value']);
+	$template->set_var(strtoupper($setting_name),$setting_value);
+}
+
+// Query current settings in the db, then loop through them and print them
+$query = "SELECT * FROM ".TABLE_PREFIX."search WHERE extra = ''";
+$results = $database->query($query);
+while($setting = $results->fetchRow()) {
+	$setting_name = $setting['name'];
+	$setting_value = htmlspecialchars(($setting['value']));
+	switch($setting_name) {
+		// Search header
+		case 'header':
+			$template->set_var('SEARCH_HEADER', $setting_value);
+		break;
+		// Search results header
+		case 'results_header':
+			$template->set_var('SEARCH_RESULTS_HEADER', $setting_value);
+		break;
+		// Search results loop
+		case 'results_loop':
+			$template->set_var('SEARCH_RESULTS_LOOP', $setting_value);
+		break;
+		// Search results footer
+		case 'results_footer':
+			$template->set_var('SEARCH_RESULTS_FOOTER', $setting_value);
+		break;
+		// Search no results
+		case 'no_results':
+			$template->set_var('SEARCH_NO_RESULTS', $setting_value);
+		break;
+		// Search footer
+		case 'footer':
+			$template->set_var('SEARCH_FOOTER', $setting_value);
+		break;
+		// Search module-order
+		case 'module_order':
+			$template->set_var('SEARCH_MODULE_ORDER', $setting_value);
+		break;
+		// Search max lines of excerpt
+		case 'max_excerpt':
+			$template->set_var('SEARCH_MAX_EXCERPT', $setting_value);
+		break;
+		// time-limit
+		case 'time_limit':
+			$template->set_var('SEARCH_TIME_LIMIT', $setting_value);
+		break;
+		// Search template
+		case 'template':
+			$search_template = $setting_value;
+		break;
+	}
+}
+
+// Do the same for settings stored in config file as with ones in db
+$database_type = '';
+
+// Tell the browser whether or not to show advanced options
+if(isset($_GET['advanced']) AND $_GET['advanced'] == 'yes') {
+	$template->set_var('DISPLAY_ADVANCED', '');
+	$template->set_var('ADVANCED', 'yes');
+	$template->set_var('ADVANCED_BUTTON', '<< '.$TEXT['HIDE_ADVANCED']);
+	$template->set_var('ADVANCED_LINK', 'index.php?advanced=no');
+	$template->set_var('BASIC_FILE_PERMS_ID', 'hide');
+	$template->set_var('ADVANCED_FILE_PERMS_ID', 'file_perms_box');
+} else {
+	$template->set_var('DISPLAY_ADVANCED', 'none');
+	$template->set_var('ADVANCED', 'no');
+	$template->set_var('ADVANCED_BUTTON', $TEXT['SHOW_ADVANCED'].' >>');
+	$template->set_var('ADVANCED_LINK', 'index.php?advanced=yes');
+	$template->set_var('BASIC_FILE_PERMS_ID', 'file_perms_box');
+	$template->set_var('ADVANCED_FILE_PERMS_ID', 'hide');
+}
+
+$template->set_var(array(	
+									'PAGES_DIRECTORY' => PAGES_DIRECTORY,
+									'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
+									'PAGE_EXTENSION' => PAGE_EXTENSION,
+									'PAGE_SPACER' => PAGE_SPACER,
+									'WB_PATH' => WB_PATH,
+									'WB_URL' => WB_URL,
+									'ADMIN_PATH' => ADMIN_PATH,
+									'ADMIN_URL' => ADMIN_URL,
+									'DATABASE_TYPE' => DB_TYPE,
+									'DATABASE_HOST' => DB_HOST,
+									'DATABASE_USERNAME' => DB_USERNAME,
+									'DATABASE_NAME' => DB_NAME,
+									'TABLE_PREFIX' => TABLE_PREFIX
+								 )
+						 );
+
+// Insert language values
+$template->set_block('main_block', 'language_list_block', 'language_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$l_codes[$addon['name']] = $addon['directory'];
+		$l_names[$addon['name']] = entities_to_7bit($addon['name']); // sorting-problem workaround
+	}
+	asort($l_names);
+	foreach($l_names as $l_name=>$v) {
+		// Insert code and name
+		$template->set_var(array(
+								'CODE' => $l_codes[$l_name],
+								'NAME' => $l_name
+								));
+		// Check if it is selected
+		if(DEFAULT_LANGUAGE == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('language_list', 'language_list_block', true);
+	}
+}
+
+// Insert default timezone values
+require(ADMIN_PATH.'/interface/timezones.php');
+$template->set_block('main_block', 'timezone_list_block', 'timezone_list');
+foreach($TIMEZONES AS $hour_offset => $title) {
+	// Make sure we dont list "System Default" as we are setting this value!
+	if($hour_offset != '-20') {
+		$template->set_var('VALUE', $hour_offset);
+		$template->set_var('NAME', $title);
+		if(DEFAULT_TIMEZONE == $hour_offset*60*60) {
+			$template->set_var('SELECTED', 'selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('timezone_list', 'timezone_list_block', true);
+	}
+}
+
+// Insert default charset values
+require(ADMIN_PATH.'/interface/charsets.php');
+$template->set_block('main_block', 'charset_list_block', 'charset_list');
+foreach($CHARSETS AS $code => $title) {
+	$template->set_var('VALUE', $code);
+	$template->set_var('NAME', $title);
+	if(DEFAULT_CHARSET == $code) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('charset_list', 'charset_list_block', true);
+}
+
+// Insert date format list
+require(ADMIN_PATH.'/interface/date_formats.php');
+$template->set_block('main_block', 'date_format_list_block', 'date_format_list');
+foreach($DATE_FORMATS AS $format => $title) {
+	$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+	if($format != 'system_default') {
+		$template->set_var('VALUE', $format);
+	} else {
+		$template->set_var('VALUE', '');
+	}
+	$template->set_var('NAME', $title);
+	if(DEFAULT_DATE_FORMAT == $format) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('date_format_list', 'date_format_list_block', true);
+}
+
+// Insert time format list
+require(ADMIN_PATH.'/interface/time_formats.php');
+$template->set_block('main_block', 'time_format_list_block', 'time_format_list');
+foreach($TIME_FORMATS AS $format => $title) {
+	$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+	if($format != 'system_default') {
+		$template->set_var('VALUE', $format);
+	} else {
+		$template->set_var('VALUE', '');
+	}
+	$template->set_var('NAME', $title);
+	if(DEFAULT_TIME_FORMAT == $format) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('time_format_list', 'time_format_list_block', true);
+}
+
+// Insert templates
+$template->set_block('main_block', 'template_list_block', 'template_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('FILE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		if(($addon['directory'] == DEFAULT_TEMPLATE) ? $selected = ' selected' : $selected = '');
+		$template->set_var('SELECTED', $selected);
+		$template->parse('template_list', 'template_list_block', true);
+	}
+}
+
+// Insert WYSIWYG modules
+$template->set_block('main_block', 'editor_list_block', 'editor_list');
+$file='none';  
+$module_name=$TEXT['NONE'];  
+$template->set_var('FILE', $file);  
+$template->set_var('NAME', $module_name);  
+if((!defined('WYSIWYG_EDITOR') OR $file == WYSIWYG_EDITOR) ? $selected = ' selected' : $selected = '');  
+$template->set_var('SELECTED', $selected);  
+$template->parse('editor_list', 'editor_list_block', true);  
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'wysiwyg'");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('FILE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		if((defined('WYSIWYG_EDITOR') AND $addon['directory'] == WYSIWYG_EDITOR) ? $selected = ' selected' : $selected = '');
+		$template->set_var('SELECTED', $selected);
+		$template->parse('editor_list', 'editor_list_block', true);
+	}
+}
+
+// Insert templates for search settings
+$template->set_block('main_block', 'search_template_list_block', 'search_template_list');
+if($search_template == '') { $selected = ' selected'; } else { $selected = ''; }
+$template->set_var(array('FILE' => '', 'NAME' => $TEXT['SYSTEM_DEFAULT'], 'SELECTED' => $selected));
+$template->parse('search_template_list', 'search_template_list_block', true);
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('FILE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		if($addon['directory'] == $search_template ? $selected = ' selected' : $selected = '');
+		$template->set_var('SELECTED', $selected);
+		$template->parse('search_template_list', 'search_template_list_block', true);
+	}
+}
+
+// Insert default error reporting values
+require(ADMIN_PATH.'/interface/er_levels.php');
+$template->set_block('main_block', 'error_reporting_list_block', 'error_reporting_list');
+foreach($ER_LEVELS AS $value => $title) {
+	$template->set_var('VALUE', $value);
+	$template->set_var('NAME', $title);
+	if(ER_LEVEL == $value) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('error_reporting_list', 'error_reporting_list_block', true);
+}
+
+// Insert permissions values
+if($admin->get_permission('settings_advanced') != true) {
+	$template->set_var('DISPLAY_ADVANCED_BUTTON', 'hide');
+}
+
+// Insert page level limits
+$template->set_block('main_block', 'page_level_limit_list_block', 'page_level_limit_list');
+for($i = 1; $i <= 10; $i++) {
+	$template->set_var('NUMBER', $i);
+	if(PAGE_LEVEL_LIMIT == $i) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('page_level_limit_list', 'page_level_limit_list_block', true);
+}
+
+// Work-out if multiple menus feature is enabled
+if(defined('MULTIPLE_MENUS') AND MULTIPLE_MENUS == true) {
+	$template->set_var('MULTIPLE_MENUS_ENABLED', ' checked');
+} else {
+	$template->set_var('MULTIPLE_MENUS_DISABLED', ' checked');
+}
+
+// Work-out if page languages feature is enabled
+if(defined('PAGE_LANGUAGES') AND PAGE_LANGUAGES == true) {
+        $template->set_var('PAGE_LANGUAGES_ENABLED', ' checked');
+} else {
+        $template->set_var('PAGE_LANGUAGES_DISABLED', ' checked');
+}
+
+// Work-out if smart login feature is enabled
+if(defined('SMART_LOGIN') AND SMART_LOGIN == true) {
+	$template->set_var('SMART_LOGIN_ENABLED', ' checked');
+} else {
+	$template->set_var('SMART_LOGIN_DISABLED', ' checked');
+}
+
+if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */
+	$template->set_var('GD_EXTENSION_ENABLED', '');
+} else {
+	$template->set_var('GD_EXTENSION_ENABLED', 'none');
+}
+
+// Work-out if section blocks feature is enabled
+if(defined('SECTION_BLOCKS') AND SECTION_BLOCKS == true) {
+	$template->set_var('SECTION_BLOCKS_ENABLED', ' checked');
+} else {
+	$template->set_var('SECTION_BLOCKS_DISABLED', ' checked');
+}
+
+// Work-out if homepage redirection feature is enabled
+if(defined('HOMEPAGE_REDIRECTION') AND HOMEPAGE_REDIRECTION == true) {
+	$template->set_var('HOMEPAGE_REDIRECTION_ENABLED', ' checked');
+} else {
+	$template->set_var('HOMEPAGE_REDIRECTION_DISABLED', ' checked');
+}
+
+// Work-out which server os should be checked
+if(OPERATING_SYSTEM == 'linux') {
+	$template->set_var('LINUX_SELECTED', ' checked');
+} elseif(OPERATING_SYSTEM == 'windows') {
+	$template->set_var('WINDOWS_SELECTED', ' checked');
+}
+
+// Work-out if manage sections feature is enabled
+if(MANAGE_SECTIONS) {
+	$template->set_var('MANAGE_SECTIONS_ENABLED', ' checked');
+} else {
+	$template->set_var('MANAGE_SECTIONS_DISABLED', ' checked');
+}
+
+// Work-out which wbmailer routine should be checked
+if(WBMAILER_ROUTINE == 'phpmail') {
+	$template->set_var('PHPMAIL_SELECTED', ' checked');
+	$template->set_var('SMTP_VISIBILITY', 'none');
+	$template->set_var('SMTP_VISIBILITY_AUTH', 'none');
+} elseif(WBMAILER_ROUTINE == 'smtp') {
+	$template->set_var('SMTPMAIL_SELECTED', ' checked');
+	$template->set_var('SMTP_VISIBILITY', '');
+}
+
+// Work-out if SMTP authentification should be checked
+if(WBMAILER_SMTP_AUTH) {
+	$template->set_var('SMTP_AUTH_SELECTED', ' checked');
+	if(WBMAILER_ROUTINE == 'smtp') {
+		$template->set_var('SMTP_VISIBILITY_AUTH', '');
+	} else {
+		$template->set_var('SMTP_VISIBILITY_AUTH', 'none');
+	}
+} else {
+	$template->set_var('SMTP_VISIBILITY_AUTH', 'none');
+}
+
+// Work-out if intro feature is enabled
+if(INTRO_PAGE) {
+	$template->set_var('INTRO_PAGE_ENABLED', ' checked');
+} else {
+	$template->set_var('INTRO_PAGE_DISABLED', ' checked');
+}
+
+// Work-out if frontend login feature is enabled
+if(FRONTEND_LOGIN) {
+	$template->set_var('PRIVATE_ENABLED', ' checked');
+} else {
+	$template->set_var('PRIVATE_DISABLED', ' checked');
+}
+
+// Work-out if page trash feature is disabled, in-line, or separate
+if(PAGE_TRASH == 'disabled') {
+	$template->set_var('PAGE_TRASH_DISABLED', ' checked');
+	$template->set_var('DISPLAY_PAGE_TRASH_SEPARATE', ' display: none;');
+} elseif(PAGE_TRASH == 'inline') {
+	$template->set_var('PAGE_TRASH_INLINE', ' checked');
+	$template->set_var('DISPLAY_PAGE_TRASH_SEPARATE', ' display: none;');
+} elseif(PAGE_TRASH == 'separate') {
+	$template->set_var('PAGE_TRASH_SEPARATE', ' checked');
+	$template->set_var('DISPLAY_PAGE_TRASH_SEPARATE', ' display: inline;');
+}
+
+// Work-out if media home folde feature is enabled
+if(HOME_FOLDERS) {
+	$template->set_var('HOME_FOLDERS_ENABLED', ' checked');
+} else {
+	$template->set_var('HOME_FOLDERS_DISABLED', ' checked');
+}
+
+// Insert search select
+if(SEARCH == 'private') {
+	$template->set_var('PRIVATE_SEARCH', 'selected');
+} elseif(SEARCH == 'registered') {
+	$template->set_var('REGISTERED_SEARCH', 'selected');
+} elseif(SEARCH == 'none') {
+	$template->set_var('NONE_SEARCH', 'selected');
+}
+
+// Work-out if 777 permissions are set
+if(STRING_FILE_MODE == '0777' AND STRING_DIR_MODE == '0777') {
+	$template->set_var('WORLD_WRITEABLE_SELECTED', ' checked');
+}
+
+// Work-out which file mode boxes are checked
+if(extract_permission(STRING_FILE_MODE, 'u', 'r')) {
+	$template->set_var('FILE_U_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'u', 'w')) {
+	$template->set_var('FILE_U_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'u', 'e')) {
+	$template->set_var('FILE_U_E_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'r')) {
+	$template->set_var('FILE_G_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'w')) {
+	$template->set_var('FILE_G_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'g', 'e')) {
+	$template->set_var('FILE_G_E_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'r')) {
+	$template->set_var('FILE_O_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'w')) {
+	$template->set_var('FILE_O_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_FILE_MODE, 'o', 'e')) {
+	$template->set_var('FILE_O_E_CHECKED', 'checked');
+}
+// Work-out which dir mode boxes are checked
+if(extract_permission(STRING_DIR_MODE, 'u', 'r')) {
+	$template->set_var('DIR_U_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'u', 'w')) {
+	$template->set_var('DIR_U_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'u', 'e')) {
+	$template->set_var('DIR_U_E_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'r')) {
+	$template->set_var('DIR_G_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'w')) {
+	$template->set_var('DIR_G_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'g', 'e')) {
+	$template->set_var('DIR_G_E_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'r')) {
+	$template->set_var('DIR_O_R_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'w')) {
+	$template->set_var('DIR_O_W_CHECKED', 'checked');
+}
+if(extract_permission(STRING_DIR_MODE, 'o', 'e')) {
+	$template->set_var('DIR_O_E_CHECKED', 'checked');
+}
+
+// Insert Server Email value into template
+$template->set_var('SERVER_EMAIL', SERVER_EMAIL);
+
+// Insert groups into signup list
+$template->set_block('main_block', 'group_list_block', 'group_list');
+$results = $database->query("SELECT group_id, name FROM ".TABLE_PREFIX."groups WHERE group_id != '1'");
+if($results->numRows() > 0) {
+	while($group = $results->fetchRow()) {
+		$template->set_var('ID', $group['group_id']);
+		$template->set_var('NAME', $group['name']);
+		if(FRONTEND_SIGNUP == $group['group_id']) {
+			$template->set_var('SELECTED', 'selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('group_list', 'group_list_block', true);
+	}
+} else {
+	$template->set_var('ID', 'disabled');
+	$template->set_var('NAME', $MESSAGE['GROUPS']['NO_GROUPS_FOUND']);
+	$template->parse('group_list', 'group_list_block', true);
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_GENERAL_SETTINGS' => $HEADING['GENERAL_SETTINGS'],
+								'HEADING_DEFAULT_SETTINGS' => $HEADING['DEFAULT_SETTINGS'],
+								'HEADING_SEARCH_SETTINGS' => $HEADING['SEARCH_SETTINGS'],
+								'HEADING_SERVER_SETTINGS' => $HEADING['SERVER_SETTINGS'],
+								'HEADING_WBMAILER_SETTINGS' => $HEADING['WBMAILER_SETTINGS'],
+								'HEADING_ADMINISTRATION_TOOLS' => $HEADING['ADMINISTRATION_TOOLS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_WEBSITE_TITLE' => $TEXT['WEBSITE_TITLE'],
+								'TEXT_WEBSITE_DESCRIPTION' => $TEXT['WEBSITE_DESCRIPTION'],
+								'TEXT_WEBSITE_KEYWORDS' => $TEXT['WEBSITE_KEYWORDS'],
+								'TEXT_WEBSITE_HEADER' => $TEXT['WEBSITE_HEADER'],
+								'TEXT_WEBSITE_FOOTER' => $TEXT['WEBSITE_FOOTER'],
+								'TEXT_HEADER' => $TEXT['HEADER'],
+								'TEXT_FOOTER' => $TEXT['FOOTER'],
+								'TEXT_VISIBILITY' => $TEXT['VISIBILITY'],
+								'TEXT_RESULTS_HEADER' => $TEXT['RESULTS_HEADER'],
+								'TEXT_RESULTS_LOOP' => $TEXT['RESULTS_LOOP'],
+								'TEXT_RESULTS_FOOTER' => $TEXT['RESULTS_FOOTER'],
+								'TEXT_NO_RESULTS' => $TEXT['NO_RESULTS'],
+								'TEXT_TEXT' => $TEXT['TEXT'],
+								'TEXT_DEFAULT' => $TEXT['DEFAULT'],
+								'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+								'TEXT_TIMEZONE' => $TEXT['TIMEZONE'],
+								'TEXT_CHARSET' => $TEXT['CHARSET'],
+								'TEXT_DATE_FORMAT' => $TEXT['DATE_FORMAT'],
+								'TEXT_TIME_FORMAT' => $TEXT['TIME_FORMAT'],
+								'TEXT_TEMPLATE' => $TEXT['TEMPLATE'],
+								'TEXT_WYSIWYG_EDITOR' => $TEXT['WYSIWYG_EDITOR'],
+								'TEXT_PAGE_LEVEL_LIMIT' => $TEXT['PAGE_LEVEL_LIMIT'],
+								'TEXT_INTRO_PAGE' => $TEXT['INTRO_PAGE'],
+								'TEXT_FRONTEND' => $TEXT['FRONTEND'],
+								'TEXT_LOGIN' => $TEXT['LOGIN'],
+								'TEXT_SIGNUP' => $TEXT['SIGNUP'],
+								'TEXT_PHP_ERROR_LEVEL' => $TEXT['PHP_ERROR_LEVEL'],
+								'TEXT_PAGES_DIRECTORY' => $TEXT['PAGES_DIRECTORY'],
+								'TEXT_MEDIA_DIRECTORY' => $TEXT['MEDIA_DIRECTORY'],
+								'TEXT_PAGE_EXTENSION' => $TEXT['PAGE_EXTENSION'],
+								'TEXT_PAGE_SPACER' => $TEXT['PAGE_SPACER'],
+								'TEXT_RENAME_FILES_ON_UPLOAD' => $TEXT['RENAME_FILES_ON_UPLOAD'],
+								'TEXT_APP_NAME' => $TEXT['APP_NAME'],
+								'TEXT_SESSION_IDENTIFIER' => $TEXT['SESSION_IDENTIFIER'],
+								'TEXT_SERVER_OPERATING_SYSTEM' => $TEXT['SERVER_OPERATING_SYSTEM'],
+								'TEXT_LINUX_UNIX_BASED' => $TEXT['LINUX_UNIX_BASED'],
+								'TEXT_WINDOWS' => $TEXT['WINDOWS'],
+								'TEXT_ADMIN' => $TEXT['ADMIN'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_DATABASE' => $TEXT['DATABASE'],
+								'TEXT_HOST' => $TEXT['HOST'],
+								'TEXT_USERNAME' => $TEXT['USERNAME'],
+								'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+								'TEXT_NAME' => $TEXT['NAME'],
+								'TEXT_TABLE_PREFIX' => $TEXT['TABLE_PREFIX'],
+								'TEXT_SAVE' => $TEXT['SAVE'],
+								'TEXT_RESET' => $TEXT['RESET'],
+								'TEXT_CHANGES' => $TEXT['CHANGES'],
+								'TEXT_ENABLED' => $TEXT['ENABLED'],
+								'TEXT_DISABLED' => $TEXT['DISABLED'],
+								'TEXT_MANAGE_SECTIONS' => $HEADING['MANAGE_SECTIONS'],
+								'TEXT_MANAGE' => $TEXT['MANAGE'],
+								'TEXT_SEARCH' => $TEXT['SEARCH'],
+								'TEXT_PUBLIC' => $TEXT['PUBLIC'],
+								'TEXT_PRIVATE' => $TEXT['PRIVATE'],
+								'TEXT_REGISTERED' => $TEXT['REGISTERED'],
+								'TEXT_NONE' => $TEXT['NONE'],
+								'TEXT_FILES' => strtoupper(substr($TEXT['FILES'], 0, 1)).substr($TEXT['FILES'], 1),
+								'TEXT_DIRECTORIES' => $TEXT['DIRECTORIES'],
+								'TEXT_FILESYSTEM_PERMISSIONS' => $TEXT['FILESYSTEM_PERMISSIONS'],
+								'TEXT_USER' => $TEXT['USER'],
+								'TEXT_GROUP' => $TEXT['GROUP'],
+								'TEXT_OTHERS' => $TEXT['OTHERS'],
+								'TEXT_READ' => $TEXT['READ'],
+								'TEXT_WRITE' => $TEXT['WRITE'],
+								'TEXT_EXECUTE' => $TEXT['EXECUTE'],
+								'TEXT_SMART_LOGIN' => $TEXT['SMART_LOGIN'],
+								'TEXT_MULTIPLE_MENUS' => $TEXT['MULTIPLE_MENUS'],
+								'TEXT_HOMEPAGE_REDIRECTION' => $TEXT['HOMEPAGE_REDIRECTION'],
+								'TEXT_SECTION_BLOCKS' => $TEXT['SECTION_BLOCKS'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+								'TEXT_PAGE_TRASH' => $TEXT['PAGE_TRASH'],
+								'TEXT_PAGE_LANGUAGES' => $TEXT['PAGE_LANGUAGES'],
+								'TEXT_INLINE' => $TEXT['INLINE'],
+								'TEXT_SEPARATE' => $TEXT['SEPARATE'],
+								'TEXT_HOME_FOLDERS' => $TEXT['HOME_FOLDERS'],
+								'TEXT_WYSIWYG_STYLE' => $TEXT['WYSIWYG_STYLE'],
+								'TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS' => $TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'],
+								'TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE' => $TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'],
+								'TEXT_WBMAILER_DEFAULT_SENDER_MAIL' => $TEXT['WBMAILER_DEFAULT_SENDER_MAIL'],
+								'TEXT_WBMAILER_DEFAULT_SENDER_NAME' => $TEXT['WBMAILER_DEFAULT_SENDER_NAME'],
+								'TEXT_WBMAILER_NOTICE' => $TEXT['WBMAILER_NOTICE'],
+								'TEXT_WBMAILER_FUNCTION' => $TEXT['WBMAILER_FUNCTION'],
+								'TEXT_WBMAILER_SMTP_HOST' => $TEXT['WBMAILER_SMTP_HOST'],
+								'TEXT_WBMAILER_PHP' => $TEXT['WBMAILER_PHP'],
+								'TEXT_WBMAILER_SMTP' => $TEXT['WBMAILER_SMTP'],
+								'TEXT_WBMAILER_SMTP_AUTH' => $TEXT['WBMAILER_SMTP_AUTH'],
+								'TEXT_WBMAILER_SMTP_AUTH_NOTICE' => $TEXT['WBMAILER_SMTP_AUTH_NOTICE'],
+								'TEXT_WBMAILER_SMTP_USERNAME' => $TEXT['WBMAILER_SMTP_USERNAME'],
+								'TEXT_WBMAILER_SMTP_PASSWORD' => $TEXT['WBMAILER_SMTP_PASSWORD'],
+								'MODE_SWITCH_WARNING' => $MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'],
+								'WORLD_WRITEABLE_WARNING' => $MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'],
+								'TEXT_MODULE_ORDER' => $TEXT['MODULE_ORDER'],
+								'TEXT_MAX_EXCERPT' => $TEXT['MAX_EXCERPT'],
+								'TEXT_TIME_LIMIT' => $TEXT['TIME_LIMIT']
+								)
+						);
+
+// Parse template objects output
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/settings/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/settings/template.html
===================================================================
--- tags/2.7.0/wb/admin/settings/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/settings/template.html	(revision 838)
@@ -0,0 +1,686 @@
+</div><!-- BEGIN main_block -->
+
+<script language="javascript" type="text/javascript">
+function change_os(type) {
+	if(type == 'linux') {
+		document.getElementById('file_perms_box1').style.display = 'block';
+		document.getElementById('file_perms_box2').style.display = 'block';
+		document.getElementById('file_perms_box3').style.display = 'block';
+	} else if(type == 'windows') {
+		document.getElementById('file_perms_box1').style.display = 'none';
+		document.getElementById('file_perms_box2').style.display = 'none';
+		document.getElementById('file_perms_box3').style.display = 'none';
+	}
+}
+
+function change_wbmailer(type) {
+	if(type == 'smtp') {
+		document.getElementById('row_wbmailer_smtp_settings').style.display = '';
+		document.getElementById('row_wbmailer_smtp_host').style.display = '';
+		document.getElementById('row_wbmailer_smtp_auth_mode').style.display = '';
+		document.getElementById('row_wbmailer_smtp_username').style.display = '';
+		document.getElementById('row_wbmailer_smtp_password').style.display = '';
+		if( document.settings.wbmailer_smtp_auth.checked == true ) {
+			document.getElementById('row_wbmailer_smtp_username').style.display = '';
+			document.getElementById('row_wbmailer_smtp_password').style.display = '';
+		} else {
+			document.getElementById('row_wbmailer_smtp_username').style.display = 'none';
+			document.getElementById('row_wbmailer_smtp_password').style.display = 'none';
+		}
+	} else if(type == 'phpmail') {
+		document.getElementById('row_wbmailer_smtp_settings').style.display = 'none';
+		document.getElementById('row_wbmailer_smtp_host').style.display = 'none';
+		document.getElementById('row_wbmailer_smtp_auth_mode').style.display = 'none';
+		document.getElementById('row_wbmailer_smtp_username').style.display = 'none';
+		document.getElementById('row_wbmailer_smtp_password').style.display = 'none';
+	}
+}
+
+function toggle_wbmailer_auth() {
+	if( document.settings.wbmailer_smtp_auth.checked == true ) {
+		document.getElementById('row_wbmailer_smtp_username').style.display = '';
+		document.getElementById('row_wbmailer_smtp_password').style.display = '';
+	} else {
+		document.getElementById('row_wbmailer_smtp_username').style.display = 'none';
+		document.getElementById('row_wbmailer_smtp_password').style.display = 'none';
+	}
+}
+</script>
+
+<style>
+.settings_table td {
+	vertical-align: top;
+	text-align: left;
+}
+.setting_name {
+	width: 180px;
+}
+.setting_value input, .setting_value select, .setting_value textarea {
+	width: 100%;
+}
+.setting_value textarea {
+	height: 50px;
+}
+#file_mode input {
+	width: 12px;
+	height: 12px;
+}
+#dir_mode input {
+	width: 12px;
+	height: 12px;
+}
+.advanced {
+	display: {DISPLAY_ADVANCED};
+}
+.save, .reset {
+	width: 100px;
+}
+#hide2 {
+	display: none;
+}
+</style>
+
+<form name="settings" action="save.php" method="post">
+<input type="hidden" name="advanced" value="{ADVANCED}" />
+
+<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%" class="settings_table">
+<tr>
+	<td colspan="3">
+		<h2>{HEADING_GENERAL_SETTINGS}</h2>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_TITLE}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="website_title" value="{WEBSITE_TITLE}" />
+	</td>
+	<script language="javascript" type="text/javascript">
+	document.settings.website_title.focus();
+	</script>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_DESCRIPTION}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_description">{WEBSITE_DESCRIPTION}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_KEYWORDS}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_keywords">{WEBSITE_KEYWORDS}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_header">{WEBSITE_HEADER}</textarea>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WEBSITE_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="website_footer">{WEBSITE_FOOTER}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_PAGE_LEVEL_LIMIT}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="page_level_limit">
+		<!-- BEGIN page_level_limit_list_block -->
+			<option value="{NUMBER}"{SELECTED}>{NUMBER}</option>
+		<!-- END page_level_limit_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_PAGE_TRASH}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="page_trash" id="page_trash_disabled" style="width: 14px; height: 14px;" value="disabled"{PAGE_TRASH_DISABLED} />
+		<label for="page_trash_disabled">{TEXT_DISABLED}</label>
+		<input type="radio" name="page_trash" id="page_trash_inline" style="width: 14px; height: 14px;" value="inline"{PAGE_TRASH_INLINE} />
+		<label for="page_trash_inline">{TEXT_INLINE}</label>
+		<div style="margin: 0; padding: 0;{DISPLAY_PAGE_TRASH_SEPARATE}">
+			<input type="radio" name="page_trash" id="page_trash_separate" style="width: 14px; height: 14px;" value="separate"{PAGE_TRASH_SEPARATE} />
+			<label for="page_trash_separate">{TEXT_SEPARATE}</label>
+		</div>
+	</td>
+</tr>
+<tr class="advanced">
+        <td class="setting_name">{TEXT_PAGE_LANGUAGES}:</td>
+        <td class="setting_value" colspan="2">
+                <input type="radio" name="page_languages" id="page_languages_true" style="width: 14px; height: 14px;" value="true"{PAGE_LANGUAGES_ENABLED} />
+                <label for="page_languages_true">{TEXT_ENABLED}</label>
+                <input type="radio" name="page_languages" id="page_languages_false" style="width: 14px; height: 14px;" value="false"{PAGE_LANGUAGES_DISABLED} />
+                <label for="page_languages_false">{TEXT_DISABLED}</label>
+		</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_MULTIPLE_MENUS}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="multiple_menus" id="multiple_menus_true" style="width: 14px; height: 14px;" value="true"{MULTIPLE_MENUS_ENABLED} />
+		<label for="multiple_menus_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="multiple_menus" id="multiple_menus_false" style="width: 14px; height: 14px;" value="false"{MULTIPLE_MENUS_DISABLED} />
+		<label for="multiple_menus_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_HOME_FOLDERS}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="home_folders" id="home_folders_true" style="width: 14px; height: 14px;" value="true"{HOME_FOLDERS_ENABLED} />
+		<label for="home_folders_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="home_folders" id="home_folders_false" style="width: 14px; height: 14px;" value="false"{HOME_FOLDERS_DISABLED} />
+		<label for="home_folders_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_MANAGE_SECTIONS}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="manage_sections" id="manage_sections_true" style="width: 14px; height: 14px;" value="true"{MANAGE_SECTIONS_ENABLED} />
+		<label for="manage_sections_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="manage_sections" id="manage_sections_false" style="width: 14px; height: 14px;" value="false"{MANAGE_SECTIONS_DISABLED} />
+		<label for="manage_sections_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_SECTION_BLOCKS}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="section_blocks" id="section_blocks_true" style="width: 14px; height: 14px;" value="true"{SECTION_BLOCKS_ENABLED} />
+		<label for="section_blocks_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="section_blocks" id="section_blocks_false" style="width: 14px; height: 14px;" value="false"{SECTION_BLOCKS_DISABLED} />
+		<label for="section_blocks_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_INTRO_PAGE}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="intro_page" id="intro_page_true" style="width: 14px; height: 14px;" value="true"{INTRO_PAGE_ENABLED} />
+		<label for="intro_page_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="intro_page" id="intro_page_false" style="width: 14px; height: 14px;" value="false"{INTRO_PAGE_DISABLED} />
+		<label for="intro_page_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_HOMEPAGE_REDIRECTION}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="homepage_redirection" id="homepage_redirection_true" style="width: 14px; height: 14px;" value="true"{HOMEPAGE_REDIRECTION_ENABLED} />
+		<label for="homepage_redirection_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="homepage_redirection" id="homepage_redirection_false" style="width: 14px; height: 14px;" value="false"{HOMEPAGE_REDIRECTION_DISABLED} />
+		<label for="homepage_redirection_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_SMART_LOGIN}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="smart_login" id="smart_login_true" style="width: 14px; height: 14px;" value="true"{SMART_LOGIN_ENABLED} />
+		<label for="smart_login_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="smart_login" id="smart_login_false" style="width: 14px; height: 14px;" value="false"{SMART_LOGIN_DISABLED} />
+		<label for="smart_login_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_LOGIN}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="frontend_login" id="frontend_login_true" style="width: 14px; height: 14px;" value="true"{PRIVATE_ENABLED} />
+		<label for="frontend_login_true">{TEXT_ENABLED}</label>
+		<input type="radio" name="frontend_login" id="frontend_login_false" style="width: 14px; height: 14px;" value="false"{PRIVATE_DISABLED} />
+		<label for="frontend_login_false">{TEXT_DISABLED}</label>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_SIGNUP}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="frontend_signup">
+			<option value="false">{TEXT_DISABLED}</option>
+			<!-- BEGIN group_list_block -->
+				<option value="{ID}" {SELECTED}>{NAME}</option>
+			<!-- END group_list_block -->
+		</select>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_PHP_ERROR_LEVEL}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="er_level">
+			<option value="">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN error_reporting_list_block -->
+				<option value="{VALUE}"{SELECTED}>{NAME}</option>
+			<!-- END error_reporting_list_block -->
+		</select>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_WYSIWYG_STYLE}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="wysiwyg_style" value="{WYSIWYG_STYLE}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_WYSIWYG_EDITOR}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="wysiwyg_editor">
+		<!-- BEGIN editor_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END editor_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" class="save" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" class="reset" />
+	</td>
+	<td style="text-align: right;">
+		<button onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+<tr>
+	<td colspan="3" style="padding-top: 10px;">
+		<h2>{HEADING_DEFAULT_SETTINGS}</h2>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_LANGUAGE}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_language">
+			<!-- BEGIN language_list_block -->
+			<option value="{CODE}"{SELECTED}>{NAME} ({CODE})</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_CHARSET}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_charset">
+			<option value="">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN charset_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END charset_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_TIMEZONE}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_timezone">
+			<option value="0">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN timezone_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END timezone_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_DATE_FORMAT}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_date_format">
+			<option value="M d Y">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN date_format_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END date_format_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_TIME_FORMAT}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_time_format">
+			<option value="g:i A">{TEXT_PLEASE_SELECT}...</option>
+			<!-- BEGIN time_format_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END time_format_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_TEMPLATE}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="default_template">
+		<!-- BEGIN template_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END template_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" class="save" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" class="reset" />
+	</td>
+	<td style="text-align: right;">
+		<button onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+<tr>
+	<td colspan="3" style="padding-top: 10px;">
+		<h2>{HEADING_SEARCH_SETTINGS}</h2>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_VISIBILITY}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="search">
+			<option value="public">{TEXT_PUBLIC}</option>
+			<option value="private" {PRIVATE_SEARCH}>{TEXT_PRIVATE}</option>
+			<option value="registered" {REGISTERED_SEARCH}>{TEXT_REGISTERED}</option>
+			<option value="none" {NONE_SEARCH}>{TEXT_NONE}</option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_TEMPLATE}:</td>
+	<td class="setting_value" colspan="2">
+		<select name="search_template">
+		<!-- BEGIN search_template_list_block -->
+			<option value="{FILE}"{SELECTED}>{NAME}</option>
+		<!-- END search_template_list_block -->
+		</select>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_header" style="height: 100px;">{SEARCH_HEADER}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_RESULTS_HEADER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_header">{SEARCH_RESULTS_HEADER}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_RESULTS_LOOP}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_loop">{SEARCH_RESULTS_LOOP}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_RESULTS_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_results_footer">{SEARCH_RESULTS_FOOTER}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_NO_RESULTS}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="search_no_results" value="{SEARCH_NO_RESULTS}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_FOOTER}:</td>
+	<td class="setting_value" colspan="2">
+		<textarea name="search_footer">{SEARCH_FOOTER}</textarea>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_MODULE_ORDER}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="search_module_order" value="{SEARCH_MODULE_ORDER}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_MAX_EXCERPT}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="search_max_excerpt" value="{SEARCH_MAX_EXCERPT}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_TIME_LIMIT}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="search_time_limit" value="{SEARCH_TIME_LIMIT}" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" class="save" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" class="reset" />
+	</td>
+	<td style="text-align: right;">
+		<button onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+<tr>
+	<td colspan="3" style="padding-top: 10px;">
+		<h2>{HEADING_SERVER_SETTINGS}</h2>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_SERVER_OPERATING_SYSTEM}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="operating_system" id="operating_system_linux" onclick="javascript: change_os('linux');" style="width: 14px; height: 14px;" value="linux"{LINUX_SELECTED} />
+		<label for="operating_system_linux" onclick="javascript: change_os('linux');">{TEXT_LINUX_UNIX_BASED}</label>
+		<input type="radio" name="operating_system" id="operating_system_windows" onclick="javascript: change_os('windows');"" style="width: 14px; height: 14px;" value="windows"{WINDOWS_SELECTED} />
+		<label for="operating_system_windows" onclick="javascript: change_os('windows');">{TEXT_WINDOWS}</label>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name"><div id="{BASIC_FILE_PERMS_ID}1" style="margin: 0; padding: 0;">&nbsp;</div></td>
+	<td class="setting_value" colspan="3">
+		<div id="{BASIC_FILE_PERMS_ID}2" style="margin: 0; padding: 0;">
+			<input type="checkbox" name="world_writeable" id="world_writeable" style="width: 14px; height: 14px;" value="true"{WORLD_WRITEABLE_SELECTED} />
+			<label for="world_writeable">
+				{TEXT_WORLD_WRITEABLE_FILE_PERMISSIONS} (777)
+			</label>
+			<br />
+			<font class="note">({WORLD_WRITEABLE_WARNING})</font>
+		</div>
+		<div id="{BASIC_FILE_PERMS_ID}3" style="margin: 0; padding: 0;"></div>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name"><div id="{ADVANCED_FILE_PERMS_ID}1" style="margin: 0; padding: 0;">{TEXT_FILESYSTEM_PERMISSIONS}:</div></td>
+	<td class="setting_value" id="file_mode" align="left">
+		<table cellpadding="2" cellspacing="0" border="0" width="100%" style="border-right: 1px solid #DDDDDD;" id="{ADVANCED_FILE_PERMS_ID}2">
+		<tr>
+			<td colspan="3" style="text-align: center; font-weight: bold;">
+				{TEXT_FILES}:
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_USER}:</td>
+			<td>{TEXT_GROUP}:</td>
+			<td>{TEXT_OTHERS}:</td>
+		</tr>
+		<tr>
+			<td>
+				<input type="checkbox" name="file_u_r" id="file_u_r" value="true"{FILE_U_R_CHECKED} />
+				<label for="file_u_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="file_u_w" id="file_u_w" value="true"{FILE_U_W_CHECKED} />
+				<label for="file_u_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="file_u_e" id="file_u_e" value="true"{FILE_U_E_CHECKED} />
+				<label for="file_u_e">{TEXT_EXECUTE}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="file_g_r" id="file_g_r" value="true"{FILE_G_R_CHECKED} />
+				<label for="file_g_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="file_g_w" id="file_g_w" value="true"{FILE_G_W_CHECKED} />
+				<label for="file_g_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="file_g_e" id="file_g_e" value="true"{FILE_G_E_CHECKED} />
+				<label for="file_g_e">{TEXT_EXECUTE}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="file_o_r" id="file_o_r" value="true"{FILE_O_R_CHECKED} />
+				<label for="file_o_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="file_o_w" id="file_o_w" value="true"{FILE_O_W_CHECKED} />
+				<label for="file_o_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="file_o_e" id="file_o_e" value="true"{FILE_O_E_CHECKED} />
+				<label for="file_o_e">{TEXT_EXECUTE}</label>
+			</td>
+		</tr>
+		</table>
+	</td>
+	<td class="setting_value" id="dir_mode" style="text-align: right;">
+		<table cellpadding="2" cellspacing="0" border="0" width="100%" id="{ADVANCED_FILE_PERMS_ID}3">
+		<tr>
+			<td colspan="3" style="text-align: center; font-weight: bold;">
+				{TEXT_DIRECTORIES}:
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_USER}:</td>
+			<td>{TEXT_GROUP}:</td>
+			<td>{TEXT_OTHERS}:</td>
+		</tr>
+		<tr>
+			<td>
+				<input type="checkbox" name="dir_u_r" id="dir_u_r" value="true"{DIR_U_R_CHECKED} />
+				<label for="dir_u_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="dir_u_w" id="dir_u_w" value="true"{DIR_U_W_CHECKED} />
+				<label for="dir_u_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="dir_u_e" id="dir_u_e" value="true"{DIR_U_E_CHECKED} />
+				<label for="dir_u_e">{TEXT_EXECUTE}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="dir_g_r" id="dir_g_r" value="true"{DIR_G_R_CHECKED} />
+				<label for="dir_g_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="dir_g_w" id="dir_g_w" value="true"{DIR_G_W_CHECKED} />
+				<label for="dir_g_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="dir_g_e" id="dir_g_e" value="true"{DIR_G_E_CHECKED} />
+				<label for="dir_g_e">{TEXT_EXECUTE}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="dir_o_r" id="dir_o_r" value="true"{DIR_O_R_CHECKED} />
+				<label for="dir_o_r">{TEXT_READ}</label>
+				<br />
+				<input type="checkbox" name="dir_o_w" id="dir_o_w" value="true"{DIR_O_W_CHECKED} />
+				<label for="dir_o_w">{TEXT_WRITE}</label>
+				<br />
+				<input type="checkbox" name="dir_o_e" id="dir_o_e" value="true"{DIR_O_E_CHECKED} />
+				<label for="dir_o_e">{TEXT_EXECUTE}</label>
+			</td>
+		</tr>
+		</table>
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_PAGES_DIRECTORY}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="pages_directory" value="{PAGES_DIRECTORY}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_MEDIA_DIRECTORY}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="media_directory" value="{MEDIA_DIRECTORY}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_PAGE_EXTENSION}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="page_extension" value="{PAGE_EXTENSION}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_PAGE_SPACER}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="page_spacer" value="{PAGE_SPACER}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_RENAME_FILES_ON_UPLOAD}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="rename_files_on_upload" value="{RENAME_FILES_ON_UPLOAD}" />
+	</td>
+</tr>
+<tr class="advanced">
+	<td class="setting_name">{TEXT_SESSION_IDENTIFIER}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" name="app_name" value="{APP_NAME}" />
+	</td>
+</tr>
+<!-- BASIC MAILER SETTINGS -->
+<tr>
+	<td colspan="3" style="padding-top: 10px;">
+		<h2>{HEADING_WBMAILER_SETTINGS}</h2>
+		<p style="line-height: 1.4em; margin-top: 0;">{TEXT_WBMAILER_DEFAULT_SETTINGS_NOTICE}</p>
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WBMAILER_DEFAULT_SENDER_MAIL}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" style="width: 250px" name="server_email" value="{SERVER_EMAIL}" />
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WBMAILER_DEFAULT_SENDER_NAME}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" style="width: 250px" name="wbmailer_default_sendername" value="{WBMAILER_DEFAULT_SENDERNAME}" />
+	</td>
+</tr>
+<tr>
+	<td class="setting_name">{TEXT_WBMAILER_FUNCTION}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="radio" name="wbmailer_routine" id="wbmailer_routine_phpmail" onclick="javascript: change_wbmailer('phpmail');" style="width: 14px; height: 14px;" value="phpmail"{PHPMAIL_SELECTED} />
+		<label for="wbmailer_routine_phpmail" onclick="javascript: change_wbmailer('phpmail');">{TEXT_WBMAILER_PHP}</label>
+		<input type="radio" name="wbmailer_routine" id="wbmailer_routine_smtp" onclick="javascript: change_wbmailer('smtp');"" style="width: 14px; height: 14px;" value="smtp"{SMTPMAIL_SELECTED} />
+		<label for="wbmailer_routine_smtp" onclick="javascript: change_wbmailer('smtp');">{TEXT_WBMAILER_SMTP}</label>
+	</td>
+</tr>
+<!-- MORE ADVANCED SMTP MAILER SETTINGS -->
+<tr id="row_wbmailer_smtp_settings" style="display:{SMTP_VISIBILITY};">
+	<td colspan="3" style="padding-top: 10px;">
+			<p style="line-height: 1.4em; margin-top: 0;">{TEXT_WBMAILER_NOTICE}</p>
+	</td>
+</tr>
+<tr id="row_wbmailer_smtp_host" style="display:{SMTP_VISIBILITY};">
+	<td class="setting_name">{TEXT_WBMAILER_SMTP_HOST}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" style="width: 250px" name="wbmailer_smtp_host" value="{WBMAILER_SMTP_HOST}" />
+	</td>
+</tr>
+<tr id="row_wbmailer_smtp_auth_mode" style="display:{SMTP_VISIBILITY};">
+	<td class="setting_name">{TEXT_WBMAILER_SMTP_AUTH}:</td>
+	<td class="setting_value" colspan="3">
+		<input type="checkbox" name="wbmailer_smtp_auth" id="wbmailer_smtp_auth" onclick="javascript: toggle_wbmailer_auth();" style="width: 14px; height: 14px;" value="true"{SMTP_AUTH_SELECTED} />
+		<label for="wbmailer_smtp_auth" onclick="javascript: toggle_wbmailer_auth(this.value);">({TEXT_WBMAILER_SMTP_AUTH_NOTICE})</label>
+	</td>
+</tr>
+<tr id="row_wbmailer_smtp_username" style="display:{SMTP_VISIBILITY_AUTH};">
+	<td class="setting_name">{TEXT_WBMAILER_SMTP_USERNAME}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="text" style="width: 250px" name="wbmailer_smtp_username" value="{WBMAILER_SMTP_USERNAME}" />
+	</td>
+</tr>
+<tr id="row_wbmailer_smtp_password" style="display:{SMTP_VISIBILITY_AUTH};">
+	<td class="setting_name">{TEXT_WBMAILER_SMTP_PASSWORD}:</td>
+	<td class="setting_value" colspan="2">
+		<input type="password" style="width: 250px" name="wbmailer_smtp_password" value="{WBMAILER_SMTP_PASSWORD}" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" class="save" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" class="reset" />
+	</td>
+	<td style="text-align: right;">
+		<button onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+	</td>
+</tr>
+</table>
+
+</form>
+
+<hr />
+
+<button onclick="window.location = '{ADVANCED_LINK}'; return false;" class="{DISPLAY_ADVANCED_BUTTON}">{ADVANCED_BUTTON}</button>
+
+<font class="{DISPLAY_ADVANCED_BUTTON}">
+&nbsp; {MODE_SWITCH_WARNING}
+</font>
+
+<!-- END main_block -->

Property changes on: tags/2.7.0/wb/admin/settings/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/settings/save.php
===================================================================
--- tags/2.7.0/wb/admin/settings/save.php	(nonexistent)
+++ tags/2.7.0/wb/admin/settings/save.php	(revision 838)
@@ -0,0 +1,189 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly in the browser (would set all entries in DB settings table to '')
+if(!isset($_POST['default_language']) || $_POST['default_language'] == '') die(header('Location: index.php'));  
+
+// Find out if the user was view advanced options or not
+if($_POST['advanced'] == 'yes' ? $advanced = '?advanced=yes' : $advanced = '');
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+if($advanced == '') {
+	$admin = new admin('Settings', 'settings_basic');
+	$_POST['database_password'] = DB_PASSWORD;
+} else {
+	$admin = new admin('Settings', 'settings_advanced');
+}
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Ensure that the specified default email is formally valid
+if(isset($_POST['server_email'])) {
+	$_POST['server_email'] = strip_tags($_POST['server_email']);
+	if(!eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['server_email'])) {
+		$admin->print_error($MESSAGE['USERS']['INVALID_EMAIL'].
+			'<br /><strong>Email: '.htmlentities($_POST['server_email']).'</strong>', $js_back);
+	}
+}
+
+// Work-out file mode
+if($advanced == '') {
+	// Check if should be set to 777 or left alone
+	if(isset($_POST['world_writeable']) AND $_POST['world_writeable'] == 'true') {
+		$file_mode = '0777';
+		$dir_mode = '0777';
+	} else {
+		$file_mode = STRING_FILE_MODE;
+		$dir_mode = STRING_DIR_MODE;
+	}
+} else {
+	// Work-out the octal value for file mode
+	$u = 0;
+	if(isset($_POST['file_u_r']) AND $_POST['file_u_r'] == 'true') {
+		$u = $u+4;
+	}
+	if(isset($_POST['file_u_w']) AND $_POST['file_u_w'] == 'true') {
+		$u = $u+2;
+	}
+	if(isset($_POST['file_u_e']) AND $_POST['file_u_e'] == 'true') {
+		$u = $u+1;
+	}
+	$g = 0;
+	if(isset($_POST['file_g_r']) AND $_POST['file_g_r'] == 'true') {
+		$g = $g+4;
+	}
+	if(isset($_POST['file_g_w']) AND $_POST['file_g_w'] == 'true') {
+		$g = $g+2;
+	}
+	if(isset($_POST['file_g_e']) AND $_POST['file_g_e'] == 'true') {
+		$g = $g+1;
+	}
+	$o = 0;
+	if(isset($_POST['file_o_r']) AND $_POST['file_o_r'] == 'true') {
+		$o = $o+4;
+	}
+	if(isset($_POST['file_o_w']) AND $_POST['file_o_w'] == 'true') {
+		$o = $o+2;
+	}
+	if(isset($_POST['file_o_e']) AND $_POST['file_o_e'] == 'true') {
+		$o = $o+1;
+	}
+	$file_mode = "0".$u.$g.$o;
+	// Work-out the octal value for dir mode
+	$u = 0;
+	if(isset($_POST['dir_u_r']) AND $_POST['dir_u_r'] == 'true') {
+		$u = $u+4;
+	}
+	if(isset($_POST['dir_u_w']) AND $_POST['dir_u_w'] == 'true') {
+		$u = $u+2;
+	}
+	if(isset($_POST['dir_u_e']) AND $_POST['dir_u_e'] == 'true') {
+		$u = $u+1;
+	}
+	$g = 0;
+	if(isset($_POST['dir_g_r']) AND $_POST['dir_g_r'] == 'true') {
+		$g = $g+4;
+	}
+	if(isset($_POST['dir_g_w']) AND $_POST['dir_g_w'] == 'true') {
+		$g = $g+2;
+	}
+	if(isset($_POST['dir_g_e']) AND $_POST['dir_g_e'] == 'true') {
+		$g = $g+1;
+	}
+	$o = 0;
+	if(isset($_POST['dir_o_r']) AND $_POST['dir_o_r'] == 'true') {
+		$o = $o+4;
+	}
+	if(isset($_POST['dir_o_w']) AND $_POST['dir_o_w'] == 'true') {
+		$o = $o+2;
+	}
+	if(isset($_POST['dir_o_e']) AND $_POST['dir_o_e'] == 'true') {
+		$o = $o+1;
+	}
+	$dir_mode = "0".$u.$g.$o;
+}
+
+// Create new database object
+$database = new database();
+
+// Query current settings in the db, then loop through them and update the db with the new value
+$query = "SELECT name FROM ".TABLE_PREFIX."settings";
+$results = $database->query($query);
+while($setting = $results->fetchRow()) {
+	$setting_name = $setting['name'];
+	$value = $admin->get_post($setting_name);
+	if ($setting_name!='wb_version') {
+		$allow_tags_in_fields = array('website_header', 'website_footer');
+		if(!in_array($setting_name, $allow_tags_in_fields)) {
+			$value = strip_tags($value);
+		}
+		switch ($setting_name) {
+			case 'default_timezone':
+				$value=$value*60*60;
+				break;
+			case 'string_dir_mode':
+				$value=$dir_mode;
+				break;
+			case 'string_file_mode':
+				$value=$file_mode;
+				break;
+			case 'pages_directory':
+				if(trim($value)=='/') $value='';
+				break;
+		}
+		$value = $admin->add_slashes($value);
+		$database->query("UPDATE ".TABLE_PREFIX."settings SET value = '$value' WHERE name = '$setting_name'");
+	}
+}
+
+// Query current search settings in the db, then loop through them and update the db with the new value
+$query = "SELECT name, value FROM ".TABLE_PREFIX."search WHERE extra = ''";
+$results = $database->query($query);
+while($search_setting = $results->fetchRow()) {
+	$old_value = $search_setting['value'];
+	$setting_name = $search_setting['name'];
+	$post_name = 'search_'.$search_setting['name'];
+	if($admin->get_post($post_name) == '')
+		$value = $old_value;
+	else
+		$value = $admin->get_post($post_name);
+	$value = $admin->add_slashes($value);
+	$database->query("UPDATE ".TABLE_PREFIX."search SET value = '$value' WHERE name = '$setting_name'");
+}
+
+// Check if there was an error updating the db
+if($database->is_error()) {
+	$admin->print_error($database->get_error, ADMIN_URL.'/settings/index.php'.$advanced);
+	$admin->print_footer();
+	exit();
+}
+
+$admin->print_success($MESSAGE['SETTINGS']['SAVED'], ADMIN_URL.'/settings/index.php'.$advanced);
+$admin->print_footer();
+
+?>

Property changes on: tags/2.7.0/wb/admin/settings/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/login/forgot/template.html
===================================================================
--- tags/2.7.0/wb/admin/login/forgot/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/login/forgot/template.html	(revision 838)
@@ -0,0 +1,75 @@
+<!-- BEGIN main_block -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Retrieve Login Details</title>
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+<link href="{INTERFACE_URL}/stylesheet.css" rel="stylesheet" type="text/css">
+</head>
+<body onload="document.forgot_pass.email.focus();">
+
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center">
+<tr>
+	<td width="60" valign="top">
+		<img src="{INTERFACE_URL}/logo.png" alt="Logo" />
+	</td>
+	<td width="5">&nbsp;</td>
+	<td style="font-size: 20px;">
+		<font style="color: #FFF;">{SECTION_FORGOT}</font>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center" style="margin-top: 30px;">
+<tr>
+	<td class="content">
+	
+	<form name="forgot_pass" action="{ACTION_URL}" method="post">
+	<input type="hidden" name="url" value="{URL}" />
+		<table cellpadding="5" cellspacing="0" border="0" align="center" width="500">
+		<tr>
+			<td height="40" align="center" style="color: #{MESSAGE_COLOR};" colspan="2">{MESSAGE}</td>
+		</tr>
+		<tr style="display: {DISPLAY_FORM}">
+			<td height="10" colspan="2"></td>
+		</tr>
+		<tr style="display: {DISPLAY_FORM}">
+			<td width="165" height="30" align="right">{TEXT_EMAIL}:</td>
+			<td><input type="text" maxlength="255" name="email" value="{EMAIL}" style="width: 180px;" /></td>
+		</tr>
+		<tr style="display: {DISPLAY_FORM}" height="30">
+			<td>&nbsp;</td>
+			<td><input type="submit" name="submit" value="{TEXT_SEND_DETAILS}" style="width: 180px; font-size: 10px; text-transform: uppercase; color: #003366; border: 1px solid #336699; background-color: #DDDDDD; padding: 3px;"></td>
+		</tr>
+		<tr style="display: {DISPLAY_FORM}">
+			<td height="10" colspan="2"></td>
+		</tr>
+		</table>
+	</form>
+	
+	<center>
+		<a href="{LOGIN_URL}">{TEXT_NEED_TO_LOGIN}</a>
+		<br />
+		<br />
+		<a href="{WB_URL}">{TEXT_HOME}</a>
+	</center>
+
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding: 10px 0px 10px 0px;">
+<tr>
+	<td align="center" style="font-size: 10px;">
+		<!-- Please note: the below reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+		<a href="http://www.websitebaker.com/" style="color: #000000;" target="_blank">Website Baker</a>
+		is	released under the
+		<a href="http://www.gnu.org/copyleft/gpl.html" style="color: #000000;" target="_blank">GNU General Public License</a>
+		<!-- Please note: the above reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+	</td>
+</tr>
+</table>
+
+</body>
+</html>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/login/forgot/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/login/forgot/index.php
===================================================================
--- tags/2.7.0/wb/admin/login/forgot/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/login/forgot/index.php	(revision 838)
@@ -0,0 +1,172 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the configuration file
+require('../../../config.php');
+// Include the language file
+require(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php');
+// Include the database class file and initiate an object
+require(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Start', 'start', false, false);
+$database = new database();
+
+// Get the website title
+$results = $database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name = 'title'");
+$results = $results->fetchRow();
+$website_title = $results['value'];
+
+// Check if the user has already submitted the form, otherwise show it
+if(isset($_POST['email']) AND $_POST['email'] != "") {
+	
+	$email = $_POST['email'];
+	
+	// Check if the email exists in the database
+	$query = "SELECT user_id,username,display_name,email,last_reset,password FROM ".TABLE_PREFIX."users WHERE email = '".$admin->add_slashes($_POST['email'])."'";
+	$results = $database->query($query);
+	if($results->numRows() > 0) {
+
+		// Get the id, username, email, and last_reset from the above db query
+		$results_array = $results->fetchRow();
+		
+		// Check if the password has been reset in the last 2 hours
+		$last_reset = $results_array['last_reset'];
+		$time_diff = mktime()-$last_reset; // Time since last reset in seconds
+		$time_diff = $time_diff/60/60; // Time since last reset in hours
+		if($time_diff < 2) {
+			
+			// Tell the user that their password cannot be reset more than once per hour
+			$message = $MESSAGE['FORGOT_PASS']['ALREADY_RESET'];
+			
+		} else {
+			
+			$old_pass = $results_array['password'];
+			
+			// Generate a random password then update the database with it
+			$new_pass = '';
+			$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+			srand((double)microtime()*1000000);
+			$i = 0;
+			while ($i <= 7) {
+				$num = rand() % 33;
+				$tmp = substr($salt, $num, 1);
+				$new_pass = $new_pass . $tmp;
+				$i++;
+			}
+			
+			$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".md5($new_pass)."', last_reset = '".mktime()."' WHERE user_id = '".$results_array['user_id']."'");
+			
+			if($database->is_error()) {
+				// Error updating database
+				$message = $database->get_error();
+			} else {
+				// Setup email to send
+				$mail_subject = 'Your login details...';
+				$mail_to = $email;
+				$mail_message = ''.
+	'Hello '.$results_array["display_name"].', 
+	
+	Your '.$website_title.' administration login details are:
+	Username: '.$results_array["username"].'
+	Password: '.$new_pass.'
+	
+	Your password has been reset to the one above.
+	This means that your old password will no longer work.
+	
+	If you have received this message in error, please delete it immediately.';
+				// Try sending the email
+				if($admin->mail(SERVER_EMAIL,$mail_to,$mail_subject,$mail_message)) { 
+					$message = $MESSAGE['FORGOT_PASS']['PASSWORD_RESET'];
+					$display_form = false;
+				} else {
+					$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".$old_pass."' WHERE user_id = '".$results_array['user_id']."'");
+					$message = $MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'];
+				}
+			}
+		
+		}
+		
+	} else {
+		// Email doesn't exist, so tell the user
+		$message = $MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'];
+	}
+	
+} else {
+	$email = '';
+}
+
+if(!isset($message)) {
+	$message = $MESSAGE['FORGOT_PASS']['NO_DATA'];
+	$message_color = '000000';
+} else {
+	$message_color = 'FF0000';
+}
+	
+// Setup the template
+$template = new Template(ADMIN_PATH.'/login/forgot');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+if(defined('FRONTEND')) {
+	$template->set_var('ACTION_URL', 'forgot.php');
+} else {
+	$template->set_var('ACTION_URL', 'index.php');
+}
+$template->set_var('EMAIL', $email);
+
+if(isset($display_form)) {
+	$template->set_var('DISPLAY_FORM', 'none');
+}
+
+$template->set_var(array(
+								'SECTION_FORGOT' => $MENU['FORGOT'],
+								'MESSAGE_COLOR' => $message_color,
+								'MESSAGE' => $message,
+								'WB_URL' => WB_URL,
+								'ADMIN_URL' => ADMIN_URL,
+								'TEXT_EMAIL' => $TEXT['EMAIL'],
+								'TEXT_SEND_DETAILS' => $TEXT['SEND_DETAILS'],
+								'TEXT_HOME' => $TEXT['HOME'],
+								'TEXT_NEED_TO_LOGIN' => $TEXT['NEED_TO_LOGIN']
+								)
+						);
+
+if(defined('FRONTEND')) {
+	$template->set_var('LOGIN_URL', WB_URL.'/account/login.php');
+} else {
+	$template->set_var('LOGIN_URL', ADMIN_URL);
+}
+$template->set_var('INTERFACE_URL', ADMIN_URL.'/interface');	
+
+if(defined('DEFAULT_CHARSET')) {
+	$charset=DEFAULT_CHARSET;
+} else {
+	$charset='utf-8';
+}
+
+$template->set_var('CHARSET', $charset);	
+
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/login/forgot/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/login/warning.html
===================================================================
--- tags/2.7.0/wb/admin/login/warning.html	(nonexistent)
+++ tags/2.7.0/wb/admin/login/warning.html	(revision 838)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<title>Maximum Invalid Login Attemps Exceeded</title>
+<style type="text/css"><!--
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	margin: 0px;
+  background: #A8BCCB url(../interface/background.png) ;
+  background-repeat:repeat-x;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: underline;
+	color: #336699;
+}
+h1 {
+	text-align: center;
+	font-size: 18px;
+	color: #000;
+	text-transform: uppercase;
+}
+hr {
+	height: 1px;
+	color: #336699;
+	background-color: #336699;
+	border: 0;
+}
+--></style></head>
+<body>
+
+<center>
+	<br />
+	<h1>Excessive Invalid Logins</h1>
+	You have attempted to login too many times
+</center>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/login/warning.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/login/template.html
===================================================================
--- tags/2.7.0/wb/admin/login/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/login/template.html	(revision 838)
@@ -0,0 +1,91 @@
+<!-- BEGIN mainBlock -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>{TEXT_LOGIN}</title>
+<meta http-equiv="content-type" content="text/html; charset={CHARSET}" />
+<link href="{INTERFACE_DIR_URL}/stylesheet.css" rel="stylesheet" type="text/css">
+</head>
+<body onload="document.login.{USERNAME_FIELDNAME}.focus();">
+
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center">
+<tr>
+	<td width="60" valign="top">
+		<img src="{INTERFACE_DIR_URL}/logo.png" alt="Logo" />
+	</td>
+	<td width="5">&nbsp;</td>
+	<td style="font-size: 20px; ">
+		<font style="color: #FFFFFF;">{SECTION_LOGIN}</font>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="770" align="center" style="margin-top: 30px;">
+<tr>
+	<td class="content">
+	
+	<form name="login" action="{ACTION_URL}" method="post">
+	<input type="hidden" name="url" value="{URL}" />
+	<input type="hidden" name="username_fieldname" value="{USERNAME_FIELDNAME}" />
+	<input type="hidden" name="password_fieldname" value="{PASSWORD_FIELDNAME}" />
+		<table cellpadding="5" cellspacing="0" border="0" align="center" width="500">
+		<tr>
+			<td height="40" align="center" colspan="2">{MESSAGE}</td>
+		</tr>
+		<tr>
+			<td height="10" colspan="2"></td>
+		</tr>
+		<tr>
+			<td width="170" height="30" align="right">{TEXT_USERNAME}:</td>
+			<td><input type="text" maxlength="{MAX_USERNAME_LEN}" name="{USERNAME_FIELDNAME}" value="{USERNAME}" style="width: 180px;" /></td>
+		</tr>
+		<tr>
+			<td width="170" height="30" align="right">{TEXT_PASSWORD}:</td>
+			<td><input type="password" maxlength="{MAX_PASSWORD_LEN}" name="{PASSWORD_FIELDNAME}" style="width: 180px;" /></td>
+		</tr>
+		<tr height="30" style="display: {DISPLAY_REMEMBER_ME};">
+			<td>&nbsp;</td>
+			<td>
+				<input type="checkbox" name="remember" id="remember" value="true" />
+				<label for="remember">
+					{TEXT_REMEMBER_ME}
+				</label>
+			</td>
+		</tr>
+		<tr height="30">
+			<td>&nbsp;</td>
+			<td><input type="submit" name="submit" value="{TEXT_LOGIN}" style="width: 180px; font-size: 10px; text-transform: uppercase; color: #003366; border: 1px solid #336699; background-color: #DDDDDD; padding: 3px;" /></td>
+		</tr>
+		<tr>
+			<td height="10" colspan="2"></td>
+		</tr>
+		</table>
+	</form>
+	
+	<center>
+		<a href="{FORGOTTEN_DETAILS_APP}">{TEXT_FORGOTTEN_DETAILS}</a>
+		<br />
+		<br />
+		<br />
+		<a href="{WB_URL}">{TEXT_HOME}</a>
+	</center>
+
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding: 10px 0px 10px 0px;">
+<tr>
+	<td align="center" style="font-size: 10px;">
+		<!-- Please note: the below reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+		<a href="http://www.websitebaker.com/" style="color: #000000;" target="_blank">Website Baker</a>
+		is	released under the
+		<a href="http://www.gnu.org/copyleft/gpl.html" style="color: #000000;" target="_blank">GNU General Public License</a>
+		<!-- Please note: the above reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+	</td>
+</tr>
+</table>
+
+</body>
+</html>
+<!-- END mainBlock -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/login/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/login/index.php
===================================================================
--- tags/2.7.0/wb/admin/login/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/login/index.php	(revision 838)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../../config.php");
+require_once(WB_PATH."/framework/class.login.php");
+
+if(defined('SMART_LOGIN') AND SMART_LOGIN == 'enabled') {
+	// Generate username field name
+	$username_fieldname = 'username_';
+	$password_fieldname = 'password_';
+	$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+	srand((double)microtime()*1000000);
+	$i = 0;
+	while ($i <= 7) {
+		$num = rand() % 33;
+		$tmp = substr($salt, $num, 1);
+		$username_fieldname = $username_fieldname . $tmp;
+		$password_fieldname = $password_fieldname . $tmp;
+		$i++;
+	}
+} else {
+	$username_fieldname = 'username';
+	$password_fieldname = 'password';
+}
+
+$thisApp = new Login(
+							array(
+									'MAX_ATTEMPS' => "3",
+									'WARNING_URL' => ADMIN_URL."/login/warning.html",
+									'USERNAME_FIELDNAME' => $username_fieldname,
+									'PASSWORD_FIELDNAME' => $password_fieldname,
+									'REMEMBER_ME_OPTION' => SMART_LOGIN,
+									'MIN_USERNAME_LEN' => "2",
+									'MIN_PASSWORD_LEN' => "2",
+									'MAX_USERNAME_LEN' => "30",
+									'MAX_PASSWORD_LEN' => "30",
+									'LOGIN_URL' => ADMIN_URL."/login/index.php",
+									'DEFAULT_URL' => ADMIN_URL."/start/index.php",
+									'TEMPLATE_DIR' => ADMIN_PATH."/login",
+									'TEMPLATE_FILE' => "template.html",
+									'FRONTEND' => false,
+									'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php",
+									'USERS_TABLE' => TABLE_PREFIX."users",
+									'GROUPS_TABLE' => TABLE_PREFIX."groups",
+							)
+					);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/login/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/browse.html
===================================================================
--- tags/2.7.0/wb/admin/media/browse.html	(nonexistent)
+++ tags/2.7.0/wb/admin/media/browse.html	(revision 838)
@@ -0,0 +1,108 @@
+<!-- BEGIN main_block -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Browse Media</title>
+
+<style type="text/css">
+body,td,th,input,textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #FFFFFF;
+	margin: 0px;
+}
+hr {
+	margin: 0px;
+	color: #003366;
+	height: 1px;
+}
+.hide {
+	display: none;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+</style>
+
+<script language="javascript" type="text/javascript">
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}
+</script>
+
+</head>
+<body>
+
+<table cellpadding="4" cellspacing="0" border="0" width="100%" style="border-bottom: 1px solid #35373a; width: 100%;">
+<tr style="background-color: #ECF1F3;">
+	<td width="16" align="center" style="padding-left: 10px;">
+		<a href="{PARENT_DIR_LINK}">
+			<img src="../images/up_folder_16.png" border="0" class="{DISPLAY_UP_ARROW}" alt="^" />
+		</a>
+	</td>
+	<td width="50">
+		<a href="{PARENT_DIR_LINK}" class="{DISPLAY_UP_ARROW}">
+			{TEXT_UP}
+		</a>
+	</td>
+	<td align="center">
+		{TEXT_CURRENT_FOLDER}: {MEDIA_DIRECTORY}{CURRENT_DIR}
+	</td>
+	<td width="16">
+		<a href="browse.php?dir={CURRENT_DIR}">
+			<img src="../images/reload_16.png" border="0" alt="" />
+		</a>
+	</td>
+	<td width="50">
+		<a href="browse.php?dir={CURRENT_DIR}">
+			{TEXT_RELOAD}
+		</a>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="4" cellspacing="0" border="0" width="100%" class="{DISPLAY_LIST_TABLE}">
+<!-- BEGIN list_block -->
+<tr style="background-color: #{ROW_BG_COLOR};" onmouseover="this.style.backgroundColor = '#F1F8DD'" onmouseout="this.style.backgroundColor = '#{ROW_BG_COLOR}'">
+	<td width="18" style="padding-left: 10px;">
+		<a href="{LINK}" target="{LINK_TARGET}">
+			<img src="{FILETYPE_ICON}" class="{DISPLAY_ICON}" border="0" alt="" />
+		</a>
+	</td>
+	<td>
+		<a href="{LINK}" target="{LINK_TARGET}">
+			{NAME}
+		</a>
+	</td>
+	<td width="85" align="right" class="{DISPLAY_RENAME}">
+		<a href="rename.php?dir={CURRENT_DIR}&id={TEMP_ID}">
+			<img src="../images/modify_16.png" alt="" border="0" /> {TEXT_RENAME}
+		</a>
+	</td>
+	<td width="70" style="padding-right: 15px;" align="right" class="{DISPLAY_DELETE}">
+		<a href="#" onclick="javascript: confirm_link('{CONFIRM_DELETE}\n {NAME_SLASHED}', 'delete.php?dir={CURRENT_DIR}&id={TEMP_ID}');">
+			<img src="../images/delete_16.png" alt="" border="0" /> {TEXT_DELETE}
+		</a>
+	</td>
+</tr>
+<!-- END list_block -->
+</table>
+
+<font class="{DISPLAY_NONE_FOUND}">
+<br />
+&nbsp; &nbsp; 
+{NONE_FOUND}
+</font>
+
+</body>
+</html>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/browse.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/template.html
===================================================================
--- tags/2.7.0/wb/admin/media/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/media/template.html	(revision 838)
@@ -0,0 +1,131 @@
+<!-- BEGIN main_block -->
+
+<style>
+iframe {
+	border: 1px solid #35373a;
+}
+
+input:focus, input:active {
+	background-color: #F1F8FD;
+}
+
+</style>
+
+<h2>{HEADING_BROWSE_MEDIA}</h2>
+
+<iframe width="100%" height="320px" align="center" src="browse.php"></iframe>
+
+<br />
+
+
+
+<form name="create" action="create.php" method="post" class="{DISPLAY_CREATE}">
+
+<br />
+
+<h2>{HEADING_CREATE_FOLDER}</h2>
+
+<table cellpadding="3" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="100">{TEXT_TARGET_FOLDER}:</td>
+	<td>
+		<select name="target" style="width: 100%;">
+			<option value="{MEDIA_DIRECTORY}" selected>{MEDIA_DIRECTORY}</option>
+			<!-- BEGIN dir_list_block -->
+				<option value="{NAME}">{NAME}</option>
+			<!-- END dir_list_block -->
+		</select>
+	</td>
+</tr>
+</table>
+<table cellpadding="3" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="100">{TEXT_NAME}:</td>
+	<td>
+		<input type="text" name="name" style="width: 100%;" />
+	</td>
+	<td align="right" width="160">
+		<input type="submit" name="submit" value="{TEXT_CREATE_FOLDER}" style="width: 160px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<form name="upload" action="upload.php" method="post" enctype="multipart/form-data" class="{DISPLAY_UPLOAD}">
+
+<br />
+
+<h2>{HEADING_UPLOAD_FILES}</h2>
+
+<table cellpadding="3" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="100">{TEXT_TARGET_FOLDER}:</td>
+	<td>
+		<select name="target" style="width: 100%;">
+			<option value="{MEDIA_DIRECTORY}" selected>{MEDIA_DIRECTORY}</option>
+			<!-- BEGIN dir_list_block -->
+				<option value="{NAME}">{NAME}</option>
+			<!-- END dir_list_block -->
+		</select>
+	</td>
+</tr>
+<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%">
+<tr>
+	<td>
+		<input type="checkbox" name="overwrite" id="overwrite" value="yes" />
+		<label for="overwrite">
+		{TEXT_OVERWRITE_EXISTING} {TEXT_FILES}
+		</label>
+	</td>
+	<td width="160">
+		<input type="submit" name="submit" value="{TEXT_UPLOAD_FILES}" style="width: 160px;" />
+	</td>
+</tr>
+</table>
+<table cellpadding="3" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="50%" align="left">
+		<input type="file" size="42" name="file1" />
+	</td>
+	<td width="50%" align="right">
+		<input type="file" size="42" name="file2" />
+	</td>
+</tr>
+<tr>
+	<td width="50%" align="left">
+		<input type="file" size="42" name="file3" />
+	</td>
+	<td width="50%" align="right">
+		<input type="file" size="42" name="file4" />
+	</td>
+</tr>
+<tr>
+	<td width="50%" align="left">
+		<input type="file" size="42" name="file5" />
+	</td>
+	<td width="50%" align="right">
+		<input type="file" size="42" name="file6" />
+	</td>
+</tr>
+<tr>
+	<td width="50%" align="left">
+		<input type="file" size="42" name="file7" />
+	</td>
+	<td width="50%" align="right">
+		<input type="file" size="42" name="file8" />
+	</td>
+</tr>
+<tr>
+	<td width="50%" align="left">
+		<input type="file" size="42" name="file9" />
+	</td>
+	<td width="50%" align="right">
+		<input type="file" size="42" name="file10" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/browse.php
===================================================================
--- tags/2.7.0/wb/admin/media/browse.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/browse.php	(revision 838)
@@ -0,0 +1,182 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media', false);
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/media');
+$template->set_file('page', 'browse.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Get the current dir
+$directory = $admin->strip_slashes($admin->get_get('dir'));
+if($directory == '/' OR $directory == '\\') {
+	$directory = '';
+}
+
+// Check to see if it contains ../
+if(strstr($directory, '../')) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH']);
+}
+
+if(!file_exists(WB_PATH.MEDIA_DIRECTORY.$directory)) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST']);
+}
+
+// Check to see if the user wanted to go up a directory into the parent folder
+if($admin->get_get('up') == 1) {
+	$parent_directory = dirname($directory);
+	header("Location: browse.php?dir=$parent_directory");	
+	exit(0);
+}
+
+// Workout the parent dir link
+$parent_dir_link = ADMIN_URL.'/media/browse.php?dir='.$directory.'&up=1';
+// Workout if the up arrow should be shown
+if($directory == '') {
+	$display_up_arrow = 'hide';
+} else {
+	$display_up_arrow = '';
+}
+
+// Insert values
+$template->set_var(array(
+								'CURRENT_DIR' => $directory,
+								'PARENT_DIR_LINK' => $parent_dir_link,
+								'DISPLAY_UP_ARROW' => $display_up_arrow
+								)
+						);
+
+// Get home folder not to show
+$home_folders = get_home_folders();
+
+// Generate list
+$template->set_block('main_block', 'list_block', 'list');
+if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory)) {
+	// Loop through the files and dirs an add to list
+   while(false !== ($file = readdir($handle))) {
+		if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
+			if(is_dir(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$file)) {
+				if(!isset($home_folders[$directory.'/'.$file])) {
+					$DIR[] = $file;
+				}
+			} else {
+				$FILE[] = $file;
+			}
+		}
+	}
+	// Now parse these values to the template
+	$temp_id = 0;
+	$row_bg_color = 'FFF';
+	if(isset($DIR)) {
+		sort($DIR);
+		foreach($DIR AS $name) {
+			$link_name = str_replace(' ', '%20', $name);
+			$temp_id++;
+			$template->set_var(array(
+											'NAME' => $name,
+											'NAME_SLASHED' => addslashes($name),
+											'TEMP_ID' => $temp_id,
+											'LINK' => "browse.php?dir=$directory/$link_name",
+											'LINK_TARGET' => '',
+											'ROW_BG_COLOR' => $row_bg_color,
+											'FILETYPE_ICON' => ADMIN_URL.'/images/folder_16.png'
+											)
+									);
+			$template->parse('list', 'list_block', true);
+			// Code to alternate row colors
+			if($row_bg_color == 'FFF') {
+				$row_bg_color = 'ECF1F3';
+			} else {
+				$row_bg_color = 'FFF';
+			}
+		}
+	}
+	if(isset($FILE)) {
+		sort($FILE);
+		foreach($FILE AS $name) {
+			$temp_id++;
+			$template->set_var(array(
+											'NAME' => $name,
+											'NAME_SLASHED' => addslashes($name),
+											'TEMP_ID' => $temp_id,
+											'LINK' => WB_URL.MEDIA_DIRECTORY.$directory.'/'.$name,
+											'LINK_TARGET' => '_blank',
+											'ROW_BG_COLOR' => $row_bg_color,
+											'FILETYPE_ICON' => ADMIN_URL.'/images/blank.gif'
+											)
+									);
+			$template->parse('list', 'list_block', true);
+			// Code to alternate row colors
+			if($row_bg_color == 'FFF') {
+				$row_bg_color = 'ECF1F3';
+			} else {
+				$row_bg_color = 'FFF';
+			}
+		}
+	}
+}
+
+// If no files are in the media folder say so
+if($temp_id == 0) {
+	$template->set_var('DISPLAY_LIST_TABLE', 'hide');
+} else {
+	$template->set_var('DISPLAY_NONE_FOUND', 'hide');
+}
+
+// Insert permissions values
+if($admin->get_permission('media_rename') != true) {
+	$template->set_var('DISPLAY_RENAME', 'hide');
+}
+if($admin->get_permission('media_delete') != true) {
+	$template->set_var('DISPLAY_DELETE', 'hide');
+}
+
+// Insert language text and messages
+$template->set_var(array(
+								'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
+								'TEXT_CURRENT_FOLDER' => $TEXT['CURRENT_FOLDER'],
+								'TEXT_RELOAD' => $TEXT['RELOAD'],
+								'TEXT_RENAME' => $TEXT['RENAME'],
+								'TEXT_DELETE' => $TEXT['DELETE'],
+								'TEXT_UP' => $TEXT['UP'],
+								'NONE_FOUND' => $MESSAGE['MEDIA']['NONE_FOUND'],
+								'CONFIRM_DELETE' => $MESSAGE['MEDIA']['CONFIRM_DELETE']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/browse.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/rename2.php
===================================================================
--- tags/2.7.0/wb/admin/media/rename2.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/rename2.php	(revision 838)
@@ -0,0 +1,171 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media_rename', false);
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Include the basic header file
+require(ADMIN_PATH.'/media/basic_header.html');
+
+// Get list of file types to which we're supposed to append 'txt'
+$get_result=$database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name='rename_files_on_upload' LIMIT 1");
+$file_extension_string='';
+if ($get_result->numRows()>0) {
+	$fetch_result=$get_result->fetchRow();
+	$file_extension_string=$fetch_result['value'];
+}
+$file_extensions=explode(",",$file_extension_string);
+
+
+// Get the current dir
+$directory = $admin->get_post('dir');
+if($directory == '/') {
+	$directory = '';
+}
+// Check to see if it contains ../
+if(strstr($directory, '../')) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH']);
+}
+
+// Get the temp id
+if(!is_numeric($admin->get_post('id'))) {
+	header("Location: browse.php?dir=$directory");
+	exit(0);
+} else {
+	$file_id = $admin->get_post('id');
+}
+
+// Get home folder not to show
+$home_folders = get_home_folders();
+
+// Figure out what folder name the temp id is
+if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory)) {
+	// Loop through the files and dirs an add to list
+   while (false !== ($file = readdir($handle))) {
+		if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
+			if(is_dir(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$file)) {
+				if(!isset($home_folders[$directory.'/'.$file])) {
+					$DIR[] = $file;
+				}
+			} else {
+				$FILE[] = $file;
+			}
+		}
+	}
+	$temp_id = 0;
+	if(isset($DIR)) {
+		sort($DIR);
+		foreach($DIR AS $name) {
+			$temp_id++;
+			if($file_id == $temp_id) {
+				$rename_file = $name;
+				$type = 'folder';
+			}
+		}
+	}
+	if(isset($FILE)) {
+		sort($FILE);
+		foreach($FILE AS $name) {
+			$temp_id++;
+			if($file_id == $temp_id) {
+				$rename_file = $name;
+				$type = 'file';
+			}
+		}
+	}
+}
+
+if(!isset($rename_file)) {
+	$admin->print_error($MESSAGE['MEDIA']['FILE_NOT_FOUND'], "browse.php?dir=$directory", false);
+}
+
+// Check if they entered a new name
+if(media_filename($admin->get_post('name')) == "") {
+	$admin->print_error($MESSAGE['MEDIA']['BLANK_NAME'], "rename.php?dir=$directory&id=$file_id", false);
+} else {
+	$old_name = $admin->get_post('old_name');
+	$new_name =  media_filename($admin->get_post('name'));
+}
+
+// Check if they entered an extension
+if($type == 'file') {
+	if(media_filename($admin->get_post('extension')) == "") {
+		$admin->print_error($MESSAGE['MEDIA']['BLANK_EXTENSION'], "rename.php?dir=$directory&id=$file_id", false);
+	} else {
+		$extension = media_filename($admin->get_post('extension'));
+	}
+} else {
+	$extension = '';
+}
+
+// Join new name and extension
+$name = $new_name.$extension;
+
+// Check if the name contains ..
+if(strstr($name, '..')) {
+	$admin->print_error($MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'], "rename.php?dir=$directory&id=$file_id", false);
+}
+
+// Check if the name is index.php
+if($name == 'index.php') {
+	$admin->print_error($MESSAGE['MEDIA']['NAME_INDEX_PHP'], "rename.php?dir=$directory&id=$file_id", false);
+}
+
+// Check that the name still has a value
+if($name == '') {
+	$admin->print_error($MESSAGE['MEDIA']['BLANK_NAME'], "rename.php?dir=$directory&id=$file_id", false);
+}
+
+// Check for potentially malicious files and append 'txt' to their name
+foreach($file_extensions as $file_ext) {
+	$file_ext_len=strlen($file_ext);
+	if (substr($name,-$file_ext_len)==$file_ext) {
+		$name.='.txt';
+	}
+}		
+
+
+// Check if we should overwrite or not
+if($admin->get_post('overwrite') != 'yes' AND file_exists(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$name) == true) {
+	if($type == 'folder') {
+		$admin->print_error($MESSAGE['MEDIA']['DIR_EXISTS'], "rename.php?dir=$directory&id=$file_id", false);
+	} else {
+		$admin->print_error($MESSAGE['MEDIA']['FILE_EXISTS'], "rename.php?dir=$directory&id=$file_id", false);
+	}
+}
+
+// Try and rename the file/folder
+if(rename(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$rename_file, WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$name)) {
+	$admin->print_success($MESSAGE['MEDIA']['RENAMED'], "browse.php?dir=$directory");
+} else {
+	$admin->print_error($MESSAGE['MEDIA']['CANNOT_RENAME'], "rename.php?dir=$directory&id=$file_id", false);
+}
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/rename2.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/delete.php
===================================================================
--- tags/2.7.0/wb/admin/media/delete.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/delete.php	(revision 838)
@@ -0,0 +1,123 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media_delete', false);
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Include the stripped-down header file
+require('basic_header.html');
+
+// Get the current dir
+$directory = $admin->get_get('dir');
+if($directory == '/') {
+	$directory = '';
+}
+// Check to see if it contains ../
+if(strstr($directory, '../')) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['MEDIA']['DOT_DOT_SLASH']);
+}
+
+// Get the temp id
+if(!is_numeric($admin->get_get('id'))) {
+	header("Location: browse.php?dir=$directory");
+	exit(0);
+} else {
+	$file_id = $admin->get_get('id');
+}
+
+// Get home folder not to show
+$home_folders = get_home_folders();
+
+// Figure out what folder name the temp id is
+if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory)) {
+	// Loop through the files and dirs an add to list
+   while (false !== ($file = readdir($handle))) {
+		if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
+			if(is_dir(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$file)) {
+				if(!isset($home_folders[$directory.'/'.$file])) {
+					$DIR[] = $file;
+				}
+			} else {
+				$FILE[] = $file;
+			}
+		}
+	}
+	$temp_id = 0;
+	if(isset($DIR)) {
+		sort($DIR);
+		foreach($DIR AS $name) {
+			$temp_id++;
+			if(!isset($delete_file) AND $file_id == $temp_id) {
+				$delete_file = $name;
+				$type = 'folder';
+			}
+		}
+	}
+	if(isset($FILE)) {
+		sort($FILE);
+		foreach($FILE AS $name) {
+			$temp_id++;
+			if(!isset($delete_file) AND $file_id == $temp_id) {
+				$delete_file = $name;
+				$type = 'file';
+			}
+		}
+	}
+}
+
+// Check to see if we could find an id to match
+if(!isset($delete_file)) {
+	$admin->print_error($MESSAGE['MEDIA']['FILE_NOT_FOUND'], "browse.php?dir=$directory", false);
+}
+$relative_path = WB_PATH.MEDIA_DIRECTORY.'/'.$directory.'/'.$delete_file;
+// Check if the file/folder exists
+if(!file_exists($relative_path)) {
+	$admin->print_error($MESSAGE['MEDIA']['FILE_NOT_FOUND'], "browse.php?dir=$directory", false);	
+}
+
+// Find out whether its a file or folder
+if($type == 'folder') {
+	// Try and delete the directory
+	if(rm_full_dir($relative_path)) {
+		$admin->print_success($MESSAGE['MEDIA']['DELETED_DIR'], "browse.php?dir=$directory");
+	} else {
+		$admin->print_error($MESSAGE['MEDIA']['CANNOT_DELETE_DIR'], "browse.php?dir=$directory", false);
+	}
+} else {
+	// Try and delete the file
+	if(unlink($relative_path)) {
+		$admin->print_success($MESSAGE['MEDIA']['DELETED_FILE'], "browse.php?dir=$directory");
+	} else {
+		$admin->print_error($MESSAGE['MEDIA']['CANNOT_DELETE_FILE'], "browse.php?dir=$directory", false);
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/create.php
===================================================================
--- tags/2.7.0/wb/admin/media/create.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/create.php	(revision 838)
@@ -0,0 +1,88 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get dir name and target location
+if(!isset($_POST['name']) OR $_POST['name'] == '') {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$name = $_POST['name'];
+}
+if(!isset($_POST['target']) OR $_POST['target'] == '') {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$target = $_POST['target'];
+}
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media_create');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Check to see if name or target contains ../
+if(strstr($name, '../')) {
+	$admin->print_error($MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH']);
+}
+if(strstr($target, '../')) {
+	$admin->print_error($MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH']);
+}
+
+// Remove bad characters
+$name = media_filename($name);
+  
+// Create relative path of the new dir name
+$relative = WB_PATH.$target.'/'.$name;
+
+// Check to see if the folder already exists
+if(file_exists($relative)) {
+	$admin->print_error($MESSAGE['MEDIA']['DIR_EXISTS']);
+}
+
+// Try and make the dir
+if(make_dir($relative)) {
+	// Create index.php file
+	$content = ''.
+"<?php
+
+header('Location: ../');
+
+?>";
+	$handle = fopen($relative.'/index.php', 'w');
+	fwrite($handle, $content);
+	fclose($handle);
+	change_mode($relative.'/index.php', 'file');
+	$admin->print_success($MESSAGE['MEDIA']['DIR_MADE']);
+} else {
+	$admin->print_error($MESSAGE['MEDIA']['DIR_NOT_MADE']);
+}
+
+// Print admin 
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/create.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/upload.php
===================================================================
--- tags/2.7.0/wb/admin/media/upload.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/upload.php	(revision 838)
@@ -0,0 +1,110 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Target location
+if(!isset($_POST['target']) OR $_POST['target'] == '') {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$target = $_POST['target'];
+}
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media_upload');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Check to see if target contains ../
+if(strstr($target, '../')) {
+	$admin->print_error($MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH']);
+}
+
+// Create relative path of the target location for the file
+$relative = WB_PATH.$target.'/';
+
+// Find out whether we should replace files or give an error
+if($admin->get_post('overwrite') != '') {
+	$overwrite = true;
+} else {
+	$overwrite = false;
+}
+
+// Get list of file types to which we're supposed to append 'txt'
+$get_result=$database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name='rename_files_on_upload' LIMIT 1");
+$file_extension_string='';
+if ($get_result->numRows()>0) {
+	$fetch_result=$get_result->fetchRow();
+	$file_extension_string=$fetch_result['value'];
+}
+$file_extensions=explode(",",$file_extension_string);
+
+
+// Loop through the files
+$good_uploads = 0;
+for($count = 1; $count <= 10; $count++) {
+	// If file was upload to tmp
+	if(isset($_FILES["file$count"]['name'])) {
+		// Remove bad characters
+		$filename = media_filename($_FILES["file$count"]['name']);
+		// Check if there is still a filename left
+		if($filename != '') {
+			// Check for potentially malicious files and append 'txt' to their name
+			foreach($file_extensions as $file_ext) {
+				$file_ext_len=strlen($file_ext);
+				if (substr($filename,-$file_ext_len)==$file_ext) {
+					$filename.='.txt';
+				}
+			}		
+			// Move to relative path (in media folder)
+			if(file_exists($relative.$filename) AND $overwrite == true) {			
+				if(move_uploaded_file($_FILES["file$count"]['tmp_name'], $relative.$filename)) {
+					$good_uploads++;
+					// Chmod the uploaded file
+					change_mode($relative.$filename, 'file');
+				}
+			} elseif(!file_exists($relative.$filename)) {
+				if(move_uploaded_file($_FILES["file$count"]['tmp_name'], $relative.$filename)) {
+					$good_uploads++;
+					// Chmod the uploaded file
+					change_mode($relative.$filename);
+				}
+			}
+		}
+	}
+}
+
+if($good_uploads == 1) {
+	$admin->print_success($good_uploads.$MESSAGE['MEDIA']['SINGLE_UPLOADED']);
+} else {
+	$admin->print_success($good_uploads.$MESSAGE['MEDIA']['UPLOADED']);
+}
+
+// Print admin 
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/upload.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/index.php
===================================================================
--- tags/2.7.0/wb/admin/media/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/index.php	(revision 838)
@@ -0,0 +1,85 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/media');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get home folder not to show
+$home_folders = get_home_folders();
+
+// Insert values
+$template->set_block('main_block', 'dir_list_block', 'dir_list');
+foreach(directory_list(WB_PATH.MEDIA_DIRECTORY) AS $name) {
+	if(!isset($home_folders[str_replace(WB_PATH.MEDIA_DIRECTORY, '', $name)])) {
+		$template->set_var('NAME', str_replace(WB_PATH, '', $name));
+		$template->parse('dir_list', 'dir_list_block', true);
+	}
+}
+
+// Insert permissions values
+if($admin->get_permission('media_create') != true) {
+	$template->set_var('DISPLAY_CREATE', 'hide');
+}
+if($admin->get_permission('media_upload') != true) {
+	$template->set_var('DISPLAY_UPLOAD', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_BROWSE_MEDIA' => $HEADING['BROWSE_MEDIA'],
+								'HEADING_CREATE_FOLDER' => $HEADING['CREATE_FOLDER'],
+								'HEADING_UPLOAD_FILES' => $HEADING['UPLOAD_FILES']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'MEDIA_DIRECTORY' => MEDIA_DIRECTORY,
+								'TEXT_NAME' => $TEXT['TITLE'],
+								'TEXT_TARGET_FOLDER' => $TEXT['TARGET_FOLDER'],
+								'TEXT_OVERWRITE_EXISTING' => $TEXT['OVERWRITE_EXISTING'],
+								'TEXT_FILES' => $TEXT['FILES'],
+								'TEXT_CREATE_FOLDER' => $TEXT['CREATE_FOLDER'],
+								'TEXT_UPLOAD_FILES' => $TEXT['UPLOAD_FILES']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin 
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/rename.php
===================================================================
--- tags/2.7.0/wb/admin/media/rename.php	(nonexistent)
+++ tags/2.7.0/wb/admin/media/rename.php	(revision 838)
@@ -0,0 +1,142 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Create admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Media', 'media_rename', false);
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Include the basic header file
+require(ADMIN_PATH.'/media/basic_header.html');
+
+// Get the current dir
+$directory = $admin->get_get('dir');
+if($directory == '/') {
+	$directory = '';
+}
+// Check to see if it contains ../
+if(strstr($directory, '../')) {
+	$admin->print_error($MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'], "rename.php?dir=$directory&id=$file_id", false);
+}
+
+// Get the temp id
+if(!is_numeric($admin->get_get('id'))) {
+	header("Location: browse.php?dir=$directory");
+	exit(0);
+} else {
+	$file_id = $admin->get_get('id');
+}
+
+// Get home folder not to show
+$home_folders = get_home_folders();
+
+// Figure out what folder name the temp id is
+if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.'/'.$directory)) {
+	// Loop through the files and dirs an add to list
+   while (false !== ($file = readdir($handle))) {
+		if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
+			if(is_dir(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$file)) {
+				if(!isset($home_folders[$directory.'/'.$file])) {
+					$DIR[] = $file;
+				}
+			} else {
+				$FILE[] = $file;
+			}
+		}
+	}
+	$temp_id = 0;
+	if(isset($DIR)) {
+		sort($DIR);
+		foreach($DIR AS $name) {
+			$temp_id++;
+			if($file_id == $temp_id) {
+				$rename_file = $name;
+				$type = 'folder';
+			}
+		}
+	}
+	if(isset($FILE)) {
+		sort($FILE);
+		foreach($FILE AS $name) {
+			$temp_id++;
+			if($file_id == $temp_id) {
+				$rename_file = $name;
+				$type = 'file';
+			}
+		}
+	}
+}
+
+if(!isset($rename_file)) {
+	$admin->print_error($MESSAGE['MEDIA']['FILE_NOT_FOUND'], "browse.php?dir=$directory", false);
+}
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/media');
+$template->set_file('page', 'rename.html');
+$template->set_block('page', 'main_block', 'main');
+//echo WB_PATH.'/media/'.$directory.'/'.$rename_file;
+if($type == 'folder') {
+	$template->set_var('DISPlAY_EXTENSION', 'hide');
+	$extension = '';
+} else {
+	$template->set_var('DISPlAY_EXTENSION', '');
+	$extension = strstr($rename_file, '.');
+}
+
+if($type == 'folder') {
+	$type = $TEXT['FOLDER'];
+} else {
+	$type = $TEXT['FILE'];
+}
+
+$template->set_var(array(
+								'FILENAME' => $rename_file,
+								'DIR' => $directory,
+								'FILE_ID' => $file_id,
+								'TYPE' => $type,
+								'EXTENSION' => $extension
+								)
+						);
+
+
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_TO' => $TEXT['TO'],
+								'TEXT_RENAME' => $TEXT['RENAME'],
+								'TEXT_CANCEL' => $TEXT['CANCEL'],
+								'TEXT_UP' => $TEXT['UP'],
+								'TEXT_OVERWRITE_EXISTING' => $TEXT['OVERWRITE_EXISTING']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/rename.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/rename.html
===================================================================
--- tags/2.7.0/wb/admin/media/rename.html	(nonexistent)
+++ tags/2.7.0/wb/admin/media/rename.html	(revision 838)
@@ -0,0 +1,54 @@
+<!-- BEGIN main_block -->
+
+<style>
+.hide {
+	display: none;
+}
+</style>
+
+<form name="rename" action="rename2.php" method="post">
+<input type="hidden" name="dir" value="{DIR}" />
+<input type="hidden" name="old_name" value="{FILENAME}" />
+<input type="hidden" name="id" value="{FILE_ID}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="400" align="center">
+<tr>
+	<td align="center" colspan="2">{TEXT_RENAME} '{FILENAME}' {TEXT_TO}:</td>
+</tr>
+<tr>
+	<td>
+		<input type="text" name="name" style="width: 100%;" />
+		<script type="text/javascript" language="javascript">
+		document.rename.name.focus();
+		</script>
+	</td>
+	<td width="50" class="{DISPlAY_EXTENSION}">
+		<input type="text" name="extension" style="width: 50px;" value="{EXTENSION}" />
+	</td>
+</tr>
+<tr>
+	<td colspan="2">
+		<input type="checkbox" name="overwrite" id="overwrite" value="yes" />
+		<label for="overwrite">
+		{TEXT_OVERWRITE_EXISTING} {TYPE}
+		</label>
+	</td>
+</tr>
+<tr>
+	<td colspan="2">
+		<input type="submit" name="submit" value="{TEXT_RENAME}" style="width: 49%;" />
+		<input type="button" name="cancel" value="{TEXT_CANCEL}" style="width: 49%;" onclick="javascript: window.location = 'browse.php';" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+</td>
+</tr>
+</table>
+
+</body>
+</html>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/rename.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/media/basic_header.html
===================================================================
--- tags/2.7.0/wb/admin/media/basic_header.html	(nonexistent)
+++ tags/2.7.0/wb/admin/media/basic_header.html	(revision 838)
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Website Baker Administration - Media</title>
+<link href="../interface/stylesheet.css" rel="stylesheet" type="text/css">
+<style>
+body {
+	background-color: #FFFFFF;
+	background-image: none;
+	margin: 0px;
+}
+.content {
+	width: 100%;
+	height: 100px;
+}
+</style>
+</head>
+<body>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
+<tr>
+	<td class="content">
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/media/basic_header.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/preferences/index.php
===================================================================
--- tags/2.7.0/wb/admin/preferences/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/preferences/index.php	(revision 838)
@@ -0,0 +1,161 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Preferences');
+
+require_once(WB_PATH.'/framework/functions-utf8.php');
+
+// Create new template object for the preferences form
+$template = new Template(ADMIN_PATH.'/preferences');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Get existing value from database
+$database = new database();
+$query = "SELECT display_name,email FROM ".TABLE_PREFIX."users WHERE user_id = '".$admin->get_user_id()."'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), 'index.php');
+}
+$details = $results->fetchRow();
+
+// Insert values into form
+$template->set_var('DISPLAY_NAME', $details['display_name']);
+$template->set_var('EMAIL', $details['email']);
+
+// Insert language values
+$template->set_block('main_block', 'language_list_block', 'language_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$l_codes[$addon['name']] = $addon['directory'];
+		$l_names[$addon['name']] = entities_to_7bit($addon['name']); // sorting-problem workaround
+	}
+	asort($l_names);
+	foreach($l_names as $l_name=>$v) {
+		// Insert code and name
+		$template->set_var(array(
+								'CODE' => $l_codes[$l_name],
+								'NAME' => $l_name
+								));
+		// Check if it is selected
+		if(LANGUAGE == $l_codes[$l_name]) {
+			$template->set_var('SELECTED', ' selected');
+		} else {
+			$template->set_var('SELECTED', '');
+		}
+		$template->parse('language_list', 'language_list_block', true);
+	}
+}
+
+// Insert default timezone values
+require(ADMIN_PATH.'/interface/timezones.php');
+$template->set_block('main_block', 'timezone_list_block', 'timezone_list');
+foreach($TIMEZONES AS $hour_offset => $title) {
+	$template->set_var('VALUE', $hour_offset);
+	$template->set_var('NAME', $title);
+	if($admin->get_timezone() == $hour_offset*60*60) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('timezone_list', 'timezone_list_block', true);
+}
+
+// Insert date format list
+$user_time = true;
+require(ADMIN_PATH.'/interface/date_formats.php');
+$template->set_block('main_block', 'date_format_list_block', 'date_format_list');
+foreach($DATE_FORMATS AS $format => $title) {
+	$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+	if($format != 'system_default') {
+		$template->set_var('VALUE', $format);
+	} else {
+		$template->set_var('VALUE', '');
+	}
+	$template->set_var('NAME', $title);
+	if(DATE_FORMAT == $format AND !isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
+		$template->set_var('SELECTED', 'selected');
+	} elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('date_format_list', 'date_format_list_block', true);
+}
+
+// Insert time format list
+require(ADMIN_PATH.'/interface/time_formats.php');
+$template->set_block('main_block', 'time_format_list_block', 'time_format_list');
+foreach($TIME_FORMATS AS $format => $title) {
+	$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+	if($format != 'system_default') {
+		$template->set_var('VALUE', $format);
+	} else {
+		$template->set_var('VALUE', '');
+	}
+	$template->set_var('NAME', $title);
+	if(TIME_FORMAT == $format AND !isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
+		$template->set_var('SELECTED', 'selected');
+	} elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
+		$template->set_var('SELECTED', 'selected');
+	} else {
+		$template->set_var('SELECTED', '');
+	}
+	$template->parse('time_format_list', 'time_format_list_block', true);
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_MY_SETTINGS' => $HEADING['MY_SETTINGS'],
+								'HEADING_MY_EMAIL' => $HEADING['MY_EMAIL'],
+								'HEADING_MY_PASSWORD' => $HEADING['MY_PASSWORD']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_SAVE' => $TEXT['SAVE'],
+								'TEXT_RESET' => $TEXT['RESET'],
+								'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+								'TEXT_EMAIL' => $TEXT['EMAIL'],
+								'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+								'TEXT_TIMEZONE' => $TEXT['TIMEZONE'],
+								'TEXT_DATE_FORMAT' => $TEXT['DATE_FORMAT'],
+								'TEXT_TIME_FORMAT' => $TEXT['TIME_FORMAT'],
+								'TEXT_CURRENT_PASSWORD' => $TEXT['CURRENT_PASSWORD'],
+								'TEXT_NEW_PASSWORD' => $TEXT['NEW_PASSWORD'],
+								'TEXT_RETYPE_NEW_PASSWORD' => $TEXT['RETYPE_NEW_PASSWORD']
+								)
+						);
+
+// Parse template for preferences form
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/preferences/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/preferences/password.php
===================================================================
--- tags/2.7.0/wb/admin/preferences/password.php	(nonexistent)
+++ tags/2.7.0/wb/admin/preferences/password.php	(revision 838)
@@ -0,0 +1,71 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Preferences');
+
+// Get entered values
+$current_password = $admin->get_post('current_password');
+$new_password = $admin->get_post('new_password');
+$new_password2 = $admin->get_post('new_password2');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Get existing password
+$database = new database();
+$query = "SELECT user_id FROM ".TABLE_PREFIX."users WHERE user_id = '".$admin->get_user_id()."' AND password = '".md5($current_password)."'";
+$results = $database->query($query);
+
+// Validate values
+if($results->numRows() == 0) {
+	$admin->print_error($MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT']);
+}
+if(strlen($new_password) < 3) {
+	$admin->print_error($MESSAGE['USERS']['PASSWORD_TOO_SHORT'], $js_back);
+}
+if($new_password != $new_password2) {
+	$admin->print_error($MESSAGE['USERS']['PASSWORD_MISMATCH'], $js_back);
+}
+
+// MD5 the password
+$md5_password = md5($new_password);
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET password = '$md5_password' WHERE user_id = '".$admin->get_user_id()."'";
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error);
+} else {
+	$admin->print_success($MESSAGE['PREFERENCES']['PASSWORD_CHANGED']);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/preferences/password.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/preferences/details.php
===================================================================
--- tags/2.7.0/wb/admin/preferences/details.php	(nonexistent)
+++ tags/2.7.0/wb/admin/preferences/details.php	(revision 838)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Preferences');
+
+// Get entered values
+$display_name = $admin->add_slashes(strip_tags($admin->get_post('display_name')));
+$language = $admin->get_post('language');
+$timezone = $admin->get_post('timezone')*60*60;
+$date_format = $admin->get_post('date_format');
+$time_format = $admin->get_post('time_format');
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET display_name = '$display_name', language = '$language', timezone = '$timezone', date_format = '$date_format', time_format = '$time_format' WHERE user_id = '".$admin->get_user_id()."'";
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['PREFERENCES']['DETAILS_SAVED']);
+	$_SESSION['DISPLAY_NAME'] = $display_name;
+	$_SESSION['LANGUAGE'] = $language;
+	$_SESSION['TIMEZONE'] = $timezone;
+	// Update date format
+	if($date_format != '') {
+		$_SESSION['DATE_FORMAT'] = $date_format;
+		if(isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) { unset($_SESSION['USE_DEFAULT_DATE_FORMAT']); }
+	} else {
+		$_SESSION['USE_DEFAULT_DATE_FORMAT'] = true;
+		if(isset($_SESSION['DATE_FORMAT'])) { unset($_SESSION['DATE_FORMAT']); }
+	}
+	// Update time format
+	if($time_format != '') {
+		$_SESSION['TIME_FORMAT'] = $time_format;
+		if(isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) { unset($_SESSION['USE_DEFAULT_TIME_FORMAT']); }
+	} else {
+		$_SESSION['USE_DEFAULT_TIME_FORMAT'] = true;
+		if(isset($_SESSION['TIME_FORMAT'])) { unset($_SESSION['TIME_FORMAT']); }
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/preferences/details.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/preferences/email.php
===================================================================
--- tags/2.7.0/wb/admin/preferences/email.php	(nonexistent)
+++ tags/2.7.0/wb/admin/preferences/email.php	(revision 838)
@@ -0,0 +1,67 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Preferences');
+
+// Get entered values
+$password = $admin->get_post('current_password');
+$email = $admin->get_post('email');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Get password
+$database = new database();
+$query = "SELECT user_id FROM ".TABLE_PREFIX."users WHERE user_id = '".$admin->get_user_id()."' AND password = '".md5($password)."'";
+$results = $database->query($query);
+
+// Validate values
+if($results->numRows() == 0) {
+	$admin->print_error($MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT']);
+}
+if(!$admin->validate_email($email)) {
+	$admin->print_error($MESSAGE['USERS']['INVALID_EMAIL']);
+}
+
+$email = $admin->add_slashes($email);
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET email = '$email' WHERE user_id = '".$admin->get_user_id()."'";
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error);
+} else {
+	$admin->print_success($MESSAGE['PREFERENCES']['EMAIL_UPDATED']);
+	$_SESSION['EMAIL'] = $email;
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/preferences/email.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/preferences/template.html
===================================================================
--- tags/2.7.0/wb/admin/preferences/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/preferences/template.html	(revision 838)
@@ -0,0 +1,134 @@
+<!-- BEGIN main_block -->
+
+<form name="details" action="details.php" method="post">
+
+<h2>{HEADING_MY_SETTINGS}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="160">{TEXT_DISPLAY_NAME}:</td>
+	<td>
+		<input type="text" name="display_name" value="{DISPLAY_NAME}" style="width: 98%;" />
+		<script language="javascript" type="text/javascript">
+		document.details.display_name.focus();
+		</script>
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_LANGUAGE}:</td>
+	<td>
+		<select name="language" style="width: 98%;">
+			<!-- BEGIN language_list_block -->
+			<option value="{CODE}"{SELECTED}>{NAME} ({CODE})</option>
+			<!-- END language_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_TIMEZONE}:</td>
+	<td>
+		<select name="timezone" style="width: 98%;">
+			<option value="-20">Please select...</option>
+			<!-- BEGIN timezone_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END timezone_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_DATE_FORMAT}:</td>
+	<td>
+		<select name="date_format" style="width: 98%;">
+			<option value="">Please select...</option>
+			<!-- BEGIN date_format_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END date_format_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_TIME_FORMAT}:</td>
+	<td>
+		<select name="time_format" style="width: 98%;">
+			<option value="">Please select...</option>
+			<!-- BEGIN time_format_list_block -->
+				<option value="{VALUE}" {SELECTED}>{NAME}</option>
+			<!-- END time_format_list_block -->
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<form name="email" action="email.php" method="post">
+
+<h2>{HEADING_MY_EMAIL}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="160">{TEXT_CURRENT_PASSWORD}:</td>
+	<td>
+		<input type="password" name="current_password" style="width: 98%;" />
+	</td>
+</tr>
+<tr>
+	<td>{TEXT_EMAIL}:</td>
+	<td>
+		<input type="text" name="email" value="{EMAIL}" style="width: 98%;" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<form name="password" action="password.php" method="post">
+
+<h2 style="margin-top: 20px;">{HEADING_MY_PASSWORD}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="160">{TEXT_CURRENT_PASSWORD}:</td>
+	<td>
+		<input type="password" name="current_password" style="width: 98%;" />
+	</td>
+</tr>
+<tr>
+	<td width="160">{TEXT_NEW_PASSWORD}:</td>
+	<td>
+		<input type="password" name="new_password" style="width: 98%;" />
+	</td>
+</tr>
+<tr>
+	<td width="160">{TEXT_RETYPE_NEW_PASSWORD}:</td>
+	<td>
+		<input type="password" name="new_password2" style="width: 98%;" />
+	</td>
+</tr>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{TEXT_SAVE}" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/preferences/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/admintools/template.html
===================================================================
--- tags/2.7.0/wb/admin/admintools/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/admintools/template.html	(revision 838)
@@ -0,0 +1,37 @@
+</div><!-- BEGIN main_block -->
+
+<style>
+.tool_table td {
+	vertical-align: top;
+	text-align: left;
+}
+</style>
+
+<table cellpadding="3" cellspacing="0" border="0" align="center" width="100%" class="tool_table">
+
+<tr class="advanced">
+	<td colspan="3" style="padding-top: 10px;">
+		<a name="administration_tools"></a>
+		<h2>{HEADING_ADMINISTRATION_TOOLS}</h2>
+	</td>
+</tr>
+<tr>
+	<td colspan="3">
+		<ul style="margin: 0; padding: 0; margin-left: 20px; margin-bottom: 10px;">
+		<!-- BEGIN tool_list_block -->
+		<li style="padding-bottom: 5px;">
+		<a href="{ADMIN_URL}/admintools/tool.php?tool={TOOL_DIR}">{TOOL_NAME}</a>
+		<br />{TOOL_DESCRIPTION}
+		</li>
+		<!-- END tool_list_block -->
+		</ul>
+		{TOOL_LIST}
+	</td>
+	<td>
+		&nbsp;
+	</td>
+	<td>&nbsp;</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/admintools/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/admintools/tool.php
===================================================================
--- tags/2.7.0/wb/admin/admintools/tool.php	(nonexistent)
+++ tags/2.7.0/wb/admin/admintools/tool.php	(revision 838)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+require_once(WB_PATH.'/framework/functions.php');
+
+$admin = new admin('admintools', 'admintools');
+
+if(!isset($_GET['tool'])) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Check if tool is installed
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'tool' AND directory = '".$admin->add_slashes($_GET['tool'])."'");
+if($result->numRows() == 0) {
+	header("Location: index.php");
+	exit(0);
+}
+$tool = $result->fetchRow();
+
+?>
+<h4 style="margin: 0; border-bottom: 1px solid #DDD; padding-bottom: 5px;">
+	<a href="<?php echo ADMIN_URL; ?>/admintools/index.php"><?php echo $HEADING['ADMINISTRATION_TOOLS']; ?></a>
+	->
+	<?php echo $tool['name']; ?>
+</h4>
+<?php
+require(WB_PATH.'/modules/'.$tool['directory'].'/tool.php');
+
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/admintools/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/admintools/index.php
===================================================================
--- tags/2.7.0/wb/admin/admintools/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/admintools/index.php	(revision 838)
@@ -0,0 +1,69 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('admintools', 'admintools');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Create new template object
+$template = new Template(ADMIN_PATH.'/admintools');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert required template variables
+$template->set_var('ADMIN_URL', ADMIN_URL);
+$template->set_var('HEADING_ADMINISTRATION_TOOLS', $HEADING['ADMINISTRATION_TOOLS']);
+
+// Insert tools into tool list
+$template->set_block('main_block', 'tool_list_block', 'tool_list');
+$results = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'tool'");
+if($results->numRows() > 0) {
+	while($tool = $results->fetchRow()) {
+		$template->set_var('TOOL_NAME', $tool['name']);
+		$template->set_var('TOOL_DIR', $tool['directory']);
+		// check if a module description exists for the displayed backend language
+		$tool_description = false;
+		if(function_exists('file_get_contents') && file_exists(WB_PATH.'/modules/'.$tool['directory'].'/languages/'.LANGUAGE .'.php')) {
+			// read contents of the module language file into string
+			$data = @file_get_contents(WB_PATH .'/modules/' .$tool['directory'] .'/languages/' .LANGUAGE .'.php');
+			$tool_description = get_variable_content('module_description', $data, true, false);
+		}		
+		$template->set_var('TOOL_DESCRIPTION', ($tool_description === False)? $tool['description'] :$tool_description);
+		$template->parse('tool_list', 'tool_list_block', true);
+	}
+} else {
+	$template->set_var('TOOL_LIST', $TEXT['NONE_FOUND']);	
+}
+
+// Parse template objects output
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/admintools/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/save.php
===================================================================
--- tags/2.7.0/wb/admin/groups/save.php	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/save.php	(revision 838)
@@ -0,0 +1,69 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'groups_modify');
+
+// Create new database object
+$database = new database();
+
+// Check if group group_id is a valid number and doesnt equal 1
+if(!isset($_POST['group_id']) OR !is_numeric($_POST['group_id']) OR $_POST['group_id'] == 1) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$group_id = $_POST['group_id'];
+}
+
+// Gather details entered
+$group_name = $admin->get_post_escaped('group_name');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Check values
+if($group_name == "") {
+	$admin->print_error($MESSAGE['GROUPS']['GROUP_NAME_BLANK'], $js_back);
+}
+
+// Get system permissions
+require_once(ADMIN_PATH.'/groups/get_permissions.php');
+
+// Update the database
+$query = "UPDATE ".TABLE_PREFIX."groups SET name = '$group_name', system_permissions = '$system_permissions', module_permissions = '$module_permissions', template_permissions = '$template_permissions' WHERE group_id = '$group_id'";
+
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['GROUPS']['SAVED'], ADMIN_URL.'/groups/index.php');
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/groups.php
===================================================================
--- tags/2.7.0/wb/admin/groups/groups.php	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/groups.php	(revision 838)
@@ -0,0 +1,188 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file and admin class file
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+
+// Create new database object
+$database = new database();
+
+if(!isset($_POST['action']) OR ($_POST['action'] != "modify" AND $_POST['action'] != "delete")) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Check if group group_id is a valid number and doesnt equal 1
+if(!isset($_POST['group_id']) OR !is_numeric($_POST['group_id']) OR $_POST['group_id'] == 1) {
+	header("Location: index.php");
+	exit(0);
+}
+
+if($_POST['action'] == 'modify') {
+	// Create new admin object
+	$admin = new admin('Access', 'groups_modify', false);
+	// Print header
+	$admin->print_header();
+	// Get existing values
+	$results = $database->query("SELECT * FROM ".TABLE_PREFIX."groups WHERE group_id = '".$_POST['group_id']."'");
+	$group = $results->fetchRow();
+	// Setup template object
+	$template = new Template(ADMIN_PATH.'/groups');
+	$template->set_file('page', 'group_form.html');
+	$template->set_block('page', 'main_block', 'main');
+	$template->set_var(	array(
+										'ACTION_URL' => ADMIN_URL.'/groups/save.php',
+										'SUBMIT_TITLE' => $TEXT['SAVE'],
+										'GROUP_ID' => $group['group_id'],
+										'GROUP_NAME' => $group['name'],
+										'ADVANCED_ACTION' => 'groups.php'
+										)
+							);
+	// Tell the browser whether or not to show advanced options
+	if(isset($_POST['advanced']) AND $_POST['advanced'] == $TEXT['SHOW_ADVANCED'].' >>') {
+		$template->set_var('DISPLAY_ADVANCED', '');
+		$template->set_var('DISPLAY_BASIC', 'none');
+		$template->set_var('ADVANCED', 'yes');
+		$template->set_var('ADVANCED_BUTTON', '<< '.$TEXT['HIDE_ADVANCED']);
+	} else {
+		$template->set_var('DISPLAY_ADVANCED', 'none');
+		$template->set_var('DISPLAY_BASIC', '');
+		$template->set_var('ADVANCED', 'no');
+		$template->set_var('ADVANCED_BUTTON', $TEXT['SHOW_ADVANCED'].' >>');
+	}
+	
+	// Explode system permissions
+	$system_permissions = explode(',', $group['system_permissions']);
+	// Check system permissions boxes
+	foreach($system_permissions AS $name) {
+			$template->set_var($name.'_checked', 'checked');
+	}
+	// Explode module permissions
+	$module_permissions = explode(',', $group['module_permissions']);
+	// Explode template permissions
+	$template_permissions = explode(',', $group['template_permissions']);
+	
+	// Insert values into module list
+	$template->set_block('main_block', 'module_list_block', 'module_list');
+	$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page'");
+	if($result->numRows() > 0) {
+		while($addon = $result->fetchRow()) {
+			$template->set_var('VALUE', $addon['directory']);
+			$template->set_var('NAME', $addon['name']);
+			if(!is_numeric(array_search($addon['directory'], $module_permissions))) {
+				$template->set_var('CHECKED', 'checked');
+			} else {
+				$template->set_var('CHECKED', '');
+			}
+			$template->parse('module_list', 'module_list_block', true);
+		}
+	}
+	
+	// Insert values into template list
+	$template->set_block('main_block', 'template_list_block', 'template_list');
+	$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+	if($result->numRows() > 0) {
+		while($addon = $result->fetchRow()) {
+			$template->set_var('VALUE', $addon['directory']);
+			$template->set_var('NAME', $addon['name']);
+			if(!is_numeric(array_search($addon['directory'], $template_permissions))) {
+				$template->set_var('CHECKED', 'checked');
+			} else {
+				$template->set_var('CHECKED', '');
+			}
+			$template->parse('template_list', 'template_list_block', true);
+		}
+	}
+		
+	// Insert language text and messages
+	$template->set_var(array(
+									'TEXT_RESET' => $TEXT['RESET'],
+									'TEXT_ACTIVE' => $TEXT['ACTIVE'],
+									'TEXT_DISABLED' => $TEXT['DISABLED'],
+									'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+									'TEXT_USERNAME' => $TEXT['USERNAME'],
+									'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+									'TEXT_RETYPE_PASSWORD' => $TEXT['RETYPE_PASSWORD'],
+									'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+									'TEXT_EMAIL' => $TEXT['EMAIL'],
+									'TEXT_GROUP' => $TEXT['GROUP'],
+									'TEXT_SYSTEM_PERMISSIONS' => $TEXT['SYSTEM_PERMISSIONS'],
+									'TEXT_MODULE_PERMISSIONS' => $TEXT['MODULE_PERMISSIONS'],
+									'TEXT_TEMPLATE_PERMISSIONS' => $TEXT['TEMPLATE_PERMISSIONS'],
+									'TEXT_NAME' => $TEXT['NAME'],
+									'SECTION_PAGES' => $MENU['PAGES'],
+									'SECTION_MEDIA' => $MENU['MEDIA'],
+									'SECTION_MODULES' => $MENU['MODULES'],
+									'SECTION_TEMPLATES' => $MENU['TEMPLATES'],
+									'SECTION_LANGUAGES' => $MENU['LANGUAGES'],
+									'SECTION_SETTINGS' => $MENU['SETTINGS'],
+									'SECTION_USERS' => $MENU['USERS'],
+									'SECTION_GROUPS' => $MENU['GROUPS'],
+									'SECTION_ADMINTOOLS' => $MENU['ADMINTOOLS'],
+									'TEXT_VIEW' => $TEXT['VIEW'],
+									'TEXT_ADD' => $TEXT['ADD'],
+									'TEXT_LEVEL' => $TEXT['LEVEL'],
+									'TEXT_MODIFY' => $TEXT['MODIFY'],
+									'TEXT_DELETE' => $TEXT['DELETE'],
+									'TEXT_MODIFY_CONTENT' => $TEXT['MODIFY_CONTENT'],
+									'TEXT_MODIFY_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
+									'HEADING_MODIFY_INTRO_PAGE' => $HEADING['MODIFY_INTRO_PAGE'],
+									'TEXT_CREATE_FOLDER' => $TEXT['CREATE_FOLDER'],
+									'TEXT_RENAME' => $TEXT['RENAME'],
+									'TEXT_UPLOAD_FILES' => $TEXT['UPLOAD_FILES'],
+									'TEXT_BASIC' => $TEXT['BASIC'],
+									'TEXT_ADVANCED' => $TEXT['ADVANCED'],
+									'CHANGING_PASSWORD' => $MESSAGE['USERS']['CHANGING_PASSWORD']
+									)
+							);
+	
+	// Parse template object
+	$template->parse('main', 'main_block', false);
+	$template->pparse('output', 'page');
+} elseif($_POST['action'] == 'delete') {
+	// Create new admin object
+	$admin = new admin('Access', 'groups_delete', false);
+	// Print header
+	$admin->print_header();
+	// Delete the group
+	$database->query("DELETE FROM ".TABLE_PREFIX."groups WHERE group_id = '".$_POST['group_id']."' LIMIT 1");
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	} else {
+		// Delete users in the group
+		$database->query("DELETE FROM ".TABLE_PREFIX."users WHERE group_id = '".$_POST['group_id']."'");
+		if($database->is_error()) {
+			$admin->print_error($database->get_error());
+		} else {
+			$admin->print_success($MESSAGE['GROUPS']['DELETED']);
+		}
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/groups.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/group_form.html
===================================================================
--- tags/2.7.0/wb/admin/groups/group_form.html	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/group_form.html	(revision 838)
@@ -0,0 +1,289 @@
+<!-- BEGIN main_block -->
+
+<style type="text/css">
+h3 {
+	margin: 0;
+	color: #333333;
+	font-size: 14px;
+}
+</style>
+
+<h2 style="display: {DISPLAY_EXTRA};">{HEADING_MODIFY_GROUP}</h2>
+
+<form name="group" action="{ACTION_URL}" method="post" class="{DISPLAY_ADD}">
+<input type="hidden" name="advanced" value="{ADVANCED}" />
+<input type="hidden" name="group_id" value="{GROUP_ID}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="150">{TEXT_NAME}:</td>
+	<td>
+		<input type="text" name="group_name" maxlength="255" value="{GROUP_NAME}" style="width: 100%" />
+	</td>
+</tr>
+</table>
+<table cellpadding="5" cellspacing="0" border="0" width="100%" style="display: {DISPLAY_BASIC}">
+<tr>
+	<td width="150" valign="top">{TEXT_SYSTEM_PERMISSIONS}:</td>
+	<td>
+		<table cellpadding="0" cellspacing="0" width="100%" border="0">
+		<tr>
+			<td>
+				<input type="checkbox" name="pages" id="pages" value="1" {pages_checked} />
+				<label for="pages">{SECTION_PAGES}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="media" id="media" value="1" {media_checked} />
+				<label for="media">{SECTION_MEDIA}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="modules" id="modules" value="1" {modules_checked} />
+				<label for="modules">{SECTION_MODULES}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="templates" id="templates" value="1" {templates_checked} />
+				<label for="templates">{SECTION_TEMPLATES}</label>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				<input type="checkbox" name="languages" id="languages" value="1" {languages_checked} />
+				<label for="languages">{SECTION_LANGUAGES}</label>
+			</td>
+			<td>		
+				<input type="checkbox" name="settings" id="settings" value="1" {settings_checked} />
+				<label for="settings">{SECTION_SETTINGS}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="users" id="users" value="1" {users_checked} />
+				<label for="users">{SECTION_USERS}</label>
+			</td>
+			<td>
+				<input type="checkbox" name="groups" id="groups" value="1" {groups_checked} />
+				<label for="groups">{SECTION_GROUPS}</label>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				<input type="checkbox" name="admintools" id="admintools" value="1" {admintools_checked} />
+				<label for="admintools">{SECTION_ADMINTOOLS}</label>
+			</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		</table>
+	</td>
+</tr>
+</table>
+<table cellpadding="5" cellspacing="0" border="0" width="100%" style="display: {DISPLAY_ADVANCED}">
+<tr>
+	<td valign="top">{TEXT_SYSTEM_PERMISSIONS}:</td>
+	<td align="left">
+
+
+<table cellpadding="3" cellspacing="0" border="0" width="400">
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_PAGES}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="pages_view" id="pages_view" type="checkbox" value="1" {pages_view_checked}></td>
+	<td><label for="pages_view">{TEXT_VIEW}</label></td>
+	<td><input name="pages_add" id="pages_add" type="checkbox" value="1" {pages_add_checked}></td>
+	<td>
+		<label for="pages_add">{TEXT_ADD}</label>
+		&nbsp;
+		(<input name="pages_add_l0" id="pages_add_l0" type="checkbox" value="1" {pages_add_l0_checked}>
+		<label for="pages_add_l0">{TEXT_LEVEL} 0</label>)
+	</td>
+</tr>
+<tr>
+	<td><input name="pages_settings" id="pages_settings" type="checkbox" value="1" {pages_settings_checked}></td>
+	<td><label for="pages_settings">{TEXT_MODIFY_SETTINGS}</label></td>
+	<td><input name="pages_modify" id="pages_modify" type="checkbox" value="1" {pages_modify_checked}></td>
+	<td><label for="pages_modify">{TEXT_MODIFY_CONTENT}</label></td>
+</tr>
+<tr>
+	<td><input name="pages_intro" id="pages_intro" type="checkbox" value="1" {pages_intro_checked}></td>
+	<td><label for="pages_intro">{HEADING_MODIFY_INTRO_PAGE}</label></td>
+	<td><input name="pages_delete" id="pages_delete" type="checkbox" value="1" {pages_delete_checked}></td>
+	<td><label for="pages_delete">{TEXT_DELETE}</label></td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_MEDIA}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="media_view" id="media_view" type="checkbox" value="1" {media_view_checked}></td>
+	<td><label for="media_view">{TEXT_VIEW}</label></td>
+	<td><input name="media_upload" id="media_upload" type="checkbox" value="1" {media_upload_checked}></td>
+	<td><label for="media_upload">{TEXT_UPLOAD_FILES}</label></td>
+</tr>
+<tr>
+	<td><input name="media_rename" id="media_rename" type="checkbox" value="1" {media_rename_checked}></td>
+	<td><label for="media_rename">{TEXT_RENAME}</label></td>
+	<td><input name="media_delete" id="media_delete" type="checkbox" value="1" {media_delete_checked}></td>
+	<td><label for="media_delete">{TEXT_DELETE}</label></td>
+</tr>
+<tr>
+	<td><input name="media_create" id="media_create" type="checkbox" value="1" {media_create_checked}></td>
+	<td><label for="media_create">{TEXT_CREATE_FOLDER}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_MODULES}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="modules_view" id="modules_view" type="checkbox" value="1" {modules_view_checked}></td>
+	<td><label for="modules_view">{TEXT_VIEW}</label></td>
+	<td><input name="modules_install" id="modules_install" type="checkbox" value="1" {modules_install_checked}></td>
+	<td><label for="modules_install">{TEXT_ADD}</label></td>
+</tr>
+<tr>
+	<td><input name="modules_uninstall" id="modules_uninstall" type="checkbox" value="1" {modules_uninstall_checked}></td>
+	<td><label for="modules_uninstall">{TEXT_DELETE}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_TEMPLATES}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="templates_view" id="templates_view" type="checkbox" value="1" {templates_view_checked}></td>
+	<td><label for="templates_view">{TEXT_VIEW}</label></td>
+	<td><input name="templates_install" id="templates_install" type="checkbox" value="1" {templates_install_checked}></td>
+	<td><label for="templates_install">{TEXT_ADD}</label></td>
+</tr>
+<tr>
+	<td><input name="templates_uninstall" id="templates_uninstall" type="checkbox" value="1" {templates_uninstall_checked}></td>
+	<td><label for="templates_uninstall">{TEXT_DELETE}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_LANGUAGES}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="languages_view" id="languages_view" type="checkbox" value="1" {languages_view_checked}></td>
+	<td><label for="languages_view">{TEXT_VIEW}</label></td>
+	<td><input name="languages_install" id="languages_install" type="checkbox" value="1" {languages_install_checked}></td>
+	<td><label for="languages_install">{TEXT_ADD}</label></td>
+</tr>
+<tr>
+	<td><input name="languages_uninstall" id="languages_uninstall" type="checkbox" value="1" {languages_uninstall_checked}></td>
+	<td><label for="languages_uninstall">{TEXT_DELETE}</label></td>
+	<td>&nbsp;</td>
+	<td>&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_SETTINGS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="settings_basic" id="settings_basic" type="checkbox" value="1" {settings_basic_checked}></td>
+	<td><label for="settings_basic">{TEXT_BASIC}</label></td>
+	<td><input name="settings_advanced" id="settings_advanced" type="checkbox" value="1" {settings_advanced_checked}></td>
+	<td><label for="settings_advanced">{TEXT_ADVANCED}</label></td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_USERS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="users_view" id="users_view" type="checkbox" value="1" {users_view_checked}></td>
+	<td><label for="users_view">{TEXT_VIEW}</label></td>
+	<td><input name="users_add" id="users_add" type="checkbox" value="1" {users_add_checked}></td>
+	<td><label for="users_add">{TEXT_ADD}</label></td>
+</tr>
+<tr>
+	<td><input name="users_modify" id="users_modify" type="checkbox" value="1" {users_modify_checked}></td>
+	<td><label for="users_modify">{TEXT_MODIFY}</label></td>
+	<td><input name="users_delete" id="users_delete" type="checkbox" value="1" {users_delete_checked}></td>
+	<td><label for="users_delete">{TEXT_DELETE}</label></td>
+</tr>
+<tr>
+	<td colspan="4">
+		<h3>{SECTION_GROUPS}</h3>
+	</td>
+</tr>
+<tr>
+	<td><input name="groups_view" id="groups_view" type="checkbox" value="1" {groups_view_checked}></td>
+	<td><label for="groups_view">{TEXT_VIEW}</label></td>
+	<td><input name="groups_add" id="groups_add" type="checkbox" value="1" {groups_add_checked}></td>
+	<td><label for="groups_add">{TEXT_ADD}</label></td>
+</tr>
+<tr>
+	<td><input name="groups_modify" id="groups_modify" type="checkbox" value="1" {groups_modify_checked}></td>
+	<td><label for="groups_modify">{TEXT_MODIFY}</label></td>
+	<td><input name="groups_delete" id="groups_delete" type="checkbox" value="1" {groups_delete_checked}></td>
+	<td><label for="groups_delete">{TEXT_DELETE}</label></td>
+</tr>
+</table>
+
+
+	</td>
+</tr>
+</table>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%" style="padding-top: 5px; padding-bottom: 5px;">
+<tr>
+	<td valign="top" align="left" width="150">
+	{TEXT_MODULE_PERMISSIONS}:
+	</td>
+	<td valign="top" align="left">
+		<ul style="margin: 0; padding: 0; list-style: none;">
+			<!-- BEGIN module_list_block -->
+			<li>
+				<input type="checkbox" name="module_permissions[]" id="m_{VALUE}" value="{VALUE}" {CHECKED} />
+				<label for="m_{VALUE}">{NAME}</label>
+			</li>
+			<!-- END module_list_block -->
+		</ul>
+	</td>
+	<td valign="top" align="left" width="150">
+	{TEXT_TEMPLATE_PERMISSIONS}:
+	</td>
+	<td valign="top" align="left">
+		<ul style="margin: 0; padding: 0; list-style: none;">
+			<!-- BEGIN template_list_block -->
+			<li>
+				<input type="checkbox" name="template_permissions[]" id="t_{VALUE}" value="{VALUE}" {CHECKED} />
+				<label for="t_{VALUE}">{NAME}</label>
+			</li>
+			<!-- END template_list_block -->
+		</ul>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="5" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="150">&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="{SUBMIT_TITLE}" />
+		<input type="reset" name="reset" value="{TEXT_RESET}" />
+		</form>
+	</td>
+	<form name="advanced" action="{ADVANED_ACTION}" method="post">
+	<input type="hidden" name="group_id" value="{GROUP_ID}" />
+	<input type="hidden" name="action" value="modify" />
+	<td width="200" align="right">
+		<input type="submit" name="advanced" onclick="window.location = '{ADVANCED_LINK}';" value="{ADVANCED_BUTTON}" />
+	</td>
+	</form>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/group_form.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/get_permissions.php
===================================================================
--- tags/2.7.0/wb/admin/groups/get_permissions.php	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/get_permissions.php	(revision 838)
@@ -0,0 +1,247 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_PATH')) { exit('Direct access to this file is not allowed'); }
+
+// Get system permissions
+if($admin->get_post('advanced') != 'yes') {
+	$system_permissions['pages'] = $admin->get_post('pages');
+		$system_permissions['pages_view'] = $system_permissions['pages'];
+		$system_permissions['pages_add'] = $system_permissions['pages'];
+		$system_permissions['pages_add_l0'] = $system_permissions['pages'];
+		$system_permissions['pages_settings'] = $system_permissions['pages'];
+		$system_permissions['pages_modify'] = $system_permissions['pages'];
+		$system_permissions['pages_intro'] = $system_permissions['pages'];
+		$system_permissions['pages_delete'] = $system_permissions['pages'];
+	$system_permissions['media'] = $admin->get_post('media');
+		$system_permissions['media_view'] = $system_permissions['media'];
+		$system_permissions['media_upload'] = $system_permissions['media'];
+		$system_permissions['media_rename'] = $system_permissions['media'];
+		$system_permissions['media_delete'] = $system_permissions['media'];
+		$system_permissions['media_create'] = $system_permissions['media'];
+	if($admin->get_post('modules') != '' OR $admin->get_post('templates') != '' OR $admin->get_post('languages') != '') {
+		$system_permissions['addons'] = 1;
+	} else {
+		$system_permissions['addons'] = 0;
+	}
+		$system_permissions['modules'] = $admin->get_post('modules');
+			$system_permissions['modules_view'] = $system_permissions['modules'];
+			$system_permissions['modules_install'] = $system_permissions['modules'];
+			$system_permissions['modules_uninstall'] = $system_permissions['modules'];
+		$system_permissions['templates'] = $admin->get_post('templates');
+			$system_permissions['templates_view'] = $system_permissions['templates'];
+			$system_permissions['templates_install'] = $system_permissions['templates'];
+			$system_permissions['templates_uninstall'] = $system_permissions['templates'];
+		$system_permissions['languages'] = $admin->get_post('languages');
+			$system_permissions['languages_view'] = $system_permissions['languages'];
+			$system_permissions['languages_install'] = $system_permissions['languages'];
+			$system_permissions['languages_uninstall'] = $system_permissions['languages'];
+	$system_permissions['settings'] = $admin->get_post('settings');
+		$system_permissions['settings_basic'] = $system_permissions['settings'];
+		$system_permissions['settings_advanced'] = $system_permissions['settings'];
+	if($admin->get_post('users') != '' AND $admin->get_post('groups') != '') {
+		$system_permissions['access'] = 1;
+	} else {
+		$system_permissions['access'] = 0;
+	}
+	$system_permissions['users'] = $admin->get_post('users');
+	$system_permissions['users_view'] = $system_permissions['users'];
+	$system_permissions['users_add'] = $system_permissions['users'];
+	$system_permissions['users_modify'] = $system_permissions['users'];
+	$system_permissions['users_delete'] = $system_permissions['users'];
+	$system_permissions['groups'] = $admin->get_post('groups');
+	$system_permissions['groups_view'] = $system_permissions['groups'];
+	$system_permissions['groups_add'] = $system_permissions['groups'];
+	$system_permissions['groups_modify'] = $system_permissions['groups'];
+	$system_permissions['groups_delete'] = $system_permissions['groups'];
+	$system_permissions['admintools'] = $admin->get_post('admintools');
+} else {
+	// Pages
+	$system_permissions['pages_view'] = $admin->get_post('pages_view');
+		$system_permissions['pages_add'] = $admin->get_post('pages_add');
+	if($admin->get_post('pages_add') != 1 AND $admin->get_post('pages_add_l0') == 1) {
+		$system_permissions['pages_add'] = $admin->get_post('pages_add_l0');
+	}
+	$system_permissions['pages_add_l0'] = $admin->get_post('pages_add_l0');
+	$system_permissions['pages_settings'] = $admin->get_post('pages_settings');
+	$system_permissions['pages_modify'] = $admin->get_post('pages_modify');
+	$system_permissions['pages_intro'] = $admin->get_post('pages_intro');
+	$system_permissions['pages_delete'] = $admin->get_post('pages_delete');
+	if($system_permissions['pages_view'] == 1 OR $system_permissions['pages_add'] == 1 OR $system_permissions['pages_settings'] == 1 OR $system_permissions['pages_modify'] == 1 OR $system_permissions['pages_intro'] == 1 OR $system_permissions['pages_delete'] == 1) {
+		$system_permissions['pages'] = 1;
+	} else {
+		$system_permissions['pages'] = '';
+	}
+	// Media
+	$system_permissions['media_view'] = $admin->get_post('media_view');
+	$system_permissions['media_upload'] = $admin->get_post('media_upload');
+	$system_permissions['media_rename'] = $admin->get_post('media_rename');
+	$system_permissions['media_delete'] = $admin->get_post('media_delete');
+	$system_permissions['media_create'] = $admin->get_post('media_create');
+	if($system_permissions['media_view'] == 1 OR $system_permissions['media_upload'] == 1 OR $system_permissions['media_rename'] == 1 OR $system_permissions['media_delete'] == 1 OR $system_permissions['media_create'] == 1) {
+		$system_permissions['media'] = 1;
+	} else {
+		$system_permissions['media'] = '';
+	}
+	// Add-ons
+		// Modules
+		$system_permissions['modules_view'] = $admin->get_post('modules_view');
+		$system_permissions['modules_install'] = $admin->get_post('modules_install');
+		$system_permissions['modules_uninstall'] = $admin->get_post('modules_uninstall');
+		if($system_permissions['modules_view'] == 1 OR $system_permissions['modules_install'] == 1 OR $system_permissions['modules_uninstall'] == 1) {
+			$system_permissions['modules'] = 1;
+		} else {
+			$system_permissions['modules'] = '';
+		}
+		// Templates
+		$system_permissions['templates_view'] = $admin->get_post('templates_view');
+		$system_permissions['templates_install'] = $admin->get_post('templates_install');
+		$system_permissions['templates_uninstall'] = $admin->get_post('templates_uninstall');
+		if($system_permissions['templates_view'] == 1 OR $system_permissions['templates_install'] == 1 OR $system_permissions['templates_uninstall'] == 1) {
+			$system_permissions['templates'] = 1;
+		} else {
+			$system_permissions['templates'] = '';
+		}
+		// Languages
+		$system_permissions['languages_view'] = $admin->get_post('languages_view');
+		$system_permissions['languages_install'] = $admin->get_post('languages_install');
+		$system_permissions['languages_uninstall'] = $admin->get_post('languages_uninstall');
+		if($system_permissions['languages_install'] == 1 OR $system_permissions['languages_uninstall'] == 1) {
+			$system_permissions['languages'] = 1;
+		} else {
+			$system_permissions['languages'] = '';
+		}
+	if($system_permissions['modules'] == 1 OR $system_permissions['templates'] == 1 OR $system_permissions['languages'] == 1) {
+		$system_permissions['addons'] = 1;
+	} else {
+		$system_permissions['addons'] = '';
+	}
+	// Settings
+	$system_permissions['settings_basic'] = $admin->get_post('settings_basic');
+	$system_permissions['settings_advanced'] = $admin->get_post('settings_advanced');
+	if($system_permissions['settings_basic'] == 1 OR $system_permissions['settings_advanced'] == 1) {
+		$system_permissions['settings'] = 1;
+	} else {
+		$system_permissions['settings'] = '';
+	}
+	// Access
+		// Users
+		$system_permissions['users_view'] = $admin->get_post('users_view');
+		$system_permissions['users_add'] = $admin->get_post('users_add');
+		$system_permissions['users_modify'] = $admin->get_post('users_modify');
+		$system_permissions['users_delete'] = $admin->get_post('users_delete');
+		if($system_permissions['users_view'] == 1 OR $system_permissions['users_add'] == 1 OR $system_permissions['users_modify'] == 1 OR $system_permissions['users_delete'] == 1) {
+			$system_permissions['users'] = 1;
+		} else {
+			$system_permissions['users'] = '';
+		}
+		// Groups
+		$system_permissions['groups_view'] = $admin->get_post('groups_view');
+		$system_permissions['groups_add'] = $admin->get_post('groups_add');
+		$system_permissions['groups_modify'] = $admin->get_post('groups_modify');
+		$system_permissions['groups_delete'] = $admin->get_post('groups_delete');
+		if($system_permissions['groups_view'] == 1 OR $system_permissions['groups_add'] == 1 OR $system_permissions['groups_modify'] == 1 OR $system_permissions['groups_delete'] == 1) {
+			$system_permissions['groups'] = 1;
+		} else {
+			$system_permissions['groups'] = '';
+		}
+	if($system_permissions['users'] == 1 OR $system_permissions['groups'] == 1) {
+		$system_permissions['access'] = 1;
+	} else {
+		$system_permissions['access'] = '';
+	}
+}
+
+// Implode system permissions
+$imploded_system_permissions = '';
+foreach($system_permissions AS $name => $value) {
+	if($value == true) {
+		if($imploded_system_permissions == '') {
+			$imploded_system_permissions = $name;
+		} else {
+			$imploded_system_permissions .= ','.$name;
+		}
+	}
+}
+
+$system_permissions = $imploded_system_permissions;
+
+// Get module permissions
+$module_permissions = '';
+if($handle = opendir(WB_PATH.'/modules/')) {
+	while (false !== ($file = readdir($handle))) {
+		if($file != "." AND $file != ".." AND $file != ".svn" AND is_dir(WB_PATH."/modules/$file") AND file_exists(WB_PATH."/modules/$file/info.php")) {
+			// Include the modules info file
+			require(WB_PATH.'/modules/'.$file.'/info.php');
+			// Check if it was selected to be used or not
+			$count = 0;
+			if(is_array($admin->get_post('module_permissions'))) {
+				foreach($admin->get_post('module_permissions') AS $selected_name) {
+					if($file == $selected_name) {
+						$count = $count+1;
+					}
+				}
+			}
+			if($count == 0) {
+				// Add unselected modules to list
+				if($module_permissions == '') {
+					$module_permissions = $file;
+				} else {
+					$module_permissions .= ','.$file;
+				}
+			}
+		}
+	}
+}
+
+// Get template permissions
+$template_permissions = '';
+if($handle = opendir(WB_PATH.'/templates/')) {
+	while (false !== ($file = readdir($handle))) {
+		if($file != "." AND $file != ".." AND $file != ".svn" AND is_dir(WB_PATH."/templates/$file") AND file_exists(WB_PATH."/templates/$file/info.php")) {
+			// Include the modules info file
+			require(WB_PATH.'/templates/'.$file.'/info.php');
+			// Check if it was selected to be used or not
+			$count = 0;
+			if(is_array($admin->get_post('template_permissions'))) {
+				foreach($admin->get_post('template_permissions') AS $selected_name) {
+					if($file == $selected_name) {
+						$count = $count+1;
+					}
+				}
+			}
+			if($count == 0) {
+				// Add unselected modules to list
+				if($template_permissions == '') {
+					$template_permissions = $file;
+				} else {
+					$template_permissions .= ','.$file;
+				}
+			}
+		}
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/get_permissions.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/index.php
===================================================================
--- tags/2.7.0/wb/admin/groups/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/index.php	(revision 838)
@@ -0,0 +1,193 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'groups');
+
+// Create new template object for the modify/remove menu
+$template = new Template(ADMIN_PATH.'/groups');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var('ADMIN_URL', ADMIN_URL);
+
+// Get existing value from database
+$database = new database();
+$query = "SELECT group_id,name FROM ".TABLE_PREFIX."groups WHERE group_id != '1'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), 'index.php');
+}
+
+// Insert values into the modify/remove menu
+$template->set_block('main_block', 'list_block', 'list');
+if($results->numRows() > 0) {
+	// Insert first value to say please select
+	$template->set_var('VALUE', '');
+	$template->set_var('NAME', $TEXT['PLEASE_SELECT'].'...');
+	$template->parse('list', 'list_block', true);
+	// Loop through groups
+	while($group = $results->fetchRow()) {
+		$template->set_var('VALUE', $group['group_id']);
+		$template->set_var('NAME', $group['name']);
+		$template->parse('list', 'list_block', true);
+	}
+} else {
+	// Insert single value to say no groups were found
+	$template->set_var('NAME', $TEXT['NONE_FOUND']);
+	$template->parse('list', 'list_block', true);
+}
+
+// Insert permissions values
+if($admin->get_permission('groups_add') != true) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+}
+if($admin->get_permission('groups_modify') != true) {
+	$template->set_var('DISPLAY_MODIFY', 'hide');
+}
+if($admin->get_permission('groups_delete') != true) {
+	$template->set_var('DISPLAY_DELETE', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_MODIFY_DELETE_GROUP' => $HEADING['MODIFY_DELETE_GROUP'],
+								'HEADING_ADD_GROUP' => $HEADING['ADD_GROUP']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_MODIFY' => $TEXT['MODIFY'],
+								'TEXT_DELETE' => $TEXT['DELETE'],
+								'TEXT_MANAGE_USERS' => $TEXT['MANAGE_USERS'],
+								'CONFIRM_DELETE' => $MESSAGE['GROUPS']['CONFIRM_DELETE']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Setup template for add group form
+$template = new Template(ADMIN_PATH.'/groups');
+$template->set_file('page', 'group_form.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var('DISPLAY_EXTRA', 'none');
+$template->set_var('ACTION_URL', ADMIN_URL.'/groups/add.php');
+$template->set_var('SUBMIT_TITLE', $TEXT['ADD']);
+$template->set_var('ADVANCED_ACTION', 'index.php');
+
+// Tell the browser whether or not to show advanced options
+if(isset($_POST['advanced']) AND $_POST['advanced'] == $TEXT['SHOW_ADVANCED'].' >>') {
+	$template->set_var('DISPLAY_ADVANCED', '');
+	$template->set_var('DISPLAY_BASIC', 'none');
+	$template->set_var('ADVANCED', 'yes');
+	$template->set_var('ADVANCED_BUTTON', '<< '.$TEXT['HIDE_ADVANCED']);
+} else {
+	$template->set_var('DISPLAY_ADVANCED', 'none');
+	$template->set_var('DISPLAY_BASIC', '');
+	$template->set_var('ADVANCED', 'no');
+	$template->set_var('ADVANCED_BUTTON', $TEXT['SHOW_ADVANCED'].' >>');
+}
+
+// Insert permissions values
+if($admin->get_permission('groups_add') != true) {
+	$template->set_var('DISPLAY_ADD', 'hide');
+}
+
+// Insert values into module list
+$template->set_block('main_block', 'module_list_block', 'module_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'page'");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('module_list', 'module_list_block', true);
+	}
+}
+
+// Insert values into template list
+$template->set_block('main_block', 'template_list_block', 'template_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('template_list', 'template_list_block', true);
+	}
+}
+
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_RESET' => $TEXT['RESET'],
+								'TEXT_ACTIVE' => $TEXT['ACTIVE'],
+								'TEXT_DISABLED' => $TEXT['DISABLED'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+								'TEXT_USERNAME' => $TEXT['USERNAME'],
+								'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+								'TEXT_RETYPE_PASSWORD' => $TEXT['RETYPE_PASSWORD'],
+								'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+								'TEXT_EMAIL' => $TEXT['EMAIL'],
+								'TEXT_GROUP' => $TEXT['GROUP'],
+								'TEXT_SYSTEM_PERMISSIONS' => $TEXT['SYSTEM_PERMISSIONS'],
+								'TEXT_MODULE_PERMISSIONS' => $TEXT['MODULE_PERMISSIONS'],
+								'TEXT_TEMPLATE_PERMISSIONS' => $TEXT['TEMPLATE_PERMISSIONS'],
+								'TEXT_NAME' => $TEXT['NAME'],
+								'SECTION_PAGES' => $MENU['PAGES'],
+								'SECTION_MEDIA' => $MENU['MEDIA'],
+								'SECTION_MODULES' => $MENU['MODULES'],
+								'SECTION_TEMPLATES' => $MENU['TEMPLATES'],
+								'SECTION_SETTINGS' => $MENU['SETTINGS'],
+								'SECTION_LANGUAGES' => $MENU['LANGUAGES'],
+								'SECTION_USERS' => $MENU['USERS'],
+								'SECTION_GROUPS' => $MENU['GROUPS'],
+								'SECTION_ADMINTOOLS' => $MENU['ADMINTOOLS'],
+								'TEXT_VIEW' => $TEXT['VIEW'],
+								'TEXT_ADD' => $TEXT['ADD'],
+								'TEXT_LEVEL' => $TEXT['LEVEL'],
+								'TEXT_MODIFY' => $TEXT['MODIFY'],
+								'TEXT_DELETE' => $TEXT['DELETE'],
+								'TEXT_MODIFY_CONTENT' => $TEXT['MODIFY_CONTENT'],
+								'TEXT_MODIFY_SETTINGS' => $TEXT['MODIFY_SETTINGS'],
+								'HEADING_MODIFY_INTRO_PAGE' => $HEADING['MODIFY_INTRO_PAGE'],
+								'TEXT_CREATE_FOLDER' => $TEXT['CREATE_FOLDER'],
+								'TEXT_RENAME' => $TEXT['RENAME'],
+								'TEXT_UPLOAD_FILES' => $TEXT['UPLOAD_FILES'],
+								'TEXT_BASIC' => $TEXT['BASIC'],
+								'TEXT_ADVANCED' => $TEXT['ADVANCED'],
+								'CHANGING_PASSWORD' => $MESSAGE['USERS']['CHANGING_PASSWORD'],
+								'CHECKED' => 'checked'
+								)
+						);
+
+// Parse template for add group form
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print the admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/add.php
===================================================================
--- tags/2.7.0/wb/admin/groups/add.php	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/add.php	(revision 838)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'groups_add');
+
+// Create new database object
+$database = new database();
+
+// Gather details entered
+$group_name = $admin->get_post('group_name');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Check values
+if($group_name == "") {
+	$admin->print_error($MESSAGE['GROUPS']['GROUP_NAME_BLANK'], $js_back);
+}
+$results = $database->query("SELECT * FROM ".TABLE_PREFIX."groups WHERE name = '$group_name'");  
+if($results->numRows()>0) {
+	$admin->print_error($MESSAGE['GROUPS']['GROUP_NAME_EXISTS'], $js_back);  
+}
+
+// Get system and module permissions
+require(ADMIN_PATH.'/groups/get_permissions.php');
+
+// Update the database
+$query = "INSERT INTO ".TABLE_PREFIX."groups (name,system_permissions,module_permissions,template_permissions) VALUES ('$group_name','$system_permissions','$module_permissions','$template_permissions')";
+
+$database->query($query);
+if($database->is_error()) {
+	$admin->print_error($database->get_error());
+} else {
+	$admin->print_success($MESSAGE['GROUPS']['ADDED'], ADMIN_URL.'/groups/index.php');
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/groups/template.html
===================================================================
--- tags/2.7.0/wb/admin/groups/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/groups/template.html	(revision 838)
@@ -0,0 +1,35 @@
+<!-- BEGIN main_block -->
+
+<form name="groups" action="groups.php" method="post">
+
+<input type="hidden" name="action" value="delete" />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<h2>{HEADING_MODIFY_DELETE_GROUP}</h2>
+	</td>
+	<td align="right">
+		<a href="{ADMIN_URL}/users/index.php">{TEXT_MANAGE_USERS}</a>
+	</td>
+</tr>
+</table>
+
+<br />
+
+<select name="group_id" style="width: 500px;">
+<!-- BEGIN list_block -->
+	<option value="{VALUE}">{NAME}</option>
+<!-- END list_block -->
+</select>
+
+<input type="submit" name="modify" style="width: 100px;" value="{TEXT_MODIFY}" onclick="document.groups.action.value = 'modify';" class="{DISPLAY_MODIFY}" />
+<input type="submit" name="delete" style="width: 100px;" value="{TEXT_DELETE}" onclick="return confirm('{CONFIRM_DELETE}');" class="{DISPLAY_DELETE}" />
+
+</form>
+
+<br />
+
+<h2 class="{DISPLAY_ADD}">{HEADING_ADD_GROUP}</h2>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/groups/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/start/index.php
===================================================================
--- tags/2.7.0/wb/admin/start/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/start/index.php	(revision 838)
@@ -0,0 +1,135 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Start','start');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/start');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into the template object
+$template->set_var(array(
+								'WELCOME_MESSAGE' => $MESSAGE['START']['WELCOME_MESSAGE'],
+								'CURRENT_USER' => $MESSAGE['START']['CURRENT_USER'],
+								'DISPLAY_NAME' => $admin->get_display_name(),
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL,
+								'WB_VERSION' => WB_VERSION
+								)
+						);
+
+// Insert permission values into the template object
+if($admin->get_permission('pages') != true) {
+	$template->set_var('DISPLAY_PAGES', 'none');
+}
+if($admin->get_permission('media') != true) {
+	$template->set_var('DISPLAY_MEDIA', 'none');
+}
+if($admin->get_permission('addons') != true) {
+	$template->set_var('DISPLAY_ADDONS', 'none');
+}
+if($admin->get_permission('access') != true) {
+	$template->set_var('DISPLAY_ACCESS', 'none');
+}
+if($admin->get_permission('settings') != true) {
+	$template->set_var('DISPLAY_SETTINGS', 'none');
+}
+if($admin->get_permission('admintools') != true) {
+	$template->set_var('DISPLAY_ADMINTOOLS', 'none');
+}
+
+// Check if installation directory still exists
+if(file_exists(WB_PATH.'/install/')) {
+	// Check if user is part of Adminstrators group
+	if(in_array(1, $admin->get_groups_id())) {
+		$template->set_var('WARNING', $MESSAGE['START']['INSTALL_DIR_EXISTS']);
+	} else {
+		$template->set_var('DISPLAY_WARNING', 'none');
+	}
+} else {
+	$template->set_var('DISPLAY_WARNING', 'none');
+}
+
+// Insert "Add-ons" section overview (pretty complex compared to normal)
+$addons_overview = $TEXT['MANAGE'].' ';
+$addons_count = 0;
+if($admin->get_permission('modules') == true) {
+	$addons_overview .= '<a href="'.ADMIN_URL.'/modules/index.php">'.$MENU['MODULES'].'</a>';
+	$addons_count = 1;
+}
+if($admin->get_permission('templates') == true) {
+	if($addons_count == 1) { $addons_overview .= ', '; }
+	$addons_overview .= '<a href="'.ADMIN_URL.'/templates/index.php">'.$MENU['TEMPLATES'].'</a>';
+	$addons_count = 1;
+}
+if($admin->get_permission('languages') == true) {
+	if($addons_count == 1) { $addons_overview .= ', '; }
+	$addons_overview .= '<a href="'.ADMIN_URL.'/languages/index.php">'.$MENU['LANGUAGES'].'</a>';
+}
+
+// Insert "Access" section overview (pretty complex compared to normal)
+$access_overview = $TEXT['MANAGE'].' ';
+$access_count = 0;
+if($admin->get_permission('users') == true) {
+	$access_overview .= '<a href="'.ADMIN_URL.'/users/index.php">'.$MENU['USERS'].'</a>';
+	$access_count = 1;
+}
+if($admin->get_permission('groups') == true) {
+	if($access_count == 1) { $access_overview .= ', '; }
+	$access_overview .= '<a href="'.ADMIN_URL.'/groups/index.php">'.$MENU['GROUPS'].'</a>';
+	$access_count = 1;
+}
+
+// Insert section names and descriptions
+$template->set_var(array(
+								'PAGES' => $MENU['PAGES'],
+								'MEDIA' => $MENU['MEDIA'],
+								'ADDONS' => $MENU['ADDONS'],
+								'ACCESS' => $MENU['ACCESS'],
+								'PREFERENCES' => $MENU['PREFERENCES'],
+								'SETTINGS' => $MENU['SETTINGS'],
+								'ADMINTOOLS' => $MENU['ADMINTOOLS'],
+								'HOME_OVERVIEW' => $OVERVIEW['START'],
+								'PAGES_OVERVIEW' => $OVERVIEW['PAGES'],
+								'MEDIA_OVERVIEW' => $OVERVIEW['MEDIA'],
+								'ADDONS_OVERVIEW' => $addons_overview,
+								'ACCESS_OVERVIEW' => $access_overview,
+								'PREFERENCES_OVERVIEW' => $OVERVIEW['PREFERENCES'],
+								'SETTINGS_OVERVIEW' => $OVERVIEW['SETTINGS'],
+								'ADMINTOOLS_OVERVIEW' => $OVERVIEW['ADMINTOOLS']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/start/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/start/template.html
===================================================================
--- tags/2.7.0/wb/admin/start/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/start/template.html	(revision 838)
@@ -0,0 +1,190 @@
+<!-- BEGIN main_block -->
+
+<style type="text/css">
+.section {
+	margin-top: 10px;
+	padding: 0px;
+	border: 1px solid #999999;
+	height: 75px;
+	width: 100%;
+	background-color: #FDFDFD;
+}
+.graphic {
+	width: 50px;
+	height: 50px;
+	border: 4px solid #FDFDFD;
+	padding-left: 3px;
+}
+.graphic img {
+	vertical-align: middle;
+	background-color: #FFFFFF;
+	padding: 4px;
+	border: 1px solid #D0D0D0;
+}
+.title {
+	text-align: left;
+	font-weight: bold;
+	font-size: 14px;
+	color: #003366;
+	height: 16px;
+	padding: 4px 0px 0px 3px;
+}
+.description {
+	vertical-align: top;
+	text-align: left;
+	width: 240px;
+	padding: 0px 0px 0px 3px;
+}
+</style>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td colspan="3" align="center">
+		{WELCOME_MESSAGE}. {CURRENT_USER} {DISPLAY_NAME}
+	</td>
+</tr>
+<tr style="display: {DISPLAY_WARNING};">
+	<td colspan="3" align="center" style="color: #FF0000; font-weight: bold;">
+		{WARNING}
+	</td>
+</tr>
+<tr>
+	<td align="center" valign="top">
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_PAGES};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/pages/index.php">
+					<img src="{ADMIN_URL}/images/icons/pages.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/pages/index.php">{PAGES}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{PAGES_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_ADDONS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/addons/index.php">
+					<img src="{ADMIN_URL}/images/icons/addons.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/addons/index.php">{ADDONS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{ADDONS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_SETTINGS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/settings/index.php">
+					<img src="{ADMIN_URL}/images/icons/settings.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/settings/index.php">{SETTINGS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{SETTINGS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_ACCESS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/access/index.php">
+					<img src="{ADMIN_URL}/images/icons/access.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/access/index.php">{ACCESS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{ACCESS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+	</td>
+	<td width="15">
+		&nbsp;
+	</td>
+	<td align="center" valign="top">
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_MEDIA};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/media/index.php">
+					<img src="{ADMIN_URL}/images/icons/media.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/media/index.php">{MEDIA}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{MEDIA_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+		<table cellpadding="0" cellspacing="0" border="0" class="section">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/preferences/index.php">
+					<img src="{ADMIN_URL}/images/icons/preferences.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/preferences/index.php">{PREFERENCES}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{PREFERENCES_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_ADMINTOOLS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/admintools/index.php">
+					<img src="{ADMIN_URL}/images/icons/admintools.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/admintools/index.php">{ADMINTOOLS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{ADMINTOOLS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/start/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/details.php
===================================================================
--- tags/2.7.0/wb/admin/languages/details.php	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/details.php	(revision 838)
@@ -0,0 +1,90 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the config code
+require('../../config.php');
+
+// Get language name
+if(!isset($_POST['code']) OR $_POST['code'] == "") {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$code = $_POST['code'];
+}
+
+// Check if the language exists
+if(!file_exists(WB_PATH.'/languages/'.$code.'.php')) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Print admin header
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'languages_view');
+
+// Setup language object
+$template = new Template(ADMIN_PATH.'/languages');
+$template->set_file('page', 'details.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values
+require(WB_PATH.'/languages/'.$code.'.php');
+$template->set_var(array(
+								'CODE' => $language_code,
+								'NAME' => $language_name,
+								'AUTHOR' => $language_author,
+								'VERSION' => $language_version,
+								'DESIGNED_FOR' => $language_platform
+								)
+						);
+
+// Restore language to original code
+require(WB_PATH.'/languages/'.LANGUAGE.'.php');
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_LANGUAGE_DETAILS' => $HEADING['LANGUAGE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_CODE' => $TEXT['CODE'],
+								'TEXT_NAME' => $TEXT['NAME'],
+								'TEXT_TYPE' => $TEXT['TYPE'],
+								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
+								'TEXT_VERSION' => $TEXT['VERSION'],
+								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
+								'TEXT_BACK' => $TEXT['BACK']
+								)
+						);
+
+// Parse language object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/details.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/uninstall.php
===================================================================
--- tags/2.7.0/wb/admin/languages/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/uninstall.php	(revision 838)
@@ -0,0 +1,75 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check if user selected language
+if(!isset($_POST['code']) OR $_POST['code'] == "") {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Extra protection
+if(trim($_POST['code']) == '') {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'languages_uninstall');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Check if the language exists
+if(!file_exists(WB_PATH.'/languages/'.$_POST['code'].'.php')) {
+	$admin->print_error($MESSAGE['GENERIC']['NOT_INSTALLED']);
+}
+
+// Check if the language is in use
+if($_POST['code'] == DEFAULT_LANGUAGE OR $_POST['code'] == LANGUAGE) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+} else {
+	$query_users = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE language = '".$admin->add_slashes($_POST['code'])."' LIMIT 1");
+	if($query_users->numRows() > 0) {
+		$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+	}
+}
+
+// Try to delete the language code
+if(!unlink(WB_PATH.'/languages/'.$_POST['code'].'.php')) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+} else {
+	// Remove entry from DB
+	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$_POST['code']."' AND type = 'language'");
+}
+
+// Print success message
+$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/install.php
===================================================================
--- tags/2.7.0/wb/admin/languages/install.php	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/install.php	(revision 838)
@@ -0,0 +1,112 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check if user uploaded a file
+if(!isset($_FILES['userfile'])) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'languages_install');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Create temp string
+$temp_string = '';
+$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+srand((double)microtime()*1000000);
+$i = 0;
+while ($i <= 7) {
+	$num = rand() % 33;
+	$tmp = substr($salt, $num, 1);
+	$temp_string = $temp_string . $tmp;
+	$i++;
+}
+
+// Set temp vars
+$temp_dir = WB_PATH.'/temp/';
+$temp_file = $temp_dir . 'language'.$temp_string;
+
+// Check if language dir is writable
+if(!is_writable(WB_PATH.'/languages/')) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['GENERIC']['BAD_PERMISSIONS']);
+}
+
+// Try to upload the file to the temp dir
+if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UPLOAD']);
+}
+
+// Remove any vars with name "language_code"
+unset($language_code);
+
+// Read the temp file and look for a language code
+require($temp_file);
+$new_language_version=$language_version;
+
+// Check if the file is valid
+if(!isset($language_code)) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	// Restore to correct language
+	require(WB_PATH.'/languages/'.LANGUAGE.'.php');
+	$admin->print_error($MESSAGE['GENERIC']['INVALID']);
+}
+
+// Set destination for language file
+$language_file = WB_PATH.'/languages/'.$language_code.'.php';
+
+// Move to new location
+if (file_exists($language_file)) {
+	require($language_file);
+	if ($language_version>$new_language_version) {
+		$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+	}
+	unlink($language_file);
+}
+
+rename($temp_file, $language_file);
+
+// Chmod the file
+change_mode($language_file, 'file');
+
+// Load language info into DB
+load_language($language_file);
+
+// Restore to correct language
+require(WB_PATH.'/languages/'.LANGUAGE.'.php');
+
+// Print success message
+$admin->print_success($MESSAGE['GENERIC']['INSTALLED']);
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/index.php
===================================================================
--- tags/2.7.0/wb/admin/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/index.php	(revision 838)
@@ -0,0 +1,81 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'languages');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/languages');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into language list
+$template->set_block('main_block', 'language_list_block', 'language_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name'].' ('.$addon['directory'].')');
+		$template->parse('language_list', 'language_list_block', true);
+	}
+}
+
+// Insert permissions values
+if($admin->get_permission('languages_install') != true) {
+	$template->set_var('DISPLAY_INSTALL', 'hide');
+}
+if($admin->get_permission('languages_uninstall') != true) {
+	$template->set_var('DISPLAY_UNINSTALL', 'hide');
+}
+if($admin->get_permission('languages_view') != true) {
+	$template->set_var('DISPLAY_LIST', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_INSTALL_LANGUAGE' => $HEADING['INSTALL_LANGUAGE'],
+								'HEADING_UNINSTALL_LANGUAGE' => $HEADING['UNINSTALL_LANGUAGE'],
+								'HEADING_LANGUAGE_DETAILS' => $HEADING['LANGUAGE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_INSTALL' => $TEXT['INSTALL'],
+								'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
+								'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/template.html
===================================================================
--- tags/2.7.0/wb/admin/languages/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/template.html	(revision 838)
@@ -0,0 +1,71 @@
+<!-- BEGIN main_block -->
+
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+
+<h2>{HEADING_INSTALL_LANGUAGE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<input type="file" name="userfile" size="82%" />
+		<script language="javascript" type="text/javascript">
+		document.install.userfile.focus();
+		</script>
+	</td>
+	<td width="110" align="left">
+		<input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+
+<h2>{HEADING_UNINSTALL_LANGUAGE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="code" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN language_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END language_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_UNINSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="details" action="details.php" method="post" class="{DISPLAY_LIST}">
+
+<h2>{HEADING_LANGUAGE_DETAILS}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="code" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN language_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END language_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_VIEW_DETAILS}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/languages/details.html
===================================================================
--- tags/2.7.0/wb/admin/languages/details.html	(nonexistent)
+++ tags/2.7.0/wb/admin/languages/details.html	(revision 838)
@@ -0,0 +1,32 @@
+<!-- BEGIN main_block -->
+
+<h2>{HEADING_LANGUAGE_DETAILS}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0">
+<tr>
+	<td width="100">{TEXT_NAME}:</td>
+	<td>{NAME}</td>
+</tr>
+<tr>
+	<td>{TEXT_CODE}:</td>
+	<td>{CODE}</td>
+</tr>
+<tr>
+	<td>{TEXT_AUTHOR}:</td>
+	<td>{AUTHOR}</td>
+</tr>
+<tr>
+	<td>{TEXT_VERSION}:</td>
+	<td>{VERSION}</td>
+</tr>
+<tr>
+	<td>{TEXT_DESIGNED_FOR}:</td>
+	<td>Website Baker {DESIGNED_FOR}</td>
+</tr>
+</table>
+
+<br />
+
+<button onclick="window.location = 'index.php';">{TEXT_BACK}</button>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/languages/details.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/logout/index.php
===================================================================
--- tags/2.7.0/wb/admin/logout/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/logout/index.php	(revision 838)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require("../../config.php");
+
+if(isset($_COOKIE['REMEMBER_KEY'])) {
+	setcookie('REMEMBER_KEY', '', time()-3600, '/');
+}
+
+$_SESSION['USER_ID'] = null;
+$_SESSION['GROUP_ID'] = null;
+$_SESSION['GROUPS_ID'] = null;
+$_SESSION['USERNAME'] = null;
+$_SESSION['PAGE_PERMISSIONS'] = null;
+$_SESSION['SYSTEM_PERMISSIONS'] = null;
+$_SESSION = array();
+session_unset();
+unset($_COOKIE[session_name()]);
+session_destroy();
+
+header("Location: ".ADMIN_URL."/login/index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/logout/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/index.php
===================================================================
--- tags/2.7.0/wb/admin/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/index.php	(revision 838)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file
+if(!defined('WB_URL')) {
+	require('../config.php');
+}
+
+// Check if the config file has been set-up
+if(!defined('WB_PATH')) {
+	header("Location: ../install/index.php");
+} else {
+	header('Location: '.ADMIN_URL.'/start/index.php');
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/uninstall.php
===================================================================
--- tags/2.7.0/wb/admin/templates/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/uninstall.php	(revision 838)
@@ -0,0 +1,86 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check if user selected template
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$file = $_POST['file'];
+}
+
+// Extra protection
+if(trim($file) == '') {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'templates_uninstall');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Check if the template exists
+if(!is_dir(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC']['NOT_INSTALLED']);
+}
+
+// Check if the template is in use
+if($_POST['file'] == DEFAULT_TEMPLATE) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+} else {
+	$query_templates = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE template = '".$admin->add_slashes($_POST['file'])."' LIMIT 1");
+	if($query_templates->numRows() > 0) {
+		$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE']);
+	}
+}
+
+// Check if we have permissions on the directory
+if(!is_writable(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL'].WB_PATH.'/templates/'.$file);
+}
+
+// Try to delete the template dir
+if(!rm_full_dir(WB_PATH.'/templates/'.$file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNINSTALL']);
+} else {
+	// Remove entry from DB
+	$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE directory = '".$file."' AND type = 'template'");
+}
+
+// Update pages that use this template with default template
+$database = new database();
+$database->query("UPDATE ".TABLE_PREFIX."pages SET template = '".DEFAULT_TEMPLATE."' WHERE template = '$file'");
+
+// Print success message
+$admin->print_success($MESSAGE['GENERIC']['UNINSTALLED']);
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/details.php
===================================================================
--- tags/2.7.0/wb/admin/templates/details.php	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/details.php	(revision 838)
@@ -0,0 +1,90 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the config file
+require('../../config.php');
+
+// Get template name
+if(!isset($_POST['file']) OR $_POST['file'] == "") {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$file = $_POST['file'];
+}
+
+// Check if the template exists
+if(!file_exists(WB_PATH.'/templates/'.$file)) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Print admin header
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'templates_view');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/templates');
+$template->set_file('page', 'details.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' AND directory = '$file'");
+if($result->numRows() > 0) {
+	$row = $result->fetchRow();
+}
+
+$template->set_var(array(
+								'NAME' => $row['name'],
+								'AUTHOR' => $row['author'],
+								'DESCRIPTION' => $row['description'],
+								'VERSION' => $row['version'],
+								'DESIGNED_FOR' => $row['platform']
+								)
+						);
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_TEMPLATE_DETAILS' => $HEADING['TEMPLATE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_NAME' => $TEXT['NAME'],
+								'TEXT_AUTHOR' => $TEXT['AUTHOR'],
+								'TEXT_VERSION' => $TEXT['VERSION'],
+								'TEXT_DESIGNED_FOR' => $TEXT['DESIGNED_FOR'],
+								'TEXT_DESCRIPTION' => $TEXT['DESCRIPTION'],
+								'TEXT_BACK' => $TEXT['BACK']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/details.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/install.php
===================================================================
--- tags/2.7.0/wb/admin/templates/install.php	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/install.php	(revision 838)
@@ -0,0 +1,132 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check if user uploaded a file
+if(!isset($_FILES['userfile'])) {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Setup admin object
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'templates_install');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Set temp vars
+$temp_dir = WB_PATH.'/temp/';
+$temp_file = $temp_dir . $_FILES['userfile']['name'];
+$temp_unzip = WB_PATH.'/temp/unzip/';
+
+// Try to upload the file to the temp dir
+if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UPLOAD']);
+}
+
+// Include the PclZip class file (thanks to 
+require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
+
+// Remove any vars with name "template_directory"
+unset($template_directory);
+
+// Setup the PclZip object
+$archive = new PclZip($temp_file);
+// Unzip the files to the temp unzip folder
+$list = $archive->extract(PCLZIP_OPT_PATH, $temp_unzip);
+// Include the templates info file
+require($temp_unzip.'info.php');
+// Delete the temp unzip directory
+rm_full_dir($temp_unzip);
+
+// Check if the file is valid
+if(!isset($template_directory)) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['GENERIC']['INVALID']);
+}
+
+// Check if this module is already installed
+// and compare versions if so
+$new_template_version=$template_version;
+if(is_dir(WB_PATH.'/templates/'.$template_directory)) {
+	if(file_exists(WB_PATH.'/templates/'.$template_directory.'/info.php')) {
+		require(WB_PATH.'/templates/'.$template_directory.'/info.php');
+		// Version to be installed is older than currently installed version
+		if ($template_version>$new_template_version) {
+			if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+			$admin->print_error($MESSAGE['GENERIC']['ALREADY_INSTALLED']);
+		}
+	} 
+	$success_message=$MESSAGE['GENERIC']['UPGRADED'];
+} else {
+	$success_message=$MESSAGE['GENERIC']['INSTALLED'];
+}
+
+// Check if template dir is writable
+if(!is_writable(WB_PATH.'/templates/')) {
+	if(file_exists($temp_file)) { unlink($temp_file); } // Remove temp file
+	$admin->print_error($MESSAGE['TEMPLATES']['BAD_PERMISSIONS']);
+}
+
+// Set template dir
+$template_dir = WB_PATH.'/templates/'.$template_directory;
+
+// Make sure the template dir exists, and chmod if needed
+if(!file_exists($template_dir)) {
+	make_dir($template_dir);
+} else {
+	change_mode($template_dir, 'dir');
+}
+
+// Unzip template to the template dir
+$list = $archive->extract(PCLZIP_OPT_PATH, $template_dir);
+if(!$list) {
+	$admin->print_error($MESSAGE['GENERIC']['CANNOT_UNZIP']);
+}
+
+// Delete the temp zip file
+if(file_exists($temp_file)) { unlink($temp_file); }
+
+// Chmod all the uploaded files
+$dir = dir($template_dir);
+while(false !== $entry = $dir->read()) {
+	// Skip pointers
+	if(substr($entry, 0, 1) != '.' AND $entry != '.svn' AND !is_dir($template_dir.'/'.$entry)) {
+		// Chmod file
+		change_mode($template_dir.'/'.$entry);
+	}
+}
+
+// Load template info into DB
+load_template($template_dir);
+
+// Print success message
+$admin->print_success($success_message);
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/index.php
===================================================================
--- tags/2.7.0/wb/admin/templates/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/index.php	(revision 838)
@@ -0,0 +1,82 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Print admin header
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'templates');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/templates');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into template list
+$template->set_block('main_block', 'template_list_block', 'template_list');
+$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'template' order by name");
+if($result->numRows() > 0) {
+	while($addon = $result->fetchRow()) {
+		$template->set_var('VALUE', $addon['directory']);
+		$template->set_var('NAME', $addon['name']);
+		$template->parse('template_list', 'template_list_block', true);
+	}
+}
+
+// Insert permissions values
+if($admin->get_permission('templates_install') != true) {
+	$template->set_var('DISPLAY_INSTALL', 'hide');
+}
+if($admin->get_permission('templates_uninstall') != true) {
+	$template->set_var('DISPLAY_UNINSTALL', 'hide');
+}
+if($admin->get_permission('templates_view') != true) {
+	$template->set_var('DISPLAY_LIST', 'hide');
+}
+
+// Insert language headings
+$template->set_var(array(
+								'HEADING_INSTALL_TEMPLATE' => $HEADING['INSTALL_TEMPLATE'],
+								'HEADING_UNINSTALL_TEMPLATE' => $HEADING['UNINSTALL_TEMPLATE'],
+								'HEADING_TEMPLATE_DETAILS' => $HEADING['TEMPLATE_DETAILS']
+								)
+						);
+// Insert language text and messages
+$template->set_var(array(
+								'TEXT_INSTALL' => $TEXT['INSTALL'],
+								'TEXT_UNINSTALL' => $TEXT['UNINSTALL'],
+								'TEXT_VIEW_DETAILS' => $TEXT['VIEW_DETAILS'],
+								'TEXT_PLEASE_SELECT' => $TEXT['PLEASE_SELECT'],
+								'CHANGE_TEMPLATE_NOTICE' => $MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/template.html
===================================================================
--- tags/2.7.0/wb/admin/templates/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/template.html	(revision 838)
@@ -0,0 +1,73 @@
+<!-- BEGIN main_block -->
+
+{CHANGE_TEMPLATE_NOTICE}<br /><br />
+
+<form name="install" enctype="multipart/form-data" action="install.php" method="post" class="{DISPLAY_INSTALL}">
+
+<h2>{HEADING_INSTALL_TEMPLATE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<input type="file" name="userfile" size="82%" />
+		<script language="javascript" type="text/javascript">
+		document.install.userfile.focus();
+		</script>
+	</td>
+	<td width="110" align="left">
+		<input type="submit" name="submit" value="{TEXT_INSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="uninstall" action="uninstall.php" method="post" class="{DISPLAY_UNINSTALL}">
+
+<h2>{HEADING_UNINSTALL_TEMPLATE}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="file" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN template_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END template_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_UNINSTALL}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+</form>
+
+<form name="details" action="details.php" method="post" class="{DISPLAY_LIST}">
+
+<h2>{HEADING_TEMPLATE_DETAILS}</h2>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<select name="file" style="width: 97%;">
+		<option value="" selected>{TEXT_PLEASE_SELECT}...</option>
+		<!-- BEGIN template_list_block -->
+			<option value="{VALUE}">{NAME}</option>
+		<!-- END template_list_block -->
+		</select>
+	</td>
+	<td width="110">
+		<input type="submit" name="submit" value="{TEXT_VIEW_DETAILS}" style="width: 100px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/templates/details.html
===================================================================
--- tags/2.7.0/wb/admin/templates/details.html	(nonexistent)
+++ tags/2.7.0/wb/admin/templates/details.html	(revision 838)
@@ -0,0 +1,32 @@
+<!-- BEGIN main_block -->
+
+<h2>{HEADING_TEMPLATE_DETAILS}</h2>
+
+<table cellpadding="5" cellspacing="0" border="0">
+<tr>
+	<td width="100">{TEXT_NAME}:</td>
+	<td>{NAME}</td>
+</tr>
+<tr>
+	<td>{TEXT_AUTHOR}:</td>
+	<td>{AUTHOR}</td>
+</tr>
+<tr>
+	<td>{TEXT_VERSION}:</td>
+	<td>{VERSION}</td>
+</tr>
+<tr>
+	<td>{TEXT_DESIGNED_FOR}:</td>
+	<td>Website Baker {DESIGNED_FOR}</td>
+</tr>
+<tr>
+	<td valign="top">{TEXT_DESCRIPTION}:</td>
+	<td style="text-align: justify;">{DESCRIPTION}</td>
+</tr>
+</table>
+
+<br />
+
+<button onclick="window.location = 'index.php';">{TEXT_BACK}</button>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/templates/details.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/access/index.php
===================================================================
--- tags/2.7.0/wb/admin/access/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/access/index.php	(revision 838)
@@ -0,0 +1,66 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Access', 'access');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/access');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into the template object
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL
+								)
+						);
+
+// Insert permission values into the template object
+if($admin->get_permission('users') != true) {
+	$template->set_var('DISPLAY_USERS', 'none');
+}
+if($admin->get_permission('groups') != true) {
+	$template->set_var('DISPLAY_GROUPS', 'none');
+}
+
+// Insert section names and descriptions
+$template->set_var(array(
+								'USERS' => $MENU['USERS'],
+								'GROUPS' => $MENU['GROUPS'],
+								'USERS_OVERVIEW' => $OVERVIEW['USERS'],
+								'GROUPS_OVERVIEW' => $OVERVIEW['GROUPS'],
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/access/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/access/template.html
===================================================================
--- tags/2.7.0/wb/admin/access/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/access/template.html	(revision 838)
@@ -0,0 +1,86 @@
+<!-- BEGIN main_block -->
+
+<style type="text/css">
+.section {
+	margin-top: 10px;
+	padding: 0px;
+	border: 1px solid #999999;
+	height: 75px;
+	width: 100%;
+	background-color: #FDFDFD;
+}
+.graphic {
+	width: 50px;
+	height: 50px;
+	border: 4px solid #FDFDFD;
+	padding-left: 3px;
+}
+.graphic img {
+	vertical-align: middle;
+	background-color: #FFFFFF;
+	padding: 4px;
+	border: 1px solid #D0D0D0;
+}
+.title {
+	text-align: left;
+	font-weight: bold;
+	font-size: 14px;
+	color: #003366;
+	height: 16px;
+	width: 90%;
+	padding: 4px 0px 0px 3px;
+}
+.description {
+	vertical-align: top;
+	text-align: left;
+	width: 240px;
+	padding: 0px 0px 0px 3px;
+}
+</style>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_USERS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/users/index.php">
+					<img src="{ADMIN_URL}/images/icons/users.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/users/index.php">{USERS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{USERS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+				
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_GROUPS};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/groups/index.php">
+					<img src="{ADMIN_URL}/images/icons/groups.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/groups/index.php">{GROUPS}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{GROUPS_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+		
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/access/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/addons/index.php
===================================================================
--- tags/2.7.0/wb/admin/addons/index.php	(nonexistent)
+++ tags/2.7.0/wb/admin/addons/index.php	(revision 838)
@@ -0,0 +1,71 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+require_once(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Addons', 'addons');
+
+// Setup template object
+$template = new Template(ADMIN_PATH.'/addons');
+$template->set_file('page', 'template.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Insert values into the template object
+$template->set_var(array(
+								'ADMIN_URL' => ADMIN_URL,
+								'WB_URL' => WB_URL
+								)
+						);
+
+// Insert permission values into the template object
+if($admin->get_permission('modules') != true) {
+	$template->set_var('DISPLAY_MODULES', 'none');
+}
+if($admin->get_permission('templates') != true) {
+	$template->set_var('DISPLAY_TEMPLATES', 'none');
+}
+if($admin->get_permission('languages') != true) {
+	$template->set_var('DISPLAY_LANGUAGES', 'none');
+}
+
+// Insert section names and descriptions
+$template->set_var(array(
+								'MODULES' => $MENU['MODULES'],
+								'TEMPLATES' => $MENU['TEMPLATES'],
+								'LANGUAGES' => $MENU['LANGUAGES'],
+								'MODULES_OVERVIEW' => $OVERVIEW['MODULES'],
+								'TEMPLATES_OVERVIEW' => $OVERVIEW['TEMPLATES'],
+								'LANGUAGES_OVERVIEW' => $OVERVIEW['LANGUAGES']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/addons/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/admin/addons/template.html
===================================================================
--- tags/2.7.0/wb/admin/addons/template.html	(nonexistent)
+++ tags/2.7.0/wb/admin/addons/template.html	(revision 838)
@@ -0,0 +1,105 @@
+<!-- BEGIN main_block -->
+
+<style type="text/css">
+.section {
+	margin-top: 10px;
+	padding: 0px;
+	border: 1px solid #999999;
+	height: 75px;
+	width: 100%;
+	background-color: #FDFDFD;
+}
+.graphic {
+	width: 50px;
+	height: 50px;
+	border: 4px solid #FDFDFD;
+	padding-left: 3px;
+}
+.graphic img {
+	vertical-align: middle;
+	background-color: #FFFFFF;
+	padding: 4px;
+	border: 1px solid #D0D0D0;
+}
+.title {
+	text-align: left;
+	font-weight: bold;
+	font-size: 14px;
+	color: #003366;
+	height: 16px;
+	width: 90%;
+	padding: 4px 0px 0px 3px;
+}
+.description {
+	vertical-align: top;
+	text-align: left;
+	width: 240px;
+	padding: 0px 0px 0px 3px;
+}
+</style>
+
+<table cellpadding="0" cellspacing="0" border="0" width="99%" align="center">
+<tr>
+	<td align="center" valign="top">
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_MODULES};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/modules/index.php">
+					<img src="{ADMIN_URL}/images/icons/modules.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/modules/index.php">{MODULES}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{MODULES_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+				
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_TEMPLATES};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/templates/index.php">
+					<img src="{ADMIN_URL}/images/icons/templates.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/templates/index.php">{TEMPLATES}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{TEMPLATES_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+				
+		
+		<table cellpadding="0" cellspacing="0" border="0" class="section" style="display: {DISPLAY_LANGUAGES};">
+		<tr>
+			<td class="graphic" align="center" valign="middle" rowspan="2">
+				<a href="{ADMIN_URL}/languages/index.php">
+					<img src="{ADMIN_URL}/images/icons/languages.png" border="0" />
+				</a>
+			</td>
+			<td class="title">
+				<a href="{ADMIN_URL}/languages/index.php">{LANGUAGES}</a>
+			</td>
+		</tr>
+		<tr>
+			<td class="description">
+				{LANGUAGES_OVERVIEW}
+			</td>
+		</tr>
+		</table>
+		
+	</td>
+</tr>
+</table>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/admin/addons/template.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-pl.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-pl.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-pl.js	(revision 838)
@@ -0,0 +1,98 @@
+// ** I18N
+
+// Calendar PL language
+// Author: Dariusz Pietrzak, <eyck@ghost.anime.pl>
+// Author: Janusz Piwowarski, <jpiw@go2.pl>
+// Encoding: utf-8
+// Distributed under the same terms as the calendar itself.
+
+Calendar._DN = new Array
+("Niedziela",
+ "Poniedzia\u0142ek",
+ "Wtorek",
+ "\u015aroda",
+ "Czwartek",
+ "Pi\u0105tek",
+ "Sobota",
+ "Niedziela");
+Calendar._SDN = new Array
+("Nie",
+ "Pn",
+ "Wt",
+ "\u015ar",
+ "Cz",
+ "Pt",
+ "So",
+ "Nie");
+Calendar._MN = new Array
+("Stycze\u0144",
+ "Luty",
+ "Marzec",
+ "Kwiecie\u0144",
+ "Maj",
+ "Czerwiec",
+ "Lipiec",
+ "Sierpie\u0144",
+ "Wrzesie\u0144",
+ "Pa\u017adziernik",
+ "Listopad",
+ "Grudzie\u0144");
+Calendar._SMN = new Array
+("Sty",
+ "Lut",
+ "Mar",
+ "Kwi",
+ "Maj",
+ "Cze",
+ "Lip",
+ "Sie",
+ "Wrz",
+ "Pa\u017a",
+ "Lis",
+ "Gru");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "O kalendarzu";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Aby pobra\u0107 najnowsz\u0105 wersj\u0119, odwied\u017a: http://www.dynarch.com/projects/calendar/\n" +
+"Dost\u0119pny na licencji GNU LGPL. Zobacz szczeg\u00f3\u0142y na http://gnu.org/licenses/lgpl.html." +
+"\n\n" +
+"Wyb\u00f3r daty:\n" +
+"- U\u017cyj przycisk\u00f3w \xab, \xbb by wybra\u0107 rok\n" +
+"- U\u017cyj przycisk\u00f3w " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " by wybra\u0107 miesi\u0105c\n" +
+"- Przytrzymaj klawisz myszy nad jednym z powy\u017cszych przycisk\u00f3w dla szybszego wyboru.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Wyb\u00f3r czasu:\n" +
+"- Kliknij na jednym z p\u00f3l czasu by zwi\u0119kszy\u0107 jego warto\u015b\u0107\n" +
+"- lub kliknij trzymaj\u0105c Shift by zmiejszy\u0107 jego warto\u015b\u0107\n" +
+"- lub kliknij i przeci\u0105gnij dla szybszego wyboru.";
+
+//Calendar._TT["TOGGLE"] = "Zmie\u0144 pierwszy dzie\u0144 tygodnia";
+Calendar._TT["PREV_YEAR"] = "Poprzedni rok (przytrzymaj dla menu)";
+Calendar._TT["PREV_MONTH"] = "Poprzedni miesi\u0105c (przytrzymaj dla menu)";
+Calendar._TT["GO_TODAY"] = "Id\u017a do dzisiaj";
+Calendar._TT["NEXT_MONTH"] = "Nast\u0119pny miesi\u0105c (przytrzymaj dla menu)";
+Calendar._TT["NEXT_YEAR"] = "Nast\u0119pny rok (przytrzymaj dla menu)";
+Calendar._TT["SEL_DATE"] = "Wybierz dat\u0119";
+Calendar._TT["DRAG_TO_MOVE"] = "Przeci\u0105gnij by przesun\u0105\u0107";
+Calendar._TT["PART_TODAY"] = " (dzisiaj)";
+Calendar._TT["MON_FIRST"] = "Wy\u015bwietl poniedzia\u0142ek jako pierwszy";
+Calendar._TT["SUN_FIRST"] = "Wy\u015bwietl niedziel\u0119 jako pierwsz\u0105";
+Calendar._TT["CLOSE"] = "Zamknij";
+Calendar._TT["TODAY"] = "Dzisiaj";
+Calendar._TT["TIME_PART"] = "(Shift-)Kliknij lub przeci\u0105gnij by zmieni\u0107 warto\u015b\u0107";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%e %B, %A";
+
+Calendar._TT["WK"] = "ty";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-pl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-fi.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-fi.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-fi.js	(revision 838)
@@ -0,0 +1,102 @@
+// ** I18N
+
+// Calendar FI language (Finnish, Suomi)
+// Author: Jarno K\u00e4yhk\u00f6, <gambler@phnet.fi>
+// Encoding: UTF-8
+// Distributed under the same terms as the calendar itself.
+
+// full day names
+Calendar._DN = new Array
+("Sunnuntai",
+ "Maanantai",
+ "Tiistai",
+ "Keskiviikko",
+ "Torstai",
+ "Perjantai",
+ "Lauantai",
+ "Sunnuntai");
+
+// short day names
+Calendar._SDN = new Array
+("Su",
+ "Ma",
+ "Ti",
+ "Ke",
+ "To",
+ "Pe",
+ "La",
+ "Su");
+
+// full month names
+Calendar._MN = new Array
+("Tammikuu",
+ "Helmikuu",
+ "Maaliskuu",
+ "Huhtikuu",
+ "Toukokuu",
+ "Kes\u00e4kuu",
+ "Hein\u00e4kuu",
+ "Elokuu",
+ "Syyskuu",
+ "Lokakuu",
+ "Marraskuu",
+ "Joulukuu");
+
+// short month names
+Calendar._SMN = new Array
+("Tam",
+ "Hel",
+ "Maa",
+ "Huh",
+ "Tou",
+ "Kes",
+ "Hei",
+ "Elo",
+ "Syy",
+ "Lok",
+ "Mar",
+ "Jou");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Tietoja kalenterista";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Uusin versio osoitteessa: http://www.dynarch.com/projects/calendar/\n" +
+"Julkaistu GNU LGPL lisenssin alaisuudessa. Lis\u00e4tietoja osoitteessa http://gnu.org/licenses/lgpl.html" +
+"\n\n" +
+"P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 valinta:\n" +
+"- K\u00e4yt\u00e4 \xab, \xbb painikkeita valitaksesi vuosi\n" +
+"- K\u00e4yt\u00e4 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " painikkeita valitaksesi kuukausi\n" +
+"- Pit\u00e4m\u00e4ll\u00e4 hiiren painiketta mink\u00e4 tahansa yll\u00e4 olevan painikkeen kohdalla, saat n\u00e4kyviin valikon nopeampaan siirtymiseen.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Ajan valinta:\n" +
+"- Klikkaa kellonajan numeroita lis\u00e4t\u00e4ksesi aikaa\n" +
+"- tai pit\u00e4m\u00e4ll\u00e4 Shift-n\u00e4pp\u00e4int\u00e4 pohjassa saat aikaa taaksep\u00e4in\n" +
+"- tai klikkaa ja pid\u00e4 hiiren painike pohjassa sek\u00e4 liikuta hiirt\u00e4 muuttaaksesi aikaa nopeasti eteen- ja taaksep\u00e4in.";
+
+Calendar._TT["PREV_YEAR"] = "Edell. vuosi (paina hetki, n\u00e4et valikon)";
+Calendar._TT["PREV_MONTH"] = "Edell. kuukausi (paina hetki, n\u00e4et valikon)";
+Calendar._TT["GO_TODAY"] = "Siirry t\u00e4h\u00e4n p\u00e4iv\u00e4\u00e4n";
+Calendar._TT["NEXT_MONTH"] = "Seur. kuukausi (paina hetki, n\u00e4et valikon)";
+Calendar._TT["NEXT_YEAR"] = "Seur. vuosi (paina hetki, n\u00e4et valikon)";
+Calendar._TT["SEL_DATE"] = "Valitse p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4";
+Calendar._TT["DRAG_TO_MOVE"] = "Siirr\u00e4 kalenterin paikkaa";
+Calendar._TT["PART_TODAY"] = " (t\u00e4n\u00e4\u00e4n)";
+Calendar._TT["MON_FIRST"] = "N\u00e4yt\u00e4 maanantai ensimm\u00e4isen\u00e4";
+Calendar._TT["SUN_FIRST"] = "N\u00e4yt\u00e4 sunnuntai ensimm\u00e4isen\u00e4";
+Calendar._TT["CLOSE"] = "Sulje";
+Calendar._TT["TODAY"] = "T\u00e4n\u00e4\u00e4n";
+Calendar._TT["TIME_PART"] = "(Shift-) Klikkaa tai liikuta muuttaaksesi aikaa";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
+
+Calendar._TT["WK"] = "Vko";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-fi.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-el.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-el.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-el.js	(revision 838)
@@ -0,0 +1,93 @@
+\ufeff// ** I18N
+Calendar._DN = new Array
+("\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae",
+ "\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1",
+ "\u03a4\u03c1\u03af\u03c4\u03b7",
+ "\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7",
+ "\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7",
+ "\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae",
+ "\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf",
+ "\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae");
+
+Calendar._SDN = new Array
+("\u039a\u03c5",
+ "\u0394\u03b5",
+ "T\u03c1",
+ "\u03a4\u03b5",
+ "\u03a0\u03b5",
+ "\u03a0\u03b1",
+ "\u03a3\u03b1",
+ "\u039a\u03c5");
+
+Calendar._MN = new Array
+("\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2",
+ "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2",
+ "\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2",
+ "\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2",
+ "\u039c\u03ac\u03ca\u03bf\u03c2",
+ "\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2",
+ "\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2",
+ "\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2",
+ "\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2",
+ "\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2",
+ "\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2",
+ "\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2");
+
+Calendar._SMN = new Array
+("\u0399\u03b1\u03bd",
+ "\u03a6\u03b5\u03b2",
+ "\u039c\u03b1\u03c1",
+ "\u0391\u03c0\u03c1",
+ "\u039c\u03b1\u03b9",
+ "\u0399\u03bf\u03c5\u03bd",
+ "\u0399\u03bf\u03c5\u03bb",
+ "\u0391\u03c5\u03b3",
+ "\u03a3\u03b5\u03c0",
+ "\u039f\u03ba\u03c4",
+ "\u039d\u03bf\u03b5",
+ "\u0394\u03b5\u03ba");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "\u0393\u03b9\u03b1 \u03c4\u03bf \u03b7\u03bc\u03b5\u03c1\u03bf\u03bb\u03cc\u03b3\u03b9\u03bf";
+
+Calendar._TT["ABOUT"] =
+"\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03b1\u03c2 \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1\u03c2/\u03ce\u03c1\u03b1\u03c2 \u03c3\u03b5 DHTML\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"\u0393\u03b9\u03b1 \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1\u03c2:\n" +
+"- \u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac \xab, \xbb \u03b3\u03b9\u03b1 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03ad\u03c4\u03bf\u03c5\u03c2\n" +
+"- \u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " \u03b3\u03b9\u03b1 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bc\u03ae\u03bd\u03b1\n" +
+"- \u039a\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u03c0\u03bf\u03bd\u03c4\u03b9\u03ba\u03bf\u03cd \u03c0\u03b1\u03c4\u03b7\u03bc\u03ad\u03bd\u03bf \u03c3\u03c4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac \u03b3\u03b9\u03b1 \u03c0\u03b9\u03bf \u03b3\u03c1\u03ae\u03b3\u03bf\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03ce\u03c1\u03b1\u03c2:\n" +
+"- \u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03b5 \u03ad\u03bd\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b1 \u03bc\u03ad\u03c1\u03b7 \u03c4\u03b7\u03c2 \u03ce\u03c1\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03b1\u03cd\u03be\u03b7\u03c3\u03b7\n" +
+"- \u03ae Shift-\u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bc\u03b5\u03af\u03c9\u03c3\u03b7\n" +
+"- \u03ae \u03ba\u03bb\u03b9\u03ba \u03ba\u03b1\u03b9 \u03bc\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c0\u03b9\u03bf \u03b3\u03c1\u03ae\u03b3\u03bf\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae.";
+Calendar._TT["TOGGLE"] = "\u039c\u03c0\u03ac\u03c1\u03b1 \u03c0\u03c1\u03ce\u03c4\u03b7\u03c2 \u03b7\u03bc\u03ad\u03c1\u03b1\u03c2 \u03c4\u03b7\u03c2 \u03b5\u03b2\u03b4\u03bf\u03bc\u03ac\u03b4\u03b1\u03c2";
+Calendar._TT["PREV_YEAR"] = "\u03a0\u03c1\u03bf\u03b7\u03b3. \u03ad\u03c4\u03bf\u03c2 (\u03ba\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd)";
+Calendar._TT["PREV_MONTH"] = "\u03a0\u03c1\u03bf\u03b7\u03b3. \u03bc\u03ae\u03bd\u03b1\u03c2 (\u03ba\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd)";
+Calendar._TT["GO_TODAY"] = "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1";
+Calendar._TT["NEXT_MONTH"] = "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2 (\u03ba\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd)";
+Calendar._TT["NEXT_YEAR"] = "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03ad\u03c4\u03bf\u03c2 (\u03ba\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd)";
+Calendar._TT["SEL_DATE"] = "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1";
+Calendar._TT["DRAG_TO_MOVE"] = "\u03a3\u03cd\u03c1\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03bc\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03b5\u03c4\u03b5";
+Calendar._TT["PART_TODAY"] = " (\u03c3\u03ae\u03bc\u03b5\u03c1\u03b1)";
+Calendar._TT["MON_FIRST"] = "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1\u03c2 \u03c0\u03c1\u03ce\u03c4\u03b1";
+Calendar._TT["SUN_FIRST"] = "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae\u03c2 \u03c0\u03c1\u03ce\u03c4\u03b1";
+Calendar._TT["CLOSE"] = "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf";
+Calendar._TT["TODAY"] = "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1";
+Calendar._TT["TIME_PART"] = "(Shift-)\u03ba\u03bb\u03b9\u03ba \u03ae \u03bc\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
+Calendar._TT["TT_DATE_FORMAT"] = "D, d M";
+
+Calendar._TT["WK"] = "\u03b5\u03b2\u03b4";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-el.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-br.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-br.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-br.js	(revision 838)
@@ -0,0 +1,107 @@
+\ufeff// ** I18N
+
+// Calendar pt-BR language
+// Author: Fernando Dourado, <fernando.dourado@ig.com.br>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Domingo",
+ "Segunda",
+ "Ter\u00e7a",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sab\u00e1do",
+ "Domingo");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+// [No changes using default values]
+
+// full month names
+Calendar._MN = new Array
+("Janeiro",
+ "Fevereiro",
+ "Mar\u00e7o",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro");
+
+// short month names
+// [No changes using default values]
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Sobre o calend\u00e1rio";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" +
+"Tradu\u00e7\u00e3o para o portugu\u00eas Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" +
+"\n\n" +
+"Selecionar data:\n" +
+"- Use as teclas \xab, \xbb para selecionar o ano\n" +
+"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o m\u00eas\n" +
+"- Clique e segure com o mouse em qualquer bot\u00e3o para selecionar rapidamente.";
+
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selecionar hora:\n" +
+"- Clique em qualquer uma das partes da hora para aumentar\n" +
+"- ou Shift-clique para diminuir\n" +
+"- ou clique e arraste para selecionar rapidamente.";
+
+Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)";
+Calendar._TT["PREV_MONTH"] = "M\u00eas anterior (clique e segure para menu)";
+Calendar._TT["GO_TODAY"] = "Ir para a data atual";
+Calendar._TT["NEXT_MONTH"] = "Pr\u00f3ximo m\u00eas (clique e segure para menu)";
+Calendar._TT["NEXT_YEAR"] = "Pr\u00f3ximo ano (clique e segure para menu)";
+Calendar._TT["SEL_DATE"] = "Selecione uma data";
+Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover";
+Calendar._TT["PART_TODAY"] = " (hoje)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Fechar";
+Calendar._TT["TODAY"] = "Hoje";
+Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y";
+
+Calendar._TT["WK"] = "sem";
+Calendar._TT["TIME"] = "Hora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-br.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-cs.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-cs.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-cs.js	(revision 838)
@@ -0,0 +1,65 @@
+/* 
+	calendar-cs-win.js
+	language: Czech
+	encoding: windows-1250
+	author: Lubos Jerabek (xnet@seznam.cz)
+	        Jan Uhlir (espinosa@centrum.cz)
+*/
+
+// ** I18N
+Calendar._DN  = new Array('Ned\u011ble','Pond\u011bl\u00ed','\u00dater\u00fd','St\u0159eda','\u010ctvrtek','P\u00e1tek','Sobota','Ned\u011ble');
+Calendar._SDN = new Array('Ne','Po','\u00dat','St','\u010ct','P\u00e1','So','Ne');
+Calendar._MN  = new Array('Leden','\u00danor','B\u0159ezen','Duben','Kv\u011bten','\u010cerven','\u010cervenec','Srpen','Z\u00e1\u0159\u00ed','\u0158\u00edjen','Listopad','Prosinec');
+Calendar._SMN = new Array('Led','\u00dano','B\u0159e','Dub','Kv\u011b','\u010crv','\u010cvc','Srp','Z\u00e1\u0159','\u0158\u00edj','Lis','Pro');
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "O komponent\u011b kalend\u00e1\u0159";
+Calendar._TT["TOGGLE"] = "Zm\u011bna prvn\u00edho dne v t\u00fddnu";
+Calendar._TT["PREV_YEAR"] = "P\u0159edchoz\u00ed rok (p\u0159idr\u017e pro menu)";
+Calendar._TT["PREV_MONTH"] = "P\u0159edchoz\u00ed m\u011bs\u00edc (p\u0159idr\u017e pro menu)";
+Calendar._TT["GO_TODAY"] = "Dne\u0161n\u00ed datum";
+Calendar._TT["NEXT_MONTH"] = "Dal\u0161\u00ed m\u011bs\u00edc (p\u0159idr\u017e pro menu)";
+Calendar._TT["NEXT_YEAR"] = "Dal\u0161\u00ed rok (p\u0159idr\u017e pro menu)";
+Calendar._TT["SEL_DATE"] = "Vyber datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Chy\u0165 a t\u00e1hni, pro p\u0159esun";
+Calendar._TT["PART_TODAY"] = " (dnes)";
+Calendar._TT["MON_FIRST"] = "Uka\u017e jako prvn\u00ed Pond\u011bl\u00ed";
+//Calendar._TT["SUN_FIRST"] = "Uka\u017e jako prvn\u00ed Ned\u011bli";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"V\u00fdb\u011br datumu:\n" +
+"- Use the \xab, \xbb buttons to select year\n" +
+"- Pou\u017eijte tla\u010d\u00edtka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k v\u00fdb\u011bru m\u011bs\u00edce\n" +
+"- Podr\u017ete tla\u010d\u00edtko my\u0161i na jak\u00e9mkoliv z t\u011bch tla\u010d\u00edtek pro rychlej\u0161\u00ed v\u00fdb\u011br.";
+
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"V\u00fdb\u011br \u010dasu:\n" +
+"- Klikn\u011bte na jakoukoliv z \u010d\u00e1st\u00ed v\u00fdb\u011bru \u010dasu pro zv\u00fd\u0161en\u00ed.\n" +
+"- nebo Shift-click pro sn\u00ed\u017een\u00ed\n" +
+"- nebo klikn\u011bte a t\u00e1hn\u011bte pro rychlej\u0161\u00ed v\u00fdb\u011br.";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Zobraz %s prvn\u00ed";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Zav\u0159\u00edt";
+Calendar._TT["TODAY"] = "Dnes";
+Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo t\u00e1hni pro zm\u011bnu hodnoty";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "\u010cas:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-cs.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-fr.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-fr.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-fr.js	(revision 838)
@@ -0,0 +1,125 @@
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// Translator: David Duret, <pilgrim@mala-template.net> from previous french version
+
+// full day names
+Calendar._DN = new Array
+("Dimanche",
+ "Lundi",
+ "Mardi",
+ "Mercredi",
+ "Jeudi",
+ "Vendredi",
+ "Samedi",
+ "Dimanche");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Dim",
+ "Lun",
+ "Mar",
+ "Mar",
+ "Jeu",
+ "Ven",
+ "Sam",
+ "Dim");
+
+// full month names
+Calendar._MN = new Array
+("Janvier",
+ "F\u00e9vrier",
+ "Mars",
+ "Avril",
+ "Mai",
+ "Juin",
+ "Juillet",
+ "Ao\u00fbt",
+ "Septembre",
+ "Octobre",
+ "Novembre",
+ "D\u00e9cembre");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Fev",
+ "Mar",
+ "Avr",
+ "Mai",
+ "Juin",
+ "Juil",
+ "Aout",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "A propos du calendrier";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Heure Selecteur\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Pour la derniere version visitez : http://www.dynarch.com/projects/calendar/\n" +
+"Distribu\u00e9 par GNU LGPL.  Voir http://gnu.org/licenses/lgpl.html pour les details." +
+"\n\n" +
+"Selection de la date :\n" +
+"- Utiliser les bouttons \xab, \xbb  pour selectionner l\'annee\n" +
+"- Utiliser les bouttons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pour selectionner les mois\n" +
+"- Garder la souris sur n'importe quels boutons pour une selection plus rapide";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selection de l\'heure :\n" +
+"- Cliquer sur heures ou minutes pour incrementer\n" +
+"- ou Maj-clic pour decrementer\n" +
+"- ou clic et glisser-deplacer pour une selection plus rapide";
+
+Calendar._TT["PREV_YEAR"] = "Ann\u00e9e pr\u00e9c. (maintenir pour menu)";
+Calendar._TT["PREV_MONTH"] = "Mois pr\u00e9c. (maintenir pour menu)";
+Calendar._TT["GO_TODAY"] = "Atteindre la date du jour";
+Calendar._TT["NEXT_MONTH"] = "Mois suiv. (maintenir pour menu)";
+Calendar._TT["NEXT_YEAR"] = "Ann\u00e9e suiv. (maintenir pour menu)";
+Calendar._TT["SEL_DATE"] = "S\u00e9lectionner une date";
+Calendar._TT["DRAG_TO_MOVE"] = "D\u00e9placer";
+Calendar._TT["PART_TODAY"] = " (Aujourd'hui)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Afficher %s en premier";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Fermer";
+Calendar._TT["TODAY"] = "Aujourd'hui";
+Calendar._TT["TIME_PART"] = "(Maj-)Clic ou glisser pour modifier la valeur";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Sem.";
+Calendar._TT["TIME"] = "Heure :";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-fr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-es.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-es.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-es.js	(revision 838)
@@ -0,0 +1,129 @@
+// ** I18N
+
+// Calendar ES (spanish) language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Updater: Servilio Afre Puentes <servilios@yahoo.com>
+// Updated: 2004-06-03
+// Encoding: utf-8
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Domingo",
+ "Lunes",
+ "Martes",
+ "Mi\u00e9rcoles",
+ "Jueves",
+ "Viernes",
+ "S\u00e1bado",
+ "Domingo");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Dom",
+ "Lun",
+ "Mar",
+ "Mi\u00e9",
+ "Jue",
+ "Vie",
+ "S\u00e1b",
+ "Dom");
+
+// First day of the week. "0" means display Sunday first, "1" means display
+// Monday first, etc.
+Calendar._FD = 1;
+
+// full month names
+Calendar._MN = new Array
+("Enero",
+ "Febrero",
+ "Marzo",
+ "Abril",
+ "Mayo",
+ "Junio",
+ "Julio",
+ "Agosto",
+ "Septiembre",
+ "Octubre",
+ "Noviembre",
+ "Diciembre");
+
+// short month names
+Calendar._SMN = new Array
+("Ene",
+ "Feb",
+ "Mar",
+ "Abr",
+ "May",
+ "Jun",
+ "Jul",
+ "Ago",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dic");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Acerca del calendario";
+
+Calendar._TT["ABOUT"] =
+"Selector DHTML de Fecha/Hora\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Para conseguir la \u00faltima versi\u00f3n visite: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para m\u00e1s detalles." +
+"\n\n" +
+"Selecci\u00f3n de fecha:\n" +
+"- Use los botones \xab, \xbb para seleccionar el a\u00f1o\n" +
+"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
+"- Mantenga pulsado el rat\u00f3n en cualquiera de estos botones para una selecci\u00f3n r\u00e1pida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selecci\u00f3n de hora:\n" +
+"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
+"- o pulse las may\u00fasculas mientras hace clic para decrementarla\n" +
+"- o haga clic y arrastre el rat\u00f3n para una selecci\u00f3n m\u00e1s r\u00e1pida.";
+
+Calendar._TT["PREV_YEAR"] = "A\u00f1o anterior (mantener para men\u00fa)";
+Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para men\u00fa)";
+Calendar._TT["GO_TODAY"] = "Ir a hoy";
+Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para men\u00fa)";
+Calendar._TT["NEXT_YEAR"] = "A\u00f1o siguiente (mantener para men\u00fa)";
+Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
+Calendar._TT["PART_TODAY"] = " (hoy)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Hacer %s primer d\u00eda de la semana";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Cerrar";
+Calendar._TT["TODAY"] = "Hoy";
+Calendar._TT["TIME_PART"] = "(May\u00fascula-)Clic o arrastre para cambiar valor";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
+
+Calendar._TT["WK"] = "sem";
+Calendar._TT["TIME"] = "Hora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-es.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-du.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-du.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-du.js	(revision 838)
@@ -0,0 +1,51 @@
+// ** I18N
+Calendar._DN = new Array
+("Zondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrijdag",
+ "Zaterdag",
+ "Zondag");
+Calendar._MN = new Array
+("Januari",
+ "Februari",
+ "Maart",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "December");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Toggle startdag van de week";
+Calendar._TT["PREV_YEAR"] = "Vorig jaar (indrukken voor menu)";
+Calendar._TT["PREV_MONTH"] = "Vorige month (indrukken voor menu)";
+Calendar._TT["GO_TODAY"] = "Naar Vandaag";
+Calendar._TT["NEXT_MONTH"] = "Volgende Maand (indrukken voor menu)";
+Calendar._TT["NEXT_YEAR"] = "Volgend jaar (indrukken voor menu)";
+Calendar._TT["SEL_DATE"] = "Selecteer datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te verplaatsen";
+Calendar._TT["PART_TODAY"] = " (vandaag)";
+Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
+Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
+Calendar._TT["CLOSE"] = "Sluiten";
+Calendar._TT["TODAY"] = "Vandaag";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
+
+Calendar._TT["WK"] = "wk";
+
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-du.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-hr.js
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-hr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-si.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-si.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-si.js	(revision 838)
@@ -0,0 +1,99 @@
+/* Slovenian language file for the DHTML Calendar version 0.9.2 
+* Author David Milost <mercy@volja.net>, January 2004.
+* Feel free to use this script under the terms of the GNU Lesser General
+* Public License, as long as you do not remove or alter this notice.
+*/
+ // full day names
+Calendar._DN = new Array
+("Nedelja",
+ "Ponedeljek",
+ "Torek",
+ "Sreda",
+ "\u010cetrtek",
+ "Petek",
+ "Sobota",
+ "Nedelja");
+ // short day names
+ Calendar._SDN = new Array
+("Ned",
+ "Pon",
+ "Tor",
+ "Sre",
+ "\u010cet",
+ "Pet",
+ "Sob",
+ "Ned");
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "Maj",
+ "Jun",
+ "Jul",
+ "Avg",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dec");
+  // full month names
+Calendar._MN = new Array
+("Januar",
+ "Februar",
+ "Marec",
+ "April",
+ "Maj",
+ "Junij",
+ "Julij",
+ "Avgust",
+ "September",
+ "Oktober",
+ "November",
+ "December");
+
+// tooltips
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "O koledarju";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Za zadnjo verzijo pojdine na naslov: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuirano pod GNU LGPL.  Poglejte http://gnu.org/licenses/lgpl.html za podrobnosti." +
+"\n\n" +
+"Izbor datuma:\n" +
+"- Uporabite \xab, \xbb gumbe za izbor leta\n" +
+"- Uporabite " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gumbe za izbor meseca\n" +
+"- Zadr\u017eite klik na kateremkoli od zgornjih gumbov za hiter izbor.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Izbor \u0107asa:\n" +
+"- Kliknite na katerikoli del \u0107asa za pove\u0107. le-tega\n" +
+"- ali Shift-click za zmanj. le-tega\n" +
+"- ali kliknite in povlecite za hiter izbor.";
+
+Calendar._TT["TOGGLE"] = "Spremeni dan s katerim se pri\u0107ne teden";
+Calendar._TT["PREV_YEAR"] = "Predhodnje leto (dolg klik za meni)";
+Calendar._TT["PREV_MONTH"] = "Predhodnji mesec (dolg klik za meni)";
+Calendar._TT["GO_TODAY"] = "Pojdi na teko\u0107i dan";
+Calendar._TT["NEXT_MONTH"] = "Naslednji mesec (dolg klik za meni)";
+Calendar._TT["NEXT_YEAR"] = "Naslednje leto (dolg klik za meni)";
+Calendar._TT["SEL_DATE"] = "Izberite datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Pritisni in povleci za spremembo pozicije";
+Calendar._TT["PART_TODAY"] = " (danes)";
+Calendar._TT["MON_FIRST"] = "Prika\u017ei ponedeljek kot prvi dan";
+Calendar._TT["SUN_FIRST"] = "Prika\u017ei nedeljo kot prvi dan";
+Calendar._TT["CLOSE"] = "Zapri";
+Calendar._TT["TODAY"] = "Danes";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Ted";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-si.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-hu.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-hu.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-hu.js	(revision 838)
@@ -0,0 +1,124 @@
+// ** I18N
+
+// Calendar HU language
+// Author: ???
+// Modifier: KARASZI Istvan, <jscalendar@spam.raszi.hu>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Vas\u00e1rnap",
+ "H\u00e9tf\u0151",
+ "Kedd",
+ "Szerda",
+ "Cs\u00fct\u00f6rt\u00f6k",
+ "P\u00e9ntek",
+ "Szombat",
+ "Vas\u00e1rnap");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("v",
+ "h",
+ "k",
+ "sze",
+ "cs",
+ "p",
+ "szo",
+ "v");
+
+// full month names
+Calendar._MN = new Array
+("janu\u00e1r",
+ "febru\u00e1r",
+ "m\u00e1rcius",
+ "\u00e1prilis",
+ "m\u00e1jus",
+ "j\u00fanius",
+ "j\u00falius",
+ "augusztus",
+ "szeptember",
+ "okt\u00f3ber",
+ "november",
+ "december");
+
+// short month names
+Calendar._SMN = new Array
+("jan",
+ "feb",
+ "m\u00e1r",
+ "\u00e1pr",
+ "m\u00e1j",
+ "j\u00fan",
+ "j\u00fal",
+ "aug",
+ "sze",
+ "okt",
+ "nov",
+ "dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "A kalend\u00e1riumr\u00f3l";
+
+Calendar._TT["ABOUT"] =
+"DHTML d\u00e1tum/id\u0151 kiv\u00e1laszt\u00f3\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"a legfrissebb verzi\u00f3 megtal\u00e1lhat\u00f3: http://www.dynarch.com/projects/calendar/\n" +
+"GNU LGPL alatt terjesztve.  L\u00e1sd a http://gnu.org/licenses/lgpl.html oldalt a r\u00e9szletekhez." +
+"\n\n" +
+"D\u00e1tum v\u00e1laszt\u00e1s:\n" +
+"- haszn\u00e1lja a \xab, \xbb gombokat az \u00e9v kiv\u00e1laszt\u00e1s\u00e1hoz\n" +
+"- haszn\u00e1lja a " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gombokat a h\u00f3nap kiv\u00e1laszt\u00e1s\u00e1hoz\n" +
+"- tartsa lenyomva az eg\u00e9rgombot a gyors v\u00e1laszt\u00e1shoz.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Id\u0151 v\u00e1laszt\u00e1s:\n" +
+"- kattintva n\u00f6velheti az id\u0151t\n" +
+"- shift-tel kattintva cs\u00f6kkentheti\n" +
+"- lenyomva tartva \u00e9s h\u00fazva gyorsabban kiv\u00e1laszthatja.";
+
+Calendar._TT["PREV_YEAR"] = "El\u0151z\u0151 \u00e9v (tartsa nyomva a men\u00fch\u00f6z)";
+Calendar._TT["PREV_MONTH"] = "El\u0151z\u0151 h\u00f3nap (tartsa nyomva a men\u00fch\u00f6z)";
+Calendar._TT["GO_TODAY"] = "Mai napra ugr\u00e1s";
+Calendar._TT["NEXT_MONTH"] = "K\u00f6v. h\u00f3nap (tartsa nyomva a men\u00fch\u00f6z)";
+Calendar._TT["NEXT_YEAR"] = "K\u00f6v. \u00e9v (tartsa nyomva a men\u00fch\u00f6z)";
+Calendar._TT["SEL_DATE"] = "V\u00e1lasszon d\u00e1tumot";
+Calendar._TT["DRAG_TO_MOVE"] = "H\u00fazza a mozgat\u00e1shoz";
+Calendar._TT["PART_TODAY"] = " (ma)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "%s legyen a h\u00e9t els\u0151 napja";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Bez\u00e1r";
+Calendar._TT["TODAY"] = "Ma";
+Calendar._TT["TIME_PART"] = "(Shift-)Klikk vagy h\u00faz\u00e1s az \u00e9rt\u00e9k v\u00e1ltoztat\u00e1s\u00e1hoz";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%b %e, %a";
+
+Calendar._TT["WK"] = "h\u00e9t";
+Calendar._TT["TIME"] = "id\u0151:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-hu.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-no.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-no.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-no.js	(revision 838)
@@ -0,0 +1,119 @@
+// ** I18N
+
+// Calendar NO language
+// Author: Daniel Holmen, <daniel.holmen@ciber.no>
+// Encoding: UTF-8
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("S\u00f8ndag",
+ "Mandag",
+ "Tirsdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "L\u00f8rdag",
+ "S\u00f8ndag");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("S\u00f8n",
+ "Man",
+ "Tir",
+ "Ons",
+ "Tor",
+ "Fre",
+ "L\u00f8r",
+ "S\u00f8n");
+
+// full month names
+Calendar._MN = new Array
+("Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Des");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Om kalenderen";
+
+Calendar._TT["ABOUT"] =
+"DHTML Dato-/Tidsvelger\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For nyeste versjon, g\u00e5 til: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuert under GNU LGPL.  Se http://gnu.org/licenses/lgpl.html for detaljer." +
+"\n\n" +
+"Datovalg:\n" +
+"- Bruk knappene \xab og \xbb for \u00e5 velge \u00e5r\n" +
+"- Bruk knappene " + String.fromCharCode(0x2039) + " og " + String.fromCharCode(0x203a) + " for \u00e5 velge m\u00e5ned\n" +
+"- Hold inne musknappen eller knappene over for raskere valg.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Tidsvalg:\n" +
+"- Klikk p\u00e5 en av tidsdelene for \u00e5 \u00f8ke den\n" +
+"- eller Shift-klikk for \u00e5 senke verdien\n" +
+"- eller klikk-og-dra for raskere valg..";
+
+Calendar._TT["PREV_YEAR"] = "Forrige. \u00e5r (hold for meny)";
+Calendar._TT["PREV_MONTH"] = "Forrige. m\u00e5ned (hold for meny)";
+Calendar._TT["GO_TODAY"] = "G\u00e5 til idag";
+Calendar._TT["NEXT_MONTH"] = "Neste m\u00e5ned (hold for meny)";
+Calendar._TT["NEXT_YEAR"] = "Neste \u00e5r (hold for meny)";
+Calendar._TT["SEL_DATE"] = "Velg dato";
+Calendar._TT["DRAG_TO_MOVE"] = "Dra for \u00e5 flytte";
+Calendar._TT["PART_TODAY"] = " (idag)";
+Calendar._TT["MON_FIRST"] = "Vis mandag f\u00f8rst";
+Calendar._TT["SUN_FIRST"] = "Vis s\u00f8ndag f\u00f8rst";
+Calendar._TT["CLOSE"] = "Lukk";
+Calendar._TT["TODAY"] = "Idag";
+Calendar._TT["TIME_PART"] = "(Shift-)Klikk eller dra for \u00e5 endre verdi";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "uke";
+
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-no.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-it.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-it.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-it.js	(revision 838)
@@ -0,0 +1,124 @@
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Translator: Fabio Di Bernardini, <altraqua@email.it>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Domenica",
+ "Luned\u00ec",
+ "Marted\u00ec",
+ "Mercoled\u00ec",
+ "Gioved\u00ec",
+ "Venerd\u00ec",
+ "Sabato",
+ "Domenica");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Dom",
+ "Lun",
+ "Mar",
+ "Mer",
+ "Gio",
+ "Ven",
+ "Sab",
+ "Dom");
+
+// full month names
+Calendar._MN = new Array
+("Gennaio",
+ "Febbraio",
+ "Marzo",
+ "Aprile",
+ "Maggio",
+ "Giugno",
+ "Luglio",
+ "Augosto",
+ "Settembre",
+ "Ottobre",
+ "Novembre",
+ "Dicembre");
+
+// short month names
+Calendar._SMN = new Array
+("Gen",
+ "Feb",
+ "Mar",
+ "Apr",
+ "Mag",
+ "Giu",
+ "Lug",
+ "Ago",
+ "Set",
+ "Ott",
+ "Nov",
+ "Dic");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Informazioni sul calendario";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Per gli aggiornamenti: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuito sotto licenza GNU LGPL.  Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
+"\n\n" +
+"Selezione data:\n" +
+"- Usa \xab, \xbb per selezionare l'anno\n" +
+"- Usa  " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per i mesi\n" +
+"- Tieni premuto a lungo il mouse per accedere alle funzioni di selezione veloce.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selezione orario:\n" +
+"- Clicca sul numero per incrementarlo\n" +
+"- o Shift+click per decrementarlo\n" +
+"- o click e sinistra o destra per variarlo.";
+
+Calendar._TT["PREV_YEAR"] = "Anno prec.(clicca a lungo per il men\u00f9)";
+Calendar._TT["PREV_MONTH"] = "Mese prec. (clicca a lungo per il men\u00f9)";
+Calendar._TT["GO_TODAY"] = "Oggi";
+Calendar._TT["NEXT_MONTH"] = "Pross. mese (clicca a lungo per il men\u00f9)";
+Calendar._TT["NEXT_YEAR"] = "Pross. anno (clicca a lungo per il men\u00f9)";
+Calendar._TT["SEL_DATE"] = "Seleziona data";
+Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostarlo";
+Calendar._TT["PART_TODAY"] = " (oggi)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Mostra prima %s";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Chiudi";
+Calendar._TT["TODAY"] = "Oggi";
+Calendar._TT["TIME_PART"] = "(Shift-)Click o trascina per cambiare il valore";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a:%b:%e";
+
+Calendar._TT["WK"] = "set";
+Calendar._TT["TIME"] = "Ora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-it.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-sk.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-sk.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-sk.js	(revision 838)
@@ -0,0 +1,104 @@
+// ** I18N
+
+// Calendar SK language
+// Author: Peter Valach (pvalach@gmx.net)
+// Encoding: utf-8
+// Last update: 2003/10/29
+// Distributed under the same terms as the calendar itself.
+
+// full day names
+Calendar._DN = new Array
+("Nede\u00c4\u013ea",
+ "Pondelok",
+ "Utorok",
+ "Streda",
+ "\u0139\u00a0tvrtok",
+ "Piatok",
+ "Sobota",
+ "Nede\u00c4\u013ea");
+
+// short day names
+Calendar._SDN = new Array
+("Ned",
+ "Pon",
+ "Uto",
+ "Str",
+ "\u0139\u00a0tv",
+ "Pia",
+ "Sob",
+ "Ned");
+
+// full month names
+Calendar._MN = new Array
+("Janu\u0102\u02c7r",
+ "Febru\u0102\u02c7r",
+ "Marec",
+ "Apr\u0102\u00adl",
+ "M\u0102\u02c7j",
+ "J\u0102\u015fn",
+ "J\u0102\u015fl",
+ "August",
+ "September",
+ "Okt\u0102\u0142ber",
+ "November",
+ "December");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "M\u0102\u02c7j",
+ "J\u0102\u015fn",
+ "J\u0102\u015fl",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "O kalend\u0102\u02c7ri";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
+"Posledn\u0102\u015f verziu n\u0102\u02c7jdete na: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuovan\u0102\u00a9 pod GNU LGPL.  Vi\u00c4\u0179 http://gnu.org/licenses/lgpl.html pre detaily." +
+"\n\n" +
+"V\u0102\u02ddber d\u0102\u02c7tumu:\n" +
+"- Pou\u0139\u013eite tla\u00c4\u0164idl\u0102\u02c7 \xab, \xbb pre v\u0102\u02ddber roku\n" +
+"- Pou\u0139\u013eite tla\u00c4\u0164idl\u0102\u02c7 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pre v\u0102\u02ddber mesiaca\n" +
+"- Ak ktor\u0102\u00a9ko\u00c4\u013evek z t\u0102\u02ddchto tla\u00c4\u0164idiel podr\u0139\u013e\u0102\u00adte dlh\u0139\u02c7ie, zobraz\u0102\u00ad sa r\u0102\u02ddchly v\u0102\u02ddber.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"V\u0102\u02ddber \u00c4\u0164asu:\n" +
+"- Kliknutie na niektor\u0102\u015f polo\u0139\u013eku \u00c4\u0164asu ju zv\u0102\u02dd\u0139\u02c7i\n" +
+"- Shift-klik ju zn\u0102\u00ad\u0139\u013ei\n" +
+"- Ak podr\u0139\u013e\u0102\u00adte tla\u00c4\u0164\u0102\u00adtko stla\u00c4\u0164en\u0102\u00a9, pos\u0102\u015fvan\u0102\u00adm men\u0102\u00adte hodnotu.";
+
+Calendar._TT["PREV_YEAR"] = "Predo\u0139\u02c7l\u0102\u02dd rok (podr\u0139\u013ete pre menu)";
+Calendar._TT["PREV_MONTH"] = "Predo\u0139\u02c7l\u0102\u02dd mesiac (podr\u0139\u013ete pre menu)";
+Calendar._TT["GO_TODAY"] = "Prejs\u0139\u0104 na dne\u0139\u02c7ok";
+Calendar._TT["NEXT_MONTH"] = "Nasl. mesiac (podr\u0139\u013ete pre menu)";
+Calendar._TT["NEXT_YEAR"] = "Nasl. rok (podr\u0139\u013ete pre menu)";
+Calendar._TT["SEL_DATE"] = "Zvo\u00c4\u013ete d\u0102\u02c7tum";
+Calendar._TT["DRAG_TO_MOVE"] = "Podr\u0139\u013ean\u0102\u00adm tla\u00c4\u0164\u0102\u00adtka zmen\u0102\u00adte polohu";
+Calendar._TT["PART_TODAY"] = " (dnes)";
+Calendar._TT["MON_FIRST"] = "Zobrazi\u0139\u0104 pondelok ako prv\u0102\u02dd";
+Calendar._TT["SUN_FIRST"] = "Zobrazi\u0139\u0104 nede\u00c4\u013eu ako prv\u0102\u015f";
+Calendar._TT["CLOSE"] = "Zavrie\u0139\u0104";
+Calendar._TT["TODAY"] = "Dnes";
+Calendar._TT["TIME_PART"] = "(Shift-)klik/\u0139\u0104ahanie zmen\u0102\u00ad hodnotu";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "$d. %m. %Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %e. %b";
+
+Calendar._TT["WK"] = "t\u0102\u02dd\u0139\u013e";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-sk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-lt.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-lt.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-lt.js	(revision 838)
@@ -0,0 +1,119 @@
+// ** I18N
+
+// Calendar LT language
+// Author: Martynas Majeris, <martynas@solmetra.lt>
+// Encoding: UTF-8
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Sekmadienis",
+ "Pirmadienis",
+ "Antradienis",
+ "Tre\u010diadienis",
+ "Ketvirtadienis",
+ "Pentadienis",
+ "\u0160e\u0161tadienis",
+ "Sekmadienis");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Sek",
+ "Pir",
+ "Ant",
+ "Tre",
+ "Ket",
+ "Pen",
+ "\u0160e\u0161",
+ "Sek");
+
+// full month names
+Calendar._MN = new Array
+("Sausis",
+ "Vasaris",
+ "Kovas",
+ "Balandis",
+ "Gegu\u017e\u0117",
+ "Bir\u017eelis",
+ "Liepa",
+ "Rugpj\u016btis",
+ "Rugs\u0117jis",
+ "Spalis",
+ "Lapkritis",
+ "Gruodis");
+
+// short month names
+Calendar._SMN = new Array
+("Sau",
+ "Vas",
+ "Kov",
+ "Bal",
+ "Geg",
+ "Bir",
+ "Lie",
+ "Rgp",
+ "Rgs",
+ "Spa",
+ "Lap",
+ "Gru");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Apie kalendori\u0173";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Naujausi\u0105 versij\u0105 rasite: http://www.dynarch.com/projects/calendar/\n" +
+"Platinamas pagal GNU LGPL licencij\u0105. Aplankykite http://gnu.org/licenses/lgpl.html" +
+"\n\n" +
+"Datos pasirinkimas:\n" +
+"- Met\u0173 pasirinkimas: \xab, \xbb\n" +
+"- M\u0117nesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
+"- Nuspauskite ir laikykite pel\u0117s klavi\u0161\u0105 greitesniam pasirinkimui.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Laiko pasirinkimas:\n" +
+"- Spustelkite ant valand\u0173 arba minu\u010di\u0173 - skai\u010dius padid\u0117s vienetu.\n" +
+"- Jei spausite kartu su Shift, skai\u010dius suma\u017e\u0117s.\n" +
+"- Greitam pasirinkimui spustelkite ir pajudinkite pel\u0119.";
+
+Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)";
+Calendar._TT["PREV_MONTH"] = "Ankstesnis m\u0117nuo (laikykite, jei norite meniu)";
+Calendar._TT["GO_TODAY"] = "Pasirinkti \u0161iandien\u0105";
+Calendar._TT["NEXT_MONTH"] = "Kitas m\u0117nuo (laikykite, jei norite meniu)";
+Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)";
+Calendar._TT["SEL_DATE"] = "Pasirinkite dat\u0105";
+Calendar._TT["DRAG_TO_MOVE"] = "Tempkite";
+Calendar._TT["PART_TODAY"] = " (\u0161iandien)";
+Calendar._TT["MON_FIRST"] = "Pirma savait\u0117s diena - pirmadienis";
+Calendar._TT["SUN_FIRST"] = "Pirma savait\u0117s diena - sekmadienis";
+Calendar._TT["CLOSE"] = "U\u017edaryti";
+Calendar._TT["TODAY"] = "\u0160iandien";
+Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d";
+
+Calendar._TT["WK"] = "sav";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-lt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-ro.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-ro.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-ro.js	(revision 838)
@@ -0,0 +1,66 @@
+// ** I18N
+Calendar._DN = new Array
+("Duminic\u0103",
+ "Luni",
+ "Mar\u0163i",
+ "Miercuri",
+ "Joi",
+ "Vineri",
+ "S\u00e2mb\u0103t\u0103",
+ "Duminic\u0103");
+Calendar._SDN_len = 2;
+Calendar._MN = new Array
+("Ianuarie",
+ "Februarie",
+ "Martie",
+ "Aprilie",
+ "Mai",
+ "Iunie",
+ "Iulie",
+ "August",
+ "Septembrie",
+ "Octombrie",
+ "Noiembrie",
+ "Decembrie");
+
+// tooltips
+Calendar._TT = {};
+
+Calendar._TT["INFO"] = "Despre calendar";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Pentru ultima versiune vizita\u0163i: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuit sub GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Selec\u0163ia datei:\n" +
+"- Folosi\u0163i butoanele \xab, \xbb pentru a selecta anul\n" +
+"- Folosi\u0163i butoanele " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pentru a selecta luna\n" +
+"- Tine\u0163i butonul mouse-ului ap\u0103sat pentru selec\u0163ie mai rapid\u0103.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selec\u0163ia orei:\n" +
+"- Click pe ora sau minut pentru a m\u0103ri valoarea cu 1\n" +
+"- Sau Shift-Click pentru a mic\u015fora valoarea cu 1\n" +
+"- Sau Click \u015fi drag pentru a selecta mai repede.";
+
+Calendar._TT["PREV_YEAR"] = "Anul precedent (lung pt menu)";
+Calendar._TT["PREV_MONTH"] = "Luna precedent\u0103 (lung pt menu)";
+Calendar._TT["GO_TODAY"] = "Data de azi";
+Calendar._TT["NEXT_MONTH"] = "Luna urm\u0103toare (lung pt menu)";
+Calendar._TT["NEXT_YEAR"] = "Anul urm\u0103tor (lung pt menu)";
+Calendar._TT["SEL_DATE"] = "Selecteaz\u0103 data";
+Calendar._TT["DRAG_TO_MOVE"] = "Trage pentru a mi\u015fca";
+Calendar._TT["PART_TODAY"] = " (ast\u0103zi)";
+Calendar._TT["DAY_FIRST"] = "Afi\u015feaz\u0103 %s prima zi";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["CLOSE"] = "\u00cenchide";
+Calendar._TT["TODAY"] = "Ast\u0103zi";
+Calendar._TT["TIME_PART"] = "(Shift-)Click sau drag pentru a selecta";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %d %B";
+
+Calendar._TT["WK"] = "spt";
+Calendar._TT["TIME"] = "Ora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-ro.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-lv.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-lv.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-lv.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar LV language
+// Author: Juris Valdovskis, <juris@dc.lv>
+// Encoding: cp1257
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Sv\u0113tdiena",
+ "Pirmdiena",
+ "Otrdiena",
+ "Tre\u0161diena",
+ "Ceturdiena",
+ "Piektdiena",
+ "Sestdiena",
+ "Sv\u0113tdiena");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Sv",
+ "Pr",
+ "Ot",
+ "Tr",
+ "Ce",
+ "Pk",
+ "Se",
+ "Sv");
+
+// full month names
+Calendar._MN = new Array
+("Janv\u0101ris",
+ "Febru\u0101ris",
+ "Marts",
+ "Apr\u012blis",
+ "Maijs",
+ "J\u016bnijs",
+ "J\u016blijs",
+ "Augusts",
+ "Septembris",
+ "Oktobris",
+ "Novembris",
+ "Decembris");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "Mai",
+ "J\u016bn",
+ "J\u016bl",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Par kalend\u0101ru";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Datuma izv\u0113le:\n" +
+"- Izmanto \xab, \xbb pogas, lai izv\u0113l\u0113tos gadu\n" +
+"- Izmanto " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "pogas, lai izv\u0113l\u0113tos m\u0113nesi\n" +
+"- Turi nospiestu peles pogu uz jebkuru no augst\u0101k min\u0113taj\u0101m pog\u0101m, lai pa\u0101trin\u0101tu izv\u0113li.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Laika izv\u0113le:\n" +
+"- Uzklik\u0161\u0137ini uz jebkuru no laika da\u013c\u0101m, lai palielin\u0101tu to\n" +
+"- vai Shift-klik\u0161\u0137is, lai samazin\u0101tu to\n" +
+"- vai noklik\u0161\u0137ini un velc uz attiec\u012bgo virzienu lai main\u012btu \u0101tr\u0101k.";
+
+Calendar._TT["PREV_YEAR"] = "Iepr. gads (turi izv\u0113lnei)";
+Calendar._TT["PREV_MONTH"] = "Iepr. m\u0113nesis (turi izv\u0113lnei)";
+Calendar._TT["GO_TODAY"] = "\u0160odien";
+Calendar._TT["NEXT_MONTH"] = "N\u0101ko\u0161ais m\u0113nesis (turi izv\u0113lnei)";
+Calendar._TT["NEXT_YEAR"] = "N\u0101ko\u0161ais gads (turi izv\u0113lnei)";
+Calendar._TT["SEL_DATE"] = "Izv\u0113lies datumu";
+Calendar._TT["DRAG_TO_MOVE"] = "Velc, lai p\u0101rvietotu";
+Calendar._TT["PART_TODAY"] = " (\u0161odien)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Att\u0113lot %s k\u0101 pirmo";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "1,7";
+
+Calendar._TT["CLOSE"] = "Aizv\u0113rt";
+Calendar._TT["TODAY"] = "\u0160odien";
+Calendar._TT["TIME_PART"] = "(Shift-)Klik\u0161\u0137is vai p\u0101rvieto, lai main\u012btu";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "Laiks:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-lv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-ca.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-ca.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-ca.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar CA language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Diumenge",
+ "Dilluns",
+ "Dimarts",
+ "Dimecres",
+ "Dijous",
+ "Divendres",
+ "Dissabte",
+ "Diumenge");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Diu",
+ "Dil",
+ "Dmt",
+ "Dmc",
+ "Dij",
+ "Div",
+ "Dis",
+ "Diu");
+
+// full month names
+Calendar._MN = new Array
+("Gener",
+ "Febrer",
+ "Mar\u00e7",
+ "Abril",
+ "Maig",
+ "Juny",
+ "Juliol",
+ "Agost",
+ "Setembre",
+ "Octubre",
+ "Novembre",
+ "Desembre");
+
+// short month names
+Calendar._SMN = new Array
+("Gen",
+ "Feb",
+ "Mar",
+ "Abr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Ago",
+ "Set",
+ "Oct",
+ "Nov",
+ "Des");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Sobre el calendari";
+
+Calendar._TT["ABOUT"] =
+"DHTML Selector de Data/Hora\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Sel.lecci\u00f3 de Dates:\n" +
+"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" +
+"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" +
+"- Mant\u00e9 el ratol\u00ed apretat en qualsevol dels anteriors per sel.lecci\u00f3 r\u00e0pida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Time selection:\n" +
+"- claca en qualsevol de les parts de la hora per augmentar-les\n" +
+"- o Shift-click per decrementar-la\n" +
+"- or click and arrastra per sel.lecci\u00f3 r\u00e0pida.";
+
+Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)";
+Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)";
+Calendar._TT["GO_TODAY"] = "Anar a avui";
+Calendar._TT["NEXT_MONTH"] = "Mes seg\u00fcent (Mantenir per menu)";
+Calendar._TT["NEXT_YEAR"] = "Any seg\u00fcent (Mantenir per menu)";
+Calendar._TT["SEL_DATE"] = "Sel.leccionar data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure";
+Calendar._TT["PART_TODAY"] = " (avui)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Mostra %s primer";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Tanca";
+Calendar._TT["TODAY"] = "Avui";
+Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "st";
+Calendar._TT["TIME"] = "Hora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-ca.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-da.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-da.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-da.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar DA language
+// Author: Michael Thingmand Henriksen, <michael (a) thingmand dot dk>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible. We strongly believe that
+// Unicode is the answer to a real internationalized world. Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("S\u00f8ndag",
+"Mandag",
+"Tirsdag",
+"Onsdag",
+"Torsdag",
+"Fredag",
+"L\u00f8rdag",
+"S\u00f8ndag");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary. We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+// Calendar._SDN_len = N; // short day name length
+// Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("S\u00f8n",
+"Man",
+"Tir",
+"Ons",
+"Tor",
+"Fre",
+"L\u00f8r",
+"S\u00f8n");
+
+// full month names
+Calendar._MN = new Array
+("Januar",
+"Februar",
+"Marts",
+"April",
+"Maj",
+"Juni",
+"Juli",
+"August",
+"September",
+"Oktober",
+"November",
+"December");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+"Feb",
+"Mar",
+"Apr",
+"Maj",
+"Jun",
+"Jul",
+"Aug",
+"Sep",
+"Okt",
+"Nov",
+"Dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Om Kalenderen";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For den seneste version bes\u00f8g: http://www.dynarch.com/projects/calendar/\n"; +
+"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
+"\n\n" +
+"Valg af dato:\n" +
+"- Brug \xab, \xbb knapperne for at v\u00e6lge \u00e5r\n" +
+"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at v\u00e6lge m\u00e5ned\n" +
+"- Hold knappen p\u00e5 musen nede p\u00e5 knapperne ovenfor for hurtigere valg.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Valg af tid:\n" +
+"- Klik p\u00e5 en vilk\u00e5rlig del for st\u00f8rre v\u00e6rdi\n" +
+"- eller Shift-klik for for mindre v\u00e6rdi\n" +
+"- eller klik og tr\u00e6k for hurtigere valg.";
+
+Calendar._TT["PREV_YEAR"] = "\u00c9t \u00e5r tilbage (hold for menu)";
+Calendar._TT["PREV_MONTH"] = "\u00c9n m\u00e5ned tilbage (hold for menu)";
+Calendar._TT["GO_TODAY"] = "G\u00e5 til i dag";
+Calendar._TT["NEXT_MONTH"] = "\u00c9n m\u00e5ned frem (hold for menu)";
+Calendar._TT["NEXT_YEAR"] = "\u00c9t \u00e5r frem (hold for menu)";
+Calendar._TT["SEL_DATE"] = "V\u00e6lg dag";
+Calendar._TT["DRAG_TO_MOVE"] = "Tr\u00e6k vinduet";
+Calendar._TT["PART_TODAY"] = " (i dag)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Vis %s f\u00f8rst";
+
+// This may be locale-dependent. It specifies the week-end days, as an array
+// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Luk";
+Calendar._TT["TODAY"] = "I dag";
+Calendar._TT["TIME_PART"] = "(Shift-)klik eller tr\u00e6k for at \u00e6ndre v\u00e6rdi";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Uge";
+Calendar._TT["TIME"] = "Tid:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-da.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-tr.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-tr.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-tr.js	(revision 838)
@@ -0,0 +1,61 @@
+//////////////////////////////////////////////////////////////////////////////////////////////
+//	Turkish Translation by Nuri AKMAN
+//	Location: Ankara/TURKEY
+//	e-mail	: nuriakman@hotmail.com
+//	Date	: April, 9 2003
+//
+//	Note: if Turkish Characters does not shown on you screen
+//		  please include falowing line your html code:
+//
+//		  <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
+//
+//////////////////////////////////////////////////////////////////////////////////////////////
+
+// ** I18N
+Calendar._DN = new Array
+("Pazar",
+ "Pazartesi",
+ "Sal\u0131",
+ "\u00c7ar\u015famba",
+ "Per\u015fembe",
+ "Cuma",
+ "Cumartesi",
+ "Pazar");
+Calendar._MN = new Array
+("Ocak",
+ "\u015eubat",
+ "Mart",
+ "Nisan",
+ "May\u0131s",
+ "Haziran",
+ "Temmuz",
+ "A\u011fustos",
+ "Eyl\u00fcl",
+ "Ekim",
+ "Kas\u0131m",
+ "Aral\u0131k");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Haftan\u0131n ilk g\u00fcn\u00fcn\u00fc kayd\u0131r";
+Calendar._TT["PREV_YEAR"] = "\u00d6nceki Y\u0131l (Men\u00fc i\u00e7in bas\u0131l\u0131 tutunuz)";
+Calendar._TT["PREV_MONTH"] = "\u00d6nceki Ay (Men\u00fc i\u00e7in bas\u0131l\u0131 tutunuz)";
+Calendar._TT["GO_TODAY"] = "Bug\u00fcn'e git";
+Calendar._TT["NEXT_MONTH"] = "Sonraki Ay (Men\u00fc i\u00e7in bas\u0131l\u0131 tutunuz)";
+Calendar._TT["NEXT_YEAR"] = "Sonraki Y\u0131l (Men\u00fc i\u00e7in bas\u0131l\u0131 tutunuz)";
+Calendar._TT["SEL_DATE"] = "Tarih se\u00e7iniz";
+Calendar._TT["DRAG_TO_MOVE"] = "Ta\u015f\u0131mak i\u00e7in s\u00fcr\u00fckleyiniz";
+Calendar._TT["PART_TODAY"] = " (bug\u00fcn)";
+Calendar._TT["MON_FIRST"] = "Takvim Pazartesi g\u00fcn\u00fcnden ba\u015flas\u0131n";
+Calendar._TT["SUN_FIRST"] = "Takvim Pazar g\u00fcn\u00fcnden ba\u015flas\u0131n";
+Calendar._TT["CLOSE"] = "Kapat";
+Calendar._TT["TODAY"] = "Bug\u00fcn";
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
+Calendar._TT["TT_DATE_FORMAT"] = "d MM y, DD";
+Calendar._TT["WK"] = "Hafta";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+Calendar._TT["TIME"] = "Time:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-tr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-ru.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-ru.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-ru.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar RU language
+// Translation: Sly Golovanov, http://golovanov.net, <sly@golovanov.net>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
+ "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a",
+ "\u0432\u0442\u043e\u0440\u043d\u0438\u043a",
+ "\u0441\u0440\u0435\u0434\u0430",
+ "\u0447\u0435\u0442\u0432\u0435\u0440\u0433",
+ "\u043f\u044f\u0442\u043d\u0438\u0446\u0430",
+ "\u0441\u0443\u0431\u0431\u043e\u0442\u0430",
+ "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("\u0432\u0441\u043a",
+ "\u043f\u043e\u043d",
+ "\u0432\u0442\u0440",
+ "\u0441\u0440\u0434",
+ "\u0447\u0435\u0442",
+ "\u043f\u044f\u0442",
+ "\u0441\u0443\u0431",
+ "\u0432\u0441\u043a");
+
+// full month names
+Calendar._MN = new Array
+("\u044f\u043d\u0432\u0430\u0440\u044c",
+ "\u0444\u0435\u0432\u0440\u0430\u043b\u044c",
+ "\u043c\u0430\u0440\u0442",
+ "\u0430\u043f\u0440\u0435\u043b\u044c",
+ "\u043c\u0430\u0439",
+ "\u0438\u044e\u043d\u044c",
+ "\u0438\u044e\u043b\u044c",
+ "\u0430\u0432\u0433\u0443\u0441\u0442",
+ "\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c",
+ "\u043e\u043a\u0442\u044f\u0431\u0440\u044c",
+ "\u043d\u043e\u044f\u0431\u0440\u044c",
+ "\u0434\u0435\u043a\u0430\u0431\u0440\u044c");
+
+// short month names
+Calendar._SMN = new Array
+("\u044f\u043d\u0432",
+ "\u0444\u0435\u0432",
+ "\u043c\u0430\u0440",
+ "\u0430\u043f\u0440",
+ "\u043c\u0430\u0439",
+ "\u0438\u044e\u043d",
+ "\u0438\u044e\u043b",
+ "\u0430\u0432\u0433",
+ "\u0441\u0435\u043d",
+ "\u043e\u043a\u0442",
+ "\u043d\u043e\u044f",
+ "\u0434\u0435\u043a");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "\u041e \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435...";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u0442\u0443:\n" +
+"- \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043d\u043e\u043f\u043e\u043a \xab, \xbb \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0434\n" +
+"- \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043d\u043e\u043f\u043e\u043a " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u0435\u0441\u044f\u0446\n" +
+"- \u041f\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0435 \u044d\u0442\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430\u0436\u0430\u0442\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u0435\u043d\u044e \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f:\n" +
+"- \u041f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 \u043d\u0430 \u0447\u0430\u0441\u0430\u0445 \u0438\u043b\u0438 \u043c\u0438\u043d\u0443\u0442\u0430\u0445 \u043e\u043d\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f\n" +
+"- \u043f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 \u0441 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 Shift \u043e\u043d\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442\u0441\u044f\n" +
+"- \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u0432\u043b\u0435\u0432\u043e/\u0432\u043f\u0440\u0430\u0432\u043e, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435.";
+
+Calendar._TT["PREV_YEAR"] = "\u041d\u0430 \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 (\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044e)";
+Calendar._TT["PREV_MONTH"] = "\u041d\u0430 \u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 (\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044e)";
+Calendar._TT["GO_TODAY"] = "\u0421\u0435\u0433\u043e\u0434\u043d\u044f";
+Calendar._TT["NEXT_MONTH"] = "\u041d\u0430 \u043c\u0435\u0441\u044f\u0446 \u0432\u043f\u0435\u0440\u0435\u0434 (\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044e)";
+Calendar._TT["NEXT_YEAR"] = "\u041d\u0430 \u0433\u043e\u0434 \u0432\u043f\u0435\u0440\u0435\u0434 (\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044e)";
+Calendar._TT["SEL_DATE"] = "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0430\u0442\u0443";
+Calendar._TT["DRAG_TO_MOVE"] = "\u041f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0439\u0442\u0435 \u043c\u044b\u0448\u043a\u043e\u0439";
+Calendar._TT["PART_TODAY"] = " (\u0441\u0435\u0433\u043e\u0434\u043d\u044f)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "\u041f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u043d\u0435\u0434\u0435\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 %s";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "\u0417\u0430\u043a\u0440\u044b\u0442\u044c";
+Calendar._TT["TODAY"] = "\u0421\u0435\u0433\u043e\u0434\u043d\u044f";
+Calendar._TT["TIME_PART"] = "(Shift-)\u043a\u043b\u0438\u043a \u0438\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a";
+
+Calendar._TT["WK"] = "\u043d\u0435\u0434";
+Calendar._TT["TIME"] = "\u0412\u0440\u0435\u043c\u044f:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-ru.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-af.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-af.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-af.js	(revision 838)
@@ -0,0 +1,48 @@
+// ** I18N Afrikaans
+Calendar._DN = new Array
+("Sondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrydag",
+ "Saterdag",
+ "Sondag");
+Calendar._MN = new Array
+("Januarie",
+ "Februarie",
+ "Maart",
+ "April",
+ "Mei",
+ "Junie",
+ "Julie",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "Desember");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
+Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
+Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
+Calendar._TT["GO_TODAY"] = "Gaan na vandag";
+Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
+Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
+Calendar._TT["SEL_DATE"] = "Kies datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
+Calendar._TT["PART_TODAY"] = " (vandag)";
+Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
+Calendar._TT["SUN_FIRST"] = "Display Sunday first";
+Calendar._TT["CLOSE"] = "Close";
+Calendar._TT["TODAY"] = "Today";
+
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-af.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-bg.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-bg.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-bg.js	(revision 838)
@@ -0,0 +1,125 @@
+// ** I18N
+
+// Calendar BG language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Translator: Valentin Sheiretsky, <valio@valio.eu.org>
+// Encoding: Windows-1251
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("\u041d\u0435\u0434\u0435\u043b\u044f",
+ "\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a",
+ "\u0412\u0442\u043e\u0440\u043d\u0438\u043a",
+ "\u0421\u0440\u044f\u0434\u0430",
+ "\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a",
+ "\u041f\u0435\u0442\u044a\u043a",
+ "\u0421\u044a\u0431\u043e\u0442\u0430",
+ "\u041d\u0435\u0434\u0435\u043b\u044f");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("\u041d\u0435\u0434",
+ "\u041f\u043e\u043d",
+ "\u0412\u0442\u043e",
+ "\u0421\u0440\u044f",
+ "\u0427\u0435\u0442",
+ "\u041f\u0435\u0442",
+ "\u0421\u044a\u0431",
+ "\u041d\u0435\u0434");
+
+// full month names
+Calendar._MN = new Array
+("\u042f\u043d\u0443\u0430\u0440\u0438",
+ "\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438",
+ "\u041c\u0430\u0440\u0442",
+ "\u0410\u043f\u0440\u0438\u043b",
+ "\u041c\u0430\u0439",
+ "\u042e\u043d\u0438",
+ "\u042e\u043b\u0438",
+ "\u0410\u0432\u0433\u0443\u0441\u0442",
+ "\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438",
+ "\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438",
+ "\u041d\u043e\u0435\u043c\u0432\u0440\u0438",
+ "\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438");
+
+// short month names
+Calendar._SMN = new Array
+("\u042f\u043d\u0443",
+ "\u0424\u0435\u0432",
+ "\u041c\u0430\u0440",
+ "\u0410\u043f\u0440",
+ "\u041c\u0430\u0439",
+ "\u042e\u043d\u0438",
+ "\u042e\u043b\u0438",
+ "\u0410\u0432\u0433",
+ "\u0421\u0435\u043f",
+ "\u041e\u043a\u0442",
+ "\u041d\u043e\u0435",
+ "\u0414\u0435\u043a");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Date selection:\n" +
+"- Use the \xab, \xbb buttons to select year\n" +
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
+"- Hold mouse button on any of the above buttons for faster selection.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Time selection:\n" +
+"- Click on any of the time parts to increase it\n" +
+"- or Shift-click to decrease it\n" +
+"- or click and drag for faster selection.";
+
+Calendar._TT["PREV_YEAR"] = "\u041f\u0440\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430 (\u0437\u0430\u0434\u0440\u044a\u0436\u0442\u0435 \u0437\u0430 \u043c\u0435\u043d\u044e)";
+Calendar._TT["PREV_MONTH"] = "\u041f\u0440\u0435\u0434\u0435\u043d \u043c\u0435\u0441\u0435\u0446 (\u0437\u0430\u0434\u0440\u044a\u0436\u0442\u0435 \u0437\u0430 \u043c\u0435\u043d\u044e)";
+Calendar._TT["GO_TODAY"] = "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u043d\u0435\u0441";
+Calendar._TT["NEXT_MONTH"] = "\u0421\u043b\u0435\u0434\u0432\u0430\u0449 \u043c\u0435\u0441\u0435\u0446 (\u0437\u0430\u0434\u0440\u044a\u0436\u0442\u0435 \u0437\u0430 \u043c\u0435\u043d\u044e)";
+Calendar._TT["NEXT_YEAR"] = "\u0421\u043b\u0435\u0434\u0432\u0430\u0449\u0430 \u0433\u043e\u0434\u0438\u043d\u0430 (\u0437\u0430\u0434\u0440\u044a\u0436\u0442\u0435 \u0437\u0430 \u043c\u0435\u043d\u044e)";
+Calendar._TT["SEL_DATE"] = "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u0442\u0430";
+Calendar._TT["DRAG_TO_MOVE"] = "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435";
+Calendar._TT["PART_TODAY"] = " (\u0434\u043d\u0435\u0441)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "%s \u043a\u0430\u0442\u043e \u043f\u044a\u0440\u0432\u0438 \u0434\u0435\u043d";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u0442\u0435";
+Calendar._TT["TODAY"] = "\u0414\u043d\u0435\u0441";
+Calendar._TT["TIME_PART"] = "(Shift-)Click \u0438\u043b\u0438 drag \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u043c\u0435\u043d\u0438\u0442\u0435 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0442\u0430";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y";
+
+Calendar._TT["WK"] = "\u0421\u0435\u0434\u043c";
+Calendar._TT["TIME"] = "\u0427\u0430\u0441:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-bg.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-sv.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-sv.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-sv.js	(revision 838)
@@ -0,0 +1,97 @@
+// ** I18N
+
+// Calendar SV language (Swedish, svenska)
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Translation team: <sv@li.org>
+// Translator: Leonard Norrg\u00e5rd <leonard.norrgard@refactor.fi>
+// Last translator: Leonard Norrg\u00e5rd <leonard.norrgard@refactor.fi>
+// Encoding: iso-latin-1
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("s\u00f6ndag",
+ "m\u00e5ndag",
+ "tisdag",
+ "onsdag",
+ "torsdag",
+ "fredag",
+ "l\u00f6rdag",
+ "s\u00f6ndag");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+Calendar._SDN_len = 2;
+Calendar._SMN_len = 3;
+
+// full month names
+Calendar._MN = new Array
+("januari",
+ "februari",
+ "mars",
+ "april",
+ "maj",
+ "juni",
+ "juli",
+ "augusti",
+ "september",
+ "oktober",
+ "november",
+ "december");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Om kalendern";
+
+Calendar._TT["ABOUT"] =
+"DHTML Datum/tid-v\u00e4ljare\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"F\u00f6r senaste version g\u00e5 till: http://www.dynarch.com/projects/calendar/\n" +
+"Distribueras under GNU LGPL.  Se http://gnu.org/licenses/lgpl.html f\u00f6r detaljer." +
+"\n\n" +
+"Val av datum:\n" +
+"- Anv\u00e4nd knapparna \xab, \xbb f\u00f6r att v\u00e4lja \u00e5r\n" +
+"- Anv\u00e4nd knapparna " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " f\u00f6r att v\u00e4lja m\u00e5nad\n" +
+"- H\u00e5ll musknappen nedtryckt p\u00e5 n\u00e5gon av ovanst\u00e5ende knappar f\u00f6r snabbare val.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Val av tid:\n" +
+"- Klicka p\u00e5 en del av tiden f\u00f6r att \u00f6ka den delen\n" +
+"- eller skift-klicka f\u00f6r att minska den\n" +
+"- eller klicka och drag f\u00f6r snabbare val.";
+
+Calendar._TT["PREV_YEAR"] = "F\u00f6reg\u00e5ende \u00e5r (h\u00e5ll f\u00f6r menu)";
+Calendar._TT["PREV_MONTH"] = "F\u00f6reg\u00e5ende m\u00e5nad (h\u00e5ll f\u00f6r menu)";
+Calendar._TT["GO_TODAY"] = "G\u00e5 till dagens datum";
+Calendar._TT["NEXT_MONTH"] = "F\u00f6ljande m\u00e5nad (h\u00e5ll f\u00f6r menu)";
+Calendar._TT["NEXT_YEAR"] = "F\u00f6ljande \u00e5r (h\u00e5ll f\u00f6r menu)";
+Calendar._TT["SEL_DATE"] = "V\u00e4lj datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Drag f\u00f6r att flytta";
+Calendar._TT["PART_TODAY"] = " (idag)";
+Calendar._TT["MON_FIRST"] = "Visa m\u00e5ndag f\u00f6rst";
+Calendar._TT["SUN_FIRST"] = "Visa s\u00f6ndag f\u00f6rst";
+Calendar._TT["CLOSE"] = "St\u00e4ng";
+Calendar._TT["TODAY"] = "Idag";
+Calendar._TT["TIME_PART"] = "(Skift-)klicka eller drag f\u00f6r att \u00e4ndra tid";
+
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y";
+
+Calendar._TT["WK"] = "vecka";
+
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+Calendar._TT["WEEKEND"] = "0,6";
+Calendar._TT["TIME"] = "Time:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-sv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-he.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-he.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-he.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar EN language
+// Author: Idan Sofer, <idan@idanso.dyndns.org>
+// Encoding: UTF-8
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("\u05e8\u05d0\u05e9\u05d5\u05df",
+ "\u05e9\u05e0\u05d9",
+ "\u05e9\u05dc\u05d9\u05e9\u05d9",
+ "\u05e8\u05d1\u05d9\u05e2\u05d9",
+ "\u05d7\u05de\u05d9\u05e9\u05d9",
+ "\u05e9\u05d9\u05e9\u05d9",
+ "\u05e9\u05d1\u05ea",
+ "\u05e8\u05d0\u05e9\u05d5\u05df");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("\u05d0",
+ "\u05d1",
+ "\u05d2",
+ "\u05d3",
+ "\u05d4",
+ "\u05d5",
+ "\u05e9",
+ "\u05d0");
+
+// full month names
+Calendar._MN = new Array
+("\u05d9\u05e0\u05d5\u05d0\u05e8",
+ "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8",
+ "\u05de\u05e8\u05e5",
+ "\u05d0\u05e4\u05e8\u05d9\u05dc",
+ "\u05de\u05d0\u05d9",
+ "\u05d9\u05d5\u05e0\u05d9",
+ "\u05d9\u05d5\u05dc\u05d9",
+ "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8",
+ "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8",
+ "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8",
+ "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8",
+ "\u05d3\u05e6\u05de\u05d1\u05e8");
+
+// short month names
+Calendar._SMN = new Array
+("\u05d9\u05e0\u05d0",
+ "\u05e4\u05d1\u05e8",
+ "\u05de\u05e8\u05e5",
+ "\u05d0\u05e4\u05e8",
+ "\u05de\u05d0\u05d9",
+ "\u05d9\u05d5\u05e0",
+ "\u05d9\u05d5\u05dc",
+ "\u05d0\u05d5\u05d2",
+ "\u05e1\u05e4\u05d8",
+ "\u05d0\u05d5\u05e7",
+ "\u05e0\u05d5\u05d1",
+ "\u05d3\u05e6\u05de");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "\u05d0\u05d5\u05d3\u05d5\u05ea \u05d4\u05e9\u05e0\u05ea\u05d5\u05df";
+
+Calendar._TT["ABOUT"] =
+"\u05d1\u05d7\u05e8\u05df \u05ea\u05d0\u05e8\u05d9\u05da/\u05e9\u05e2\u05d4 DHTML\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"\u05d4\u05d2\u05d9\u05e8\u05e1\u05d0 \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05d6\u05de\u05d9\u05e0\u05d4 \u05d1: http://www.dynarch.com/projects/calendar/\n" +
+"\u05de\u05d5\u05e4\u05e5 \u05ea\u05d7\u05ea \u05d6\u05d9\u05db\u05d9\u05d5\u05df \u05d4 GNU LGPL.  \u05e2\u05d9\u05d9\u05df \u05d1 http://gnu.org/licenses/lgpl.html \u05dc\u05e4\u05e8\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd." +
+"\n\n" +
+\u05d1\u05d7\u05d9\u05e8\u05ea \u05ea\u05d0\u05e8\u05d9\u05da:\n" +
+"- \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd \xab, \xbb \u05dc\u05d1\u05d7\u05d9\u05e8\u05ea \u05e9\u05e0\u05d4\n" +
+"- \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " \u05dc\u05d1\u05d7\u05d9\u05e8\u05ea \u05d7\u05d5\u05d3\u05e9\n" +
+"- \u05d4\u05d7\u05d6\u05e7 \u05d4\u05e2\u05db\u05d1\u05e8 \u05dc\u05d7\u05d5\u05e5 \u05de\u05e2\u05dc \u05d4\u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd \u05d4\u05de\u05d5\u05d6\u05db\u05e8\u05d9\u05dd \u05dc\u05e2\u05d9\u05dc \u05dc\u05d1\u05d7\u05d9\u05e8\u05d4 \u05de\u05d4\u05d9\u05e8\u05d4 \u05d9\u05d5\u05ea\u05e8.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"\u05d1\u05d7\u05d9\u05e8\u05ea \u05d6\u05de\u05df:\n" +
+"- \u05dc\u05d7\u05e5 \u05e2\u05dc \u05db\u05dc \u05d0\u05d7\u05d3 \u05de\u05d7\u05dc\u05e7\u05d9 \u05d4\u05d6\u05de\u05df \u05db\u05d3\u05d9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3\n" +
+"- \u05d0\u05d5 shift \u05d1\u05e9\u05d9\u05dc\u05d5\u05d1 \u05e2\u05dd \u05dc\u05d7\u05d9\u05e6\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05d7\u05e1\u05d9\u05e8\n" +
+"- \u05d0\u05d5 \u05dc\u05d7\u05e5 \u05d5\u05d2\u05e8\u05d5\u05e8 \u05dc\u05e4\u05e2\u05d5\u05dc\u05d4 \u05de\u05d4\u05d9\u05e8\u05d4 \u05d9\u05d5\u05ea\u05e8.";
+
+Calendar._TT["PREV_YEAR"] = "\u05e9\u05e0\u05d4 \u05e7\u05d5\u05d3\u05de\u05ea - \u05d4\u05d7\u05d6\u05e7 \u05dc\u05e7\u05d1\u05dc\u05ea \u05ea\u05e4\u05e8\u05d9\u05d8";
+Calendar._TT["PREV_MONTH"] = "\u05d7\u05d5\u05d3\u05e9 \u05e7\u05d5\u05d3\u05dd - \u05d4\u05d7\u05d6\u05e7 \u05dc\u05e7\u05d1\u05dc\u05ea \u05ea\u05e4\u05e8\u05d9\u05d8";
+Calendar._TT["GO_TODAY"] = "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05d4\u05d9\u05d5\u05dd";
+Calendar._TT["NEXT_MONTH"] = "\u05d7\u05d5\u05d3\u05e9 \u05d4\u05d1\u05d0 - \u05d4\u05d7\u05d6\u05e7 \u05dc\u05ea\u05e4\u05e8\u05d9\u05d8";
+Calendar._TT["NEXT_YEAR"] = "\u05e9\u05e0\u05d4 \u05d4\u05d1\u05d0\u05d4 - \u05d4\u05d7\u05d6\u05e7 \u05dc\u05ea\u05e4\u05e8\u05d9\u05d8";
+Calendar._TT["SEL_DATE"] = "\u05d1\u05d7\u05e8 \u05ea\u05d0\u05e8\u05d9\u05da";
+Calendar._TT["DRAG_TO_MOVE"] = "\u05d2\u05e8\u05d5\u05e8 \u05dc\u05d4\u05d6\u05d6\u05d4";
+Calendar._TT["PART_TODAY"] = " )\u05d4\u05d9\u05d5\u05dd(";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "\u05d4\u05e6\u05d2 %s \u05e7\u05d5\u05d3\u05dd";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "6";
+
+Calendar._TT["CLOSE"] = "\u05e1\u05d2\u05d5\u05e8";
+Calendar._TT["TODAY"] = "\u05d4\u05d9\u05d5\u05dd";
+Calendar._TT["TIME_PART"] = "(\u05e9\u05d9\u05e4\u05d8-)\u05dc\u05d7\u05e5 \u05d5\u05d2\u05e8\u05d5\u05e8 \u05db\u05d3\u05d9 \u05dc\u05e9\u05e0\u05d5\u05ea \u05e2\u05e8\u05da";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "\u05e9\u05e2\u05d4::";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-he.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/index.php
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-al.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-al.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-al.js	(revision 838)
@@ -0,0 +1,101 @@
+// Calendar ALBANIAN language
+//author Rigels Gordani rige@hotmail.com
+
+// ditet
+Calendar._DN = new Array
+("E Diele",
+"E Hene",
+"E Marte",
+"E Merkure",
+"E Enjte",
+"E Premte",
+"E Shtune",
+"E Diele");
+
+//ditet shkurt
+Calendar._SDN = new Array
+("Die",
+"Hen",
+"Mar",
+"Mer",
+"Enj",
+"Pre",
+"Sht",
+"Die");
+
+// muajt
+Calendar._MN = new Array
+("Janar",
+"Shkurt",
+"Mars",
+"Prill",
+"Maj",
+"Qeshor",
+"Korrik",
+"Gusht",
+"Shtator",
+"Tetor",
+"Nentor",
+"Dhjetor");
+
+// muajte shkurt
+Calendar._SMN = new Array
+("Jan",
+"Shk",
+"Mar",
+"Pri",
+"Maj",
+"Qes",
+"Kor",
+"Gus",
+"Sht",
+"Tet",
+"Nen",
+"Dhj");
+
+// ndihmesa
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Per kalendarin";
+
+Calendar._TT["ABOUT"] =
+"Zgjedhes i ores/dates ne DHTML \n" +
+"\n\n" +"Zgjedhja e Dates:\n" +
+"- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" +
+"- Perdor  butonat" + String.fromCharCode(0x2039) + ", " + 
+String.fromCharCode(0x203a) +
+" per te  zgjedhur muajin\n" +
+"- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Zgjedhja e kohes:\n" +
+"- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" +
+"- ose kliko me Shift per ta zvogeluar ate\n" +
+"- ose cliko dhe terhiq per zgjedhje me te shpejte.";
+
+Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)";
+Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)";
+Calendar._TT["GO_TODAY"] = "Sot";
+Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)";
+Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)";
+Calendar._TT["SEL_DATE"] = "Zgjidh daten";
+Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur";
+Calendar._TT["PART_TODAY"] = " (sot)";
+
+// "%s" eshte dita e pare e javes
+// %s do te zevendesohet me emrin e dite
+Calendar._TT["DAY_FIRST"] = "Trego te %s te paren";
+
+
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Mbyll";
+Calendar._TT["TODAY"] = "Sot";
+Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar 
+vleren";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Java";
+Calendar._TT["TIME"] = "Koha:";
+

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-al.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-en.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-en.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-en.js	(revision 838)
@@ -0,0 +1,127 @@
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday",
+ "Sunday");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Sun",
+ "Mon",
+ "Tue",
+ "Wed",
+ "Thu",
+ "Fri",
+ "Sat",
+ "Sun");
+
+// First day of the week. "0" means display Sunday first, "1" means display
+// Monday first, etc.
+Calendar._FD = 0;
+
+// full month names
+Calendar._MN = new Array
+("January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "About the calendar";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Date selection:\n" +
+"- Use the \xab, \xbb buttons to select year\n" +
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
+"- Hold mouse button on any of the above buttons for faster selection.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Time selection:\n" +
+"- Click on any of the time parts to increase it\n" +
+"- or Shift-click to decrease it\n" +
+"- or click and drag for faster selection.";
+
+Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
+Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
+Calendar._TT["GO_TODAY"] = "Go Today";
+Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
+Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
+Calendar._TT["SEL_DATE"] = "Select date";
+Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
+Calendar._TT["PART_TODAY"] = " (today)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Display %s first";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Close";
+Calendar._TT["TODAY"] = "Today";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "Time:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-nl.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-nl.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-nl.js	(revision 838)
@@ -0,0 +1,73 @@
+// ** I18N
+Calendar._DN = new Array
+("Zondag",
+ "Maandag",
+ "Dinsdag",
+ "Woensdag",
+ "Donderdag",
+ "Vrijdag",
+ "Zaterdag",
+ "Zondag");
+
+Calendar._SDN_len = 2;
+
+Calendar._MN = new Array
+("Januari",
+ "Februari",
+ "Maart",
+ "April",
+ "Mei",
+ "Juni",
+ "Juli",
+ "Augustus",
+ "September",
+ "Oktober",
+ "November",
+ "December");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Info";
+
+Calendar._TT["ABOUT"] =
+"DHTML Datum/Tijd Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
+"Ga voor de meest recente versie naar: http://www.dynarch.com/projects/calendar/\n" +
+"Verspreid onder de GNU LGPL. Zie http://gnu.org/licenses/lgpl.html voor details." +
+"\n\n" +
+"Datum selectie:\n" +
+"- Gebruik de \xab \xbb knoppen om een jaar te selecteren\n" +
+"- Gebruik de " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knoppen om een maand te selecteren\n" +
+"- Houd de muis ingedrukt op de genoemde knoppen voor een snellere selectie.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Tijd selectie:\n" +
+"- Klik op een willekeurig onderdeel van het tijd gedeelte om het te verhogen\n" +
+"- of Shift-klik om het te verlagen\n" +
+"- of klik en sleep voor een snellere selectie.";
+
+//Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag";
+Calendar._TT["PREV_YEAR"] = "Vorig jaar (ingedrukt voor menu)";
+Calendar._TT["PREV_MONTH"] = "Vorige maand (ingedrukt voor menu)";
+Calendar._TT["GO_TODAY"] = "Ga naar Vandaag";
+Calendar._TT["NEXT_MONTH"] = "Volgende maand (ingedrukt voor menu)";
+Calendar._TT["NEXT_YEAR"] = "Volgend jaar (ingedrukt voor menu)";
+Calendar._TT["SEL_DATE"] = "Selecteer datum";
+Calendar._TT["DRAG_TO_MOVE"] = "Klik en sleep om te verplaatsen";
+Calendar._TT["PART_TODAY"] = " (vandaag)";
+//Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
+//Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
+
+Calendar._TT["DAY_FIRST"] = "Toon %s eerst";
+
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Sluiten";
+Calendar._TT["TODAY"] = "(vandaag)";
+Calendar._TT["TIME_PART"] = "(Shift-)Klik of sleep om de waarde te veranderen";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b %Y";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "Tijd:";
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-pt.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-pt.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-pt.js	(revision 838)
@@ -0,0 +1,123 @@
+// ** I18N
+
+// Calendar pt_BR language
+// Author: Adalberto Machado, <betosm@terra.com.br>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Domingo",
+ "Segunda",
+ "Terca",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sabado",
+ "Domingo");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("Dom",
+ "Seg",
+ "Ter",
+ "Qua",
+ "Qui",
+ "Sex",
+ "Sab",
+ "Dom");
+
+// full month names
+Calendar._MN = new Array
+("Janeiro",
+ "Fevereiro",
+ "Marco",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Fev",
+ "Mar",
+ "Abr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Ago",
+ "Set",
+ "Out",
+ "Nov",
+ "Dez");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Sobre o calendario";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"Ultima versao visite: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuido sobre GNU LGPL.  Veja http://gnu.org/licenses/lgpl.html para detalhes." +
+"\n\n" +
+"Selecao de data:\n" +
+"- Use os botoes \xab, \xbb para selecionar o ano\n" +
+"- Use os botoes " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mes\n" +
+"- Segure o botao do mouse em qualquer um desses botoes para selecao rapida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selecao de hora:\n" +
+"- Clique em qualquer parte da hora para incrementar\n" +
+"- ou Shift-click para decrementar\n" +
+"- ou clique e segure para selecao rapida.";
+
+Calendar._TT["PREV_YEAR"] = "Ant. ano (segure para menu)";
+Calendar._TT["PREV_MONTH"] = "Ant. mes (segure para menu)";
+Calendar._TT["GO_TODAY"] = "Hoje";
+Calendar._TT["NEXT_MONTH"] = "Prox. mes (segure para menu)";
+Calendar._TT["NEXT_YEAR"] = "Prox. ano (segure para menu)";
+Calendar._TT["SEL_DATE"] = "Selecione a data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
+Calendar._TT["PART_TODAY"] = " (hoje)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Mostre %s primeiro";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Fechar";
+Calendar._TT["TODAY"] = "Hoje";
+Calendar._TT["TIME_PART"] = "(Shift-)Click ou arraste para mudar valor";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b";
+
+Calendar._TT["WK"] = "sm";
+Calendar._TT["TIME"] = "Hora:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-pt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/lang/calendar-de.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/lang/calendar-de.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/lang/calendar-de.js	(revision 838)
@@ -0,0 +1,124 @@
+// ** I18N
+
+// Calendar DE language
+// Author: Jack (tR), <jack@jtr.de>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible.  We strongly believe that
+// Unicode is the answer to a real internationalized world.  Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Sonntag",
+ "Montag",
+ "Dienstag",
+ "Mittwoch",
+ "Donnerstag",
+ "Freitag",
+ "Samstag",
+ "Sonntag");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+//   Calendar._SDN_len = N; // short day name length
+//   Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("So",
+ "Mo",
+ "Di",
+ "Mi",
+ "Do",
+ "Fr",
+ "Sa",
+ "So");
+
+// full month names
+Calendar._MN = new Array
+("Januar",
+ "Februar",
+ "M\u00e4rz",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "M\u00e4r",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dez");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Datum ausw\u00e4hlen:\n" +
+"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" +
+"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" +
+"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Zeit ausw\u00e4hlen:\n" +
+"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" +
+"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" +
+"- oder klicken und festhalten f\u00fcr Schnellauswahl.";
+
+Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
+Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)";
+Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)";
+Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen";
+Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)";
+Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)";
+Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
+Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten";
+Calendar._TT["PART_TODAY"] = " (Heute)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s ";
+
+// This may be locale-dependent.  It specifies the week-end days, as an array
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Schlie\u00dfen";
+Calendar._TT["TODAY"] = "Heute";
+Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "wk";
+Calendar._TT["TIME"] = "Zeit:";

Property changes on: tags/2.7.0/wb/include/jscalendar/lang/calendar-de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/jscalendar-functions.php
===================================================================
--- tags/2.7.0/wb/include/jscalendar/jscalendar-functions.php	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/jscalendar-functions.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) { exit(header('Location: ../index.php')); }
+
+// convert string from jscalendar to timestamp.
+// converts dd.mm.yyyy and mm/dd/yyyy, with or without time.
+// strtotime() may fails with e.g. "dd.mm.yyyy" and PHP4
+function jscalendar_to_timestamp($str, $offset='') {
+	$str = trim($str);
+	if($str == '0' || $str == '')
+		return('0');
+	if($offset == '0')
+		$offset = '';
+	// convert to yyyy-mm-dd
+	// "dd.mm.yyyy"?
+	if(preg_match('/^\d{1,2}\.\d{1,2}\.\d{2}(\d{2})?/', $str)) {
+		$str = preg_replace('/^(\d{1,2})\.(\d{1,2})\.(\d{2}(\d{2})?)/', '$3-$2-$1', $str);
+	}
+	// "mm/dd/yyyy"?
+	if(preg_match('#^\d{1,2}/\d{1,2}/(\d{2}(\d{2})?)#', $str)) {
+		$str = preg_replace('#^(\d{1,2})/(\d{1,2})/(\d{2}(\d{2})?)#', '$3-$1-$2', $str);
+	}
+	// use strtotime()
+	if($offset!='')
+		return(strtotime($str, $offset));
+	else
+	return(strtotime($str));
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/jscalendar/jscalendar-functions.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/index.php
===================================================================
--- tags/2.7.0/wb/include/jscalendar/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/jscalendar/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/calendar-system.css
===================================================================
--- tags/2.7.0/wb/include/jscalendar/calendar-system.css	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/calendar-system.css	(revision 838)
@@ -0,0 +1,251 @@
+/* The main calendar widget.  DIV containing a table. */
+
+.calendar {
+  position: relative;
+  display: none;
+  border: 1px solid;
+  border-color: #fff #000 #000 #fff;
+  font-size: 11px;
+  cursor: default;
+  background: Window;
+  color: WindowText;
+  font-family: tahoma,verdana,sans-serif;
+}
+
+.calendar table {
+  border: 1px solid;
+  border-color: #fff #000 #000 #fff;
+  font-size: 11px;
+  cursor: default;
+  background: Window;
+  color: WindowText;
+  font-family: tahoma,verdana,sans-serif;
+}
+
+/* Header part -- contains navigation buttons and day names. */
+
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
+  text-align: center;
+  padding: 1px;
+  border: 1px solid;
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+  background: ButtonFace;
+}
+
+.calendar .nav {
+  background: ButtonFace url(<?php echo WB_URL ?>/include/jscalendar/menuarrow.gif) no-repeat 100% 100%;
+}
+
+.calendar thead .title { /* This holds the current "month, year" */
+  font-weight: bold;
+  padding: 1px;
+  border: 1px solid #000;
+  background: ActiveCaption;
+  color: CaptionText;
+  text-align: center;
+}
+
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
+}
+
+.calendar thead .daynames { /* Row <TR> containing the day names */
+}
+
+.calendar thead .name { /* Cells <TD> containing the day names */
+  border-bottom: 1px solid ButtonShadow;
+  padding: 2px;
+  text-align: center;
+  background: ButtonFace;
+  color: ButtonText;
+}
+
+.calendar thead .weekend { /* How a weekend day name shows in header */
+  color: #f00;
+}
+
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
+  border: 2px solid;
+  padding: 0px;
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+}
+
+.calendar thead .active { /* Active (pressed) buttons in header */
+  border-width: 1px;
+  padding: 2px 0px 0px 2px;
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+
+/* The body part -- contains all the days in month. */
+
+.calendar tbody .day { /* Cells <TD> containing month days dates */
+  width: 2em;
+  text-align: right;
+  padding: 2px 4px 2px 2px;
+}
+.calendar tbody .day.othermonth {
+  font-size: 80%;
+  color: #aaa;
+}
+.calendar tbody .day.othermonth.oweekend {
+  color: #faa;
+}
+
+.calendar table .wn {
+  padding: 2px 3px 2px 2px;
+  border-right: 1px solid ButtonShadow;
+  background: ButtonFace;
+  color: ButtonText;
+}
+
+.calendar tbody .rowhilite td {
+  background: Highlight;
+  color: HighlightText;
+}
+
+.calendar tbody td.hilite { /* Hovered cells <TD> */
+  padding: 1px 3px 1px 1px;
+  border-top: 1px solid #fff;
+  border-right: 1px solid #000;
+  border-bottom: 1px solid #000;
+  border-left: 1px solid #fff;
+}
+
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
+  padding: 2px 2px 0px 2px;
+  border: 1px solid;
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+
+.calendar tbody td.selected { /* Cell showing selected date */
+  font-weight: bold;
+  border: 1px solid;
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+  padding: 2px 2px 0px 2px;
+  background: ButtonFace;
+  color: ButtonText;
+}
+
+.calendar tbody td.weekend { /* Cells showing weekend days */
+  color: #f00;
+}
+
+.calendar tbody td.today { /* Cell showing today date */
+  font-weight: bold;
+  color: #00f;
+}
+
+.calendar tbody td.disabled { color: GrayText; }
+
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
+  visibility: hidden;
+}
+
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
+  display: none;
+}
+
+/* The footer part -- status bar and "Close" button */
+
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
+}
+
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
+  background: ButtonFace;
+  padding: 1px;
+  border: 1px solid;
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+  color: ButtonText;
+  text-align: center;
+}
+
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
+  border-top: 1px solid #fff;
+  border-right: 1px solid #000;
+  border-bottom: 1px solid #000;
+  border-left: 1px solid #fff;
+  padding: 1px;
+  background: #e4e0d8;
+}
+
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
+  padding: 2px 0px 0px 2px;
+  border-top: 1px solid #000;
+  border-right: 1px solid #fff;
+  border-bottom: 1px solid #fff;
+  border-left: 1px solid #000;
+}
+
+/* Combo boxes (menus that display months/years for direct selection) */
+
+.calendar .combo {
+  position: absolute;
+  display: none;
+  width: 4em;
+  top: 0px;
+  left: 0px;
+  cursor: default;
+  border: 1px solid;
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+  background: Menu;
+  color: MenuText;
+  font-size: 90%;
+  padding: 1px;
+  z-index: 100;
+}
+
+.calendar .combo .label,
+.calendar .combo .label-IEfix {
+  text-align: center;
+  padding: 1px;
+}
+
+.calendar .combo .label-IEfix {
+  width: 4em;
+}
+
+.calendar .combo .active {
+  padding: 0px;
+  border: 1px solid #000;
+}
+
+.calendar .combo .hilite {
+  background: Highlight;
+  color: HighlightText;
+}
+
+.calendar td.time {
+  border-top: 1px solid ButtonShadow;
+  padding: 1px 0px;
+  text-align: center;
+  background-color: ButtonFace;
+}
+
+.calendar td.time .hour,
+.calendar td.time .minute,
+.calendar td.time .ampm {
+  padding: 0px 3px 0px 4px;
+  border: 1px solid #889;
+  font-weight: bold;
+  background-color: Menu;
+}
+
+.calendar td.time .ampm {
+  text-align: center;
+}
+
+.calendar td.time .colon {
+  padding: 0px 2px 0px 3px;
+  font-weight: bold;
+}
+
+.calendar td.time span.hilite {
+  border-color: #000;
+  background-color: Highlight;
+  color: HighlightText;
+}
+
+.calendar td.time span.active {
+  border-color: #f00;
+  background-color: #000;
+  color: #0f0;
+}

Property changes on: tags/2.7.0/wb/include/jscalendar/calendar-system.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/wb-setup.php
===================================================================
--- tags/2.7.0/wb/include/jscalendar/wb-setup.php	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/wb-setup.php	(revision 838)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+	import jscalendar css and scripts
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+?>
+<style type="text/css">
+<?php
+require_once(WB_PATH.'/include/jscalendar/calendar-system.css');
+?>
+</style>
+<script type="text/javascript" src="<?php echo WB_URL ?>/include/jscalendar/calendar.js"></script>
+<?php // some stuff for jscalendar
+	// language
+	$jscal_lang = defined('LANGUAGE')?strtolower(LANGUAGE):'en';
+	$jscal_lang = $jscal_lang!=''?$jscal_lang:'en';
+	if(!file_exists(WB_PATH."/include/jscalendar/lang/calendar-$jscal_lang.js")) {
+		$jscal_lang = 'en';
+	}
+	// today
+	$jscal_today = date('Y/m/d');
+	// first-day-of-week
+	$jscal_firstday = '1'; // monday
+	if(LANGUAGE=='EN')
+		$jscal_firstday = '0'; // sunday
+	// date and time format for the text-field and for jscal's "ifFormat". We offer dd.mm.yyyy or yyyy-mm-dd or mm/dd/yyyy
+	// ATTN: strtotime() fails with "dd.mm.yyyy" and PHP4. So the string has to be converted to e.g. "yyyy-mm-dd", which will work.
+	switch(DATE_FORMAT) {
+		case 'd.m.Y':
+		case 'd M Y':
+		case 'l, jS F, Y':
+		case 'jS F, Y':
+		case 'D M d, Y':
+		case 'd-m-Y':
+		case 'd/m/Y':
+			$jscal_format = 'd.m.Y'; // dd.mm.yyyy hh:mm
+			$jscal_ifformat = '%d.%m.%Y';
+			break;
+		case 'm/d/Y':
+		case 'm-d-Y':
+		case 'M d Y':
+		case 'm.d.Y':
+			$jscal_format = 'm/d/Y'; // mm/dd/yyyy hh:mm
+			$jscal_ifformat = '%m/%d/%Y';
+			break;
+		default:
+			$jscal_format = 'Y-m-d'; // yyyy-mm-dd hh:mm
+			$jscal_ifformat = '%Y-%m-%d';
+			break;
+	}
+	if(isset($jscal_use_time) && $jscal_use_time==TRUE) {
+		$jscal_format .= ' H:i';
+		$jscal_ifformat .= ' %H:%M';
+	}
+	// load scripts for jscalendar
+?>
+<script type="text/javascript" src="<?php echo WB_URL ?>/include/jscalendar/lang/calendar-<?php echo $jscal_lang ?>.js"></script>
+<script type="text/javascript" src="<?php echo WB_URL ?>/include/jscalendar/calendar-setup.js"></script>

Property changes on: tags/2.7.0/wb/include/jscalendar/wb-setup.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/README
===================================================================
--- tags/2.7.0/wb/include/jscalendar/README	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/README	(revision 838)
@@ -0,0 +1,84 @@
+The DHTML Calendar
+-------------------
+
+  Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+          http://dynarch.com/mishoo/
+
+  This program is free software published under the
+  terms of the GNU Lesser General Public License.
+
+  For the entire license text please refer to
+  http://www.gnu.org/licenses/lgpl.html
+
+Contents
+---------
+
+  calendar.js     -- the main program file
+  lang/*.js       -- internalization files
+  *.css           -- color themes
+  cal.html        -- example usage file
+  doc/            -- documentation, in PDF and HTML
+  simple-1.html   -- quick setup examples [popup calendars]
+  simple-2.html   -- quick setup example for flat calendar
+  calendar.php    -- PHP wrapper
+  test.php        -- test file for the PHP wrapper
+
+Homepage
+---------
+
+  For details and latest versions please refer to calendar
+  homepage, located on my website:
+
+    http://dynarch.com/mishoo/calendar.epl
+
+
+How to use
+-----------
+
+1. enter this code somewhere _above_ the form
+	you can overwrite some vars as descripted below
+--cut-PHP----------------------------------------------------
+	// include jscalendar-setup
+	$jscal_use_time = false; // whether to use a clock, too
+	require_once(WB_PATH."/include/jscalendar/wb-setup.php");
+	// override some vars: (normally, there is no need to change this)
+	//$jscal_lang = "en"; //- calendar-language (default: wb-backend-language)
+	//$jscal_today = ""; // - date the calendar offers if the text-field is empty (default: today)
+	//$jscal_firstday = "0"; // - first-day-of-week (0-sunday, 1-monday, ...) (default: 0(EN) or 1(everything else))
+	//$jscal_format = "Y-m-d"; // - initial-format used for the text-field (default: from wb-backend-date-format)
+	//$jscal_ifformat = "%Y-%m-%d"; // - format for jscalendar (default: from wb-backend-date-format)
+----------------------------------------------------------
+
+
+2. enter this code within your form
+	$date holds the entered date as timestamp
+	the field is called "my_date_field"
+	the calender-trigger is called "my_date_trigger"
+--cut-HTML---------------------------------------------------
+	<input type="text" id="my_date_field" name="my_date_field" value="<?php if($date==0) print ""; else print date($jscal_format, $date)?>" style="width: 120px;" />
+	<img src="<?php echo WB_URL ?>/include/jscalendar/img.gif" id="my_date_trigger" style="cursor: pointer; border: 1px solid red;" title="Calendar" onmouseover="this.style.background='red';" onmouseout="this.style.background=''" />
+----------------------------------------------------------
+
+
+3. enter this code _below_ the form
+	to store the result as timestamp, you have to use  range : [1970, 2037],
+--cut-HTML---------------------------------------------------
+	<script type="text/javascript">
+		Calendar.setup(
+			{
+				inputField  : "my_date_field",
+				ifFormat    : "<?php echo $jscal_ifformat ?>",
+				button      : "my_date_trigger",
+				firstDay    : <?php echo $jscal_firstday ?>,
+				<?php if(isset($jscal_use_time) && $jscal_use_time==TRUE) { ?>
+					showsTime   : "true",
+					timeFormat  : "24",
+				<?php } ?>
+				date        : "<?php echo $jscal_today ?>",
+				range       : [1970, 2037],
+				step        : 1
+			}
+		);
+	</script>
+----------------------------------------------------------
+

Property changes on: tags/2.7.0/wb/include/jscalendar/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/img.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/jscalendar/img.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/calendar-setup.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/calendar-setup.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/calendar-setup.js	(revision 838)
@@ -0,0 +1,203 @@
+/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
+ * ---------------------------------------------------------------------------
+ *
+ * The DHTML Calendar
+ *
+ * Details and latest version at:
+ * http://dynarch.com/mishoo/calendar.epl
+ *
+ * This script is distributed under the GNU Lesser General Public License.
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
+ *
+ * This file defines helper functions for setting up the calendar.  They are
+ * intended to help non-programmers get a working calendar on their site
+ * quickly.  This script should not be seen as part of the calendar.  It just
+ * shows you what one can do with the calendar, while in the same time
+ * providing a quick and simple method for setting it up.  If you need
+ * exhaustive customization of the calendar creation process feel free to
+ * modify this code to suit your needs (this is recommended and much better
+ * than modifying calendar.js itself).
+ */
+
+// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
+
+/**
+ *  This function "patches" an input field (or other element) to use a calendar
+ *  widget for date selection.
+ *
+ *  The "params" is a single object that can have the following properties:
+ *
+ *    prop. name   | description
+ *  -------------------------------------------------------------------------------------------------
+ *   inputField    | the ID of an input field to store the date
+ *   displayArea   | the ID of a DIV or other element to show the date
+ *   button        | ID of a button or other element that will trigger the calendar
+ *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
+ *   ifFormat      | date format that will be stored in the input field
+ *   daFormat      | the date format that will be used to display the date in displayArea
+ *   singleClick   | (true/false) wether the calendar is in single click mode or not (default: true)
+ *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
+ *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
+ *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
+ *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
+ *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
+ *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
+ *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
+ *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
+ *   onClose       | function that gets called when the calendar is closed.  [default]
+ *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
+ *   date          | the date that the calendar will be initially displayed to
+ *   showsTime     | default: false; if true the calendar will include a time selector
+ *   timeFormat    | the time format; can be "12" or "24", default is "12"
+ *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
+ *   step          | configures the step of the years in drop-down boxes; default: 2
+ *   position      | configures the calendar absolute position; default: null
+ *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
+ *   showOthers    | if "true" (but default: "false") it will show days from other months too
+ *
+ *  None of them is required, they all have default values.  However, if you
+ *  pass none of "inputField", "displayArea" or "button" you'll get a warning
+ *  saying "nothing to setup".
+ */
+Calendar.setup = function (params) {
+	function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
+
+	param_default("inputField",     null);
+	param_default("displayArea",    null);
+	param_default("button",         null);
+	param_default("eventName",      "click");
+	param_default("ifFormat",       "%Y/%m/%d");
+	param_default("daFormat",       "%Y/%m/%d");
+	param_default("singleClick",    true);
+	param_default("disableFunc",    null);
+	param_default("dateStatusFunc", params["disableFunc"]);	// takes precedence if both are defined
+	param_default("dateText",       null);
+	param_default("firstDay",       null);
+	param_default("align",          "Br");
+	param_default("range",          [1900, 2999]);
+	param_default("weekNumbers",    true);
+	param_default("flat",           null);
+	param_default("flatCallback",   null);
+	param_default("onSelect",       null);
+	param_default("onClose",        null);
+	param_default("onUpdate",       null);
+	param_default("date",           null);
+	param_default("showsTime",      false);
+	param_default("timeFormat",     "24");
+	param_default("electric",       true);
+	param_default("step",           2);
+	param_default("position",       null);
+	param_default("cache",          false);
+	param_default("showOthers",     false);
+	param_default("multiple",       null);
+
+	var tmp = ["inputField", "displayArea", "button"];
+	for (var i in tmp) {
+		if (typeof params[tmp[i]] == "string") {
+			params[tmp[i]] = document.getElementById(params[tmp[i]]);
+		}
+	}
+	if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
+		alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
+		return false;
+	}
+
+	function onSelect(cal) {
+		var p = cal.params;
+		var update = (cal.dateClicked || p.electric);
+		if (update && p.inputField) {
+			p.inputField.value = cal.date.print(p.ifFormat);
+			if (typeof p.inputField.onchange == "function")
+				p.inputField.onchange();
+		}
+		if (update && p.displayArea)
+			p.displayArea.innerHTML = cal.date.print(p.daFormat);
+		if (update && typeof p.onUpdate == "function")
+			p.onUpdate(cal);
+		if (update && p.flat) {
+			if (typeof p.flatCallback == "function")
+				p.flatCallback(cal);
+		}
+		if (update && p.singleClick && cal.dateClicked)
+			cal.callCloseHandler();
+	};
+
+	if (params.flat != null) {
+		if (typeof params.flat == "string")
+			params.flat = document.getElementById(params.flat);
+		if (!params.flat) {
+			alert("Calendar.setup:\n  Flat specified but can't find parent.");
+			return false;
+		}
+		var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
+		cal.showsOtherMonths = params.showOthers;
+		cal.showsTime = params.showsTime;
+		cal.time24 = (params.timeFormat == "24");
+		cal.params = params;
+		cal.weekNumbers = params.weekNumbers;
+		cal.setRange(params.range[0], params.range[1]);
+		cal.setDateStatusHandler(params.dateStatusFunc);
+		cal.getDateText = params.dateText;
+		if (params.ifFormat) {
+			cal.setDateFormat(params.ifFormat);
+		}
+		if (params.inputField && typeof params.inputField.value == "string") {
+			cal.parseDate(params.inputField.value);
+		}
+		cal.create(params.flat);
+		cal.show();
+		return false;
+	}
+
+	var triggerEl = params.button || params.displayArea || params.inputField;
+	triggerEl["on" + params.eventName] = function() {
+		var dateEl = params.inputField || params.displayArea;
+		var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
+		var mustCreate = false;
+		var cal = window.calendar;
+//		if (dateEl)
+//			params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
+//by nib: checks wether inputfield is empty or not. orig code only checked wether inputfield exists, so param.date was never read!
+if (dateEl.value.replace(/^\s+|\s+$/g,"").length != 0 || dateEl.innerHTML.replace(/^\s+|\s+$/g,"").length != 0)
+params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
+		if (!(cal && params.cache)) {
+			window.calendar = cal = new Calendar(params.firstDay,
+							     params.date,
+							     params.onSelect || onSelect,
+							     params.onClose || function(cal) { cal.hide(); });
+			cal.showsTime = params.showsTime;
+			cal.time24 = (params.timeFormat == "24");
+			cal.weekNumbers = params.weekNumbers;
+			mustCreate = true;
+		} else {
+			if (params.date)
+				cal.setDate(params.date);
+			cal.hide();
+		}
+		if (params.multiple) {
+			cal.multiple = {};
+			for (var i = params.multiple.length; --i >= 0;) {
+				var d = params.multiple[i];
+				var ds = d.print("%Y%m%d");
+				cal.multiple[ds] = d;
+			}
+		}
+		cal.showsOtherMonths = params.showOthers;
+		cal.yearStep = params.step;
+		cal.setRange(params.range[0], params.range[1]);
+		cal.params = params;
+		cal.setDateStatusHandler(params.dateStatusFunc);
+		cal.getDateText = params.dateText;
+		cal.setDateFormat(dateFmt);
+		if (mustCreate)
+			cal.create();
+		cal.refresh();
+		if (!params.position)
+			cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
+		else
+			cal.showAt(params.position[0], params.position[1]);
+		return false;
+	};
+
+	return cal;
+};

Property changes on: tags/2.7.0/wb/include/jscalendar/calendar-setup.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/menuarrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/jscalendar/menuarrow.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/calendar.js
===================================================================
--- tags/2.7.0/wb/include/jscalendar/calendar.js	(nonexistent)
+++ tags/2.7.0/wb/include/jscalendar/calendar.js	(revision 838)
@@ -0,0 +1,1806 @@
+/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
+ * -----------------------------------------------------------
+ *
+ * The DHTML Calendar, version 1.0 "It is happening again"
+ *
+ * Details and latest version at:
+ * www.dynarch.com/projects/calendar
+ *
+ * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
+ *
+ * This script is distributed under the GNU Lesser General Public License.
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
+ */
+
+// $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $
+
+/** The Calendar object constructor. */
+Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
+	// member variables
+	this.activeDiv = null;
+	this.currentDateEl = null;
+	this.getDateStatus = null;
+	this.getDateToolTip = null;
+	this.getDateText = null;
+	this.timeout = null;
+	this.onSelected = onSelected || null;
+	this.onClose = onClose || null;
+	this.dragging = false;
+	this.hidden = false;
+	this.minYear = 1970;
+	this.maxYear = 2050;
+	this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
+	this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
+	this.isPopup = true;
+	this.weekNumbers = true;
+	this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
+	this.showsOtherMonths = false;
+	this.dateStr = dateStr;
+	this.ar_days = null;
+	this.showsTime = false;
+	this.time24 = true;
+	this.yearStep = 2;
+	this.hiliteToday = true;
+	this.multiple = null;
+	// HTML elements
+	this.table = null;
+	this.element = null;
+	this.tbody = null;
+	this.firstdayname = null;
+	// Combo boxes
+	this.monthsCombo = null;
+	this.yearsCombo = null;
+	this.hilitedMonth = null;
+	this.activeMonth = null;
+	this.hilitedYear = null;
+	this.activeYear = null;
+	// Information
+	this.dateClicked = false;
+
+	// one-time initializations
+	if (typeof Calendar._SDN == "undefined") {
+		// table of short day names
+		if (typeof Calendar._SDN_len == "undefined")
+			Calendar._SDN_len = 3;
+		var ar = new Array();
+		for (var i = 8; i > 0;) {
+			ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
+		}
+		Calendar._SDN = ar;
+		// table of short month names
+		if (typeof Calendar._SMN_len == "undefined")
+			Calendar._SMN_len = 3;
+		ar = new Array();
+		for (var i = 12; i > 0;) {
+			ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
+		}
+		Calendar._SMN = ar;
+	}
+};
+
+// ** constants
+
+/// "static", needed for event handlers.
+Calendar._C = null;
+
+/// detect a special case of "web browser"
+Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
+		   !/opera/i.test(navigator.userAgent) );
+
+Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );
+
+/// detect Opera browser
+Calendar.is_opera = /opera/i.test(navigator.userAgent);
+
+/// detect KHTML-based browsers
+Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);
+
+// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
+//        library, at some point.
+
+Calendar.getAbsolutePos = function(el) {
+	var SL = 0, ST = 0;
+	var is_div = /^div$/i.test(el.tagName);
+	if (is_div && el.scrollLeft)
+		SL = el.scrollLeft;
+	if (is_div && el.scrollTop)
+		ST = el.scrollTop;
+	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
+	if (el.offsetParent) {
+		var tmp = this.getAbsolutePos(el.offsetParent);
+		r.x += tmp.x;
+		r.y += tmp.y;
+	}
+	return r;
+};
+
+Calendar.isRelated = function (el, evt) {
+	var related = evt.relatedTarget;
+	if (!related) {
+		var type = evt.type;
+		if (type == "mouseover") {
+			related = evt.fromElement;
+		} else if (type == "mouseout") {
+			related = evt.toElement;
+		}
+	}
+	while (related) {
+		if (related == el) {
+			return true;
+		}
+		related = related.parentNode;
+	}
+	return false;
+};
+
+Calendar.removeClass = function(el, className) {
+	if (!(el && el.className)) {
+		return;
+	}
+	var cls = el.className.split(" ");
+	var ar = new Array();
+	for (var i = cls.length; i > 0;) {
+		if (cls[--i] != className) {
+			ar[ar.length] = cls[i];
+		}
+	}
+	el.className = ar.join(" ");
+};
+
+Calendar.addClass = function(el, className) {
+	Calendar.removeClass(el, className);
+	el.className += " " + className;
+};
+
+// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately.
+Calendar.getElement = function(ev) {
+	var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
+	while (f.nodeType != 1 || /^div$/i.test(f.tagName))
+		f = f.parentNode;
+	return f;
+};
+
+Calendar.getTargetElement = function(ev) {
+	var f = Calendar.is_ie ? window.event.srcElement : ev.target;
+	while (f.nodeType != 1)
+		f = f.parentNode;
+	return f;
+};
+
+Calendar.stopEvent = function(ev) {
+	ev || (ev = window.event);
+	if (Calendar.is_ie) {
+		ev.cancelBubble = true;
+		ev.returnValue = false;
+	} else {
+		ev.preventDefault();
+		ev.stopPropagation();
+	}
+	return false;
+};
+
+Calendar.addEvent = function(el, evname, func) {
+	if (el.attachEvent) { // IE
+		el.attachEvent("on" + evname, func);
+	} else if (el.addEventListener) { // Gecko / W3C
+		el.addEventListener(evname, func, true);
+	} else {
+		el["on" + evname] = func;
+	}
+};
+
+Calendar.removeEvent = function(el, evname, func) {
+	if (el.detachEvent) { // IE
+		el.detachEvent("on" + evname, func);
+	} else if (el.removeEventListener) { // Gecko / W3C
+		el.removeEventListener(evname, func, true);
+	} else {
+		el["on" + evname] = null;
+	}
+};
+
+Calendar.createElement = function(type, parent) {
+	var el = null;
+	if (document.createElementNS) {
+		// use the XHTML namespace; IE won't normally get here unless
+		// _they_ "fix" the DOM2 implementation.
+		el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
+	} else {
+		el = document.createElement(type);
+	}
+	if (typeof parent != "undefined") {
+		parent.appendChild(el);
+	}
+	return el;
+};
+
+// END: UTILITY FUNCTIONS
+
+// BEGIN: CALENDAR STATIC FUNCTIONS
+
+/** Internal -- adds a set of events to make some element behave like a button. */
+Calendar._add_evs = function(el) {
+	with (Calendar) {
+		addEvent(el, "mouseover", dayMouseOver);
+		addEvent(el, "mousedown", dayMouseDown);
+		addEvent(el, "mouseout", dayMouseOut);
+		if (is_ie) {
+			addEvent(el, "dblclick", dayMouseDblClick);
+			el.setAttribute("unselectable", true);
+		}
+	}
+};
+
+Calendar.findMonth = function(el) {
+	if (typeof el.month != "undefined") {
+		return el;
+	} else if (typeof el.parentNode.month != "undefined") {
+		return el.parentNode;
+	}
+	return null;
+};
+
+Calendar.findYear = function(el) {
+	if (typeof el.year != "undefined") {
+		return el;
+	} else if (typeof el.parentNode.year != "undefined") {
+		return el.parentNode;
+	}
+	return null;
+};
+
+Calendar.showMonthsCombo = function () {
+	var cal = Calendar._C;
+	if (!cal) {
+		return false;
+	}
+	var cal = cal;
+	var cd = cal.activeDiv;
+	var mc = cal.monthsCombo;
+	if (cal.hilitedMonth) {
+		Calendar.removeClass(cal.hilitedMonth, "hilite");
+	}
+	if (cal.activeMonth) {
+		Calendar.removeClass(cal.activeMonth, "active");
+	}
+	var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
+	Calendar.addClass(mon, "active");
+	cal.activeMonth = mon;
+	var s = mc.style;
+	s.display = "block";
+	if (cd.navtype < 0)
+		s.left = cd.offsetLeft + "px";
+	else {
+		var mcw = mc.offsetWidth;
+		if (typeof mcw == "undefined")
+			// Konqueror brain-dead techniques
+			mcw = 50;
+		s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
+	}
+	s.top = (cd.offsetTop + cd.offsetHeight) + "px";
+};
+
+Calendar.showYearsCombo = function (fwd) {
+	var cal = Calendar._C;
+	if (!cal) {
+		return false;
+	}
+	var cal = cal;
+	var cd = cal.activeDiv;
+	var yc = cal.yearsCombo;
+	if (cal.hilitedYear) {
+		Calendar.removeClass(cal.hilitedYear, "hilite");
+	}
+	if (cal.activeYear) {
+		Calendar.removeClass(cal.activeYear, "active");
+	}
+	cal.activeYear = null;
+	var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
+	var yr = yc.firstChild;
+	var show = false;
+	for (var i = 12; i > 0; --i) {
+		if (Y >= cal.minYear && Y <= cal.maxYear) {
+			yr.innerHTML = Y;
+			yr.year = Y;
+			yr.style.display = "block";
+			show = true;
+		} else {
+			yr.style.display = "none";
+		}
+		yr = yr.nextSibling;
+		Y += fwd ? cal.yearStep : -cal.yearStep;
+	}
+	if (show) {
+		var s = yc.style;
+		s.display = "block";
+		if (cd.navtype < 0)
+			s.left = cd.offsetLeft + "px";
+		else {
+			var ycw = yc.offsetWidth;
+			if (typeof ycw == "undefined")
+				// Konqueror brain-dead techniques
+				ycw = 50;
+			s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
+		}
+		s.top = (cd.offsetTop + cd.offsetHeight) + "px";
+	}
+};
+
+// event handlers
+
+Calendar.tableMouseUp = function(ev) {
+	var cal = Calendar._C;
+	if (!cal) {
+		return false;
+	}
+	if (cal.timeout) {
+		clearTimeout(cal.timeout);
+	}
+	var el = cal.activeDiv;
+	if (!el) {
+		return false;
+	}
+	var target = Calendar.getTargetElement(ev);
+	ev || (ev = window.event);
+	Calendar.removeClass(el, "active");
+	if (target == el || target.parentNode == el) {
+		Calendar.cellClick(el, ev);
+	}
+	var mon = Calendar.findMonth(target);
+	var date = null;
+	if (mon) {
+		date = new Date(cal.date);
+		if (mon.month != date.getMonth()) {
+			date.setMonth(mon.month);
+			cal.setDate(date);
+			cal.dateClicked = false;
+			cal.callHandler();
+		}
+	} else {
+		var year = Calendar.findYear(target);
+		if (year) {
+			date = new Date(cal.date);
+			if (year.year != date.getFullYear()) {
+				date.setFullYear(year.year);
+				cal.setDate(date);
+				cal.dateClicked = false;
+				cal.callHandler();
+			}
+		}
+	}
+	with (Calendar) {
+		removeEvent(document, "mouseup", tableMouseUp);
+		removeEvent(document, "mouseover", tableMouseOver);
+		removeEvent(document, "mousemove", tableMouseOver);
+		cal._hideCombos();
+		_C = null;
+		return stopEvent(ev);
+	}
+};
+
+Calendar.tableMouseOver = function (ev) {
+	var cal = Calendar._C;
+	if (!cal) {
+		return;
+	}
+	var el = cal.activeDiv;
+	var target = Calendar.getTargetElement(ev);
+	if (target == el || target.parentNode == el) {
+		Calendar.addClass(el, "hilite active");
+		Calendar.addClass(el.parentNode, "rowhilite");
+	} else {
+		if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
+			Calendar.removeClass(el, "active");
+		Calendar.removeClass(el, "hilite");
+		Calendar.removeClass(el.parentNode, "rowhilite");
+	}
+	ev || (ev = window.event);
+	if (el.navtype == 50 && target != el) {
+		var pos = Calendar.getAbsolutePos(el);
+		var w = el.offsetWidth;
+		var x = ev.clientX;
+		var dx;
+		var decrease = true;
+		if (x > pos.x + w) {
+			dx = x - pos.x - w;
+			decrease = false;
+		} else
+			dx = pos.x - x;
+
+		if (dx < 0) dx = 0;
+		var range = el._range;
+		var current = el._current;
+		var count = Math.floor(dx / 10) % range.length;
+		for (var i = range.length; --i >= 0;)
+			if (range[i] == current)
+				break;
+		while (count-- > 0)
+			if (decrease) {
+				if (--i < 0)
+					i = range.length - 1;
+			} else if ( ++i >= range.length )
+				i = 0;
+		var newval = range[i];
+		el.innerHTML = newval;
+
+		cal.onUpdateTime();
+	}
+	var mon = Calendar.findMonth(target);
+	if (mon) {
+		if (mon.month != cal.date.getMonth()) {
+			if (cal.hilitedMonth) {
+				Calendar.removeClass(cal.hilitedMonth, "hilite");
+			}
+			Calendar.addClass(mon, "hilite");
+			cal.hilitedMonth = mon;
+		} else if (cal.hilitedMonth) {
+			Calendar.removeClass(cal.hilitedMonth, "hilite");
+		}
+	} else {
+		if (cal.hilitedMonth) {
+			Calendar.removeClass(cal.hilitedMonth, "hilite");
+		}
+		var year = Calendar.findYear(target);
+		if (year) {
+			if (year.year != cal.date.getFullYear()) {
+				if (cal.hilitedYear) {
+					Calendar.removeClass(cal.hilitedYear, "hilite");
+				}
+				Calendar.addClass(year, "hilite");
+				cal.hilitedYear = year;
+			} else if (cal.hilitedYear) {
+				Calendar.removeClass(cal.hilitedYear, "hilite");
+			}
+		} else if (cal.hilitedYear) {
+			Calendar.removeClass(cal.hilitedYear, "hilite");
+		}
+	}
+	return Calendar.stopEvent(ev);
+};
+
+Calendar.tableMouseDown = function (ev) {
+	if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
+		return Calendar.stopEvent(ev);
+	}
+};
+
+Calendar.calDragIt = function (ev) {
+	var cal = Calendar._C;
+	if (!(cal && cal.dragging)) {
+		return false;
+	}
+	var posX;
+	var posY;
+	if (Calendar.is_ie) {
+		posY = window.event.clientY + document.body.scrollTop;
+		posX = window.event.clientX + document.body.scrollLeft;
+	} else {
+		posX = ev.pageX;
+		posY = ev.pageY;
+	}
+	cal.hideShowCovered();
+	var st = cal.element.style;
+	st.left = (posX - cal.xOffs) + "px";
+	st.top = (posY - cal.yOffs) + "px";
+	return Calendar.stopEvent(ev);
+};
+
+Calendar.calDragEnd = function (ev) {
+	var cal = Calendar._C;
+	if (!cal) {
+		return false;
+	}
+	cal.dragging = false;
+	with (Calendar) {
+		removeEvent(document, "mousemove", calDragIt);
+		removeEvent(document, "mouseup", calDragEnd);
+		tableMouseUp(ev);
+	}
+	cal.hideShowCovered();
+};
+
+Calendar.dayMouseDown = function(ev) {
+	var el = Calendar.getElement(ev);
+	if (el.disabled) {
+		return false;
+	}
+	var cal = el.calendar;
+	cal.activeDiv = el;
+	Calendar._C = cal;
+	if (el.navtype != 300) with (Calendar) {
+		if (el.navtype == 50) {
+			el._current = el.innerHTML;
+			addEvent(document, "mousemove", tableMouseOver);
+		} else
+			addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
+		addClass(el, "hilite active");
+		addEvent(document, "mouseup", tableMouseUp);
+	} else if (cal.isPopup) {
+		cal._dragStart(ev);
+	}
+	if (el.navtype == -1 || el.navtype == 1) {
+		if (cal.timeout) clearTimeout(cal.timeout);
+		cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
+	} else if (el.navtype == -2 || el.navtype == 2) {
+		if (cal.timeout) clearTimeout(cal.timeout);
+		cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
+	} else {
+		cal.timeout = null;
+	}
+	return Calendar.stopEvent(ev);
+};
+
+Calendar.dayMouseDblClick = function(ev) {
+	Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
+	if (Calendar.is_ie) {
+		document.selection.empty();
+	}
+};
+
+Calendar.dayMouseOver = function(ev) {
+	var el = Calendar.getElement(ev);
+	if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
+		return false;
+	}
+	if (el.ttip) {
+		if (el.ttip.substr(0, 1) == "_") {
+			el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
+		}
+		el.calendar.tooltips.innerHTML = el.ttip;
+	}
+	if (el.navtype != 300) {
+		Calendar.addClass(el, "hilite");
+		if (el.caldate) {
+			Calendar.addClass(el.parentNode, "rowhilite");
+		}
+	}
+	return Calendar.stopEvent(ev);
+};
+
+Calendar.dayMouseOut = function(ev) {
+	with (Calendar) {
+		var el = getElement(ev);
+		if (isRelated(el, ev) || _C || el.disabled)
+			return false;
+		removeClass(el, "hilite");
+		if (el.caldate)
+			removeClass(el.parentNode, "rowhilite");
+		if (el.calendar)
+			el.calendar.tooltips.innerHTML = _TT["SEL_DATE"];
+		return stopEvent(ev);
+	}
+};
+
+/**
+ *  A generic "click" handler :) handles all types of buttons defined in this
+ *  calendar.
+ */
+Calendar.cellClick = function(el, ev) {
+	var cal = el.calendar;
+	var closing = false;
+	var newdate = false;
+	var date = null;
+	if (typeof el.navtype == "undefined") {
+		if (cal.currentDateEl) {
+			Calendar.removeClass(cal.currentDateEl, "selected");
+			Calendar.addClass(el, "selected");
+			closing = (cal.currentDateEl == el);
+			if (!closing) {
+				cal.currentDateEl = el;
+			}
+		}
+		cal.date.setDateOnly(el.caldate);
+		date = cal.date;
+		var other_month = !(cal.dateClicked = !el.otherMonth);
+		if (!other_month && !cal.currentDateEl)
+			cal._toggleMultipleDate(new Date(date));
+		else
+			newdate = !el.disabled;
+		// a date was clicked
+		if (other_month)
+			cal._init(cal.firstDayOfWeek, date);
+	} else {
+		if (el.navtype == 200) {
+			Calendar.removeClass(el, "hilite");
+			cal.callCloseHandler();
+			return;
+		}
+		date = new Date(cal.date);
+		if (el.navtype == 0)
+			date.setDateOnly(new Date()); // TODAY
+		// unless "today" was clicked, we assume no date was clicked so
+		// the selected handler will know not to close the calenar when
+		// in single-click mode.
+		// cal.dateClicked = (el.navtype == 0);
+		cal.dateClicked = false;
+		var year = date.getFullYear();
+		var mon = date.getMonth();
+		function setMonth(m) {
+			var day = date.getDate();
+			var max = date.getMonthDays(m);
+			if (day > max) {
+				date.setDate(max);
+			}
+			date.setMonth(m);
+		};
+		switch (el.navtype) {
+		    case 400:
+			Calendar.removeClass(el, "hilite");
+			var text = Calendar._TT["ABOUT"];
+			if (typeof text != "undefined") {
+				text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
+			} else {
+				// FIXME: this should be removed as soon as lang files get updated!
+				text = "Help and about box text is not translated into this language.\n" +
+					"If you know this language and you feel generous please update\n" +
+					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
+					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +
+					"Thank you!\n" +
+					"http://dynarch.com/mishoo/calendar.epl\n";
+			}
+			alert(text);
+			return;
+		    case -2:
+			if (year > cal.minYear) {
+				date.setFullYear(year - 1);
+			}
+			break;
+		    case -1:
+			if (mon > 0) {
+				setMonth(mon - 1);
+			} else if (year-- > cal.minYear) {
+				date.setFullYear(year);
+				setMonth(11);
+			}
+			break;
+		    case 1:
+			if (mon < 11) {
+				setMonth(mon + 1);
+			} else if (year < cal.maxYear) {
+				date.setFullYear(year + 1);
+				setMonth(0);
+			}
+			break;
+		    case 2:
+			if (year < cal.maxYear) {
+				date.setFullYear(year + 1);
+			}
+			break;
+		    case 100:
+			cal.setFirstDayOfWeek(el.fdow);
+			return;
+		    case 50:
+			var range = el._range;
+			var current = el.innerHTML;
+			for (var i = range.length; --i >= 0;)
+				if (range[i] == current)
+					break;
+			if (ev && ev.shiftKey) {
+				if (--i < 0)
+					i = range.length - 1;
+			} else if ( ++i >= range.length )
+				i = 0;
+			var newval = range[i];
+			el.innerHTML = newval;
+			cal.onUpdateTime();
+			return;
+		    case 0:
+			// TODAY will bring us here
+			if ((typeof cal.getDateStatus == "function") &&
+			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
+				return false;
+			}
+			break;
+		}
+		if (!date.equalsTo(cal.date)) {
+			cal.setDate(date);
+			newdate = true;
+		} else if (el.navtype == 0)
+			newdate = closing = true;
+	}
+	if (newdate) {
+		ev && cal.callHandler();
+	}
+	if (closing) {
+		Calendar.removeClass(el, "hilite");
+		ev && cal.callCloseHandler();
+	}
+};
+
+// END: CALENDAR STATIC FUNCTIONS
+
+// BEGIN: CALENDAR OBJECT FUNCTIONS
+
+/**
+ *  This function creates the calendar inside the given parent.  If _par is
+ *  null than it creates a popup calendar inside the BODY element.  If _par is
+ *  an element, be it BODY, then it creates a non-popup calendar (still
+ *  hidden).  Some properties need to be set before calling this function.
+ */
+Calendar.prototype.create = function (_par) {
+	var parent = null;
+	if (! _par) {
+		// default parent is the document body, in which case we create
+		// a popup calendar.
+		parent = document.getElementsByTagName("body")[0];
+		this.isPopup = true;
+	} else {
+		parent = _par;
+		this.isPopup = false;
+	}
+	this.date = this.dateStr ? new Date(this.dateStr) : new Date();
+
+	var table = Calendar.createElement("table");
+	this.table = table;
+	table.cellSpacing = 0;
+	table.cellPadding = 0;
+	table.calendar = this;
+	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);
+
+	var div = Calendar.createElement("div");
+	this.element = div;
+	div.className = "calendar";
+	if (this.isPopup) {
+		div.style.position = "absolute";
+		div.style.display = "none";
+	}
+	div.appendChild(table);
+
+	var thead = Calendar.createElement("thead", table);
+	var cell = null;
+	var row = null;
+
+	var cal = this;
+	var hh = function (text, cs, navtype) {
+		cell = Calendar.createElement("td", row);
+		cell.colSpan = cs;
+		cell.className = "button";
+		if (navtype != 0 && Math.abs(navtype) <= 2)
+			cell.className += " nav";
+		Calendar._add_evs(cell);
+		cell.calendar = cal;
+		cell.navtype = navtype;
+		cell.innerHTML = "<div unselectable='on'>" + text + "</div>";
+		return cell;
+	};
+
+	row = Calendar.createElement("tr", thead);
+	var title_length = 6;
+	(this.isPopup) && --title_length;
+	(this.weekNumbers) && ++title_length;
+
+	hh("?", 1, 400).ttip = Calendar._TT["INFO"];
+	this.title = hh("", title_length, 300);
+	this.title.className = "title";
+	if (this.isPopup) {
+		this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
+		this.title.style.cursor = "move";
+		hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
+	}
+
+	row = Calendar.createElement("tr", thead);
+	row.className = "headrow";
+
+	this._nav_py = hh("&#x00ab;", 1, -2);
+	this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
+
+	this._nav_pm = hh("&#x2039;", 1, -1);
+	this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];
+
+	this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
+	this._nav_now.ttip = Calendar._TT["GO_TODAY"];
+
+	this._nav_nm = hh("&#x203a;", 1, 1);
+	this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
+
+	this._nav_ny = hh("&#x00bb;", 1, 2);
+	this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];
+
+	// day names
+	row = Calendar.createElement("tr", thead);
+	row.className = "daynames";
+	if (this.weekNumbers) {
+		cell = Calendar.createElement("td", row);
+		cell.className = "name wn";
+		cell.innerHTML = Calendar._TT["WK"];
+	}
+	for (var i = 7; i > 0; --i) {
+		cell = Calendar.createElement("td", row);
+		if (!i) {
+			cell.navtype = 100;
+			cell.calendar = this;
+			Calendar._add_evs(cell);
+		}
+	}
+	this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
+	this._displayWeekdays();
+
+	var tbody = Calendar.createElement("tbody", table);
+	this.tbody = tbody;
+
+	for (i = 6; i > 0; --i) {
+		row = Calendar.createElement("tr", tbody);
+		if (this.weekNumbers) {
+			cell = Calendar.createElement("td", row);
+		}
+		for (var j = 7; j > 0; --j) {
+			cell = Calendar.createElement("td", row);
+			cell.calendar = this;
+			Calendar._add_evs(cell);
+		}
+	}
+
+	if (this.showsTime) {
+		row = Calendar.createElement("tr", tbody);
+		row.className = "time";
+
+		cell = Calendar.createElement("td", row);
+		cell.className = "time";
+		cell.colSpan = 2;
+		cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";
+
+		cell = Calendar.createElement("td", row);
+		cell.className = "time";
+		cell.colSpan = this.weekNumbers ? 4 : 3;
+
+		(function(){
+			function makeTimePart(className, init, range_start, range_end) {
+				var part = Calendar.createElement("span", cell);
+				part.className = className;
+				part.innerHTML = init;
+				part.calendar = cal;
+				part.ttip = Calendar._TT["TIME_PART"];
+				part.navtype = 50;
+				part._range = [];
+				if (typeof range_start != "number")
+					part._range = range_start;
+				else {
+					for (var i = range_start; i <= range_end; ++i) {
+						var txt;
+						if (i < 10 && range_end >= 10) txt = '0' + i;
+						else txt = '' + i;
+						part._range[part._range.length] = txt;
+					}
+				}
+				Calendar._add_evs(part);
+				return part;
+			};
+			var hrs = cal.date.getHours();
+			var mins = cal.date.getMinutes();
+			var t12 = !cal.time24;
+			var pm = (hrs > 12);
+			if (t12 && pm) hrs -= 12;
+			var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
+			var span = Calendar.createElement("span", cell);
+			span.innerHTML = ":";
+			span.className = "colon";
+			var M = makeTimePart("minute", mins, 0, 59);
+			var AP = null;
+			cell = Calendar.createElement("td", row);
+			cell.className = "time";
+			cell.colSpan = 2;
+			if (t12)
+				AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
+			else
+				cell.innerHTML = "&nbsp;";
+
+			cal.onSetTime = function() {
+				var pm, hrs = this.date.getHours(),
+					mins = this.date.getMinutes();
+				if (t12) {
+					pm = (hrs >= 12);
+					if (pm) hrs -= 12;
+					if (hrs == 0) hrs = 12;
+					AP.innerHTML = pm ? "pm" : "am";
+				}
+				H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;
+				M.innerHTML = (mins < 10) ? ("0" + mins) : mins;
+			};
+
+			cal.onUpdateTime = function() {
+				var date = this.date;
+				var h = parseInt(H.innerHTML, 10);
+				if (t12) {
+					if (/pm/i.test(AP.innerHTML) && h < 12)
+						h += 12;
+					else if (/am/i.test(AP.innerHTML) && h == 12)
+						h = 0;
+				}
+				var d = date.getDate();
+				var m = date.getMonth();
+				var y = date.getFullYear();
+				date.setHours(h);
+				date.setMinutes(parseInt(M.innerHTML, 10));
+				date.setFullYear(y);
+				date.setMonth(m);
+				date.setDate(d);
+				this.dateClicked = false;
+				this.callHandler();
+			};
+		})();
+	} else {
+		this.onSetTime = this.onUpdateTime = function() {};
+	}
+
+	var tfoot = Calendar.createElement("tfoot", table);
+
+	row = Calendar.createElement("tr", tfoot);
+	row.className = "footrow";
+
+	cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
+	cell.className = "ttip";
+	if (this.isPopup) {
+		cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
+		cell.style.cursor = "move";
+	}
+	this.tooltips = cell;
+
+	div = Calendar.createElement("div", this.element);
+	this.monthsCombo = div;
+	div.className = "combo";
+	for (i = 0; i < Calendar._MN.length; ++i) {
+		var mn = Calendar.createElement("div");
+		mn.className = Calendar.is_ie ? "label-IEfix" : "label";
+		mn.month = i;
+		mn.innerHTML = Calendar._SMN[i];
+		div.appendChild(mn);
+	}
+
+	div = Calendar.createElement("div", this.element);
+	this.yearsCombo = div;
+	div.className = "combo";
+	for (i = 12; i > 0; --i) {
+		var yr = Calendar.createElement("div");
+		yr.className = Calendar.is_ie ? "label-IEfix" : "label";
+		div.appendChild(yr);
+	}
+
+	this._init(this.firstDayOfWeek, this.date);
+	parent.appendChild(this.element);
+};
+
+/** keyboard navigation, only for popup calendars */
+Calendar._keyEvent = function(ev) {
+	var cal = window._dynarch_popupCalendar;
+	if (!cal || cal.multiple)
+		return false;
+	(Calendar.is_ie) && (ev = window.event);
+	var act = (Calendar.is_ie || ev.type == "keypress"),
+		K = ev.keyCode;
+	if (ev.ctrlKey) {
+		switch (K) {
+		    case 37: // KEY left
+			act && Calendar.cellClick(cal._nav_pm);
+			break;
+		    case 38: // KEY up
+			act && Calendar.cellClick(cal._nav_py);
+			break;
+		    case 39: // KEY right
+			act && Calendar.cellClick(cal._nav_nm);
+			break;
+		    case 40: // KEY down
+			act && Calendar.cellClick(cal._nav_ny);
+			break;
+		    default:
+			return false;
+		}
+	} else switch (K) {
+	    case 32: // KEY space (now)
+		Calendar.cellClick(cal._nav_now);
+		break;
+	    case 27: // KEY esc
+		act && cal.callCloseHandler();
+		break;
+	    case 37: // KEY left
+	    case 38: // KEY up
+	    case 39: // KEY right
+	    case 40: // KEY down
+		if (act) {
+			var prev, x, y, ne, el, step;
+			prev = K == 37 || K == 38;
+			step = (K == 37 || K == 39) ? 1 : 7;
+			function setVars() {
+				el = cal.currentDateEl;
+				var p = el.pos;
+				x = p & 15;
+				y = p >> 4;
+				ne = cal.ar_days[y][x];
+			};setVars();
+			function prevMonth() {
+				var date = new Date(cal.date);
+				date.setDate(date.getDate() - step);
+				cal.setDate(date);
+			};
+			function nextMonth() {
+				var date = new Date(cal.date);
+				date.setDate(date.getDate() + step);
+				cal.setDate(date);
+			};
+			while (1) {
+				switch (K) {
+				    case 37: // KEY left
+					if (--x >= 0)
+						ne = cal.ar_days[y][x];
+					else {
+						x = 6;
+						K = 38;
+						continue;
+					}
+					break;
+				    case 38: // KEY up
+					if (--y >= 0)
+						ne = cal.ar_days[y][x];
+					else {
+						prevMonth();
+						setVars();
+					}
+					break;
+				    case 39: // KEY right
+					if (++x < 7)
+						ne = cal.ar_days[y][x];
+					else {
+						x = 0;
+						K = 40;
+						continue;
+					}
+					break;
+				    case 40: // KEY down
+					if (++y < cal.ar_days.length)
+						ne = cal.ar_days[y][x];
+					else {
+						nextMonth();
+						setVars();
+					}
+					break;
+				}
+				break;
+			}
+			if (ne) {
+				if (!ne.disabled)
+					Calendar.cellClick(ne);
+				else if (prev)
+					prevMonth();
+				else
+					nextMonth();
+			}
+		}
+		break;
+	    case 13: // KEY enter
+		if (act)
+			Calendar.cellClick(cal.currentDateEl, ev);
+		break;
+	    default:
+		return false;
+	}
+	return Calendar.stopEvent(ev);
+};
+
+/**
+ *  (RE)Initializes the calendar to the given date and firstDayOfWeek
+ */
+Calendar.prototype._init = function (firstDayOfWeek, date) {
+	var today = new Date(),
+		TY = today.getFullYear(),
+		TM = today.getMonth(),
+		TD = today.getDate();
+	this.table.style.visibility = "hidden";
+	var year = date.getFullYear();
+	if (year < this.minYear) {
+		year = this.minYear;
+		date.setFullYear(year);
+	} else if (year > this.maxYear) {
+		year = this.maxYear;
+		date.setFullYear(year);
+	}
+	this.firstDayOfWeek = firstDayOfWeek;
+	this.date = new Date(date);
+	var month = date.getMonth();
+	var mday = date.getDate();
+	var no_days = date.getMonthDays();
+
+	// calendar voodoo for computing the first day that would actually be
+	// displayed in the calendar, even if it's from the previous month.
+	// WARNING: this is magic. ;-)
+	date.setDate(1);
+	var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
+	if (day1 < 0)
+		day1 += 7;
+	date.setDate(-day1);
+	date.setDate(date.getDate() + 1);
+
+	var row = this.tbody.firstChild;
+	var MN = Calendar._SMN[month];
+	var ar_days = this.ar_days = new Array();
+	var weekend = Calendar._TT["WEEKEND"];
+	var dates = this.multiple ? (this.datesCells = {}) : null;
+	for (var i = 0; i < 6; ++i, row = row.nextSibling) {
+		var cell = row.firstChild;
+		if (this.weekNumbers) {
+			cell.className = "day wn";
+			cell.innerHTML = date.getWeekNumber();
+			cell = cell.nextSibling;
+		}
+		row.className = "daysrow";
+		var hasdays = false, iday, dpos = ar_days[i] = [];
+		for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {
+			iday = date.getDate();
+			var wday = date.getDay();
+			cell.className = "day";
+			cell.pos = i << 4 | j;
+			dpos[j] = cell;
+			var current_month = (date.getMonth() == month);
+			if (!current_month) {
+				if (this.showsOtherMonths) {
+					cell.className += " othermonth";
+					cell.otherMonth = true;
+				} else {
+					cell.className = "emptycell";
+					cell.innerHTML = "&nbsp;";
+					cell.disabled = true;
+					continue;
+				}
+			} else {
+				cell.otherMonth = false;
+				hasdays = true;
+			}
+			cell.disabled = false;
+			cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;
+			if (dates)
+				dates[date.print("%Y%m%d")] = cell;
+			if (this.getDateStatus) {
+				var status = this.getDateStatus(date, year, month, iday);
+				if (this.getDateToolTip) {
+					var toolTip = this.getDateToolTip(date, year, month, iday);
+					if (toolTip)
+						cell.title = toolTip;
+				}
+				if (status === true) {
+					cell.className += " disabled";
+					cell.disabled = true;
+				} else {
+					if (/disabled/i.test(status))
+						cell.disabled = true;
+					cell.className += " " + status;
+				}
+			}
+			if (!cell.disabled) {
+				cell.caldate = new Date(date);
+				cell.ttip = "_";
+				if (!this.multiple && current_month
+				    && iday == mday && this.hiliteToday) {
+					cell.className += " selected";
+					this.currentDateEl = cell;
+				}
+				if (date.getFullYear() == TY &&
+				    date.getMonth() == TM &&
+				    iday == TD) {
+					cell.className += " today";
+					cell.ttip += Calendar._TT["PART_TODAY"];
+				}
+				if (weekend.indexOf(wday.toString()) != -1)
+					cell.className += cell.otherMonth ? " oweekend" : " weekend";
+			}
+		}
+		if (!(hasdays || this.showsOtherMonths))
+			row.className = "emptyrow";
+	}
+	this.title.innerHTML = Calendar._MN[month] + ", " + year;
+	this.onSetTime();
+	this.table.style.visibility = "visible";
+	this._initMultipleDates();
+	// PROFILE
+	// this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
+};
+
+Calendar.prototype._initMultipleDates = function() {
+	if (this.multiple) {
+		for (var i in this.multiple) {
+			var cell = this.datesCells[i];
+			var d = this.multiple[i];
+			if (!d)
+				continue;
+			if (cell)
+				cell.className += " selected";
+		}
+	}
+};
+
+Calendar.prototype._toggleMultipleDate = function(date) {
+	if (this.multiple) {
+		var ds = date.print("%Y%m%d");
+		var cell = this.datesCells[ds];
+		if (cell) {
+			var d = this.multiple[ds];
+			if (!d) {
+				Calendar.addClass(cell, "selected");
+				this.multiple[ds] = date;
+			} else {
+				Calendar.removeClass(cell, "selected");
+				delete this.multiple[ds];
+			}
+		}
+	}
+};
+
+Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
+	this.getDateToolTip = unaryFunction;
+};
+
+/**
+ *  Calls _init function above for going to a certain date (but only if the
+ *  date is different than the currently selected one).
+ */
+Calendar.prototype.setDate = function (date) {
+	if (!date.equalsTo(this.date)) {
+		this._init(this.firstDayOfWeek, date);
+	}
+};
+
+/**
+ *  Refreshes the calendar.  Useful if the "disabledHandler" function is
+ *  dynamic, meaning that the list of disabled date can change at runtime.
+ *  Just * call this function if you think that the list of disabled dates
+ *  should * change.
+ */
+Calendar.prototype.refresh = function () {
+	this._init(this.firstDayOfWeek, this.date);
+};
+
+/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
+Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
+	this._init(firstDayOfWeek, this.date);
+	this._displayWeekdays();
+};
+
+/**
+ *  Allows customization of what dates are enabled.  The "unaryFunction"
+ *  parameter must be a function object that receives the date (as a JS Date
+ *  object) and returns a boolean value.  If the returned value is true then
+ *  the passed date will be marked as disabled.
+ */
+Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
+	this.getDateStatus = unaryFunction;
+};
+
+/** Customization of allowed year range for the calendar. */
+Calendar.prototype.setRange = function (a, z) {
+	this.minYear = a;
+	this.maxYear = z;
+};
+
+/** Calls the first user handler (selectedHandler). */
+Calendar.prototype.callHandler = function () {
+	if (this.onSelected) {
+		this.onSelected(this, this.date.print(this.dateFormat));
+	}
+};
+
+/** Calls the second user handler (closeHandler). */
+Calendar.prototype.callCloseHandler = function () {
+	if (this.onClose) {
+		this.onClose(this);
+	}
+	this.hideShowCovered();
+};
+
+/** Removes the calendar object from the DOM tree and destroys it. */
+Calendar.prototype.destroy = function () {
+	var el = this.element.parentNode;
+	el.removeChild(this.element);
+	Calendar._C = null;
+	window._dynarch_popupCalendar = null;
+};
+
+/**
+ *  Moves the calendar element to a different section in the DOM tree (changes
+ *  its parent).
+ */
+Calendar.prototype.reparent = function (new_parent) {
+	var el = this.element;
+	el.parentNode.removeChild(el);
+	new_parent.appendChild(el);
+};
+
+// This gets called when the user presses a mouse button anywhere in the
+// document, if the calendar is shown.  If the click was outside the open
+// calendar this function closes it.
+Calendar._checkCalendar = function(ev) {
+	var calendar = window._dynarch_popupCalendar;
+	if (!calendar) {
+		return false;
+	}
+	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
+	for (; el != null && el != calendar.element; el = el.parentNode);
+	if (el == null) {
+		// calls closeHandler which should hide the calendar.
+		window._dynarch_popupCalendar.callCloseHandler();
+		return Calendar.stopEvent(ev);
+	}
+};
+
+/** Shows the calendar. */
+Calendar.prototype.show = function () {
+	var rows = this.table.getElementsByTagName("tr");
+	for (var i = rows.length; i > 0;) {
+		var row = rows[--i];
+		Calendar.removeClass(row, "rowhilite");
+		var cells = row.getElementsByTagName("td");
+		for (var j = cells.length; j > 0;) {
+			var cell = cells[--j];
+			Calendar.removeClass(cell, "hilite");
+			Calendar.removeClass(cell, "active");
+		}
+	}
+	this.element.style.display = "block";
+	this.hidden = false;
+	if (this.isPopup) {
+		window._dynarch_popupCalendar = this;
+		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
+		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
+		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
+	}
+	this.hideShowCovered();
+};
+
+/**
+ *  Hides the calendar.  Also removes any "hilite" from the class of any TD
+ *  element.
+ */
+Calendar.prototype.hide = function () {
+	if (this.isPopup) {
+		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
+		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
+		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
+	}
+	this.element.style.display = "none";
+	this.hidden = true;
+	this.hideShowCovered();
+};
+
+/**
+ *  Shows the calendar at a given absolute position (beware that, depending on
+ *  the calendar element style -- position property -- this might be relative
+ *  to the parent's containing rectangle).
+ */
+Calendar.prototype.showAt = function (x, y) {
+	var s = this.element.style;
+	s.left = x + "px";
+	s.top = y + "px";
+	this.show();
+};
+
+/** Shows the calendar near a given element. */
+Calendar.prototype.showAtElement = function (el, opts) {
+	var self = this;
+	var p = Calendar.getAbsolutePos(el);
+	if (!opts || typeof opts != "string") {
+		this.showAt(p.x, p.y + el.offsetHeight);
+		return true;
+	}
+	function fixPosition(box) {
+		if (box.x < 0)
+			box.x = 0;
+		if (box.y < 0)
+			box.y = 0;
+		var cp = document.createElement("div");
+		var s = cp.style;
+		s.position = "absolute";
+		s.right = s.bottom = s.width = s.height = "0px";
+		document.body.appendChild(cp);
+		var br = Calendar.getAbsolutePos(cp);
+		document.body.removeChild(cp);
+		if (Calendar.is_ie) {
+			br.y += document.body.scrollTop;
+			br.x += document.body.scrollLeft;
+		} else {
+			br.y += window.scrollY;
+			br.x += window.scrollX;
+		}
+		var tmp = box.x + box.width - br.x;
+		if (tmp > 0) box.x -= tmp;
+		tmp = box.y + box.height - br.y;
+		if (tmp > 0) box.y -= tmp;
+	};
+	this.element.style.display = "block";
+	Calendar.continuation_for_the_fucking_khtml_browser = function() {
+		var w = self.element.offsetWidth;
+		var h = self.element.offsetHeight;
+		self.element.style.display = "none";
+		var valign = opts.substr(0, 1);
+		var halign = "l";
+		if (opts.length > 1) {
+			halign = opts.substr(1, 1);
+		}
+		// vertical alignment
+		switch (valign) {
+		    case "T": p.y -= h; break;
+		    case "B": p.y += el.offsetHeight; break;
+		    case "C": p.y += (el.offsetHeight - h) / 2; break;
+		    case "t": p.y += el.offsetHeight - h; break;
+		    case "b": break; // already there
+		}
+		// horizontal alignment
+		switch (halign) {
+		    case "L": p.x -= w; break;
+		    case "R": p.x += el.offsetWidth; break;
+		    case "C": p.x += (el.offsetWidth - w) / 2; break;
+		    case "l": p.x += el.offsetWidth - w; break;
+		    case "r": break; // already there
+		}
+		p.width = w;
+		p.height = h + 40;
+		self.monthsCombo.style.display = "none";
+		fixPosition(p);
+		self.showAt(p.x, p.y);
+	};
+	if (Calendar.is_khtml)
+		setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
+	else
+		Calendar.continuation_for_the_fucking_khtml_browser();
+};
+
+/** Customizes the date format. */
+Calendar.prototype.setDateFormat = function (str) {
+	this.dateFormat = str;
+};
+
+/** Customizes the tooltip date format. */
+Calendar.prototype.setTtDateFormat = function (str) {
+	this.ttDateFormat = str;
+};
+
+/**
+ *  Tries to identify the date represented in a string.  If successful it also
+ *  calls this.setDate which moves the calendar to the given date.
+ */
+Calendar.prototype.parseDate = function(str, fmt) {
+	if (!fmt)
+		fmt = this.dateFormat;
+	this.setDate(Date.parseDate(str, fmt));
+};
+
+Calendar.prototype.hideShowCovered = function () {
+	if (!Calendar.is_ie && !Calendar.is_opera)
+		return;
+	function getVisib(obj){
+		var value = obj.style.visibility;
+		if (!value) {
+			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
+				if (!Calendar.is_khtml)
+					value = document.defaultView.
+						getComputedStyle(obj, "").getPropertyValue("visibility");
+				else
+					value = '';
+			} else if (obj.currentStyle) { // IE
+				value = obj.currentStyle.visibility;
+			} else
+				value = '';
+		}
+		return value;
+	};
+
+	var tags = new Array("applet", "iframe", "select");
+	var el = this.element;
+
+	var p = Calendar.getAbsolutePos(el);
+	var EX1 = p.x;
+	var EX2 = el.offsetWidth + EX1;
+	var EY1 = p.y;
+	var EY2 = el.offsetHeight + EY1;
+
+	for (var k = tags.length; k > 0; ) {
+		var ar = document.getElementsByTagName(tags[--k]);
+		var cc = null;
+
+		for (var i = ar.length; i > 0;) {
+			cc = ar[--i];
+
+			p = Calendar.getAbsolutePos(cc);
+			var CX1 = p.x;
+			var CX2 = cc.offsetWidth + CX1;
+			var CY1 = p.y;
+			var CY2 = cc.offsetHeight + CY1;
+
+			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
+				if (!cc.__msh_save_visibility) {
+					cc.__msh_save_visibility = getVisib(cc);
+				}
+				cc.style.visibility = cc.__msh_save_visibility;
+			} else {
+				if (!cc.__msh_save_visibility) {
+					cc.__msh_save_visibility = getVisib(cc);
+				}
+				cc.style.visibility = "hidden";
+			}
+		}
+	}
+};
+
+/** Internal function; it displays the bar with the names of the weekday. */
+Calendar.prototype._displayWeekdays = function () {
+	var fdow = this.firstDayOfWeek;
+	var cell = this.firstdayname;
+	var weekend = Calendar._TT["WEEKEND"];
+	for (var i = 0; i < 7; ++i) {
+		cell.className = "day name";
+		var realday = (i + fdow) % 7;
+		if (i) {
+			cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
+			cell.navtype = 100;
+			cell.calendar = this;
+			cell.fdow = realday;
+			Calendar._add_evs(cell);
+		}
+		if (weekend.indexOf(realday.toString()) != -1) {
+			Calendar.addClass(cell, "weekend");
+		}
+		cell.innerHTML = Calendar._SDN[(i + fdow) % 7];
+		cell = cell.nextSibling;
+	}
+};
+
+/** Internal function.  Hides all combo boxes that might be displayed. */
+Calendar.prototype._hideCombos = function () {
+	this.monthsCombo.style.display = "none";
+	this.yearsCombo.style.display = "none";
+};
+
+/** Internal function.  Starts dragging the element. */
+Calendar.prototype._dragStart = function (ev) {
+	if (this.dragging) {
+		return;
+	}
+	this.dragging = true;
+	var posX;
+	var posY;
+	if (Calendar.is_ie) {
+		posY = window.event.clientY + document.body.scrollTop;
+		posX = window.event.clientX + document.body.scrollLeft;
+	} else {
+		posY = ev.clientY + window.scrollY;
+		posX = ev.clientX + window.scrollX;
+	}
+	var st = this.element.style;
+	this.xOffs = posX - parseInt(st.left);
+	this.yOffs = posY - parseInt(st.top);
+	with (Calendar) {
+		addEvent(document, "mousemove", calDragIt);
+		addEvent(document, "mouseup", calDragEnd);
+	}
+};
+
+// BEGIN: DATE OBJECT PATCHES
+
+/** Adds the number of days array to the Date object. */
+Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
+
+/** Constants used for time computations */
+Date.SECOND = 1000 /* milliseconds */;
+Date.MINUTE = 60 * Date.SECOND;
+Date.HOUR   = 60 * Date.MINUTE;
+Date.DAY    = 24 * Date.HOUR;
+Date.WEEK   =  7 * Date.DAY;
+
+Date.parseDate = function(str, fmt) {
+	var today = new Date();
+	var y = 0;
+	var m = -1;
+	var d = 0;
+	var a = str.split(/\W+/);
+	var b = fmt.match(/%./g);
+	var i = 0, j = 0;
+	var hr = 0;
+	var min = 0;
+	for (i = 0; i < a.length; ++i) {
+		if (!a[i])
+			continue;
+		switch (b[i]) {
+		    case "%d":
+		    case "%e":
+			d = parseInt(a[i], 10);
+			break;
+
+		    case "%m":
+			m = parseInt(a[i], 10) - 1;
+			break;
+
+		    case "%Y":
+		    case "%y":
+			y = parseInt(a[i], 10);
+			(y < 100) && (y += (y > 29) ? 1900 : 2000);
+			break;
+
+		    case "%b":
+		    case "%B":
+			for (j = 0; j < 12; ++j) {
+				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
+			}
+			break;
+
+		    case "%H":
+		    case "%I":
+		    case "%k":
+		    case "%l":
+			hr = parseInt(a[i], 10);
+			break;
+
+		    case "%P":
+		    case "%p":
+			if (/pm/i.test(a[i]) && hr < 12)
+				hr += 12;
+			else if (/am/i.test(a[i]) && hr >= 12)
+				hr -= 12;
+			break;
+
+		    case "%M":
+			min = parseInt(a[i], 10);
+			break;
+		}
+	}
+	if (isNaN(y)) y = today.getFullYear();
+	if (isNaN(m)) m = today.getMonth();
+	if (isNaN(d)) d = today.getDate();
+	if (isNaN(hr)) hr = today.getHours();
+	if (isNaN(min)) min = today.getMinutes();
+	if (y != 0 && m != -1 && d != 0)
+		return new Date(y, m, d, hr, min, 0);
+	y = 0; m = -1; d = 0;
+	for (i = 0; i < a.length; ++i) {
+		if (a[i].search(/[a-zA-Z]+/) != -1) {
+			var t = -1;
+			for (j = 0; j < 12; ++j) {
+				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
+			}
+			if (t != -1) {
+				if (m != -1) {
+					d = m+1;
+				}
+				m = t;
+			}
+		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
+			m = a[i]-1;
+		} else if (parseInt(a[i], 10) > 31 && y == 0) {
+			y = parseInt(a[i], 10);
+			(y < 100) && (y += (y > 29) ? 1900 : 2000);
+		} else if (d == 0) {
+			d = a[i];
+		}
+	}
+	if (y == 0)
+		y = today.getFullYear();
+	if (m != -1 && d != 0)
+		return new Date(y, m, d, hr, min, 0);
+	return today;
+};
+
+/** Returns the number of days in the current month */
+Date.prototype.getMonthDays = function(month) {
+	var year = this.getFullYear();
+	if (typeof month == "undefined") {
+		month = this.getMonth();
+	}
+	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
+		return 29;
+	} else {
+		return Date._MD[month];
+	}
+};
+
+/** Returns the number of day in the year. */
+Date.prototype.getDayOfYear = function() {
+	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
+	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
+	var time = now - then;
+	return Math.floor(time / Date.DAY);
+};
+
+/** Returns the number of the week in year, as defined in ISO 8601. */
+Date.prototype.getWeekNumber = function() {
+	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
+	var DoW = d.getDay();
+	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
+	var ms = d.valueOf(); // GMT
+	d.setMonth(0);
+	d.setDate(4); // Thu in Week 1
+	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
+};
+
+/** Checks date and time equality */
+Date.prototype.equalsTo = function(date) {
+	return ((this.getFullYear() == date.getFullYear()) &&
+		(this.getMonth() == date.getMonth()) &&
+		(this.getDate() == date.getDate()) &&
+		(this.getHours() == date.getHours()) &&
+		(this.getMinutes() == date.getMinutes()));
+};
+
+/** Set only the year, month, date parts (keep existing time) */
+Date.prototype.setDateOnly = function(date) {
+	var tmp = new Date(date);
+	this.setDate(1);
+	this.setFullYear(tmp.getFullYear());
+	this.setMonth(tmp.getMonth());
+	this.setDate(tmp.getDate());
+};
+
+/** Prints the date in a string according to the given format. */
+Date.prototype.print = function (str) {
+	var m = this.getMonth();
+	var d = this.getDate();
+	var y = this.getFullYear();
+	var wn = this.getWeekNumber();
+	var w = this.getDay();
+	var s = {};
+	var hr = this.getHours();
+	var pm = (hr >= 12);
+	var ir = (pm) ? (hr - 12) : hr;
+	var dy = this.getDayOfYear();
+	if (ir == 0)
+		ir = 12;
+	var min = this.getMinutes();
+	var sec = this.getSeconds();
+	s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
+	s["%A"] = Calendar._DN[w]; // full weekday name
+	s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
+	s["%B"] = Calendar._MN[m]; // full month name
+	// FIXME: %c : preferred date and time representation for the current locale
+	s["%C"] = 1 + Math.floor(y / 100); // the century number
+	s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
+	s["%e"] = d; // the day of the month (range 1 to 31)
+	// FIXME: %D : american date style: %m/%d/%y
+	// FIXME: %E, %F, %G, %g, %h (man strftime)
+	s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
+	s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
+	s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
+	s["%k"] = hr;		// hour, range 0 to 23 (24h format)
+	s["%l"] = ir;		// hour, range 1 to 12 (12h format)
+	s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
+	s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
+	s["%n"] = "\n";		// a newline character
+	s["%p"] = pm ? "PM" : "AM";
+	s["%P"] = pm ? "pm" : "am";
+	// FIXME: %r : the time in am/pm notation %I:%M:%S %p
+	// FIXME: %R : the time in 24-hour notation %H:%M
+	s["%s"] = Math.floor(this.getTime() / 1000);
+	s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
+	s["%t"] = "\t";		// a tab character
+	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
+	s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
+	s["%u"] = w + 1;	// the day of the week (range 1 to 7, 1 = MON)
+	s["%w"] = w;		// the day of the week (range 0 to 6, 0 = SUN)
+	// FIXME: %x : preferred date representation for the current locale without the time
+	// FIXME: %X : preferred time representation for the current locale without the date
+	s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
+	s["%Y"] = y;		// year with the century
+	s["%%"] = "%";		// a literal '%' character
+
+	var re = /%./g;
+	if (!Calendar.is_ie5 && !Calendar.is_khtml)
+		return str.replace(re, function (par) { return s[par] || par; });
+
+	var a = str.match(re);
+	for (var i = 0; i < a.length; i++) {
+		var tmp = s[a[i]];
+		if (tmp) {
+			re = new RegExp(a[i], 'g');
+			str = str.replace(re, tmp);
+		}
+	}
+
+	return str;
+};
+
+Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
+Date.prototype.setFullYear = function(y) {
+	var d = new Date(this);
+	d.__msh_oldSetFullYear(y);
+	if (d.getMonth() != this.getMonth())
+		this.setDate(28);
+	this.__msh_oldSetFullYear(y);
+};
+
+// END: DATE OBJECT PATCHES
+
+
+// global object that remembers the calendar
+window._dynarch_popupCalendar = null;

Property changes on: tags/2.7.0/wb/include/jscalendar/calendar.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/jscalendar/menuarrow2.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/jscalendar/menuarrow2.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/text.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/text.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/text.php	(revision 838)
@@ -0,0 +1,97 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+global $database;
+$name = 'text';
+$file = WB_PATH."/temp/.captcha_$name.php";
+
+srand((double)microtime()*100000);
+$_SESSION['captcha'] = rand(0,99999);
+
+// get questions and answers
+$text_qa='';
+$table = TABLE_PREFIX.'mod_captcha_control';
+if($query = $database->query("SELECT ct_text FROM $table")) {
+	$data = $query->fetchRow();
+	$text_qa = $data['ct_text'];
+}
+$content = explode("\n", $text_qa);
+
+reset($content);
+while($s = current($content)) {
+	// get question
+	$s=trim(rtrim(rtrim($s,"\n"),"\r")); // remove newline
+	if($s=='' OR $s{0}!='?') {
+		next($content);
+		continue;
+	}
+	if(isset($s{3}) && $s{3}==':') {
+		$lang=substr($s,1,2);
+		$q=substr($s,4);
+	}	else {
+		$lang='XX';
+		$q=substr($s,1);
+		if($q=='') {
+			next($content);
+			continue;
+		}
+	}
+	// get answer
+	$s=next($content);
+	$s=trim(rtrim(rtrim($s,"\n"),"\r")); // remove newline
+	if(isset($s{0}) && $s{0}=='!') {
+		$a=substr($s,1);
+		$qa[$lang][$q]=$a;
+		next($content);
+	}
+}
+if(!isset($qa) || $qa == array()) {
+	echo '<b>Error</b>: no text defined! Enter <b>0</b> to solve this captcha';
+	$_SESSION['captcha'] = '0';
+	return;
+}
+
+// choose language to use
+if(defined('LANGUAGE') && isset($qa[LANGUAGE]))
+	$lang = LANGUAGE;
+else
+	$lang = 'XX';
+if(!isset($qa[$lang])) {
+	echo '<b>Error</b>: no text defined! Enter <b>0</b> to solve this captcha';
+	$_SESSION['captcha'] = '0';
+	return;
+}
+
+// choose random question
+$k = array_rand($qa[$lang]);
+
+$_SESSION['captcha'] = $qa[$lang][$k];
+
+echo $k;
+
+?>

Property changes on: tags/2.7.0/wb/include/captcha/captchas/text.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/text.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/text.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.php	(revision 838)
@@ -0,0 +1,139 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../../../config.php");
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+if(!isset($_SESSION['captcha_time']))
+	exit;
+unset($_SESSION['captcha_time']);
+
+// get lists of fonts and backgrounds
+require_once(WB_PATH.'/framework/functions.php');
+$t_fonts = file_list(WB_PATH.'/include/captcha/fonts');
+$t_bgs = file_list(WB_PATH.'/include/captcha/backgrounds');
+$fonts = array();
+$bgs = array();
+foreach($t_fonts as $file) if(eregi('\.ttf$',$file)) $fonts[]=$file;
+foreach($t_bgs as $file) if(eregi('\.png$',$file)) $bgs[]=$file;
+
+// Captcha
+$_SESSION['captcha'] = '';
+mt_srand((double)microtime()*1000000);
+$n = mt_rand(1,3);
+switch ($n) {
+	case 1:
+		$x = mt_rand(1,9);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x + $y;
+		$cap = "$x+$y"; 
+		break; 
+	case 2:
+		$x = mt_rand(10,20);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x - $y; 
+		$cap = "$x-$y"; 
+		break;
+	case 3:
+		$x = mt_rand(2,10);
+		$y = mt_rand(2,5);
+		$_SESSION['captcha'] = $x * $y; 
+		$cap = "$x*$y"; 
+		break;
+}
+$text = $cap;
+
+// choose a font and background
+$font = $fonts[array_rand($fonts)];
+$bg = $bgs[array_rand($bgs)];
+// get image-dimensions
+list($width, $height, $type, $attr) = getimagesize($bg);
+
+// create image
+$image = ImageCreateFromPNG($bg); // background image
+$grey = rand(0,50);
+$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+$ttf = $font;
+$ttfsize = 25; // fontsize
+
+if(rand(0,2)==0) { // 1 out of 3
+
+	// draw each character individualy
+	$count = 0;
+	$image_failed = true;
+	$angle = rand(-10,10);
+	$x = rand(20,35);
+	$y = rand($height-10,$height-2);
+	do {
+		for($i=0;$i<strlen($text);$i++) {
+			$res = imagettftext($image, $ttfsize, $angle, $x, $y, $color, $ttf, $text{$i});
+			$angle = rand(-10,10);
+			$x = rand($res[4],$res[4]+10);
+			$y = rand($height-12,$height-7);
+		}
+		if($res[4] > $width) {
+			$image_failed = true;
+		} else {
+			$image_failed = false;
+		}
+		if(++$count > 4) // too many tries! Use the image
+			break;
+	} while($image_failed);
+	
+} else {
+	
+	// draw whole string at once
+	$image_failed = true;
+	$count=0;
+	do {
+		$image = ImageCreateFromPNG($bg); // background image
+		$grey = rand(0,50);
+		$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+		$angle = rand(0,5);
+		$x = rand(20,35);
+		$y = rand($height-10,$height-2);
+		$res = imagettftext($image, $ttfsize, $angle, $x, $y, $color, $ttf, $text);
+		// check if text fits into the image
+		if(($res[0]>0 && $res[0]<$width) && ($res[1]>0 && $res[1]<$height) && 
+			 ($res[2]>0 && $res[2]<$width) && ($res[3]>0 && $res[3]<$height) && 
+			 ($res[4]>0 && $res[4]<$width) && ($res[5]>0 && $res[5]<$height) && 
+			 ($res[6]>0 && $res[6]<$width) && ($res[7]>0 && $res[7]<$height)
+		) {
+			$image_failed = false;
+		}
+		if(++$count > 4) // too many tries! Use the image
+			break;
+	} while($image_failed);
+	
+}
+
+captcha_header();
+ob_start();
+imagepng($image);
+header("Content-Length: ".ob_get_length()); 
+ob_end_flush();
+imagedestroy($image);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_ttf_image.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/ttf_image.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/ttf_image.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/ttf_image.php	(revision 838)
@@ -0,0 +1,132 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../../../config.php");
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+if(!isset($_SESSION['captcha_time']))
+	exit;
+unset($_SESSION['captcha_time']);
+
+// get lists of fonts and backgrounds
+require_once(WB_PATH.'/framework/functions.php');
+$t_fonts = file_list(WB_PATH.'/include/captcha/fonts');
+$t_bgs = file_list(WB_PATH.'/include/captcha/backgrounds');
+$fonts = array();
+$bgs = array();
+foreach($t_fonts as $file) if(eregi('\.ttf$',$file)) $fonts[]=$file;
+foreach($t_bgs as $file) if(eregi('\.png$',$file)) $bgs[]=$file;
+
+// make random string
+if(!function_exists('randomString')) {
+	function randomString($len) {
+		list($usec, $sec) = explode(' ', microtime());
+		srand((float)$sec + ((float)$usec * 100000));
+		//$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghkmnpqrstuvwxyz23456789";
+		$possible="abdfhkrsvwxz23456789";
+		$str="";
+		while(strlen($str)<$len) {
+			$str.=substr($possible,(rand()%(strlen($possible))),1);
+		}
+		return($str);
+	}
+}
+$text = randomString(5); // number of characters
+$_SESSION['captcha'] = $text; 
+
+// choose a font and background
+$font = $fonts[array_rand($fonts)];
+$bg = $bgs[array_rand($bgs)];
+// get image-dimensions
+list($width, $height, $type, $attr) = getimagesize($bg);
+
+// create image
+$image = ImageCreateFromPNG($bg); // background image
+$grey = rand(0,50);
+$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+$ttf = $font;
+$ttfsize = 25; // fontsize
+
+if(rand(0,2)==0) { // 1 out of 3
+
+	// draw each character individualy
+	$count = 0;
+	$image_failed = true;
+	$angle = rand(-15,15);
+	$x = rand(10,25);
+	$y = rand($height-10,$height-2);
+	do {
+		for($i=0;$i<strlen($text);$i++) {
+			$res = imagettftext($image, $ttfsize, $angle, $x, $y, $color, $ttf, $text{$i});
+			$angle = rand(-15,15);
+			$x = rand($res[4],$res[4]+10);
+			$y = rand($height-15,$height-5);
+		}
+		if($res[4] > $width) {
+			$image_failed = true;
+		} else {
+			$image_failed = false;
+		}
+		if(++$count > 4) // too many tries! Use the image
+			break;
+	} while($image_failed);
+	
+} else {
+	
+	// draw whole string at once
+	$image_failed = true;
+	$count=0;
+	do {
+		$image = ImageCreateFromPNG($bg); // background image
+		$grey = rand(0,50);
+		$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
+		$ttf = $font;
+		$ttfsize = 25; // fontsize
+		$angle = rand(0,5);
+		$x = rand(5,30);
+		$y = rand($height-10,$height-2);
+		$res = imagettftext($image, $ttfsize, $angle, $x, $y, $color, $ttf, $text);
+		// check if text fits into the image
+		if(($res[0]>0 && $res[0]<$width) && ($res[1]>0 && $res[1]<$height) && 
+			 ($res[2]>0 && $res[2]<$width) && ($res[3]>0 && $res[3]<$height) && 
+			 ($res[4]>0 && $res[4]<$width) && ($res[5]>0 && $res[5]<$height) && 
+			 ($res[6]>0 && $res[6]<$width) && ($res[7]>0 && $res[7]<$height)
+		) {
+			$image_failed = false;
+		}
+		if(++$count > 4) // too many tries! Use the image
+			break;
+	} while($image_failed);
+	
+}
+
+captcha_header();
+ob_start();
+imagepng($image);
+header("Content-Length: ".ob_get_length()); 
+ob_end_flush();
+imagedestroy($image);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/ttf_image.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_image.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/calc_image.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/calc_image.php	(revision 838)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../../../config.php");
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+if(!isset($_SESSION['captcha_time']))
+	exit;
+unset($_SESSION['captcha_time']);
+
+// Captcha
+$_SESSION['captcha'] = '';
+mt_srand((double)microtime()*1000000);
+$n = mt_rand(1,3);
+switch ($n) {
+	case 1:
+		$x = mt_rand(1,9);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x + $y;
+		$cap = "$x+$y"; 
+		break; 
+	case 2:
+		$x = mt_rand(10,20);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x - $y; 
+		$cap = "$x-$y"; 
+		break;
+	case 3:
+		$x = mt_rand(2,10);
+		$y = mt_rand(2,5);
+		$_SESSION['captcha'] = $x * $y; 
+		$cap = "$x*$y"; 
+		break;
+}
+
+$image = imagecreate(100, 30);
+
+$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
+$darkgray = imagecolorallocate($image, 0x30, 0x30, 0x30);
+
+srand((double)microtime()*1000000);
+
+for($i = 0; $i < 30; $i++) {
+	$x1 = rand(0,100);
+	$y1 = rand(0,30);
+	$x2 = rand(0,100);
+	$y2 = rand(0,30);
+	imageline($image, $x1, $y1, $x2, $y2 , $gray);  
+}
+
+$x = 0;
+$l = strlen($cap);
+for($i = 0; $i < $l; $i++) {
+	$fnt = rand(3,5);
+	$x = $x + rand(12 , 20);
+	$y = rand(7 , 12); 
+	imagestring($image, $fnt, $x, $y, substr($cap, $i, 1), $darkgray); 
+}
+
+captcha_header();
+imagepng($image);
+imagedestroy($image);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_image.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_text.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/calc_text.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/calc_text.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+$_SESSION['captcha'] = '';
+mt_srand((double)microtime()*1000000);
+$n = mt_rand(1,3);
+switch ($n) {
+	case 1:
+		$x = mt_rand(1,9);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x + $y;
+		$cap = "$x {$MOD_CAPTCHA['ADDITION']} $y"; 
+		break; 
+	case 2:
+		$x = mt_rand(10,20);
+		$y = mt_rand(1,9);
+		$_SESSION['captcha'] = $x - $y; 
+		$cap = "$x {$MOD_CAPTCHA['SUBTRAKTION']} $y"; 
+		break;
+	case 3:
+		$x = mt_rand(2,10);
+		$y = mt_rand(2,5);
+		$_SESSION['captcha'] = $x * $y; 
+		$cap = "$x {$MOD_CAPTCHA['MULTIPLIKATION']} $y"; 
+		break;
+}
+echo $cap;
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_text.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/ttf_image.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/ttf_image.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/old_image.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/old_image.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/old_image.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/old_image.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/old_image.php	(revision 838)
@@ -0,0 +1,68 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../../../config.php");
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+if(!isset($_SESSION['captcha_time']))
+	exit;
+unset($_SESSION['captcha_time']);
+
+// Captcha
+srand((double)microtime()*100000);
+$_SESSION['captcha'] = rand(10000,99999);
+
+$w=120;
+$h=30;
+$image = imagecreate($w, $h);
+$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
+$darkgray = imagecolorallocate($image, 0x50, 0x50, 0x50);
+
+srand((double)microtime()*1000000);
+for($i = 0; $i < 30; $i++) {
+	$x1 = rand(0,$w);
+	$y1 = rand(0,$h);
+	$x2 = rand(0,$w);
+	$y2 = rand(0,$h);
+	imageline($image, $x1, $y1, $x2, $y2 , $gray);  
+}
+
+$x = 0;
+for($i = 0; $i < 5; $i++) {
+	$fnt = rand(3,5);
+	$x = $x + rand(12 , 20);
+	$y = rand(7 , 12); 
+	imagestring($image, $fnt, $x, $y, substr($_SESSION['captcha'], $i, 1), $darkgray); 
+}
+
+captcha_header();
+ob_start();
+imagepng($image);
+header("Content-Length: ".ob_get_length()); 
+ob_end_flush();
+imagedestroy($image);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/old_image.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_image.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_image.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/calc_text.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/captchas/calc_text.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captchas/index.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captchas/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captchas/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/captchas/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/captcha.php
===================================================================
--- tags/2.7.0/wb/include/captcha/captcha.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/captcha.php	(revision 838)
@@ -0,0 +1,168 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being accessed directly
+if(!defined('WB_PATH')) { exit("Cannot access this file directly"); }
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+global $MOD_CAPTCHA;
+if(!file_exists(WB_PATH.'/modules/captcha_control/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH.'/modules/captcha_control/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH.'/modules/captcha_control/languages/'.LANGUAGE .'.php');
+}
+
+// output-handler for image-captchas to determine size of image
+if(!function_exists('captcha_header')) {
+	function captcha_header() {
+		header("Expires: Mon, 1 Jan 1990 05:00:00 GMT");
+		header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+		header("Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate");
+		header("Cache-Control: post-check=0, pre-check=0", false); // MS made there own headers :-(
+		header("Pragma: no-cache");
+		header("Content-type: image/png");
+		return;
+	}
+}
+
+// get list of available CAPTCHAS for the dropdown-listbox in admin-tools
+if(extension_loaded('gd') && function_exists('imagepng') && function_exists('imagettftext')) {
+	$useable_captchas = array(
+		'calc_text'=>$MOD_CAPTCHA_CONTROL['CALC_TEXT'],
+		'calc_image'=>$MOD_CAPTCHA_CONTROL['CALC_IMAGE'],
+		'calc_ttf_image'=>$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE'],
+		'ttf_image'=>$MOD_CAPTCHA_CONTROL['TTF_IMAGE'],
+		'old_image'=>$MOD_CAPTCHA_CONTROL['OLD_IMAGE'],
+		'text'=>$MOD_CAPTCHA_CONTROL['TEXT']
+	);
+} elseif(extension_loaded('gd') && function_exists('imagepng')) {
+	$useable_captchas = array(
+		'calc_text'=>$MOD_CAPTCHA_CONTROL['CALC_TEXT'],
+		'calc_image'=>$MOD_CAPTCHA_CONTROL['CALC_IMAGE'],
+		'old_image'=>$MOD_CAPTCHA_CONTROL['OLD_IMAGE'],
+		'text'=>$MOD_CAPTCHA_CONTROL['TEXT']
+	);
+} else {
+	$useable_captchas = array(
+		'calc_text'=>$MOD_CAPTCHA_CONTROL['CALC_TEXT'],
+		'text'=>$MOD_CAPTCHA_CONTROL['TEXT']
+	);
+}
+
+if(!function_exists('call_captcha')) {
+	function call_captcha($action='all', $style='') {
+		global $MOD_CAPTCHA;
+		$t = time();
+		$_SESSION['captcha_time'] = $t;
+		
+		if($action=='all') {
+			switch(CAPTCHA_TYPE) {
+				// one special case
+				case 'text': // text-captcha
+					?><table class="captcha_table"><tr>
+					<td class="text_captcha"><?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?></td>
+					<td><input type="text" name="captcha" maxlength="50"  style="width:150px;" /></td>
+					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_QUEST']; ?></td>
+					</tr></table><?php
+					break;
+				// two special cases
+				case 'calc_text': // calculation as text
+					?><table class="captcha_table"><tr>
+					<td class="text_captcha"><?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?>&nbsp;=&nbsp;</td>
+					<td><input type="text" name="captcha" maxlength="10"  style="width:20px;" /></td>
+					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_RES']; ?></td>
+					</tr></table><?php
+					break;
+				case 'calc_image': // calculation with image (old captcha)
+				case 'calc_ttf_image': // calculation with varying background and ttf-font
+					?><table class="captcha_table"><tr>
+					<td class="image_captcha"><img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" /></td><td>&nbsp;=&nbsp;</td>
+					<td><input type="text" name="captcha" maxlength="10" style="width:20px;" /></td>
+					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_RES']; ?></td>
+					</tr></table><?php
+					break;
+				// normal images
+				case 'ttf_image': // captcha with varying background and ttf-font
+				case 'old_image': // old captcha
+					?><table class="captcha_table"><tr>
+					<td class="image_captcha"><img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" /></td>
+					<td><input type="text" name="captcha" maxlength="10" style="width:50px;" /></td>
+					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_TEXT']; ?></td>
+					</tr></table><?php
+					break;
+			}
+		} elseif($action=='image') {
+			switch(CAPTCHA_TYPE) {
+				case 'text': // text-captcha
+				case 'calc_text': // calculation as text
+					echo ($style?"<span $style>":'');
+					include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
+					echo ($style?'</span>':'');
+					break;
+				case 'calc_image': // calculation with image (old captcha)
+				case 'calc_ttf_image': // calculation with varying background and ttf-font
+				case 'ttf_image': // captcha with varying background and ttf-font
+				case 'old_image': // old captcha
+					echo "<img $style src=\"".WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t\" />";
+					break;
+			}
+		} elseif($action=='input') {
+			switch(CAPTCHA_TYPE) {
+				case 'text': // text-captcha
+					echo '<input type="text" name="captcha" '.($style?$style:'style="width:150px;" maxlength="50"').' />';
+					break;
+				case 'calc_text': // calculation as text
+				case 'calc_image': // calculation with image (old captcha)
+				case 'calc_ttf_image': // calculation with varying background and ttf-font
+					echo '<input type="text" name="captcha" '.($style?$style:'style="width:20px;" maxlength="10"').' />';
+					break;
+				case 'ttf_image': // captcha with varying background and ttf-font
+				case 'old_image': // old captcha
+					echo '<input type="text" name="captcha" '.($style?$style:'style="width:50px;" maxlength="10"').' />';
+					break;
+			}
+		} elseif($action=='text') {
+			echo ($style?"<span $style>":'');
+			switch(CAPTCHA_TYPE) {
+				case 'text': // text-captcha
+					echo $MOD_CAPTCHA['VERIFICATION_INFO_QUEST'];
+					break;
+				case 'calc_text': // calculation as text
+				case 'calc_image': // calculation with image (old captcha)
+				case 'calc_ttf_image': // calculation with varying background and ttf-font
+					echo $MOD_CAPTCHA['VERIFICATION_INFO_RES'];
+					break;
+				case 'ttf_image': // captcha with varying background and ttf-font
+				case 'old_image': // old captcha
+					echo $MOD_CAPTCHA['VERIFICATION_INFO_TEXT'];
+					break;
+			}
+			echo ($style?'</span>':'');
+		}
+	}
+}
+?>

Property changes on: tags/2.7.0/wb/include/captcha/captcha.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/readme.txt
===================================================================
--- tags/2.7.0/wb/include/captcha/readme.txt	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/readme.txt	(revision 838)
@@ -0,0 +1,78 @@
+// $Id$
+
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+
+One can improve all CAPTCHA-types with varying fonts and backgrounds
+- by adding backgrounds (PNG-images, 140x40 pixels) to backgrounds/
+- and by adding TrueType-fonts to fonts/
+
+
+How to use:
+
+1.)
+put 
+  require_once(WB_PATH.'/include/captcha/captcha.php');
+in your file.
+
+
+2a.)
+put 
+  <?php call_captcha(); ?>
+into your form.
+This will output a table with varying columns (3 or 4) like this example:
+<table class="captcha_table"><tr>
+  <td><img src="http://www.example.org/include/captcha/captchas/ttf.php?t=64241454" alt="Captcha" /></td>
+  <td><input type="text" name="captcha" maxlength="5" style="width:50px" /></td>
+  <td class="captcha_expl">Fill in the result</td>
+</tr></table>
+
+
+2b.)
+If you want to use your own layout, use additional parameters to call_captcha():
+call_captcha('all') will output the whole table as above.
+
+call_captcha('image', $style); will output the <img>-tag for the image only (or the text for an text-style captcha):
+Examples:
+  call_captcha('image', 'style="...; title="captcha"');
+    <img style="...; title="captcha" src="http://www.example.org/include/captcha/captchas/captcha.php?t=46784246" />
+    or
+    <span style="...; title="captcha">4 add 6</span>
+	call_captcha('image');
+    <img src="http://www.example.org/include/captcha/captchas/captcha.php?t=46784246" />
+    or
+    4 add 6
+
+call_captcha('input', $style); will output the input-field:
+  call_captcha('input', 'style"...;"');
+    <input type="text" name="captcha" style="...;" />
+  call_captcha('input');
+    <input type="text" name="captcha" style="width:50px;" maxlength="10" />
+
+call_captcha('text', $style); will output a short "what to do"-text
+  call_captcha('text', 'style="...;"');
+	  <span style="...;">Fill in the result</span>
+  call_captcha('text');
+	  Fill in the result
+
+
+
+The CAPTCHA-code is allways stored in $_SESSION['captcha'] for verification with user-input.
+The user-input is in $_POST['captcha'] (or maybe $_GET['captcha']).

Property changes on: tags/2.7.0/wb/include/captcha/readme.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LL_Readme
===================================================================
--- tags/2.7.0/wb/include/captcha/fonts/LL_Readme	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/fonts/LL_Readme	(revision 838)
@@ -0,0 +1,31 @@
+These fonts (LLBd.ttf and LLBI.ttf, and cond-variants) are derivated from LinuxLibertine-Font for use with website baker's captcha _only_.
+All chars above pos. 127 has been removed!
+Jan. 2008 - thorn
+
+---------------------------------------------------
+
+LOFP - Libertine Open Fonts Project
+
+1. OPEN FONTS PROJECT'S AIMS
+We work on a serif font-family for practical use in documents. This project aims at creating a free alternative to the standard W*ndows Font (T*mes).
+But neveretheless Libertine is not a clone of any common font! It has been developed from scratch and it goes different ways in typography than the Times. Just the useability and the dimensions shall be similar, Libertine should be even better for typical office use! If you want a Times-clone go elsewhere! If you just need reliable and good typography give this font a chance. If you want to know more about the design of Libertine, have a look at our website.
+
+2. LICENSE AND OPENSOURCE
+We publish our fonts under the terms of the GPL (see GPL.txt) and OFL (OFL.txt) 
+-> see also LICENCE.txt!
+The OpenSource-tool Fontforge is used as font editor (see http://fontforge.sf.net).
+
+3. FONT FORMATS TTF VS. OTF
+The font files are available as TTF (TrueType) and OTF (OpenType) fonts. The TTF-Family is called "LinuxLibertine" and the OTF "LinuxLibertine O" so that both types can be installed and used parallely.
+We recommend TTF for most users. OTF is especially useful for Windows users (Hinting) and *.dfont for Mac-Users. The advanced typographic features like ligature substitution and Small Capitals, ... may be availible in the OTF only.
+
+4. HINTING
+The TrueType-hinting is a complex technique and our editor FontForge doesn't support it quite well (but alot better version by version)... Since version 2.7 also the normal TTFs are hinted. If you don't like this, send me a mail. You may also try the OpenTypes (which contain PS-Hintings which are quite good supported by fontforge).
+
+5. DOWNLOAD AND CONTACT
+We publish our fonts at http://linuxlibertine.sf.net.
+
+6. THE UNDERLINED VARIANT
+Some people liked our idea of a real underlined. The advantage of this font is that g, commas, cedillas... are not overprinted by the line anymore. For technical reasons the space is not underlined but you can use the _ instead. In this font it has the width of the space and the line is at hight of the underline. The underlined variant uses an older font outline! Please keep this in mind!
+
+

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LL_Readme
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LLBI_cond.ttf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LLBI_cond.ttf
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LLBd.ttf_
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LLBd.ttf_
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LLBd_cond.ttf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LLBd_cond.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LLBI.ttf_
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LLBI.ttf_
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LL_OFL.txt
===================================================================
--- tags/2.7.0/wb/include/captcha/fonts/LL_OFL.txt	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/fonts/LL_OFL.txt	(revision 838)
@@ -0,0 +1,98 @@
+This Font Software is Copyright (c) 2003-2006, Philipp H. Poll (http://linuxlibertine.sf.net/).
+All Rights Reserved.
+
+"Linux Libertine" is a Reserved Font Name for this Font Software.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.0.
+No modification of the license is permitted, only verbatim copy is allowed.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of cooperative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide an open
+framework in which fonts may be shared and improved in partnership with
+others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and sold with any software provided that the font
+names of derivative works are changed. The fonts and derivatives,
+however, cannot be released under any other type of license.
+
+DEFINITIONS
+"Font Software" refers to any and all of the following:
+	- font files
+	- data files
+	- source code
+	- build scripts
+	- documentation
+
+"Reserved Font Name" refers to the Font Software name as seen by
+users and any other names as specified after the copyright statement.
+
+"Standard Version" refers to the collection of Font Software
+components as distributed by the Copyright Holder.
+
+"Modified Version" refers to any derivative font software made by
+adding to, deleting, or substituting -- in part or in whole --
+any of the components of the Standard Version, by changing formats
+or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Standard or Modified Versions, may be sold by itself.
+
+2) Standard or Modified Versions of the Font Software may be bundled,
+redistributed and sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s), in part or in whole, unless explicit written permission is
+granted by the Copyright Holder. This restriction applies to all 
+references stored in the Font Software, such as the font menu name and
+other font description fields, which are used to differentiate the
+font from others.
+
+4) The name(s) of the Copyright Holder or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed using this license, and may not be distributed
+under any other license.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LL_OFL.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LL_GPL.txt
===================================================================
--- tags/2.7.0/wb/include/captcha/fonts/LL_GPL.txt	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/fonts/LL_GPL.txt	(revision 838)
@@ -0,0 +1,343 @@
+		    GNU GENERAL PUBLIC LICENSE (with font exception)
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LL_GPL.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/LL_LICENCE.txt
===================================================================
--- tags/2.7.0/wb/include/captcha/fonts/LL_LICENCE.txt	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/fonts/LL_LICENCE.txt	(revision 838)
@@ -0,0 +1,7 @@
+- Lizenz / Licence -
+
+Unsere Schriften sind frei im Sinne der GPL, d.h. (stark vereinfacht) dass VerÃ¤nderungen an der Schriftart erlaubt sind unter der Bedingung, dass diese wieder der Ã–ffentlichkeit unter gleicher Lizenz freigegeben werden. Querdenker behaupten oft, dass bei der Verwendung einer GPL-Schrift eingebettet in beispielsweise eine PDF auch diese freigestellt werden mÃ¼sse. Deshalb gibt es die sogenannte "Font-exception" der GPL (welche diesem Lizenztext hinzugefÃ¼gt wurde). Weitere Informationen zur GPL (Lizenztext mit Font-Exzeption im Archiv).
+ZusÃ¤tzlich stehen die Schriften unter der Open Font License (siehe OFL.txt).
+
+Our fonts are free in the sense of the GPL. Changing the font is allowed as long as the derivative work is published under the same licence again. Pedantics keep claiming that the embedded use of GPL-fonts in i.e. PDFs requires the free publication of the PDF as well. This is why our GPL contains the so called "font exception". Further information about the GPL (Licence text with font exception of the archive).
+Additionally our fonts are licensed under the Open Fonts License (See OFL.txt).
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha/fonts/LL_LICENCE.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/fonts/index.php
===================================================================
--- tags/2.7.0/wb/include/captcha/fonts/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/fonts/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>

Property changes on: tags/2.7.0/wb/include/captcha/fonts/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/backgrounds/bg_04a.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/backgrounds/bg_04a.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/backgrounds/index.php
===================================================================
--- tags/2.7.0/wb/include/captcha/backgrounds/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/backgrounds/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>

Property changes on: tags/2.7.0/wb/include/captcha/backgrounds/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/backgrounds/bg_01a.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/backgrounds/bg_01a.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/backgrounds/bg_02a.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/backgrounds/bg_02a.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/backgrounds/bg_03a.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/captcha/backgrounds/bg_03a.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/captcha/index.php
===================================================================
--- tags/2.7.0/wb/include/captcha/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>

Property changes on: tags/2.7.0/wb/include/captcha/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/phplib/template.inc
===================================================================
--- tags/2.7.0/wb/include/phplib/template.inc	(nonexistent)
+++ tags/2.7.0/wb/include/phplib/template.inc	(revision 838)
@@ -0,0 +1,1026 @@
+<?php
+
+// $Id$
+
+/*
+ * Session Management for PHP3
+ *
+ * (C) Copyright 1999-2000 NetUSE GmbH
+ *                    Kristian Koehntopp
+ *
+ * $Id: template.inc,v 1.15 2004/07/23 20:36:29 layne_weathers Exp $
+ *
+ */
+
+/*
+ * Change log since version 7.2c
+ *
+ * Bug fixes to version 7.2c compiled by Richard Archer <rha@juggernaut.com.au>:
+ * (credits given to first person to post a diff to phplib mailing list)
+ *
+ * Normalised all comments and whitespace (rha)
+ * replaced "$handle" with "$varname" and "$h" with "$v" throughout (from phplib-devel)
+ * added braces around all one-line if statements in: get_undefined, loadfile and halt (rha)
+ * set_var was missing two sets of braces (rha)
+ * added a couple of "return true" statements (rha)
+ * set_unknowns had "keep" as default instead of "remove" (from phplib-devel)
+ * set_file failed to check for empty strings if passed an array of filenames (phplib-devel)
+ * remove @ from call to preg_replace in subst -- report errors if there are any (NickM)
+ * set_block unnecessarily required a newline in the template file (Marc Tardif)
+ * pparse now calls this->finish to replace undefined vars (Layne Weathers)
+ * get_var now checks for unset varnames (NickM & rha)
+ * get_var when passed an array used the array key instead of the value (rha)
+ * get_vars now uses a call to get_var rather than this->varvals to prevent undefined var warning (rha)
+ * in finish, the replacement string referenced an unset variable (rha)
+ * loadfile would try to load a file if the varval had been set to "" (rha)
+ * in get_undefined, only match non-whitespace in variable tags as in finish (Layne Weathers & rha)
+ * more elegant fix to the problem of subst stripping '$n', '\n' and '\\' strings (rha)
+ * parse uses get_var to obtain return value (Jordi via SF)
+ * set_block reports an error if the block could not be extracted (rha)
+ * filename is now windows-pathname aware (krabu @ SF)
+ *
+ *
+ * Changes in functionality which go beyond bug fixes:
+ *
+ * added ability for filename comments to be output (from phplib-users layne)
+ * changed debug handling so set, get and internals can be tracked separately (rha)
+ * added debug statements throughout to track most function calls (rha)
+ * debug output contained raw HTML -- is now escaped with htmlentities (rha)
+ * Alter regex in set_block to remove more whitespace around BEGIN/END tags to improve HTML layout (rha)
+ * Add "append" option to set_var, works just like append in parse (dale at linuxwebpro.com, rha)
+ * Altered parse so that append is honored if passed an array (Brian)
+ * Converted comments and documentation to phpdoc style (rha)
+ * Added clear_var to set the value of variables to "" (rha)
+ * Added unset_var to usset variables (rha)
+ *
+ */
+
+/**
+ * The template class allows you to keep your HTML code in some external files
+ * which are completely free of PHP code, but contain replacement fields.
+ * The class provides you with functions which can fill in the replacement fields
+ * with arbitrary strings. These strings can become very large, e.g. entire tables.
+ *
+ * Note: If you think that this is like FastTemplates, read carefully. It isn't.
+ *
+ */
+
+class Template
+{
+ /**
+  * Serialization helper, the name of this class.
+  *
+  * @var       string
+  * @access    public
+  */
+  var $classname = "Template";
+
+ /**
+  * Determines how much debugging output Template will produce.
+  * This is a bitwise mask of available debug levels:
+  * 0 = no debugging
+  * 1 = debug variable assignments
+  * 2 = debug calls to get variable
+  * 4 = debug internals (outputs all function calls with parameters).
+  *
+  * Note: setting $this->debug = true will enable debugging of variable
+  * assignments only which is the same behaviour as versions up to release 7.2d.
+  *
+  * @var       int
+  * @access    public
+  */
+  var $debug    = false;
+
+ /**
+  * Determines whether Template outputs filename comments.
+  * false = no filename outputs
+  * true = HTML comments (e.g. <!-- START FILE $filename -->) placed in output
+  *
+  * @var       int
+  * @access    public
+  */
+  var $filename_comments = false;
+
+ /**
+  * Determines the regular expression used to find unknown variable tags.
+  * "loose"  = traditional match all curly braces with no whitespace between
+  * "strict" = adopts PHP's variable naming rules
+  *              ("loose" has a nasty habit of deleting JavaScript RegEx components)
+  *              (should future major version releases of PHPLib default this "strict"?)
+  *
+  * @var       string
+  * @access    public
+  */
+  var $unknown_regexp = "loose";
+
+ /**
+  * The base directory from which template files are loaded.
+  *
+  * @var       string
+  * @access    private
+  * @see       set_root
+  */
+  var $root     = ".";
+
+ /**
+  * A hash of strings forming a translation table which translates variable names
+  * into names of files containing the variable content.
+  * $file[varname] = "filename";
+  *
+  * @var       array
+  * @access    private
+  * @see       set_file
+  */
+  var $file     = array();
+
+ /**
+  * A hash of strings forming a translation table which translates variable names
+  * into regular expressions for themselves.
+  * $varkeys[varname] = "/varname/"
+  *
+  * @var       array
+  * @access    private
+  * @see       set_var
+  */
+  var $varkeys  = array();
+
+ /**
+  * A hash of strings forming a translation table which translates variable names
+  * into values for their respective varkeys.
+  * $varvals[varname] = "value"
+  *
+  * @var       array
+  * @access    private
+  * @see       set_var
+  */
+  var $varvals  = array();
+
+ /**
+  * Determines how to output variable tags with no assigned value in templates.
+  *
+  * @var       string
+  * @access    private
+  * @see       set_unknowns
+  */
+  var $unknowns = "remove";
+
+ /**
+  * Determines how Template handles error conditions.
+  * "yes"      = the error is reported, then execution is halted
+  * "report"   = the error is reported, then execution continues by returning "false"
+  * "no"       = errors are silently ignored, and execution resumes reporting "false"
+  *
+  * @var       string
+  * @access    public
+  * @see       halt
+  */
+  var $halt_on_error  = "yes";
+
+ /**
+  * The last error message is retained in this variable.
+  *
+  * @var       string
+  * @access    public
+  * @see       halt
+  */
+  var $last_error     = "";
+
+ /******************************************************************************
+  * Class constructor. May be called with two optional parameters.
+  * The first parameter sets the template directory the second parameter
+  * sets the policy regarding handling of unknown variables.
+  *
+  * usage: Template([string $root = "."], [string $unknowns = "remove"])
+  *
+  * @param     $root        path to template directory
+  * @param     $string      what to do with undefined variables
+  * @see       set_root
+  * @see       set_unknowns
+  * @access    public
+  * @return    void
+  */
+  function Template($root = ".", $unknowns = "remove") {
+    if ($this->debug & 4) {
+      echo "<p><b>Template:</b> root = $root, unknowns = $unknowns</p>\n";
+    }
+    $this->set_root($root);
+    $this->set_unknowns($unknowns);
+  }
+
+
+ /******************************************************************************
+  * Checks that $root is a valid directory and if so sets this directory as the
+  * base directory from which templates are loaded by storing the value in
+  * $this->root. Relative filenames are prepended with the path in $this->root.
+  *
+  * Returns true on success, false on error.
+  *
+  * usage: set_root(string $root)
+  *
+  * @param     $root         string containing new template directory
+  * @see       root
+  * @access    public
+  * @return    boolean
+  */
+  function set_root($root) {
+    if(ereg('/$', $root)) {
+      $root = substr($root, 0, -1);
+    }
+    if ($this->debug & 4) {
+      echo "<p><b>set_root:</b> root = $root</p>\n";
+    }
+    if (!is_dir($root)) {
+      $this->halt("set_root: $root is not a directory.");
+      return false;
+    }
+
+    $this->root = $root;
+    return true;
+  }
+
+
+ /******************************************************************************
+  * Sets the policy for dealing with unresolved variable names.
+  *
+  * unknowns defines what to do with undefined template variables
+  * "remove"   = remove undefined variables
+  * "comment"  = replace undefined variables with comments
+  * "keep"     = keep undefined variables
+  *
+  * Note: "comment" can cause unexpected results when the variable tag is embedded
+  * inside an HTML tag, for example a tag which is expected to be replaced with a URL.
+  *
+  * usage: set_unknowns(string $unknowns)
+  *
+  * @param     $unknowns         new value for unknowns
+  * @see       unknowns
+  * @access    public
+  * @return    void
+  */
+  function set_unknowns($unknowns = "remove") {
+    if ($this->debug & 4) {
+      echo "<p><b>unknowns:</b> unknowns = $unknowns</p>\n";
+    }
+    $this->unknowns = $unknowns;
+  }
+
+
+ /******************************************************************************
+  * Defines a filename for the initial value of a variable.
+  *
+  * It may be passed either a varname and a file name as two strings or
+  * a hash of strings with the key being the varname and the value
+  * being the file name.
+  *
+  * The new mappings are stored in the array $this->file.
+  * The files are not loaded yet, but only when needed.
+  *
+  * Returns true on success, false on error.
+  *
+  * usage: set_file(array $filelist = (string $varname => string $filename))
+  * or
+  * usage: set_file(string $varname, string $filename)
+  *
+  * @param     $varname      either a string containing a varname or a hash of varname/file name pairs.
+  * @param     $filename     if varname is a string this is the filename otherwise filename is not required
+  * @access    public
+  * @return    boolean
+  */
+  function set_file($varname, $filename = "") {
+    if (!is_array($varname)) {
+      if ($this->debug & 4) {
+        echo "<p><b>set_file:</b> (with scalar) varname = $varname, filename = $filename</p>\n";
+      }
+      if ($filename == "") {
+        $this->halt("set_file: For varname $varname filename is empty.");
+        return false;
+      }
+      $this->file[$varname] = $this->filename($filename);
+    } else {
+      reset($varname);
+      while (list($v, $f) = each($varname)) {
+        if ($this->debug & 4) {
+          echo "<p><b>set_file:</b> (with array) varname = $v, filename = $f</p>\n";
+        }
+        if ($f == "") {
+          $this->halt("set_file: For varname $v filename is empty.");
+          return false;
+        }
+        $this->file[$v] = $this->filename($f);
+      }
+    }
+    return true;
+  }
+
+
+ /******************************************************************************
+  * A variable $parent may contain a variable block defined by:
+  * &lt;!-- BEGIN $varname --&gt; content &lt;!-- END $varname --&gt;. This function removes
+  * that block from $parent and replaces it with a variable reference named $name.
+  * The block is inserted into the varkeys and varvals hashes. If $name is
+  * omitted, it is assumed to be the same as $varname.
+  *
+  * Blocks may be nested but care must be taken to extract the blocks in order
+  * from the innermost block to the outermost block.
+  *
+  * Returns true on success, false on error.
+  *
+  * usage: set_block(string $parent, string $varname, [string $name = ""])
+  *
+  * @param     $parent       a string containing the name of the parent variable
+  * @param     $varname      a string containing the name of the block to be extracted
+  * @param     $name         the name of the variable in which to store the block
+  * @access    public
+  * @return    boolean
+  */
+  function set_block($parent, $varname, $name = "") {
+    if ($this->debug & 4) {
+      echo "<p><b>set_block:</b> parent = $parent, varname = $varname, name = $name</p>\n";
+    }
+    if (!$this->loadfile($parent)) {
+      $this->halt("set_block: unable to load $parent.");
+      return false;
+    }
+    if ($name == "") {
+      $name = $varname;
+    }
+
+    $str = $this->get_var($parent);
+    $reg = "/[ \t]*<!--\s+BEGIN $varname\s+-->\s*?\n?(\s*.*?\n?)\s*<!--\s+END $varname\s+-->\s*?\n?/sm";
+    preg_match_all($reg, $str, $m);
+/* workaround to avoid problems with some WB files/modules (e.g. massmail)
+    if (!isset($m[1][0])) {
+      $this->halt("set_block: unable to set block $varname.");
+      return false;
+    }
+*/
+    $str = preg_replace($reg, "{" . $name . "}", $str);
+    @$this->set_var($varname, $m[1][0]);
+    $this->set_var($parent, $str);
+    return true;
+  }
+
+
+ /******************************************************************************
+  * This functions sets the value of a variable.
+  *
+  * It may be called with either a varname and a value as two strings or an
+  * an associative array with the key being the varname and the value being
+  * the new variable value.
+  *
+  * The function inserts the new value of the variable into the $varkeys and
+  * $varvals hashes. It is not necessary for a variable to exist in these hashes
+  * before calling this function.
+  *
+  * An optional third parameter allows the value for each varname to be appended
+  * to the existing variable instead of replacing it. The default is to replace.
+  * This feature was introduced after the 7.2d release.
+  *
+  *
+  * usage: set_var(string $varname, [string $value = ""], [boolean $append = false])
+  * or
+  * usage: set_var(array $varname = (string $varname => string $value), [mixed $dummy_var], [boolean $append = false])
+  *
+  * @param     $varname      either a string containing a varname or a hash of varname/value pairs.
+  * @param     $value        if $varname is a string this contains the new value for the variable otherwise this parameter is ignored
+  * @param     $append       if true, the value is appended to the variable's existing value
+  * @access    public
+  * @return    void
+  */
+  function set_var($varname, $value = "", $append = false) {
+    if (!is_array($varname)) {
+      if (!empty($varname)) {
+        if ($this->debug & 1) {
+          printf("<b>set_var:</b> (with scalar) <b>%s</b> = '%s'<br>\n", $varname, htmlentities($value));
+        }
+        $this->varkeys[$varname] = "/".$this->varname($varname)."/";
+        if ($append && isset($this->varvals[$varname])) {
+          $this->varvals[$varname] .= $value;
+        } else {
+          $this->varvals[$varname] = $value;
+        }
+      }
+    } else {
+      reset($varname);
+      while (list($k, $v) = each($varname)) {
+        if (!empty($k)) {
+          if ($this->debug & 1) {
+            printf("<b>set_var:</b> (with array) <b>%s</b> = '%s'<br>\n", $k, htmlentities($v));
+          }
+          $this->varkeys[$k] = "/".$this->varname($k)."/";
+          if ($append && isset($this->varvals[$k])) {
+            $this->varvals[$k] .= $v;
+          } else {
+            $this->varvals[$k] = $v;
+          }
+        }
+      }
+    }
+  }
+
+
+ /******************************************************************************
+  * This functions clears the value of a variable.
+  *
+  * It may be called with either a varname as a string or an array with the 
+  * values being the varnames to be cleared.
+  *
+  * The function sets the value of the variable in the $varkeys and $varvals 
+  * hashes to "". It is not necessary for a variable to exist in these hashes
+  * before calling this function.
+  *
+  *
+  * usage: clear_var(string $varname)
+  * or
+  * usage: clear_var(array $varname = (string $varname))
+  *
+  * @param     $varname      either a string containing a varname or an array of varnames.
+  * @access    public
+  * @return    void
+  */
+  function clear_var($varname) {
+    if (!is_array($varname)) {
+      if (!empty($varname)) {
+        if ($this->debug & 1) {
+          printf("<b>clear_var:</b> (with scalar) <b>%s</b><br>\n", $varname);
+        }
+        $this->set_var($varname, "");
+      }
+    } else {
+      reset($varname);
+      while (list($k, $v) = each($varname)) {
+        if (!empty($v)) {
+          if ($this->debug & 1) {
+            printf("<b>clear_var:</b> (with array) <b>%s</b><br>\n", $v);
+          }
+          $this->set_var($v, "");
+        }
+      }
+    }
+  }
+
+
+ /******************************************************************************
+  * This functions unsets a variable completely.
+  *
+  * It may be called with either a varname as a string or an array with the 
+  * values being the varnames to be cleared.
+  *
+  * The function removes the variable from the $varkeys and $varvals hashes.
+  * It is not necessary for a variable to exist in these hashes before calling
+  * this function.
+  *
+  *
+  * usage: unset_var(string $varname)
+  * or
+  * usage: unset_var(array $varname = (string $varname))
+  *
+  * @param     $varname      either a string containing a varname or an array of varnames.
+  * @access    public
+  * @return    void
+  */
+  function unset_var($varname) {
+    if (!is_array($varname)) {
+      if (!empty($varname)) {
+        if ($this->debug & 1) {
+          printf("<b>unset_var:</b> (with scalar) <b>%s</b><br>\n", $varname);
+        }
+        unset($this->varkeys[$varname]);
+        unset($this->varvals[$varname]);
+      }
+    } else {
+      reset($varname);
+      while (list($k, $v) = each($varname)) {
+        if (!empty($v)) {
+          if ($this->debug & 1) {
+            printf("<b>unset_var:</b> (with array) <b>%s</b><br>\n", $v);
+          }
+          unset($this->varkeys[$v]);
+          unset($this->varvals[$v]);
+        }
+      }
+    }
+  }
+
+
+ /******************************************************************************
+  * This function fills in all the variables contained within the variable named
+  * $varname. The resulting value is returned as the function result and the
+  * original value of the variable varname is not changed. The resulting string
+  * is not "finished", that is, the unresolved variable name policy has not been
+  * applied yet.
+  *
+  * Returns: the value of the variable $varname with all variables substituted.
+  *
+  * usage: subst(string $varname)
+  *
+  * @param     $varname      the name of the variable within which variables are to be substituted
+  * @access    public
+  * @return    string
+  */
+  function subst($varname) {
+    $varvals_quoted = array();
+    if ($this->debug & 4) {
+      echo "<p><b>subst:</b> varname = $varname</p>\n";
+    }
+    if (!$this->loadfile($varname)) {
+      $this->halt("subst: unable to load $varname.");
+      return false;
+    }
+
+    // quote the replacement strings to prevent bogus stripping of special chars
+    reset($this->varvals);
+    while (list($k, $v) = each($this->varvals)) {
+      $varvals_quoted[$k] = preg_replace(array('/\\\\/', '/\$/'), array('\\\\\\\\', '\\\\$'), $v);
+    }
+
+    $str = $this->get_var($varname);
+    $str = preg_replace($this->varkeys, $varvals_quoted, $str);
+    return $str;
+  }
+
+
+ /******************************************************************************
+  * This is shorthand for print $this->subst($varname). See subst for further
+  * details.
+  *
+  * Returns: always returns false.
+  *
+  * usage: psubst(string $varname)
+  *
+  * @param     $varname      the name of the variable within which variables are to be substituted
+  * @access    public
+  * @return    false
+  * @see       subst
+  */
+  function psubst($varname) {
+    if ($this->debug & 4) {
+      echo "<p><b>psubst:</b> varname = $varname</p>\n";
+    }
+    print $this->subst($varname);
+
+    return false;
+  }
+
+
+ /******************************************************************************
+  * The function substitutes the values of all defined variables in the variable
+  * named $varname and stores or appends the result in the variable named $target.
+  *
+  * It may be called with either a target and a varname as two strings or a
+  * target as a string and an array of variable names in varname.
+  *
+  * The function inserts the new value of the variable into the $varkeys and
+  * $varvals hashes. It is not necessary for a variable to exist in these hashes
+  * before calling this function.
+  *
+  * An optional third parameter allows the value for each varname to be appended
+  * to the existing target variable instead of replacing it. The default is to
+  * replace.
+  *
+  * If $target and $varname are both strings, the substituted value of the
+  * variable $varname is inserted into or appended to $target.
+  *
+  * If $handle is an array of variable names the variables named by $handle are
+  * sequentially substituted and the result of each substitution step is
+  * inserted into or appended to in $target. The resulting substitution is
+  * available in the variable named by $target, as is each intermediate step
+  * for the next $varname in sequence. Note that while it is possible, it
+  * is only rarely desirable to call this function with an array of varnames
+  * and with $append = true. This append feature was introduced after the 7.2d
+  * release.
+  *
+  * Returns: the last value assigned to $target.
+  *
+  * usage: parse(string $target, string $varname, [boolean $append])
+  * or
+  * usage: parse(string $target, array $varname = (string $varname), [boolean $append])
+  *
+  * @param     $target      a string containing the name of the variable into which substituted $varnames are to be stored
+  * @param     $varname     if a string, the name the name of the variable to substitute or if an array a list of variables to be substituted
+  * @param     $append      if true, the substituted variables are appended to $target otherwise the existing value of $target is replaced
+  * @access    public
+  * @return    string
+  * @see       subst
+  */
+  function parse($target, $varname, $append = false) {
+    if (!is_array($varname)) {
+      if ($this->debug & 4) {
+        echo "<p><b>parse:</b> (with scalar) target = $target, varname = $varname, append = $append</p>\n";
+      }
+      $str = $this->subst($varname);
+      if ($append) {
+        $this->set_var($target, $this->get_var($target) . $str);
+      } else {
+        $this->set_var($target, $str);
+      }
+    } else {
+      reset($varname);
+      while (list($i, $v) = each($varname)) {
+        if ($this->debug & 4) {
+          echo "<p><b>parse:</b> (with array) target = $target, i = $i, varname = $v, append = $append</p>\n";
+        }
+        $str = $this->subst($v);
+        if ($append) {
+          $this->set_var($target, $this->get_var($target) . $str);
+        } else {
+          $this->set_var($target, $str);
+        }
+      }
+    }
+
+    if ($this->debug & 4) {
+      echo "<p><b>parse:</b> completed</p>\n";
+    }
+    return $this->get_var($target);
+  }
+
+
+ /******************************************************************************
+  * This is shorthand for print $this->parse(...) and is functionally identical.
+  * See parse for further details.
+  *
+  * Returns: always returns false.
+  *
+  * usage: pparse(string $target, string $varname, [boolean $append])
+  * or
+  * usage: pparse(string $target, array $varname = (string $varname), [boolean $append])
+  *
+  * @param     $target      a string containing the name of the variable into which substituted $varnames are to be stored
+  * @param     $varname     if a string, the name the name of the variable to substitute or if an array a list of variables to be substituted
+  * @param     $append      if true, the substituted variables are appended to $target otherwise the existing value of $target is replaced
+  * @access    public
+  * @return    false
+  * @see       parse
+  */
+  function pparse($target, $varname, $append = false, $clear = true) { // added $clear: whether to delete undefined vars or not (needed for wb-module code) - thorn
+    if ($this->debug & 4) {
+      echo "<p><b>pparse:</b> passing parameters to parse...</p>\n";
+    }
+		if(!$clear) {
+			$unknowns = $this->unknowns;
+			$this->set_unknowns('keep');
+			print $this->finish($this->parse($target, $varname, $append));
+			$this->set_unknowns($unknowns);
+		} else {
+			print $this->finish($this->parse($target, $varname, $append));
+		}
+		return false;
+  }
+
+
+ /******************************************************************************
+  * This function returns an associative array of all defined variables with the
+  * name as the key and the value of the variable as the value.
+  *
+  * This is mostly useful for debugging. Also note that $this->debug can be used
+  * to echo all variable assignments as they occur and to trace execution.
+  *
+  * Returns: a hash of all defined variable values keyed by their names.
+  *
+  * usage: get_vars()
+  *
+  * @access    public
+  * @return    array
+  * @see       $debug
+  */
+  function get_vars() {
+    if ($this->debug & 4) {
+      echo "<p><b>get_vars:</b> constructing array of vars...</p>\n";
+    }
+    reset($this->varkeys);
+    while (list($k, $v) = each($this->varkeys)) {
+      $result[$k] = $this->get_var($k);
+    }
+    return $result;
+  }
+
+
+ /******************************************************************************
+  * This function returns the value of the variable named by $varname.
+  * If $varname references a file and that file has not been loaded yet, the
+  * variable will be reported as empty.
+  *
+  * When called with an array of variable names this function will return a a
+  * hash of variable values keyed by their names.
+  *
+  * Returns: a string or an array containing the value of $varname.
+  *
+  * usage: get_var(string $varname)
+  * or
+  * usage: get_var(array $varname)
+  *
+  * @param     $varname     if a string, the name the name of the variable to get the value of, or if an array a list of variables to return the value of
+  * @access    public
+  * @return    string or array
+  */
+  function get_var($varname) {
+    if (!is_array($varname)) {
+      if (isset($this->varvals[$varname])) {
+        $str = $this->varvals[$varname];
+      } else {
+        $str = "";
+      }
+      if ($this->debug & 2) {
+        printf ("<b>get_var</b> (with scalar) <b>%s</b> = '%s'<br>\n", $varname, htmlentities($str));
+      }
+      return $str;
+    } else {
+      reset($varname);
+      while (list($k, $v) = each($varname)) {
+        if (isset($this->varvals[$v])) {
+          $str = $this->varvals[$v];
+        } else {
+          $str = "";
+        }
+        if ($this->debug & 2) {
+          printf ("<b>get_var:</b> (with array) <b>%s</b> = '%s'<br>\n", $v, htmlentities($str));
+        }
+        $result[$v] = $str;
+      }
+      return $result;
+    }
+  }
+
+
+ /******************************************************************************
+  * This function returns a hash of unresolved variable names in $varname, keyed
+  * by their names (that is, the hash has the form $a[$name] = $name).
+  *
+  * Returns: a hash of varname/varname pairs or false on error.
+  *
+  * usage: get_undefined(string $varname)
+  *
+  * @param     $varname     a string containing the name the name of the variable to scan for unresolved variables
+  * @access    public
+  * @return    array
+  */
+  function get_undefined($varname) {
+    if ($this->debug & 4) {
+      echo "<p><b>get_undefined:</b> varname = $varname</p>\n";
+    }
+    if (!$this->loadfile($varname)) {
+      $this->halt("get_undefined: unable to load $varname.");
+      return false;
+    }
+
+    preg_match_all(
+        (("loose" == $this->unknown_regexp) ? "/{([^ \t\r\n}]+)}/" : "/{([_a-zA-Z]\\w+)}/"),
+        $this->get_var($varname),
+        $m);
+    $m = $m[1];
+    if (!is_array($m)) {
+      return false;
+    }
+
+    reset($m);
+    while (list($k, $v) = each($m)) {
+      if (!isset($this->varkeys[$v])) {
+        if ($this->debug & 4) {
+         echo "<p><b>get_undefined:</b> undefined: $v</p>\n";
+        }
+        $result[$v] = $v;
+      }
+    }
+
+    if (count($result)) {
+      return $result;
+    } else {
+      return false;
+    }
+  }
+
+
+ /******************************************************************************
+  * This function returns the finished version of $str. That is, the policy
+  * regarding unresolved variable names will be applied to $str.
+  *
+  * Returns: a finished string derived from $str and $this->unknowns.
+  *
+  * usage: finish(string $str)
+  *
+  * @param     $str         a string to which to apply the unresolved variable policy
+  * @access    public
+  * @return    string
+  * @see       set_unknowns
+  */
+  function finish($str) {
+    switch ($this->unknowns) {
+      case "keep":
+      break;
+
+      case "remove":
+        $str = preg_replace(
+            (("loose" == $this->unknown_regexp) ? "/{([^ \t\r\n}]+)}/" : "/{([_a-zA-Z]\\w+)}/"),
+            "",
+            $str);
+      break;
+
+      case "comment":
+        $str = preg_replace(
+             (("loose" == $this->unknown_regexp) ? "/{([^ \t\r\n}]+)}/" : "/{([_a-zA-Z]\\w+)}/"),
+            "<!-- Template variable \\1 undefined -->",
+            $str);
+      break;
+    }
+
+    return $str;
+  }
+
+
+ /******************************************************************************
+  * This function prints the finished version of the value of the variable named
+  * by $varname. That is, the policy regarding unresolved variable names will be
+  * applied to the variable $varname then it will be printed.
+  *
+  * usage: p(string $varname)
+  *
+  * @param     $varname     a string containing the name of the variable to finish and print
+  * @access    public
+  * @return    void
+  * @see       set_unknowns
+  * @see       finish
+  */
+  function p($varname) {
+    print $this->finish($this->get_var($varname));
+  }
+
+
+ /******************************************************************************
+  * This function returns the finished version of the value of the variable named
+  * by $varname. That is, the policy regarding unresolved variable names will be
+  * applied to the variable $varname and the result returned.
+  *
+  * Returns: a finished string derived from the variable $varname.
+  *
+  * usage: get(string $varname)
+  *
+  * @param     $varname     a string containing the name of the variable to finish
+  * @access    public
+  * @return    void
+  * @see       set_unknowns
+  * @see       finish
+  */
+  function get($varname) {
+    return $this->finish($this->get_var($varname));
+  }
+
+
+ /******************************************************************************
+  * When called with a relative pathname, this function will return the pathname
+  * with $this->root prepended. Absolute pathnames are returned unchanged.
+  *
+  * Returns: a string containing an absolute pathname.
+  *
+  * usage: filename(string $filename)
+  *
+  * @param     $filename    a string containing a filename
+  * @access    private
+  * @return    string
+  * @see       set_root
+  */
+  function filename($filename) {
+    if ($this->debug & 4) {
+      echo "<p><b>filename:</b> filename = $filename</p>\n";
+    }
+    if (substr($filename, 0, 1) != "/" 
+       && substr($filename, 0, 1) != "\\"
+       && substr($filename, 1, 2) != ":\\"
+       && substr($filename, 1, 2) != ":/"
+    ) {
+      $filename = $this->root."/".$filename;
+    }
+
+    if (!file_exists($filename)) {
+      $this->halt("filename: file $filename does not exist.");
+    }
+    return $filename;
+  }
+
+
+ /******************************************************************************
+  * This function will construct a regexp for a given variable name with any
+  * special chars quoted.
+  *
+  * Returns: a string containing an escaped variable name.
+  *
+  * usage: varname(string $varname)
+  *
+  * @param     $varname    a string containing a variable name
+  * @access    private
+  * @return    string
+  */
+  function varname($varname) {
+    return preg_quote("{" . $varname . "}");
+  }
+
+
+ /******************************************************************************
+  * If a variable's value is undefined and the variable has a filename stored in
+  * $this->file[$varname] then the backing file will be loaded and the file's
+  * contents will be assigned as the variable's value.
+  *
+  * Note that the behaviour of this function changed slightly after the 7.2d
+  * release. Where previously a variable was reloaded from file if the value
+  * was empty, now this is not done. This allows a variable to be loaded then
+  * set to "", and also prevents attempts to load empty variables. Files are
+  * now only loaded if $this->varvals[$varname] is unset.
+  *
+  * Returns: true on success, false on error.
+  *
+  * usage: loadfile(string $varname)
+  *
+  * @param     $varname    a string containing the name of a variable to load
+  * @access    private
+  * @return    boolean
+  * @see       set_file
+  */
+  function loadfile($varname) {
+    if ($this->debug & 4) {
+      echo "<p><b>loadfile:</b> varname = $varname</p>\n";
+    }
+
+    if (!isset($this->file[$varname])) {
+      // $varname does not reference a file so return
+      if ($this->debug & 4) {
+        echo "<p><b>loadfile:</b> varname $varname does not reference a file</p>\n";
+      }
+      return true;
+    }
+
+    if (isset($this->varvals[$varname])) {
+      // will only be unset if varname was created with set_file and has never been loaded
+      // $varname has already been loaded so return
+      if ($this->debug & 4) {
+        echo "<p><b>loadfile:</b> varname $varname is already loaded</p>\n";
+      }
+      return true;
+    }
+    $filename = $this->file[$varname];
+
+    /* use @file here to avoid leaking filesystem information if there is an error */
+    $str = implode("", @file($filename));
+    if (empty($str)) {
+      $this->halt("loadfile: While loading $varname, $filename does not exist or is empty.");
+      return false;
+    }
+
+    if ($this->filename_comments) {
+      $str = "<!-- START FILE $filename -->\n$str<!-- END FILE $filename -->\n";
+    }
+    if ($this->debug & 4) {
+      printf("<b>loadfile:</b> loaded $filename into $varname<br>\n");
+    }
+    $this->set_var($varname, $str);
+
+    return true;
+  }
+
+
+ /******************************************************************************
+  * This function is called whenever an error occurs and will handle the error
+  * according to the policy defined in $this->halt_on_error. Additionally the
+  * error message will be saved in $this->last_error.
+  *
+  * Returns: always returns false.
+  *
+  * usage: halt(string $msg)
+  *
+  * @param     $msg         a string containing an error message
+  * @access    private
+  * @return    void
+  * @see       $halt_on_error
+  */
+  function halt($msg) {
+    $this->last_error = $msg;
+
+    if ($this->halt_on_error != "no") {
+      $this->haltmsg($msg);
+    }
+
+    if ($this->halt_on_error == "yes") {
+      die("<b>Halted.</b>");
+    }
+
+    return false;
+  }
+
+
+ /******************************************************************************
+  * This function prints an error message.
+  * It can be overridden by your subclass of Template. It will be called with an
+  * error message to display.
+  *
+  * usage: haltmsg(string $msg)
+  *
+  * @param     $msg         a string containing the error message to display
+  * @access    public
+  * @return    void
+  * @see       halt
+  */
+  function haltmsg($msg) {
+    printf("<b>Template Error:</b> %s<br>\n", $msg);
+  }
+
+}
+?>

Property changes on: tags/2.7.0/wb/include/phplib/template.inc
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phplib/index.php
===================================================================
--- tags/2.7.0/wb/include/phplib/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/phplib/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phplib/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/pclzip/index.php
===================================================================
--- tags/2.7.0/wb/include/pclzip/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/pclzip/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/pclzip/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/pclzip/gnu-lgpl.txt
===================================================================
--- tags/2.7.0/wb/include/pclzip/gnu-lgpl.txt	(nonexistent)
+++ tags/2.7.0/wb/include/pclzip/gnu-lgpl.txt	(revision 838)
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+

Property changes on: tags/2.7.0/wb/include/pclzip/gnu-lgpl.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/pclzip/readme.txt
===================================================================
--- tags/2.7.0/wb/include/pclzip/readme.txt	(nonexistent)
+++ tags/2.7.0/wb/include/pclzip/readme.txt	(revision 838)
@@ -0,0 +1,376 @@
+// --------------------------------------------------------------------------------
+// PclZip 2.6 - readme.txt
+// --------------------------------------------------------------------------------
+// License GNU/LGPL - March 2006
+// Vincent Blavet - vincent@phpconcept.net
+// http://www.phpconcept.net
+// --------------------------------------------------------------------------------
+// $Id: readme.txt,v 1.49 2007/07/20 13:56:07 vblavet Exp $
+// --------------------------------------------------------------------------------
+
+
+
+0 - Sommaire
+============
+    1 - Introduction
+    2 - What's new
+    3 - Corrected bugs
+    4 - Known bugs or limitations
+    5 - License
+    6 - Warning
+    7 - Documentation
+    8 - Author
+    9 - Contribute
+
+1 - Introduction
+================
+
+  PclZip is a library that allow you to manage a Zip archive.
+
+  Full documentation about PclZip can be found here : http://www.phpconcept.net/pclzip
+
+2 - What's new
+==============
+
+  Version 2.6 :
+    - Code optimisation
+    - New attributes PCLZIP_ATT_FILE_COMMENT gives the ability to
+      add a comment for a specific file. (Don't really know if this is usefull)
+    - New attribute PCLZIP_ATT_FILE_CONTENT gives the ability to add a string 
+      as a file.
+    - New attribute PCLZIP_ATT_FILE_MTIME modify the timestamp associated with
+      a file.
+    - Correct a bug. Files archived with a timestamp with 0h0m0s were extracted
+      with current time
+    - Add CRC value in the informations returned back for each file after an
+      action.
+    - Add missing closedir() statement.
+    - When adding a folder, and removing the path of this folder, files were
+      incorrectly added with a '/' at the beginning. Which means files are 
+      related to root in unix systems. Corrected.
+    - Add conditional if before constant definition. This will allow users
+      to redefine constants without changing the file, and then improve
+      upgrade of pclzip code for new versions.
+  
+  Version 2.5 :
+    - Introduce the ability to add file/folder with individual properties (file descriptor).
+      This gives for example the ability to change the filename of a zipped file.
+      . Able to add files individually
+      . Able to change full name
+      . Able to change short name
+      . Compatible with global options
+    - New attributes : PCLZIP_ATT_FILE_NAME, PCLZIP_ATT_FILE_NEW_SHORT_NAME, PCLZIP_ATT_FILE_NEW_FULL_NAME
+    - New error code : PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE
+    - Add a security control feature. PclZip can extract any file in any folder
+      of a system. People may use this to upload a zip file and try to override
+      a system file. The PCLZIP_OPT_EXTRACT_DIR_RESTRICTION will give the
+      ability to forgive any directory transversal behavior.
+    - New PCLZIP_OPT_EXTRACT_DIR_RESTRICTION : check extraction path
+    - New error code : PCLZIP_ERR_DIRECTORY_RESTRICTION
+    - Modification in PclZipUtilPathInclusion() : dir and path beginning with ./ will be prepend
+      by current path (getcwd())
+  
+  Version 2.4 :
+    - Code improvment : try to speed up the code by removing unusefull call to pack()
+    - Correct bug in delete() : delete() should be called with no argument. This was not
+      the case in 2.3. This is corrected in 2.4.
+    - Correct a bug in path_inclusion function. When the path has several '../../', the
+      result was bad.
+    - Add a check for magic_quotes_runtime configuration. If enabled, PclZip will 
+      disable it while working and det it back to its original value.
+      This resolve a lots of bad formated archive errors.
+    - Bug correction : PclZip now correctly unzip file in some specific situation,
+      when compressed content has same size as uncompressed content.
+    - Bug correction : When selecting option 'PCLZIP_OPT_REMOVE_ALL_PATH', 
+      directories are not any more created.
+    - Code improvment : correct unclosed opendir(), better handling of . and .. in
+      loops.
+
+
+  Version 2.3 :
+    - Correct a bug with PHP5 : affecting the value 0xFE49FFE0 to a variable does not
+      give the same result in PHP4 and PHP5 ....
+
+  Version 2.2 :
+    - Try development of PCLZIP_OPT_CRYPT .....
+      However this becomes to a stop. To crypt/decrypt I need to multiply 2 long integers,
+      the result (greater than a long) is not supported by PHP. Even the use of bcmath
+      functions does not help. I did not find yet a solution ...;
+    - Add missing '/' at end of directory entries
+    - Check is a file is encrypted or not. Returns status 'unsupported_encryption' and/or
+      error code PCLZIP_ERR_UNSUPPORTED_ENCRYPTION.
+    - Corrected : Bad "version need to extract" field in local file header
+    - Add private method privCheckFileHeaders() in order to check local and central
+      file headers. PclZip is now supporting purpose bit flag bit 3. Purpose bit flag bit 3 gives
+      the ability to have a local file header without size, compressed size and crc filled.
+    - Add a generic status 'error' for file status
+    - Add control of compression type. PclZip only support deflate compression method.
+      Before v2.2, PclZip does not check the compression method used in an archive while
+      extracting. With v2.2 PclZip returns a new error status for a file using an unsupported
+      compression method. New status is "unsupported_compression". New error code is
+      PCLZIP_ERR_UNSUPPORTED_COMPRESSION.
+    - Add optional attribute PCLZIP_OPT_STOP_ON_ERROR. This will stop the extract of files
+      when errors like 'a folder with same name exists' or 'a newer file exists' or
+      'a write protected file' exists, rather than set a status for the concerning file
+      and resume the extract of the zip.
+    - Add optional attribute PCLZIP_OPT_REPLACE_NEWER. This will force, during an extract' the
+      replacement of the file, even if a  newer version of the file exists.
+      Note that today if a file with the same name already exists but is older it will be
+      replaced by the extracted one.
+    - Improve PclZipUtilOption()
+    - Support of zip archive with trailing bytes. Before 2.2, PclZip checks that the central
+      directory structure is the last data in the archive. Crypt encryption/decryption of
+      zip archive put trailing 0 bytes after decryption. PclZip is now supporting this.
+
+  Version 2.1 :
+    - Add the ability to abort the extraction by using a user callback function.
+      The user can now return the value '2' in its callback which indicates to stop the
+      extraction. For a pre call-back extract is stopped before the extration of the current
+      file. For a post call back, the extraction is stopped after.
+    - Add the ability to extract a file (or several files) directly in the standard output.
+      This is done by the new parameter PCLZIP_OPT_EXTRACT_IN_OUTPUT with method extract().
+    - Add support for parameters PCLZIP_OPT_COMMENT, PCLZIP_OPT_ADD_COMMENT,
+      PCLZIP_OPT_PREPEND_COMMENT. This will create, replace, add, or prepend comments
+      in the zip archive.
+    - When merging two archives, the comments are not any more lost, but merged, with a 
+      blank space separator.
+    - Corrected bug : Files are not deleted when all files are asked to be deleted.
+    - Corrected bug : Folders with name '0' made PclZip to abort the create or add feature.
+
+
+  Version 2.0 :
+    ***** Warning : Some new features may break the backward compatibility for your scripts.
+                    Please carefully read the readme file.
+    - Add the ability to delete by Index, name and regular expression. This feature is 
+      performed by the method delete(), which uses the optional parameters
+      PCLZIP_OPT_BY_INDEX, PCLZIP_OPT_BY_NAME, PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG.
+    - Add the ability to extract by regular expression. To extract by regexp you must use the method
+      extract(), with the option PCLZIP_OPT_BY_EREG or PCLZIP_OPT_BY_PREG 
+      (depending if you want to use ereg() or preg_match() syntax) followed by the 
+      regular expression pattern.
+    - Add the ability to extract by index, directly with the extract() method. This is a
+      code improvment of the extractByIndex() method.
+    - Add the ability to extract by name. To extract by name you must use the method
+      extract(), with the option PCLZIP_OPT_BY_NAME followed by the filename to
+      extract or an array of filenames to extract. To extract all a folder, use the folder
+      name rather than the filename with a '/' at the end.
+    - Add the ability to add files without compression. This is done with a new attribute
+      which is PCLZIP_OPT_NO_COMPRESSION.
+    - Add the attribute PCLZIP_OPT_EXTRACT_AS_STRING, which allow to extract a file directly
+      in a string without using any file (or temporary file).
+    - Add constant PCLZIP_SEPARATOR for static configuration of filename separators in a single string.
+      The default separator is now a comma (,) and not any more a blank space.
+      THIS BREAK THE BACKWARD COMPATIBILITY : Please check if this may have an impact with
+      your script.
+    - Improve algorythm performance by removing the use of temporary files when adding or 
+      extracting files in an archive.
+    - Add (correct) detection of empty filename zipping. This can occurs when the removed
+      path is the same
+      as a zipped dir. The dir is not zipped (['status'] = filtered), only its content.
+    - Add better support for windows paths (thanks for help from manus@manusfreedom.com).
+    - Corrected bug : When the archive file already exists with size=0, the add() method
+      fails. Corrected in 2.0.
+    - Remove the use of OS_WINDOWS constant. Use php_uname() function rather.
+    - Control the order of index ranges in extract by index feature.
+    - Change the internal management of folders (better handling of internal flag).
+
+
+  Version 1.3 :
+    - Removing the double include check. This is now done by include_once() and require_once()
+      PHP directives.
+    - Changing the error handling mecanism : Remove the use of an external error library.
+      The former PclError...() functions are replaced by internal equivalent methods.
+      By changing the environment variable PCLZIP_ERROR_EXTERNAL you can still use the former library.
+      Introducing the use of constants for error codes rather than integer values. This will help
+      in futur improvment.
+      Introduction of error handling functions like errorCode(), errorName() and errorInfo().
+    - Remove the deprecated use of calling function with arguments passed by reference.
+    - Add the calling of extract(), extractByIndex(), create() and add() functions
+      with variable options rather than fixed arguments.
+    - Add the ability to remove all the file path while extracting or adding,
+      without any need to specify the path to remove.
+      This is available for extract(), extractByIndex(), create() and add() functionS by using
+      the new variable options parameters :
+      - PCLZIP_OPT_REMOVE_ALL_PATH : by indicating this option while calling the fct.
+    - Ability to change the mode of a file after the extraction (chmod()).
+      This is available for extract() and extractByIndex() functionS by using
+      the new variable options parameters.
+      - PCLZIP_OPT_SET_CHMOD : by setting the value of this option.
+    - Ability to definition call-back options. These call-back will be called during the adding,
+      or the extracting of file (extract(), extractByIndex(), create() and add() functions) :
+      - PCLZIP_CB_PRE_EXTRACT : will be called before each extraction of a file. The user
+        can trigerred the change the filename of the extracted file. The user can triggered the
+        skip of the extraction. This is adding a 'skipped' status in the file list result value.
+      - PCLZIP_CB_POST_EXTRACT : will be called after each extraction of a file.
+        Nothing can be triggered from that point.
+      - PCLZIP_CB_PRE_ADD : will be called before each add of a file. The user
+        can trigerred the change the stored filename of the added file. The user can triggered the
+        skip of the add. This is adding a 'skipped' status in the file list result value.
+      - PCLZIP_CB_POST_ADD : will be called after each add of a file.
+        Nothing can be triggered from that point.
+    - Two status are added in the file list returned as function result : skipped & filename_too_long
+      'skipped' is used when a call-back function ask for skipping the file.
+      'filename_too_long' is used while adding a file with a too long filename to archive (the file is
+      not added)
+    - Adding the function PclZipUtilPathInclusion(), that check the inclusion of a path into
+      a directory.
+    - Add a check of the presence of the archive file before some actions (like list, ...)
+    - Add the initialisation of field "index" in header array. This means that by
+      default index will be -1 when not explicitly set by the methods.
+
+  Version 1.2 :
+    - Adding a duplicate function.
+    - Adding a merge function. The merge function is a "quick merge" function,
+      it just append the content of an archive at the end of the first one. There
+      is no check for duplicate files or more recent files.
+    - Improve the search of the central directory end.
+
+  Version 1.1.2 :
+
+    - Changing the license of PclZip. PclZip is now released under the GNU / LGPL license
+      (see License section).
+    - Adding the optional support of a static temporary directory. You will need to configure
+      the constant PCLZIP_TEMPORARY_DIR if you want to use this feature.
+    - Improving the rename() function. In some cases rename() does not work (different
+      Filesystems), so it will be replaced by a copy() + unlink() functions.
+
+  Version 1.1.1 :
+
+    - Maintenance release, no new feature.
+
+  Version 1.1 :
+
+    - New method Add() : adding files in the archive
+    - New method ExtractByIndex() : partial extract of the archive, files are identified by
+      their index in the archive
+    - New method DeleteByIndex() : delete some files/folder entries from the archive,
+      files are identified by their index in the archive.
+    - Adding a test of the zlib extension presence. If not present abort the script.
+
+  Version 1.0.1 :
+
+    - No new feature
+
+
+3 - Corrected bugs
+==================
+
+  Corrected in Version 2.0 :
+    - Corrected : During an extraction, if a call-back fucntion is used and try to skip
+                  a file, all the extraction process is stopped. 
+
+  Corrected in Version 1.3 :
+    - Corrected : Support of static synopsis for method extract() is broken.
+    - Corrected : invalid size of archive content field (0xFF) should be (0xFFFF).
+    - Corrected : When an extract is done with a remove_path parameter, the entry for
+      the directory with exactly the same path is not skipped/filtered.
+    - Corrected : extractByIndex() and deleteByIndex() were not managing index in the
+      right way. For example indexes '1,3-5,11' will only extract files 1 and 11. This
+      is due to a sort of the index resulting table that puts 11 before 3-5 (sort on
+      string and not interger). The sort is temporarilly removed, this means that
+      you must provide a sorted list of index ranges.
+
+  Corrected in Version 1.2 :
+
+    - Nothing.
+
+  Corrected in Version 1.1.2 :
+
+    - Corrected : Winzip is unable to delete or add new files in a PclZip created archives.
+
+  Corrected in Version 1.1.1 :
+
+    - Corrected : When archived file is not compressed (0% compression), the
+      extract method fails.
+
+  Corrected in Version 1.1 :
+
+    - Corrected : Adding a complete tree of folder may result in a bad archive
+      creation.
+
+  Corrected in Version 1.0.1 :
+
+    - Corrected : Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024).
+
+
+4 - Known bugs or limitations
+=============================
+
+  Please publish bugs reports in SourceForge :
+    http://sourceforge.net/tracker/?group_id=40254&atid=427564
+
+  In Version 2.x :
+    - PclZip does only support file uncompressed or compressed with deflate (compression method 8)
+    - PclZip does not support password protected zip archive
+
+  In Version 1.2 :
+
+    - merge() methods does not check for duplicate files or last date of modifications.
+
+  In Version 1.1 :
+
+    - Limitation : Using 'extract' fields in the file header in the zip archive is not supported.
+    - WinZip is unable to delete a single file in a PclZip created archive. It is also unable to
+      add a file in a PclZip created archive. (Corrected in v.1.2)
+
+  In Version 1.0.1 :
+
+    - Adding a complete tree of folder may result in a bad archive
+      creation. (Corrected in V.1.1).
+    - Path given to methods must be in the unix format (/) and not the Windows format (\).
+      Workaround : Use only / directory separators.
+    - PclZip is using temporary files that are sometime the name of the file with a .tmp or .gz
+      added suffix. Files with these names may already exist and may be overwritten.
+      Workaround : none.
+    - PclZip does not check if the zlib extension is present. If it is absent, the zip
+      file is not created and the lib abort without warning.
+      Workaround : enable the zlib extension on the php install
+
+  In Version 1.0 :
+
+    - Error while compressing files greater than PCLZIP_READ_BLOCK_SIZE (default=1024).
+      (Corrected in v.1.0.1)
+    - Limitation : Multi-disk zip archive are not supported.
+
+
+5 - License
+===========
+
+  Since version 1.1.2, PclZip Library is released under GNU/LGPL license.
+  This library is free, so you can use it at no cost.
+
+  HOWEVER, if you release a script, an application, a library or any kind of
+  code using PclZip library (or a part of it), YOU MUST :
+  - Indicate in the documentation (or a readme file), that your work
+    uses PclZip Library, and make a reference to the author and the web site
+    http://www.phpconcept.net
+  - Gives the ability to the final user to update the PclZip libary.
+
+  I will also appreciate that you send me a mail (vincent@phpconcept.net), just to
+  be aware that someone is using PclZip.
+
+  For more information about GNU/LGPL license : http://www.gnu.org
+
+6 - Warning
+=================
+
+  This library and the associated files are non commercial, non professional work.
+  It should not have unexpected results. However if any damage is caused by this software
+  the author can not be responsible.
+  The use of this software is at the risk of the user.
+
+7 - Documentation
+=================
+  PclZip User Manuel is available in English on PhpConcept : http://www.phpconcept.net/pclzip/man/en/index.php
+  A Russian translation was done by Feskov Kuzma : http://php.russofile.ru/ru/authors/unsort/zip/
+
+8 - Author
+==========
+
+  This software was written by Vincent Blavet (vincent@phpconcept.net) on its leasure time.
+
+9 - Contribute
+==============
+  If you want to contribute to the development of PclZip, please contact vincent@phpconcept.net.
+  If you can help in financing PhpConcept hosting service, please go to
+  http://www.phpconcept.net/soutien.php

Property changes on: tags/2.7.0/wb/include/pclzip/readme.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/pclzip/pclzip.lib.php
===================================================================
--- tags/2.7.0/wb/include/pclzip/pclzip.lib.php	(nonexistent)
+++ tags/2.7.0/wb/include/pclzip/pclzip.lib.php	(revision 838)
@@ -0,0 +1,5872 @@
+<?php
+// --------------------------------------------------------------------------------
+// PhpConcept Library - Zip Module 2.6
+// --------------------------------------------------------------------------------
+// License GNU/LGPL - Vincent Blavet - March 2006
+// http://www.phpconcept.net
+// --------------------------------------------------------------------------------
+//
+// Presentation :
+//   PclZip is a PHP library that manage ZIP archives.
+//   So far tests show that archives generated by PclZip are readable by
+//   WinZip application and other tools.
+//
+// Description :
+//   See readme.txt and http://www.phpconcept.net
+//
+// Warning :
+//   This library and the associated files are non commercial, non professional
+//   work.
+//   It should not have unexpected results. However if any damage is caused by
+//   this software the author can not be responsible.
+//   The use of this software is at the risk of the user.
+//
+// --------------------------------------------------------------------------------
+// $Id: pclzip.lib.php,v 1.47 2007/07/20 13:56:07 vblavet Exp $
+// --------------------------------------------------------------------------------
+
+  // ----- Constants
+  if (!defined('PCLZIP_READ_BLOCK_SIZE')) {
+    define( 'PCLZIP_READ_BLOCK_SIZE', 2048 );
+  }
+  
+  // ----- File list separator
+  // In version 1.x of PclZip, the separator for file list is a space
+  // (which is not a very smart choice, specifically for windows paths !).
+  // A better separator should be a comma (,). This constant gives you the
+  // abilty to change that.
+  // However notice that changing this value, may have impact on existing
+  // scripts, using space separated filenames.
+  // Recommanded values for compatibility with older versions :
+  //define( 'PCLZIP_SEPARATOR', ' ' );
+  // Recommanded values for smart separation of filenames.
+  if (!defined('PCLZIP_SEPARATOR')) {
+    define( 'PCLZIP_SEPARATOR', ',' );
+  }
+
+  // ----- Error configuration
+  // 0 : PclZip Class integrated error handling
+  // 1 : PclError external library error handling. By enabling this
+  //     you must ensure that you have included PclError library.
+  // [2,...] : reserved for futur use
+  if (!defined('PCLZIP_ERROR_EXTERNAL')) {
+    define( 'PCLZIP_ERROR_EXTERNAL', 0 );
+  }
+
+  // ----- Optional static temporary directory
+  //       By default temporary files are generated in the script current
+  //       path.
+  //       If defined :
+  //       - MUST BE terminated by a '/'.
+  //       - MUST be a valid, already created directory
+  //       Samples :
+  // define( 'PCLZIP_TEMPORARY_DIR', '/temp/' );
+  // define( 'PCLZIP_TEMPORARY_DIR', 'C:/Temp/' );
+  if (!defined('PCLZIP_TEMPORARY_DIR')) {
+    define( 'PCLZIP_TEMPORARY_DIR', '' );
+  }
+
+// --------------------------------------------------------------------------------
+// ***** UNDER THIS LINE NOTHING NEEDS TO BE MODIFIED *****
+// --------------------------------------------------------------------------------
+
+  // ----- Global variables
+  $g_pclzip_version = "2.6";
+
+  // ----- Error codes
+  //   -1 : Unable to open file in binary write mode
+  //   -2 : Unable to open file in binary read mode
+  //   -3 : Invalid parameters
+  //   -4 : File does not exist
+  //   -5 : Filename is too long (max. 255)
+  //   -6 : Not a valid zip file
+  //   -7 : Invalid extracted file size
+  //   -8 : Unable to create directory
+  //   -9 : Invalid archive extension
+  //  -10 : Invalid archive format
+  //  -11 : Unable to delete file (unlink)
+  //  -12 : Unable to rename file (rename)
+  //  -13 : Invalid header checksum
+  //  -14 : Invalid archive size
+  define( 'PCLZIP_ERR_USER_ABORTED', 2 );
+  define( 'PCLZIP_ERR_NO_ERROR', 0 );
+  define( 'PCLZIP_ERR_WRITE_OPEN_FAIL', -1 );
+  define( 'PCLZIP_ERR_READ_OPEN_FAIL', -2 );
+  define( 'PCLZIP_ERR_INVALID_PARAMETER', -3 );
+  define( 'PCLZIP_ERR_MISSING_FILE', -4 );
+  define( 'PCLZIP_ERR_FILENAME_TOO_LONG', -5 );
+  define( 'PCLZIP_ERR_INVALID_ZIP', -6 );
+  define( 'PCLZIP_ERR_BAD_EXTRACTED_FILE', -7 );
+  define( 'PCLZIP_ERR_DIR_CREATE_FAIL', -8 );
+  define( 'PCLZIP_ERR_BAD_EXTENSION', -9 );
+  define( 'PCLZIP_ERR_BAD_FORMAT', -10 );
+  define( 'PCLZIP_ERR_DELETE_FILE_FAIL', -11 );
+  define( 'PCLZIP_ERR_RENAME_FILE_FAIL', -12 );
+  define( 'PCLZIP_ERR_BAD_CHECKSUM', -13 );
+  define( 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14 );
+  define( 'PCLZIP_ERR_MISSING_OPTION_VALUE', -15 );
+  define( 'PCLZIP_ERR_INVALID_OPTION_VALUE', -16 );
+  define( 'PCLZIP_ERR_ALREADY_A_DIRECTORY', -17 );
+  define( 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18 );
+  define( 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19 );
+  define( 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20 );
+  define( 'PCLZIP_ERR_DIRECTORY_RESTRICTION', -21 );
+
+  // ----- Options values
+  define( 'PCLZIP_OPT_PATH', 77001 );
+  define( 'PCLZIP_OPT_ADD_PATH', 77002 );
+  define( 'PCLZIP_OPT_REMOVE_PATH', 77003 );
+  define( 'PCLZIP_OPT_REMOVE_ALL_PATH', 77004 );
+  define( 'PCLZIP_OPT_SET_CHMOD', 77005 );
+  define( 'PCLZIP_OPT_EXTRACT_AS_STRING', 77006 );
+  define( 'PCLZIP_OPT_NO_COMPRESSION', 77007 );
+  define( 'PCLZIP_OPT_BY_NAME', 77008 );
+  define( 'PCLZIP_OPT_BY_INDEX', 77009 );
+  define( 'PCLZIP_OPT_BY_EREG', 77010 );
+  define( 'PCLZIP_OPT_BY_PREG', 77011 );
+  define( 'PCLZIP_OPT_COMMENT', 77012 );
+  define( 'PCLZIP_OPT_ADD_COMMENT', 77013 );
+  define( 'PCLZIP_OPT_PREPEND_COMMENT', 77014 );
+  define( 'PCLZIP_OPT_EXTRACT_IN_OUTPUT', 77015 );
+  define( 'PCLZIP_OPT_REPLACE_NEWER', 77016 );
+  define( 'PCLZIP_OPT_STOP_ON_ERROR', 77017 );
+  // Having big trouble with crypt. Need to multiply 2 long int
+  // which is not correctly supported by PHP ...
+  //define( 'PCLZIP_OPT_CRYPT', 77018 );
+  define( 'PCLZIP_OPT_EXTRACT_DIR_RESTRICTION', 77019 );
+  
+  // ----- File description attributes
+  define( 'PCLZIP_ATT_FILE_NAME', 79001 );
+  define( 'PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002 );
+  define( 'PCLZIP_ATT_FILE_NEW_FULL_NAME', 79003 );
+  define( 'PCLZIP_ATT_FILE_MTIME', 79004 );
+  define( 'PCLZIP_ATT_FILE_CONTENT', 79005 );
+  define( 'PCLZIP_ATT_FILE_COMMENT', 79006 );
+
+  // ----- Call backs values
+  define( 'PCLZIP_CB_PRE_EXTRACT', 78001 );
+  define( 'PCLZIP_CB_POST_EXTRACT', 78002 );
+  define( 'PCLZIP_CB_PRE_ADD', 78003 );
+  define( 'PCLZIP_CB_POST_ADD', 78004 );
+  /* For futur use
+  define( 'PCLZIP_CB_PRE_LIST', 78005 );
+  define( 'PCLZIP_CB_POST_LIST', 78006 );
+  define( 'PCLZIP_CB_PRE_DELETE', 78007 );
+  define( 'PCLZIP_CB_POST_DELETE', 78008 );
+  */
+
+  // --------------------------------------------------------------------------------
+  // Class : PclZip
+  // Description :
+  //   PclZip is the class that represent a Zip archive.
+  //   The public methods allow the manipulation of the archive.
+  // Attributes :
+  //   Attributes must not be accessed directly.
+  // Methods :
+  //   PclZip() : Object creator
+  //   create() : Creates the Zip archive
+  //   listContent() : List the content of the Zip archive
+  //   extract() : Extract the content of the archive
+  //   properties() : List the properties of the archive
+  // --------------------------------------------------------------------------------
+  class PclZip
+  {
+    // ----- Filename of the zip file
+    var $zipname = '';
+
+    // ----- File descriptor of the zip file
+    var $zip_fd = 0;
+
+    // ----- Internal error handling
+    var $error_code = 1;
+    var $error_string = '';
+    
+    // ----- Current status of the magic_quotes_runtime
+    // This value store the php configuration for magic_quotes
+    // The class can then disable the magic_quotes and reset it after
+    var $magic_quotes_status;
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZip()
+  // Description :
+  //   Creates a PclZip object and set the name of the associated Zip archive
+  //   filename.
+  //   Note that no real action is taken, if the archive does not exist it is not
+  //   created. Use create() for that.
+  // --------------------------------------------------------------------------------
+  function PclZip($p_zipname)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::PclZip', "zipname=$p_zipname");
+
+    // ----- Tests the zlib
+    if (!function_exists('gzopen'))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 1, "zlib extension seems to be missing");
+      die('Abort '.basename(__FILE__).' : Missing zlib extensions');
+    }
+
+    // ----- Set the attributes
+    $this->zipname = $p_zipname;
+    $this->zip_fd = 0;
+    $this->magic_quotes_status = -1;
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 1);
+    return;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function :
+  //   create($p_filelist, $p_add_dir="", $p_remove_dir="")
+  //   create($p_filelist, $p_option, $p_option_value, ...)
+  // Description :
+  //   This method supports two different synopsis. The first one is historical.
+  //   This method creates a Zip Archive. The Zip file is created in the
+  //   filesystem. The files and directories indicated in $p_filelist
+  //   are added in the archive. See the parameters description for the
+  //   supported format of $p_filelist.
+  //   When a directory is in the list, the directory and its content is added
+  //   in the archive.
+  //   In this synopsis, the function takes an optional variable list of
+  //   options. See bellow the supported options.
+  // Parameters :
+  //   $p_filelist : An array containing file or directory names, or
+  //                 a string containing one filename or one directory name, or
+  //                 a string containing a list of filenames and/or directory
+  //                 names separated by spaces.
+  //   $p_add_dir : A path to add before the real path of the archived file,
+  //                in order to have it memorized in the archive.
+  //   $p_remove_dir : A path to remove from the real path of the file to archive,
+  //                   in order to have a shorter path memorized in the archive.
+  //                   When $p_add_dir and $p_remove_dir are set, $p_remove_dir
+  //                   is removed first, before $p_add_dir is added.
+  // Options :
+  //   PCLZIP_OPT_ADD_PATH :
+  //   PCLZIP_OPT_REMOVE_PATH :
+  //   PCLZIP_OPT_REMOVE_ALL_PATH :
+  //   PCLZIP_OPT_COMMENT :
+  //   PCLZIP_CB_PRE_ADD :
+  //   PCLZIP_CB_POST_ADD :
+  // Return Values :
+  //   0 on failure,
+  //   The list of the added files, with a status of the add action.
+  //   (see PclZip::listContent() for list entry format)
+  // --------------------------------------------------------------------------------
+  function create($p_filelist)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::create', "filelist='$p_filelist', ...");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Set default values
+    $v_options = array();
+    $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE;
+
+    // ----- Look for variable options arguments
+    $v_size = func_num_args();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");
+
+    // ----- Look for arguments
+    if ($v_size > 1) {
+      // ----- Get the arguments
+      $v_arg_list = func_get_args();
+
+      // ----- Remove from the options list the first argument
+      array_shift($v_arg_list);
+      $v_size--;
+
+      // ----- Look for first arg
+      if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detected");
+
+        // ----- Parse the options
+        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
+                                            array (PCLZIP_OPT_REMOVE_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',
+                                                   PCLZIP_OPT_ADD_PATH => 'optional',
+                                                   PCLZIP_CB_PRE_ADD => 'optional',
+                                                   PCLZIP_CB_POST_ADD => 'optional',
+                                                   PCLZIP_OPT_NO_COMPRESSION => 'optional',
+                                                   PCLZIP_OPT_COMMENT => 'optional'
+                                                   //, PCLZIP_OPT_CRYPT => 'optional'
+                                             ));
+        if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+          return 0;
+        }
+      }
+
+      // ----- Look for 2 args
+      // Here we need to support the first historic synopsis of the
+      // method.
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
+
+        // ----- Get the first argument
+        $v_options[PCLZIP_OPT_ADD_PATH] = $v_arg_list[0];
+
+        // ----- Look for the optional second argument
+        if ($v_size == 2) {
+          $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1];
+        }
+        else if ($v_size > 2) {
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER,
+		                       "Invalid number / type of arguments");
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return 0;
+        }
+      }
+    }
+
+    // ----- Init
+    $v_string_list = array();
+    $v_att_list = array();
+    $v_filedescr_list = array();
+    $p_result_list = array();
+    
+    // ----- Look if the $p_filelist is really an array
+    if (is_array($p_filelist)) {
+    
+      // ----- Look if the first element is also an array
+      //       This will mean that this is a file description entry
+      if (isset($p_filelist[0]) && is_array($p_filelist[0])) {
+        $v_att_list = $p_filelist;
+      }
+      
+      // ----- The list is a list of string names
+      else {
+        $v_string_list = $p_filelist;
+      }
+    }
+
+    // ----- Look if the $p_filelist is a string
+    else if (is_string($p_filelist)) {
+      // ----- Create a list from the string
+      $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist);
+    }
+
+    // ----- Invalid variable type for $p_filelist
+    else {
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+    
+    // ----- Reformat the string list
+    if (sizeof($v_string_list) != 0) {
+      foreach ($v_string_list as $v_string) {
+        if ($v_string != '') {
+          $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string;
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Ignore an empty filename");
+        }
+      }
+    }
+    
+    // ----- For each file in the list check the attributes
+    $v_supported_attributes
+    = array ( PCLZIP_ATT_FILE_NAME => 'mandatory'
+             ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional'
+             ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional'
+             ,PCLZIP_ATT_FILE_MTIME => 'optional'
+             ,PCLZIP_ATT_FILE_CONTENT => 'optional'
+             ,PCLZIP_ATT_FILE_COMMENT => 'optional'
+						);
+    foreach ($v_att_list as $v_entry) {
+      $v_result = $this->privFileDescrParseAtt($v_entry,
+                                               $v_filedescr_list[],
+                                               $v_options,
+                                               $v_supported_attributes);
+      if ($v_result != 1) {
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+        return 0;
+      }
+    }
+
+    // ----- Expand the filelist (expand directories)
+    $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
+    if ($v_result != 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+
+    // ----- Call the create fct
+    $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options);
+    if ($v_result != 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
+    return $p_result_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function :
+  //   add($p_filelist, $p_add_dir="", $p_remove_dir="")
+  //   add($p_filelist, $p_option, $p_option_value, ...)
+  // Description :
+  //   This method supports two synopsis. The first one is historical.
+  //   This methods add the list of files in an existing archive.
+  //   If a file with the same name already exists, it is added at the end of the
+  //   archive, the first one is still present.
+  //   If the archive does not exist, it is created.
+  // Parameters :
+  //   $p_filelist : An array containing file or directory names, or
+  //                 a string containing one filename or one directory name, or
+  //                 a string containing a list of filenames and/or directory
+  //                 names separated by spaces.
+  //   $p_add_dir : A path to add before the real path of the archived file,
+  //                in order to have it memorized in the archive.
+  //   $p_remove_dir : A path to remove from the real path of the file to archive,
+  //                   in order to have a shorter path memorized in the archive.
+  //                   When $p_add_dir and $p_remove_dir are set, $p_remove_dir
+  //                   is removed first, before $p_add_dir is added.
+  // Options :
+  //   PCLZIP_OPT_ADD_PATH :
+  //   PCLZIP_OPT_REMOVE_PATH :
+  //   PCLZIP_OPT_REMOVE_ALL_PATH :
+  //   PCLZIP_OPT_COMMENT :
+  //   PCLZIP_OPT_ADD_COMMENT :
+  //   PCLZIP_OPT_PREPEND_COMMENT :
+  //   PCLZIP_CB_PRE_ADD :
+  //   PCLZIP_CB_POST_ADD :
+  // Return Values :
+  //   0 on failure,
+  //   The list of the added files, with a status of the add action.
+  //   (see PclZip::listContent() for list entry format)
+  // --------------------------------------------------------------------------------
+  function add($p_filelist)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::add', "filelist='$p_filelist', ...");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Set default values
+    $v_options = array();
+    $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE;
+
+    // ----- Look for variable options arguments
+    $v_size = func_num_args();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");
+
+    // ----- Look for arguments
+    if ($v_size > 1) {
+      // ----- Get the arguments
+      $v_arg_list = func_get_args();
+
+      // ----- Remove form the options list the first argument
+      array_shift($v_arg_list);
+      $v_size--;
+
+      // ----- Look for first arg
+      if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detected");
+
+        // ----- Parse the options
+        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
+                                            array (PCLZIP_OPT_REMOVE_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',
+                                                   PCLZIP_OPT_ADD_PATH => 'optional',
+                                                   PCLZIP_CB_PRE_ADD => 'optional',
+                                                   PCLZIP_CB_POST_ADD => 'optional',
+                                                   PCLZIP_OPT_NO_COMPRESSION => 'optional',
+                                                   PCLZIP_OPT_COMMENT => 'optional',
+                                                   PCLZIP_OPT_ADD_COMMENT => 'optional',
+                                                   PCLZIP_OPT_PREPEND_COMMENT => 'optional'
+                                                   //, PCLZIP_OPT_CRYPT => 'optional'
+												   ));
+        if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+          return 0;
+        }
+      }
+
+      // ----- Look for 2 args
+      // Here we need to support the first historic synopsis of the
+      // method.
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
+
+        // ----- Get the first argument
+        $v_options[PCLZIP_OPT_ADD_PATH] = $v_add_path = $v_arg_list[0];
+
+        // ----- Look for the optional second argument
+        if ($v_size == 2) {
+          $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1];
+        }
+        else if ($v_size > 2) {
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments");
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return 0;
+        }
+      }
+    }
+
+    // ----- Init
+    $v_string_list = array();
+    $v_att_list = array();
+    $v_filedescr_list = array();
+    $p_result_list = array();
+    
+    // ----- Look if the $p_filelist is really an array
+    if (is_array($p_filelist)) {
+    
+      // ----- Look if the first element is also an array
+      //       This will mean that this is a file description entry
+      if (isset($p_filelist[0]) && is_array($p_filelist[0])) {
+        $v_att_list = $p_filelist;
+      }
+      
+      // ----- The list is a list of string names
+      else {
+        $v_string_list = $p_filelist;
+      }
+    }
+
+    // ----- Look if the $p_filelist is a string
+    else if (is_string($p_filelist)) {
+      // ----- Create a list from the string
+      $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist);
+    }
+
+    // ----- Invalid variable type for $p_filelist
+    else {
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+    
+    // ----- Reformat the string list
+    if (sizeof($v_string_list) != 0) {
+      foreach ($v_string_list as $v_string) {
+        $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string;
+      }
+    }
+    
+    // ----- For each file in the list check the attributes
+    $v_supported_attributes
+    = array ( PCLZIP_ATT_FILE_NAME => 'mandatory'
+             ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional'
+             ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional'
+             ,PCLZIP_ATT_FILE_MTIME => 'optional'
+             ,PCLZIP_ATT_FILE_CONTENT => 'optional'
+             ,PCLZIP_ATT_FILE_COMMENT => 'optional'
+						);
+    foreach ($v_att_list as $v_entry) {
+      $v_result = $this->privFileDescrParseAtt($v_entry,
+                                               $v_filedescr_list[],
+                                               $v_options,
+                                               $v_supported_attributes);
+      if ($v_result != 1) {
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+        return 0;
+      }
+    }
+
+    // ----- Expand the filelist (expand directories)
+    $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options);
+    if ($v_result != 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+
+    // ----- Call the create fct
+    $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options);
+    if ($v_result != 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return 0;
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);
+    return $p_result_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : listContent()
+  // Description :
+  //   This public method, gives the list of the files and directories, with their
+  //   properties.
+  //   The properties of each entries in the list are (used also in other functions) :
+  //     filename : Name of the file. For a create or add action it is the filename
+  //                given by the user. For an extract function it is the filename
+  //                of the extracted file.
+  //     stored_filename : Name of the file / directory stored in the archive.
+  //     size : Size of the stored file.
+  //     compressed_size : Size of the file's data compressed in the archive
+  //                       (without the headers overhead)
+  //     mtime : Last known modification date of the file (UNIX timestamp)
+  //     comment : Comment associated with the file
+  //     folder : true | false
+  //     index : index of the file in the archive
+  //     status : status of the action (depending of the action) :
+  //              Values are :
+  //                ok : OK !
+  //                filtered : the file / dir is not extracted (filtered by user)
+  //                already_a_directory : the file can not be extracted because a
+  //                                      directory with the same name already exists
+  //                write_protected : the file can not be extracted because a file
+  //                                  with the same name already exists and is
+  //                                  write protected
+  //                newer_exist : the file was not extracted because a newer file exists
+  //                path_creation_fail : the file is not extracted because the folder
+  //                                     does not exists and can not be created
+  //                write_error : the file was not extracted because there was a
+  //                              error while writing the file
+  //                read_error : the file was not extracted because there was a error
+  //                             while reading the file
+  //                invalid_header : the file was not extracted because of an archive
+  //                                 format error (bad file header)
+  //   Note that each time a method can continue operating when there
+  //   is an action error on a file, the error is only logged in the file status.
+  // Return Values :
+  //   0 on an unrecoverable failure,
+  //   The list of the files in the archive.
+  // --------------------------------------------------------------------------------
+  function listContent()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::listContent', "");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Call the extracting fct
+    $p_list = array();
+    if (($v_result = $this->privList($p_list)) != 1)
+    {
+      unset($p_list);
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
+      return(0);
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
+    return $p_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function :
+  //   extract($p_path="./", $p_remove_path="")
+  //   extract([$p_option, $p_option_value, ...])
+  // Description :
+  //   This method supports two synopsis. The first one is historical.
+  //   This method extract all the files / directories from the archive to the
+  //   folder indicated in $p_path.
+  //   If you want to ignore the 'root' part of path of the memorized files
+  //   you can indicate this in the optional $p_remove_path parameter.
+  //   By default, if a newer file with the same name already exists, the
+  //   file is not extracted.
+  //
+  //   If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH aoptions
+  //   are used, the path indicated in PCLZIP_OPT_ADD_PATH is append
+  //   at the end of the path value of PCLZIP_OPT_PATH.
+  // Parameters :
+  //   $p_path : Path where the files and directories are to be extracted
+  //   $p_remove_path : First part ('root' part) of the memorized path
+  //                    (if any similar) to remove while extracting.
+  // Options :
+  //   PCLZIP_OPT_PATH :
+  //   PCLZIP_OPT_ADD_PATH :
+  //   PCLZIP_OPT_REMOVE_PATH :
+  //   PCLZIP_OPT_REMOVE_ALL_PATH :
+  //   PCLZIP_CB_PRE_EXTRACT :
+  //   PCLZIP_CB_POST_EXTRACT :
+  // Return Values :
+  //   0 or a negative value on failure,
+  //   The list of the extracted files, with a status of the action.
+  //   (see PclZip::listContent() for list entry format)
+  // --------------------------------------------------------------------------------
+  function extract()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extract", "");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Set default values
+    $v_options = array();
+//    $v_path = "./";
+    $v_path = '';
+    $v_remove_path = "";
+    $v_remove_all_path = false;
+
+    // ----- Look for variable options arguments
+    $v_size = func_num_args();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");
+
+    // ----- Default values for option
+    $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;
+
+    // ----- Look for arguments
+    if ($v_size > 0) {
+      // ----- Get the arguments
+      $v_arg_list = func_get_args();
+
+      // ----- Look for first arg
+      if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
+
+        // ----- Parse the options
+        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
+                                            array (PCLZIP_OPT_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',
+                                                   PCLZIP_OPT_ADD_PATH => 'optional',
+                                                   PCLZIP_CB_PRE_EXTRACT => 'optional',
+                                                   PCLZIP_CB_POST_EXTRACT => 'optional',
+                                                   PCLZIP_OPT_SET_CHMOD => 'optional',
+                                                   PCLZIP_OPT_BY_NAME => 'optional',
+                                                   PCLZIP_OPT_BY_EREG => 'optional',
+                                                   PCLZIP_OPT_BY_PREG => 'optional',
+                                                   PCLZIP_OPT_BY_INDEX => 'optional',
+                                                   PCLZIP_OPT_EXTRACT_AS_STRING => 'optional',
+                                                   PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional',
+                                                   PCLZIP_OPT_REPLACE_NEWER => 'optional'
+                                                   ,PCLZIP_OPT_STOP_ON_ERROR => 'optional'
+                                                   ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional'
+												    ));
+        if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+          return 0;
+        }
+
+        // ----- Set the arguments
+        if (isset($v_options[PCLZIP_OPT_PATH])) {
+          $v_path = $v_options[PCLZIP_OPT_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) {
+          $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) {
+          $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_ADD_PATH])) {
+          // ----- Check for '/' in last path char
+          if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
+            $v_path .= '/';
+          }
+          $v_path .= $v_options[PCLZIP_OPT_ADD_PATH];
+        }
+      }
+
+      // ----- Look for 2 args
+      // Here we need to support the first historic synopsis of the
+      // method.
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
+
+        // ----- Get the first argument
+        $v_path = $v_arg_list[0];
+
+        // ----- Look for the optional second argument
+        if ($v_size == 2) {
+          $v_remove_path = $v_arg_list[1];
+        }
+        else if ($v_size > 2) {
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments");
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
+          return 0;
+        }
+      }
+    }
+
+    // ----- Trace
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'");
+
+    // ----- Call the extracting fct
+    $p_list = array();
+    $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path,
+	                                     $v_remove_all_path, $v_options);
+    if ($v_result < 1) {
+      unset($p_list);
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
+      return(0);
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
+    return $p_list;
+  }
+  // --------------------------------------------------------------------------------
+
+
+  // --------------------------------------------------------------------------------
+  // Function :
+  //   extractByIndex($p_index, $p_path="./", $p_remove_path="")
+  //   extractByIndex($p_index, [$p_option, $p_option_value, ...])
+  // Description :
+  //   This method supports two synopsis. The first one is historical.
+  //   This method is doing a partial extract of the archive.
+  //   The extracted files or folders are identified by their index in the
+  //   archive (from 0 to n).
+  //   Note that if the index identify a folder, only the folder entry is
+  //   extracted, not all the files included in the archive.
+  // Parameters :
+  //   $p_index : A single index (integer) or a string of indexes of files to
+  //              extract. The form of the string is "0,4-6,8-12" with only numbers
+  //              and '-' for range or ',' to separate ranges. No spaces or ';'
+  //              are allowed.
+  //   $p_path : Path where the files and directories are to be extracted
+  //   $p_remove_path : First part ('root' part) of the memorized path
+  //                    (if any similar) to remove while extracting.
+  // Options :
+  //   PCLZIP_OPT_PATH :
+  //   PCLZIP_OPT_ADD_PATH :
+  //   PCLZIP_OPT_REMOVE_PATH :
+  //   PCLZIP_OPT_REMOVE_ALL_PATH :
+  //   PCLZIP_OPT_EXTRACT_AS_STRING : The files are extracted as strings and
+  //     not as files.
+  //     The resulting content is in a new field 'content' in the file
+  //     structure.
+  //     This option must be used alone (any other options are ignored).
+  //   PCLZIP_CB_PRE_EXTRACT :
+  //   PCLZIP_CB_POST_EXTRACT :
+  // Return Values :
+  //   0 on failure,
+  //   The list of the extracted files, with a status of the action.
+  //   (see PclZip::listContent() for list entry format)
+  // --------------------------------------------------------------------------------
+  //function extractByIndex($p_index, options...)
+  function extractByIndex($p_index)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extractByIndex", "index='$p_index', ...");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Set default values
+    $v_options = array();
+//    $v_path = "./";
+    $v_path = '';
+    $v_remove_path = "";
+    $v_remove_all_path = false;
+
+    // ----- Look for variable options arguments
+    $v_size = func_num_args();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");
+
+    // ----- Default values for option
+    $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;
+
+    // ----- Look for arguments
+    if ($v_size > 1) {
+      // ----- Get the arguments
+      $v_arg_list = func_get_args();
+
+      // ----- Remove form the options list the first argument
+      array_shift($v_arg_list);
+      $v_size--;
+
+      // ----- Look for first arg
+      if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options");
+
+        // ----- Parse the options
+        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
+                                            array (PCLZIP_OPT_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_PATH => 'optional',
+                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',
+                                                   PCLZIP_OPT_EXTRACT_AS_STRING => 'optional',
+                                                   PCLZIP_OPT_ADD_PATH => 'optional',
+                                                   PCLZIP_CB_PRE_EXTRACT => 'optional',
+                                                   PCLZIP_CB_POST_EXTRACT => 'optional',
+                                                   PCLZIP_OPT_SET_CHMOD => 'optional',
+                                                   PCLZIP_OPT_REPLACE_NEWER => 'optional'
+                                                   ,PCLZIP_OPT_STOP_ON_ERROR => 'optional'
+                                                   ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional'
+												   ));
+        if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+          return 0;
+        }
+
+        // ----- Set the arguments
+        if (isset($v_options[PCLZIP_OPT_PATH])) {
+          $v_path = $v_options[PCLZIP_OPT_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) {
+          $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) {
+          $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH];
+        }
+        if (isset($v_options[PCLZIP_OPT_ADD_PATH])) {
+          // ----- Check for '/' in last path char
+          if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {
+            $v_path .= '/';
+          }
+          $v_path .= $v_options[PCLZIP_OPT_ADD_PATH];
+        }
+        if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) {
+          $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING not set.");
+        }
+        else {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING set.");
+        }
+      }
+
+      // ----- Look for 2 args
+      // Here we need to support the first historic synopsis of the
+      // method.
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");
+
+        // ----- Get the first argument
+        $v_path = $v_arg_list[0];
+
+        // ----- Look for the optional second argument
+        if ($v_size == 2) {
+          $v_remove_path = $v_arg_list[1];
+        }
+        else if ($v_size > 2) {
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments");
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return 0;
+        }
+      }
+    }
+
+    // ----- Trace
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "index='$p_index', path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'");
+
+    // ----- Trick
+    // Here I want to reuse extractByRule(), so I need to parse the $p_index
+    // with privParseOptions()
+    $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index);
+    $v_options_trick = array();
+    $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick,
+                                        array (PCLZIP_OPT_BY_INDEX => 'optional' ));
+    if ($v_result != 1) {
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+        return 0;
+    }
+    $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX];
+
+    // ----- Call the extracting fct
+    if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) {
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
+        return(0);
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
+    return $p_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function :
+  //   delete([$p_option, $p_option_value, ...])
+  // Description :
+  //   This method removes files from the archive.
+  //   If no parameters are given, then all the archive is emptied.
+  // Parameters :
+  //   None or optional arguments.
+  // Options :
+  //   PCLZIP_OPT_BY_INDEX :
+  //   PCLZIP_OPT_BY_NAME :
+  //   PCLZIP_OPT_BY_EREG : 
+  //   PCLZIP_OPT_BY_PREG :
+  // Return Values :
+  //   0 on failure,
+  //   The list of the files which are still present in the archive.
+  //   (see PclZip::listContent() for list entry format)
+  // --------------------------------------------------------------------------------
+  function delete()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::delete", "");
+    $v_result=1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Set default values
+    $v_options = array();
+
+    // ----- Look for variable options arguments
+    $v_size = func_num_args();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");
+
+    // ----- Look for arguments
+    if ($v_size > 0) {
+      // ----- Get the arguments
+      $v_arg_list = func_get_args();
+
+      // ----- Parse the options
+      $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,
+                                        array (PCLZIP_OPT_BY_NAME => 'optional',
+                                               PCLZIP_OPT_BY_EREG => 'optional',
+                                               PCLZIP_OPT_BY_PREG => 'optional',
+                                               PCLZIP_OPT_BY_INDEX => 'optional' ));
+      if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+          return 0;
+      }
+    }
+
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Call the delete fct
+    $v_list = array();
+    if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) {
+      $this->privSwapBackMagicQuotes();
+      unset($v_list);
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());
+      return(0);
+    }
+
+    // ----- Magic quotes trick
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_list);
+    return $v_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : deleteByIndex()
+  // Description :
+  //   ***** Deprecated *****
+  //   delete(PCLZIP_OPT_BY_INDEX, $p_index) should be prefered.
+  // --------------------------------------------------------------------------------
+  function deleteByIndex($p_index)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::deleteByIndex", "index='$p_index'");
+    
+    $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index);
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);
+    return $p_list;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : properties()
+  // Description :
+  //   This method gives the properties of the archive.
+  //   The properties are :
+  //     nb : Number of files in the archive
+  //     comment : Comment associated with the archive file
+  //     status : not_exist, ok
+  // Parameters :
+  //   None
+  // Return Values :
+  //   0 on failure,
+  //   An array with the archive properties.
+  // --------------------------------------------------------------------------------
+  function properties()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::properties", "");
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      $this->privSwapBackMagicQuotes();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Default properties
+    $v_prop = array();
+    $v_prop['comment'] = '';
+    $v_prop['nb'] = 0;
+    $v_prop['status'] = 'not_exist';
+
+    // ----- Look if file exists
+    if (@is_file($this->zipname))
+    {
+      // ----- Open the zip file
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+      if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0)
+      {
+        $this->privSwapBackMagicQuotes();
+        
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode');
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), 0);
+        return 0;
+      }
+
+      // ----- Read the central directory informations
+      $v_central_dir = array();
+      if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+      {
+        $this->privSwapBackMagicQuotes();
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+        return 0;
+      }
+
+      // ----- Close the zip file
+      $this->privCloseFd();
+
+      // ----- Set the user attributes
+      $v_prop['comment'] = $v_central_dir['comment'];
+      $v_prop['nb'] = $v_central_dir['entries'];
+      $v_prop['status'] = 'ok';
+    }
+
+    // ----- Magic quotes trick
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_prop);
+    return $v_prop;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : duplicate()
+  // Description :
+  //   This method creates an archive by copying the content of an other one. If
+  //   the archive already exist, it is replaced by the new one without any warning.
+  // Parameters :
+  //   $p_archive : The filename of a valid archive, or
+  //                a valid PclZip object.
+  // Return Values :
+  //   1 on success.
+  //   0 or a negative value on error (error code).
+  // --------------------------------------------------------------------------------
+  function duplicate($p_archive)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::duplicate", "");
+    $v_result = 1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Look if the $p_archive is a PclZip object
+    if ((is_object($p_archive)) && (get_class($p_archive) == 'pclzip'))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is valid PclZip object '".$p_archive->zipname."'");
+
+      // ----- Duplicate the archive
+      $v_result = $this->privDuplicate($p_archive->zipname);
+    }
+
+    // ----- Look if the $p_archive is a string (so a filename)
+    else if (is_string($p_archive))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The parameter is a filename '$p_archive'");
+
+      // ----- Check that $p_archive is a valid zip file
+      // TBC : Should also check the archive format
+      if (!is_file($p_archive)) {
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "No file with filename '".$p_archive."'");
+        $v_result = PCLZIP_ERR_MISSING_FILE;
+      }
+      else {
+        // ----- Duplicate the archive
+        $v_result = $this->privDuplicate($p_archive);
+      }
+    }
+
+    // ----- Invalid variable
+    else
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add");
+      $v_result = PCLZIP_ERR_INVALID_PARAMETER;
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : merge()
+  // Description :
+  //   This method merge the $p_archive_to_add archive at the end of the current
+  //   one ($this).
+  //   If the archive ($this) does not exist, the merge becomes a duplicate.
+  //   If the $p_archive_to_add archive does not exist, the merge is a success.
+  // Parameters :
+  //   $p_archive_to_add : It can be directly the filename of a valid zip archive,
+  //                       or a PclZip object archive.
+  // Return Values :
+  //   1 on success,
+  //   0 or negative values on error (see below).
+  // --------------------------------------------------------------------------------
+  function merge($p_archive_to_add)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::merge", "");
+    $v_result = 1;
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Check archive
+    if (!$this->privCheckFormat()) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);
+      return(0);
+    }
+
+    // ----- Look if the $p_archive_to_add is a PclZip object
+    if ((is_object($p_archive_to_add)) && (get_class($p_archive_to_add) == 'pclzip'))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is valid PclZip object");
+
+      // ----- Merge the archive
+      $v_result = $this->privMerge($p_archive_to_add);
+    }
+
+    // ----- Look if the $p_archive_to_add is a string (so a filename)
+    else if (is_string($p_archive_to_add))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The parameter is a filename");
+
+      // ----- Create a temporary archive
+      $v_object_archive = new PclZip($p_archive_to_add);
+
+      // ----- Merge the archive
+      $v_result = $this->privMerge($v_object_archive);
+    }
+
+    // ----- Invalid variable
+    else
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add");
+      $v_result = PCLZIP_ERR_INVALID_PARAMETER;
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+
+
+  // --------------------------------------------------------------------------------
+  // Function : errorCode()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function errorCode()
+  {
+    if (PCLZIP_ERROR_EXTERNAL == 1) {
+      return(PclErrorCode());
+    }
+    else {
+      return($this->error_code);
+    }
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : errorName()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function errorName($p_with_code=false)
+  {
+    $v_name = array ( PCLZIP_ERR_NO_ERROR => 'PCLZIP_ERR_NO_ERROR',
+                      PCLZIP_ERR_WRITE_OPEN_FAIL => 'PCLZIP_ERR_WRITE_OPEN_FAIL',
+                      PCLZIP_ERR_READ_OPEN_FAIL => 'PCLZIP_ERR_READ_OPEN_FAIL',
+                      PCLZIP_ERR_INVALID_PARAMETER => 'PCLZIP_ERR_INVALID_PARAMETER',
+                      PCLZIP_ERR_MISSING_FILE => 'PCLZIP_ERR_MISSING_FILE',
+                      PCLZIP_ERR_FILENAME_TOO_LONG => 'PCLZIP_ERR_FILENAME_TOO_LONG',
+                      PCLZIP_ERR_INVALID_ZIP => 'PCLZIP_ERR_INVALID_ZIP',
+                      PCLZIP_ERR_BAD_EXTRACTED_FILE => 'PCLZIP_ERR_BAD_EXTRACTED_FILE',
+                      PCLZIP_ERR_DIR_CREATE_FAIL => 'PCLZIP_ERR_DIR_CREATE_FAIL',
+                      PCLZIP_ERR_BAD_EXTENSION => 'PCLZIP_ERR_BAD_EXTENSION',
+                      PCLZIP_ERR_BAD_FORMAT => 'PCLZIP_ERR_BAD_FORMAT',
+                      PCLZIP_ERR_DELETE_FILE_FAIL => 'PCLZIP_ERR_DELETE_FILE_FAIL',
+                      PCLZIP_ERR_RENAME_FILE_FAIL => 'PCLZIP_ERR_RENAME_FILE_FAIL',
+                      PCLZIP_ERR_BAD_CHECKSUM => 'PCLZIP_ERR_BAD_CHECKSUM',
+                      PCLZIP_ERR_INVALID_ARCHIVE_ZIP => 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP',
+                      PCLZIP_ERR_MISSING_OPTION_VALUE => 'PCLZIP_ERR_MISSING_OPTION_VALUE',
+                      PCLZIP_ERR_INVALID_OPTION_VALUE => 'PCLZIP_ERR_INVALID_OPTION_VALUE',
+                      PCLZIP_ERR_UNSUPPORTED_COMPRESSION => 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION',
+                      PCLZIP_ERR_UNSUPPORTED_ENCRYPTION => 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION'
+                      ,PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE => 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE'
+                      ,PCLZIP_ERR_DIRECTORY_RESTRICTION => 'PCLZIP_ERR_DIRECTORY_RESTRICTION'
+                    );
+
+    if (isset($v_name[$this->error_code])) {
+      $v_value = $v_name[$this->error_code];
+    }
+    else {
+      $v_value = 'NoName';
+    }
+
+    if ($p_with_code) {
+      return($v_value.' ('.$this->error_code.')');
+    }
+    else {
+      return($v_value);
+    }
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : errorInfo()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function errorInfo($p_full=false)
+  {
+    if (PCLZIP_ERROR_EXTERNAL == 1) {
+      return(PclErrorString());
+    }
+    else {
+      if ($p_full) {
+        return($this->errorName(true)." : ".$this->error_string);
+      }
+      else {
+        return($this->error_string." [code ".$this->error_code."]");
+      }
+    }
+  }
+  // --------------------------------------------------------------------------------
+
+
+// --------------------------------------------------------------------------------
+// ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS *****
+// *****                                                        *****
+// *****       THESES FUNCTIONS MUST NOT BE USED DIRECTLY       *****
+// --------------------------------------------------------------------------------
+
+
+
+  // --------------------------------------------------------------------------------
+  // Function : privCheckFormat()
+  // Description :
+  //   This method check that the archive exists and is a valid zip archive.
+  //   Several level of check exists. (futur)
+  // Parameters :
+  //   $p_level : Level of check. Default 0.
+  //              0 : Check the first bytes (magic codes) (default value))
+  //              1 : 0 + Check the central directory (futur)
+  //              2 : 1 + Check each file header (futur)
+  // Return Values :
+  //   true on success,
+  //   false on error, the error code is set.
+  // --------------------------------------------------------------------------------
+  function privCheckFormat($p_level=0)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFormat", "");
+    $v_result = true;
+
+	// ----- Reset the file system cache
+    clearstatcache();
+
+    // ----- Reset the error handler
+    $this->privErrorReset();
+
+    // ----- Look if the file exits
+    if (!is_file($this->zipname)) {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
+      return(false);
+    }
+
+    // ----- Check that the file is readeable
+    if (!is_readable($this->zipname)) {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, false, PclZip::errorInfo());
+      return(false);
+    }
+
+    // ----- Check the magic code
+    // TBC
+
+    // ----- Check the central header
+    // TBC
+
+    // ----- Check each file header
+    // TBC
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privParseOptions()
+  // Description :
+  //   This internal methods reads the variable list of arguments ($p_options_list,
+  //   $p_size) and generate an array with the options and values ($v_result_list).
+  //   $v_requested_options contains the options that can be present and those that
+  //   must be present.
+  //   $v_requested_options is an array, with the option value as key, and 'optional',
+  //   or 'mandatory' as value.
+  // Parameters :
+  //   See above.
+  // Return Values :
+  //   1 on success.
+  //   0 on failure.
+  // --------------------------------------------------------------------------------
+  function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privParseOptions", "");
+    $v_result=1;
+    
+    // ----- Read the options
+    $i=0;
+    while ($i<$p_size) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Looking for table index $i, option = '".PclZipUtilOptionText($p_options_list[$i])."(".$p_options_list[$i].")'");
+
+      // ----- Check if the option is supported
+      if (!isset($v_requested_options[$p_options_list[$i]])) {
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid optional parameter '".$p_options_list[$i]."' for this method");
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+
+      // ----- Look for next option
+      switch ($p_options_list[$i]) {
+        // ----- Look for options that request a path value
+        case PCLZIP_OPT_PATH :
+        case PCLZIP_OPT_REMOVE_PATH :
+        case PCLZIP_OPT_ADD_PATH :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE);
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+          $i++;
+        break;
+
+        case PCLZIP_OPT_EXTRACT_DIR_RESTRICTION :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          if (   is_string($p_options_list[$i+1])
+              && ($p_options_list[$i+1] != '')) {
+            $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE);
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+            $i++;
+          }
+          else {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." set with an empty value is ignored.");
+          }
+        break;
+
+        // ----- Look for options that request an array of string for value
+        case PCLZIP_OPT_BY_NAME :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          if (is_string($p_options_list[$i+1])) {
+              $v_result_list[$p_options_list[$i]][0] = $p_options_list[$i+1];
+          }
+          else if (is_array($p_options_list[$i+1])) {
+              $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1];
+          }
+          else {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+          ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+          $i++;
+        break;
+
+        // ----- Look for options that request an EREG or PREG expression
+        case PCLZIP_OPT_BY_EREG :
+        case PCLZIP_OPT_BY_PREG :
+        //case PCLZIP_OPT_CRYPT :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          if (is_string($p_options_list[$i+1])) {
+              $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1];
+          }
+          else {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+          $i++;
+        break;
+
+        // ----- Look for options that takes a string
+        case PCLZIP_OPT_COMMENT :
+        case PCLZIP_OPT_ADD_COMMENT :
+        case PCLZIP_OPT_PREPEND_COMMENT :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE,
+			                     "Missing parameter value for option '"
+								 .PclZipUtilOptionText($p_options_list[$i])
+								 ."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          if (is_string($p_options_list[$i+1])) {
+              $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1];
+          }
+          else {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE,
+			                     "Wrong parameter value for option '"
+								 .PclZipUtilOptionText($p_options_list[$i])
+								 ."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+          $i++;
+        break;
+
+        // ----- Look for options that request an array of index
+        case PCLZIP_OPT_BY_INDEX :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          $v_work_list = array();
+          if (is_string($p_options_list[$i+1])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is a string '".$p_options_list[$i+1]."'");
+
+              // ----- Remove spaces
+              $p_options_list[$i+1] = strtr($p_options_list[$i+1], ' ', '');
+
+              // ----- Parse items
+              $v_work_list = explode(",", $p_options_list[$i+1]);
+          }
+          else if (is_integer($p_options_list[$i+1])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an integer '".$p_options_list[$i+1]."'");
+              $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1];
+          }
+          else if (is_array($p_options_list[$i+1])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Index value is an array");
+              $v_work_list = $p_options_list[$i+1];
+          }
+          else {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Value must be integer, string or array for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+          
+          // ----- Reduce the index list
+          // each index item in the list must be a couple with a start and
+          // an end value : [0,3], [5-5], [8-10], ...
+          // ----- Check the format of each item
+          $v_sort_flag=false;
+          $v_sort_value=0;
+          for ($j=0; $j<sizeof($v_work_list); $j++) {
+              // ----- Explode the item
+              $v_item_list = explode("-", $v_work_list[$j]);
+              $v_size_item_list = sizeof($v_item_list);
+              
+              // ----- TBC : Here we might check that each item is a
+              // real integer ...
+              
+              // ----- Look for single value
+              if ($v_size_item_list == 1) {
+                  // ----- Set the option value
+                  $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0];
+                  $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[0];
+              }
+              elseif ($v_size_item_list == 2) {
+                  // ----- Set the option value
+                  $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0];
+                  $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[1];
+              }
+              else {
+                  // ----- Error log
+                  PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Too many values in index range for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+                  // ----- Return
+                  //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+                  return PclZip::errorCode();
+              }
+
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extracted index item = [".$v_result_list[$p_options_list[$i]][$j]['start'].",".$v_result_list[$p_options_list[$i]][$j]['end']."]");
+
+              // ----- Look for list sort
+              if ($v_result_list[$p_options_list[$i]][$j]['start'] < $v_sort_value) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The list should be sorted ...");
+                  $v_sort_flag=true;
+
+                  // ----- TBC : An automatic sort should be writen ...
+                  // ----- Error log
+                  PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Invalid order of index range for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+                  // ----- Return
+                  //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+                  return PclZip::errorCode();
+              }
+              $v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start'];
+          }
+          
+          // ----- Sort the items
+          if ($v_sort_flag) {
+              // TBC : To Be Completed
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "List sorting is not yet write ...");
+          }
+
+          // ----- Next option
+          $i++;
+        break;
+
+        // ----- Look for options that request no value
+        case PCLZIP_OPT_REMOVE_ALL_PATH :
+        case PCLZIP_OPT_EXTRACT_AS_STRING :
+        case PCLZIP_OPT_NO_COMPRESSION :
+        case PCLZIP_OPT_EXTRACT_IN_OUTPUT :
+        case PCLZIP_OPT_REPLACE_NEWER :
+        case PCLZIP_OPT_STOP_ON_ERROR :
+          $v_result_list[$p_options_list[$i]] = true;
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+        break;
+
+        // ----- Look for options that request an octal value
+        case PCLZIP_OPT_SET_CHMOD :
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1];
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($p_options_list[$i])." = '".$v_result_list[$p_options_list[$i]]."'");
+          $i++;
+        break;
+
+        // ----- Look for options that request a call-back
+        case PCLZIP_CB_PRE_EXTRACT :
+        case PCLZIP_CB_POST_EXTRACT :
+        case PCLZIP_CB_PRE_ADD :
+        case PCLZIP_CB_POST_ADD :
+        /* for futur use
+        case PCLZIP_CB_PRE_DELETE :
+        case PCLZIP_CB_POST_DELETE :
+        case PCLZIP_CB_PRE_LIST :
+        case PCLZIP_CB_POST_LIST :
+        */
+          // ----- Check the number of parameters
+          if (($i+1) >= $p_size) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Get the value
+          $v_function_name = $p_options_list[$i+1];
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "call-back ".PclZipUtilOptionText($p_options_list[$i])." = '".$v_function_name."'");
+
+          // ----- Check that the value is a valid existing function
+          if (!function_exists($v_function_name)) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Function '".$v_function_name."()' is not an existing function for option '".PclZipUtilOptionText($p_options_list[$i])."'");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Set the attribute
+          $v_result_list[$p_options_list[$i]] = $v_function_name;
+          $i++;
+        break;
+
+        default :
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER,
+		                       "Unknown parameter '"
+							   .$p_options_list[$i]."'");
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return PclZip::errorCode();
+      }
+
+      // ----- Next options
+      $i++;
+    }
+
+    // ----- Look for mandatory options
+    if ($v_requested_options !== false) {
+      for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) {
+        // ----- Look for mandatory option
+        if ($v_requested_options[$key] == 'mandatory') {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".PclZipUtilOptionText($key)."(".$key.")");
+          // ----- Look if present
+          if (!isset($v_result_list[$key])) {
+            // ----- Error log
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")");
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+        }
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privFileDescrParseAtt()
+  // Description :
+  // Parameters :
+  // Return Values :
+  //   1 on success.
+  //   0 on failure.
+  // --------------------------------------------------------------------------------
+  function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options=false)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrParseAtt", "");
+    $v_result=1;
+    
+    // ----- For each file in the list check the attributes
+    foreach ($p_file_list as $v_key => $v_value) {
+    
+      // ----- Check if the option is supported
+      if (!isset($v_requested_options[$v_key])) {
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file attribute '".$v_key."' for this file");
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+
+      // ----- Look for attribute
+      switch ($v_key) {
+        case PCLZIP_ATT_FILE_NAME :
+          if (!is_string($v_value)) {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          $p_filedescr['filename'] = PclZipUtilPathReduction($v_value);
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+          
+          if ($p_filedescr['filename'] == '') {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+        break;
+
+        case PCLZIP_ATT_FILE_NEW_SHORT_NAME :
+          if (!is_string($v_value)) {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          $p_filedescr['new_short_name'] = PclZipUtilPathReduction($v_value);
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+
+          if ($p_filedescr['new_short_name'] == '') {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty short filename for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+        break;
+
+        case PCLZIP_ATT_FILE_NEW_FULL_NAME :
+          if (!is_string($v_value)) {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          $p_filedescr['new_full_name'] = PclZipUtilPathReduction($v_value);
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+
+          if ($p_filedescr['new_full_name'] == '') {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty full filename for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+        break;
+
+        // ----- Look for options that takes a string
+        case PCLZIP_ATT_FILE_COMMENT :
+          if (!is_string($v_value)) {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          $p_filedescr['comment'] = $v_value;
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+        break;
+
+        case PCLZIP_ATT_FILE_MTIME :
+          if (!is_integer($v_value)) {
+            PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". Integer expected for attribute '".PclZipUtilOptionText($v_key)."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          $p_filedescr['mtime'] = $v_value;
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+        break;
+
+        case PCLZIP_ATT_FILE_CONTENT :
+          $p_filedescr['content'] = $v_value;
+          ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "".PclZipUtilOptionText($v_key)." = '".$v_value."'");
+        break;
+
+        default :
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER,
+		                           "Unknown parameter '".$v_key."'");
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return PclZip::errorCode();
+      }
+
+      // ----- Look for mandatory options
+      if ($v_requested_options !== false) {
+        for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) {
+          // ----- Look for mandatory option
+          if ($v_requested_options[$key] == 'mandatory') {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Detect a mandatory option : ".PclZipUtilOptionText($key)."(".$key.")");
+            // ----- Look if present
+            if (!isset($p_file_list[$key])) {
+              PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")");
+              //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+              return PclZip::errorCode();
+            }
+          }
+        }
+      }
+    
+    // end foreach
+    }
+    
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privFileDescrExpand()
+  // Description :
+  // Parameters :
+  // Return Values :
+  //   1 on success.
+  //   0 on failure.
+  // --------------------------------------------------------------------------------
+  function privFileDescrExpand(&$p_filedescr_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privFileDescrExpand", "");
+    $v_result=1;
+    
+    // ----- Create a result list
+    $v_result_list = array();
+    
+    // ----- Look each entry
+    for ($i=0; $i<sizeof($p_filedescr_list); $i++) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for file ".$i.".");
+      
+      // ----- Get filedescr
+      $v_descr = $p_filedescr_list[$i];
+      
+      // ----- Reduce the filename
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr before reduction :'".$v_descr['filename']."'");
+      $v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename']);
+      $v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filedescr after reduction :'".$v_descr['filename']."'");
+      
+      // ----- Look for real file or folder
+      if (file_exists($v_descr['filename'])) {
+        if (@is_file($v_descr['filename'])) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a file");
+          $v_descr['type'] = 'file';
+        }
+        else if (@is_dir($v_descr['filename'])) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a folder");
+          $v_descr['type'] = 'folder';
+        }
+        else if (@is_link($v_descr['filename'])) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : link");
+          // skip
+          continue;
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Unsupported file type : unknown type");
+          // skip
+          continue;
+        }
+      }
+      
+      // ----- Look for string added as file
+      else if (isset($v_descr['content'])) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "This is a string added as a file");
+        $v_descr['type'] = 'virtual_file';
+      }
+      
+      // ----- Missing file
+      else {
+        // ----- Error log
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_descr['filename']."' does not exists");
+        PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$v_descr['filename']."' does not exists");
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+      
+      // ----- Calculate the stored filename
+      $this->privCalculateStoredFilename($v_descr, $p_options);
+      
+      // ----- Add the descriptor in result list
+      $v_result_list[sizeof($v_result_list)] = $v_descr;
+      
+      // ----- Look for folder
+      if ($v_descr['type'] == 'folder') {
+        // ----- List of items in folder
+        $v_dirlist_descr = array();
+        $v_dirlist_nb = 0;
+        if ($v_folder_handler = @opendir($v_descr['filename'])) {
+          while (($v_item_handler = @readdir($v_folder_handler)) !== false) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for '".$v_item_handler."' in the directory");
+
+            // ----- Skip '.' and '..'
+            if (($v_item_handler == '.') || ($v_item_handler == '..')) {
+                continue;
+            }
+            
+            // ----- Compose the full filename
+            $v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler;
+            
+            // ----- Look for different stored filename
+            // Because the name of the folder was changed, the name of the
+            // files/sub-folders also change
+            if ($v_descr['stored_filename'] != $v_descr['filename']) {
+              if ($v_descr['stored_filename'] != '') {
+                $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_descr['stored_filename'].'/'.$v_item_handler;
+              }
+              else {
+                $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler;
+              }
+            }
+      
+            $v_dirlist_nb++;
+          }
+          
+          @closedir($v_folder_handler);
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to open dir '".$v_descr['filename']."' in read mode. Skipped.");
+          // TBC : unable to open folder in read mode
+        }
+        
+        // ----- Expand each element of the list
+        if ($v_dirlist_nb != 0) {
+          // ----- Expand
+          if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) {
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+          
+          // ----- Concat the resulting list
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Merging result list (size '".sizeof($v_result_list)."') with dirlist (size '".sizeof($v_dirlist_descr)."')");
+          $v_result_list = array_merge($v_result_list, $v_dirlist_descr);
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "merged result list is size '".sizeof($v_result_list)."'");
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Nothing in this folder to expand.");
+        }
+          
+        // ----- Free local array
+        unset($v_dirlist_descr);
+      }
+    }
+    
+    // ----- Get the result list
+    $p_filedescr_list = $v_result_list;
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privCreate()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privCreate($p_filedescr_list, &$p_result_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCreate", "list");
+    $v_result=1;
+    $v_list_detail = array();
+    
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Open the file in write mode
+    if (($v_result = $this->privOpenFd('wb')) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Add the list of files
+    $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options);
+
+    // ----- Close
+    $this->privCloseFd();
+
+    // ----- Magic quotes trick
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privAdd()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privAdd($p_filedescr_list, &$p_result_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAdd", "list");
+    $v_result=1;
+    $v_list_detail = array();
+
+    // ----- Look if the archive exists or is empty
+    if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, or is empty, create it.");
+
+      // ----- Do a create
+      $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options);
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_result=$this->privOpenFd('rb')) != 1)
+    {
+      // ----- Magic quotes trick
+      $this->privSwapBackMagicQuotes();
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir = array();
+    if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+    {
+      $this->privCloseFd();
+      $this->privSwapBackMagicQuotes();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Go to beginning of File
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'");
+    @rewind($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'");
+
+    // ----- Creates a temporay file
+    $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
+
+    // ----- Open the temporary file in write mode
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0)
+    {
+      $this->privCloseFd();
+      $this->privSwapBackMagicQuotes();
+
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Copy the files from the archive to the temporary file
+    // TBC : Here I should better append the file and go back to erase the central dir
+    $v_size = $v_central_dir['offset'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = fread($this->zip_fd, $v_read_size);
+      @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Swap the file descriptor
+    // Here is a trick : I swap the temporary fd with the zip fd, in order to use
+    // the following methods on the temporary fil and not the real archive
+    $v_swap = $this->zip_fd;
+    $this->zip_fd = $v_zip_temp_fd;
+    $v_zip_temp_fd = $v_swap;
+
+    // ----- Add the files
+    $v_header_list = array();
+    if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1)
+    {
+      fclose($v_zip_temp_fd);
+      $this->privCloseFd();
+      @unlink($v_zip_temp_name);
+      $this->privSwapBackMagicQuotes();
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Store the offset of the central dir
+    $v_offset = @ftell($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_offset");
+
+    // ----- Copy the block of file headers from the old archive
+    $v_size = $v_central_dir['size'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = @fread($v_zip_temp_fd, $v_read_size);
+      @fwrite($this->zip_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Create the Central Dir files header
+    for ($i=0, $v_count=0; $i<sizeof($v_header_list); $i++)
+    {
+      // ----- Create the file header
+      if ($v_header_list[$i]['status'] == 'ok') {
+        if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
+          fclose($v_zip_temp_fd);
+          $this->privCloseFd();
+          @unlink($v_zip_temp_name);
+          $this->privSwapBackMagicQuotes();
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+        $v_count++;
+      }
+
+      // ----- Transform the header to a 'usable' info
+      $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
+    }
+
+    // ----- Zip file comment
+    $v_comment = $v_central_dir['comment'];
+    if (isset($p_options[PCLZIP_OPT_COMMENT])) {
+      $v_comment = $p_options[PCLZIP_OPT_COMMENT];
+    }
+    if (isset($p_options[PCLZIP_OPT_ADD_COMMENT])) {
+      $v_comment = $v_comment.$p_options[PCLZIP_OPT_ADD_COMMENT];
+    }
+    if (isset($p_options[PCLZIP_OPT_PREPEND_COMMENT])) {
+      $v_comment = $p_options[PCLZIP_OPT_PREPEND_COMMENT].$v_comment;
+    }
+
+    // ----- Calculate the size of the central header
+    $v_size = @ftell($this->zip_fd)-$v_offset;
+
+    // ----- Create the central dir footer
+    if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_offset, $v_comment)) != 1)
+    {
+      // ----- Reset the file list
+      unset($v_header_list);
+      $this->privSwapBackMagicQuotes();
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Swap back the file descriptor
+    $v_swap = $this->zip_fd;
+    $this->zip_fd = $v_zip_temp_fd;
+    $v_zip_temp_fd = $v_swap;
+
+    // ----- Close
+    $this->privCloseFd();
+
+    // ----- Close the temporary file
+    @fclose($v_zip_temp_fd);
+
+    // ----- Magic quotes trick
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Delete the zip file
+    // TBC : I should test the result ...
+    @unlink($this->zipname);
+
+    // ----- Rename the temporary file
+    // TBC : I should test the result ...
+    //@rename($v_zip_temp_name, $this->zipname);
+    PclZipUtilRename($v_zip_temp_name, $this->zipname);
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privOpenFd()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function privOpenFd($p_mode)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privOpenFd", 'mode='.$p_mode);
+    $v_result=1;
+
+    // ----- Look if already open
+    if ($this->zip_fd != 0)
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Open file in '.$p_mode.' mode');
+    if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0)
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privCloseFd()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function privCloseFd()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCloseFd", "");
+    $v_result=1;
+
+    if ($this->zip_fd != 0)
+      @fclose($this->zip_fd);
+    $this->zip_fd = 0;
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privAddList()
+  // Description :
+  //   $p_add_dir and $p_remove_dir will give the ability to memorize a path which is
+  //   different from the real path of the file. This is usefull if you want to have PclTar
+  //   running in any directory, and memorize relative path from an other directory.
+  // Parameters :
+  //   $p_list : An array containing the file or directory names to add in the tar
+  //   $p_result_list : list of added files with their properties (specially the status field)
+  //   $p_add_dir : Path to add in the filename path archived
+  //   $p_remove_dir : Path to remove in the filename path archived
+  // Return Values :
+  // --------------------------------------------------------------------------------
+//  function privAddList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options)
+  function privAddList($p_filedescr_list, &$p_result_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddList", "list");
+    $v_result=1;
+
+    // ----- Add the files
+    $v_header_list = array();
+    if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Store the offset of the central dir
+    $v_offset = @ftell($this->zip_fd);
+
+    // ----- Create the Central Dir files header
+    for ($i=0,$v_count=0; $i<sizeof($v_header_list); $i++)
+    {
+      // ----- Create the file header
+      if ($v_header_list[$i]['status'] == 'ok') {
+        if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+        $v_count++;
+      }
+
+      // ----- Transform the header to a 'usable' info
+      $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
+    }
+
+    // ----- Zip file comment
+    $v_comment = '';
+    if (isset($p_options[PCLZIP_OPT_COMMENT])) {
+      $v_comment = $p_options[PCLZIP_OPT_COMMENT];
+    }
+
+    // ----- Calculate the size of the central header
+    $v_size = @ftell($this->zip_fd)-$v_offset;
+
+    // ----- Create the central dir footer
+    if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1)
+    {
+      // ----- Reset the file list
+      unset($v_header_list);
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privAddFileList()
+  // Description :
+  // Parameters :
+  //   $p_filedescr_list : An array containing the file description 
+  //                      or directory names to add in the zip
+  //   $p_result_list : list of added files with their properties (specially the status field)
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privAddFileList($p_filedescr_list, &$p_result_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFileList", "filedescr_list");
+    $v_result=1;
+    $v_header = array();
+
+    // ----- Recuperate the current number of elt in list
+    $v_nb = sizeof($p_result_list);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Before add, list have ".$v_nb." elements");
+
+    // ----- Loop on the files
+    for ($j=0; ($j<sizeof($p_filedescr_list)) && ($v_result==1); $j++) {
+      // ----- Format the filename
+      $p_filedescr_list[$j]['filename']
+      = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false);
+      
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Looking for file '".$p_filedescr_list[$j]['filename']."'");
+
+      // ----- Skip empty file names
+      // TBC : Can this be possible ? not checked in DescrParseAtt ?
+      if ($p_filedescr_list[$j]['filename'] == "") {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Skip empty filename");
+        continue;
+      }
+
+      // ----- Check the filename
+      if (   ($p_filedescr_list[$j]['type'] != 'virtual_file')
+          && (!file_exists($p_filedescr_list[$j]['filename']))) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_filedescr_list[$j]['filename']."' does not exists");
+        PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$p_filedescr_list[$j]['filename']."' does not exists");
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+
+      // ----- Look if it is a file or a dir with no all path remove option
+      // or a dir with all its path removed
+//      if (   (is_file($p_filedescr_list[$j]['filename']))
+//          || (   is_dir($p_filedescr_list[$j]['filename'])
+      if (   ($p_filedescr_list[$j]['type'] == 'file')
+          || ($p_filedescr_list[$j]['type'] == 'virtual_file')
+          || (   ($p_filedescr_list[$j]['type'] == 'folder')
+              && (   !isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH])
+                  || !$p_options[PCLZIP_OPT_REMOVE_ALL_PATH]))
+          ) {
+
+        // ----- Add the file
+        $v_result = $this->privAddFile($p_filedescr_list[$j], $v_header,
+                                       $p_options);
+        if ($v_result != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+
+        // ----- Store the file infos
+        $p_result_list[$v_nb++] = $v_header;
+      }
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "After add, list have ".$v_nb." elements");
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privAddFile()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privAddFile($p_filedescr, &$p_header, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privAddFile", "filename='".$p_filedescr['filename']."'");
+    $v_result=1;
+    
+    // ----- Working variable
+    $p_filename = $p_filedescr['filename'];
+
+    // TBC : Already done in the fileAtt check ... ?
+    if ($p_filename == "") {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file list parameter (invalid or empty list)");
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+  
+    // ----- Look for a stored different filename 
+    /* TBC : Removed
+    if (isset($p_filedescr['stored_filename'])) {
+      $v_stored_filename = $p_filedescr['stored_filename'];
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is NOT the same "'.$v_stored_filename.'"');
+    }
+    else {
+      $v_stored_filename = $p_filedescr['stored_filename'];
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'Stored filename is the same');
+    }
+    */
+
+    // ----- Set the file properties
+    clearstatcache();
+    $p_header['version'] = 20;
+    $p_header['version_extracted'] = 10;
+    $p_header['flag'] = 0;
+    $p_header['compression'] = 0;
+    $p_header['crc'] = 0;
+    $p_header['compressed_size'] = 0;
+    $p_header['filename_len'] = strlen($p_filename);
+    $p_header['extra_len'] = 0;
+    $p_header['disk'] = 0;
+    $p_header['internal'] = 0;
+    $p_header['offset'] = 0;
+    $p_header['filename'] = $p_filename;
+// TBC : Removed    $p_header['stored_filename'] = $v_stored_filename;
+    $p_header['stored_filename'] = $p_filedescr['stored_filename'];
+    $p_header['extra'] = '';
+    $p_header['status'] = 'ok';
+    $p_header['index'] = -1;
+
+    // ----- Look for regular file
+    if ($p_filedescr['type']=='file') {
+      $p_header['external'] = 0x00000000;
+      $p_header['size'] = filesize($p_filename);
+    }
+    
+    // ----- Look for regular folder
+    else if ($p_filedescr['type']=='folder') {
+      $p_header['external'] = 0x00000010;
+      $p_header['mtime'] = filemtime($p_filename);
+      $p_header['size'] = filesize($p_filename);
+    }
+    
+    // ----- Look for virtual file
+    else if ($p_filedescr['type'] == 'virtual_file') {
+      $p_header['external'] = 0x00000000;
+      $p_header['size'] = strlen($p_filedescr['content']);
+    }
+    
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header external extension '".sprintf("0x%X",$p_header['external'])."'");
+
+    // ----- Look for filetime
+    if (isset($p_filedescr['mtime'])) {
+      $p_header['mtime'] = $p_filedescr['mtime'];
+    }
+    else if ($p_filedescr['type'] == 'virtual_file') {
+      $p_header['mtime'] = mktime();
+    }
+    else {
+      $p_header['mtime'] = filemtime($p_filename);
+    }
+
+    // ------ Look for file comment
+    if (isset($p_filedescr['comment'])) {
+      $p_header['comment_len'] = strlen($p_filedescr['comment']);
+      $p_header['comment'] = $p_filedescr['comment'];
+    }
+    else {
+      $p_header['comment_len'] = 0;
+      $p_header['comment'] = '';
+    }
+
+    // ----- Look for pre-add callback
+    if (isset($p_options[PCLZIP_CB_PRE_ADD])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_ADD]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_header, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_PRE_ADD].'(PCLZIP_CB_PRE_ADD, $v_local_header);');
+      if ($v_result == 0) {
+        // ----- Change the file status
+        $p_header['status'] = "skipped";
+        $v_result = 1;
+      }
+
+      // ----- Update the informations
+      // Only some fields can be modified
+      if ($p_header['stored_filename'] != $v_local_header['stored_filename']) {
+        $p_header['stored_filename'] = PclZipUtilPathReduction($v_local_header['stored_filename']);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New stored filename is '".$p_header['stored_filename']."'");
+      }
+    }
+
+    // ----- Look for empty stored filename
+    if ($p_header['stored_filename'] == "") {
+      $p_header['status'] = "filtered";
+    }
+    
+    // ----- Check the path length
+    if (strlen($p_header['stored_filename']) > 0xFF) {
+      $p_header['status'] = 'filename_too_long';
+    }
+
+    // ----- Look if no error, or file not skipped
+    if ($p_header['status'] == 'ok') {
+
+      // ----- Look for a file
+//      if (is_file($p_filename))
+      if (   ($p_filedescr['type'] == 'file')
+          || ($p_filedescr['type'] == 'virtual_file')) {
+          
+        // ----- Get content from real file
+        if ($p_filedescr['type'] == 'file') {        
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a file");
+
+          // ----- Open the source file
+          if (($v_file = @fopen($p_filename, "rb")) == 0) {
+            PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode");
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+          }
+
+          // ----- Read the file content
+          $v_content = @fread($v_file, $p_header['size']);
+
+          // ----- Close the file
+          @fclose($v_file);
+        }
+        else if ($p_filedescr['type'] == 'virtual_file') {        
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Add by string");
+          $v_content = $p_filedescr['content'];
+        }
+
+        // ----- Calculate the CRC
+        $p_header['crc'] = @crc32($v_content);
+        
+        // ----- Look for no compression
+        if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be compressed");
+          // ----- Set header parameters
+          $p_header['compressed_size'] = $p_header['size'];
+          $p_header['compression'] = 0;
+        }
+        
+        // ----- Look for normal compression
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will be compressed");
+          // ----- Compress the content
+          $v_content = @gzdeflate($v_content);
+
+          // ----- Set header parameters
+          $p_header['compressed_size'] = strlen($v_content);
+          $p_header['compression'] = 8;
+        }
+        
+        // ----- Look for encryption
+        /*
+        if ((isset($p_options[PCLZIP_OPT_CRYPT]))
+		    && ($p_options[PCLZIP_OPT_CRYPT] != "")) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File need to be crypted ....");
+          
+          // Should be a random header
+          $v_header = 'xxxxxxxxxxxx';
+	      $v_content_compressed = PclZipUtilZipEncrypt($v_content_compressed,
+		                                           $p_header['compressed_size'],
+	                                               $v_header,
+												   $p_header['crc'],
+												   "test");
+												   
+          $p_header['compressed_size'] += 12;
+          $p_header['flag'] = 1;
+          
+          // ----- Add the header to the data
+          $v_content_compressed = $v_header.$v_content_compressed;
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size after header : ".strlen($v_content_compressed)."");
+        }
+        */
+
+        // ----- Call the header generation
+        if (($v_result = $this->privWriteFileHeader($p_header)) != 1) {
+          @fclose($v_file);
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+
+        // ----- Write the compressed (or not) content
+        @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']);
+      }
+
+      // ----- Look for a directory
+      else if ($p_filedescr['type'] == 'folder') {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "'".$p_filename."' is a folder");
+        // ----- Look for directory last '/'
+        if (@substr($p_header['stored_filename'], -1) != '/') {
+          $p_header['stored_filename'] .= '/';
+        }
+
+        // ----- Set the file properties
+        $p_header['size'] = 0;
+        //$p_header['external'] = 0x41FF0010;   // Value for a folder : to be checked
+        $p_header['external'] = 0x00000010;   // Value for a folder : to be checked
+
+        // ----- Call the header generation
+        if (($v_result = $this->privWriteFileHeader($p_header)) != 1)
+        {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+      }
+    }
+
+    // ----- Look for post-add callback
+    if (isset($p_options[PCLZIP_CB_POST_ADD])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_ADD]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_header, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_POST_ADD].'(PCLZIP_CB_POST_ADD, $v_local_header);');
+      if ($v_result == 0) {
+        // ----- Ignored
+        $v_result = 1;
+      }
+
+      // ----- Update the informations
+      // Nothing can be modified
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privCalculateStoredFilename()
+  // Description :
+  //   Based on file descriptor properties and global options, this method
+  //   calculate the filename that will be stored in the archive.
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privCalculateStoredFilename(&$p_filedescr, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCalculateStoredFilename", "filename='".$p_filedescr['filename']."'");
+    $v_result=1;
+    
+    // ----- Working variables
+    $p_filename = $p_filedescr['filename'];
+    if (isset($p_options[PCLZIP_OPT_ADD_PATH])) {
+      $p_add_dir = $p_options[PCLZIP_OPT_ADD_PATH];
+    }
+    else {
+      $p_add_dir = '';
+    }
+    if (isset($p_options[PCLZIP_OPT_REMOVE_PATH])) {
+      $p_remove_dir = $p_options[PCLZIP_OPT_REMOVE_PATH];
+    }
+    else {
+      $p_remove_dir = '';
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Remove path ='".$p_remove_dir."'");
+    if (isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) {
+      $p_remove_all_dir = $p_options[PCLZIP_OPT_REMOVE_ALL_PATH];
+    }
+    else {
+      $p_remove_all_dir = 0;
+    }
+
+    // ----- Look for full name change
+    if (isset($p_filedescr['new_full_name'])) {
+      $v_stored_filename = $p_filedescr['new_full_name'];
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing full name of '".$p_filename."' for '".$v_stored_filename."'");
+    }
+    
+    // ----- Look for path and/or short name change
+    else {
+
+      // ----- Look for short name change
+      if (isset($p_filedescr['new_short_name'])) {
+        $v_path_info = pathinfo($p_filename);
+        $v_dir = '';
+        if ($v_path_info['dirname'] != '') {
+          $v_dir = $v_path_info['dirname'].'/';
+        }
+        $v_stored_filename = $v_dir.$p_filedescr['new_short_name'];
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Changing short name of '".$p_filename."' for '".$v_stored_filename."'");
+      }
+      else {
+        // ----- Calculate the stored filename
+        $v_stored_filename = $p_filename;
+      }
+
+      // ----- Look for all path to remove
+      if ($p_remove_all_dir) {
+        $v_stored_filename = basename($p_filename);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove all path selected change '".$p_filename."' for '".$v_stored_filename."'");
+      }
+      // ----- Look for partial path remove
+      else if ($p_remove_dir != "") {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Partial path to remove");
+        if (substr($p_remove_dir, -1) != '/')
+          $p_remove_dir .= "/";
+
+        if (   (substr($p_filename, 0, 2) == "./")
+            || (substr($p_remove_dir, 0, 2) == "./")) {
+            
+          if (   (substr($p_filename, 0, 2) == "./")
+              && (substr($p_remove_dir, 0, 2) != "./")) {
+            $p_remove_dir = "./".$p_remove_dir;
+          }
+          if (   (substr($p_filename, 0, 2) != "./")
+              && (substr($p_remove_dir, 0, 2) == "./")) {
+            $p_remove_dir = substr($p_remove_dir, 2);
+          }
+        }
+
+        $v_compare = PclZipUtilPathInclusion($p_remove_dir,
+                                             $v_stored_filename);
+        if ($v_compare > 0) {
+          if ($v_compare == 2) {
+            $v_stored_filename = "";
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Path to remove is the current folder");
+          }
+          else {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Remove path '$p_remove_dir' in file '$v_stored_filename'");
+            $v_stored_filename = substr($v_stored_filename,
+                                        strlen($p_remove_dir));
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Result is '$v_stored_filename'");
+          }
+        }
+      }
+      // ----- Look for path to add
+      if ($p_add_dir != "") {
+        if (substr($p_add_dir, -1) == "/")
+          $v_stored_filename = $p_add_dir.$v_stored_filename;
+        else
+          $v_stored_filename = $p_add_dir."/".$v_stored_filename;
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Add path '$p_add_dir' in file '$p_filename' = '$v_stored_filename'");
+      }
+    }
+
+    // ----- Filename (reduce the path of stored name)
+    $v_stored_filename = PclZipUtilPathReduction($v_stored_filename);
+    $p_filedescr['stored_filename'] = $v_stored_filename;
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Stored filename will be '".$p_filedescr['stored_filename']."', strlen ".strlen($p_filedescr['stored_filename']));
+    
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privWriteFileHeader()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privWriteFileHeader(&$p_header)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteFileHeader", 'file="'.$p_header['filename'].'", stored as "'.$p_header['stored_filename'].'"');
+    $v_result=1;
+
+    // ----- Store the offset position of the file
+    $p_header['offset'] = ftell($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, 'File offset of the header :'.$p_header['offset']);
+
+    // ----- Transform UNIX mtime to DOS format mdate/mtime
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    $v_date = getdate($p_header['mtime']);
+    $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2;
+    $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday'];
+
+    // ----- Packed data
+    $v_binary_data = pack("VvvvvvVVVvv", 0x04034b50,
+	                      $p_header['version_extracted'], $p_header['flag'],
+                          $p_header['compression'], $v_mtime, $v_mdate,
+                          $p_header['crc'], $p_header['compressed_size'],
+						  $p_header['size'],
+                          strlen($p_header['stored_filename']),
+						  $p_header['extra_len']);
+
+    // ----- Write the first 148 bytes of the header in the archive
+    fputs($this->zip_fd, $v_binary_data, 30);
+
+    // ----- Write the variable fields
+    if (strlen($p_header['stored_filename']) != 0)
+    {
+      fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
+    }
+    if ($p_header['extra_len'] != 0)
+    {
+      fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privWriteCentralFileHeader()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privWriteCentralFileHeader(&$p_header)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralFileHeader", 'file="'.$p_header['filename'].'", stored as "'.$p_header['stored_filename'].'"');
+    $v_result=1;
+
+    // TBC
+    //for(reset($p_header); $key = key($p_header); next($p_header)) {
+    //  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "header[$key] = ".$p_header[$key]);
+    //}
+
+    // ----- Transform UNIX mtime to DOS format mdate/mtime
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    $v_date = getdate($p_header['mtime']);
+    $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2;
+    $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday'];
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment size : \''.$p_header['comment_len'].'\'');
+
+    // ----- Packed data
+    $v_binary_data = pack("VvvvvvvVVVvvvvvVV", 0x02014b50,
+	                      $p_header['version'], $p_header['version_extracted'],
+                          $p_header['flag'], $p_header['compression'],
+						  $v_mtime, $v_mdate, $p_header['crc'],
+                          $p_header['compressed_size'], $p_header['size'],
+                          strlen($p_header['stored_filename']),
+						  $p_header['extra_len'], $p_header['comment_len'],
+                          $p_header['disk'], $p_header['internal'],
+						  $p_header['external'], $p_header['offset']);
+
+    // ----- Write the 42 bytes of the header in the zip file
+    fputs($this->zip_fd, $v_binary_data, 46);
+
+    // ----- Write the variable fields
+    if (strlen($p_header['stored_filename']) != 0)
+    {
+      fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename']));
+    }
+    if ($p_header['extra_len'] != 0)
+    {
+      fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']);
+    }
+    if ($p_header['comment_len'] != 0)
+    {
+      fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']);
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privWriteCentralHeader()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privWriteCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privWriteCentralHeader", 'nb_entries='.$p_nb_entries.', size='.$p_size.', offset='.$p_offset.', comment="'.$p_comment.'"');
+    $v_result=1;
+
+    // ----- Packed data
+    $v_binary_data = pack("VvvvvVVv", 0x06054b50, 0, 0, $p_nb_entries,
+	                      $p_nb_entries, $p_size,
+						  $p_offset, strlen($p_comment));
+
+    // ----- Write the 22 bytes of the header in the zip file
+    fputs($this->zip_fd, $v_binary_data, 22);
+
+    // ----- Write the variable fields
+    if (strlen($p_comment) != 0)
+    {
+      fputs($this->zip_fd, $p_comment, strlen($p_comment));
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privList()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privList(&$p_list)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privList", "list");
+    $v_result=1;
+
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0)
+    {
+      // ----- Magic quotes trick
+      $this->privSwapBackMagicQuotes();
+      
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir = array();
+    if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+    {
+      $this->privSwapBackMagicQuotes();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Go to beginning of Central Dir
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Offset : ".$v_central_dir['offset']."'");
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'");
+    @rewind($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'");
+    if (@fseek($this->zip_fd, $v_central_dir['offset']))
+    {
+      $this->privSwapBackMagicQuotes();
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position in file : ".ftell($this->zip_fd)."'");
+
+    // ----- Read each entry
+    for ($i=0; $i<$v_central_dir['entries']; $i++)
+    {
+      // ----- Read the file header
+      if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1)
+      {
+        $this->privSwapBackMagicQuotes();
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+        return $v_result;
+      }
+      $v_header['index'] = $i;
+
+      // ----- Get the only interesting attributes
+      $this->privConvertHeader2FileInfo($v_header, $p_list[$i]);
+      unset($v_header);
+    }
+
+    // ----- Close the zip file
+    $this->privCloseFd();
+
+    // ----- Magic quotes trick
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privConvertHeader2FileInfo()
+  // Description :
+  //   This function takes the file informations from the central directory
+  //   entries and extract the interesting parameters that will be given back.
+  //   The resulting file infos are set in the array $p_info
+  //     $p_info['filename'] : Filename with full path. Given by user (add),
+  //                           extracted in the filesystem (extract).
+  //     $p_info['stored_filename'] : Stored filename in the archive.
+  //     $p_info['size'] = Size of the file.
+  //     $p_info['compressed_size'] = Compressed size of the file.
+  //     $p_info['mtime'] = Last modification date of the file.
+  //     $p_info['comment'] = Comment associated with the file.
+  //     $p_info['folder'] = true/false : indicates if the entry is a folder or not.
+  //     $p_info['status'] = status of the action on the file.
+  //     $p_info['crc'] = CRC of the file content.
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privConvertHeader2FileInfo($p_header, &$p_info)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privConvertHeader2FileInfo", "Filename='".$p_header['filename']."'");
+    $v_result=1;
+
+    // ----- Get the interesting attributes
+    $p_info['filename'] = $p_header['filename'];
+    $p_info['stored_filename'] = $p_header['stored_filename'];
+    $p_info['size'] = $p_header['size'];
+    $p_info['compressed_size'] = $p_header['compressed_size'];
+    $p_info['mtime'] = $p_header['mtime'];
+    $p_info['comment'] = $p_header['comment'];
+    $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010);
+    $p_info['index'] = $p_header['index'];
+    $p_info['status'] = $p_header['status'];
+    $p_info['crc'] = $p_header['crc'];
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privExtractByRule()
+  // Description :
+  //   Extract a file or directory depending of rules (by index, by name, ...)
+  // Parameters :
+  //   $p_file_list : An array where will be placed the properties of each
+  //                  extracted file
+  //   $p_path : Path to add while writing the extracted files
+  //   $p_remove_path : Path to remove (from the file memorized path) while writing the
+  //                    extracted files. If the path does not match the file path,
+  //                    the file is extracted with its memorized path.
+  //                    $p_remove_path does not apply to 'list' mode.
+  //                    $p_path and $p_remove_path are commulative.
+  // Return Values :
+  //   1 on success,0 or less on error (see error code list)
+  // --------------------------------------------------------------------------------
+  function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all_path, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privExtractByRule", "path='$p_path', remove_path='$p_remove_path', remove_all_path='".($p_remove_all_path?'true':'false')."'");
+    $v_result=1;
+
+    // ----- Magic quotes trick
+    $this->privDisableMagicQuotes();
+
+    // ----- Check the path
+    if (   ($p_path == "")
+	    || (   (substr($p_path, 0, 1) != "/")
+		    && (substr($p_path, 0, 3) != "../")
+			&& (substr($p_path,1,2)!=":/")))
+      $p_path = "./".$p_path;
+
+    // ----- Reduce the path last (and duplicated) '/'
+    if (($p_path != "./") && ($p_path != "/"))
+    {
+      // ----- Look for the path end '/'
+      while (substr($p_path, -1) == "/")
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Destination path [$p_path] ends by '/'");
+        $p_path = substr($p_path, 0, strlen($p_path)-1);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Modified to [$p_path]");
+      }
+    }
+
+    // ----- Look for path to remove format (should end by /)
+    if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/'))
+    {
+      $p_remove_path .= '/';
+    }
+    $p_remove_path_size = strlen($p_remove_path);
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_result = $this->privOpenFd('rb')) != 1)
+    {
+      $this->privSwapBackMagicQuotes();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir = array();
+    if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+    {
+      // ----- Close the zip file
+      $this->privCloseFd();
+      $this->privSwapBackMagicQuotes();
+
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Start at beginning of Central Dir
+    $v_pos_entry = $v_central_dir['offset'];
+
+    // ----- Read each entry
+    $j_start = 0;
+    for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry : '$i'");
+
+      // ----- Read next Central dir entry
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position before rewind : ".ftell($this->zip_fd)."'");
+      @rewind($this->zip_fd);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Position after rewind : ".ftell($this->zip_fd)."'");
+      if (@fseek($this->zip_fd, $v_pos_entry))
+      {
+        // ----- Close the zip file
+        $this->privCloseFd();
+        $this->privSwapBackMagicQuotes();
+
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size');
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Position after fseek : ".ftell($this->zip_fd)."'");
+
+      // ----- Read the file header
+      $v_header = array();
+      if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1)
+      {
+        // ----- Close the zip file
+        $this->privCloseFd();
+        $this->privSwapBackMagicQuotes();
+
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+        return $v_result;
+      }
+
+      // ----- Store the index
+      $v_header['index'] = $i;
+
+      // ----- Store the file position
+      $v_pos_entry = ftell($this->zip_fd);
+
+      // ----- Look for the specific extract rules
+      $v_extract = false;
+
+      // ----- Look for extract by name rule
+      if (   (isset($p_options[PCLZIP_OPT_BY_NAME]))
+          && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
+
+          // ----- Look if the filename is in the list
+          for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_extract); $j++) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options[PCLZIP_OPT_BY_NAME][$j]."'");
+
+              // ----- Look for a directory
+              if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a directory");
+
+                  // ----- Look if the directory is in the filename path
+                  if (   (strlen($v_header['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j]))
+                      && (substr($v_header['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) {
+                      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file path");
+                      $v_extract = true;
+                  }
+              }
+              // ----- Look for a filename
+              elseif ($v_header['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
+                  $v_extract = true;
+              }
+          }
+      }
+
+      // ----- Look for extract by ereg rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_EREG]))
+               && ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
+
+          if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header['stored_filename'])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+              $v_extract = true;
+          }
+      }
+
+      // ----- Look for extract by preg rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_PREG]))
+               && ($p_options[PCLZIP_OPT_BY_PREG] != "")) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
+
+          if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header['stored_filename'])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+              $v_extract = true;
+          }
+      }
+
+      // ----- Look for extract by index rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_INDEX]))
+               && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
+          
+          // ----- Look if the index is in the list
+          for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_options[PCLZIP_OPT_BY_INDEX][$j]['start'].",".$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']."]");
+
+              if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range");
+                  $v_extract = true;
+              }
+              if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range for next loop");
+                  $j_start = $j+1;
+              }
+
+              if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than index, stop loop");
+                  break;
+              }
+          }
+      }
+
+      // ----- Look for no rule, which means extract all the archive
+      else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with no rule (extract all)");
+          $v_extract = true;
+      }
+
+	  // ----- Check compression method
+	  if (   ($v_extract)
+	      && (   ($v_header['compression'] != 8)
+		      && ($v_header['compression'] != 0))) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported compression method (".$v_header['compression'].")");
+          $v_header['status'] = 'unsupported_compression';
+
+          // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
+          if (   (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR]))
+		      && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is selected, extraction will be stopped");
+
+              $this->privSwapBackMagicQuotes();
+              
+              PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION,
+			                       "Filename '".$v_header['stored_filename']."' is "
+				  	    	  	   ."compressed by an unsupported compression "
+				  	    	  	   ."method (".$v_header['compression'].") ");
+
+              //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+              return PclZip::errorCode();
+		  }
+	  }
+	  
+	  // ----- Check encrypted files
+	  if (($v_extract) && (($v_header['flag'] & 1) == 1)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unsupported file encryption");
+          $v_header['status'] = 'unsupported_encryption';
+
+          // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
+          if (   (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR]))
+		      && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is selected, extraction will be stopped");
+
+              $this->privSwapBackMagicQuotes();
+
+              PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION,
+			                       "Unsupported encryption for "
+				  	    	  	   ." filename '".$v_header['stored_filename']
+								   ."'");
+
+              //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+              return PclZip::errorCode();
+		  }
+    }
+
+      // ----- Look for real extraction
+      if (($v_extract) && ($v_header['status'] != 'ok')) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "No need for extract");
+          $v_result = $this->privConvertHeader2FileInfo($v_header,
+		                                        $p_file_list[$v_nb_extracted++]);
+          if ($v_result != 1) {
+              $this->privCloseFd();
+              $this->privSwapBackMagicQuotes();
+              //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+              return $v_result;
+          }
+
+          $v_extract = false;
+      }
+      
+      // ----- Look for real extraction
+      if ($v_extract)
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file '".$v_header['filename']."', index '$i'");
+
+        // ----- Go to the file position
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftell($this->zip_fd)."'");
+        @rewind($this->zip_fd);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'");
+        if (@fseek($this->zip_fd, $v_header['offset']))
+        {
+          // ----- Close the zip file
+          $this->privCloseFd();
+
+          $this->privSwapBackMagicQuotes();
+
+          // ----- Error log
+          PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size');
+
+          // ----- Return
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+          return PclZip::errorCode();
+        }
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'");
+
+        // ----- Look for extraction as string
+        if ($p_options[PCLZIP_OPT_EXTRACT_AS_STRING]) {
+
+          // ----- Extracting the file
+          $v_result1 = $this->privExtractFileAsString($v_header, $v_string);
+          if ($v_result1 < 1) {
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
+            return $v_result1;
+          }
+
+          // ----- Get the only interesting attributes
+          if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1)
+          {
+            // ----- Close the zip file
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+
+          // ----- Set the file content
+          $p_file_list[$v_nb_extracted]['content'] = $v_string;
+
+          // ----- Next extracted file
+          $v_nb_extracted++;
+          
+          // ----- Look for user callback abort
+          if ($v_result1 == 2) {
+          	break;
+          }
+        }
+        // ----- Look for extraction in standard output
+        elseif (   (isset($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT]))
+		        && ($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) {
+          // ----- Extracting the file in standard output
+          $v_result1 = $this->privExtractFileInOutput($v_header, $p_options);
+          if ($v_result1 < 1) {
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
+            return $v_result1;
+          }
+
+          // ----- Get the only interesting attributes
+          if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) {
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+
+          // ----- Look for user callback abort
+          if ($v_result1 == 2) {
+          	break;
+          }
+        }
+        // ----- Look for normal extraction
+        else {
+          // ----- Extracting the file
+          $v_result1 = $this->privExtractFile($v_header,
+		                                      $p_path, $p_remove_path,
+											  $p_remove_all_path,
+											  $p_options);
+          if ($v_result1 < 1) {
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result1);
+            return $v_result1;
+          }
+
+          // ----- Get the only interesting attributes
+          if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1)
+          {
+            // ----- Close the zip file
+            $this->privCloseFd();
+            $this->privSwapBackMagicQuotes();
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+
+          // ----- Look for user callback abort
+          if ($v_result1 == 2) {
+          	break;
+          }
+        }
+      }
+    }
+
+    // ----- Close the zip file
+    $this->privCloseFd();
+    $this->privSwapBackMagicQuotes();
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privExtractFile()
+  // Description :
+  // Parameters :
+  // Return Values :
+  //
+  // 1 : ... ?
+  // PCLZIP_ERR_USER_ABORTED(2) : User ask for extraction stop in callback
+  // --------------------------------------------------------------------------------
+  function privExtractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFile', "path='$p_path', remove_path='$p_remove_path', remove_all_path='".($p_remove_all_path?'true':'false')."'");
+    $v_result=1;
+
+    // ----- Read the file header
+    if (($v_result = $this->privReadFileHeader($v_header)) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'");
+
+    // ----- Check that the file header is coherent with $p_entry info
+    if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
+        // TBC
+    }
+
+    // ----- Look for all path to remove
+    if ($p_remove_all_path == true) {
+        // ----- Look for folder entry that not need to be extracted
+        if (($p_entry['external']&0x00000010)==0x00000010) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The entry is a folder : need to be filtered");
+
+            $p_entry['status'] = "filtered";
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+        }
+
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "All path is removed");
+        // ----- Get the basename of the path
+        $p_entry['filename'] = basename($p_entry['filename']);
+    }
+
+    // ----- Look for path to remove
+    else if ($p_remove_path != "")
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look for some path to remove");
+      if (PclZipUtilPathInclusion($p_remove_path, $p_entry['filename']) == 2)
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The folder is the same as the removed path '".$p_entry['filename']."'");
+
+        // ----- Change the file status
+        $p_entry['status'] = "filtered";
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+        return $v_result;
+      }
+
+      $p_remove_path_size = strlen($p_remove_path);
+      if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path)
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found path '$p_remove_path' to remove in file '".$p_entry['filename']."'");
+
+        // ----- Remove the path
+        $p_entry['filename'] = substr($p_entry['filename'], $p_remove_path_size);
+
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Resulting file is '".$p_entry['filename']."'");
+      }
+    }
+
+    // ----- Add the path
+    if ($p_path != '') {
+      $p_entry['filename'] = $p_path."/".$p_entry['filename'];
+    }
+    
+    // ----- Check a base_dir_restriction
+    if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Check the extract directory restriction");
+      $v_inclusion
+      = PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION],
+                                $p_entry['filename']); 
+      if ($v_inclusion == 0) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_EXTRACT_DIR_RESTRICTION is selected, file is outside restriction");
+
+        PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION,
+			                     "Filename '".$p_entry['filename']."' is "
+								 ."outside PCLZIP_OPT_EXTRACT_DIR_RESTRICTION");
+
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+    }
+
+    // ----- Look for pre-extract callback
+    if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_EXTRACT]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);');
+      if ($v_result == 0) {
+        // ----- Change the file status
+        $p_entry['status'] = "skipped";
+        $v_result = 1;
+      }
+      
+      // ----- Look for abort result
+      if ($v_result == 2) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction");
+        // ----- This status is internal and will be changed in 'skipped'
+        $p_entry['status'] = "aborted";
+      	$v_result = PCLZIP_ERR_USER_ABORTED;
+      }
+
+      // ----- Update the informations
+      // Only some fields can be modified
+      $p_entry['filename'] = $v_local_header['filename'];
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['filename']."'");
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".$p_entry['filename']."', size '$v_header[size]'");
+
+    // ----- Look if extraction should be done
+    if ($p_entry['status'] == 'ok') {
+
+    // ----- Look for specific actions while the file exist
+    if (file_exists($p_entry['filename']))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$p_entry['filename']."' already exists");
+
+      // ----- Look if file is a directory
+      if (is_dir($p_entry['filename']))
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is a directory");
+
+        // ----- Change the file status
+        $p_entry['status'] = "already_a_directory";
+        
+        // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
+        // For historical reason first PclZip implementation does not stop
+        // when this kind of error occurs.
+        if (   (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR]))
+		    && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is selected, extraction will be stopped");
+
+            PclZip::privErrorLog(PCLZIP_ERR_ALREADY_A_DIRECTORY,
+			                     "Filename '".$p_entry['filename']."' is "
+								 ."already used by an existing directory");
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+		}
+      }
+      // ----- Look if file is write protected
+      else if (!is_writeable($p_entry['filename']))
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is write protected");
+
+        // ----- Change the file status
+        $p_entry['status'] = "write_protected";
+
+        // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
+        // For historical reason first PclZip implementation does not stop
+        // when this kind of error occurs.
+        if (   (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR]))
+		    && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is selected, extraction will be stopped");
+
+            PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL,
+			                     "Filename '".$p_entry['filename']."' exists "
+								 ."and is write protected");
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+            return PclZip::errorCode();
+		}
+      }
+
+      // ----- Look if the extracted file is older
+      else if (filemtime($p_entry['filename']) > $p_entry['mtime'])
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is newer (".date("l dS of F Y h:i:s A", filemtime($p_entry['filename'])).") than the extracted file (".date("l dS of F Y h:i:s A", $p_entry['mtime']).")");
+        // ----- Change the file status
+        if (   (isset($p_options[PCLZIP_OPT_REPLACE_NEWER]))
+		    && ($p_options[PCLZIP_OPT_REPLACE_NEWER]===true)) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_REPLACE_NEWER is selected, file will be replaced");
+		}
+		else {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File will not be replaced");
+            $p_entry['status'] = "newer_exist";
+
+            // ----- Look for PCLZIP_OPT_STOP_ON_ERROR
+            // For historical reason first PclZip implementation does not stop
+            // when this kind of error occurs.
+            if (   (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR]))
+		        && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) {
+                //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "PCLZIP_OPT_STOP_ON_ERROR is selected, extraction will be stopped");
+
+                PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL,
+			             "Newer version of '".$p_entry['filename']."' exists "
+					    ."and option PCLZIP_OPT_REPLACE_NEWER is not selected");
+
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+                return PclZip::errorCode();
+		    }
+		}
+      }
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Existing file '".$p_entry['filename']."' is older than the extrated one - will be replaced by the extracted one (".date("l dS of F Y h:i:s A", filemtime($p_entry['filename'])).") than the extracted file (".date("l dS of F Y h:i:s A", $p_entry['mtime']).")");
+      }
+    }
+
+    // ----- Check the directory availability and create it if necessary
+    else {
+      if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/'))
+        $v_dir_to_check = $p_entry['filename'];
+      else if (!strstr($p_entry['filename'], "/"))
+        $v_dir_to_check = "";
+      else
+        $v_dir_to_check = dirname($p_entry['filename']);
+
+      if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to create path for '".$p_entry['filename']."'");
+
+        // ----- Change the file status
+        $p_entry['status'] = "path_creation_fail";
+
+        // ----- Return
+        ////--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+        //return $v_result;
+        $v_result = 1;
+      }
+    }
+    }
+
+    // ----- Look if extraction should be done
+    if ($p_entry['status'] == 'ok') {
+
+      // ----- Do the extraction (if not a folder)
+      if (!(($p_entry['external']&0x00000010)==0x00000010))
+      {
+        // ----- Look for not compressed file
+        if ($p_entry['compression'] == 0) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file");
+
+		  // ----- Opening destination file
+          if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0)
+          {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry['filename']."' in write binary mode");
+
+            // ----- Change the file status
+            $p_entry['status'] = "write_error";
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read '".$p_entry['size']."' bytes");
+
+          // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks
+          $v_size = $p_entry['compressed_size'];
+          while ($v_size != 0)
+          {
+            $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Read $v_read_size bytes");
+            $v_buffer = @fread($this->zip_fd, $v_read_size);
+            /* Try to speed up the code
+            $v_binary_data = pack('a'.$v_read_size, $v_buffer);
+            @fwrite($v_dest_file, $v_binary_data, $v_read_size);
+            */
+            @fwrite($v_dest_file, $v_buffer, $v_read_size);            
+            $v_size -= $v_read_size;
+          }
+
+          // ----- Closing the destination file
+          fclose($v_dest_file);
+
+          // ----- Change the file mtime
+          touch($p_entry['filename'], $p_entry['mtime']);
+          
+
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (Compression method ".$p_entry['compression'].")");
+          // ----- TBC
+          // Need to be finished
+          if (($p_entry['flag'] & 1) == 1) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File is encrypted");
+            /*
+              // ----- Read the encryption header
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read 12 encryption header bytes");
+              $v_encryption_header = @fread($this->zip_fd, 12);
+              
+              // ----- Read the encrypted & compressed file in a buffer
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".($p_entry['compressed_size']-12)."' compressed & encrypted bytes");
+              $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']-12);
+              
+              // ----- Decrypt the buffer
+              $this->privDecrypt($v_encryption_header, $v_buffer,
+			                     $p_entry['compressed_size']-12, $p_entry['crc']);
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Buffer is '".$v_buffer."'");
+              */
+          }
+          else {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read '".$p_entry['compressed_size']."' compressed bytes");
+              // ----- Read the compressed file in a buffer (one shot)
+              $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
+          }
+          
+          // ----- Decompress the file
+          $v_file_content = @gzinflate($v_buffer);
+          unset($v_buffer);
+          if ($v_file_content === FALSE) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to inflate compressed file");
+
+            // ----- Change the file status
+            // TBC
+            $p_entry['status'] = "error";
+            
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+          
+          // ----- Opening destination file
+          if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Error while opening '".$p_entry['filename']."' in write binary mode");
+
+            // ----- Change the file status
+            $p_entry['status'] = "write_error";
+
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+          }
+
+          // ----- Write the uncompressed data
+          @fwrite($v_dest_file, $v_file_content, $p_entry['size']);
+          unset($v_file_content);
+
+          // ----- Closing the destination file
+          @fclose($v_dest_file);
+
+          // ----- Change the file mtime
+          @touch($p_entry['filename'], $p_entry['mtime']);
+        }
+
+        // ----- Look for chmod option
+        if (isset($p_options[PCLZIP_OPT_SET_CHMOD])) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "chmod option activated '".$p_options[PCLZIP_OPT_SET_CHMOD]."'");
+
+          // ----- Change the mode of the file
+          @chmod($p_entry['filename'], $p_options[PCLZIP_OPT_SET_CHMOD]);
+        }
+
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
+      }
+    }
+
+	// ----- Change abort status
+	if ($p_entry['status'] == "aborted") {
+      $p_entry['status'] = "skipped";
+	}
+	
+    // ----- Look for post-extract callback
+    elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_EXTRACT]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);');
+
+      // ----- Look for abort result
+      if ($v_result == 2) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction");
+      	$v_result = PCLZIP_ERR_USER_ABORTED;
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privExtractFileInOutput()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privExtractFileInOutput(&$p_entry, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileInOutput', "");
+    $v_result=1;
+
+    // ----- Read the file header
+    if (($v_result = $this->privReadFileHeader($v_header)) != 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'");
+
+    // ----- Check that the file header is coherent with $p_entry info
+    if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
+        // TBC
+    }
+
+    // ----- Look for pre-extract callback
+    if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A pre-callback '".$p_options[PCLZIP_CB_PRE_EXTRACT]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);');
+      if ($v_result == 0) {
+        // ----- Change the file status
+        $p_entry['status'] = "skipped";
+        $v_result = 1;
+      }
+
+      // ----- Look for abort result
+      if ($v_result == 2) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction");
+        // ----- This status is internal and will be changed in 'skipped'
+        $p_entry['status'] = "aborted";
+      	$v_result = PCLZIP_ERR_USER_ABORTED;
+      }
+
+      // ----- Update the informations
+      // Only some fields can be modified
+      $p_entry['filename'] = $v_local_header['filename'];
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "New filename is '".$p_entry['filename']."'");
+    }
+
+    // ----- Trace
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file (with path) '".$p_entry['filename']."', size '$v_header[size]'");
+
+    // ----- Look if extraction should be done
+    if ($p_entry['status'] == 'ok') {
+
+      // ----- Do the extraction (if not a folder)
+      if (!(($p_entry['external']&0x00000010)==0x00000010)) {
+        // ----- Look for not compressed file
+        if ($p_entry['compressed_size'] == $p_entry['size']) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file");
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' bytes");
+
+          // ----- Read the file in a buffer (one shot)
+          $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
+
+          // ----- Send the file to the output
+          echo $v_buffer;
+          unset($v_buffer);
+        }
+        else {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file");
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Reading '".$p_entry['size']."' bytes");
+
+          // ----- Read the compressed file in a buffer (one shot)
+          $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']);
+          
+          // ----- Decompress the file
+          $v_file_content = gzinflate($v_buffer);
+          unset($v_buffer);
+
+          // ----- Send the file to the output
+          echo $v_file_content;
+          unset($v_file_content);
+        }
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
+      }
+    }
+
+	// ----- Change abort status
+	if ($p_entry['status'] == "aborted") {
+      $p_entry['status'] = "skipped";
+	}
+
+    // ----- Look for post-extract callback
+    elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "A post-callback '".$p_options[PCLZIP_CB_POST_EXTRACT]."()') is defined for the extraction");
+
+      // ----- Generate a local information
+      $v_local_header = array();
+      $this->privConvertHeader2FileInfo($p_entry, $v_local_header);
+
+      // ----- Call the callback
+      // Here I do not use call_user_func() because I need to send a reference to the
+      // header.
+      eval('$v_result = '.$p_options[PCLZIP_CB_POST_EXTRACT].'(PCLZIP_CB_POST_EXTRACT, $v_local_header);');
+
+      // ----- Look for abort result
+      if ($v_result == 2) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "User callback abort the extraction");
+      	$v_result = PCLZIP_ERR_USER_ABORTED;
+      }
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privExtractFileAsString()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privExtractFileAsString(&$p_entry, &$p_string)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privExtractFileAsString', "p_entry['filename']='".$p_entry['filename']."'");
+    $v_result=1;
+
+    // ----- Read the file header
+    $v_header = array();
+    if (($v_result = $this->privReadFileHeader($v_header)) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found file '".$v_header['filename']."', size '".$v_header['size']."'");
+
+    // ----- Check that the file header is coherent with $p_entry info
+    if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) {
+        // TBC
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting file in string (with path) '".$p_entry['filename']."', size '$v_header[size]'");
+
+    // ----- Do the extraction (if not a folder)
+    if (!(($p_entry['external']&0x00000010)==0x00000010))
+    {
+      // ----- Look for not compressed file
+//      if ($p_entry['compressed_size'] == $p_entry['size'])
+      if ($p_entry['compression'] == 0) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting an un-compressed file");
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Reading '".$p_entry['size']."' bytes");
+
+        // ----- Reading the file
+        $p_string = @fread($this->zip_fd, $p_entry['compressed_size']);
+      }
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extracting a compressed file (compression method '".$p_entry['compression']."')");
+
+        // ----- Reading the file
+        $v_data = @fread($this->zip_fd, $p_entry['compressed_size']);
+        
+        // ----- Decompress the file
+        if (($p_string = @gzinflate($v_data)) === FALSE) {
+            // TBC
+        }
+      }
+
+      // ----- Trace
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Extraction done");
+    }
+    else {
+        // TBC : error : can not extract a folder in a string
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privReadFileHeader()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privReadFileHeader(&$p_header)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadFileHeader", "");
+    $v_result=1;
+
+    // ----- Read the 4 bytes signature
+    $v_binary_data = @fread($this->zip_fd, 4);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%08x", $v_binary_data)."'");
+    $v_data = unpack('Vid', $v_binary_data);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'");
+
+    // ----- Check signature
+    if ($v_data['id'] != 0x04034b50)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid File header");
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Read the first 42 bytes of the header
+    $v_binary_data = fread($this->zip_fd, 26);
+
+    // ----- Look for invalid block size
+    if (strlen($v_binary_data) != 26)
+    {
+      $p_header['filename'] = "";
+      $p_header['status'] = "invalid_header";
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($v_binary_data));
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data));
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Extract the values
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header : '".$v_binary_data."'");
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Header (Hex) : '".bin2hex($v_binary_data)."'");
+    $v_data = unpack('vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $v_binary_data);
+
+    // ----- Get filename
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "File name length : ".$v_data['filename_len']);
+    $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename : \''.$p_header['filename'].'\'');
+
+    // ----- Get extra_fields
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extra field length : ".$v_data['extra_len']);
+    if ($v_data['extra_len'] != 0) {
+      $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']);
+    }
+    else {
+      $p_header['extra'] = '';
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Extra field : \''.bin2hex($p_header['extra']).'\'');
+
+    // ----- Extract properties
+    $p_header['version_extracted'] = $v_data['version'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : ('.$p_header['version_extracted'].') \''.($p_header['version_extracted']/10).'.'.($p_header['version_extracted']%10).'\'');
+    $p_header['compression'] = $v_data['compression'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compression method : \''.$p_header['compression'].'\'');
+    $p_header['size'] = $v_data['size'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_header['size'].'\'');
+    $p_header['compressed_size'] = $v_data['compressed_size'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_header['compressed_size'].'\'');
+    $p_header['crc'] = $v_data['crc'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_header['crc']).'\'');
+    $p_header['flag'] = $v_data['flag'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Flag : \''.$p_header['flag'].'\'');
+    $p_header['filename_len'] = $v_data['filename_len'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Filename_len : \''.$p_header['filename_len'].'\'');
+
+    // ----- Recuperate date in UNIX format
+    $p_header['mdate'] = $v_data['mdate'];
+    $p_header['mtime'] = $v_data['mtime'];
+    if ($p_header['mdate'] && $p_header['mtime'])
+    {
+      // ----- Extract time
+      $v_hour = ($p_header['mtime'] & 0xF800) >> 11;
+      $v_minute = ($p_header['mtime'] & 0x07E0) >> 5;
+      $v_seconde = ($p_header['mtime'] & 0x001F)*2;
+
+      // ----- Extract date
+      $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980;
+      $v_month = ($p_header['mdate'] & 0x01E0) >> 5;
+      $v_day = $p_header['mdate'] & 0x001F;
+
+      // ----- Get UNIX date format
+      $p_header['mtime'] = mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year);
+
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    }
+    else
+    {
+      $p_header['mtime'] = time();
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Date is actual : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    }
+
+    // TBC
+    //for(reset($v_data); $key = key($v_data); next($v_data)) {
+    //  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Attribut[$key] = ".$v_data[$key]);
+    //}
+
+    // ----- Set the stored filename
+    $p_header['stored_filename'] = $p_header['filename'];
+
+    // ----- Set the status field
+    $p_header['status'] = "ok";
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privReadCentralFileHeader()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privReadCentralFileHeader(&$p_header)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadCentralFileHeader", "");
+    $v_result=1;
+
+    // ----- Read the 4 bytes signature
+    $v_binary_data = @fread($this->zip_fd, 4);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary data is : '".sprintf("%08x", $v_binary_data)."'");
+    $v_data = unpack('Vid', $v_binary_data);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'");
+
+    // ----- Check signature
+    if ($v_data['id'] != 0x02014b50)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid Central Dir File signature");
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Read the first 42 bytes of the header
+    $v_binary_data = fread($this->zip_fd, 42);
+
+    // ----- Look for invalid block size
+    if (strlen($v_binary_data) != 42)
+    {
+      $p_header['filename'] = "";
+      $p_header['status'] = "invalid_header";
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid block size : ".strlen($v_binary_data));
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data));
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Extract the values
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header : '".$v_binary_data."'");
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Header (Hex) : '".bin2hex($v_binary_data)."'");
+    $p_header = unpack('vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $v_binary_data);
+
+    // ----- Get filename
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "File name length : ".$p_header['filename_len']);
+    if ($p_header['filename_len'] != 0)
+      $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']);
+    else
+      $p_header['filename'] = '';
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Filename : \''.$p_header['filename'].'\'');
+
+    // ----- Get extra
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Extra length : ".$p_header['extra_len']);
+    if ($p_header['extra_len'] != 0)
+      $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']);
+    else
+      $p_header['extra'] = '';
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Extra : \''.$p_header['extra'].'\'');
+
+    // ----- Get comment
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Comment length : ".$p_header['comment_len']);
+    if ($p_header['comment_len'] != 0)
+      $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']);
+    else
+      $p_header['comment'] = '';
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Comment : \''.$p_header['comment'].'\'');
+
+    // ----- Extract properties
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version : \''.($p_header['version']/10).'.'.($p_header['version']%10).'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Version need to extract : \''.($p_header['version_extracted']/10).'.'.($p_header['version_extracted']%10).'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Size : \''.$p_header['size'].'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Compressed Size : \''.$p_header['compressed_size'].'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'CRC : \''.sprintf("0x%X", $p_header['crc']).'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Flag : \''.$p_header['flag'].'\'');
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Offset : \''.$p_header['offset'].'\'');
+
+    // ----- Recuperate date in UNIX format
+    //if ($p_header['mdate'] && $p_header['mtime'])
+    // TBC : bug : this was ignoring time with 0/0/0
+    if (1)
+    {
+      // ----- Extract time
+      $v_hour = ($p_header['mtime'] & 0xF800) >> 11;
+      $v_minute = ($p_header['mtime'] & 0x07E0) >> 5;
+      $v_seconde = ($p_header['mtime'] & 0x001F)*2;
+
+      // ----- Extract date
+      $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980;
+      $v_month = ($p_header['mdate'] & 0x01E0) >> 5;
+      $v_day = $p_header['mdate'] & 0x001F;
+
+      // ----- Get UNIX date format
+      $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year);
+
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    }
+    else
+    {
+      $p_header['mtime'] = time();
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Date is actual : \''.date("d/m/y H:i:s", $p_header['mtime']).'\'');
+    }
+
+    // ----- Set the stored filename
+    $p_header['stored_filename'] = $p_header['filename'];
+
+    // ----- Set default status to ok
+    $p_header['status'] = 'ok';
+
+    // ----- Look if it is a directory
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Internal (Hex) : '".sprintf("Ox%04X", $p_header['internal'])."'");
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "External (Hex) : '".sprintf("Ox%04X", $p_header['external'])."' (".(($p_header['external']&0x00000010)==0x00000010?'is a folder':'is a file').')');
+    if (substr($p_header['filename'], -1) == '/') {
+      //$p_header['external'] = 0x41FF0010;
+      $p_header['external'] = 0x00000010;
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Force folder external : \''.sprintf("Ox%04X", $p_header['external']).'\'');
+    }
+
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Header of filename : \''.$p_header['filename'].'\'');
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privCheckFileHeaders()
+  // Description :
+  // Parameters :
+  // Return Values :
+  //   1 on success,
+  //   0 on error;
+  // --------------------------------------------------------------------------------
+  function privCheckFileHeaders(&$p_local_header, &$p_central_header)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privCheckFileHeaders", "");
+    $v_result=1;
+
+	// ----- Check the static values
+	// TBC
+	if ($p_local_header['filename'] != $p_central_header['filename']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename" : TBC To Be Completed');
+	}
+	if ($p_local_header['version_extracted'] != $p_central_header['version_extracted']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "version_extracted" : TBC To Be Completed');
+	}
+	if ($p_local_header['flag'] != $p_central_header['flag']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "flag" : TBC To Be Completed');
+	}
+	if ($p_local_header['compression'] != $p_central_header['compression']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "compression" : TBC To Be Completed');
+	}
+	if ($p_local_header['mtime'] != $p_central_header['mtime']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "mtime" : TBC To Be Completed');
+	}
+	if ($p_local_header['filename_len'] != $p_central_header['filename_len']) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Bad check "filename_len" : TBC To Be Completed');
+	}
+
+	// ----- Look for flag bit 3
+	if (($p_local_header['flag'] & 8) == 8) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Purpose bit flag bit 3 set !');
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'File size, compression size and crc found in central header');
+        $p_local_header['size'] = $p_central_header['size'];
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size : \''.$p_local_header['size'].'\'');
+        $p_local_header['compressed_size'] = $p_central_header['compressed_size'];
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Compressed Size : \''.$p_local_header['compressed_size'].'\'');
+        $p_local_header['crc'] = $p_central_header['crc'];
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'CRC : \''.sprintf("0x%X", $p_local_header['crc']).'\'');
+	}
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privReadEndCentralDir()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privReadEndCentralDir(&$p_central_dir)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privReadEndCentralDir", "");
+    $v_result=1;
+
+    // ----- Go to the end of the zip file
+    $v_size = filesize($this->zipname);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Size of the file :$v_size");
+    @fseek($this->zip_fd, $v_size);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position at end of zip file : \''.ftell($this->zip_fd).'\'');
+    if (@ftell($this->zip_fd) != $v_size)
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\'');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- First try : look if this is an archive with no commentaries (most of the time)
+    // in this case the end of central dir is at 22 bytes of the file end
+    $v_found = 0;
+    if ($v_size > 26) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Look for central dir with no comment');
+      @fseek($this->zip_fd, $v_size-22);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after min central position : \''.ftell($this->zip_fd).'\'');
+      if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22))
+      {
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\'');
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+
+      // ----- Read for bytes
+      $v_binary_data = @fread($this->zip_fd, 4);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Binary data is : '".sprintf("%08x", $v_binary_data)."'");
+      $v_data = @unpack('Vid', $v_binary_data);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Binary signature is : '".sprintf("0x%08x", $v_data['id'])."'");
+
+      // ----- Check signature
+      if ($v_data['id'] == 0x06054b50) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Found central dir at the default position.");
+        $v_found = 1;
+      }
+
+      $v_pos = ftell($this->zip_fd);
+    }
+
+    // ----- Go back to the maximum possible size of the Central Dir End Record
+    if (!$v_found) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Start extended search of end central dir');
+      $v_maximum_size = 65557; // 0xFFFF + 22;
+      if ($v_maximum_size > $v_size)
+        $v_maximum_size = $v_size;
+      @fseek($this->zip_fd, $v_size-$v_maximum_size);
+      if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size))
+      {
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\'');
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Position after max central position : \''.ftell($this->zip_fd).'\'');
+
+      // ----- Read byte per byte in order to find the signature
+      $v_pos = ftell($this->zip_fd);
+      $v_bytes = 0x00000000;
+      while ($v_pos < $v_size)
+      {
+        // ----- Read a byte
+        $v_byte = @fread($this->zip_fd, 1);
+
+        // -----  Add the byte
+        $v_bytes = ($v_bytes << 8) | Ord($v_byte);
+
+        // ----- Compare the bytes
+        if ($v_bytes == 0x504b0506)
+        {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, 'Found End Central Dir signature at position : \''.ftell($this->zip_fd).'\'');
+          $v_pos++;
+          break;
+        }
+
+        $v_pos++;
+      }
+
+      // ----- Look if not found end of central dir
+      if ($v_pos == $v_size)
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Unable to find End of Central Dir Record signature");
+
+        // ----- Error log
+        PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Unable to find End of Central Dir Record signature");
+
+        // ----- Return
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+        return PclZip::errorCode();
+      }
+    }
+
+    // ----- Read the first 18 bytes of the header
+    $v_binary_data = fread($this->zip_fd, 18);
+
+    // ----- Look for invalid block size
+    if (strlen($v_binary_data) != 18)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "Invalid End of Central Dir Record size : ".strlen($v_binary_data));
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid End of Central Dir Record size : ".strlen($v_binary_data));
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Extract the values
+    ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record : '".$v_binary_data."'");
+    ////--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Central Dir Record (Hex) : '".bin2hex($v_binary_data)."'");
+    $v_data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $v_binary_data);
+
+    // ----- Check the global size
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Comment length : ".$v_data['comment_size']);
+    if (($v_pos + $v_data['comment_size'] + 18) != $v_size) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "The central dir is not at the end of the archive. Some trailing bytes exists after the archive.");
+
+	  // ----- Removed in release 2.2 see readme file
+	  // The check of the file size is a little too strict.
+	  // Some bugs where found when a zip is encrypted/decrypted with 'crypt'.
+	  // While decrypted, zip has training 0 bytes
+	  if (0) {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT,
+	                       'The central dir is not at the end of the archive.'
+						   .' Some trailing bytes exists after the archive.');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+	  }
+    }
+
+    // ----- Get comment
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment size : \''.$v_data['comment_size'].'\'');
+    if ($v_data['comment_size'] != 0) {
+      $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']);
+    }
+    else
+      $p_central_dir['comment'] = '';
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Comment : \''.$p_central_dir['comment'].'\'');
+
+    $p_central_dir['entries'] = $v_data['entries'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries : \''.$p_central_dir['entries'].'\'');
+    $p_central_dir['disk_entries'] = $v_data['disk_entries'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Nb of entries for this disk : \''.$p_central_dir['disk_entries'].'\'');
+    $p_central_dir['offset'] = $v_data['offset'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Offset of Central Dir : \''.$p_central_dir['offset'].'\'');
+    $p_central_dir['size'] = $v_data['size'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Size of Central Dir : \''.$p_central_dir['size'].'\'');
+    $p_central_dir['disk'] = $v_data['disk'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Disk number : \''.$p_central_dir['disk'].'\'');
+    $p_central_dir['disk_start'] = $v_data['disk_start'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, 'Start disk number : \''.$p_central_dir['disk_start'].'\'');
+
+    // TBC
+    //for(reset($p_central_dir); $key = key($p_central_dir); next($p_central_dir)) {
+    //  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "central_dir[$key] = ".$p_central_dir[$key]);
+    //}
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privDeleteByRule()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privDeleteByRule(&$p_result_list, &$p_options)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDeleteByRule", "");
+    $v_result=1;
+    $v_list_detail = array();
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_result=$this->privOpenFd('rb')) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir = array();
+    if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+    {
+      $this->privCloseFd();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Go to beginning of File
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'");
+    @rewind($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in file : ".ftell($this->zip_fd)."'");
+
+    // ----- Scan all the files
+    // ----- Start at beginning of Central Dir
+    $v_pos_entry = $v_central_dir['offset'];
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftell($this->zip_fd)."'");
+    @rewind($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'");
+    if (@fseek($this->zip_fd, $v_pos_entry))
+    {
+      // ----- Close the zip file
+      $this->privCloseFd();
+
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'");
+
+    // ----- Read each entry
+    $v_header_list = array();
+    $j_start = 0;
+    for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Read next file header entry (index '$i')");
+
+      // ----- Read the file header
+      $v_header_list[$v_nb_extracted] = array();
+      if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1)
+      {
+        // ----- Close the zip file
+        $this->privCloseFd();
+
+        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+        return $v_result;
+      }
+
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename (index '$i') : '".$v_header_list[$v_nb_extracted]['stored_filename']."'");
+
+      // ----- Store the index
+      $v_header_list[$v_nb_extracted]['index'] = $i;
+
+      // ----- Look for the specific extract rules
+      $v_found = false;
+
+      // ----- Look for extract by name rule
+      if (   (isset($p_options[PCLZIP_OPT_BY_NAME]))
+          && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByName'");
+
+          // ----- Look if the filename is in the list
+          for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_found); $j++) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Compare with file '".$p_options[PCLZIP_OPT_BY_NAME][$j]."'");
+
+              // ----- Look for a directory
+              if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The searched item is a directory");
+
+                  // ----- Look if the directory is in the filename path
+                  if (   (strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j]))
+                      && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) {
+                      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The directory is in the file path");
+                      $v_found = true;
+                  }
+                  elseif (   (($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */
+                          && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_options[PCLZIP_OPT_BY_NAME][$j])) {
+                      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The entry is the searched directory");
+                      $v_found = true;
+                  }
+              }
+              // ----- Look for a filename
+              elseif ($v_header_list[$v_nb_extracted]['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "The file is the right one.");
+                  $v_found = true;
+              }
+          }
+      }
+
+      // ----- Look for extract by ereg rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_EREG]))
+               && ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
+
+          if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header_list[$v_nb_extracted]['stored_filename'])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+              $v_found = true;
+          }
+      }
+
+      // ----- Look for extract by preg rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_PREG]))
+               && ($p_options[PCLZIP_OPT_BY_PREG] != "")) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByEreg'");
+
+          if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header_list[$v_nb_extracted]['stored_filename'])) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+              $v_found = true;
+          }
+      }
+
+      // ----- Look for extract by index rule
+      else if (   (isset($p_options[PCLZIP_OPT_BY_INDEX]))
+               && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract with rule 'ByIndex'");
+
+          // ----- Look if the index is in the list
+          for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_found); $j++) {
+              //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Look if index '$i' is in [".$p_options[PCLZIP_OPT_BY_INDEX][$j]['start'].",".$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']."]");
+
+              if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Found as part of an index range");
+                  $v_found = true;
+              }
+              if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Do not look this index range for next loop");
+                  $j_start = $j+1;
+              }
+
+              if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) {
+                  //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Index range is greater than index, stop loop");
+                  break;
+              }
+          }
+      }
+      else {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "No argument mean remove all file");
+      	$v_found = true;
+      }
+
+      // ----- Look for deletion
+      if ($v_found)
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_extracted]['stored_filename']."', index '$i' need to be deleted");
+        unset($v_header_list[$v_nb_extracted]);
+      }
+      else
+      {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "File '".$v_header_list[$v_nb_extracted]['stored_filename']."', index '$i' will not be deleted");
+        $v_nb_extracted++;
+      }
+    }
+
+    // ----- Look if something need to be deleted
+    if ($v_nb_extracted > 0) {
+
+        // ----- Creates a temporay file
+        $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
+
+        // ----- Creates a temporary zip archive
+        $v_temp_zip = new PclZip($v_zip_temp_name);
+
+        // ----- Open the temporary zip file in write mode
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary write mode");
+        if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) {
+            $this->privCloseFd();
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+        }
+
+        // ----- Look which file need to be kept
+        for ($i=0; $i<sizeof($v_header_list); $i++) {
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Keep entry index '$i' : '".$v_header_list[$i]['filename']."'");
+
+            // ----- Calculate the position of the header
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset='". $v_header_list[$i]['offset']."'");
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position before rewind : ".ftell($this->zip_fd)."'");
+            @rewind($this->zip_fd);
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after rewind : ".ftell($this->zip_fd)."'");
+            if (@fseek($this->zip_fd,  $v_header_list[$i]['offset'])) {
+                // ----- Close the zip file
+                $this->privCloseFd();
+                $v_temp_zip->privCloseFd();
+                @unlink($v_zip_temp_name);
+
+                // ----- Error log
+                PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size');
+
+                // ----- Return
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+                return PclZip::errorCode();
+            }
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position after fseek : ".ftell($this->zip_fd)."'");
+
+            // ----- Read the file header
+            $v_local_header = array();
+            if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) {
+                // ----- Close the zip file
+                $this->privCloseFd();
+                $v_temp_zip->privCloseFd();
+                @unlink($v_zip_temp_name);
+
+                // ----- Return
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+                return $v_result;
+            }
+            
+            // ----- Check that local file header is same as central file header
+            if ($this->privCheckFileHeaders($v_local_header,
+			                                $v_header_list[$i]) != 1) {
+                // TBC
+            }
+            unset($v_local_header);
+
+            // ----- Write the file header
+            if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) {
+                // ----- Close the zip file
+                $this->privCloseFd();
+                $v_temp_zip->privCloseFd();
+                @unlink($v_zip_temp_name);
+
+                // ----- Return
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+                return $v_result;
+            }
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset for this file is '".$v_header_list[$i]['offset']."'");
+
+            // ----- Read/write the data block
+            if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compressed_size'])) != 1) {
+                // ----- Close the zip file
+                $this->privCloseFd();
+                $v_temp_zip->privCloseFd();
+                @unlink($v_zip_temp_name);
+
+                // ----- Return
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+                return $v_result;
+            }
+        }
+
+        // ----- Store the offset of the central dir
+        $v_offset = @ftell($v_temp_zip->zip_fd);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "New offset of central dir : $v_offset");
+
+        // ----- Re-Create the Central Dir files header
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the new central directory");
+        for ($i=0; $i<sizeof($v_header_list); $i++) {
+            // ----- Create the file header
+            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Offset of file : ".$v_header_list[$i]['offset']);
+            if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) {
+                $v_temp_zip->privCloseFd();
+                $this->privCloseFd();
+                @unlink($v_zip_temp_name);
+
+                // ----- Return
+                //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+                return $v_result;
+            }
+
+            // ----- Transform the header to a 'usable' info
+            $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]);
+        }
+
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Creates the central directory footer");
+
+        // ----- Zip file comment
+        $v_comment = '';
+        if (isset($p_options[PCLZIP_OPT_COMMENT])) {
+          $v_comment = $p_options[PCLZIP_OPT_COMMENT];
+        }
+
+        // ----- Calculate the size of the central header
+        $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset;
+
+        // ----- Create the central dir footer
+        if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $v_comment)) != 1) {
+            // ----- Reset the file list
+            unset($v_header_list);
+            $v_temp_zip->privCloseFd();
+            $this->privCloseFd();
+            @unlink($v_zip_temp_name);
+
+            // ----- Return
+            //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+            return $v_result;
+        }
+
+        // ----- Close
+        $v_temp_zip->privCloseFd();
+        $this->privCloseFd();
+
+        // ----- Delete the zip file
+        // TBC : I should test the result ...
+        @unlink($this->zipname);
+
+        // ----- Rename the temporary file
+        // TBC : I should test the result ...
+        //@rename($v_zip_temp_name, $this->zipname);
+        PclZipUtilRename($v_zip_temp_name, $this->zipname);
+    
+        // ----- Destroy the temporary archive
+        unset($v_temp_zip);
+    }
+    
+    // ----- Remove every files : reset the file
+    else if ($v_central_dir['entries'] != 0) {
+        $this->privCloseFd();
+
+        if (($v_result = $this->privOpenFd('wb')) != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+
+        if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+
+        $this->privCloseFd();
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privDirCheck()
+  // Description :
+  //   Check if a directory exists, if not it creates it and all the parents directory
+  //   which may be useful.
+  // Parameters :
+  //   $p_dir : Directory path to check.
+  // Return Values :
+  //    1 : OK
+  //   -1 : Unable to create directory
+  // --------------------------------------------------------------------------------
+  function privDirCheck($p_dir, $p_is_dir=false)
+  {
+    $v_result = 1;
+
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDirCheck", "entry='$p_dir', is_dir='".($p_is_dir?"true":"false")."'");
+
+    // ----- Remove the final '/'
+    if (($p_is_dir) && (substr($p_dir, -1)=='/'))
+    {
+      $p_dir = substr($p_dir, 0, strlen($p_dir)-1);
+    }
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Looking for entry '$p_dir'");
+
+    // ----- Check the directory availability
+    if ((is_dir($p_dir)) || ($p_dir == ""))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, "'$p_dir' is a directory");
+      return 1;
+    }
+
+    // ----- Extract parent directory
+    $p_parent_dir = dirname($p_dir);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Parent directory is '$p_parent_dir'");
+
+    // ----- Just a check
+    if ($p_parent_dir != $p_dir)
+    {
+      // ----- Look for parent directory
+      if ($p_parent_dir != "")
+      {
+        if (($v_result = $this->privDirCheck($p_parent_dir)) != 1)
+        {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+          return $v_result;
+        }
+      }
+    }
+
+    // ----- Create the directory
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Create directory '$p_dir'");
+    if (!@mkdir($p_dir, 0777))
+    {
+      // ----- Error log
+      PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '$p_dir'");
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result, "Directory '$p_dir' created");
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privMerge()
+  // Description :
+  //   If $p_archive_to_add does not exist, the function exit with a success result.
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privMerge(&$p_archive_to_add)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privMerge", "archive='".$p_archive_to_add->zipname."'");
+    $v_result=1;
+
+    // ----- Look if the archive_to_add exists
+    if (!is_file($p_archive_to_add->zipname))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to add does not exist. End of merge.");
+
+      // ----- Nothing to merge, so merge is a success
+      $v_result = 1;
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Look if the archive exists
+    if (!is_file($this->zipname))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive does not exist, duplicate the archive_to_add.");
+
+      // ----- Do a duplicate
+      $v_result = $this->privDuplicate($p_archive_to_add->zipname);
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_result=$this->privOpenFd('rb')) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir = array();
+    if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1)
+    {
+      $this->privCloseFd();
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Go to beginning of File
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this->zip_fd)."'");
+    @rewind($this->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in zip : ".ftell($this->zip_fd)."'");
+
+    // ----- Open the archive_to_add file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open archive_to_add in binary read mode");
+    if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1)
+    {
+      $this->privCloseFd();
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Read the central directory informations
+    $v_central_dir_to_add = array();
+    if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1)
+    {
+      $this->privCloseFd();
+      $p_archive_to_add->privCloseFd();
+
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Go to beginning of File
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".ftell($p_archive_to_add->zip_fd)."'");
+    @rewind($p_archive_to_add->zip_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Position in archive_to_add : ".ftell($p_archive_to_add->zip_fd)."'");
+
+    // ----- Creates a temporay file
+    $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp';
+
+    // ----- Open the temporary file in write mode
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0)
+    {
+      $this->privCloseFd();
+      $p_archive_to_add->privCloseFd();
+
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Copy the files from the archive to the temporary file
+    // TBC : Here I should better append the file and go back to erase the central dir
+    $v_size = $v_central_dir['offset'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = fread($this->zip_fd, $v_read_size);
+      @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Copy the files from the archive_to_add into the temporary file
+    $v_size = $v_central_dir_to_add['offset'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size);
+      @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Store the offset of the central dir
+    $v_offset = @ftell($v_zip_temp_fd);
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "New offset of central dir : $v_offset");
+
+    // ----- Copy the block of file headers from the old archive
+    $v_size = $v_central_dir['size'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = @fread($this->zip_fd, $v_read_size);
+      @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Copy the block of file headers from the archive_to_add
+    $v_size = $v_central_dir_to_add['size'];
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+      $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size);
+      @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Merge the file comments
+    $v_comment = $v_central_dir['comment'].' '.$v_central_dir_to_add['comment'];
+
+    // ----- Calculate the size of the (new) central header
+    $v_size = @ftell($v_zip_temp_fd)-$v_offset;
+
+    // ----- Swap the file descriptor
+    // Here is a trick : I swap the temporary fd with the zip fd, in order to use
+    // the following methods on the temporary fil and not the real archive fd
+    $v_swap = $this->zip_fd;
+    $this->zip_fd = $v_zip_temp_fd;
+    $v_zip_temp_fd = $v_swap;
+
+    // ----- Create the central dir footer
+    if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['entries'], $v_size, $v_offset, $v_comment)) != 1)
+    {
+      $this->privCloseFd();
+      $p_archive_to_add->privCloseFd();
+      @fclose($v_zip_temp_fd);
+      $this->zip_fd = null;
+
+      // ----- Reset the file list
+      unset($v_header_list);
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Swap back the file descriptor
+    $v_swap = $this->zip_fd;
+    $this->zip_fd = $v_zip_temp_fd;
+    $v_zip_temp_fd = $v_swap;
+
+    // ----- Close
+    $this->privCloseFd();
+    $p_archive_to_add->privCloseFd();
+
+    // ----- Close the temporary file
+    @fclose($v_zip_temp_fd);
+
+    // ----- Delete the zip file
+    // TBC : I should test the result ...
+    @unlink($this->zipname);
+
+    // ----- Rename the temporary file
+    // TBC : I should test the result ...
+    //@rename($v_zip_temp_name, $this->zipname);
+    PclZipUtilRename($v_zip_temp_name, $this->zipname);
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privDuplicate()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privDuplicate($p_archive_filename)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::privDuplicate", "archive_filename='$p_archive_filename'");
+    $v_result=1;
+
+    // ----- Look if the $p_archive_filename exists
+    if (!is_file($p_archive_filename))
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Archive to duplicate does not exist. End of duplicate.");
+
+      // ----- Nothing to duplicate, so duplicate is a success.
+      $v_result = 1;
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Open the zip file
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_result=$this->privOpenFd('wb')) != 1)
+    {
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+    }
+
+    // ----- Open the temporary file in write mode
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Open file in binary read mode");
+    if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0)
+    {
+      $this->privCloseFd();
+
+      PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive file \''.$p_archive_filename.'\' in binary write mode');
+
+      // ----- Return
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());
+      return PclZip::errorCode();
+    }
+
+    // ----- Copy the files from the archive to the temporary file
+    // TBC : Here I should better append the file and go back to erase the central dir
+    $v_size = filesize($p_archive_filename);
+    while ($v_size != 0)
+    {
+      $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Read $v_read_size bytes");
+      $v_buffer = fread($v_zip_temp_fd, $v_read_size);
+      @fwrite($this->zip_fd, $v_buffer, $v_read_size);
+      $v_size -= $v_read_size;
+    }
+
+    // ----- Close
+    $this->privCloseFd();
+
+    // ----- Close the temporary file
+    @fclose($v_zip_temp_fd);
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privErrorLog()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function privErrorLog($p_error_code=0, $p_error_string='')
+  {
+    if (PCLZIP_ERROR_EXTERNAL == 1) {
+      PclError($p_error_code, $p_error_string);
+    }
+    else {
+      $this->error_code = $p_error_code;
+      $this->error_string = $p_error_string;
+    }
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privErrorReset()
+  // Description :
+  // Parameters :
+  // --------------------------------------------------------------------------------
+  function privErrorReset()
+  {
+    if (PCLZIP_ERROR_EXTERNAL == 1) {
+      PclErrorReset();
+    }
+    else {
+      $this->error_code = 0;
+      $this->error_string = '';
+    }
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privDecrypt()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privDecrypt($p_encryption_header, &$p_buffer, $p_size, $p_crc)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDecrypt', "size=".$p_size."");
+    $v_result=1;
+    
+    // ----- To Be Modified ;-)
+    $v_pwd = "test";
+    
+    $p_buffer = PclZipUtilZipDecrypt($p_buffer, $p_size, $p_encryption_header,
+	                                 $p_crc, $v_pwd);
+    
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privDisableMagicQuotes()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privDisableMagicQuotes()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privDisableMagicQuotes', "");
+    $v_result=1;
+
+    // ----- Look if function exists
+    if (   (!function_exists("get_magic_quotes_runtime"))
+	    || (!function_exists("set_magic_quotes_runtime"))) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runtime are not supported");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+	}
+
+    // ----- Look if already done
+    if ($this->magic_quotes_status != -1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote already disabled");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+	}
+
+	// ----- Get and memorize the magic_quote value
+	$this->magic_quotes_status = @get_magic_quotes_runtime();
+    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Current magic_quotes_runtime status is '".($this->magic_quotes_status==0?'disable':'enable')."'");
+
+	// ----- Disable magic_quotes
+	if ($this->magic_quotes_status == 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Disable magic_quotes");
+	  @set_magic_quotes_runtime(0);
+	}
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : privSwapBackMagicQuotes()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function privSwapBackMagicQuotes()
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::privSwapBackMagicQuotes', "");
+    $v_result=1;
+
+    // ----- Look if function exists
+    if (   (!function_exists("get_magic_quotes_runtime"))
+	    || (!function_exists("set_magic_quotes_runtime"))) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Functions *et_magic_quotes_runtime are not supported");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+	}
+
+    // ----- Look if something to do
+    if ($this->magic_quotes_status != -1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "magic_quote not modified");
+      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+      return $v_result;
+	}
+
+	// ----- Swap back magic_quotes
+	if ($this->magic_quotes_status == 1) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Enable back magic_quotes");
+  	  @set_magic_quotes_runtime($this->magic_quotes_status);
+	}
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  }
+  // End of class
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilPathReduction()
+  // Description :
+  // Parameters :
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function PclZipUtilPathReduction($p_dir)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathReduction", "dir='$p_dir'");
+    $v_result = "";
+
+    // ----- Look for not empty path
+    if ($p_dir != "") {
+      // ----- Explode path by directory names
+      $v_list = explode("/", $p_dir);
+
+      // ----- Study directories from last to first
+      $v_skip = 0;
+      for ($i=sizeof($v_list)-1; $i>=0; $i--) {
+        // ----- Look for current path
+        if ($v_list[$i] == ".") {
+          // ----- Ignore this directory
+          // Should be the first $i=0, but no check is done
+        }
+        else if ($v_list[$i] == "..") {
+		  $v_skip++;
+        }
+        else if ($v_list[$i] == "") {
+		  // ----- First '/' i.e. root slash
+		  if ($i == 0) {
+            $v_result = "/".$v_result;
+		    if ($v_skip > 0) {
+		        // ----- It is an invalid path, so the path is not modified
+		        // TBC
+		        $v_result = $p_dir;
+                //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Invalid path is unchanged");
+                $v_skip = 0;
+		    }
+		  }
+		  // ----- Last '/' i.e. indicates a directory
+		  else if ($i == (sizeof($v_list)-1)) {
+            $v_result = $v_list[$i];
+		  }
+		  // ----- Double '/' inside the path
+		  else {
+            // ----- Ignore only the double '//' in path,
+            // but not the first and last '/'
+		  }
+        }
+        else {
+		  // ----- Look for item to skip
+		  if ($v_skip > 0) {
+		    $v_skip--;
+		  }
+		  else {
+            $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:"");
+		  }
+        }
+      }
+      
+      // ----- Look for skip
+      if ($v_skip > 0) {
+        while ($v_skip > 0) {
+            $v_result = '../'.$v_result;
+            $v_skip--;
+        }
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilPathInclusion()
+  // Description :
+  //   This function indicates if the path $p_path is under the $p_dir tree. Or,
+  //   said in an other way, if the file or sub-dir $p_path is inside the dir
+  //   $p_dir.
+  //   The function indicates also if the path is exactly the same as the dir.
+  //   This function supports path with duplicated '/' like '//', but does not
+  //   support '.' or '..' statements.
+  // Parameters :
+  // Return Values :
+  //   0 if $p_path is not inside directory $p_dir
+  //   1 if $p_path is inside directory $p_dir
+  //   2 if $p_path is exactly the same as $p_dir
+  // --------------------------------------------------------------------------------
+  function PclZipUtilPathInclusion($p_dir, $p_path)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilPathInclusion", "dir='$p_dir', path='$p_path'");
+    $v_result = 1;
+    
+    // ----- Look for path beginning by ./
+    if (   ($p_dir == '.')
+        || ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) {
+      $p_dir = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_dir, 1);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_dir '".$p_dir."'");
+    }
+    if (   ($p_path == '.')
+        || ((strlen($p_path) >=2) && (substr($p_path, 0, 2) == './'))) {
+      $p_path = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_path, 1);
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Replacing ./ by full path in p_path '".$p_path."'");
+    }
+
+    // ----- Explode dir and path by directory separator
+    $v_list_dir = explode("/", $p_dir);
+    $v_list_dir_size = sizeof($v_list_dir);
+    $v_list_path = explode("/", $p_path);
+    $v_list_path_size = sizeof($v_list_path);
+
+    // ----- Study directories paths
+    $i = 0;
+    $j = 0;
+    while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && ($v_result)) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Working on dir($i)='".$v_list_dir[$i]."' and path($j)='".$v_list_path[$j]."'");
+
+      // ----- Look for empty dir (path reduction)
+      if ($v_list_dir[$i] == '') {
+        $i++;
+        continue;
+      }
+      if ($v_list_path[$j] == '') {
+        $j++;
+        continue;
+      }
+
+      // ----- Compare the items
+      if (($v_list_dir[$i] != $v_list_path[$j]) && ($v_list_dir[$i] != '') && ( $v_list_path[$j] != ''))  {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Items ($i,$j) are different");
+        $v_result = 0;
+      }
+
+      // ----- Next items
+      $i++;
+      $j++;
+    }
+
+    // ----- Look if everything seems to be the same
+    if ($v_result) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Look for tie break");
+      // ----- Skip all the empty items
+      while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) $j++;
+      while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) $i++;
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Looking on dir($i)='".($i < $v_list_dir_size?$v_list_dir[$i]:'')."' and path($j)='".($j < $v_list_path_size?$v_list_path[$j]:'')."'");
+
+      if (($i >= $v_list_dir_size) && ($j >= $v_list_path_size)) {
+        // ----- There are exactly the same
+        $v_result = 2;
+      }
+      else if ($i < $v_list_dir_size) {
+        // ----- The path is shorter than the dir
+        $v_result = 0;
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilCopyBlock()
+  // Description :
+  // Parameters :
+  //   $p_mode : read/write compression mode
+  //             0 : src & dest normal
+  //             1 : src gzip, dest normal
+  //             2 : src normal, dest gzip
+  //             3 : src & dest gzip
+  // Return Values :
+  // --------------------------------------------------------------------------------
+  function PclZipUtilCopyBlock($p_src, $p_dest, $p_size, $p_mode=0)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilCopyBlock", "size=$p_size, mode=$p_mode");
+    $v_result = 1;
+
+    if ($p_mode==0)
+    {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset before read :".(@ftell($p_src)));
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset before write :".(@ftell($p_dest)));
+      while ($p_size != 0)
+      {
+        $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+        $v_buffer = @fread($p_src, $v_read_size);
+        @fwrite($p_dest, $v_buffer, $v_read_size);
+        $p_size -= $v_read_size;
+      }
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Src offset after read :".(@ftell($p_src)));
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Dest offset after write :".(@ftell($p_dest)));
+    }
+    else if ($p_mode==1)
+    {
+      while ($p_size != 0)
+      {
+        $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+        $v_buffer = @gzread($p_src, $v_read_size);
+        @fwrite($p_dest, $v_buffer, $v_read_size);
+        $p_size -= $v_read_size;
+      }
+    }
+    else if ($p_mode==2)
+    {
+      while ($p_size != 0)
+      {
+        $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+        $v_buffer = @fread($p_src, $v_read_size);
+        @gzwrite($p_dest, $v_buffer, $v_read_size);
+        $p_size -= $v_read_size;
+      }
+    }
+    else if ($p_mode==3)
+    {
+      while ($p_size != 0)
+      {
+        $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE);
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Read $v_read_size bytes");
+        $v_buffer = @gzread($p_src, $v_read_size);
+        @gzwrite($p_dest, $v_buffer, $v_read_size);
+        $p_size -= $v_read_size;
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilRename()
+  // Description :
+  //   This function tries to do a simple rename() function. If it fails, it
+  //   tries to copy the $p_src file in a new $p_dest file and then unlink the
+  //   first one.
+  // Parameters :
+  //   $p_src : Old filename
+  //   $p_dest : New filename
+  // Return Values :
+  //   1 on success, 0 on failure.
+  // --------------------------------------------------------------------------------
+  function PclZipUtilRename($p_src, $p_dest)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilRename", "source=$p_src, destination=$p_dest");
+    $v_result = 1;
+
+    // ----- Try to rename the files
+    if (!@rename($p_src, $p_dest)) {
+      //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to rename file, try copy+unlink");
+
+      // ----- Try to copy & unlink the src
+      if (!@copy($p_src, $p_dest)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to copy file");
+        $v_result = 0;
+      }
+      else if (!@unlink($p_src)) {
+        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 5, "Fail to unlink old filename");
+        $v_result = 0;
+      }
+    }
+
+    // ----- Return
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilOptionText()
+  // Description :
+  //   Translate option value in text. Mainly for debug purpose.
+  // Parameters :
+  //   $p_option : the option value.
+  // Return Values :
+  //   The option text value.
+  // --------------------------------------------------------------------------------
+  function PclZipUtilOptionText($p_option)
+  {
+    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZipUtilOptionText", "option='".$p_option."'");
+    
+    $v_list = get_defined_constants();
+    for (reset($v_list); $v_key = key($v_list); next($v_list)) {
+	  $v_prefix = substr($v_key, 0, 10);
+	  if ((   ($v_prefix == 'PCLZIP_OPT')
+         || ($v_prefix == 'PCLZIP_CB_')
+         || ($v_prefix == 'PCLZIP_ATT'))
+	      && ($v_list[$v_key] == $p_option)) {
+          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_key);
+          return $v_key;
+	    }
+    }
+    
+    $v_result = 'Unknown';
+
+    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $v_result);
+    return $v_result;
+  }
+  // --------------------------------------------------------------------------------
+
+  // --------------------------------------------------------------------------------
+  // Function : PclZipUtilTranslateWinPath()
+  // Description :
+  //   Translate windows path by replacing '\' by '/' and optionally removing
+  //   drive letter.
+  // Parameters :
+  //   $p_path : path to translate.
+  //   $p_remove_disk_letter : true | false
+  // Return Values :
+  //   The path translated.
+  // --------------------------------------------------------------------------------
+  function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter=true)
+  {
+    if (stristr(php_uname(), 'windows')) {
+      // ----- Look for potential disk letter
+      if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) {
+          $p_path = substr($p_path, $v_position+1);
+      }
+      // ----- Change potential windows directory separator
+      if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) {
+          $p_path = strtr($p_path, '\\', '/');
+      }
+    }
+    return $p_path;
+  }
+  // --------------------------------------------------------------------------------
+
+
+?>

Property changes on: tags/2.7.0/wb/include/pclzip/pclzip.lib.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/index.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-dk.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-dk.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-dk.php	(revision 838)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Danish Version
+ * Author: Mikael Stokkebro <info@stokkebro.dk>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du skal indtaste mindst en ' .
+                                     'modtagers emailadresse.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer understøttes ikke.';
+$PHPMAILER_LANG["execute"] = 'Kunne ikke køre: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunne ikke initialisere email funktionen.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP fejl: Kunne ikke logge på.';
+$PHPMAILER_LANG["from_failed"] = 'Følgende afsenderadresse er forkert: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP fejl: Følgende' .
+                                       'modtagere er forkerte: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP fejl: Data kunne ikke accepteres.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.';
+$PHPMAILER_LANG["file_access"] = 'Ingen adgang til fil: ';
+$PHPMAILER_LANG["file_open"] = 'Fil fejl: Kunne ikke åbne filen: ';
+$PHPMAILER_LANG["encoding"] = 'Ukendt encode-format: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-dk.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-et.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-et.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-et.php	(revision 838)
@@ -0,0 +1,22 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Estonian Version
+ * By Indrek P&auml;ri
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Te peate m&auml;&auml;rama v&auml;hemalt &uuml;he saaja e-posti aadressi.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' maileri tugi puudub.';
+$PHPMAILER_LANG["execute"] = 'Tegevus eba&otilde;nnestus: ';
+$PHPMAILER_LANG["instantiate"] = 'mail funktiooni k&auml;ivitamine eba&otilde;nnestus.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Viga: Autoriseerimise viga.';
+$PHPMAILER_LANG["from_failed"] = 'J&auml;rgnev saatja e-posti aadress on vigane: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Viga: J&auml;rgnevate saajate e-posti aadressid on vigased: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Viga: Vigased andmed.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Viga: Ei &otilde;nnestunud luua &uuml;hendust SMTP serveriga.';
+$PHPMAILER_LANG["file_access"] = 'Pole piisavalt &otilde;iguseid j&auml;rgneva faili avamiseks: ';
+$PHPMAILER_LANG["file_open"] = 'Faili Viga: Faili avamine eba&otilde;nnestus: ';
+$PHPMAILER_LANG["encoding"] = 'Tundmatu Unknown kodeering: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-et.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ru.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ru.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ru.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Russian Version by Alexey Chumakov <alex@chumakov.ru>
+ */
+
+$PHPMAILER_LANG = array();
+$PHPMAILER_LANG["provide_address"] = 'Ïîæàëóéñòà, ââåäèòå õîòÿ áû îäèí àäðåñ e-mail ' .
+                                     'ïîëó÷àòåëÿ.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' - ïî÷òîâûé ñåðâåð íå ïîääåðæèâàåòñÿ.';
+$PHPMAILER_LANG["execute"] = 'Íåâîçìîæíî âûïîëíèòü êîìàíäó: ';
+$PHPMAILER_LANG["instantiate"] = 'Íåâîçìîæíî çàïóñòèòü ôóíêöèþ mail.';
+$PHPMAILER_LANG["authenticate"] = 'Îøèáêà SMTP: îøèáêà àâòîðèçàöèè.';
+$PHPMAILER_LANG["from_failed"] = 'Íåâåðíûé àäðåñ îòïðàâèòåëÿ: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Îøèáêà SMTP: îòïðàâêà ïî ñëåäóþùèì ' .
+                                       'àäðåñàì ïîëó÷àòåëåé íå óäàëàñü: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Îøèáêà SMTP: äàííûå íå ïðèíÿòû.';
+$PHPMAILER_LANG["connect_host"] = 'Îøèáêà SMTP: íå óäàåòñÿ ïîäêëþ÷èòüñÿ ê ñåðâåðó SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Íåò äîñòóïà ê ôàéëó: ';
+$PHPMAILER_LANG["file_open"] = 'Ôàéëîâàÿ îøèáêà: íå óäàåòñÿ îòêðûòü ôàéë: ';
+$PHPMAILER_LANG["encoding"] = 'Íåèçâåñòíûé âèä êîäèðîâêè: ';
+?>
+

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ru.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ja.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ja.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ja.php	(revision 838)
@@ -0,0 +1,25 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Japanese Version
+ * By Mitsuhiro Yoshida - http://mitstek.com/
+ * This file is written in EUC-JP.
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = '¾¯¤Ê¤¯¤È¤â1¤Ä¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò' .
+                                     '»ØÄê¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡£';
+$PHPMAILER_LANG["mailer_not_supported"] = ' ¥á¡¼¥é¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£';
+$PHPMAILER_LANG["execute"] = '¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: ';
+$PHPMAILER_LANG["instantiate"] = '¥á¡¼¥ë´Ø¿ô¤¬Àµ¾ï¤ËÆ°ºî¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£';
+$PHPMAILER_LANG["authenticate"] = 'SMTP¥¨¥é¡¼: Ç§¾Ú¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£';
+$PHPMAILER_LANG["from_failed"] = '¼¡¤ÎFrom¥¢¥É¥ì¥¹¤Ë´Ö°ã¤¤¤¬¤¢¤ê¤Þ¤¹: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP¥¨¥é¡¼: ¼¡¤Î¼õ¿®¼Ô¥¢¥É¥ì¥¹¤Ë ' .
+                                       '´Ö°ã¤¤¤¬¤¢¤ê¤Þ¤¹: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP¥¨¥é¡¼: ¥Ç¡¼¥¿¤¬¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£';
+$PHPMAILER_LANG["connect_host"] = 'SMTP¥¨¥é¡¼: SMTP¥Û¥¹¥È¤ËÀÜÂ³¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£';
+$PHPMAILER_LANG["file_access"] = '¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó: ';
+$PHPMAILER_LANG["file_open"] = '¥Õ¥¡¥¤¥ë¥¨¥é¡¼: ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: ';
+$PHPMAILER_LANG["encoding"] = 'ÉÔÌÀ¤Ê¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ja.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fi.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fi.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fi.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Finnish Version
+ * By Jyry Kuukanen
+ */
+
+$PHPMAILER_LANG = array(); 
+
+$PHPMAILER_LANG["provide_address"] = 'Aseta v&auml;hint&auml;&auml;n yksi vastaanottajan ' . 
+                                     's&auml;hk&ouml;postiosoite.'; 
+$PHPMAILER_LANG["mailer_not_supported"] = 'postiv&auml;litintyyppi&auml; ei tueta.'; 
+$PHPMAILER_LANG["execute"] = 'Suoritus ep&auml;onnistui: '; 
+$PHPMAILER_LANG["instantiate"] = 'mail-funktion luonti ep&auml;onnistui.'; 
+$PHPMAILER_LANG["authenticate"] = 'SMTP-virhe: k&auml;ytt&auml;j&auml;tunnistus ep&auml;onnistui.'; 
+$PHPMAILER_LANG["from_failed"] = 'Seuraava l&auml;hett&auml;j&auml;n osoite on virheellinen: '; 
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; 
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP-virhe: data on virheellinen.'; 
+$PHPMAILER_LANG["connect_host"] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; 
+$PHPMAILER_LANG["file_access"] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; 
+$PHPMAILER_LANG["file_open"] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; 
+$PHPMAILER_LANG["encoding"] = 'Tuntematon koodaustyyppi: '; 
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fi.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-en.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-en.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-en.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * English Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' .
+                                     'recipient email address.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.';
+$PHPMAILER_LANG["execute"] = 'Could not execute: ';
+$PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.';
+$PHPMAILER_LANG["from_failed"] = 'The following From address failed: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' .
+                                       'recipients failed: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Could not access file: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: ';
+$PHPMAILER_LANG["encoding"] = 'Unknown encoding: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-en.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-br.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-br.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-br.php	(revision 838)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Portuguese Version
+ * By Paulo Henrique Garcia - paulo@controllerweb.com.br
+ */
+
+$PHPMAILER_LANG = array();
+$PHPMAILER_LANG["provide_address"] = 'Você deve fornecer pelo menos um endereço de destinatário de email.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer não suportado.';
+$PHPMAILER_LANG["execute"] = 'Não foi possível executar: ';
+$PHPMAILER_LANG["instantiate"] = 'Não foi possível instanciar a função mail.';
+$PHPMAILER_LANG["authenticate"] = 'Erro de SMTP: Não foi possível autenticar.';
+$PHPMAILER_LANG["from_failed"] = 'Os endereços de rementente a seguir falharam: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Erro de SMTP: Os endereços de destinatário a seguir falharam: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Erro de SMTP: Dados não aceitos.';
+$PHPMAILER_LANG["connect_host"] = 'Erro de SMTP: Não foi possível conectar com o servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Não foi possível acessar o arquivo: ';
+$PHPMAILER_LANG["file_open"] = 'Erro de Arquivo: Não foi possível abrir o arquivo: ';
+$PHPMAILER_LANG["encoding"] = 'Codificação desconhecida: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-br.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fo.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fo.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fo.php	(revision 838)
@@ -0,0 +1,50 @@
+<?php+
+/**+
+ * PHPMailer language file.  +
+ * Faroese Version [language of the Faroe Islands, a Danish dominion]+
+ * This file created: 11-06-2004+
+ * Supplied by Dávur Sørensen [www.profo-webdesign.dk]+
+ */+
++
+$PHPMAILER_LANG = array();+
++
+$PHPMAILER_LANG["provide_address"] = 'Tú skal uppgeva minst ' .+
+                                     'móttakara-emailadressu(r).';+
+$PHPMAILER_LANG["mailer_not_supported"] = ' er ikki supporterað.';+
+$PHPMAILER_LANG["execute"] = 'Kundi ikki útføra: ';+
+$PHPMAILER_LANG["instantiate"] = 'Kuni ikki instantiera mail funktión.';+
+$PHPMAILER_LANG["authenticate"] = 'SMTP feilur: Kundi ikki góðkenna.';+
+$PHPMAILER_LANG["from_failed"] = 'fylgjandi Frá/From adressa miseydnaðist: ';+
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Feilur: Fylgjandi ' .+
+                                       'móttakarar miseydnaðust: ';+
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP feilur: Data ikki góðkent.';+
+$PHPMAILER_LANG["connect_host"] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.';+
+$PHPMAILER_LANG["file_access"] = 'Kundi ikki tilganga fílu: ';+
+$PHPMAILER_LANG["file_open"] = 'Fílu feilur: Kundi ikki opna fílu: ';+
+$PHPMAILER_LANG["encoding"] = 'Ókend encoding: ';+
+?>+

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fo.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-se.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-se.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-se.php	(revision 838)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Swedish Version
+ * Author: Johan Linnér <johan@linner.biz>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du måste ange minst en ' .
+                                     'mottagares e-postadress.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer stöds inte.';
+$PHPMAILER_LANG["execute"] = 'Kunde inte köra: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunde inte initiera e-postfunktion.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP fel: Kunde inte autentisera.';
+$PHPMAILER_LANG["from_failed"] = 'Följande avsändaradress är felaktig: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP fel: Följande ' .
+                                       'mottagare är felaktig: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP fel: Data accepterades inte.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP fel: Kunde inte ansluta till SMTP-server.';
+$PHPMAILER_LANG["file_access"] = 'Ingen åtkomst till fil: ';
+$PHPMAILER_LANG["file_open"] = 'Fil fel: Kunde inte öppna fil: ';
+$PHPMAILER_LANG["encoding"] = 'Okänt encode-format: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-se.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-es.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-es.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-es.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Versión en español
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Debe proveer al menos una ' .
+                                     'dirección de email como destinatario.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer no está soportado.';
+$PHPMAILER_LANG["execute"] = 'No puedo ejecutar: ';
+$PHPMAILER_LANG["instantiate"] = 'No pude crear una instancia de la función Mail.';
+$PHPMAILER_LANG["authenticate"] = 'Error SMTP: No se pudo autentificar.';
+$PHPMAILER_LANG["from_failed"] = 'La(s) siguiente(s) direcciones de remitente fallaron: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Error SMTP: Los siguientes ' .
+                                       'destinatarios fallaron: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Error SMTP: Datos no aceptados.';
+$PHPMAILER_LANG["connect_host"] = 'Error SMTP: No puedo conectar al servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'No puedo acceder al archivo: ';
+$PHPMAILER_LANG["file_open"] = 'Error de Archivo: No puede abrir el archivo: ';
+$PHPMAILER_LANG["encoding"] = 'Codificación desconocida: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-es.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fr.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fr.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fr.php	(revision 838)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * French Version
+ * bruno@ioda-net.ch 09.08.2003
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Vous devez fournir au moins ' .
+                                     'une adresse de destinataire.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer non supporté.';
+$PHPMAILER_LANG["execute"] = 'Ne peut pas lancer l\'exécution: ';
+$PHPMAILER_LANG["instantiate"] = 'Impossible d\'instancier la fonction mail.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Erreur: Echec de l\'authentification.';
+$PHPMAILER_LANG["from_failed"] = 'L\'adresse From suivante a échoué : ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Erreur: Les destinataires ' .
+                                       'suivants sont en erreur : ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Erreur: Data non acceptée.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Erreur: Impossible de connecter le serveur SMTP .';
+$PHPMAILER_LANG["file_access"] = 'N\'arrive pas à accéder au fichier: ';
+$PHPMAILER_LANG["file_open"] = 'Erreur Fichier: ouverture impossible: ';
+$PHPMAILER_LANG["encoding"] = 'Encodage inconnu: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-fr.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-nl.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-nl.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-nl.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Dutch Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Er moet tenmiste &eacute;&eacute;n ' .
+                                     'ontvanger emailadres opgegeven worden.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer wordt niet ondersteund.';
+$PHPMAILER_LANG["execute"] = 'Kon niet uitvoeren: ';
+$PHPMAILER_LANG["instantiate"] = 'Kon mail functie niet initialiseren.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Fout: authenticatie mislukt.';
+$PHPMAILER_LANG["from_failed"] = 'De volgende afzender adressen zijn mislukt: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Fout: De volgende ' .
+                                       'ontvangers zijn mislukt: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Fout: Data niet geaccepteerd.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Fout: Kon niet verbinden met SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Kreeg geen toegang tot bestand: ';
+$PHPMAILER_LANG["file_open"] = 'Bestandsfout: Kon bestand niet openen: ';
+$PHPMAILER_LANG["encoding"] = 'Onbekende codering: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-nl.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-pl.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-pl.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-pl.php	(revision 838)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Polish Version, encoding: windows-1250
+ * translated from english lang file ver. 1.72
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Nale¿y podaæ prawid³owy adres email Odbiorcy.';
+$PHPMAILER_LANG["mailer_not_supported"] = 'Wybrana metoda wysy³ki wiadomoœci nie jest obs³ugiwana.';
+$PHPMAILER_LANG["execute"] = 'Nie mo¿na uruchomiæ: ';
+$PHPMAILER_LANG["instantiate"] = 'Nie mo¿na wywo³aæ funkcji mail(). SprawdŸ konfiguracjê serwera.';
+$PHPMAILER_LANG["authenticate"] = 'B³¹d SMTP: Nie mo¿na przeprowadziæ autentykacji.';
+$PHPMAILER_LANG["from_failed"] = 'Nastêpuj¹cy adres Nadawcy jest jest nieprawid³owy: ';
+$PHPMAILER_LANG["recipients_failed"] = 'B³¹d SMTP: Nastêpuj¹cy ' .
+                                       'odbiorcy s¹ nieprawid³owi: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'B³¹d SMTP: Dane nie zosta³y przyjête.';
+$PHPMAILER_LANG["connect_host"] = 'B³¹d SMTP: Nie mo¿na po³¹czyæ siê z wybranym hostem.';
+$PHPMAILER_LANG["file_access"] = 'Brak dostêpu do pliku: ';
+$PHPMAILER_LANG["file_open"] = 'Nie mo¿na otworzyæ pliku: ';
+$PHPMAILER_LANG["encoding"] = 'Nieznany sposób kodowania znaków: ';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-pl.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-cz.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-cz.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-cz.php	(revision 838)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Czech Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Musíte zadat alespoò jednu ' .
+                                     'emailovou adresu pøíjemce.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailový klient není podporován.';
+$PHPMAILER_LANG["execute"] = 'Nelze provést: ';
+$PHPMAILER_LANG["instantiate"] = 'Nelze vytvoøit instanci emailové funkce.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Chyba autentikace.';
+$PHPMAILER_LANG["from_failed"] = 'Následující adresa From je nesprávná: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: Adresy pøíjemcù ' .
+                                       'nejsou správné ' .
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data nebyla pøijata';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Nelze navázat spojení se ' .
+                                  ' SMTP serverem.';
+$PHPMAILER_LANG["file_access"] = 'Soubor nenalezen: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Nelze otevøít soubor pro ètení: ';
+$PHPMAILER_LANG["encoding"] = 'Neznámé kódování: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-cz.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-hu.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-hu.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-hu.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Hungarian Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Meg kell adnod legalább egy ' .
+                                     'címzett email címet.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' levelezõ nem támogatott.';
+$PHPMAILER_LANG["execute"] = 'Nem tudtam végrehajtani: ';
+$PHPMAILER_LANG["instantiate"] = 'Nem sikerült példányosítani a mail funkciót.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Hiba: Sikertelen autentikáció.';
+$PHPMAILER_LANG["from_failed"] = 'Az alábbi Feladó cím hibás: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Hiba: Az alábbi ' .
+                                       'címzettek hibásak: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Hiba: Nem elfogadható adat.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Hiba: Nem tudtam csatlakozni az SMTP host-hoz.';
+$PHPMAILER_LANG["file_access"] = 'Nem sikerült elérni a következõ fájlt: ';
+$PHPMAILER_LANG["file_open"] = 'Fájl Hiba: Nem sikerült megnyitni a következõ fájlt: ';
+$PHPMAILER_LANG["encoding"] = 'Ismeretlen kódolás: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-hu.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-it.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-it.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-it.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+/**
+* PHPMailer language file.
+* Italian version
+* @package PHPMailer
+* @author Ilias Bartolini <brain79@inwind.it>
+*/
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Deve essere fornito almeno un'.
+                                     ' indirizzo ricevente';
+$PHPMAILER_LANG["mailer_not_supported"] = 'Mailer non supportato';
+$PHPMAILER_LANG["execute"] = "Impossibile eseguire l'operazione: ";
+$PHPMAILER_LANG["instantiate"] = 'Impossibile istanziare la funzione mail';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Impossibile autenticarsi.';
+$PHPMAILER_LANG["from_failed"] = 'I seguenti indirizzi mittenti hanno'.
+                                 ' generato errore: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: I seguenti indirizzi'.
+                                       'destinatari hanno generato errore: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data non accettati dal'.
+                                       'server.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Impossibile connettersi'.
+                                  ' all\'host SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Impossibile accedere al file: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Impossibile aprire il file: ';
+$PHPMAILER_LANG["encoding"] = 'Encoding set dei caratteri sconosciuto: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-it.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-no.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-no.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-no.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Norwegian Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du må ha med minst en' .
+                                     'mottager adresse.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer er ikke supportert.';
+$PHPMAILER_LANG["execute"] = 'Kunne ikke utføre: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunne ikke instantiate mail funksjonen.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Feil: Kunne ikke authentisere.';
+$PHPMAILER_LANG["from_failed"] = 'Følgende Fra feilet: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Feil: Følgende' .
+                                       'mottagere feilet: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Feil: Data ble ikke akseptert.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Feil: Kunne ikke koble til SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Kunne ikke få tilgang til filen: ';
+$PHPMAILER_LANG["file_open"] = 'Fil feil: Kunne ikke åpne filen: ';
+$PHPMAILER_LANG["encoding"] = 'Ukjent encoding: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-no.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ro.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ro.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ro.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Romanian Version
+ * @package PHPMailer
+ * @author Catalin Constantin <catalin@dazoot.ro>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer nu este suportat.';
+$PHPMAILER_LANG["execute"] = 'Nu pot executa:  ';
+$PHPMAILER_LANG["instantiate"] = 'Nu am putut instantia functia mail.';
+$PHPMAILER_LANG["authenticate"] = 'Eroare SMTP: Nu a functionat autentificarea.';
+$PHPMAILER_LANG["from_failed"] = 'Urmatoarele adrese From au dat eroare: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Eroare SMTP: Urmatoarele adrese de mail au dat eroare: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Eroare SMTP: Continutul mailului nu a fost acceptat.';
+$PHPMAILER_LANG["connect_host"] = 'Eroare SMTP: Nu m-am putut conecta la adresa SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Nu pot accesa fisierul: ';
+$PHPMAILER_LANG["file_open"] = 'Eroare de fisier: Nu pot deschide fisierul: ';
+$PHPMAILER_LANG["encoding"] = 'Encodare necunoscuta: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ro.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ca.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ca.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ca.php	(revision 838)
@@ -0,0 +1,22 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Catalan Version
+ * By Ivan: web AT microstudi DOT com
+ */
+
+$PHPMAILER_LANG = array(); 
+
+$PHPMAILER_LANG["provide_address"] = 'S\'ha de proveir almenys una adreça d\'email com a destinatari.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer no està suportat';
+$PHPMAILER_LANG["execute"] = 'No es pot executar: ';
+$PHPMAILER_LANG["instantiate"] = 'No s\'ha pogut crear una instància de la funció Mail.';
+$PHPMAILER_LANG["authenticate"] = 'Error SMTP: No s\'hapogut autenticar.';
+$PHPMAILER_LANG["from_failed"] = 'La(s) següent(s) adreces de remitent han fallat: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Error SMTP: Els següents destinataris han fallat: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Error SMTP: Dades no acceptades.';
+$PHPMAILER_LANG["connect_host"] = 'Error SMTP: No es pot connectar al servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'No es pot accedir a l\'arxiu: ';
+$PHPMAILER_LANG["file_open"] = 'Error d\'Arxiu: No es pot obrir l\'arxiu: ';
+$PHPMAILER_LANG["encoding"] = 'Codificació desconeguda: ';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-ca.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-tr.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-tr.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-tr.php	(revision 838)
@@ -0,0 +1,25 @@
+<?php
+/**
+ * PHPMailer dil dosyasý.
+ * Türkçe Versiyonu
+ * ÝZYAZILIM - Elçin Özel - Can Yýlmaz - Mehmet Benlioðlu
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'En az bir tane mail adresi belirtmek zorundasýnýz ' .
+                                     'alýcýnýn email adresi.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailler desteklenmemektedir.';
+$PHPMAILER_LANG["execute"] = 'Çalýþtýrýlamýyor: ';
+$PHPMAILER_LANG["instantiate"] = 'Örnek mail fonksiyonu yaratýlamadý.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Hatasý: Doðrulanamýyor.';
+$PHPMAILER_LANG["from_failed"] = 'Baþarýsýz olan gönderici adresi: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Hatasý:  ' .
+                                       'alýcýlara ulaþmadý: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Hatasý: Veri kabul edilmedi.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Hatasý: SMTP hosta baðlanýlamýyor.';
+$PHPMAILER_LANG["file_access"] = 'Dosyaya eriþilemiyor: ';
+$PHPMAILER_LANG["file_open"] = 'Dosya Hatasý: Dosya açýlamýyor: ';
+$PHPMAILER_LANG["encoding"] = 'Bilinmeyen þifreleme: ';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-tr.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-de.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-de.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-de.php	(revision 838)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * German Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Bitte geben Sie mindestens eine ' .
+                                     'Empf&auml;nger Emailadresse an.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer wird nicht unterst&uuml;tzt.';
+$PHPMAILER_LANG["execute"] = 'Konnte folgenden Befehl nicht ausf&uuml;hren: ';
+$PHPMAILER_LANG["instantiate"] = 'Mail Funktion konnte nicht initialisiert werden.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Fehler: Authentifizierung fehlgeschlagen.';
+$PHPMAILER_LANG["from_failed"] = 'Die folgende Absenderadresse ist nicht korrekt: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Fehler: Die folgenden ' .
+                                       'Empf&auml;nger sind nicht korrekt: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Fehler: Daten werden nicht akzeptiert.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.';
+$PHPMAILER_LANG["file_access"] = 'Zugriff auf folgende Datei fehlgeschlagen: ';
+$PHPMAILER_LANG["file_open"] = 'Datei Fehler: konnte folgende Datei nicht &ouml;ffnen: ';
+$PHPMAILER_LANG["encoding"] = 'Unbekanntes Encoding-Format: ';
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/language/phpmailer.lang-de.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/index.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/phpmailer/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/ChangeLog.txt
===================================================================
--- tags/2.7.0/wb/include/phpmailer/ChangeLog.txt	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/ChangeLog.txt	(revision 838)
@@ -0,0 +1,252 @@
+ChangeLog
+
+Version 2.0.0 (Sun, Dec 02 2007)
+* implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
+* finished all testing, all known bugs corrected, enhancements tested
+- note: designed for PHP4, but will work with PHP5 (not compatible with
+  E_STRICT) ... full PHP5 version of PHPMailer released separately. 
+  PHP5 version will NOT work with PHP4.
+
+Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
+* implements new property to control VERP in class.smtp.php
+  example (requires instantiating class.smtp.php):
+  $mail->do_verp = true;
+* POP-before-SMTP functionality included, thanks to Richard Davey
+  (see class.pop3.php & pop3_before_smtp_test.php for examples)
+* included example showing how to use PHPMailer with GMAIL
+* fixed the missing Cc in SendMail() and Mail()
+
+******************
+A note on sending bulk emails:
+
+If the email you are sending is not personalized, consider using the 
+"undisclosed-recipient:;" strategy. That is, put all of your recipients
+in the Bcc field and set the To field to "undisclosed-recipients:;". 
+It's a lot faster (only one send) and saves quite a bit on resources.
+Contrary to some opinions, this will not get you listed in spam engines -
+it's a legitimate way for you to send emails.
+
+A partial example for use with PHPMailer:
+
+$mail->AddAddress("undisclosed-recipients:;");
+$mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com");
+
+Many email service providers restrict the number of emails that can be sent
+in any given time period. Often that is between 50 - 60 emails maximum
+per hour or per send session.
+
+If that's the case, then break up your Bcc lists into chunks that are one
+less than your limit, and put a pause in your script.
+*******************
+
+Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
+* dramatically simplified using inline graphics ... it's fully automated and requires no user input
+* added automatic document type detection for attachments and pictures
+* added MsgHTML() function to replace Body tag for HTML emails
+* fixed the SendMail security issues (input validation vulnerability)
+* enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
+* removed the need to use the AltBody method (set from the HTML, or default text used)
+* set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
+* removed the need to set the IsHTML property (set automatically)
+* added Estonian language file by Indrek P&auml;ri
+* added header injection patch
+* added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
+  example of use:
+  $mail->set('X-Priority', '3');
+  $mail->set('X-MSMail-Priority', 'Normal');
+* fixed warning message in SMTP get_lines method
+* added TLS/SSL SMTP support
+  example of use:
+  $mail = new PHPMailer();
+	$mail->Mailer = "smtp";
+	$mail->Host = "smtp.example.com";
+	$mail->SMTPSecure   = "tls"; // option
+	//$mail->SMTPSecure   = "ssl";  // option
+	...
+  $mail->Send();
+* PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
+* Works with PHP installed as a module or as CGI-PHP
+- NOTE: will NOT work with PHP5 in E_STRICT error mode
+
+Version 1.73 (Sun, Jun 10 2005)
+* Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
+* Now has a total of 20 translations
+* Fixed alt attachments bug: http://tinyurl.com/98u9k
+
+Version 1.72 (Wed, May 25 2004)
+* Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
+* Received: Removed this method because spam filter programs like 
+SpamAssassin reject this header.
+* Fixed error count bug.
+* SetLanguage default is now "language/".
+* Fixed magic_quotes_runtime bug.
+
+Version 1.71 (Tue, Jul 28 2003)
+* Made several speed enhancements
+* Added German and Italian translation files
+* Fixed HELO/AUTH bugs on keep-alive connects
+* Now provides an error message if language file does not load
+* Fixed attachment EOL bug
+* Updated some unclear documentation
+* Added additional tests and improved others
+
+Version 1.70 (Mon, Jun 20 2003)
+* Added SMTP keep-alive support
+* Added IsError method for error detection
+* Added error message translation support (SetLanguage)
+* Refactored many methods to increase library performance
+* Hello now sends the newer EHLO message before HELO as per RFC 2821
+* Removed the boundary class and replaced it with GetBoundary
+* Removed queue support methods
+* New $Hostname variable
+* New Message-ID header
+* Received header reformat
+* Helo variable default changed to $Hostname
+* Removed extra spaces in Content-Type definition (#667182)
+* Return-Path should be set to Sender when set
+* Adds Q or B encoding to headers when necessary
+* quoted-encoding should now encode NULs \000
+* Fixed encoding of body/AltBody (#553370)
+* Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
+* Multiple bug fixes
+
+Version 1.65 (Fri, Aug 09 2002)
+* Fixed non-visible attachment bug (#585097) for Outlook
+* SMTP connections are now closed after each transaction
+* Fixed SMTP::Expand return value
+* Converted SMTP class documentation to phpDocumentor format
+
+Version 1.62 (Wed, Jun 26 2002)
+* Fixed multi-attach bug
+* Set proper word wrapping
+* Reduced memory use with attachments
+* Added more debugging
+* Changed documentation to phpDocumentor format
+
+Version 1.60 (Sat, Mar 30 2002)
+* Sendmail pipe and address patch (Christian Holtje)
+* Added embedded image and read confirmation support (A. Ognio)
+* Added unit tests
+* Added SMTP timeout support (*nix only)
+* Added possibly temporary PluginDir variable for SMTP class
+* Added LE message line ending variable
+* Refactored boundary and attachment code
+* Eliminated SMTP class warnings
+* Added SendToQueue method for future queuing support
+
+Version 1.54 (Wed, Dec 19 2001)
+* Add some queuing support code
+* Fixed a pesky multi/alt bug
+* Messages are no longer forced to have "To" addresses
+
+Version 1.50 (Thu, Nov 08 2001)
+* Fix extra lines when not using SMTP mailer
+* Set WordWrap variable to int with a zero default
+
+Version 1.47 (Tue, Oct 16 2001)
+* Fixed Received header code format
+* Fixed AltBody order error
+* Fixed alternate port warning
+
+Version 1.45 (Tue, Sep 25 2001)
+* Added enhanced SMTP debug support
+* Added support for multiple ports on SMTP
+* Added Received header for tracing
+* Fixed AddStringAttachment encoding
+* Fixed possible header name quote bug
+* Fixed wordwrap() trim bug
+* Couple other small bug fixes
+
+Version 1.41 (Wed, Aug 22 2001)
+* Fixed AltBody bug w/o attachments
+* Fixed rfc_date() for certain mail servers
+
+Version 1.40 (Sun, Aug 12 2001)
+* Added multipart/alternative support (AltBody)
+* Documentation update
+* Fixed bug in Mercury MTA
+
+Version 1.29 (Fri, Aug 03 2001)
+* Added AddStringAttachment() method
+* Added SMTP authentication support
+
+Version 1.28 (Mon, Jul 30 2001)
+* Fixed a typo in SMTP class
+* Fixed header issue with Imail (win32) SMTP server
+* Made fopen() calls for attachments use "rb" to fix win32 error
+
+Version 1.25 (Mon, Jul 02 2001)
+* Added RFC 822 date fix (Patrice)
+* Added improved error handling by adding a $ErrorInfo variable
+* Removed MailerDebug variable (obsolete with new error handler)
+
+Version 1.20 (Mon, Jun 25 2001)
+* Added quoted-printable encoding (Patrice)
+* Set Version as public and removed PrintVersion()
+* Changed phpdoc to only display public variables and methods
+
+Version 1.19 (Thu, Jun 21 2001)
+* Fixed MS Mail header bug
+* Added fix for Bcc problem with mail(). *Does not work on Win32*
+  (See PHP bug report: http://www.php.net/bugs.php?id=11616)
+* mail() no longer passes a fifth parameter when not needed
+
+Version 1.15 (Fri, Jun 15 2001)
+[Note: these changes contributed by Patrice Fournier]
+* Changed all remaining \n to \r\n
+* Bcc: header no longer writen to message except
+when sent directly to sendmail
+* Added a small message to non-MIME compliant mail reader
+* Added Sender variable to change the Sender email
+used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
+* Changed boundary setting to a place it will be set only once
+* Removed transfer encoding for whole message when using multipart
+* Message body now uses Encoding in multipart messages
+* Can set encoding and type to attachments 7bit, 8bit
+and binary attachment are sent as is, base64 are encoded
+* Can set Encoding to base64 to send 8 bits body
+through 7 bits servers
+
+Version 1.10 (Tue, Jun 12 2001)
+* Fixed win32 mail header bug (printed out headers in message body)
+
+Version 1.09 (Fri, Jun 08 2001)
+* Changed date header to work with Netscape mail programs
+* Altered phpdoc documentation
+
+Version 1.08 (Tue, Jun 05 2001)
+* Added enhanced error-checking
+* Added phpdoc documentation to source
+
+Version 1.06 (Fri, Jun 01 2001)
+* Added optional name for file attachments
+
+Version 1.05 (Tue, May 29 2001)
+* Code cleanup
+* Eliminated sendmail header warning message
+* Fixed possible SMTP error
+
+Version 1.03 (Thu, May 24 2001)
+* Fixed problem where qmail sends out duplicate messages
+
+Version 1.02 (Wed, May 23 2001)
+* Added multiple recipient and attachment Clear* methods
+* Added Sendmail public variable
+* Fixed problem with loading SMTP library multiple times
+
+Version 0.98 (Tue, May 22 2001)
+* Fixed problem with redundant mail hosts sending out multiple messages
+* Added additional error handler code
+* Added AddCustomHeader() function
+* Added support for Microsoft mail client headers (affects priority)
+* Fixed small bug with Mailer variable
+* Added PrintVersion() function
+
+Version 0.92 (Tue, May 15 2001)
+* Changed file names to class.phpmailer.php and class.smtp.php to match
+  current PHP class trend.
+* Fixed problem where body not being printed when a message is attached
+* Several small bug fixes
+
+Version 0.90 (Tue, April 17 2001)
+* Intial public release

Property changes on: tags/2.7.0/wb/include/phpmailer/ChangeLog.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/class.phpmailer.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/class.phpmailer.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/class.phpmailer.php	(revision 838)
@@ -0,0 +1,1718 @@
+<?php
+/*~ class.phpmailer.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.0 rc3                                                      |
+|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
+|      Info: http://phpmailer.sourceforge.net                               |
+|   Support: http://sourceforge.net/projects/phpmailer/                     |
+| ------------------------------------------------------------------------- |
+|    Author: Andy Prevost (project admininistrator)                         |
+|    Author: Brent R. Matzelle (original founder)                           |
+| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
+| Copyright (c) 2001-2003, Brent R. Matzelle                                |
+| ------------------------------------------------------------------------- |
+|   License: Distributed under the Lesser General Public License (LGPL)     |
+|            http://www.gnu.org/copyleft/lesser.html                        |
+| This program is distributed in the hope that it will be useful - WITHOUT  |
+| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
+| FITNESS FOR A PARTICULAR PURPOSE.                                         |
+| ------------------------------------------------------------------------- |
+| We offer a number of paid services (www.codeworxtech.com):                |
+| - Web Hosting on highly optimized fast and secure servers                 |
+| - Technology Consulting                                                   |
+| - Oursourcing (highly qualified programmers and graphic designers)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * PHPMailer - PHP email transport class
+ * @package PHPMailer
+ * @author Andy Prevost
+ * @copyright 2004 - 2007 Andy Prevost
+ */
+
+class PHPMailer {
+
+  /////////////////////////////////////////////////
+  // PROPERTIES, PUBLIC
+  /////////////////////////////////////////////////
+
+  /**
+   * Email priority (1 = High, 3 = Normal, 5 = low).
+   * @var int
+   */
+  var $Priority          = 3;
+
+  /**
+   * Sets the CharSet of the message.
+   * @var string
+   */
+  var $CharSet           = 'iso-8859-1';
+
+  /**
+   * Sets the Content-type of the message.
+   * @var string
+   */
+  var $ContentType        = 'text/plain';
+
+  /**
+   * Sets the Encoding of the message. Options for this are "8bit",
+   * "7bit", "binary", "base64", and "quoted-printable".
+   * @var string
+   */
+  var $Encoding          = '8bit';
+
+  /**
+   * Holds the most recent mailer error message.
+   * @var string
+   */
+  var $ErrorInfo         = '';
+
+  /**
+   * Sets the From email address for the message.
+   * @var string
+   */
+  var $From              = 'root@localhost';
+
+  /**
+   * Sets the From name of the message.
+   * @var string
+   */
+  var $FromName          = 'Root User';
+
+  /**
+   * Sets the Sender email (Return-Path) of the message.  If not empty,
+   * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
+   * @var string
+   */
+  var $Sender            = '';
+
+  /**
+   * Sets the Subject of the message.
+   * @var string
+   */
+  var $Subject           = '';
+
+  /**
+   * Sets the Body of the message.  This can be either an HTML or text body.
+   * If HTML then run IsHTML(true).
+   * @var string
+   */
+  var $Body              = '';
+
+  /**
+   * Sets the text-only body of the message.  This automatically sets the
+   * email to multipart/alternative.  This body can be read by mail
+   * clients that do not have HTML email capability such as mutt. Clients
+   * that can read HTML will view the normal Body.
+   * @var string
+   */
+  var $AltBody           = '';
+
+  /**
+   * Sets word wrapping on the body of the message to a given number of
+   * characters.
+   * @var int
+   */
+  var $WordWrap          = 0;
+
+  /**
+   * Method to send mail: ("mail", "sendmail", or "smtp").
+   * @var string
+   */
+  var $Mailer            = 'mail';
+
+  /**
+   * Sets the path of the sendmail program.
+   * @var string
+   */
+  var $Sendmail          = '/usr/sbin/sendmail';
+
+  /**
+   * Path to PHPMailer plugins.  This is now only useful if the SMTP class
+   * is in a different directory than the PHP include path.
+   * @var string
+   */
+  var $PluginDir         = '';
+
+  /**
+   * Holds PHPMailer version.
+   * @var string
+   */
+  var $Version           = "2.0.0 rc3";
+
+  /**
+   * Sets the email address that a reading confirmation will be sent.
+   * @var string
+   */
+  var $ConfirmReadingTo  = '';
+
+  /**
+   * Sets the hostname to use in Message-Id and Received headers
+   * and as default HELO string. If empty, the value returned
+   * by SERVER_NAME is used or 'localhost.localdomain'.
+   * @var string
+   */
+  var $Hostname          = '';
+
+  /////////////////////////////////////////////////
+  // PROPERTIES FOR SMTP
+  /////////////////////////////////////////////////
+
+  /**
+   * Sets the SMTP hosts.  All hosts must be separated by a
+   * semicolon.  You can also specify a different port
+   * for each host by using this format: [hostname:port]
+   * (e.g. "smtp1.example.com:25;smtp2.example.com").
+   * Hosts will be tried in order.
+   * @var string
+   */
+  var $Host        = 'localhost';
+
+  /**
+   * Sets the default SMTP server port.
+   * @var int
+   */
+  var $Port        = 25;
+
+  /**
+   * Sets the SMTP HELO of the message (Default is $Hostname).
+   * @var string
+   */
+  var $Helo        = '';
+
+  /**
+   * Sets connection prefix.
+   * Options are "", "ssl" or "tls"
+   * @var string
+   */
+  var $SMTPSecure = "";
+
+  /**
+   * Sets SMTP authentication. Utilizes the Username and Password variables.
+   * @var bool
+   */
+  var $SMTPAuth     = false;
+
+  /**
+   * Sets SMTP username.
+   * @var string
+   */
+  var $Username     = '';
+
+  /**
+   * Sets SMTP password.
+   * @var string
+   */
+  var $Password     = '';
+
+  /**
+   * Sets the SMTP server timeout in seconds. This function will not
+   * work with the win32 version.
+   * @var int
+   */
+  var $Timeout      = 10;
+
+  /**
+   * Sets SMTP class debugging on or off.
+   * @var bool
+   */
+  var $SMTPDebug    = false;
+
+  /**
+   * Prevents the SMTP connection from being closed after each mail
+   * sending.  If this is set to true then to close the connection
+   * requires an explicit call to SmtpClose().
+   * @var bool
+   */
+  var $SMTPKeepAlive = false;
+
+  /**
+   * Provides the ability to have the TO field process individual
+   * emails, instead of sending to entire TO addresses
+   * @var bool
+   */
+  var $SingleTo = false;
+
+  /////////////////////////////////////////////////
+  // PROPERTIES, PRIVATE
+  /////////////////////////////////////////////////
+
+  var $smtp            = NULL;
+  var $to              = array();
+  var $cc              = array();
+  var $bcc             = array();
+  var $ReplyTo         = array();
+  var $attachment      = array();
+  var $CustomHeader    = array();
+  var $message_type    = '';
+  var $boundary        = array();
+  var $language        = array();
+  var $error_count     = 0;
+  var $LE              = "\n";
+
+  /////////////////////////////////////////////////
+  // METHODS, VARIABLES
+  /////////////////////////////////////////////////
+
+  /**
+   * Sets message type to HTML.
+   * @param bool $bool
+   * @return void
+   */
+  function IsHTML($bool) {
+    if($bool == true) {
+      $this->ContentType = 'text/html';
+    } else {
+      $this->ContentType = 'text/plain';
+    }
+  }
+
+  /**
+   * Sets Mailer to send message using SMTP.
+   * @return void
+   */
+  function IsSMTP() {
+    $this->Mailer = 'smtp';
+  }
+
+  /**
+   * Sets Mailer to send message using PHP mail() function.
+   * @return void
+   */
+  function IsMail() {
+    $this->Mailer = 'mail';
+  }
+
+  /**
+   * Sets Mailer to send message using the $Sendmail program.
+   * @return void
+   */
+  function IsSendmail() {
+    $this->Mailer = 'sendmail';
+  }
+
+  /**
+   * Sets Mailer to send message using the qmail MTA.
+   * @return void
+   */
+  function IsQmail() {
+    $this->Sendmail = '/var/qmail/bin/sendmail';
+    $this->Mailer = 'sendmail';
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, RECIPIENTS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds a "To" address.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddAddress($address, $name = '') {
+    $cur = count($this->to);
+    $this->to[$cur][0] = trim($address);
+    $this->to[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Cc" address. Note: this function works
+   * with the SMTP mailer on win32, not with the "mail"
+   * mailer.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddCC($address, $name = '') {
+    $cur = count($this->cc);
+    $this->cc[$cur][0] = trim($address);
+    $this->cc[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Bcc" address. Note: this function works
+   * with the SMTP mailer on win32, not with the "mail"
+   * mailer.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddBCC($address, $name = '') {
+    $cur = count($this->bcc);
+    $this->bcc[$cur][0] = trim($address);
+    $this->bcc[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Reply-To" address.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddReplyTo($address, $name = '') {
+    $cur = count($this->ReplyTo);
+    $this->ReplyTo[$cur][0] = trim($address);
+    $this->ReplyTo[$cur][1] = $name;
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, MAIL SENDING
+  /////////////////////////////////////////////////
+
+  /**
+   * Creates message and assigns Mailer. If the message is
+   * not sent successfully then it returns false.  Use the ErrorInfo
+   * variable to view description of the error.
+   * @return bool
+   */
+  function Send() {
+    $header = '';
+    $body = '';
+    $result = true;
+
+    if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
+      $this->SetError($this->Lang('provide_address'));
+      return false;
+    }
+
+    /* Set whether the message is multipart/alternative */
+    if(!empty($this->AltBody)) {
+      $this->ContentType = 'multipart/alternative';
+    }
+
+    $this->error_count = 0; // reset errors
+    $this->SetMessageType();
+    $header .= $this->CreateHeader();
+    $body = $this->CreateBody();
+
+    if($body == '') {
+      return false;
+    }
+
+    /* Choose the mailer */
+    switch($this->Mailer) {
+      case 'sendmail':
+        $result = $this->SendmailSend($header, $body);
+        break;
+      case 'smtp':
+        $result = $this->SmtpSend($header, $body);
+        break;
+      case 'mail':
+        $result = $this->MailSend($header, $body);
+        break;
+      default:
+        $result = $this->MailSend($header, $body);
+        break;
+        //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));
+        //$result = false;
+        //break;
+    }
+
+    return $result;
+  }
+
+  /**
+   * Sends mail using the $Sendmail program.
+   * @access private
+   * @return bool
+   */
+  function SendmailSend($header, $body) {
+    if ($this->Sender != '') {
+      $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
+    } else {
+      $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail));
+    }
+
+    if(!@$mail = popen($sendmail, 'w')) {
+      $this->SetError($this->Lang('execute') . $this->Sendmail);
+      return false;
+    }
+
+    fputs($mail, $header);
+    fputs($mail, $body);
+
+    $result = pclose($mail) >> 8 & 0xFF;
+    if($result != 0) {
+      $this->SetError($this->Lang('execute') . $this->Sendmail);
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends mail using the PHP mail() function.
+   * @access private
+   * @return bool
+   */
+  function MailSend($header, $body) {
+
+    $to = '';
+    for($i = 0; $i < count($this->to); $i++) {
+      if($i != 0) { $to .= ', '; }
+      $to .= $this->AddrFormat($this->to[$i]);
+    }
+
+    $toArr = split(',', $to);
+
+    if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1) {
+      $old_from = ini_get('sendmail_from');
+      ini_set('sendmail_from', $this->Sender);
+      $params = sprintf("-oi -f %s", $this->Sender);
+      if ($this->SingleTo === true && count($toArr) > 1) {
+        foreach ($toArr as $key => $val) {
+          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+        }
+      } else {
+        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+      }
+    } else {
+      if ($this->SingleTo === true && count($toArr) > 1) {
+        foreach ($toArr as $key => $val) {
+          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+        }
+      } else {
+        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
+      }
+    }
+
+    if (isset($old_from)) {
+      ini_set('sendmail_from', $old_from);
+    }
+
+    if(!$rt) {
+      $this->SetError($this->Lang('instantiate'));
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends mail via SMTP using PhpSMTP (Author:
+   * Chris Ryan).  Returns bool.  Returns false if there is a
+   * bad MAIL FROM, RCPT, or DATA input.
+   * @access private
+   * @return bool
+   */
+  function SmtpSend($header, $body) {
+    include_once($this->PluginDir . 'class.smtp.php');
+    $error = '';
+    $bad_rcpt = array();
+
+    if(!$this->SmtpConnect()) {
+      return false;
+    }
+
+    $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender;
+    if(!$this->smtp->Mail($smtp_from)) {
+      $error = $this->Lang('from_failed') . $smtp_from;
+      $this->SetError($error);
+      $this->smtp->Reset();
+      return false;
+    }
+
+    /* Attempt to send attach all recipients */
+    for($i = 0; $i < count($this->to); $i++) {
+      if(!$this->smtp->Recipient($this->to[$i][0])) {
+        $bad_rcpt[] = $this->to[$i][0];
+      }
+    }
+    for($i = 0; $i < count($this->cc); $i++) {
+      if(!$this->smtp->Recipient($this->cc[$i][0])) {
+        $bad_rcpt[] = $this->cc[$i][0];
+      }
+    }
+    for($i = 0; $i < count($this->bcc); $i++) {
+      if(!$this->smtp->Recipient($this->bcc[$i][0])) {
+        $bad_rcpt[] = $this->bcc[$i][0];
+      }
+    }
+
+    if(count($bad_rcpt) > 0) { // Create error message
+      for($i = 0; $i < count($bad_rcpt); $i++) {
+        if($i != 0) {
+          $error .= ', ';
+        }
+        $error .= $bad_rcpt[$i];
+      }
+      $error = $this->Lang('recipients_failed') . $error;
+      $this->SetError($error);
+      $this->smtp->Reset();
+      return false;
+    }
+
+    if(!$this->smtp->Data($header . $body)) {
+      $this->SetError($this->Lang('data_not_accepted'));
+      $this->smtp->Reset();
+      return false;
+    }
+    if($this->SMTPKeepAlive == true) {
+      $this->smtp->Reset();
+    } else {
+      $this->SmtpClose();
+    }
+
+    return true;
+  }
+
+  /**
+   * Initiates a connection to an SMTP server.  Returns false if the
+   * operation failed.
+   * @access private
+   * @return bool
+   */
+  function SmtpConnect() {
+    if($this->smtp == NULL) {
+      $this->smtp = new SMTP();
+    }
+
+    $this->smtp->do_debug = $this->SMTPDebug;
+    $hosts = explode(';', $this->Host);
+    $index = 0;
+    $connection = ($this->smtp->Connected());
+
+    /* Retry while there is no connection */
+    while($index < count($hosts) && $connection == false) {
+      $hostinfo = array();
+      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {
+        $host = $hostinfo[1];
+        $port = $hostinfo[2];
+      } else {
+        $host = $hosts[$index];
+        $port = $this->Port;
+      }
+
+      if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) {
+        if ($this->Helo != '') {
+          $this->smtp->Hello($this->Helo);
+        } else {
+          $this->smtp->Hello($this->ServerHostname());
+        }
+
+        $connection = true;
+        if($this->SMTPAuth) {
+          if(!$this->smtp->Authenticate($this->Username, $this->Password)) {
+            $this->SetError($this->Lang('authenticate'));
+            $this->smtp->Reset();
+            $connection = false;
+          }
+        }
+      }
+      $index++;
+    }
+    if(!$connection) {
+      $this->SetError($this->Lang('connect_host'));
+    }
+
+    return $connection;
+  }
+
+  /**
+   * Closes the active SMTP session if one exists.
+   * @return void
+   */
+  function SmtpClose() {
+    if($this->smtp != NULL) {
+      if($this->smtp->Connected()) {
+        $this->smtp->Quit();
+        $this->smtp->Close();
+      }
+    }
+  }
+
+  /**
+   * Sets the language for all class error messages.  Returns false
+   * if it cannot load the language file.  The default language type
+   * is English.
+   * @param string $lang_type Type of language (e.g. Portuguese: "br")
+   * @param string $lang_path Path to the language file directory
+   * @access public
+   * @return bool
+   */
+  function SetLanguage($lang_type, $lang_path = 'language/') {
+    if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) {
+      include($lang_path.'phpmailer.lang-'.$lang_type.'.php');
+    } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) {
+      include($lang_path.'phpmailer.lang-en.php');
+    } else {
+      $this->SetError('Could not load language file');
+      return false;
+    }
+    $this->language = $PHPMAILER_LANG;
+
+    return true;
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, MESSAGE CREATION
+  /////////////////////////////////////////////////
+
+  /**
+   * Creates recipient headers.
+   * @access private
+   * @return string
+   */
+  function AddrAppend($type, $addr) {
+    $addr_str = $type . ': ';
+    $addr_str .= $this->AddrFormat($addr[0]);
+    if(count($addr) > 1) {
+      for($i = 1; $i < count($addr); $i++) {
+        $addr_str .= ', ' . $this->AddrFormat($addr[$i]);
+      }
+    }
+    $addr_str .= $this->LE;
+
+    return $addr_str;
+  }
+
+  /**
+   * Formats an address correctly.
+   * @access private
+   * @return string
+   */
+  function AddrFormat($addr) {
+    if(empty($addr[1])) {
+      $formatted = $this->SecureHeader($addr[0]);
+    } else {
+      $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">";
+    }
+
+    return $formatted;
+  }
+
+  /**
+   * Wraps message for use with mailers that do not
+   * automatically perform wrapping and for quoted-printable.
+   * Original written by philippe.
+   * @access private
+   * @return string
+   */
+  function WrapText($message, $length, $qp_mode = false) {
+    $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
+
+    $message = $this->FixEOL($message);
+    if (substr($message, -1) == $this->LE) {
+      $message = substr($message, 0, -1);
+    }
+
+    $line = explode($this->LE, $message);
+    $message = '';
+    for ($i=0 ;$i < count($line); $i++) {
+      $line_part = explode(' ', $line[$i]);
+      $buf = '';
+      for ($e = 0; $e<count($line_part); $e++) {
+        $word = $line_part[$e];
+        if ($qp_mode and (strlen($word) > $length)) {
+          $space_left = $length - strlen($buf) - 1;
+          if ($e != 0) {
+            if ($space_left > 20) {
+              $len = $space_left;
+              if (substr($word, $len - 1, 1) == '=') {
+                $len--;
+              } elseif (substr($word, $len - 2, 1) == '=') {
+                $len -= 2;
+              }
+              $part = substr($word, 0, $len);
+              $word = substr($word, $len);
+              $buf .= ' ' . $part;
+              $message .= $buf . sprintf("=%s", $this->LE);
+            } else {
+              $message .= $buf . $soft_break;
+            }
+            $buf = '';
+          }
+          while (strlen($word) > 0) {
+            $len = $length;
+            if (substr($word, $len - 1, 1) == '=') {
+              $len--;
+            } elseif (substr($word, $len - 2, 1) == '=') {
+              $len -= 2;
+            }
+            $part = substr($word, 0, $len);
+            $word = substr($word, $len);
+
+            if (strlen($word) > 0) {
+              $message .= $part . sprintf("=%s", $this->LE);
+            } else {
+              $buf = $part;
+            }
+          }
+        } else {
+          $buf_o = $buf;
+          $buf .= ($e == 0) ? $word : (' ' . $word);
+
+          if (strlen($buf) > $length and $buf_o != '') {
+            $message .= $buf_o . $soft_break;
+            $buf = $word;
+          }
+        }
+      }
+      $message .= $buf . $this->LE;
+    }
+
+    return $message;
+  }
+
+  /**
+   * Set the body wrapping.
+   * @access private
+   * @return void
+   */
+  function SetWordWrap() {
+    if($this->WordWrap < 1) {
+      return;
+    }
+
+    switch($this->message_type) {
+      case 'alt':
+        /* fall through */
+      case 'alt_attachments':
+        $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap);
+        break;
+      default:
+        $this->Body = $this->WrapText($this->Body, $this->WordWrap);
+        break;
+    }
+  }
+
+  /**
+   * Assembles message header.
+   * @access private
+   * @return string
+   */
+  function CreateHeader() {
+    $result = '';
+
+    /* Set the boundaries */
+    $uniq_id = md5(uniqid(time()));
+    $this->boundary[1] = 'b1_' . $uniq_id;
+    $this->boundary[2] = 'b2_' . $uniq_id;
+
+    $result .= $this->HeaderLine('Date', $this->RFCDate());
+    if($this->Sender == '') {
+      $result .= $this->HeaderLine('Return-Path', trim($this->From));
+    } else {
+      $result .= $this->HeaderLine('Return-Path', trim($this->Sender));
+    }
+
+    /* To be created automatically by mail() */
+    if($this->Mailer != 'mail') {
+      if(count($this->to) > 0) {
+        $result .= $this->AddrAppend('To', $this->to);
+      } elseif (count($this->cc) == 0) {
+        $result .= $this->HeaderLine('To', 'undisclosed-recipients:;');
+      }
+      if(count($this->cc) > 0) {
+        $result .= $this->AddrAppend('Cc', $this->cc);
+      }
+    }
+
+    $from = array();
+    $from[0][0] = trim($this->From);
+    $from[0][1] = $this->FromName;
+    $result .= $this->AddrAppend('From', $from);
+
+    /* sendmail and mail() extract Cc from the header before sending */
+    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) {
+      $result .= $this->AddrAppend('Cc', $this->cc);
+    }
+
+    /* sendmail and mail() extract Bcc from the header before sending */
+    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) {
+      $result .= $this->AddrAppend('Bcc', $this->bcc);
+    }
+
+    if(count($this->ReplyTo) > 0) {
+      $result .= $this->AddrAppend('Reply-To', $this->ReplyTo);
+    }
+
+    /* mail() sets the subject itself */
+    if($this->Mailer != 'mail') {
+      $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject)));
+    }
+
+    $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE);
+    $result .= $this->HeaderLine('X-Priority', $this->Priority);
+    $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']');
+
+    if($this->ConfirmReadingTo != '') {
+      $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>');
+    }
+
+    // Add custom headers
+    for($index = 0; $index < count($this->CustomHeader); $index++) {
+      $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1])));
+    }
+    $result .= $this->HeaderLine('MIME-Version', '1.0');
+
+    switch($this->message_type) {
+      case 'plain':
+        $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding);
+        $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet);
+        break;
+      case 'attachments':
+        /* fall through */
+      case 'alt_attachments':
+        if($this->InlineImageExists()){
+          $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE);
+        } else {
+          $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;');
+          $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+        }
+        break;
+      case 'alt':
+        $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;');
+        $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+        break;
+    }
+
+    if($this->Mailer != 'mail') {
+      $result .= $this->LE.$this->LE;
+    }
+
+    return $result;
+  }
+
+  /**
+   * Assembles the message body.  Returns an empty string on failure.
+   * @access private
+   * @return string
+   */
+  function CreateBody() {
+    $result = '';
+
+    $this->SetWordWrap();
+
+    switch($this->message_type) {
+      case 'alt':
+        $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', '');
+        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', '');
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->EndBoundary($this->boundary[1]);
+        break;
+      case 'plain':
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        break;
+      case 'attachments':
+        $result .= $this->GetBoundary($this->boundary[1], '', '', '');
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE;
+        $result .= $this->AttachAll();
+        break;
+      case 'alt_attachments':
+        $result .= sprintf("--%s%s", $this->boundary[1], $this->LE);
+        $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE);
+        $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body
+        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->EndBoundary($this->boundary[2]);
+        $result .= $this->AttachAll();
+        break;
+    }
+    if($this->IsError()) {
+      $result = '';
+    }
+
+    return $result;
+  }
+
+  /**
+   * Returns the start of a message boundary.
+   * @access private
+   */
+  function GetBoundary($boundary, $charSet, $contentType, $encoding) {
+    $result = '';
+    if($charSet == '') {
+      $charSet = $this->CharSet;
+    }
+    if($contentType == '') {
+      $contentType = $this->ContentType;
+    }
+    if($encoding == '') {
+      $encoding = $this->Encoding;
+    }
+    $result .= $this->TextLine('--' . $boundary);
+    $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet);
+    $result .= $this->LE;
+    $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding);
+    $result .= $this->LE;
+
+    return $result;
+  }
+
+  /**
+   * Returns the end of a message boundary.
+   * @access private
+   */
+  function EndBoundary($boundary) {
+    return $this->LE . '--' . $boundary . '--' . $this->LE;
+  }
+
+  /**
+   * Sets the message type.
+   * @access private
+   * @return void
+   */
+  function SetMessageType() {
+    if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) {
+      $this->message_type = 'plain';
+    } else {
+      if(count($this->attachment) > 0) {
+        $this->message_type = 'attachments';
+      }
+      if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) {
+        $this->message_type = 'alt';
+      }
+      if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) {
+        $this->message_type = 'alt_attachments';
+      }
+    }
+  }
+
+  /* Returns a formatted header line.
+   * @access private
+   * @return string
+   */
+  function HeaderLine($name, $value) {
+    return $name . ': ' . $value . $this->LE;
+  }
+
+  /**
+   * Returns a formatted mail line.
+   * @access private
+   * @return string
+   */
+  function TextLine($value) {
+    return $value . $this->LE;
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, ATTACHMENTS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds an attachment from a path on the filesystem.
+   * Returns false if the file could not be found
+   * or accessed.
+   * @param string $path Path to the attachment.
+   * @param string $name Overrides the attachment name.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return bool
+   */
+  function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
+    if(!@is_file($path)) {
+      $this->SetError($this->Lang('file_access') . $path);
+      return false;
+    }
+
+    $filename = basename($path);
+    if($name == '') {
+      $name = $filename;
+    }
+
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $path;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $name;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = false; // isStringAttachment
+    $this->attachment[$cur][6] = 'attachment';
+    $this->attachment[$cur][7] = 0;
+
+    return true;
+  }
+
+  /**
+   * Attaches all fs, string, and binary attachments to the message.
+   * Returns an empty string on failure.
+   * @access private
+   * @return string
+   */
+  function AttachAll() {
+    /* Return text of body */
+    $mime = array();
+
+    /* Add all attachments */
+    for($i = 0; $i < count($this->attachment); $i++) {
+      /* Check for string attachment */
+      $bString = $this->attachment[$i][5];
+      if ($bString) {
+        $string = $this->attachment[$i][0];
+      } else {
+        $path = $this->attachment[$i][0];
+      }
+
+      $filename    = $this->attachment[$i][1];
+      $name        = $this->attachment[$i][2];
+      $encoding    = $this->attachment[$i][3];
+      $type        = $this->attachment[$i][4];
+      $disposition = $this->attachment[$i][6];
+      $cid         = $this->attachment[$i][7];
+
+      $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE);
+      $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE);
+      $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
+
+      if($disposition == 'inline') {
+        $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
+      }
+
+      $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE);
+
+      /* Encode as string attachment */
+      if($bString) {
+        $mime[] = $this->EncodeString($string, $encoding);
+        if($this->IsError()) {
+          return '';
+        }
+        $mime[] = $this->LE.$this->LE;
+      } else {
+        $mime[] = $this->EncodeFile($path, $encoding);
+        if($this->IsError()) {
+          return '';
+        }
+        $mime[] = $this->LE.$this->LE;
+      }
+    }
+
+    $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE);
+
+    return join('', $mime);
+  }
+
+  /**
+   * Encodes attachment in requested format.  Returns an
+   * empty string on failure.
+   * @access private
+   * @return string
+   */
+  function EncodeFile ($path, $encoding = 'base64') {
+    if(!@$fd = fopen($path, 'rb')) {
+      $this->SetError($this->Lang('file_open') . $path);
+      return '';
+    }
+    $magic_quotes = get_magic_quotes_runtime();
+    set_magic_quotes_runtime(0);
+    $file_buffer = fread($fd, filesize($path));
+    $file_buffer = $this->EncodeString($file_buffer, $encoding);
+    fclose($fd);
+    set_magic_quotes_runtime($magic_quotes);
+
+    return $file_buffer;
+  }
+
+  /**
+   * Encodes string to requested format. Returns an
+   * empty string on failure.
+   * @access private
+   * @return string
+   */
+  function EncodeString ($str, $encoding = 'base64') {
+    $encoded = '';
+    switch(strtolower($encoding)) {
+      case 'base64':
+        /* chunk_split is found in PHP >= 3.0.6 */
+        $encoded = chunk_split(base64_encode($str), 76, $this->LE);
+        break;
+      case '7bit':
+      case '8bit':
+        $encoded = $this->FixEOL($str);
+        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+          $encoded .= $this->LE;
+        break;
+      case 'binary':
+        $encoded = $str;
+        break;
+      case 'quoted-printable':
+        $encoded = $this->EncodeQP($str);
+        break;
+      default:
+        $this->SetError($this->Lang('encoding') . $encoding);
+        break;
+    }
+    return $encoded;
+  }
+
+  /**
+   * Encode a header string to best of Q, B, quoted or none.
+   * @access private
+   * @return string
+   */
+  function EncodeHeader ($str, $position = 'text') {
+    $x = 0;
+
+    switch (strtolower($position)) {
+      case 'phrase':
+        if (!preg_match('/[\200-\377]/', $str)) {
+          /* Can't use addslashes as we don't know what value has magic_quotes_sybase. */
+          $encoded = addcslashes($str, "\0..\37\177\\\"");
+          if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
+            return ($encoded);
+          } else {
+            return ("\"$encoded\"");
+          }
+        }
+        $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
+        break;
+      case 'comment':
+        $x = preg_match_all('/[()"]/', $str, $matches);
+        /* Fall-through */
+      case 'text':
+      default:
+        $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
+        break;
+    }
+
+    if ($x == 0) {
+      return ($str);
+    }
+
+    $maxlen = 75 - 7 - strlen($this->CharSet);
+    /* Try to select the encoding which should produce the shortest output */
+    if (strlen($str)/3 < $x) {
+      $encoding = 'B';
+      $encoded = base64_encode($str);
+      $maxlen -= $maxlen % 4;
+      $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
+    } else {
+      $encoding = 'Q';
+      $encoded = $this->EncodeQ($str, $position);
+      $encoded = $this->WrapText($encoded, $maxlen, true);
+      $encoded = str_replace('='.$this->LE, "\n", trim($encoded));
+    }
+
+    $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded);
+    $encoded = trim(str_replace("\n", $this->LE, $encoded));
+
+    return $encoded;
+  }
+
+  /**
+   * Encode string to quoted-printable.
+   * @access private
+   * @return string
+   */
+  function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) {
+    $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
+    $lines = preg_split('/(?:\r\n|\r|\n)/', $input);
+    $eol = "\r\n";
+    $escape = '=';
+    $output = '';
+    while( list(, $line) = each($lines) ) {
+      $linlen = strlen($line);
+      $newline = '';
+      for($i = 0; $i < $linlen; $i++) {
+        $c = substr( $line, $i, 1 );
+        $dec = ord( $c );
+        if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E
+          $c = '=2E';
+        }
+        if ( $dec == 32 ) {
+          if ( $i == ( $linlen - 1 ) ) { // convert space at eol only
+            $c = '=20';
+          } else if ( $space_conv ) {
+            $c = '=20';
+          }
+        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
+          $h2 = floor($dec/16);
+          $h1 = floor($dec%16);
+          $c = $escape.$hex[$h2].$hex[$h1];
+        }
+        if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
+          $output .= $newline.$escape.$eol; //  soft line break; " =\r\n" is okay
+          $newline = '';
+          // check if newline first character will be point or not
+          if ( $dec == 46 ) {
+            $c = '=2E';
+          }
+        }
+        $newline .= $c;
+      } // end of for
+      $output .= $newline.$eol;
+    } // end of while
+    return trim($output);
+  }
+
+  /**
+   * Encode string to q encoding.
+   * @access private
+   * @return string
+   */
+  function EncodeQ ($str, $position = 'text') {
+    /* There should not be any EOL in the string */
+    $encoded = preg_replace("[\r\n]", '', $str);
+
+    switch (strtolower($position)) {
+      case 'phrase':
+        $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        break;
+      case 'comment':
+        $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+      case 'text':
+      default:
+        /* Replace every high ascii, control =, ? and _ characters */
+        $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
+              "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        break;
+    }
+
+    /* Replace every spaces to _ (more readable than =20) */
+    $encoded = str_replace(' ', '_', $encoded);
+
+    return $encoded;
+  }
+
+  /**
+   * Adds a string or binary attachment (non-filesystem) to the list.
+   * This method can be used to attach ascii or binary data,
+   * such as a BLOB record from a database.
+   * @param string $string String attachment data.
+   * @param string $filename Name of the attachment.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return void
+   */
+  function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {
+    /* Append to $attachment array */
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $string;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $filename;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = true; // isString
+    $this->attachment[$cur][6] = 'attachment';
+    $this->attachment[$cur][7] = 0;
+  }
+
+  /**
+   * Adds an embedded attachment.  This can include images, sounds, and
+   * just about any other document.  Make sure to set the $type to an
+   * image type.  For JPEG images use "image/jpeg" and for GIF images
+   * use "image/gif".
+   * @param string $path Path to the attachment.
+   * @param string $cid Content ID of the attachment.  Use this to identify
+   *        the Id for accessing the image in an HTML form.
+   * @param string $name Overrides the attachment name.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return bool
+   */
+  function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
+
+    if(!@is_file($path)) {
+      $this->SetError($this->Lang('file_access') . $path);
+      return false;
+    }
+
+    $filename = basename($path);
+    if($name == '') {
+      $name = $filename;
+    }
+
+    /* Append to $attachment array */
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $path;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $name;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = false;
+    $this->attachment[$cur][6] = 'inline';
+    $this->attachment[$cur][7] = $cid;
+
+    return true;
+  }
+
+  /**
+   * Returns true if an inline attachment is present.
+   * @access private
+   * @return bool
+   */
+  function InlineImageExists() {
+    $result = false;
+    for($i = 0; $i < count($this->attachment); $i++) {
+      if($this->attachment[$i][6] == 'inline') {
+        $result = true;
+        break;
+      }
+    }
+
+    return $result;
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, MESSAGE RESET
+  /////////////////////////////////////////////////
+
+  /**
+   * Clears all recipients assigned in the TO array.  Returns void.
+   * @return void
+   */
+  function ClearAddresses() {
+    $this->to = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the CC array.  Returns void.
+   * @return void
+   */
+  function ClearCCs() {
+    $this->cc = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the BCC array.  Returns void.
+   * @return void
+   */
+  function ClearBCCs() {
+    $this->bcc = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the ReplyTo array.  Returns void.
+   * @return void
+   */
+  function ClearReplyTos() {
+    $this->ReplyTo = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the TO, CC and BCC
+   * array.  Returns void.
+   * @return void
+   */
+  function ClearAllRecipients() {
+    $this->to = array();
+    $this->cc = array();
+    $this->bcc = array();
+  }
+
+  /**
+   * Clears all previously set filesystem, string, and binary
+   * attachments.  Returns void.
+   * @return void
+   */
+  function ClearAttachments() {
+    $this->attachment = array();
+  }
+
+  /**
+   * Clears all custom headers.  Returns void.
+   * @return void
+   */
+  function ClearCustomHeaders() {
+    $this->CustomHeader = array();
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, MISCELLANEOUS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds the error message to the error container.
+   * Returns void.
+   * @access private
+   * @return void
+   */
+  function SetError($msg) {
+    $this->error_count++;
+    $this->ErrorInfo = $msg;
+  }
+
+  /**
+   * Returns the proper RFC 822 formatted date.
+   * @access private
+   * @return string
+   */
+  function RFCDate() {
+    $tz = date('Z');
+    $tzs = ($tz < 0) ? '-' : '+';
+    $tz = abs($tz);
+    $tz = (int)($tz/3600)*100 + ($tz%3600)/60;
+    $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz);
+
+    return $result;
+  }
+
+  /**
+   * Returns the appropriate server variable.  Should work with both
+   * PHP 4.1.0+ as well as older versions.  Returns an empty string
+   * if nothing is found.
+   * @access private
+   * @return mixed
+   */
+  function ServerVar($varName) {
+    global $HTTP_SERVER_VARS;
+    global $HTTP_ENV_VARS;
+
+    if(!isset($_SERVER)) {
+      $_SERVER = $HTTP_SERVER_VARS;
+      if(!isset($_SERVER['REMOTE_ADDR'])) {
+        $_SERVER = $HTTP_ENV_VARS; // must be Apache
+      }
+    }
+
+    if(isset($_SERVER[$varName])) {
+      return $_SERVER[$varName];
+    } else {
+      return '';
+    }
+  }
+
+  /**
+   * Returns the server hostname or 'localhost.localdomain' if unknown.
+   * @access private
+   * @return string
+   */
+  function ServerHostname() {
+    if ($this->Hostname != '') {
+      $result = $this->Hostname;
+    } elseif ($this->ServerVar('SERVER_NAME') != '') {
+      $result = $this->ServerVar('SERVER_NAME');
+    } else {
+      $result = 'localhost.localdomain';
+    }
+
+    return $result;
+  }
+
+  /**
+   * Returns a message in the appropriate language.
+   * @access private
+   * @return string
+   */
+  function Lang($key) {
+    if(count($this->language) < 1) {
+      $this->SetLanguage('en'); // set the default language
+    }
+
+    if(isset($this->language[$key])) {
+      return $this->language[$key];
+    } else {
+      return 'Language string failed to load: ' . $key;
+    }
+  }
+
+  /**
+   * Returns true if an error occurred.
+   * @return bool
+   */
+  function IsError() {
+    return ($this->error_count > 0);
+  }
+
+  /**
+   * Changes every end of line from CR or LF to CRLF.
+   * @access private
+   * @return string
+   */
+  function FixEOL($str) {
+    $str = str_replace("\r\n", "\n", $str);
+    $str = str_replace("\r", "\n", $str);
+    $str = str_replace("\n", $this->LE, $str);
+    return $str;
+  }
+
+  /**
+   * Adds a custom header.
+   * @return void
+   */
+  function AddCustomHeader($custom_header) {
+    $this->CustomHeader[] = explode(':', $custom_header, 2);
+  }
+
+  /**
+   * Evaluates the message and returns modifications for inline images and backgrounds
+   * @access public
+   * @return $message
+   */
+  function MsgHTML($message) {
+    preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images);
+    if(isset($images[2])) {
+      foreach($images[2] as $i => $url) {
+        $filename  = basename($url);
+        $directory = dirname($url);
+        $cid       = 'cid:' . md5($filename);
+        $fileParts = split("\.", $filename);
+        $ext       = $fileParts[1];
+        $mimeType  = $this->_mime_types($ext);
+        $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message);
+        $this->AddEmbeddedImage($url, md5($filename), $filename, 'base64', $mimeType);
+      }
+    }
+    $this->IsHTML(true);
+    $this->Body = $message;
+    $textMsg = trim(strip_tags($message));
+    if ( !empty($textMsg) && empty($this->AltBody) ) {
+      $this->AltBody = $textMsg;
+    }
+    if ( empty($this->AltBody) ) {
+      $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n";
+    }
+  }
+
+  /**
+   * Gets the mime type of the embedded or inline image
+   * @access private
+   * @return mime type of ext
+   */
+  function _mime_types($ext = '') {
+    $mimes = array(
+      'hqx'  =>  'application/mac-binhex40',
+      'cpt'   =>  'application/mac-compactpro',
+      'doc'   =>  'application/msword',
+      'bin'   =>  'application/macbinary',
+      'dms'   =>  'application/octet-stream',
+      'lha'   =>  'application/octet-stream',
+      'lzh'   =>  'application/octet-stream',
+      'exe'   =>  'application/octet-stream',
+      'class' =>  'application/octet-stream',
+      'psd'   =>  'application/octet-stream',
+      'so'    =>  'application/octet-stream',
+      'sea'   =>  'application/octet-stream',
+      'dll'   =>  'application/octet-stream',
+      'oda'   =>  'application/oda',
+      'pdf'   =>  'application/pdf',
+      'ai'    =>  'application/postscript',
+      'eps'   =>  'application/postscript',
+      'ps'    =>  'application/postscript',
+      'smi'   =>  'application/smil',
+      'smil'  =>  'application/smil',
+      'mif'   =>  'application/vnd.mif',
+      'xls'   =>  'application/vnd.ms-excel',
+      'ppt'   =>  'application/vnd.ms-powerpoint',
+      'wbxml' =>  'application/vnd.wap.wbxml',
+      'wmlc'  =>  'application/vnd.wap.wmlc',
+      'dcr'   =>  'application/x-director',
+      'dir'   =>  'application/x-director',
+      'dxr'   =>  'application/x-director',
+      'dvi'   =>  'application/x-dvi',
+      'gtar'  =>  'application/x-gtar',
+      'php'   =>  'application/x-httpd-php',
+      'php4'  =>  'application/x-httpd-php',
+      'php3'  =>  'application/x-httpd-php',
+      'phtml' =>  'application/x-httpd-php',
+      'phps'  =>  'application/x-httpd-php-source',
+      'js'    =>  'application/x-javascript',
+      'swf'   =>  'application/x-shockwave-flash',
+      'sit'   =>  'application/x-stuffit',
+      'tar'   =>  'application/x-tar',
+      'tgz'   =>  'application/x-tar',
+      'xhtml' =>  'application/xhtml+xml',
+      'xht'   =>  'application/xhtml+xml',
+      'zip'   =>  'application/zip',
+      'mid'   =>  'audio/midi',
+      'midi'  =>  'audio/midi',
+      'mpga'  =>  'audio/mpeg',
+      'mp2'   =>  'audio/mpeg',
+      'mp3'   =>  'audio/mpeg',
+      'aif'   =>  'audio/x-aiff',
+      'aiff'  =>  'audio/x-aiff',
+      'aifc'  =>  'audio/x-aiff',
+      'ram'   =>  'audio/x-pn-realaudio',
+      'rm'    =>  'audio/x-pn-realaudio',
+      'rpm'   =>  'audio/x-pn-realaudio-plugin',
+      'ra'    =>  'audio/x-realaudio',
+      'rv'    =>  'video/vnd.rn-realvideo',
+      'wav'   =>  'audio/x-wav',
+      'bmp'   =>  'image/bmp',
+      'gif'   =>  'image/gif',
+      'jpeg'  =>  'image/jpeg',
+      'jpg'   =>  'image/jpeg',
+      'jpe'   =>  'image/jpeg',
+      'png'   =>  'image/png',
+      'tiff'  =>  'image/tiff',
+      'tif'   =>  'image/tiff',
+      'css'   =>  'text/css',
+      'html'  =>  'text/html',
+      'htm'   =>  'text/html',
+      'shtml' =>  'text/html',
+      'txt'   =>  'text/plain',
+      'text'  =>  'text/plain',
+      'log'   =>  'text/plain',
+      'rtx'   =>  'text/richtext',
+      'rtf'   =>  'text/rtf',
+      'xml'   =>  'text/xml',
+      'xsl'   =>  'text/xml',
+      'mpeg'  =>  'video/mpeg',
+      'mpg'   =>  'video/mpeg',
+      'mpe'   =>  'video/mpeg',
+      'qt'    =>  'video/quicktime',
+      'mov'   =>  'video/quicktime',
+      'avi'   =>  'video/x-msvideo',
+      'movie' =>  'video/x-sgi-movie',
+      'doc'   =>  'application/msword',
+      'word'  =>  'application/msword',
+      'xl'    =>  'application/excel',
+      'eml'   =>  'message/rfc822'
+    );
+    return ( ! isset($mimes[strtolower($ext)])) ? 'application/x-unknown-content-type' : $mimes[strtolower($ext)];
+  }
+
+  /**
+   * Set (or reset) Class Objects (variables)
+   *
+   * Usage Example:
+   * $page->set('X-Priority', '3');
+   *
+   * @access public
+   * @param string $name Parameter Name
+   * @param mixed $value Parameter Value
+   * NOTE: will not work with arrays, there are no arrays to set/reset
+   */
+  function set ( $name, $value = '' ) {
+    if ( isset($this->$name) ) {
+      $this->$name = $value;
+    } else {
+      $this->SetError('Cannot set or reset variable ' . $name);
+      return false;
+    }
+  }
+
+  /**
+   * Read a file from a supplied filename and return it.
+   *
+   * @access public
+   * @param string $filename Parameter File Name
+   */
+  function getFile($filename) {
+    $return = '';
+    if ($fp = fopen($filename, 'rb')) {
+      while (!feof($fp)) {
+        $return .= fread($fp, 1024);
+      }
+      fclose($fp);
+      return $return;
+    } else {
+      return false;
+    }
+  }
+
+  /**
+   * Strips newlines to prevent header injection.
+   * @access private
+   * @param string $str String
+   * @return string
+   */
+  function SecureHeader($str) {
+    $str = trim($str);
+    $str = str_replace("\r", "", $str);
+    $str = str_replace("\n", "", $str);
+    return $str;
+  }
+
+}
+
+?>

Property changes on: tags/2.7.0/wb/include/phpmailer/class.phpmailer.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/README
===================================================================
--- tags/2.7.0/wb/include/phpmailer/README	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/README	(revision 838)
@@ -0,0 +1,121 @@
+PHPMailer
+Full Featured Email Transfer Class for PHP
+==========================================
+
+** NOTE:
+
+As of November 2007, PHPMailer has a new project team headed by industry
+veteran Andy Prevost (codeworxtech). The first release in more than two
+years will focus on fixes, adding ease-of-use enhancements, provide
+basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility
+features. A new release is planned before year-end 2007 that will provide
+full compatiblity with PHP4 and PHP5, as well as more bug fixes.
+
+We are looking for project developers to assist in restoring PHPMailer to
+its leadership position. Our goals are to simplify use of PHPMailer, provide
+good documentation and examples, and retain backward compatibility to level
+1.7.3 standards.
+
+If you are interested in helping out, visit http://sourceforge.net/phpmailer 
+and indicate your interest.
+
+**
+
+http://phpmailer.sourceforge.net/
+
+This software is licenced under the LGPL.  Please read LICENSE for information on the
+software availability and distribution.
+
+Class Features:
+- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
+- Redundant SMTP servers
+- Multipart/alternative emails for mail clients that do not read HTML email
+- Support for 8bit, base64, binary, and quoted-printable encoding
+- Uses the same methods as the very popular AspEmail active server (COM) component
+- SMTP authentication
+- Native language support
+- Word wrap, and more!
+
+Why you might need it:
+
+Many PHP developers utilize email in their code.  The only PHP function
+that supports this is the mail() function.  However, it does not expose
+any of the popular features that many email clients use nowadays like
+HTML-based emails and attachments. There are two proprietary
+development tools out there that have all the functionality built into
+easy to use classes: AspEmail(tm) and AspMail.  Both of these
+programs are COM components only available on Windows.  They are also a
+little pricey for smaller projects.
+
+Since I do Linux development I’ve missed these tools for my PHP coding.
+So I built a version myself that implements the same methods (object
+calls) that the Windows-based components do. It is open source and the
+LGPL license allows you to place the class in your proprietary PHP
+projects.
+
+
+Installation:
+
+Copy class.phpmailer.php into your php.ini include_path. If you are
+using the SMTP mailer then place class.smtp.php in your path as well.
+In the language directory you will find several files like 
+phpmailer.lang-en.php.  If you look right before the .php extension 
+that there are two letters.  These represent the language type of the 
+translation file.  For instance "en" is the English file and "br" is 
+the Portuguese file.  Chose the file that best fits with your language 
+and place it in the PHP include path.  If your language is English 
+then you have nothing more to do.  If it is a different language then 
+you must point PHPMailer to the correct translation.  To do this, call 
+the PHPMailer SetLanguage method like so:
+
+// To load the Portuguese version
+$mail->SetLanguage("br", "/optional/path/to/language/directory/");
+
+That's it.  You should now be ready to use PHPMailer!
+
+
+A Simple Example:
+
+<?php
+require("class.phpmailer.php");
+
+$mail = new PHPMailer();
+
+$mail->IsSMTP();                                      // set mailer to use SMTP
+$mail->Host = "smtp1.example.com;smtp2.example.com";  // specify main and backup server
+$mail->SMTPAuth = true;     // turn on SMTP authentication
+$mail->Username = "jswan";  // SMTP username
+$mail->Password = "secret"; // SMTP password
+
+$mail->From = "from@example.com";
+$mail->FromName = "Mailer";
+$mail->AddAddress("josh@example.net", "Josh Adams");
+$mail->AddAddress("ellen@example.com");                  // name is optional
+$mail->AddReplyTo("info@example.com", "Information");
+
+$mail->WordWrap = 50;                                 // set word wrap to 50 characters
+$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
+$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
+$mail->IsHTML(true);                                  // set email format to HTML
+
+$mail->Subject = "Here is the subject";
+$mail->Body    = "This is the HTML message body <b>in bold!</b>";
+$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
+
+if(!$mail->Send())
+{
+   echo "Message could not be sent. <p>";
+   echo "Mailer Error: " . $mail->ErrorInfo;
+   exit;
+}
+
+echo "Message has been sent";
+?>
+
+CHANGELOG
+
+See ChangeLog.txt
+
+Download: http://sourceforge.net/project/showfiles.php?group_id=26031
+
+Andy Prevost

Property changes on: tags/2.7.0/wb/include/phpmailer/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/class.smtp.php
===================================================================
--- tags/2.7.0/wb/include/phpmailer/class.smtp.php	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/class.smtp.php	(revision 838)
@@ -0,0 +1,1062 @@
+<?php
+/*~ class.smtp.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.0 rc1                                                      |
+|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
+|      Info: http://phpmailer.sourceforge.net                               |
+|   Support: http://sourceforge.net/projects/phpmailer/                     |
+| ------------------------------------------------------------------------- |
+|    Author: Andy Prevost (project admininistrator)                         |
+|    Author: Brent R. Matzelle (original founder)                           |
+| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
+| Copyright (c) 2001-2003, Brent R. Matzelle                                |
+| ------------------------------------------------------------------------- |
+|   License: Distributed under the Lesser General Public License (LGPL)     |
+|            http://www.gnu.org/copyleft/lesser.html                        |
+| This program is distributed in the hope that it will be useful - WITHOUT  |
+| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
+| FITNESS FOR A PARTICULAR PURPOSE.                                         |
+| ------------------------------------------------------------------------- |
+| We offer a number of paid services (www.codeworxtech.com):                |
+| - Web Hosting on highly optimized fast and secure servers                 |
+| - Technology Consulting                                                   |
+| - Oursourcing (highly qualified programmers and graphic designers)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
+ * commands except TURN which will always return a not implemented
+ * error. SMTP also provides some utility methods for sending mail
+ * to an SMTP server.
+ * @package PHPMailer
+ * @author Chris Ryan
+ */
+
+class SMTP
+{
+  /**
+   *  SMTP server port
+   *  @var int
+   */
+  var $SMTP_PORT = 25;
+
+  /**
+   *  SMTP reply line ending
+   *  @var string
+   */
+  var $CRLF = "\r\n";
+
+  /**
+   *  Sets whether debugging is turned on
+   *  @var bool
+   */
+  var $do_debug;       # the level of debug to perform
+
+  /**
+   *  Sets VERP use on/off (default is off)
+   *  @var bool
+   */
+  var $do_verp = false;
+
+  /**#@+
+   * @access private
+   */
+  var $smtp_conn;      # the socket to the server
+  var $error;          # error if any on the last call
+  var $helo_rply;      # the reply the server sent to us for HELO
+  /**#@-*/
+
+  /**
+   * Initialize the class so that the data is in a known state.
+   * @access public
+   * @return void
+   */
+  function SMTP() {
+    $this->smtp_conn = 0;
+    $this->error = null;
+    $this->helo_rply = null;
+
+    $this->do_debug = 0;
+  }
+
+  /*************************************************************
+   *                    CONNECTION FUNCTIONS                  *
+   ***********************************************************/
+
+  /**
+   * Connect to the server specified on the port specified.
+   * If the port is not specified use the default SMTP_PORT.
+   * If tval is specified then a connection will try and be
+   * established with the server for that number of seconds.
+   * If tval is not specified the default is 30 seconds to
+   * try on the connection.
+   *
+   * SMTP CODE SUCCESS: 220
+   * SMTP CODE FAILURE: 421
+   * @access public
+   * @return bool
+   */
+  function Connect($host,$port=0,$tval=30) {
+    # set the error val to null so there is no confusion
+    $this->error = null;
+
+    # make sure we are __not__ connected
+    if($this->connected()) {
+      # ok we are connected! what should we do?
+      # for now we will just give an error saying we
+      # are already connected
+      $this->error = array("error" => "Already connected to a server");
+      return false;
+    }
+
+    if(empty($port)) {
+      $port = $this->SMTP_PORT;
+    }
+
+    #connect to the smtp server
+    $this->smtp_conn = fsockopen($host,    # the host of the server
+                                 $port,    # the port to use
+                                 $errno,   # error number if any
+                                 $errstr,  # error message if any
+                                 $tval);   # give up after ? secs
+    # verify we connected properly
+    if(empty($this->smtp_conn)) {
+      $this->error = array("error" => "Failed to connect to server",
+                           "errno" => $errno,
+                           "errstr" => $errstr);
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": $errstr ($errno)" . $this->CRLF;
+      }
+      return false;
+    }
+
+    # sometimes the SMTP server takes a little longer to respond
+    # so we will give it a longer timeout for the first read
+    // Windows still does not have support for this timeout function
+    if(substr(PHP_OS, 0, 3) != "WIN")
+     socket_set_timeout($this->smtp_conn, $tval, 0);
+
+    # get any announcement stuff
+    $announce = $this->get_lines();
+
+    # set the timeout  of any socket functions at 1/10 of a second
+    //if(function_exists("socket_set_timeout"))
+    //   socket_set_timeout($this->smtp_conn, 0, 100000);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
+    }
+
+    return true;
+  }
+
+  /**
+   * Performs SMTP authentication.  Must be run after running the
+   * Hello() method.  Returns true if successfully authenticated.
+   * @access public
+   * @return bool
+   */
+  function Authenticate($username, $password) {
+    // Start authentication
+    fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 334) {
+      $this->error =
+        array("error" => "AUTH not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    // Send encoded username
+    fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 334) {
+      $this->error =
+        array("error" => "Username not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    // Send encoded password
+    fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 235) {
+      $this->error =
+        array("error" => "Password not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Returns true if connected to a server otherwise false
+   * @access private
+   * @return bool
+   */
+  function Connected() {
+    if(!empty($this->smtp_conn)) {
+      $sock_status = socket_get_status($this->smtp_conn);
+      if($sock_status["eof"]) {
+        # hmm this is an odd situation... the socket is
+        # valid but we are not connected anymore
+        if($this->do_debug >= 1) {
+            echo "SMTP -> NOTICE:" . $this->CRLF .
+                 "EOF caught while checking if connected";
+        }
+        $this->Close();
+        return false;
+      }
+      return true; # everything looks good
+    }
+    return false;
+  }
+
+  /**
+   * Closes the socket and cleans up the state of the class.
+   * It is not considered good to use this function without
+   * first trying to use QUIT.
+   * @access public
+   * @return void
+   */
+  function Close() {
+    $this->error = null; # so there is no confusion
+    $this->helo_rply = null;
+    if(!empty($this->smtp_conn)) {
+      # close the connection and cleanup
+      fclose($this->smtp_conn);
+      $this->smtp_conn = 0;
+    }
+  }
+
+  /***************************************************************
+   *                        SMTP COMMANDS                       *
+   *************************************************************/
+
+  /**
+   * Issues a data command and sends the msg_data to the server
+   * finializing the mail transaction. $msg_data is the message
+   * that is to be send with the headers. Each header needs to be
+   * on a single line followed by a <CRLF> with the message headers
+   * and the message body being seperated by and additional <CRLF>.
+   *
+   * Implements rfc 821: DATA <CRLF>
+   *
+   * SMTP CODE INTERMEDIATE: 354
+   *     [data]
+   *     <CRLF>.<CRLF>
+   *     SMTP CODE SUCCESS: 250
+   *     SMTP CODE FAILURE: 552,554,451,452
+   * SMTP CODE FAILURE: 451,554
+   * SMTP CODE ERROR  : 500,501,503,421
+   * @access public
+   * @return bool
+   */
+  function Data($msg_data) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Data() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"DATA" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 354) {
+      $this->error =
+        array("error" => "DATA command not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    # the server is ready to accept data!
+    # according to rfc 821 we should not send more than 1000
+    # including the CRLF
+    # characters on a single line so we will break the data up
+    # into lines by \r and/or \n then if needed we will break
+    # each of those into smaller lines to fit within the limit.
+    # in addition we will be looking for lines that start with
+    # a period '.' and append and additional period '.' to that
+    # line. NOTE: this does not count towards are limit.
+
+    # normalize the line breaks so we know the explode works
+    $msg_data = str_replace("\r\n","\n",$msg_data);
+    $msg_data = str_replace("\r","\n",$msg_data);
+    $lines = explode("\n",$msg_data);
+
+    # we need to find a good way to determine is headers are
+    # in the msg_data or if it is a straight msg body
+    # currently I am assuming rfc 822 definitions of msg headers
+    # and if the first field of the first line (':' sperated)
+    # does not contain a space then it _should_ be a header
+    # and we can process all lines before a blank "" line as
+    # headers.
+    $field = substr($lines[0],0,strpos($lines[0],":"));
+    $in_headers = false;
+    if(!empty($field) && !strstr($field," ")) {
+      $in_headers = true;
+    }
+
+    $max_line_length = 998; # used below; set here for ease in change
+
+    while(list(,$line) = @each($lines)) {
+      $lines_out = null;
+      if($line == "" && $in_headers) {
+        $in_headers = false;
+      }
+      # ok we need to break this line up into several
+      # smaller lines
+      while(strlen($line) > $max_line_length) {
+        $pos = strrpos(substr($line,0,$max_line_length)," ");
+
+        # Patch to fix DOS attack
+        if(!$pos) {
+          $pos = $max_line_length - 1;
+        }
+
+        $lines_out[] = substr($line,0,$pos);
+        $line = substr($line,$pos + 1);
+        # if we are processing headers we need to
+        # add a LWSP-char to the front of the new line
+        # rfc 822 on long msg headers
+        if($in_headers) {
+          $line = "\t" . $line;
+        }
+      }
+      $lines_out[] = $line;
+
+      # now send the lines to the server
+      while(list(,$line_out) = @each($lines_out)) {
+        if(strlen($line_out) > 0)
+        {
+          if(substr($line_out, 0, 1) == ".") {
+            $line_out = "." . $line_out;
+          }
+        }
+        fputs($this->smtp_conn,$line_out . $this->CRLF);
+      }
+    }
+
+    # ok all the message data has been sent so lets get this
+    # over with aleady
+    fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "DATA not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Expand takes the name and asks the server to list all the
+   * people who are members of the _list_. Expand will return
+   * back and array of the result or false if an error occurs.
+   * Each value in the array returned has the format of:
+   *     [ <full-name> <sp> ] <path>
+   * The definition of <path> is defined in rfc 821
+   *
+   * Implements rfc 821: EXPN <SP> <string> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE FAILURE: 550
+   * SMTP CODE ERROR  : 500,501,502,504,421
+   * @access public
+   * @return string array
+   */
+  function Expand($name) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+            "error" => "Called Expand() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "EXPN not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    # parse the reply and place in our array to return to user
+    $entries = explode($this->CRLF,$rply);
+    while(list(,$l) = @each($entries)) {
+      $list[] = substr($l,4);
+    }
+
+    return $list;
+  }
+
+  /**
+   * Sends the HELO command to the smtp server.
+   * This makes sure that we and the server are in
+   * the same known state.
+   *
+   * Implements from rfc 821: HELO <SP> <domain> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500, 501, 504, 421
+   * @access public
+   * @return bool
+   */
+  function Hello($host="") {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+            "error" => "Called Hello() without being connected");
+      return false;
+    }
+
+    # if a hostname for the HELO was not specified determine
+    # a suitable one to send
+    if(empty($host)) {
+      # we need to determine some sort of appopiate default
+      # to send to the server
+      $host = "localhost";
+    }
+
+    // Send extended hello first (RFC 2821)
+    if(!$this->SendHello("EHLO", $host))
+    {
+      if(!$this->SendHello("HELO", $host))
+          return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends a HELO/EHLO command.
+   * @access private
+   * @return bool
+   */
+  function SendHello($hello, $host) {
+    fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => $hello . " not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    $this->helo_rply = $rply;
+
+    return true;
+  }
+
+  /**
+   * Gets help information on the keyword specified. If the keyword
+   * is not specified then returns generic help, ussually contianing
+   * A list of keywords that help is available on. This function
+   * returns the results back to the user. It is up to the user to
+   * handle the returned data. If an error occurs then false is
+   * returned with $this->error set appropiately.
+   *
+   * Implements rfc 821: HELP [ <SP> <string> ] <CRLF>
+   *
+   * SMTP CODE SUCCESS: 211,214
+   * SMTP CODE ERROR  : 500,501,502,504,421
+   * @access public
+   * @return string
+   */
+  function Help($keyword="") {
+    $this->error = null; # to avoid confusion
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Help() without being connected");
+      return false;
+    }
+
+    $extra = "";
+    if(!empty($keyword)) {
+      $extra = " " . $keyword;
+    }
+
+    fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 211 && $code != 214) {
+      $this->error =
+        array("error" => "HELP not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return $rply;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command.
+   *
+   * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,421
+   * @access public
+   * @return bool
+   */
+  function Mail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Mail() without being connected");
+      return false;
+    }
+
+    $useVerp = ($this->do_verp ? "XVERP" : "");
+    fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "MAIL not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the command NOOP to the SMTP server.
+   *
+   * Implements from rfc 821: NOOP <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500, 421
+   * @access public
+   * @return bool
+   */
+  function Noop() {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Noop() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"NOOP" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "NOOP not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the quit command to the server and then closes the socket
+   * if there is no error or the $close_on_error argument is true.
+   *
+   * Implements from rfc 821: QUIT <CRLF>
+   *
+   * SMTP CODE SUCCESS: 221
+   * SMTP CODE ERROR  : 500
+   * @access public
+   * @return bool
+   */
+  function Quit($close_on_error=true) {
+    $this->error = null; # so there is no confusion
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Quit() without being connected");
+      return false;
+    }
+
+    # send the quit command to the server
+    fputs($this->smtp_conn,"quit" . $this->CRLF);
+
+    # get any good-bye messages
+    $byemsg = $this->get_lines();
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
+    }
+
+    $rval = true;
+    $e = null;
+
+    $code = substr($byemsg,0,3);
+    if($code != 221) {
+      # use e as a tmp var cause Close will overwrite $this->error
+      $e = array("error" => "SMTP server rejected quit command",
+                 "smtp_code" => $code,
+                 "smtp_rply" => substr($byemsg,4));
+      $rval = false;
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $e["error"] . ": " .
+                 $byemsg . $this->CRLF;
+      }
+    }
+
+    if(empty($e) || $close_on_error) {
+      $this->Close();
+    }
+
+    return $rval;
+  }
+
+  /**
+   * Sends the command RCPT to the SMTP server with the TO: argument of $to.
+   * Returns true if the recipient was accepted false if it was rejected.
+   *
+   * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250,251
+   * SMTP CODE FAILURE: 550,551,552,553,450,451,452
+   * SMTP CODE ERROR  : 500,501,503,421
+   * @access public
+   * @return bool
+   */
+  function Recipient($to) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Recipient() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250 && $code != 251) {
+      $this->error =
+        array("error" => "RCPT not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the RSET command to abort and transaction that is
+   * currently in progress. Returns true if successful false
+   * otherwise.
+   *
+   * Implements rfc 821: RSET <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500,501,504,421
+   * @access public
+   * @return bool
+   */
+  function Reset() {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Reset() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"RSET" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "RSET failed",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in.
+   *
+   * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function Send($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Send() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SEND not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in and send them an email.
+   *
+   * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function SendAndMail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+          "error" => "Called SendAndMail() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SAML not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in or mail it to them if they are not.
+   *
+   * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function SendOrMail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+          "error" => "Called SendOrMail() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SOML not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * This is an optional command for SMTP that this class does not
+   * support. This method is here to make the RFC821 Definition
+   * complete for this class and __may__ be implimented in the future
+   *
+   * Implements from rfc 821: TURN <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE FAILURE: 502
+   * SMTP CODE ERROR  : 500, 503
+   * @access public
+   * @return bool
+   */
+  function Turn() {
+    $this->error = array("error" => "This method, TURN, of the SMTP ".
+                                    "is not implemented");
+    if($this->do_debug >= 1) {
+      echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
+    }
+    return false;
+  }
+
+  /**
+   * Verifies that the name is recognized by the server.
+   * Returns false if the name could not be verified otherwise
+   * the response from the server is returned.
+   *
+   * Implements rfc 821: VRFY <SP> <string> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250,251
+   * SMTP CODE FAILURE: 550,551,553
+   * SMTP CODE ERROR  : 500,501,502,421
+   * @access public
+   * @return int
+   */
+  function Verify($name) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Verify() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250 && $code != 251) {
+      $this->error =
+        array("error" => "VRFY failed on name '$name'",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return $rply;
+  }
+
+  /*******************************************************************
+   *                       INTERNAL FUNCTIONS                       *
+   ******************************************************************/
+
+  /**
+   * Read in as many lines as possible
+   * either before eof or socket timeout occurs on the operation.
+   * With SMTP we can tell if we have more lines to read if the
+   * 4th character is '-' symbol. If it is a space then we don't
+   * need to read anything else.
+   * @access private
+   * @return string
+   */
+  function get_lines() {
+    $data = "";
+    while($str = @fgets($this->smtp_conn,515)) {
+      if($this->do_debug >= 4) {
+        echo "SMTP -> get_lines(): \$data was \"$data\"" .
+                 $this->CRLF;
+        echo "SMTP -> get_lines(): \$str is \"$str\"" .
+                 $this->CRLF;
+      }
+      $data .= $str;
+      if($this->do_debug >= 4) {
+        echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
+      }
+      # if the 4th character is a space then we are done reading
+      # so just break the loop
+      if(substr($str,3,1) == " ") { break; }
+    }
+    return $data;
+  }
+
+}
+
+
+ ?>

Property changes on: tags/2.7.0/wb/include/phpmailer/class.smtp.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/phpmailer/LICENSE
===================================================================
--- tags/2.7.0/wb/include/phpmailer/LICENSE	(nonexistent)
+++ tags/2.7.0/wb/include/phpmailer/LICENSE	(revision 838)
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+

Property changes on: tags/2.7.0/wb/include/phpmailer/LICENSE
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/connection/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/connection/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/connection/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/connection/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/connection/connection.js
===================================================================
--- tags/2.7.0/wb/include/yui/connection/connection.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/connection/connection.js	(revision 838)
@@ -0,0 +1,1369 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The Connection Manager provides a simplified interface to the XMLHttpRequest
+ * object.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the
+ * interactive states and server response, returning the results to a pre-defined
+ * callback you create.
+ *
+ * @namespace YAHOO.util
+ * @module connection
+ * @requires yahoo
+ * @requires event
+ */
+
+/**
+ * The Connection Manager singleton provides methods for creating and managing
+ * asynchronous transactions.
+ *
+ * @class Connect
+ */
+
+YAHOO.util.Connect =
+{
+  /**
+   * @description Array of MSFT ActiveX ids for XMLHttpRequest.
+   * @property _msxml_progid
+   * @private
+   * @static
+   * @type array
+   */
+	_msxml_progid:[
+		'Microsoft.XMLHTTP',
+		'MSXML2.XMLHTTP.3.0',
+		'MSXML2.XMLHTTP'
+		],
+
+  /**
+   * @description Object literal of HTTP header(s)
+   * @property _http_header
+   * @private
+   * @static
+   * @type object
+   */
+	_http_headers:{},
+
+  /**
+   * @description Determines if HTTP headers are set.
+   * @property _has_http_headers
+   * @private
+   * @static
+   * @type boolean
+   */
+	_has_http_headers:false,
+
+ /**
+  * @description Determines if a default header of
+  * Content-Type of 'application/x-www-form-urlencoded'
+  * will be added to any client HTTP headers sent for POST
+  * transactions.
+  * @property _use_default_post_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _use_default_post_header:true,
+
+ /**
+  * @description The default header used for POST transactions.
+  * @property _default_post_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',
+
+ /**
+  * @description The default header used for transactions involving the
+  * use of HTML forms.
+  * @property _default_form_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_form_header:'application/x-www-form-urlencoded',
+
+ /**
+  * @description Determines if a default header of
+  * 'X-Requested-With: XMLHttpRequest'
+  * will be added to each transaction.
+  * @property _use_default_xhr_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _use_default_xhr_header:true,
+
+ /**
+  * @description The default header value for the label
+  * "X-Requested-With".  This is sent with each
+  * transaction, by default, to identify the
+  * request as being made by YUI Connection Manager.
+  * @property _default_xhr_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_xhr_header:'XMLHttpRequest',
+
+ /**
+  * @description Determines if custom, default headers
+  * are set for each transaction.
+  * @property _has_default_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _has_default_headers:true,
+
+ /**
+  * @description Determines if custom, default headers
+  * are set for each transaction.
+  * @property _has_default_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_headers:{},
+
+ /**
+  * @description Property modified by setForm() to determine if the data
+  * should be submitted as an HTML form.
+  * @property _isFormSubmit
+  * @private
+  * @static
+  * @type boolean
+  */
+    _isFormSubmit:false,
+
+ /**
+  * @description Property modified by setForm() to determine if a file(s)
+  * upload is expected.
+  * @property _isFileUpload
+  * @private
+  * @static
+  * @type boolean
+  */
+    _isFileUpload:false,
+
+ /**
+  * @description Property modified by setForm() to set a reference to the HTML
+  * form node if the desired action is file upload.
+  * @property _formNode
+  * @private
+  * @static
+  * @type object
+  */
+    _formNode:null,
+
+ /**
+  * @description Property modified by setForm() to set the HTML form data
+  * for each transaction.
+  * @property _sFormData
+  * @private
+  * @static
+  * @type string
+  */
+    _sFormData:null,
+
+ /**
+  * @description Collection of polling references to the polling mechanism in handleReadyState.
+  * @property _poll
+  * @private
+  * @static
+  * @type object
+  */
+    _poll:{},
+
+ /**
+  * @description Queue of timeout values for each transaction callback with a defined timeout value.
+  * @property _timeOut
+  * @private
+  * @static
+  * @type object
+  */
+    _timeOut:{},
+
+  /**
+   * @description The polling frequency, in milliseconds, for HandleReadyState.
+   * when attempting to determine a transaction's XHR readyState.
+   * The default is 50 milliseconds.
+   * @property _polling_interval
+   * @private
+   * @static
+   * @type int
+   */
+     _polling_interval:50,
+
+  /**
+   * @description A transaction counter that increments the transaction id for each transaction.
+   * @property _transaction_id
+   * @private
+   * @static
+   * @type int
+   */
+     _transaction_id:0,
+
+  /**
+   * @description Tracks the name-value pair of the "clicked" submit button if multiple submit
+   * buttons are present in an HTML form; and, if YAHOO.util.Event is available.
+   * @property _submitElementValue
+   * @private
+   * @static
+   * @type string
+   */
+	 _submitElementValue:null,
+
+  /**
+   * @description Determines whether YAHOO.util.Event is available and returns true or false.
+   * If true, an event listener is bound at the document level to trap click events that
+   * resolve to a target type of "Submit".  This listener will enable setForm() to determine
+   * the clicked "Submit" value in a multi-Submit button, HTML form.
+   * @property _hasSubmitListener
+   * @private
+   * @static
+   */
+	 _hasSubmitListener:(function()
+	 {
+		if(YAHOO.util.Event){
+			YAHOO.util.Event.addListener(
+				document,
+				'click',
+				function(e){
+					var obj = YAHOO.util.Event.getTarget(e);
+					if(obj.type && obj.type.toLowerCase() == 'submit'){
+						YAHOO.util.Connect._submitElementValue = encodeURIComponent(obj.name) + "=" + encodeURIComponent(obj.value);
+					}
+				});
+			return true;
+	    }
+	    return false;
+	 })(),
+
+  /**
+   * @description Custom event that fires at the start of a transaction
+   * @property startEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	startEvent: new YAHOO.util.CustomEvent('start'),
+
+  /**
+   * @description Custom event that fires when a transaction response has completed.
+   * @property completeEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	completeEvent: new YAHOO.util.CustomEvent('complete'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 2xx range.
+   * @property successEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	successEvent: new YAHOO.util.CustomEvent('success'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 4xx/5xx range.
+   * @property failureEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	failureEvent: new YAHOO.util.CustomEvent('failure'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 4xx/5xx range.
+   * @property failureEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	uploadEvent: new YAHOO.util.CustomEvent('upload'),
+
+  /**
+   * @description Custom event that fires when a transaction is successfully aborted.
+   * @property abortEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	abortEvent: new YAHOO.util.CustomEvent('abort'),
+
+  /**
+   * @description A reference table that maps callback custom events members to its specific
+   * event name.
+   * @property _customEvents
+   * @private
+   * @static
+   * @type object
+   */
+	_customEvents:
+	{
+		onStart:['startEvent', 'start'],
+		onComplete:['completeEvent', 'complete'],
+		onSuccess:['successEvent', 'success'],
+		onFailure:['failureEvent', 'failure'],
+		onUpload:['uploadEvent', 'upload'],
+		onAbort:['abortEvent', 'abort']
+	},
+
+  /**
+   * @description Member to add an ActiveX id to the existing xml_progid array.
+   * In the event(unlikely) a new ActiveX id is introduced, it can be added
+   * without internal code modifications.
+   * @method setProgId
+   * @public
+   * @static
+   * @param {string} id The ActiveX id to be added to initialize the XHR object.
+   * @return void
+   */
+	setProgId:function(id)
+	{
+		this._msxml_progid.unshift(id);
+	},
+
+  /**
+   * @description Member to override the default POST header.
+   * @method setDefaultPostHeader
+   * @public
+   * @static
+   * @param {boolean} b Set and use default header - true or false .
+   * @return void
+   */
+	setDefaultPostHeader:function(b)
+	{
+		if(typeof b == 'string'){
+			this._default_post_header = b;
+		}
+		else if(typeof b == 'boolean'){
+			this._use_default_post_header = b;
+		}
+	},
+
+  /**
+   * @description Member to override the default transaction header..
+   * @method setDefaultXhrHeader
+   * @public
+   * @static
+   * @param {boolean} b Set and use default header - true or false .
+   * @return void
+   */
+	setDefaultXhrHeader:function(b)
+	{
+		if(typeof b == 'string'){
+			this._default_xhr_header = b;
+		}
+		else{
+			this._use_default_xhr_header = b;
+		}
+	},
+
+  /**
+   * @description Member to modify the default polling interval.
+   * @method setPollingInterval
+   * @public
+   * @static
+   * @param {int} i The polling interval in milliseconds.
+   * @return void
+   */
+	setPollingInterval:function(i)
+	{
+		if(typeof i == 'number' && isFinite(i)){
+			this._polling_interval = i;
+		}
+	},
+
+  /**
+   * @description Instantiates a XMLHttpRequest object and returns an object with two properties:
+   * the XMLHttpRequest instance and the transaction id.
+   * @method createXhrObject
+   * @private
+   * @static
+   * @param {int} transactionId Property containing the transaction id for this transaction.
+   * @return object
+   */
+	createXhrObject:function(transactionId)
+	{
+		var obj,http;
+		try
+		{
+			// Instantiates XMLHttpRequest in non-IE browsers and assigns to http.
+			http = new XMLHttpRequest();
+			//  Object literal with http and tId properties
+			obj = { conn:http, tId:transactionId };
+		}
+		catch(e)
+		{
+			for(var i=0; i<this._msxml_progid.length; ++i){
+				try
+				{
+					// Instantiates XMLHttpRequest for IE and assign to http
+					http = new ActiveXObject(this._msxml_progid[i]);
+					//  Object literal with conn and tId properties
+					obj = { conn:http, tId:transactionId };
+					break;
+				}
+				catch(e){}
+			}
+		}
+		finally
+		{
+			return obj;
+		}
+	},
+
+  /**
+   * @description This method is called by asyncRequest to create a
+   * valid connection object for the transaction.  It also passes a
+   * transaction id and increments the transaction id counter.
+   * @method getConnectionObject
+   * @private
+   * @static
+   * @return {object}
+   */
+	getConnectionObject:function(isFileUpload)
+	{
+		var o;
+		var tId = this._transaction_id;
+
+		try
+		{
+			if(!isFileUpload){
+				o = this.createXhrObject(tId);
+			}
+			else{
+				o = {};
+				o.tId = tId;
+				o.isUpload = true;
+			}
+
+			if(o){
+				this._transaction_id++;
+			}
+		}
+		catch(e){}
+		finally
+		{
+			return o;
+		}
+	},
+
+  /**
+   * @description Method for initiating an asynchronous request via the XHR object.
+   * @method asyncRequest
+   * @public
+   * @static
+   * @param {string} method HTTP transaction method
+   * @param {string} uri Fully qualified path of resource
+   * @param {callback} callback User-defined callback function or object
+   * @param {string} postData POST body
+   * @return {object} Returns the connection object
+   */
+	asyncRequest:function(method, uri, callback, postData)
+	{
+		var o = (this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		if(!o){
+			return null;
+		}
+		else{
+
+			// Intialize any transaction-specific custom events, if provided.
+			if(callback && callback.customevents){
+				this.initCustomEvents(o, callback);
+			}
+
+			if(this._isFormSubmit){
+				if(this._isFileUpload){
+					this.uploadFile(o, callback, uri, postData);
+					return o;
+				}
+
+				// If the specified HTTP method is GET, setForm() will return an
+				// encoded string that is concatenated to the uri to
+				// create a querystring.
+				if(method.toUpperCase() == 'GET'){
+					if(this._sFormData.length !== 0){
+						// If the URI already contains a querystring, append an ampersand
+						// and then concatenate _sFormData to the URI.
+						uri += ((uri.indexOf('?') == -1)?'?':'&') + this._sFormData;
+					}
+				}
+				else if(method.toUpperCase() == 'POST'){
+					// If POST data exist in addition to the HTML form data,
+					// it will be concatenated to the form data.
+					postData = postData?this._sFormData + "&" + postData:this._sFormData;
+				}
+			}
+
+			if(method.toUpperCase() == 'GET' && (callback && callback.cache === false)){
+				// If callback.cache is defined and set to false, a
+				// timestamp value will be added to the querystring.
+				uri += ((uri.indexOf('?') == -1)?'?':'&') + "rnd=" + new Date().valueOf().toString();
+			}
+
+			o.conn.open(method, uri, true);
+
+			// Each transaction will automatically include a custom header of
+			// "X-Requested-With: XMLHttpRequest" to identify the request as
+			// having originated from Connection Manager.
+			if(this._use_default_xhr_header){
+				if(!this._default_headers['X-Requested-With']){
+					this.initHeader('X-Requested-With', this._default_xhr_header, true);
+				}
+			}
+
+			//If the transaction method is POST and the POST header value is set to true
+			//or a custom value, initalize the Content-Type header to this value.
+			if((method.toUpperCase() == 'POST' && this._use_default_post_header) && this._isFormSubmit === false){
+				this.initHeader('Content-Type', this._default_post_header);
+			}
+
+			//Initialize all default and custom HTTP headers,
+			if(this._has_default_headers || this._has_http_headers){
+				this.setHeader(o);
+			}
+
+			this.handleReadyState(o, callback);
+			o.conn.send(postData || null);
+
+
+			// Reset the HTML form data and state properties as
+			// soon as the data are submitted.
+			if(this._isFormSubmit === true){
+				this.resetFormState();
+			}
+
+			// Fire global custom event -- startEvent
+			this.startEvent.fire(o, args);
+
+			if(o.startEvent){
+				// Fire transaction custom event -- startEvent
+				o.startEvent.fire(o, args);
+			}
+
+			return o;
+		}
+	},
+
+  /**
+   * @description This method creates and subscribes custom events,
+   * specific to each transaction
+   * @method initCustomEvents
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callback} callback The user-defined callback object
+   * @return {void}
+   */
+	initCustomEvents:function(o, callback)
+	{
+		// Enumerate through callback.customevents members and bind/subscribe
+		// events that match in the _customEvents table.
+		for(var prop in callback.customevents){
+			if(this._customEvents[prop][0]){
+				// Create the custom event
+				o[this._customEvents[prop][0]] = new YAHOO.util.CustomEvent(this._customEvents[prop][1], (callback.scope)?callback.scope:null);
+
+				// Subscribe the custom event
+				o[this._customEvents[prop][0]].subscribe(callback.customevents[prop]);
+			}
+		}
+	},
+
+  /**
+   * @description This method serves as a timer that polls the XHR object's readyState
+   * property during a transaction, instead of binding a callback to the
+   * onreadystatechange event.  Upon readyState 4, handleTransactionResponse
+   * will process the response, and the timer will be cleared.
+   * @method handleReadyState
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callback} callback The user-defined callback object
+   * @return {void}
+   */
+
+    handleReadyState:function(o, callback)
+
+    {
+		var oConn = this;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		if(callback && callback.timeout){
+			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);
+		}
+
+		this._poll[o.tId] = window.setInterval(
+			function(){
+				if(o.conn && o.conn.readyState === 4){
+
+					// Clear the polling interval for the transaction
+					// and remove the reference from _poll.
+					window.clearInterval(oConn._poll[o.tId]);
+					delete oConn._poll[o.tId];
+
+					if(callback && callback.timeout){
+						window.clearTimeout(oConn._timeOut[o.tId]);
+						delete oConn._timeOut[o.tId];
+					}
+
+					// Fire global custom event -- completeEvent
+					oConn.completeEvent.fire(o, args);
+
+					if(o.completeEvent){
+						// Fire transaction custom event -- completeEvent
+						o.completeEvent.fire(o, args);
+					}
+
+					oConn.handleTransactionResponse(o, callback);
+				}
+			}
+		,this._polling_interval);
+    },
+
+  /**
+   * @description This method attempts to interpret the server response and
+   * determine whether the transaction was successful, or if an error or
+   * exception was encountered.
+   * @method handleTransactionResponse
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {object} callback The user-defined callback object
+   * @param {boolean} isAbort Determines if the transaction was terminated via abort().
+   * @return {void}
+   */
+    handleTransactionResponse:function(o, callback, isAbort)
+    {
+		var httpStatus, responseObject;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		try
+		{
+			if(o.conn.status !== undefined && o.conn.status !== 0){
+				httpStatus = o.conn.status;
+			}
+			else{
+				httpStatus = 13030;
+			}
+		}
+		catch(e){
+
+			 // 13030 is a custom code to indicate the condition -- in Mozilla/FF --
+			 // when the XHR object's status and statusText properties are
+			 // unavailable, and a query attempt throws an exception.
+			httpStatus = 13030;
+		}
+
+		if(httpStatus >= 200 && httpStatus < 300 || httpStatus === 1223){
+			responseObject = this.createResponseObject(o, args);
+			if(callback && callback.success){
+				if(!callback.scope){
+					callback.success(responseObject);
+				}
+				else{
+					// If a scope property is defined, the callback will be fired from
+					// the context of the object.
+					callback.success.apply(callback.scope, [responseObject]);
+				}
+			}
+
+			// Fire global custom event -- successEvent
+			this.successEvent.fire(responseObject);
+
+			if(o.successEvent){
+				// Fire transaction custom event -- successEvent
+				o.successEvent.fire(responseObject);
+			}
+		}
+		else{
+			switch(httpStatus){
+				// The following cases are wininet.dll error codes that may be encountered.
+				case 12002: // Server timeout
+				case 12029: // 12029 to 12031 correspond to dropped connections.
+				case 12030:
+				case 12031:
+				case 12152: // Connection closed by server.
+				case 13030: // See above comments for variable status.
+					responseObject = this.createExceptionObject(o.tId, args, (isAbort?isAbort:false));
+					if(callback && callback.failure){
+						if(!callback.scope){
+							callback.failure(responseObject);
+						}
+						else{
+							callback.failure.apply(callback.scope, [responseObject]);
+						}
+					}
+
+					break;
+				default:
+					responseObject = this.createResponseObject(o, args);
+					if(callback && callback.failure){
+						if(!callback.scope){
+							callback.failure(responseObject);
+						}
+						else{
+							callback.failure.apply(callback.scope, [responseObject]);
+						}
+					}
+			}
+
+			// Fire global custom event -- failureEvent
+			this.failureEvent.fire(responseObject);
+
+			if(o.failureEvent){
+				// Fire transaction custom event -- failureEvent
+				o.failureEvent.fire(responseObject);
+			}
+
+		}
+
+		this.releaseObject(o);
+		responseObject = null;
+    },
+
+  /**
+   * @description This method evaluates the server response, creates and returns the results via
+   * its properties.  Success and failure cases will differ in the response
+   * object's property values.
+   * @method createResponseObject
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
+   * @return {object}
+   */
+    createResponseObject:function(o, callbackArg)
+    {
+		var obj = {};
+		var headerObj = {};
+
+		try
+		{
+			var headerStr = o.conn.getAllResponseHeaders();
+			var header = headerStr.split('\n');
+			for(var i=0; i<header.length; i++){
+				var delimitPos = header[i].indexOf(':');
+				if(delimitPos != -1){
+					headerObj[header[i].substring(0,delimitPos)] = header[i].substring(delimitPos+2);
+				}
+			}
+		}
+		catch(e){}
+
+		obj.tId = o.tId;
+		// Normalize IE's response to HTTP 204 when Win error 1223.
+		obj.status = (o.conn.status == 1223)?204:o.conn.status;
+		// Normalize IE's statusText to "No Content" instead of "Unknown".
+		obj.statusText = (o.conn.status == 1223)?"No Content":o.conn.statusText;
+		obj.getResponseHeader = headerObj;
+		obj.getAllResponseHeaders = headerStr;
+		obj.responseText = o.conn.responseText;
+		obj.responseXML = o.conn.responseXML;
+
+		if(callbackArg){
+			obj.argument = callbackArg;
+		}
+
+		return obj;
+    },
+
+  /**
+   * @description If a transaction cannot be completed due to dropped or closed connections,
+   * there may be not be enough information to build a full response object.
+   * The failure callback will be fired and this specific condition can be identified
+   * by a status property value of 0.
+   *
+   * If an abort was successful, the status property will report a value of -1.
+   *
+   * @method createExceptionObject
+   * @private
+   * @static
+   * @param {int} tId The Transaction Id
+   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
+   * @param {boolean} isAbort Determines if the exception case is caused by a transaction abort
+   * @return {object}
+   */
+    createExceptionObject:function(tId, callbackArg, isAbort)
+    {
+		var COMM_CODE = 0;
+		var COMM_ERROR = 'communication failure';
+		var ABORT_CODE = -1;
+		var ABORT_ERROR = 'transaction aborted';
+
+		var obj = {};
+
+		obj.tId = tId;
+		if(isAbort){
+			obj.status = ABORT_CODE;
+			obj.statusText = ABORT_ERROR;
+		}
+		else{
+			obj.status = COMM_CODE;
+			obj.statusText = COMM_ERROR;
+		}
+
+		if(callbackArg){
+			obj.argument = callbackArg;
+		}
+
+		return obj;
+    },
+
+  /**
+   * @description Method that initializes the custom HTTP headers for the each transaction.
+   * @method initHeader
+   * @public
+   * @static
+   * @param {string} label The HTTP header label
+   * @param {string} value The HTTP header value
+   * @param {string} isDefault Determines if the specific header is a default header
+   * automatically sent with each transaction.
+   * @return {void}
+   */
+	initHeader:function(label, value, isDefault)
+	{
+		var headerObj = (isDefault)?this._default_headers:this._http_headers;
+		headerObj[label] = value;
+
+		if(isDefault){
+			this._has_default_headers = true;
+		}
+		else{
+			this._has_http_headers = true;
+		}
+	},
+
+
+  /**
+   * @description Accessor that sets the HTTP headers for each transaction.
+   * @method setHeader
+   * @private
+   * @static
+   * @param {object} o The connection object for the transaction.
+   * @return {void}
+   */
+	setHeader:function(o)
+	{
+		if(this._has_default_headers){
+			for(var prop in this._default_headers){
+				if(YAHOO.lang.hasOwnProperty(this._default_headers, prop)){
+					o.conn.setRequestHeader(prop, this._default_headers[prop]);
+				}
+			}
+		}
+
+		if(this._has_http_headers){
+			for(var prop in this._http_headers){
+				if(YAHOO.lang.hasOwnProperty(this._http_headers, prop)){
+					o.conn.setRequestHeader(prop, this._http_headers[prop]);
+				}
+			}
+			delete this._http_headers;
+
+			this._http_headers = {};
+			this._has_http_headers = false;
+		}
+	},
+
+  /**
+   * @description Resets the default HTTP headers object
+   * @method resetDefaultHeaders
+   * @public
+   * @static
+   * @return {void}
+   */
+	resetDefaultHeaders:function(){
+		delete this._default_headers;
+		this._default_headers = {};
+		this._has_default_headers = false;
+	},
+
+  /**
+   * @description This method assembles the form label and value pairs and
+   * constructs an encoded string.
+   * asyncRequest() will automatically initialize the transaction with a
+   * a HTTP header Content-Type of application/x-www-form-urlencoded.
+   * @method setForm
+   * @public
+   * @static
+   * @param {string || object} form id or name attribute, or form object.
+   * @param {boolean} optional enable file upload.
+   * @param {boolean} optional enable file upload over SSL in IE only.
+   * @return {string} string of the HTML form field name and value pairs..
+   */
+	setForm:function(formId, isUpload, secureUri)
+	{
+		// reset the HTML form data and state properties
+		this.resetFormState();
+
+		var oForm;
+		if(typeof formId == 'string'){
+			// Determine if the argument is a form id or a form name.
+			// Note form name usage is deprecated, but supported
+			// here for backward compatibility.
+			oForm = (document.getElementById(formId) || document.forms[formId]);
+		}
+		else if(typeof formId == 'object'){
+			// Treat argument as an HTML form object.
+			oForm = formId;
+		}
+		else{
+			return;
+		}
+
+		// If the isUpload argument is true, setForm will call createFrame to initialize
+		// an iframe as the form target.
+		//
+		// The argument secureURI is also required by IE in SSL environments
+		// where the secureURI string is a fully qualified HTTP path, used to set the source
+		// of the iframe, to a stub resource in the same domain.
+		if(isUpload){
+
+			// Create iframe in preparation for file upload.
+			var io = this.createFrame(secureUri?secureUri:null);
+			// Set form reference and file upload properties to true.
+			this._isFormSubmit = true;
+			this._isFileUpload = true;
+			this._formNode = oForm;
+
+			return;
+
+		}
+
+		var oElement, oName, oValue, oDisabled;
+		var hasSubmit = false;
+
+		// Iterate over the form elements collection to construct the
+		// label-value pairs.
+		for (var i=0; i<oForm.elements.length; i++){
+			oElement = oForm.elements[i];
+			oDisabled = oElement.disabled;
+			oName = oElement.name;
+			oValue = oElement.value;
+
+			// Do not submit fields that are disabled or
+			// do not have a name attribute value.
+			if(!oDisabled && oName)
+			{
+				switch(oElement.type)
+				{
+					case 'select-one':
+					case 'select-multiple':
+						for(var j=0; j<oElement.options.length; j++){
+							if(oElement.options[j].selected){
+								if(window.ActiveXObject){
+									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';
+								}
+								else{
+									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';
+								}
+							}
+						}
+						break;
+					case 'radio':
+					case 'checkbox':
+						if(oElement.checked){
+							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+						}
+						break;
+					case 'file':
+						// stub case as XMLHttpRequest will only send the file path as a string.
+					case undefined:
+						// stub case for fieldset element which returns undefined.
+					case 'reset':
+						// stub case for input type reset button.
+					case 'button':
+						// stub case for input type button elements.
+						break;
+					case 'submit':
+						if(hasSubmit === false){
+							if(this._hasSubmitListener && this._submitElementValue){
+								this._sFormData += this._submitElementValue + '&';
+							}
+							else{
+								this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+							}
+
+							hasSubmit = true;
+						}
+						break;
+					default:
+						this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+				}
+			}
+		}
+
+		this._isFormSubmit = true;
+		this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);
+
+
+		this.initHeader('Content-Type', this._default_form_header);
+
+		return this._sFormData;
+	},
+
+  /**
+   * @description Resets HTML form properties when an HTML form or HTML form
+   * with file upload transaction is sent.
+   * @method resetFormState
+   * @private
+   * @static
+   * @return {void}
+   */
+	resetFormState:function(){
+		this._isFormSubmit = false;
+		this._isFileUpload = false;
+		this._formNode = null;
+		this._sFormData = "";
+	},
+
+  /**
+   * @description Creates an iframe to be used for form file uploads.  It is remove from the
+   * document upon completion of the upload transaction.
+   * @method createFrame
+   * @private
+   * @static
+   * @param {string} optional qualified path of iframe resource for SSL in IE.
+   * @return {void}
+   */
+	createFrame:function(secureUri){
+
+		// IE does not allow the setting of id and name attributes as object
+		// properties via createElement().  A different iframe creation
+		// pattern is required for IE.
+		var frameId = 'yuiIO' + this._transaction_id;
+		var io;
+		if(window.ActiveXObject){
+			io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
+
+			// IE will throw a security exception in an SSL environment if the
+			// iframe source is undefined.
+			if(typeof secureUri == 'boolean'){
+				io.src = 'javascript:false';
+			}
+			else if(typeof secureURI == 'string'){
+				// Deprecated
+				io.src = secureUri;
+			}
+		}
+		else{
+			io = document.createElement('iframe');
+			io.id = frameId;
+			io.name = frameId;
+		}
+
+		io.style.position = 'absolute';
+		io.style.top = '-1000px';
+		io.style.left = '-1000px';
+
+		document.body.appendChild(io);
+	},
+
+  /**
+   * @description Parses the POST data and creates hidden form elements
+   * for each key-value, and appends them to the HTML form object.
+   * @method appendPostData
+   * @private
+   * @static
+   * @param {string} postData The HTTP POST data
+   * @return {array} formElements Collection of hidden fields.
+   */
+	appendPostData:function(postData)
+	{
+		var formElements = [];
+		var postMessage = postData.split('&');
+		for(var i=0; i < postMessage.length; i++){
+			var delimitPos = postMessage[i].indexOf('=');
+			if(delimitPos != -1){
+				formElements[i] = document.createElement('input');
+				formElements[i].type = 'hidden';
+				formElements[i].name = postMessage[i].substring(0,delimitPos);
+				formElements[i].value = postMessage[i].substring(delimitPos+1);
+				this._formNode.appendChild(formElements[i]);
+			}
+		}
+
+		return formElements;
+	},
+
+  /**
+   * @description Uploads HTML form, inclusive of files/attachments, using the
+   * iframe created in createFrame to facilitate the transaction.
+   * @method uploadFile
+   * @private
+   * @static
+   * @param {int} id The transaction id.
+   * @param {object} callback User-defined callback object.
+   * @param {string} uri Fully qualified path of resource.
+   * @param {string} postData POST data to be submitted in addition to HTML form.
+   * @return {void}
+   */
+	uploadFile:function(o, callback, uri, postData){
+
+		// Each iframe has an id prefix of "yuiIO" followed
+		// by the unique transaction id.
+		var oConn = this;
+		var frameId = 'yuiIO' + o.tId;
+		var uploadEncoding = 'multipart/form-data';
+		var io = document.getElementById(frameId);
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		// Track original HTML form attribute values.
+		var rawFormAttributes =
+		{
+			action:this._formNode.getAttribute('action'),
+			method:this._formNode.getAttribute('method'),
+			target:this._formNode.getAttribute('target')
+		};
+
+		// Initialize the HTML form properties in case they are
+		// not defined in the HTML form.
+		this._formNode.setAttribute('action', uri);
+		this._formNode.setAttribute('method', 'POST');
+		this._formNode.setAttribute('target', frameId);
+
+		if(this._formNode.encoding){
+			// IE does not respect property enctype for HTML forms.
+			// Instead it uses the property - "encoding".
+			this._formNode.setAttribute('encoding', uploadEncoding);
+		}
+		else{
+			this._formNode.setAttribute('enctype', uploadEncoding);
+		}
+
+		if(postData){
+			var oElements = this.appendPostData(postData);
+		}
+
+		// Start file upload.
+		this._formNode.submit();
+
+		// Fire global custom event -- startEvent
+		this.startEvent.fire(o, args);
+
+		if(o.startEvent){
+			// Fire transaction custom event -- startEvent
+			o.startEvent.fire(o, args);
+		}
+
+		// Start polling if a callback is present and the timeout
+		// property has been defined.
+		if(callback && callback.timeout){
+			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);
+		}
+
+		// Remove HTML elements created by appendPostData
+		if(oElements && oElements.length > 0){
+			for(var i=0; i < oElements.length; i++){
+				this._formNode.removeChild(oElements[i]);
+			}
+		}
+
+		// Restore HTML form attributes to their original
+		// values prior to file upload.
+		for(var prop in rawFormAttributes){
+			if(YAHOO.lang.hasOwnProperty(rawFormAttributes, prop)){
+				if(rawFormAttributes[prop]){
+					this._formNode.setAttribute(prop, rawFormAttributes[prop]);
+				}
+				else{
+					this._formNode.removeAttribute(prop);
+				}
+			}
+		}
+
+		// Reset HTML form state properties.
+		this.resetFormState();
+
+		// Create the upload callback handler that fires when the iframe
+		// receives the load event.  Subsequently, the event handler is detached
+		// and the iframe removed from the document.
+		var uploadCallback = function()
+		{
+			if(callback && callback.timeout){
+				window.clearTimeout(oConn._timeOut[o.tId]);
+				delete oConn._timeOut[o.tId];
+			}
+
+			// Fire global custom event -- completeEvent
+			oConn.completeEvent.fire(o, args);
+
+			if(o.completeEvent){
+				// Fire transaction custom event -- completeEvent
+				o.completeEvent.fire(o, args);
+			}
+
+			var obj = {};
+			obj.tId = o.tId;
+			obj.argument = callback.argument;
+
+			try
+			{
+				// responseText and responseXML will be populated with the same data from the iframe.
+				// Since the HTTP headers cannot be read from the iframe
+				obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:io.contentWindow.document.documentElement.textContent;
+				obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
+			}
+			catch(e){}
+
+			if(callback && callback.upload){
+				if(!callback.scope){
+					callback.upload(obj);
+				}
+				else{
+					callback.upload.apply(callback.scope, [obj]);
+				}
+			}
+
+			// Fire global custom event -- uploadEvent
+			oConn.uploadEvent.fire(obj);
+
+			if(o.uploadEvent){
+				// Fire transaction custom event -- uploadEvent
+				o.uploadEvent.fire(obj);
+			}
+
+			YAHOO.util.Event.removeListener(io, "load", uploadCallback);
+
+			setTimeout(
+				function(){
+					document.body.removeChild(io);
+					oConn.releaseObject(o);
+				}, 100);
+		};
+
+		// Bind the onload handler to the iframe to detect the file upload response.
+		YAHOO.util.Event.addListener(io, "load", uploadCallback);
+	},
+
+  /**
+   * @description Method to terminate a transaction, if it has not reached readyState 4.
+   * @method abort
+   * @public
+   * @static
+   * @param {object} o The connection object returned by asyncRequest.
+   * @param {object} callback  User-defined callback object.
+   * @param {string} isTimeout boolean to indicate if abort resulted from a callback timeout.
+   * @return {boolean}
+   */
+	abort:function(o, callback, isTimeout)
+	{
+		var abortStatus;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+
+		if(o && o.conn){
+			if(this.isCallInProgress(o)){
+				// Issue abort request
+				o.conn.abort();
+
+				window.clearInterval(this._poll[o.tId]);
+				delete this._poll[o.tId];
+
+				if(isTimeout){
+					window.clearTimeout(this._timeOut[o.tId]);
+					delete this._timeOut[o.tId];
+				}
+
+				abortStatus = true;
+			}
+		}
+		else if(o && o.isUpload === true){
+			var frameId = 'yuiIO' + o.tId;
+			var io = document.getElementById(frameId);
+
+			if(io){
+				// Remove all listeners on the iframe prior to
+				// its destruction.
+				YAHOO.util.Event.removeListener(io, "load");
+				// Destroy the iframe facilitating the transaction.
+				document.body.removeChild(io);
+
+				if(isTimeout){
+					window.clearTimeout(this._timeOut[o.tId]);
+					delete this._timeOut[o.tId];
+				}
+
+				abortStatus = true;
+			}
+		}
+		else{
+			abortStatus = false;
+		}
+
+		if(abortStatus === true){
+			// Fire global custom event -- abortEvent
+			this.abortEvent.fire(o, args);
+
+			if(o.abortEvent){
+				// Fire transaction custom event -- abortEvent
+				o.abortEvent.fire(o, args);
+			}
+
+			this.handleTransactionResponse(o, callback, true);
+		}
+
+		return abortStatus;
+	},
+
+  /**
+   * @description Determines if the transaction is still being processed.
+   * @method isCallInProgress
+   * @public
+   * @static
+   * @param {object} o The connection object returned by asyncRequest
+   * @return {boolean}
+   */
+	isCallInProgress:function(o)
+	{
+		// if the XHR object assigned to the transaction has not been dereferenced,
+		// then check its readyState status.  Otherwise, return false.
+		if(o && o.conn){
+			return o.conn.readyState !== 4 && o.conn.readyState !== 0;
+		}
+		else if(o && o.isUpload === true){
+			var frameId = 'yuiIO' + o.tId;
+			return document.getElementById(frameId)?true:false;
+		}
+		else{
+			return false;
+		}
+	},
+
+  /**
+   * @description Dereference the XHR instance and the connection object after the transaction is completed.
+   * @method releaseObject
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @return {void}
+   */
+	releaseObject:function(o)
+	{
+		if(o && o.conn){
+			//dereference the XHR instance.
+			o.conn = null;
+
+
+			//dereference the connection object.
+			o = null;
+		}
+	}
+};
+
+YAHOO.register("connection", YAHOO.util.Connect, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/connection/connection.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/connection/connection-min.js
===================================================================
--- tags/2.7.0/wb/include/yui/connection/connection-min.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/connection/connection-min.js	(revision 838)
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function(){if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,"click",function(B){var A=YAHOO.util.Event.getTarget(B);if(A.type&&A.type.toLowerCase()=="submit"){YAHOO.util.Connect._submitElementValue=encodeURIComponent(A.name)+"="+encodeURIComponent(A.value);}});return true;}return false;})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(E){var D,A;try{A=new XMLHttpRequest();D={conn:A,tId:E};}catch(C){for(var B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:E};break;}catch(C){}}}finally{return D;}},getConnectionObject:function(A){var C;var D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={};C.tId=D;C.isUpload=true;}if(C){this._transaction_id++;}}catch(B){}finally{return C;}},asyncRequest:function(F,C,E,A){var D=(this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();var B=(E&&E.argument)?E.argument:null;if(!D){return null;}else{if(E&&E.customevents){this.initCustomEvents(D,E);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(D,E,C,A);return D;}if(F.toUpperCase()=="GET"){if(this._sFormData.length!==0){C+=((C.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(F.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(F.toUpperCase()=="GET"&&(E&&E.cache===false)){C+=((C.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}D.conn.open(F,C,true);if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((F.toUpperCase()=="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(this._has_default_headers||this._has_http_headers){this.setHeader(D);}this.handleReadyState(D,E);D.conn.send(A||null);if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(D,B);if(D.startEvent){D.startEvent.fire(D,B);}return D;}},initCustomEvents:function(A,C){for(var B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this;var A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(F,G,A){var D,C;var B=(G&&G.argument)?G.argument:null;try{if(F.conn.status!==undefined&&F.conn.status!==0){D=F.conn.status;}else{D=13030;}}catch(E){D=13030;}if(D>=200&&D<300||D===1223){C=this.createResponseObject(F,B);if(G&&G.success){if(!G.scope){G.success(C);}else{G.success.apply(G.scope,[C]);}}this.successEvent.fire(C);if(F.successEvent){F.successEvent.fire(C);}}else{switch(D){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:C=this.createExceptionObject(F.tId,B,(A?A:false));if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}break;default:C=this.createResponseObject(F,B);if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}}this.failureEvent.fire(C);if(F.failureEvent){F.failureEvent.fire(C);}}this.releaseObject(F);C=null;},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E<F.length;E++){var B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=F[E].substring(B+2);}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0;var G="communication failure";var C=-1;var B="transaction aborted";var E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){if(this._has_default_headers){for(var B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);
+}}}if(this._has_http_headers){for(var B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);}}delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(K,E,B){this.resetFormState();var J;if(typeof K=="string"){J=(document.getElementById(K)||document.forms[K]);}else{if(typeof K=="object"){J=K;}else{return ;}}if(E){var F=this.createFrame(B?B:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=J;return ;}var A,I,G,L;var H=false;for(var D=0;D<J.elements.length;D++){A=J.elements[D];L=A.disabled;I=A.name;G=A.value;if(!L&&I){switch(A.type){case"select-one":case"select-multiple":for(var C=0;C<A.options.length;C++){if(A.options[C].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].attributes["value"].specified?A.options[C].value:A.options[C].text)+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].hasAttribute("value")?A.options[C].value:A.options[C].text)+"&";}}}break;case"radio":case"checkbox":if(A.checked){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(H===false){if(this._hasSubmitListener&&this._submitElementValue){this._sFormData+=this._submitElementValue+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}H=true;}break;default:this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);this.initHeader("Content-Type",this._default_form_header);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(A){var B="yuiIO"+this._transaction_id;var C;if(window.ActiveXObject){C=document.createElement("<iframe id=\""+B+"\" name=\""+B+"\" />");if(typeof A=="boolean"){C.src="javascript:false";}else{if(typeof secureURI=="string"){C.src=A;}}}else{C=document.createElement("iframe");C.id=B;C.name=B;}C.style.position="absolute";C.style.top="-1000px";C.style.left="-1000px";document.body.appendChild(C);},appendPostData:function(A){var D=[];var B=A.split("&");for(var C=0;C<B.length;C++){var E=B[C].indexOf("=");if(E!=-1){D[C]=document.createElement("input");D[C].type="hidden";D[C].name=B[C].substring(0,E);D[C].value=B[C].substring(E+1);this._formNode.appendChild(D[C]);}}return D;},uploadFile:function(D,M,E,C){var N=this;var H="yuiIO"+D.tId;var I="multipart/form-data";var K=document.getElementById(H);var J=(M&&M.argument)?M.argument:null;var B={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",E);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",H);if(this._formNode.encoding){this._formNode.setAttribute("encoding",I);}else{this._formNode.setAttribute("enctype",I);}if(C){var L=this.appendPostData(C);}this._formNode.submit();this.startEvent.fire(D,J);if(D.startEvent){D.startEvent.fire(D,J);}if(M&&M.timeout){this._timeOut[D.tId]=window.setTimeout(function(){N.abort(D,M,true);},M.timeout);}if(L&&L.length>0){for(var G=0;G<L.length;G++){this._formNode.removeChild(L[G]);}}for(var A in B){if(YAHOO.lang.hasOwnProperty(B,A)){if(B[A]){this._formNode.setAttribute(A,B[A]);}else{this._formNode.removeAttribute(A);}}}this.resetFormState();var F=function(){if(M&&M.timeout){window.clearTimeout(N._timeOut[D.tId]);delete N._timeOut[D.tId];}N.completeEvent.fire(D,J);if(D.completeEvent){D.completeEvent.fire(D,J);}var P={};P.tId=D.tId;P.argument=M.argument;try{P.responseText=K.contentWindow.document.body?K.contentWindow.document.body.innerHTML:K.contentWindow.document.documentElement.textContent;P.responseXML=K.contentWindow.document.XMLDocument?K.contentWindow.document.XMLDocument:K.contentWindow.document;}catch(O){}if(M&&M.upload){if(!M.scope){M.upload(P);}else{M.upload.apply(M.scope,[P]);}}N.uploadEvent.fire(P);if(D.uploadEvent){D.uploadEvent.fire(P);}YAHOO.util.Event.removeListener(K,"load",F);setTimeout(function(){document.body.removeChild(K);N.releaseObject(D);},100);};YAHOO.util.Event.addListener(K,"load",F);},abort:function(E,G,A){var D;var B=(G&&G.argument)?G.argument:null;if(E&&E.conn){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E&&E.isUpload===true){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(B){if(B&&B.conn){return B.conn.readyState!==4&&B.conn.readyState!==0;}else{if(B&&B.isUpload===true){var A="yuiIO"+B.tId;return document.getElementById(A)?true:false;}else{return false;}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.4.1",build:"742"});
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/connection/connection-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/connection/README
===================================================================
--- tags/2.7.0/wb/include/yui/connection/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/connection/README	(revision 838)
@@ -0,0 +1,259 @@
+Connection Manager Release Notes
+
+*** version 2.4.1 ***
+
+No change
+
+*** version 2.4.0 ***
+
+* [FIXED] SF1804153.  Transactions initialized with setForm() now properly clear
+the POST data field after each transaction.
+
+* The callback object can accept a new member, cache, defined with a boolean
+value.  If set to false (e.g., var callback = { cache:false };), a timestamp
+will be appended to the URI to override HTTP GET caching.  This timestamp value
+will appear as rnd=timestamp in the request querystring.
+
+* Custom Events startEvent, completeEvent, and abortEvent now receive
+callback.argument, if defined, in addition to the transaction ID.  Each Custom
+Event's function handler receives two arguments -- the event type as the first
+argument, and an array as the second argument.  The first element in the array
+is the transaction ID, and the second element are any arguments defined in the
+callback object.
+
+*** version 2.3.1 ***
+
+* setDefaultPostHeader() can now be overloaded with a boolean, string, or
+number.  By default, POST transactions send the following Content-Type header:
+'application/x-www-form-urlencoded; charset=UTF-8'.
+
+A custom Content-Type header can now be set by passing its value to
+setDefaultPostHeader().
+
+* HTML form submissions now send a Content-Type header of "application/x-www-
+form-urlencoded", omitting the charset=UTF-8 value.
+
+* setDefaultXhrHeader() can now be overloaded with a boolean, string, or number.
+By default, all transactions send a custom header of "X-Requested-
+With:XMLHttpRequest".
+
+This default header value can be overridden by passing the desired value as an
+argument to setDefaultPostHeader().
+
+* The file upload iframe's event listener is now explicitly removed before the
+iframe is destroyed.
+
+*** version 2.3.0 ***
+
+* Custom Events are introduced in Connection Manager.  These events -- for a
+non-file upload transaction -- are:
+
+   * startEvent
+   * completeEvent
+   * successEvent
+   * failureEvent
+   * abortEvent
+
+For transactions involving file upload with an HTML form, the events are:
+
+   * startEvent
+   * completeEvent
+   * uploadEvent
+   * abortEvent
+
+* Event utility is a now Connection Manager dependency.
+
+* abort() and isCallInProgress() are now functional for file upload
+transactions.
+
+* NOTE: The native XHR implementation in Safari 2.0.4 has been confirmed to leak
+memory.
+
+* UPDATE: The XHR implementation in Safari 3.0 beta(and WebKit builds) now
+appear to handle HTTP 204 responses correctly.  XHR in Opera, as of 9.21, still
+does not produce a valid HTTP status code with an HTTP 204 response.
+
+*** version 2.2.2 ***
+
+* No revisions.
+
+*** version 2.2.1 ***
+
+* setForm() will include the correct name-value of the HTML Submit button
+clicked where multiple HTML Submit button options are present in an HTML form.
+To enable this feature, include the Event utility source file as a dependency
+before the Connection Manager source file.
+
+* The XHR implementation in IE6 and IE7, Opera, and Safari do not properly
+handle an HTTP 204 response.  IE6/7 will instead return a Win error 1223.
+handleTransactionResponse() will treat 1223 as an HTTP 204, and route the
+response appropriately to the success callback.  createResponseObject() will
+normalize the response object's status and statusText values to 204 and "No
+Content" respectively.  However, no headers are returned.
+
+Opera and Safari provide no discernable response with HTTP 204(e.g., response
+object's properties are undefined).  This response will trigger the failure
+callback with a status of 0 and statusText of "communication failure".
+
+*** version 2.2.0 ***
+
+* initHeader() now accepts a third argument as a boolean.  When set to true,
+this specific header will automatically be sent with each transaction.
+Otherwise, the header will be set and sent for the specific transaction only.
+Example: initHeader('X-YUI-State','Beta', true); all transactions will send this
+header.
+   * resetDefaultHeaders() will clear the default headers collection.
+
+* All Connection Mananger transactions will broadcast the header: "X-Requested-
+With: XMLHttpRequest".
+   * This can be turned off: YAHOO.util.Connect.setDefaultXhrHeader(false);
+
+* The HTTP method argument in asyncRequest is now case-insensitive.
+
+* uploadFile() will now correctly handle the absence of a callback object,
+allowing the transaction to complete silently.
+
+*** version 0.12.2 ***
+
+* The Opera/Connection Manager concurrent object condition, described in version
+0.12.0, no longer tests applies for Opera, version 9.10.
+
+*** version 0.12.1 ***
+
+* connection-debug.js corrected and synchronized with connection.js.  Code
+inconsistencies between the two files existed in 0.12.0.
+
+*** version 0.12.0 ***
+
+* When uploading files via setForm() and asyncRequest includes a POST data
+argument, appendPostData() will create hidden input fields for each postData
+label/value and append each field to the form object.
+
+* setForm() returns the assembled label/value string of the parsed HTML form
+fields.
+
+* NOTE: Opera 9.02 does not allow for more than 12 concurrent Connection Manager
+objects.
+
+The following example creates 12 requests in a loop:
+for(var n=0; n<=12; i++){
+  conn[n] = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
+}
+
+If n > 13, Opera 9.02 will crash.  Connection manager objects count n must be <=
+12 at all times.  This condition was not present in Opera version 9.01.
+
+This condition does not apply to other A-Grade browsers (
+http://developer.yahoo.com/yui/articles/gbs/gbs_browser-chart.html)
+
+*** version 0.11.3 ***
+
+* YUI Event dependency for file uploading is now optional.
+
+* uploadFile() now sets unique IDs for each file upload transaction to prevent
+iframe collisions with parallel uploads.
+
+* The callback object now has property responseXML to provide support for file
+upload transactions that return an XML document.
+
+* setForm() will verify if a select option value attribute is present and use
+its value, including empty string, before using the text node value.
+
+* Modified polling mechanism in handleReadyState() and
+handleTransactionResponse() to prevent infinite polling if JavaScript errors
+occur in the user-defined callback.
+
+* createFrame() will now accept a boolean argument of true to set the frame
+source to "javascript:false" to prevent IE from throwing security warnings in an
+HTTPS environment.
+
+* setHeader() now enumerates through the _http_header object using
+hasOwnProperty() to prevent collisions with members added to Object via
+prototype.
+
+* If using setForm() and asyncRequest includes a POST data argument, the data
+will be concatenated to the HTML form POST message.
+
+*** version 0.11.2 ***
+
+* No revisions.
+
+*** version 0.11.1 ***
+
+* uploadFile() now verifies the existence of callback.upload before invoking
+callback, with or without object scope.
+
+*** version 0.11.0 ***
+
+* Each transaction can be defined with a timeout threshold, in milliseconds,
+through the callback object.  If the threshold is reached, and the transaction
+hasn't yet completed, the transaction will call abort().
+
+* abort() will now accept a callback object as the second argument.  The
+failure callback will receive a response object to indicate the transaction was
+aborted.
+
+* setForm() will now support file uploads by setting the second argument to
+true (e.g., YAHOO.util.Connect.setForm(formObject, true).  File upload does not
+use the callback success or failure handler.  Instead, it uses a new callback
+object handler: upload.
+
+* HTML form submit will no longer submit form fields without a defined name
+attribute.
+
+* The default POST header of 'Content-Type','application/x-www-form-urlencoded'
+can be overridden by calling setDefaultPostHeader(false).  This
+will remove the default header from non-HTML form, POST submissions.
+
+* setHeader() now enumerates through the _http_header object with
+propertyIsEnumerable to prevent collisions with members added to Object via
+prototype.
+
+*** version 0.10.0 ***
+
+* handleTransactionResponse() now treats the full HTTP 2xx range as a success
+case, instead of just HTTP 200.
+
+* To accommodate multiple field values in Mozilla/Firefox, multiple initHeader
+calls with the same label will now result in the values concatenated to a
+comma- delimited string value.
+Example:
+Setting Content-Type:'application/x-www-form-urlencoded' and Content-
+Type:'text/xml' will result in Content-Type:'application/x-www-form-urlencoded,
+text/xml'.
+
+* Default polling interval lowered to 50ms.
+
+* YAHOO.util.Connect.setPollingInterval() will allow you to set a polling
+interval -- in milliseconds -- to override the default value.
+
+* YAHOO.util.Connect.getResponseHeader[headerLabel] now supported as a response
+object property to provide symmetry with the native XHR object's property.
+Example:
+YAHOO.util.Connect.getResponseHeader['Content-Length'] will return the value
+for the Content-Length header, if the header is available.
+
+* YAHOO.util.Connect.allResponseHeaders property renamed to
+getAllResponseHeaders to provide symmetry with the native XHR object's
+property.
+
+* YAHOO.util.Connect.setForm() now supports HTTP GET as well as HTTP POST.
+
+* YAHOO.util.Connect.setForm() now accepts an HTML form object as well as its
+name attribute value.
+
+* YAHOO.util.Connect.setForm() will not submit HTML form fields that are
+disabled or do not have a name attribute value.
+
+* [FIXED] Response exceptions result in infinite callback loop in
+Mozilla/Firefox.
+
+* [FIXED] YAHOO.util.Connect.abort() now properly clears polling interval.
+
+* [FIXED] isCallInProgress() now verifies whether XHR instance still exists,
+and returns false if the connection object is no longer available.
+
+*** version 0.9.0 ***
+
+* Initial release
+

Property changes on: tags/2.7.0/wb/include/yui/connection/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/connection/connection-debug.js
===================================================================
--- tags/2.7.0/wb/include/yui/connection/connection-debug.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/connection/connection-debug.js	(revision 838)
@@ -0,0 +1,1399 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The Connection Manager provides a simplified interface to the XMLHttpRequest
+ * object.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the
+ * interactive states and server response, returning the results to a pre-defined
+ * callback you create.
+ *
+ * @namespace YAHOO.util
+ * @module connection
+ * @requires yahoo
+ * @requires event
+ */
+
+/**
+ * The Connection Manager singleton provides methods for creating and managing
+ * asynchronous transactions.
+ *
+ * @class Connect
+ */
+
+YAHOO.util.Connect =
+{
+  /**
+   * @description Array of MSFT ActiveX ids for XMLHttpRequest.
+   * @property _msxml_progid
+   * @private
+   * @static
+   * @type array
+   */
+	_msxml_progid:[
+		'Microsoft.XMLHTTP',
+		'MSXML2.XMLHTTP.3.0',
+		'MSXML2.XMLHTTP'
+		],
+
+  /**
+   * @description Object literal of HTTP header(s)
+   * @property _http_header
+   * @private
+   * @static
+   * @type object
+   */
+	_http_headers:{},
+
+  /**
+   * @description Determines if HTTP headers are set.
+   * @property _has_http_headers
+   * @private
+   * @static
+   * @type boolean
+   */
+	_has_http_headers:false,
+
+ /**
+  * @description Determines if a default header of
+  * Content-Type of 'application/x-www-form-urlencoded'
+  * will be added to any client HTTP headers sent for POST
+  * transactions.
+  * @property _use_default_post_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _use_default_post_header:true,
+
+ /**
+  * @description The default header used for POST transactions.
+  * @property _default_post_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',
+
+ /**
+  * @description The default header used for transactions involving the
+  * use of HTML forms.
+  * @property _default_form_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_form_header:'application/x-www-form-urlencoded',
+
+ /**
+  * @description Determines if a default header of
+  * 'X-Requested-With: XMLHttpRequest'
+  * will be added to each transaction.
+  * @property _use_default_xhr_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _use_default_xhr_header:true,
+
+ /**
+  * @description The default header value for the label
+  * "X-Requested-With".  This is sent with each
+  * transaction, by default, to identify the
+  * request as being made by YUI Connection Manager.
+  * @property _default_xhr_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_xhr_header:'XMLHttpRequest',
+
+ /**
+  * @description Determines if custom, default headers
+  * are set for each transaction.
+  * @property _has_default_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _has_default_headers:true,
+
+ /**
+  * @description Determines if custom, default headers
+  * are set for each transaction.
+  * @property _has_default_header
+  * @private
+  * @static
+  * @type boolean
+  */
+    _default_headers:{},
+
+ /**
+  * @description Property modified by setForm() to determine if the data
+  * should be submitted as an HTML form.
+  * @property _isFormSubmit
+  * @private
+  * @static
+  * @type boolean
+  */
+    _isFormSubmit:false,
+
+ /**
+  * @description Property modified by setForm() to determine if a file(s)
+  * upload is expected.
+  * @property _isFileUpload
+  * @private
+  * @static
+  * @type boolean
+  */
+    _isFileUpload:false,
+
+ /**
+  * @description Property modified by setForm() to set a reference to the HTML
+  * form node if the desired action is file upload.
+  * @property _formNode
+  * @private
+  * @static
+  * @type object
+  */
+    _formNode:null,
+
+ /**
+  * @description Property modified by setForm() to set the HTML form data
+  * for each transaction.
+  * @property _sFormData
+  * @private
+  * @static
+  * @type string
+  */
+    _sFormData:null,
+
+ /**
+  * @description Collection of polling references to the polling mechanism in handleReadyState.
+  * @property _poll
+  * @private
+  * @static
+  * @type object
+  */
+    _poll:{},
+
+ /**
+  * @description Queue of timeout values for each transaction callback with a defined timeout value.
+  * @property _timeOut
+  * @private
+  * @static
+  * @type object
+  */
+    _timeOut:{},
+
+  /**
+   * @description The polling frequency, in milliseconds, for HandleReadyState.
+   * when attempting to determine a transaction's XHR readyState.
+   * The default is 50 milliseconds.
+   * @property _polling_interval
+   * @private
+   * @static
+   * @type int
+   */
+     _polling_interval:50,
+
+  /**
+   * @description A transaction counter that increments the transaction id for each transaction.
+   * @property _transaction_id
+   * @private
+   * @static
+   * @type int
+   */
+     _transaction_id:0,
+
+  /**
+   * @description Tracks the name-value pair of the "clicked" submit button if multiple submit
+   * buttons are present in an HTML form; and, if YAHOO.util.Event is available.
+   * @property _submitElementValue
+   * @private
+   * @static
+   * @type string
+   */
+	 _submitElementValue:null,
+
+  /**
+   * @description Determines whether YAHOO.util.Event is available and returns true or false.
+   * If true, an event listener is bound at the document level to trap click events that
+   * resolve to a target type of "Submit".  This listener will enable setForm() to determine
+   * the clicked "Submit" value in a multi-Submit button, HTML form.
+   * @property _hasSubmitListener
+   * @private
+   * @static
+   */
+	 _hasSubmitListener:(function()
+	 {
+		if(YAHOO.util.Event){
+			YAHOO.util.Event.addListener(
+				document,
+				'click',
+				function(e){
+					var obj = YAHOO.util.Event.getTarget(e);
+					if(obj.type && obj.type.toLowerCase() == 'submit'){
+						YAHOO.util.Connect._submitElementValue = encodeURIComponent(obj.name) + "=" + encodeURIComponent(obj.value);
+					}
+				});
+			return true;
+	    }
+	    return false;
+	 })(),
+
+  /**
+   * @description Custom event that fires at the start of a transaction
+   * @property startEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	startEvent: new YAHOO.util.CustomEvent('start'),
+
+  /**
+   * @description Custom event that fires when a transaction response has completed.
+   * @property completeEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	completeEvent: new YAHOO.util.CustomEvent('complete'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 2xx range.
+   * @property successEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	successEvent: new YAHOO.util.CustomEvent('success'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 4xx/5xx range.
+   * @property failureEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	failureEvent: new YAHOO.util.CustomEvent('failure'),
+
+  /**
+   * @description Custom event that fires when handleTransactionResponse() determines a
+   * response in the HTTP 4xx/5xx range.
+   * @property failureEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	uploadEvent: new YAHOO.util.CustomEvent('upload'),
+
+  /**
+   * @description Custom event that fires when a transaction is successfully aborted.
+   * @property abortEvent
+   * @private
+   * @static
+   * @type CustomEvent
+   */
+	abortEvent: new YAHOO.util.CustomEvent('abort'),
+
+  /**
+   * @description A reference table that maps callback custom events members to its specific
+   * event name.
+   * @property _customEvents
+   * @private
+   * @static
+   * @type object
+   */
+	_customEvents:
+	{
+		onStart:['startEvent', 'start'],
+		onComplete:['completeEvent', 'complete'],
+		onSuccess:['successEvent', 'success'],
+		onFailure:['failureEvent', 'failure'],
+		onUpload:['uploadEvent', 'upload'],
+		onAbort:['abortEvent', 'abort']
+	},
+
+  /**
+   * @description Member to add an ActiveX id to the existing xml_progid array.
+   * In the event(unlikely) a new ActiveX id is introduced, it can be added
+   * without internal code modifications.
+   * @method setProgId
+   * @public
+   * @static
+   * @param {string} id The ActiveX id to be added to initialize the XHR object.
+   * @return void
+   */
+	setProgId:function(id)
+	{
+		this._msxml_progid.unshift(id);
+		YAHOO.log('ActiveX Program Id  ' + id + ' added to _msxml_progid.', 'info', 'Connection');
+	},
+
+  /**
+   * @description Member to override the default POST header.
+   * @method setDefaultPostHeader
+   * @public
+   * @static
+   * @param {boolean} b Set and use default header - true or false .
+   * @return void
+   */
+	setDefaultPostHeader:function(b)
+	{
+		if(typeof b == 'string'){
+			this._default_post_header = b;
+			YAHOO.log('Default POST header set to  ' + b, 'info', 'Connection');
+		}
+		else if(typeof b == 'boolean'){
+			this._use_default_post_header = b;
+		}
+	},
+
+  /**
+   * @description Member to override the default transaction header..
+   * @method setDefaultXhrHeader
+   * @public
+   * @static
+   * @param {boolean} b Set and use default header - true or false .
+   * @return void
+   */
+	setDefaultXhrHeader:function(b)
+	{
+		if(typeof b == 'string'){
+			this._default_xhr_header = b;
+			YAHOO.log('Default XHR header set to  ' + b, 'info', 'Connection');
+		}
+		else{
+			this._use_default_xhr_header = b;
+		}
+	},
+
+  /**
+   * @description Member to modify the default polling interval.
+   * @method setPollingInterval
+   * @public
+   * @static
+   * @param {int} i The polling interval in milliseconds.
+   * @return void
+   */
+	setPollingInterval:function(i)
+	{
+		if(typeof i == 'number' && isFinite(i)){
+			this._polling_interval = i;
+			YAHOO.log('Default polling interval set to ' + i +'ms', 'info', 'Connection');
+		}
+	},
+
+  /**
+   * @description Instantiates a XMLHttpRequest object and returns an object with two properties:
+   * the XMLHttpRequest instance and the transaction id.
+   * @method createXhrObject
+   * @private
+   * @static
+   * @param {int} transactionId Property containing the transaction id for this transaction.
+   * @return object
+   */
+	createXhrObject:function(transactionId)
+	{
+		var obj,http;
+		try
+		{
+			// Instantiates XMLHttpRequest in non-IE browsers and assigns to http.
+			http = new XMLHttpRequest();
+			//  Object literal with http and tId properties
+			obj = { conn:http, tId:transactionId };
+			YAHOO.log('XHR object created for transaction ' + transactionId, 'info', 'Connection');
+		}
+		catch(e)
+		{
+			for(var i=0; i<this._msxml_progid.length; ++i){
+				try
+				{
+					// Instantiates XMLHttpRequest for IE and assign to http
+					http = new ActiveXObject(this._msxml_progid[i]);
+					//  Object literal with conn and tId properties
+					obj = { conn:http, tId:transactionId };
+					YAHOO.log('ActiveX XHR object created for transaction ' + transactionId, 'info', 'Connection');
+					break;
+				}
+				catch(e){}
+			}
+		}
+		finally
+		{
+			return obj;
+		}
+	},
+
+  /**
+   * @description This method is called by asyncRequest to create a
+   * valid connection object for the transaction.  It also passes a
+   * transaction id and increments the transaction id counter.
+   * @method getConnectionObject
+   * @private
+   * @static
+   * @return {object}
+   */
+	getConnectionObject:function(isFileUpload)
+	{
+		var o;
+		var tId = this._transaction_id;
+
+		try
+		{
+			if(!isFileUpload){
+				o = this.createXhrObject(tId);
+			}
+			else{
+				o = {};
+				o.tId = tId;
+				o.isUpload = true;
+			}
+
+			if(o){
+				this._transaction_id++;
+			}
+		}
+		catch(e){}
+		finally
+		{
+			return o;
+		}
+	},
+
+  /**
+   * @description Method for initiating an asynchronous request via the XHR object.
+   * @method asyncRequest
+   * @public
+   * @static
+   * @param {string} method HTTP transaction method
+   * @param {string} uri Fully qualified path of resource
+   * @param {callback} callback User-defined callback function or object
+   * @param {string} postData POST body
+   * @return {object} Returns the connection object
+   */
+	asyncRequest:function(method, uri, callback, postData)
+	{
+		var o = (this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		if(!o){
+			YAHOO.log('Unable to create connection object.', 'error', 'Connection');
+			return null;
+		}
+		else{
+
+			// Intialize any transaction-specific custom events, if provided.
+			if(callback && callback.customevents){
+				this.initCustomEvents(o, callback);
+			}
+
+			if(this._isFormSubmit){
+				if(this._isFileUpload){
+					this.uploadFile(o, callback, uri, postData);
+					return o;
+				}
+
+				// If the specified HTTP method is GET, setForm() will return an
+				// encoded string that is concatenated to the uri to
+				// create a querystring.
+				if(method.toUpperCase() == 'GET'){
+					if(this._sFormData.length !== 0){
+						// If the URI already contains a querystring, append an ampersand
+						// and then concatenate _sFormData to the URI.
+						uri += ((uri.indexOf('?') == -1)?'?':'&') + this._sFormData;
+					}
+				}
+				else if(method.toUpperCase() == 'POST'){
+					// If POST data exist in addition to the HTML form data,
+					// it will be concatenated to the form data.
+					postData = postData?this._sFormData + "&" + postData:this._sFormData;
+				}
+			}
+
+			if(method.toUpperCase() == 'GET' && (callback && callback.cache === false)){
+				// If callback.cache is defined and set to false, a
+				// timestamp value will be added to the querystring.
+				uri += ((uri.indexOf('?') == -1)?'?':'&') + "rnd=" + new Date().valueOf().toString();
+			}
+
+			o.conn.open(method, uri, true);
+
+			// Each transaction will automatically include a custom header of
+			// "X-Requested-With: XMLHttpRequest" to identify the request as
+			// having originated from Connection Manager.
+			if(this._use_default_xhr_header){
+				if(!this._default_headers['X-Requested-With']){
+					this.initHeader('X-Requested-With', this._default_xhr_header, true);
+					YAHOO.log('Initialize transaction header X-Request-Header to XMLHttpRequest.', 'info', 'Connection');
+				}
+			}
+
+			//If the transaction method is POST and the POST header value is set to true
+			//or a custom value, initalize the Content-Type header to this value.
+			if((method.toUpperCase() == 'POST' && this._use_default_post_header) && this._isFormSubmit === false){
+				this.initHeader('Content-Type', this._default_post_header);
+				YAHOO.log('Initialize header Content-Type to application/x-www-form-urlencoded; UTF-8 for POST transaction.', 'info', 'Connection');
+			}
+
+			//Initialize all default and custom HTTP headers,
+			if(this._has_default_headers || this._has_http_headers){
+				this.setHeader(o);
+			}
+
+			this.handleReadyState(o, callback);
+			o.conn.send(postData || null);
+			YAHOO.log('Transaction ' + o.tId + ' sent.', 'info', 'Connection');
+
+
+			// Reset the HTML form data and state properties as
+			// soon as the data are submitted.
+			if(this._isFormSubmit === true){
+				this.resetFormState();
+			}
+
+			// Fire global custom event -- startEvent
+			this.startEvent.fire(o, args);
+
+			if(o.startEvent){
+				// Fire transaction custom event -- startEvent
+				o.startEvent.fire(o, args);
+			}
+
+			return o;
+		}
+	},
+
+  /**
+   * @description This method creates and subscribes custom events,
+   * specific to each transaction
+   * @method initCustomEvents
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callback} callback The user-defined callback object
+   * @return {void}
+   */
+	initCustomEvents:function(o, callback)
+	{
+		// Enumerate through callback.customevents members and bind/subscribe
+		// events that match in the _customEvents table.
+		for(var prop in callback.customevents){
+			if(this._customEvents[prop][0]){
+				// Create the custom event
+				o[this._customEvents[prop][0]] = new YAHOO.util.CustomEvent(this._customEvents[prop][1], (callback.scope)?callback.scope:null);
+				YAHOO.log('Transaction-specific Custom Event ' + o[this._customEvents[prop][1]] + ' created.', 'info', 'Connection');
+
+				// Subscribe the custom event
+				o[this._customEvents[prop][0]].subscribe(callback.customevents[prop]);
+				YAHOO.log('Transaction-specific Custom Event ' + o[this._customEvents[prop][1]] + ' subscribed.', 'info', 'Connection');
+			}
+		}
+	},
+
+  /**
+   * @description This method serves as a timer that polls the XHR object's readyState
+   * property during a transaction, instead of binding a callback to the
+   * onreadystatechange event.  Upon readyState 4, handleTransactionResponse
+   * will process the response, and the timer will be cleared.
+   * @method handleReadyState
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callback} callback The user-defined callback object
+   * @return {void}
+   */
+
+    handleReadyState:function(o, callback)
+
+    {
+		var oConn = this;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		if(callback && callback.timeout){
+			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);
+		}
+
+		this._poll[o.tId] = window.setInterval(
+			function(){
+				if(o.conn && o.conn.readyState === 4){
+
+					// Clear the polling interval for the transaction
+					// and remove the reference from _poll.
+					window.clearInterval(oConn._poll[o.tId]);
+					delete oConn._poll[o.tId];
+
+					if(callback && callback.timeout){
+						window.clearTimeout(oConn._timeOut[o.tId]);
+						delete oConn._timeOut[o.tId];
+					}
+
+					// Fire global custom event -- completeEvent
+					oConn.completeEvent.fire(o, args);
+
+					if(o.completeEvent){
+						// Fire transaction custom event -- completeEvent
+						o.completeEvent.fire(o, args);
+					}
+
+					oConn.handleTransactionResponse(o, callback);
+				}
+			}
+		,this._polling_interval);
+    },
+
+  /**
+   * @description This method attempts to interpret the server response and
+   * determine whether the transaction was successful, or if an error or
+   * exception was encountered.
+   * @method handleTransactionResponse
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {object} callback The user-defined callback object
+   * @param {boolean} isAbort Determines if the transaction was terminated via abort().
+   * @return {void}
+   */
+    handleTransactionResponse:function(o, callback, isAbort)
+    {
+		var httpStatus, responseObject;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		try
+		{
+			if(o.conn.status !== undefined && o.conn.status !== 0){
+				httpStatus = o.conn.status;
+			}
+			else{
+				httpStatus = 13030;
+			}
+		}
+		catch(e){
+
+			 // 13030 is a custom code to indicate the condition -- in Mozilla/FF --
+			 // when the XHR object's status and statusText properties are
+			 // unavailable, and a query attempt throws an exception.
+			httpStatus = 13030;
+		}
+
+		if(httpStatus >= 200 && httpStatus < 300 || httpStatus === 1223){
+			responseObject = this.createResponseObject(o, args);
+			if(callback && callback.success){
+				if(!callback.scope){
+					callback.success(responseObject);
+					YAHOO.log('Success callback. HTTP code is ' + httpStatus, 'info', 'Connection');
+				}
+				else{
+					// If a scope property is defined, the callback will be fired from
+					// the context of the object.
+					callback.success.apply(callback.scope, [responseObject]);
+					YAHOO.log('Success callback with scope. HTTP code is ' + httpStatus, 'info', 'Connection');
+				}
+			}
+
+			// Fire global custom event -- successEvent
+			this.successEvent.fire(responseObject);
+
+			if(o.successEvent){
+				// Fire transaction custom event -- successEvent
+				o.successEvent.fire(responseObject);
+			}
+		}
+		else{
+			switch(httpStatus){
+				// The following cases are wininet.dll error codes that may be encountered.
+				case 12002: // Server timeout
+				case 12029: // 12029 to 12031 correspond to dropped connections.
+				case 12030:
+				case 12031:
+				case 12152: // Connection closed by server.
+				case 13030: // See above comments for variable status.
+					responseObject = this.createExceptionObject(o.tId, args, (isAbort?isAbort:false));
+					if(callback && callback.failure){
+						if(!callback.scope){
+							callback.failure(responseObject);
+							YAHOO.log('Failure callback. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection');
+						}
+						else{
+							callback.failure.apply(callback.scope, [responseObject]);
+							YAHOO.log('Failure callback with scope. Exception detected. Status code is ' + httpStatus, 'warn', 'Connection');
+						}
+					}
+
+					break;
+				default:
+					responseObject = this.createResponseObject(o, args);
+					if(callback && callback.failure){
+						if(!callback.scope){
+							callback.failure(responseObject);
+							YAHOO.log('Failure callback. HTTP status code is ' + httpStatus, 'warn', 'Connection');
+						}
+						else{
+							callback.failure.apply(callback.scope, [responseObject]);
+							YAHOO.log('Failure callback with scope. HTTP status code is ' + httpStatus, 'warn', 'Connection');
+						}
+					}
+			}
+
+			// Fire global custom event -- failureEvent
+			this.failureEvent.fire(responseObject);
+
+			if(o.failureEvent){
+				// Fire transaction custom event -- failureEvent
+				o.failureEvent.fire(responseObject);
+			}
+
+		}
+
+		this.releaseObject(o);
+		responseObject = null;
+    },
+
+  /**
+   * @description This method evaluates the server response, creates and returns the results via
+   * its properties.  Success and failure cases will differ in the response
+   * object's property values.
+   * @method createResponseObject
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
+   * @return {object}
+   */
+    createResponseObject:function(o, callbackArg)
+    {
+		var obj = {};
+		var headerObj = {};
+
+		try
+		{
+			var headerStr = o.conn.getAllResponseHeaders();
+			var header = headerStr.split('\n');
+			for(var i=0; i<header.length; i++){
+				var delimitPos = header[i].indexOf(':');
+				if(delimitPos != -1){
+					headerObj[header[i].substring(0,delimitPos)] = header[i].substring(delimitPos+2);
+				}
+			}
+		}
+		catch(e){}
+
+		obj.tId = o.tId;
+		// Normalize IE's response to HTTP 204 when Win error 1223.
+		obj.status = (o.conn.status == 1223)?204:o.conn.status;
+		// Normalize IE's statusText to "No Content" instead of "Unknown".
+		obj.statusText = (o.conn.status == 1223)?"No Content":o.conn.statusText;
+		obj.getResponseHeader = headerObj;
+		obj.getAllResponseHeaders = headerStr;
+		obj.responseText = o.conn.responseText;
+		obj.responseXML = o.conn.responseXML;
+
+		if(callbackArg){
+			obj.argument = callbackArg;
+		}
+
+		return obj;
+    },
+
+  /**
+   * @description If a transaction cannot be completed due to dropped or closed connections,
+   * there may be not be enough information to build a full response object.
+   * The failure callback will be fired and this specific condition can be identified
+   * by a status property value of 0.
+   *
+   * If an abort was successful, the status property will report a value of -1.
+   *
+   * @method createExceptionObject
+   * @private
+   * @static
+   * @param {int} tId The Transaction Id
+   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback
+   * @param {boolean} isAbort Determines if the exception case is caused by a transaction abort
+   * @return {object}
+   */
+    createExceptionObject:function(tId, callbackArg, isAbort)
+    {
+		var COMM_CODE = 0;
+		var COMM_ERROR = 'communication failure';
+		var ABORT_CODE = -1;
+		var ABORT_ERROR = 'transaction aborted';
+
+		var obj = {};
+
+		obj.tId = tId;
+		if(isAbort){
+			obj.status = ABORT_CODE;
+			obj.statusText = ABORT_ERROR;
+		}
+		else{
+			obj.status = COMM_CODE;
+			obj.statusText = COMM_ERROR;
+		}
+
+		if(callbackArg){
+			obj.argument = callbackArg;
+		}
+
+		return obj;
+    },
+
+  /**
+   * @description Method that initializes the custom HTTP headers for the each transaction.
+   * @method initHeader
+   * @public
+   * @static
+   * @param {string} label The HTTP header label
+   * @param {string} value The HTTP header value
+   * @param {string} isDefault Determines if the specific header is a default header
+   * automatically sent with each transaction.
+   * @return {void}
+   */
+	initHeader:function(label, value, isDefault)
+	{
+		var headerObj = (isDefault)?this._default_headers:this._http_headers;
+		headerObj[label] = value;
+
+		if(isDefault){
+			this._has_default_headers = true;
+		}
+		else{
+			this._has_http_headers = true;
+		}
+	},
+
+
+  /**
+   * @description Accessor that sets the HTTP headers for each transaction.
+   * @method setHeader
+   * @private
+   * @static
+   * @param {object} o The connection object for the transaction.
+   * @return {void}
+   */
+	setHeader:function(o)
+	{
+		if(this._has_default_headers){
+			for(var prop in this._default_headers){
+				if(YAHOO.lang.hasOwnProperty(this._default_headers, prop)){
+					o.conn.setRequestHeader(prop, this._default_headers[prop]);
+					YAHOO.log('Default HTTP header ' + prop + ' set with value of ' + this._default_headers[prop], 'info', 'Connection');
+				}
+			}
+		}
+
+		if(this._has_http_headers){
+			for(var prop in this._http_headers){
+				if(YAHOO.lang.hasOwnProperty(this._http_headers, prop)){
+					o.conn.setRequestHeader(prop, this._http_headers[prop]);
+					YAHOO.log('HTTP header ' + prop + ' set with value of ' + this._http_headers[prop], 'info', 'Connection');
+				}
+			}
+			delete this._http_headers;
+
+			this._http_headers = {};
+			this._has_http_headers = false;
+		}
+	},
+
+  /**
+   * @description Resets the default HTTP headers object
+   * @method resetDefaultHeaders
+   * @public
+   * @static
+   * @return {void}
+   */
+	resetDefaultHeaders:function(){
+		delete this._default_headers;
+		this._default_headers = {};
+		this._has_default_headers = false;
+	},
+
+  /**
+   * @description This method assembles the form label and value pairs and
+   * constructs an encoded string.
+   * asyncRequest() will automatically initialize the transaction with a
+   * a HTTP header Content-Type of application/x-www-form-urlencoded.
+   * @method setForm
+   * @public
+   * @static
+   * @param {string || object} form id or name attribute, or form object.
+   * @param {boolean} optional enable file upload.
+   * @param {boolean} optional enable file upload over SSL in IE only.
+   * @return {string} string of the HTML form field name and value pairs..
+   */
+	setForm:function(formId, isUpload, secureUri)
+	{
+		// reset the HTML form data and state properties
+		this.resetFormState();
+
+		var oForm;
+		if(typeof formId == 'string'){
+			// Determine if the argument is a form id or a form name.
+			// Note form name usage is deprecated, but supported
+			// here for backward compatibility.
+			oForm = (document.getElementById(formId) || document.forms[formId]);
+		}
+		else if(typeof formId == 'object'){
+			// Treat argument as an HTML form object.
+			oForm = formId;
+		}
+		else{
+			YAHOO.log('Unable to create form object ' + formId, 'warn', 'Connection');
+			return;
+		}
+
+		// If the isUpload argument is true, setForm will call createFrame to initialize
+		// an iframe as the form target.
+		//
+		// The argument secureURI is also required by IE in SSL environments
+		// where the secureURI string is a fully qualified HTTP path, used to set the source
+		// of the iframe, to a stub resource in the same domain.
+		if(isUpload){
+
+			// Create iframe in preparation for file upload.
+			var io = this.createFrame(secureUri?secureUri:null);
+			// Set form reference and file upload properties to true.
+			this._isFormSubmit = true;
+			this._isFileUpload = true;
+			this._formNode = oForm;
+
+			return;
+
+		}
+
+		var oElement, oName, oValue, oDisabled;
+		var hasSubmit = false;
+
+		// Iterate over the form elements collection to construct the
+		// label-value pairs.
+		for (var i=0; i<oForm.elements.length; i++){
+			oElement = oForm.elements[i];
+			oDisabled = oElement.disabled;
+			oName = oElement.name;
+			oValue = oElement.value;
+
+			// Do not submit fields that are disabled or
+			// do not have a name attribute value.
+			if(!oDisabled && oName)
+			{
+				switch(oElement.type)
+				{
+					case 'select-one':
+					case 'select-multiple':
+						for(var j=0; j<oElement.options.length; j++){
+							if(oElement.options[j].selected){
+								if(window.ActiveXObject){
+									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';
+								}
+								else{
+									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';
+								}
+							}
+						}
+						break;
+					case 'radio':
+					case 'checkbox':
+						if(oElement.checked){
+							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+						}
+						break;
+					case 'file':
+						// stub case as XMLHttpRequest will only send the file path as a string.
+					case undefined:
+						// stub case for fieldset element which returns undefined.
+					case 'reset':
+						// stub case for input type reset button.
+					case 'button':
+						// stub case for input type button elements.
+						break;
+					case 'submit':
+						if(hasSubmit === false){
+							if(this._hasSubmitListener && this._submitElementValue){
+								this._sFormData += this._submitElementValue + '&';
+							}
+							else{
+								this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+							}
+
+							hasSubmit = true;
+						}
+						break;
+					default:
+						this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';
+				}
+			}
+		}
+
+		this._isFormSubmit = true;
+		this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);
+
+		YAHOO.log('Form initialized for transaction. HTML form POST message is: ' + this._sFormData, 'info', 'Connection');
+
+		this.initHeader('Content-Type', this._default_form_header);
+		YAHOO.log('Initialize header Content-Type to application/x-www-form-urlencoded for setForm() transaction.', 'info', 'Connection');
+
+		return this._sFormData;
+	},
+
+  /**
+   * @description Resets HTML form properties when an HTML form or HTML form
+   * with file upload transaction is sent.
+   * @method resetFormState
+   * @private
+   * @static
+   * @return {void}
+   */
+	resetFormState:function(){
+		this._isFormSubmit = false;
+		this._isFileUpload = false;
+		this._formNode = null;
+		this._sFormData = "";
+	},
+
+  /**
+   * @description Creates an iframe to be used for form file uploads.  It is remove from the
+   * document upon completion of the upload transaction.
+   * @method createFrame
+   * @private
+   * @static
+   * @param {string} optional qualified path of iframe resource for SSL in IE.
+   * @return {void}
+   */
+	createFrame:function(secureUri){
+
+		// IE does not allow the setting of id and name attributes as object
+		// properties via createElement().  A different iframe creation
+		// pattern is required for IE.
+		var frameId = 'yuiIO' + this._transaction_id;
+		var io;
+		if(window.ActiveXObject){
+			io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
+
+			// IE will throw a security exception in an SSL environment if the
+			// iframe source is undefined.
+			if(typeof secureUri == 'boolean'){
+				io.src = 'javascript:false';
+			}
+			else if(typeof secureURI == 'string'){
+				// Deprecated
+				io.src = secureUri;
+			}
+		}
+		else{
+			io = document.createElement('iframe');
+			io.id = frameId;
+			io.name = frameId;
+		}
+
+		io.style.position = 'absolute';
+		io.style.top = '-1000px';
+		io.style.left = '-1000px';
+
+		document.body.appendChild(io);
+		YAHOO.log('File upload iframe created. Id is:' + frameId, 'info', 'Connection');
+	},
+
+  /**
+   * @description Parses the POST data and creates hidden form elements
+   * for each key-value, and appends them to the HTML form object.
+   * @method appendPostData
+   * @private
+   * @static
+   * @param {string} postData The HTTP POST data
+   * @return {array} formElements Collection of hidden fields.
+   */
+	appendPostData:function(postData)
+	{
+		var formElements = [];
+		var postMessage = postData.split('&');
+		for(var i=0; i < postMessage.length; i++){
+			var delimitPos = postMessage[i].indexOf('=');
+			if(delimitPos != -1){
+				formElements[i] = document.createElement('input');
+				formElements[i].type = 'hidden';
+				formElements[i].name = postMessage[i].substring(0,delimitPos);
+				formElements[i].value = postMessage[i].substring(delimitPos+1);
+				this._formNode.appendChild(formElements[i]);
+			}
+		}
+
+		return formElements;
+	},
+
+  /**
+   * @description Uploads HTML form, inclusive of files/attachments, using the
+   * iframe created in createFrame to facilitate the transaction.
+   * @method uploadFile
+   * @private
+   * @static
+   * @param {int} id The transaction id.
+   * @param {object} callback User-defined callback object.
+   * @param {string} uri Fully qualified path of resource.
+   * @param {string} postData POST data to be submitted in addition to HTML form.
+   * @return {void}
+   */
+	uploadFile:function(o, callback, uri, postData){
+
+		// Each iframe has an id prefix of "yuiIO" followed
+		// by the unique transaction id.
+		var oConn = this;
+		var frameId = 'yuiIO' + o.tId;
+		var uploadEncoding = 'multipart/form-data';
+		var io = document.getElementById(frameId);
+		var args = (callback && callback.argument)?callback.argument:null;
+
+		// Track original HTML form attribute values.
+		var rawFormAttributes =
+		{
+			action:this._formNode.getAttribute('action'),
+			method:this._formNode.getAttribute('method'),
+			target:this._formNode.getAttribute('target')
+		};
+
+		// Initialize the HTML form properties in case they are
+		// not defined in the HTML form.
+		this._formNode.setAttribute('action', uri);
+		this._formNode.setAttribute('method', 'POST');
+		this._formNode.setAttribute('target', frameId);
+
+		if(this._formNode.encoding){
+			// IE does not respect property enctype for HTML forms.
+			// Instead it uses the property - "encoding".
+			this._formNode.setAttribute('encoding', uploadEncoding);
+		}
+		else{
+			this._formNode.setAttribute('enctype', uploadEncoding);
+		}
+
+		if(postData){
+			var oElements = this.appendPostData(postData);
+		}
+
+		// Start file upload.
+		this._formNode.submit();
+
+		// Fire global custom event -- startEvent
+		this.startEvent.fire(o, args);
+
+		if(o.startEvent){
+			// Fire transaction custom event -- startEvent
+			o.startEvent.fire(o, args);
+		}
+
+		// Start polling if a callback is present and the timeout
+		// property has been defined.
+		if(callback && callback.timeout){
+			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);
+		}
+
+		// Remove HTML elements created by appendPostData
+		if(oElements && oElements.length > 0){
+			for(var i=0; i < oElements.length; i++){
+				this._formNode.removeChild(oElements[i]);
+			}
+		}
+
+		// Restore HTML form attributes to their original
+		// values prior to file upload.
+		for(var prop in rawFormAttributes){
+			if(YAHOO.lang.hasOwnProperty(rawFormAttributes, prop)){
+				if(rawFormAttributes[prop]){
+					this._formNode.setAttribute(prop, rawFormAttributes[prop]);
+				}
+				else{
+					this._formNode.removeAttribute(prop);
+				}
+			}
+		}
+
+		// Reset HTML form state properties.
+		this.resetFormState();
+
+		// Create the upload callback handler that fires when the iframe
+		// receives the load event.  Subsequently, the event handler is detached
+		// and the iframe removed from the document.
+		var uploadCallback = function()
+		{
+			if(callback && callback.timeout){
+				window.clearTimeout(oConn._timeOut[o.tId]);
+				delete oConn._timeOut[o.tId];
+			}
+
+			// Fire global custom event -- completeEvent
+			oConn.completeEvent.fire(o, args);
+
+			if(o.completeEvent){
+				// Fire transaction custom event -- completeEvent
+				o.completeEvent.fire(o, args);
+			}
+
+			var obj = {};
+			obj.tId = o.tId;
+			obj.argument = callback.argument;
+
+			try
+			{
+				// responseText and responseXML will be populated with the same data from the iframe.
+				// Since the HTTP headers cannot be read from the iframe
+				obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:io.contentWindow.document.documentElement.textContent;
+				obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
+			}
+			catch(e){}
+
+			if(callback && callback.upload){
+				if(!callback.scope){
+					callback.upload(obj);
+					YAHOO.log('Upload callback.', 'info', 'Connection');
+				}
+				else{
+					callback.upload.apply(callback.scope, [obj]);
+					YAHOO.log('Upload callback with scope.', 'info', 'Connection');
+				}
+			}
+
+			// Fire global custom event -- uploadEvent
+			oConn.uploadEvent.fire(obj);
+
+			if(o.uploadEvent){
+				// Fire transaction custom event -- uploadEvent
+				o.uploadEvent.fire(obj);
+			}
+
+			YAHOO.util.Event.removeListener(io, "load", uploadCallback);
+
+			setTimeout(
+				function(){
+					document.body.removeChild(io);
+					oConn.releaseObject(o);
+					YAHOO.log('File upload iframe destroyed. Id is:' + frameId, 'info', 'Connection');
+				}, 100);
+		};
+
+		// Bind the onload handler to the iframe to detect the file upload response.
+		YAHOO.util.Event.addListener(io, "load", uploadCallback);
+	},
+
+  /**
+   * @description Method to terminate a transaction, if it has not reached readyState 4.
+   * @method abort
+   * @public
+   * @static
+   * @param {object} o The connection object returned by asyncRequest.
+   * @param {object} callback  User-defined callback object.
+   * @param {string} isTimeout boolean to indicate if abort resulted from a callback timeout.
+   * @return {boolean}
+   */
+	abort:function(o, callback, isTimeout)
+	{
+		var abortStatus;
+		var args = (callback && callback.argument)?callback.argument:null;
+
+
+		if(o && o.conn){
+			if(this.isCallInProgress(o)){
+				// Issue abort request
+				o.conn.abort();
+
+				window.clearInterval(this._poll[o.tId]);
+				delete this._poll[o.tId];
+
+				if(isTimeout){
+					window.clearTimeout(this._timeOut[o.tId]);
+					delete this._timeOut[o.tId];
+				}
+
+				abortStatus = true;
+			}
+		}
+		else if(o && o.isUpload === true){
+			var frameId = 'yuiIO' + o.tId;
+			var io = document.getElementById(frameId);
+
+			if(io){
+				// Remove all listeners on the iframe prior to
+				// its destruction.
+				YAHOO.util.Event.removeListener(io, "load");
+				// Destroy the iframe facilitating the transaction.
+				document.body.removeChild(io);
+				YAHOO.log('File upload iframe destroyed. Id is:' + frameId, 'info', 'Connection');
+
+				if(isTimeout){
+					window.clearTimeout(this._timeOut[o.tId]);
+					delete this._timeOut[o.tId];
+				}
+
+				abortStatus = true;
+			}
+		}
+		else{
+			abortStatus = false;
+		}
+
+		if(abortStatus === true){
+			// Fire global custom event -- abortEvent
+			this.abortEvent.fire(o, args);
+
+			if(o.abortEvent){
+				// Fire transaction custom event -- abortEvent
+				o.abortEvent.fire(o, args);
+			}
+
+			this.handleTransactionResponse(o, callback, true);
+			YAHOO.log('Transaction ' + o.tId + ' aborted.', 'info', 'Connection');
+		}
+
+		return abortStatus;
+	},
+
+  /**
+   * @description Determines if the transaction is still being processed.
+   * @method isCallInProgress
+   * @public
+   * @static
+   * @param {object} o The connection object returned by asyncRequest
+   * @return {boolean}
+   */
+	isCallInProgress:function(o)
+	{
+		// if the XHR object assigned to the transaction has not been dereferenced,
+		// then check its readyState status.  Otherwise, return false.
+		if(o && o.conn){
+			return o.conn.readyState !== 4 && o.conn.readyState !== 0;
+		}
+		else if(o && o.isUpload === true){
+			var frameId = 'yuiIO' + o.tId;
+			return document.getElementById(frameId)?true:false;
+		}
+		else{
+			return false;
+		}
+	},
+
+  /**
+   * @description Dereference the XHR instance and the connection object after the transaction is completed.
+   * @method releaseObject
+   * @private
+   * @static
+   * @param {object} o The connection object
+   * @return {void}
+   */
+	releaseObject:function(o)
+	{
+		if(o && o.conn){
+			//dereference the XHR instance.
+			o.conn = null;
+
+			YAHOO.log('Connection object for transaction ' + o.tId + ' destroyed.', 'info', 'Connection');
+
+			//dereference the connection object.
+			o = null;
+		}
+	}
+};
+
+YAHOO.register("connection", YAHOO.util.Connect, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/connection/connection-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dom/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/dom/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dom/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/dom/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dom/dom.js
===================================================================
--- tags/2.7.0/wb/include/yui/dom/dom.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dom/dom.js	(revision 838)
@@ -0,0 +1,1224 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The dom module provides helper methods for manipulating Dom elements.
+ * @module dom
+ *
+ */
+
+(function() {
+    var Y = YAHOO.util,     // internal shorthand
+        getStyle,           // for load time browser branching
+        setStyle,           // ditto
+        id_counter = 0,     // for use with generateId
+        propertyCache = {}, // for faster hyphen converts
+        reClassNameCache = {},          // cache regexes for className
+        document = window.document;     // cache for faster lookups
+    
+    // brower detection
+    var isOpera = YAHOO.env.ua.opera,
+        isSafari = YAHOO.env.ua.webkit, 
+        isGecko = YAHOO.env.ua.gecko,
+        isIE = YAHOO.env.ua.ie; 
+    
+    // regex cache
+    var patterns = {
+        HYPHEN: /(-[a-z])/i, // to normalize get/setStyle
+        ROOT_TAG: /^body|html$/i // body for quirks mode, html for standards
+    };
+
+    var toCamel = function(property) {
+        if ( !patterns.HYPHEN.test(property) ) {
+            return property; // no hyphens
+        }
+        
+        if (propertyCache[property]) { // already converted
+            return propertyCache[property];
+        }
+       
+        var converted = property;
+ 
+        while( patterns.HYPHEN.exec(converted) ) {
+            converted = converted.replace(RegExp.$1,
+                    RegExp.$1.substr(1).toUpperCase());
+        }
+        
+        propertyCache[property] = converted;
+        return converted;
+        //return property.replace(/-([a-z])/gi, function(m0, m1) {return m1.toUpperCase()}) // cant use function as 2nd arg yet due to safari bug
+    };
+    
+    var getClassRegEx = function(className) {
+        var re = reClassNameCache[className];
+        if (!re) {
+            re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
+            reClassNameCache[className] = re;
+        }
+        return re;
+    };
+
+    // branching at load instead of runtime
+    if (document.defaultView && document.defaultView.getComputedStyle) { // W3C DOM method
+        getStyle = function(el, property) {
+            var value = null;
+            
+            if (property == 'float') { // fix reserved word
+                property = 'cssFloat';
+            }
+
+            var computed = document.defaultView.getComputedStyle(el, '');
+            if (computed) { // test computed before touching for safari
+                value = computed[toCamel(property)];
+            }
+            
+            return el.style[property] || value;
+        };
+    } else if (document.documentElement.currentStyle && isIE) { // IE method
+        getStyle = function(el, property) {                         
+            switch( toCamel(property) ) {
+                case 'opacity' :// IE opacity uses filter
+                    var val = 100;
+                    try { // will error if no DXImageTransform
+                        val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
+
+                    } catch(e) {
+                        try { // make sure its in the document
+                            val = el.filters('alpha').opacity;
+                        } catch(e) {
+                        }
+                    }
+                    return val / 100;
+                case 'float': // fix reserved word
+                    property = 'styleFloat'; // fall through
+                default: 
+                    // test currentStyle before touching
+                    var value = el.currentStyle ? el.currentStyle[property] : null;
+                    return ( el.style[property] || value );
+            }
+        };
+    } else { // default to inline only
+        getStyle = function(el, property) { return el.style[property]; };
+    }
+    
+    if (isIE) {
+        setStyle = function(el, property, val) {
+            switch (property) {
+                case 'opacity':
+                    if ( YAHOO.lang.isString(el.style.filter) ) { // in case not appended
+                        el.style.filter = 'alpha(opacity=' + val * 100 + ')';
+                        
+                        if (!el.currentStyle || !el.currentStyle.hasLayout) {
+                            el.style.zoom = 1; // when no layout or cant tell
+                        }
+                    }
+                    break;
+                case 'float':
+                    property = 'styleFloat';
+                default:
+                el.style[property] = val;
+            }
+        };
+    } else {
+        setStyle = function(el, property, val) {
+            if (property == 'float') {
+                property = 'cssFloat';
+            }
+            el.style[property] = val;
+        };
+    }
+
+    var testElement = function(node, method) {
+        return node && node.nodeType == 1 && ( !method || method(node) );
+    };
+
+    /**
+     * Provides helper methods for DOM elements.
+     * @namespace YAHOO.util
+     * @class Dom
+     */
+    YAHOO.util.Dom = {
+        /**
+         * Returns an HTMLElement reference.
+         * @method get
+         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements.
+         */
+        get: function(el) {
+            if (el && (el.tagName || el.item)) { // HTMLElement, or HTMLCollection
+                return el;
+            }
+
+            if (YAHOO.lang.isString(el) || !el) { // HTMLElement or null
+                return document.getElementById(el);
+            }
+            
+            if (el.length !== undefined) { // array-like 
+                var c = [];
+                for (var i = 0, len = el.length; i < len; ++i) {
+                    c[c.length] = Y.Dom.get(el[i]);
+                }
+                
+                return c;
+            }
+
+            return el; // some other object, just pass it back
+        },
+    
+        /**
+         * Normalizes currentStyle and ComputedStyle.
+         * @method getStyle
+         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {String} property The style property whose value is returned.
+         * @return {String | Array} The current value of the style property for the element(s).
+         */
+        getStyle: function(el, property) {
+            property = toCamel(property);
+            
+            var f = function(element) {
+                return getStyle(element, property);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Wrapper for setting style properties of HTMLElements.  Normalizes "opacity" across modern browsers.
+         * @method setStyle
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {String} property The style property to be set.
+         * @param {String} val The value to apply to the given property.
+         */
+        setStyle: function(el, property, val) {
+            property = toCamel(property);
+            
+            var f = function(element) {
+                setStyle(element, property, val);
+                
+            };
+            
+            Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getXY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Array} The XY position of the element(s)
+         */
+        getXY: function(el) {
+            var f = function(el) {
+                // has to be part of document to have pageXY
+                if ( (el.parentNode === null || el.offsetParent === null ||
+                        this.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) {
+                    return false;
+                }
+                
+                return getXY(el);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getX
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Number | Array} The X position of the element(s)
+         */
+        getX: function(el) {
+            var f = function(el) {
+                return Y.Dom.getXY(el)[0];
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Number | Array} The Y position of the element(s)
+         */
+        getY: function(el) {
+            var f = function(el) {
+                return Y.Dom.getXY(el)[1];
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Set the position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setXY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @param {Array} pos Contains X & Y values for new position (coordinates are page-based)
+         * @param {Boolean} noRetry By default we try and set the position a second time if the first fails
+         */
+        setXY: function(el, pos, noRetry) {
+            var f = function(el) {
+                var style_pos = this.getStyle(el, 'position');
+                if (style_pos == 'static') { // default to relative
+                    this.setStyle(el, 'position', 'relative');
+                    style_pos = 'relative';
+                }
+
+                var pageXY = this.getXY(el);
+                if (pageXY === false) { // has to be part of doc to have pageXY
+                    return false; 
+                }
+                
+                var delta = [ // assuming pixels; if not we will have to retry
+                    parseInt( this.getStyle(el, 'left'), 10 ),
+                    parseInt( this.getStyle(el, 'top'), 10 )
+                ];
+            
+                if ( isNaN(delta[0]) ) {// in case of 'auto'
+                    delta[0] = (style_pos == 'relative') ? 0 : el.offsetLeft;
+                } 
+                if ( isNaN(delta[1]) ) { // in case of 'auto'
+                    delta[1] = (style_pos == 'relative') ? 0 : el.offsetTop;
+                } 
+        
+                if (pos[0] !== null) { el.style.left = pos[0] - pageXY[0] + delta[0] + 'px'; }
+                if (pos[1] !== null) { el.style.top = pos[1] - pageXY[1] + delta[1] + 'px'; }
+              
+                if (!noRetry) {
+                    var newXY = this.getXY(el);
+
+                    // if retry is true, try one more time if we miss 
+                   if ( (pos[0] !== null && newXY[0] != pos[0]) || 
+                        (pos[1] !== null && newXY[1] != pos[1]) ) {
+                       this.setXY(el, pos, true);
+                   }
+                }        
+        
+            };
+            
+            Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Set the X position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setX
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {Int} x The value to use as the X coordinate for the element(s).
+         */
+        setX: function(el, x) {
+            Y.Dom.setXY(el, [x, null]);
+        },
+        
+        /**
+         * Set the Y position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {Int} x To use as the Y coordinate for the element(s).
+         */
+        setY: function(el, y) {
+            Y.Dom.setXY(el, [null, y]);
+        },
+        
+        /**
+         * Returns the region position of the given element.
+         * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).
+         * @method getRegion
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @return {Region | Array} A Region or array of Region instances containing "top, left, bottom, right" member data.
+         */
+        getRegion: function(el) {
+            var f = function(el) {
+                if ( (el.parentNode === null || el.offsetParent === null ||
+                        this.getStyle(el, 'display') == 'none') && el != document.body) {
+                    return false;
+                }
+
+                var region = Y.Region.getRegion(el);
+                return region;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Returns the width of the client (viewport).
+         * @method getClientWidth
+         * @deprecated Now using getViewportWidth.  This interface left intact for back compat.
+         * @return {Int} The width of the viewable area of the page.
+         */
+        getClientWidth: function() {
+            return Y.Dom.getViewportWidth();
+        },
+        
+        /**
+         * Returns the height of the client (viewport).
+         * @method getClientHeight
+         * @deprecated Now using getViewportHeight.  This interface left intact for back compat.
+         * @return {Int} The height of the viewable area of the page.
+         */
+        getClientHeight: function() {
+            return Y.Dom.getViewportHeight();
+        },
+
+        /**
+         * Returns a array of HTMLElements with the given class.
+         * For optimized performance, include a tag and/or root node when possible.
+         * @method getElementsByClassName
+         * @param {String} className The class name to match against
+         * @param {String} tag (optional) The tag name of the elements being collected
+         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
+         * @param {Function} apply (optional) A function to apply to each element when found 
+         * @return {Array} An array of elements that have the given class name
+         */
+        getElementsByClassName: function(className, tag, root, apply) {
+            tag = tag || '*';
+            root = (root) ? Y.Dom.get(root) : null || document; 
+            if (!root) {
+                return [];
+            }
+
+            var nodes = [],
+                elements = root.getElementsByTagName(tag),
+                re = getClassRegEx(className);
+
+            for (var i = 0, len = elements.length; i < len; ++i) {
+                if ( re.test(elements[i].className) ) {
+                    nodes[nodes.length] = elements[i];
+                    if (apply) {
+                        apply.call(elements[i], elements[i]);
+                    }
+                }
+            }
+            
+            return nodes;
+        },
+
+        /**
+         * Determines whether an HTMLElement has the given className.
+         * @method hasClass
+         * @param {String | HTMLElement | Array} el The element or collection to test
+         * @param {String} className the class name to search for
+         * @return {Boolean | Array} A boolean value or array of boolean values
+         */
+        hasClass: function(el, className) {
+            var re = getClassRegEx(className);
+
+            var f = function(el) {
+                return re.test(el.className);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Adds a class name to a given element or collection of elements.
+         * @method addClass         
+         * @param {String | HTMLElement | Array} el The element or collection to add the class to
+         * @param {String} className the class name to add to the class attribute
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        addClass: function(el, className) {
+            var f = function(el) {
+                if (this.hasClass(el, className)) {
+                    return false; // already present
+                }
+                
+                
+                el.className = YAHOO.lang.trim([el.className, className].join(' '));
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Removes a class name from a given element or collection of elements.
+         * @method removeClass         
+         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
+         * @param {String} className the class name to remove from the class attribute
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        removeClass: function(el, className) {
+            var re = getClassRegEx(className);
+            
+            var f = function(el) {
+                if (!this.hasClass(el, className)) {
+                    return false; // not present
+                }                 
+
+                
+                var c = el.className;
+                el.className = c.replace(re, ' ');
+                if ( this.hasClass(el, className) ) { // in case of multiple adjacent
+                    this.removeClass(el, className);
+                }
+
+                el.className = YAHOO.lang.trim(el.className); // remove any trailing spaces
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Replace a class with another class for a given element or collection of elements.
+         * If no oldClassName is present, the newClassName is simply added.
+         * @method replaceClass  
+         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
+         * @param {String} oldClassName the class name to be replaced
+         * @param {String} newClassName the class name that will be replacing the old class name
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        replaceClass: function(el, oldClassName, newClassName) {
+            if (!newClassName || oldClassName === newClassName) { // avoid infinite loop
+                return false;
+            }
+            
+            var re = getClassRegEx(oldClassName);
+
+            var f = function(el) {
+            
+                if ( !this.hasClass(el, oldClassName) ) {
+                    this.addClass(el, newClassName); // just add it if nothing to replace
+                    return true; // NOTE: return
+                }
+            
+                el.className = el.className.replace(re, ' ' + newClassName + ' ');
+
+                if ( this.hasClass(el, oldClassName) ) { // in case of multiple adjacent
+                    this.replaceClass(el, oldClassName, newClassName);
+                }
+
+                el.className = YAHOO.lang.trim(el.className); // remove any trailing spaces
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Returns an ID and applies it to the element "el", if provided.
+         * @method generateId  
+         * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present).
+         * @param {String} prefix (optional) an optional prefix to use (defaults to "yui-gen").
+         * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element)
+         */
+        generateId: function(el, prefix) {
+            prefix = prefix || 'yui-gen';
+
+            var f = function(el) {
+                if (el && el.id) { // do not override existing ID
+                    return el.id;
+                } 
+
+                var id = prefix + id_counter++;
+
+                if (el) {
+                    el.id = id;
+                }
+                
+                return id;
+            };
+
+            // batch fails when no element, so just generate and return single ID
+            return Y.Dom.batch(el, f, Y.Dom, true) || f.apply(Y.Dom, arguments);
+        },
+        
+        /**
+         * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.
+         * @method isAncestor
+         * @param {String | HTMLElement} haystack The possible ancestor
+         * @param {String | HTMLElement} needle The possible descendent
+         * @return {Boolean} Whether or not the haystack is an ancestor of needle
+         */
+        isAncestor: function(haystack, needle) {
+            haystack = Y.Dom.get(haystack);
+            needle = Y.Dom.get(needle);
+            
+            if (!haystack || !needle) {
+                return false;
+            }
+
+            if (haystack.contains && needle.nodeType && !isSafari) { // safari contains is broken
+                return haystack.contains(needle);
+            }
+            else if ( haystack.compareDocumentPosition && needle.nodeType ) {
+                return !!(haystack.compareDocumentPosition(needle) & 16);
+            } else if (needle.nodeType) {
+                // fallback to crawling up (safari)
+                return !!this.getAncestorBy(needle, function(el) {
+                    return el == haystack; 
+                }); 
+            }
+            return false;
+        },
+        
+        /**
+         * Determines whether an HTMLElement is present in the current document.
+         * @method inDocument         
+         * @param {String | HTMLElement} el The element to search for
+         * @return {Boolean} Whether or not the element is present in the current document
+         */
+        inDocument: function(el) {
+            return this.isAncestor(document.documentElement, el);
+        },
+        
+        /**
+         * Returns a array of HTMLElements that pass the test applied by supplied boolean method.
+         * For optimized performance, include a tag and/or root node when possible.
+         * @method getElementsBy
+         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.
+         * @param {String} tag (optional) The tag name of the elements being collected
+         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
+         * @param {Function} apply (optional) A function to apply to each element when found 
+         * @return {Array} Array of HTMLElements
+         */
+        getElementsBy: function(method, tag, root, apply) {
+            tag = tag || '*';
+            root = (root) ? Y.Dom.get(root) : null || document; 
+
+            if (!root) {
+                return [];
+            }
+
+            var nodes = [],
+                elements = root.getElementsByTagName(tag);
+            
+            for (var i = 0, len = elements.length; i < len; ++i) {
+                if ( method(elements[i]) ) {
+                    nodes[nodes.length] = elements[i];
+                    if (apply) {
+                        apply(elements[i]);
+                    }
+                }
+            }
+
+            
+            return nodes;
+        },
+        
+        /**
+         * Runs the supplied method against each item in the Collection/Array.
+         * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).
+         * @method batch
+         * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to
+         * @param {Function} method The method to apply to the element(s)
+         * @param {Any} o (optional) An optional arg that is passed to the supplied method
+         * @param {Boolean} override (optional) Whether or not to override the scope of "method" with "o"
+         * @return {Any | Array} The return value(s) from the supplied method
+         */
+        batch: function(el, method, o, override) {
+            el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); // skip get() when possible
+
+            if (!el || !method) {
+                return false;
+            } 
+            var scope = (override) ? o : window;
+            
+            if (el.tagName || el.length === undefined) { // element or not array-like 
+                return method.call(scope, el, o);
+            } 
+
+            var collection = [];
+            
+            for (var i = 0, len = el.length; i < len; ++i) {
+                collection[collection.length] = method.call(scope, el[i], o);
+            }
+            
+            return collection;
+        },
+        
+        /**
+         * Returns the height of the document.
+         * @method getDocumentHeight
+         * @return {Int} The height of the actual document (which includes the body and its margin).
+         */
+        getDocumentHeight: function() {
+            var scrollHeight = (document.compatMode != 'CSS1Compat') ? document.body.scrollHeight : document.documentElement.scrollHeight;
+
+            var h = Math.max(scrollHeight, Y.Dom.getViewportHeight());
+            return h;
+        },
+        
+        /**
+         * Returns the width of the document.
+         * @method getDocumentWidth
+         * @return {Int} The width of the actual document (which includes the body and its margin).
+         */
+        getDocumentWidth: function() {
+            var scrollWidth = (document.compatMode != 'CSS1Compat') ? document.body.scrollWidth : document.documentElement.scrollWidth;
+            var w = Math.max(scrollWidth, Y.Dom.getViewportWidth());
+            return w;
+        },
+
+        /**
+         * Returns the current height of the viewport.
+         * @method getViewportHeight
+         * @return {Int} The height of the viewable area of the page (excludes scrollbars).
+         */
+        getViewportHeight: function() {
+            var height = self.innerHeight; // Safari, Opera
+            var mode = document.compatMode;
+        
+            if ( (mode || isIE) && !isOpera ) { // IE, Gecko
+                height = (mode == 'CSS1Compat') ?
+                        document.documentElement.clientHeight : // Standards
+                        document.body.clientHeight; // Quirks
+            }
+        
+            return height;
+        },
+        
+        /**
+         * Returns the current width of the viewport.
+         * @method getViewportWidth
+         * @return {Int} The width of the viewable area of the page (excludes scrollbars).
+         */
+        
+        getViewportWidth: function() {
+            var width = self.innerWidth;  // Safari
+            var mode = document.compatMode;
+            
+            if (mode || isIE) { // IE, Gecko, Opera
+                width = (mode == 'CSS1Compat') ?
+                        document.documentElement.clientWidth : // Standards
+                        document.body.clientWidth; // Quirks
+            }
+            return width;
+        },
+
+       /**
+         * Returns the nearest ancestor that passes the test applied by supplied boolean method.
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * @method getAncestorBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.
+         * @return {Object} HTMLElement or null if not found
+         */
+        getAncestorBy: function(node, method) {
+            while (node = node.parentNode) { // NOTE: assignment
+                if ( testElement(node, method) ) {
+                    return node;
+                }
+            } 
+
+            return null;
+        },
+        
+        /**
+         * Returns the nearest ancestor with the given className.
+         * @method getAncestorByClassName
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @param {String} className
+         * @return {Object} HTMLElement
+         */
+        getAncestorByClassName: function(node, className) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                return null;
+            }
+            var method = function(el) { return Y.Dom.hasClass(el, className); };
+            return Y.Dom.getAncestorBy(node, method);
+        },
+
+        /**
+         * Returns the nearest ancestor with the given tagName.
+         * @method getAncestorByTagName
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @param {String} tagName
+         * @return {Object} HTMLElement
+         */
+        getAncestorByTagName: function(node, tagName) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                return null;
+            }
+            var method = function(el) {
+                 return el.tagName && el.tagName.toUpperCase() == tagName.toUpperCase();
+            };
+
+            return Y.Dom.getAncestorBy(node, method);
+        },
+
+        /**
+         * Returns the previous sibling that is an HTMLElement. 
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * Returns the nearest HTMLElement sibling if no method provided.
+         * @method getPreviousSiblingBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test siblings
+         * that receives the sibling node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getPreviousSiblingBy: function(node, method) {
+            while (node) {
+                node = node.previousSibling;
+                if ( testElement(node, method) ) {
+                    return node;
+                }
+            }
+            return null;
+        }, 
+
+        /**
+         * Returns the previous sibling that is an HTMLElement 
+         * @method getPreviousSibling
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getPreviousSibling: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                return null;
+            }
+
+            return Y.Dom.getPreviousSiblingBy(node);
+        }, 
+
+        /**
+         * Returns the next HTMLElement sibling that passes the boolean method. 
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * Returns the nearest HTMLElement sibling if no method provided.
+         * @method getNextSiblingBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test siblings
+         * that receives the sibling node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getNextSiblingBy: function(node, method) {
+            while (node) {
+                node = node.nextSibling;
+                if ( testElement(node, method) ) {
+                    return node;
+                }
+            }
+            return null;
+        }, 
+
+        /**
+         * Returns the next sibling that is an HTMLElement 
+         * @method getNextSibling
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getNextSibling: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                return null;
+            }
+
+            return Y.Dom.getNextSiblingBy(node);
+        }, 
+
+        /**
+         * Returns the first HTMLElement child that passes the test method. 
+         * @method getFirstChildBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getFirstChildBy: function(node, method) {
+            var child = ( testElement(node.firstChild, method) ) ? node.firstChild : null;
+            return child || Y.Dom.getNextSiblingBy(node.firstChild, method);
+        }, 
+
+        /**
+         * Returns the first HTMLElement child. 
+         * @method getFirstChild
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getFirstChild: function(node, method) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                return null;
+            }
+            return Y.Dom.getFirstChildBy(node);
+        }, 
+
+        /**
+         * Returns the last HTMLElement child that passes the test method. 
+         * @method getLastChildBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getLastChildBy: function(node, method) {
+            if (!node) {
+                return null;
+            }
+            var child = ( testElement(node.lastChild, method) ) ? node.lastChild : null;
+            return child || Y.Dom.getPreviousSiblingBy(node.lastChild, method);
+        }, 
+
+        /**
+         * Returns the last HTMLElement child. 
+         * @method getLastChild
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getLastChild: function(node) {
+            node = Y.Dom.get(node);
+            return Y.Dom.getLastChildBy(node);
+        }, 
+
+        /**
+         * Returns an array of HTMLElement childNodes that pass the test method. 
+         * @method getChildrenBy
+         * @param {HTMLElement} node The HTMLElement to start from
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Array} A static array of HTMLElements
+         */
+        getChildrenBy: function(node, method) {
+            var child = Y.Dom.getFirstChildBy(node, method);
+            var children = child ? [child] : [];
+
+            Y.Dom.getNextSiblingBy(child, function(node) {
+                if ( !method || method(node) ) {
+                    children[children.length] = node;
+                }
+                return false; // fail test to collect all children
+            });
+
+            return children;
+        },
+ 
+        /**
+         * Returns an array of HTMLElement childNodes. 
+         * @method getChildren
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Array} A static array of HTMLElements
+         */
+        getChildren: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+            }
+
+            return Y.Dom.getChildrenBy(node);
+        },
+ 
+        /**
+         * Returns the left scroll value of the document 
+         * @method getDocumentScrollLeft
+         * @param {HTMLDocument} document (optional) The document to get the scroll value of
+         * @return {Int}  The amount that the document is scrolled to the left
+         */
+        getDocumentScrollLeft: function(doc) {
+            doc = doc || document;
+            return Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
+        }, 
+
+        /**
+         * Returns the top scroll value of the document 
+         * @method getDocumentScrollTop
+         * @param {HTMLDocument} document (optional) The document to get the scroll value of
+         * @return {Int}  The amount that the document is scrolled to the top
+         */
+        getDocumentScrollTop: function(doc) {
+            doc = doc || document;
+            return Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);
+        },
+
+        /**
+         * Inserts the new node as the previous sibling of the reference node 
+         * @method insertBefore
+         * @param {String | HTMLElement} newNode The node to be inserted
+         * @param {String | HTMLElement} referenceNode The node to insert the new node before 
+         * @return {HTMLElement} The node that was inserted (or null if insert fails) 
+         */
+        insertBefore: function(newNode, referenceNode) {
+            newNode = Y.Dom.get(newNode); 
+            referenceNode = Y.Dom.get(referenceNode); 
+            
+            if (!newNode || !referenceNode || !referenceNode.parentNode) {
+                return null;
+            }       
+
+            return referenceNode.parentNode.insertBefore(newNode, referenceNode); 
+        },
+
+        /**
+         * Inserts the new node as the next sibling of the reference node 
+         * @method insertAfter
+         * @param {String | HTMLElement} newNode The node to be inserted
+         * @param {String | HTMLElement} referenceNode The node to insert the new node after 
+         * @return {HTMLElement} The node that was inserted (or null if insert fails) 
+         */
+        insertAfter: function(newNode, referenceNode) {
+            newNode = Y.Dom.get(newNode); 
+            referenceNode = Y.Dom.get(referenceNode); 
+            
+            if (!newNode || !referenceNode || !referenceNode.parentNode) {
+                return null;
+            }       
+
+            if (referenceNode.nextSibling) {
+                return referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); 
+            } else {
+                return referenceNode.parentNode.appendChild(newNode);
+            }
+        },
+
+        /**
+         * Creates a Region based on the viewport relative to the document. 
+         * @method getClientRegion
+         * @return {Region} A Region object representing the viewport which accounts for document scroll
+         */
+        getClientRegion: function() {
+            var t = Y.Dom.getDocumentScrollTop(),
+                l = Y.Dom.getDocumentScrollLeft(),
+                r = Y.Dom.getViewportWidth() + l,
+                b = Y.Dom.getViewportHeight() + t;
+
+            return new Y.Region(t, r, b, l);
+        }
+    };
+    
+    var getXY = function() {
+        if (document.documentElement.getBoundingClientRect) { // IE
+            return function(el) {
+                var box = el.getBoundingClientRect();
+
+                var rootNode = el.ownerDocument;
+                return [box.left + Y.Dom.getDocumentScrollLeft(rootNode), box.top +
+                        Y.Dom.getDocumentScrollTop(rootNode)];
+            };
+        } else {
+            return function(el) { // manually calculate by crawling up offsetParents
+                var pos = [el.offsetLeft, el.offsetTop];
+                var parentNode = el.offsetParent;
+
+                // safari: subtract body offsets if el is abs (or any offsetParent), unless body is offsetParent
+                var accountForBody = (isSafari &&
+                        Y.Dom.getStyle(el, 'position') == 'absolute' &&
+                        el.offsetParent == el.ownerDocument.body);
+
+                if (parentNode != el) {
+                    while (parentNode) {
+                        pos[0] += parentNode.offsetLeft;
+                        pos[1] += parentNode.offsetTop;
+                        if (!accountForBody && isSafari && 
+                                Y.Dom.getStyle(parentNode,'position') == 'absolute' ) { 
+                            accountForBody = true;
+                        }
+                        parentNode = parentNode.offsetParent;
+                    }
+                }
+
+                if (accountForBody) { //safari doubles in this case
+                    pos[0] -= el.ownerDocument.body.offsetLeft;
+                    pos[1] -= el.ownerDocument.body.offsetTop;
+                } 
+                parentNode = el.parentNode;
+
+                // account for any scrolled ancestors
+                while ( parentNode.tagName && !patterns.ROOT_TAG.test(parentNode.tagName) ) 
+                {
+                   // work around opera inline/table scrollLeft/Top bug
+                   if (Y.Dom.getStyle(parentNode, 'display').search(/^inline|table-row.*$/i)) { 
+                        pos[0] -= parentNode.scrollLeft;
+                        pos[1] -= parentNode.scrollTop;
+                    }
+                    
+                    parentNode = parentNode.parentNode; 
+                }
+
+                return pos;
+            };
+        }
+    }() // NOTE: Executing for loadtime branching
+})();
+/**
+ * A region is a representation of an object on a grid.  It is defined
+ * by the top, right, bottom, left extents, so is rectangular by default.  If 
+ * other shapes are required, this class could be extended to support it.
+ * @namespace YAHOO.util
+ * @class Region
+ * @param {Int} t the top extent
+ * @param {Int} r the right extent
+ * @param {Int} b the bottom extent
+ * @param {Int} l the left extent
+ * @constructor
+ */
+YAHOO.util.Region = function(t, r, b, l) {
+
+    /**
+     * The region's top extent
+     * @property top
+     * @type Int
+     */
+    this.top = t;
+    
+    /**
+     * The region's top extent as index, for symmetry with set/getXY
+     * @property 1
+     * @type Int
+     */
+    this[1] = t;
+
+    /**
+     * The region's right extent
+     * @property right
+     * @type int
+     */
+    this.right = r;
+
+    /**
+     * The region's bottom extent
+     * @property bottom
+     * @type Int
+     */
+    this.bottom = b;
+
+    /**
+     * The region's left extent
+     * @property left
+     * @type Int
+     */
+    this.left = l;
+    
+    /**
+     * The region's left extent as index, for symmetry with set/getXY
+     * @property 0
+     * @type Int
+     */
+    this[0] = l;
+};
+
+/**
+ * Returns true if this region contains the region passed in
+ * @method contains
+ * @param  {Region}  region The region to evaluate
+ * @return {Boolean}        True if the region is contained with this region, 
+ *                          else false
+ */
+YAHOO.util.Region.prototype.contains = function(region) {
+    return ( region.left   >= this.left   && 
+             region.right  <= this.right  && 
+             region.top    >= this.top    && 
+             region.bottom <= this.bottom    );
+
+};
+
+/**
+ * Returns the area of the region
+ * @method getArea
+ * @return {Int} the region's area
+ */
+YAHOO.util.Region.prototype.getArea = function() {
+    return ( (this.bottom - this.top) * (this.right - this.left) );
+};
+
+/**
+ * Returns the region where the passed in region overlaps with this one
+ * @method intersect
+ * @param  {Region} region The region that intersects
+ * @return {Region}        The overlap region, or null if there is no overlap
+ */
+YAHOO.util.Region.prototype.intersect = function(region) {
+    var t = Math.max( this.top,    region.top    );
+    var r = Math.min( this.right,  region.right  );
+    var b = Math.min( this.bottom, region.bottom );
+    var l = Math.max( this.left,   region.left   );
+    
+    if (b >= t && r >= l) {
+        return new YAHOO.util.Region(t, r, b, l);
+    } else {
+        return null;
+    }
+};
+
+/**
+ * Returns the region representing the smallest region that can contain both
+ * the passed in region and this region.
+ * @method union
+ * @param  {Region} region The region that to create the union with
+ * @return {Region}        The union region
+ */
+YAHOO.util.Region.prototype.union = function(region) {
+    var t = Math.min( this.top,    region.top    );
+    var r = Math.max( this.right,  region.right  );
+    var b = Math.max( this.bottom, region.bottom );
+    var l = Math.min( this.left,   region.left   );
+
+    return new YAHOO.util.Region(t, r, b, l);
+};
+
+/**
+ * toString
+ * @method toString
+ * @return string the region properties
+ */
+YAHOO.util.Region.prototype.toString = function() {
+    return ( "Region {"    +
+             "top: "       + this.top    + 
+             ", right: "   + this.right  + 
+             ", bottom: "  + this.bottom + 
+             ", left: "    + this.left   + 
+             "}" );
+};
+
+/**
+ * Returns a region that is occupied by the DOM element
+ * @method getRegion
+ * @param  {HTMLElement} el The element
+ * @return {Region}         The region that the element occupies
+ * @static
+ */
+YAHOO.util.Region.getRegion = function(el) {
+    var p = YAHOO.util.Dom.getXY(el);
+
+    var t = p[1];
+    var r = p[0] + el.offsetWidth;
+    var b = p[1] + el.offsetHeight;
+    var l = p[0];
+
+    return new YAHOO.util.Region(t, r, b, l);
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+/**
+ * A point is a region that is special in that it represents a single point on 
+ * the grid.
+ * @namespace YAHOO.util
+ * @class Point
+ * @param {Int} x The X position of the point
+ * @param {Int} y The Y position of the point
+ * @constructor
+ * @extends YAHOO.util.Region
+ */
+YAHOO.util.Point = function(x, y) {
+   if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc.
+      y = x[1]; // dont blow away x yet
+      x = x[0];
+   }
+   
+    /**
+     * The X position of the point, which is also the right, left and index zero (for Dom.getXY symmetry)
+     * @property x
+     * @type Int
+     */
+
+    this.x = this.right = this.left = this[0] = x;
+     
+    /**
+     * The Y position of the point, which is also the top, bottom and index one (for Dom.getXY symmetry)
+     * @property y
+     * @type Int
+     */
+    this.y = this.top = this.bottom = this[1] = y;
+};
+
+YAHOO.util.Point.prototype = new YAHOO.util.Region();
+
+YAHOO.register("dom", YAHOO.util.Dom, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/dom/dom.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dom/dom-min.js
===================================================================
--- tags/2.7.0/wb/include/yui/dom/dom-min.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dom/dom-min.js	(revision 838)
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+(function(){var B=YAHOO.util,L,J,H=0,K={},F={},N=window.document;var C=YAHOO.env.ua.opera,M=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var O=function(Q){if(!E.HYPHEN.test(Q)){return Q;}if(K[Q]){return K[Q];}var R=Q;while(E.HYPHEN.exec(R)){R=R.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}K[Q]=R;return R;};var P=function(R){var Q=F[R];if(!Q){Q=new RegExp("(?:^|\\s+)"+R+"(?:\\s+|$)");F[R]=Q;}return Q;};if(N.defaultView&&N.defaultView.getComputedStyle){L=function(Q,T){var S=null;if(T=="float"){T="cssFloat";}var R=N.defaultView.getComputedStyle(Q,"");if(R){S=R[O(T)];}return Q.style[T]||S;};}else{if(N.documentElement.currentStyle&&G){L=function(Q,S){switch(O(S)){case"opacity":var U=100;try{U=Q.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(T){try{U=Q.filters("alpha").opacity;}catch(T){}}return U/100;case"float":S="styleFloat";default:var R=Q.currentStyle?Q.currentStyle[S]:null;return(Q.style[S]||R);}};}else{L=function(Q,R){return Q.style[R];};}}if(G){J=function(Q,R,S){switch(R){case"opacity":if(YAHOO.lang.isString(Q.style.filter)){Q.style.filter="alpha(opacity="+S*100+")";if(!Q.currentStyle||!Q.currentStyle.hasLayout){Q.style.zoom=1;}}break;case"float":R="styleFloat";default:Q.style[R]=S;}};}else{J=function(Q,R,S){if(R=="float"){R="cssFloat";}Q.style[R]=S;};}var D=function(Q,R){return Q&&Q.nodeType==1&&(!R||R(Q));};YAHOO.util.Dom={get:function(S){if(S&&(S.tagName||S.item)){return S;}if(YAHOO.lang.isString(S)||!S){return N.getElementById(S);}if(S.length!==undefined){var T=[];for(var R=0,Q=S.length;R<Q;++R){T[T.length]=B.Dom.get(S[R]);}return T;}return S;},getStyle:function(Q,S){S=O(S);var R=function(T){return L(T,S);};return B.Dom.batch(Q,R,B.Dom,true);},setStyle:function(Q,S,T){S=O(S);var R=function(U){J(U,S,T);};B.Dom.batch(Q,R,B.Dom,true);},getXY:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}return I(S);};return B.Dom.batch(Q,R,B.Dom,true);},getX:function(Q){var R=function(S){return B.Dom.getXY(S)[0];};return B.Dom.batch(Q,R,B.Dom,true);},getY:function(Q){var R=function(S){return B.Dom.getXY(S)[1];};return B.Dom.batch(Q,R,B.Dom,true);},setXY:function(Q,T,S){var R=function(W){var V=this.getStyle(W,"position");if(V=="static"){this.setStyle(W,"position","relative");V="relative";}var Y=this.getXY(W);if(Y===false){return false;}var X=[parseInt(this.getStyle(W,"left"),10),parseInt(this.getStyle(W,"top"),10)];if(isNaN(X[0])){X[0]=(V=="relative")?0:W.offsetLeft;}if(isNaN(X[1])){X[1]=(V=="relative")?0:W.offsetTop;}if(T[0]!==null){W.style.left=T[0]-Y[0]+X[0]+"px";}if(T[1]!==null){W.style.top=T[1]-Y[1]+X[1]+"px";}if(!S){var U=this.getXY(W);if((T[0]!==null&&U[0]!=T[0])||(T[1]!==null&&U[1]!=T[1])){this.setXY(W,T,true);}}};B.Dom.batch(Q,R,B.Dom,true);},setX:function(R,Q){B.Dom.setXY(R,[Q,null]);},setY:function(Q,R){B.Dom.setXY(Q,[null,R]);},getRegion:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=N.body){return false;}var T=B.Region.getRegion(S);return T;};return B.Dom.batch(Q,R,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(U,Y,V,W){Y=Y||"*";V=(V)?B.Dom.get(V):null||N;if(!V){return[];}var R=[],Q=V.getElementsByTagName(Y),X=P(U);for(var S=0,T=Q.length;S<T;++S){if(X.test(Q[S].className)){R[R.length]=Q[S];if(W){W.call(Q[S],Q[S]);}}}return R;},hasClass:function(S,R){var Q=P(R);var T=function(U){return Q.test(U.className);};return B.Dom.batch(S,T,B.Dom,true);},addClass:function(R,Q){var S=function(T){if(this.hasClass(T,Q)){return false;}T.className=YAHOO.lang.trim([T.className,Q].join(" "));return true;};return B.Dom.batch(R,S,B.Dom,true);},removeClass:function(S,R){var Q=P(R);var T=function(U){if(!this.hasClass(U,R)){return false;}var V=U.className;U.className=V.replace(Q," ");if(this.hasClass(U,R)){this.removeClass(U,R);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},replaceClass:function(T,R,Q){if(!Q||R===Q){return false;}var S=P(R);var U=function(V){if(!this.hasClass(V,R)){this.addClass(V,Q);return true;}V.className=V.className.replace(S," "+Q+" ");if(this.hasClass(V,R)){this.replaceClass(V,R,Q);}V.className=YAHOO.lang.trim(V.className);return true;};return B.Dom.batch(T,U,B.Dom,true);},generateId:function(Q,S){S=S||"yui-gen";var R=function(T){if(T&&T.id){return T.id;}var U=S+H++;if(T){T.id=U;}return U;};return B.Dom.batch(Q,R,B.Dom,true)||R.apply(B.Dom,arguments);},isAncestor:function(Q,R){Q=B.Dom.get(Q);R=B.Dom.get(R);if(!Q||!R){return false;}if(Q.contains&&R.nodeType&&!M){return Q.contains(R);}else{if(Q.compareDocumentPosition&&R.nodeType){return !!(Q.compareDocumentPosition(R)&16);}else{if(R.nodeType){return !!this.getAncestorBy(R,function(S){return S==Q;});}}}return false;},inDocument:function(Q){return this.isAncestor(N.documentElement,Q);},getElementsBy:function(X,R,S,U){R=R||"*";S=(S)?B.Dom.get(S):null||N;if(!S){return[];}var T=[],W=S.getElementsByTagName(R);for(var V=0,Q=W.length;V<Q;++V){if(X(W[V])){T[T.length]=W[V];if(U){U(W[V]);}}}return T;},batch:function(U,X,W,S){U=(U&&(U.tagName||U.item))?U:B.Dom.get(U);if(!U||!X){return false;}var T=(S)?W:window;if(U.tagName||U.length===undefined){return X.call(T,U,W);}var V=[];for(var R=0,Q=U.length;R<Q;++R){V[V.length]=X.call(T,U[R],W);}return V;},getDocumentHeight:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollHeight:N.documentElement.scrollHeight;var Q=Math.max(R,B.Dom.getViewportHeight());return Q;},getDocumentWidth:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollWidth:N.documentElement.scrollWidth;var Q=Math.max(R,B.Dom.getViewportWidth());return Q;},getViewportHeight:function(){var Q=self.innerHeight;var R=N.compatMode;if((R||G)&&!C){Q=(R=="CSS1Compat")?N.documentElement.clientHeight:N.body.clientHeight;
+}return Q;},getViewportWidth:function(){var Q=self.innerWidth;var R=N.compatMode;if(R||G){Q=(R=="CSS1Compat")?N.documentElement.clientWidth:N.body.clientWidth;}return Q;},getAncestorBy:function(Q,R){while(Q=Q.parentNode){if(D(Q,R)){return Q;}}return null;},getAncestorByClassName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return B.Dom.hasClass(T,Q);};return B.Dom.getAncestorBy(R,S);},getAncestorByTagName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return T.tagName&&T.tagName.toUpperCase()==Q.toUpperCase();};return B.Dom.getAncestorBy(R,S);},getPreviousSiblingBy:function(Q,R){while(Q){Q=Q.previousSibling;if(D(Q,R)){return Q;}}return null;},getPreviousSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getPreviousSiblingBy(Q);},getNextSiblingBy:function(Q,R){while(Q){Q=Q.nextSibling;if(D(Q,R)){return Q;}}return null;},getNextSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getNextSiblingBy(Q);},getFirstChildBy:function(Q,S){var R=(D(Q.firstChild,S))?Q.firstChild:null;return R||B.Dom.getNextSiblingBy(Q.firstChild,S);},getFirstChild:function(Q,R){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getFirstChildBy(Q);},getLastChildBy:function(Q,S){if(!Q){return null;}var R=(D(Q.lastChild,S))?Q.lastChild:null;return R||B.Dom.getPreviousSiblingBy(Q.lastChild,S);},getLastChild:function(Q){Q=B.Dom.get(Q);return B.Dom.getLastChildBy(Q);},getChildrenBy:function(R,T){var S=B.Dom.getFirstChildBy(R,T);var Q=S?[S]:[];B.Dom.getNextSiblingBy(S,function(U){if(!T||T(U)){Q[Q.length]=U;}return false;});return Q;},getChildren:function(Q){Q=B.Dom.get(Q);if(!Q){}return B.Dom.getChildrenBy(Q);},getDocumentScrollLeft:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollLeft,Q.body.scrollLeft);},getDocumentScrollTop:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollTop,Q.body.scrollTop);},insertBefore:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}return Q.parentNode.insertBefore(R,Q);},insertAfter:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}if(Q.nextSibling){return Q.parentNode.insertBefore(R,Q.nextSibling);}else{return Q.parentNode.appendChild(R);}},getClientRegion:function(){var S=B.Dom.getDocumentScrollTop(),R=B.Dom.getDocumentScrollLeft(),T=B.Dom.getViewportWidth()+R,Q=B.Dom.getViewportHeight()+S;return new B.Region(S,T,Q,R);}};var I=function(){if(N.documentElement.getBoundingClientRect){return function(R){var S=R.getBoundingClientRect();var Q=R.ownerDocument;return[S.left+B.Dom.getDocumentScrollLeft(Q),S.top+B.Dom.getDocumentScrollTop(Q)];};}else{return function(S){var T=[S.offsetLeft,S.offsetTop];var R=S.offsetParent;var Q=(M&&B.Dom.getStyle(S,"position")=="absolute"&&S.offsetParent==S.ownerDocument.body);if(R!=S){while(R){T[0]+=R.offsetLeft;T[1]+=R.offsetTop;if(!Q&&M&&B.Dom.getStyle(R,"position")=="absolute"){Q=true;}R=R.offsetParent;}}if(Q){T[0]-=S.ownerDocument.body.offsetLeft;T[1]-=S.ownerDocument.body.offsetTop;}R=S.parentNode;while(R.tagName&&!E.ROOT_TAG.test(R.tagName)){if(B.Dom.getStyle(R,"display").search(/^inline|table-row.*$/i)){T[0]-=R.scrollLeft;T[1]-=R.scrollTop;}R=R.parentNode;}return T;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.4.1",build:"742"});
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/dom/dom-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dom/README
===================================================================
--- tags/2.7.0/wb/include/yui/dom/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dom/README	(revision 838)
@@ -0,0 +1,125 @@
+Dom Release Notes
+
+** Known Issues **
+* margin/padding/borders on HTML element cause getXY to misreport
+* margin/borders on BODY element may cause getXY to misreport
+* Fixed postioning causes getXY to misreport in some cases
+
+----------------------------
+
+*** version 2.4.1 ***
+
+No change
+
+*** version 2.4.0 ***
+* no longer accounting for safari body margin when offsetParent == body
+* isAncestor and inDocument no longer use batch
+* added getClientRegion()
+
+*** version 2.3.1 ***
+* allow batch() to work on array-like object
+* return null from Dom.get(undefined)
+
+*** version 2.3.0 ***
+* added getAncestorBy methods
+* added getChildren methods
+* added getSibling methods
+* trimming added for class mgmt methods
+* fixed getXY inside table for Opera 
+
+*** version 2.3.0 ***
+* added getAncestorBy methods
+* added getChildren methods
+* added getSibling methods
+* trimming added for class mgmt methods
+* fixed getXY inside table for Opera 
+
+*** version 2.2.2 ***
+
+* fixed getXY scroll regression
+
+*** version 2.2.1 ***
+* fixed toCamel propertyCache used by set/getStyle
+* added set/getStyle support for float property
+* optimized get() for common use case
+* fixed getXY for safari when el has absolute ancestors
+* using className property instead of string literal for class mgmt methods
+* added getXY/getRegion support for body element
+
+*** version 2.2.0 ***
+* no change
+
+
+*** version 0.12.2 ***
+* no change
+
+*** version 0.12.1 ***
+
+* getElementsByClassName no longer reverts to document when "root" not found
+* setXY no longer makes a second call to getXY unless noRetry is false
+* minified version no longer strips line breaks
+
+*** version 0.12.0 ***
+
+* fixed getXY for IE null parent
+* branching set/getStyle at load time instead of run time 
+
+*** version 0.11.3 ***
+
+* fixed getX and getY returning incorrect values for collections 
+* fixed getXY incorrectly calculated for Opera inline elements
+* fixed isAncestor failure in safari when 2nd arg is document.documentElement
+* fixed infinite loop in replaceClass when oldClassName == newClassName 
+* getDocumentWidth no longer includes scrollbars 
+
+
+*** version 0.11.2 ***
+* limit depth of parent.document crawl to 1 for getXY
+* test offsetParent instead of parentNode for getXY
+* return null if no el fo r get
+* just addClass if no class to replace for replaceClass
+
+
+*** version 0.11.1 ***
+
+* return null if el is null for get()
+* test offsetParent rather than parentNode for getXY()
+* limit depth of parent.document crawl for IE getXY() to 1
+* if no oldClassName to replace, just addClass for replaceClass()
+
+
+*** version 0.11.0 ***
+* Work around Opera 9 broken currentStyle
+* Removed timeout wrapper from setXY retry
+* Tagname tests now case-insensitive
+* Internal "this" references changed to allow for method shorthand
+* get/setStyle now accept both camel and hyphen case
+* Gecko reverted to crawling offsets for getXY
+ 
+
+*** version 0.10.0 ***
+
+* Safari now fails gracefully when querying computedStyle of an unavailable element 
+
+* Class management functions added (hasClass, addClass, removeClass, replaceClass, getElementsByClassName) 
+
+* All methods that accept HTMLElements or IDs now also accept arrays of HTMLElements and/or IDs
+
+* GenerateId method added
+
+* isAncestor method added
+
+* inDocument method added
+
+* getElementsBy method added
+
+* batch method added
+
+* getClientHeight/Width deprecated in favor of getViewportHeight/Width
+
+* getDocumentHeight/Width methods added 
+
+*** version 0.9.0 ***
+
+* Initial release
+

Property changes on: tags/2.7.0/wb/include/yui/dom/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dom/dom-debug.js
===================================================================
--- tags/2.7.0/wb/include/yui/dom/dom-debug.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dom/dom-debug.js	(revision 838)
@@ -0,0 +1,1260 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The dom module provides helper methods for manipulating Dom elements.
+ * @module dom
+ *
+ */
+
+(function() {
+    var Y = YAHOO.util,     // internal shorthand
+        getStyle,           // for load time browser branching
+        setStyle,           // ditto
+        id_counter = 0,     // for use with generateId
+        propertyCache = {}, // for faster hyphen converts
+        reClassNameCache = {},          // cache regexes for className
+        document = window.document;     // cache for faster lookups
+    
+    // brower detection
+    var isOpera = YAHOO.env.ua.opera,
+        isSafari = YAHOO.env.ua.webkit, 
+        isGecko = YAHOO.env.ua.gecko,
+        isIE = YAHOO.env.ua.ie; 
+    
+    // regex cache
+    var patterns = {
+        HYPHEN: /(-[a-z])/i, // to normalize get/setStyle
+        ROOT_TAG: /^body|html$/i // body for quirks mode, html for standards
+    };
+
+    var toCamel = function(property) {
+        if ( !patterns.HYPHEN.test(property) ) {
+            return property; // no hyphens
+        }
+        
+        if (propertyCache[property]) { // already converted
+            return propertyCache[property];
+        }
+       
+        var converted = property;
+ 
+        while( patterns.HYPHEN.exec(converted) ) {
+            converted = converted.replace(RegExp.$1,
+                    RegExp.$1.substr(1).toUpperCase());
+        }
+        
+        propertyCache[property] = converted;
+        return converted;
+        //return property.replace(/-([a-z])/gi, function(m0, m1) {return m1.toUpperCase()}) // cant use function as 2nd arg yet due to safari bug
+    };
+    
+    var getClassRegEx = function(className) {
+        var re = reClassNameCache[className];
+        if (!re) {
+            re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
+            reClassNameCache[className] = re;
+        }
+        return re;
+    };
+
+    // branching at load instead of runtime
+    if (document.defaultView && document.defaultView.getComputedStyle) { // W3C DOM method
+        getStyle = function(el, property) {
+            var value = null;
+            
+            if (property == 'float') { // fix reserved word
+                property = 'cssFloat';
+            }
+
+            var computed = document.defaultView.getComputedStyle(el, '');
+            if (computed) { // test computed before touching for safari
+                value = computed[toCamel(property)];
+            }
+            
+            return el.style[property] || value;
+        };
+    } else if (document.documentElement.currentStyle && isIE) { // IE method
+        getStyle = function(el, property) {                         
+            switch( toCamel(property) ) {
+                case 'opacity' :// IE opacity uses filter
+                    var val = 100;
+                    try { // will error if no DXImageTransform
+                        val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
+
+                    } catch(e) {
+                        try { // make sure its in the document
+                            val = el.filters('alpha').opacity;
+                        } catch(e) {
+                            YAHOO.log('getStyle: IE filter failed',
+                                    'error', 'Dom');
+                        }
+                    }
+                    return val / 100;
+                case 'float': // fix reserved word
+                    property = 'styleFloat'; // fall through
+                default: 
+                    // test currentStyle before touching
+                    var value = el.currentStyle ? el.currentStyle[property] : null;
+                    return ( el.style[property] || value );
+            }
+        };
+    } else { // default to inline only
+        getStyle = function(el, property) { return el.style[property]; };
+    }
+    
+    if (isIE) {
+        setStyle = function(el, property, val) {
+            switch (property) {
+                case 'opacity':
+                    if ( YAHOO.lang.isString(el.style.filter) ) { // in case not appended
+                        el.style.filter = 'alpha(opacity=' + val * 100 + ')';
+                        
+                        if (!el.currentStyle || !el.currentStyle.hasLayout) {
+                            el.style.zoom = 1; // when no layout or cant tell
+                        }
+                    }
+                    break;
+                case 'float':
+                    property = 'styleFloat';
+                default:
+                el.style[property] = val;
+            }
+        };
+    } else {
+        setStyle = function(el, property, val) {
+            if (property == 'float') {
+                property = 'cssFloat';
+            }
+            el.style[property] = val;
+        };
+    }
+
+    var testElement = function(node, method) {
+        return node && node.nodeType == 1 && ( !method || method(node) );
+    };
+
+    /**
+     * Provides helper methods for DOM elements.
+     * @namespace YAHOO.util
+     * @class Dom
+     */
+    YAHOO.util.Dom = {
+        /**
+         * Returns an HTMLElement reference.
+         * @method get
+         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements.
+         */
+        get: function(el) {
+            if (el && (el.tagName || el.item)) { // HTMLElement, or HTMLCollection
+                return el;
+            }
+
+            if (YAHOO.lang.isString(el) || !el) { // HTMLElement or null
+                return document.getElementById(el);
+            }
+            
+            if (el.length !== undefined) { // array-like 
+                var c = [];
+                for (var i = 0, len = el.length; i < len; ++i) {
+                    c[c.length] = Y.Dom.get(el[i]);
+                }
+                
+                return c;
+            }
+
+            return el; // some other object, just pass it back
+        },
+    
+        /**
+         * Normalizes currentStyle and ComputedStyle.
+         * @method getStyle
+         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {String} property The style property whose value is returned.
+         * @return {String | Array} The current value of the style property for the element(s).
+         */
+        getStyle: function(el, property) {
+            property = toCamel(property);
+            
+            var f = function(element) {
+                return getStyle(element, property);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Wrapper for setting style properties of HTMLElements.  Normalizes "opacity" across modern browsers.
+         * @method setStyle
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {String} property The style property to be set.
+         * @param {String} val The value to apply to the given property.
+         */
+        setStyle: function(el, property, val) {
+            property = toCamel(property);
+            
+            var f = function(element) {
+                setStyle(element, property, val);
+                YAHOO.log('setStyle setting ' + property + ' to ' + val, 'info', 'Dom');
+                
+            };
+            
+            Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getXY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Array} The XY position of the element(s)
+         */
+        getXY: function(el) {
+            var f = function(el) {
+                // has to be part of document to have pageXY
+                if ( (el.parentNode === null || el.offsetParent === null ||
+                        this.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) {
+                    YAHOO.log('getXY failed: element not available', 'error', 'Dom');
+                    return false;
+                }
+                
+                YAHOO.log('getXY returning ' + getXY(el), 'info', 'Dom');
+                return getXY(el);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getX
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Number | Array} The X position of the element(s)
+         */
+        getX: function(el) {
+            var f = function(el) {
+                return Y.Dom.getXY(el)[0];
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method getY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @return {Number | Array} The Y position of the element(s)
+         */
+        getY: function(el) {
+            var f = function(el) {
+                return Y.Dom.getXY(el)[1];
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Set the position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setXY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
+         * @param {Array} pos Contains X & Y values for new position (coordinates are page-based)
+         * @param {Boolean} noRetry By default we try and set the position a second time if the first fails
+         */
+        setXY: function(el, pos, noRetry) {
+            var f = function(el) {
+                var style_pos = this.getStyle(el, 'position');
+                if (style_pos == 'static') { // default to relative
+                    this.setStyle(el, 'position', 'relative');
+                    style_pos = 'relative';
+                }
+
+                var pageXY = this.getXY(el);
+                if (pageXY === false) { // has to be part of doc to have pageXY
+                    YAHOO.log('setXY failed: element not available', 'error', 'Dom');
+                    return false; 
+                }
+                
+                var delta = [ // assuming pixels; if not we will have to retry
+                    parseInt( this.getStyle(el, 'left'), 10 ),
+                    parseInt( this.getStyle(el, 'top'), 10 )
+                ];
+            
+                if ( isNaN(delta[0]) ) {// in case of 'auto'
+                    delta[0] = (style_pos == 'relative') ? 0 : el.offsetLeft;
+                } 
+                if ( isNaN(delta[1]) ) { // in case of 'auto'
+                    delta[1] = (style_pos == 'relative') ? 0 : el.offsetTop;
+                } 
+        
+                if (pos[0] !== null) { el.style.left = pos[0] - pageXY[0] + delta[0] + 'px'; }
+                if (pos[1] !== null) { el.style.top = pos[1] - pageXY[1] + delta[1] + 'px'; }
+              
+                if (!noRetry) {
+                    var newXY = this.getXY(el);
+
+                    // if retry is true, try one more time if we miss 
+                   if ( (pos[0] !== null && newXY[0] != pos[0]) || 
+                        (pos[1] !== null && newXY[1] != pos[1]) ) {
+                       this.setXY(el, pos, true);
+                   }
+                }        
+        
+                YAHOO.log('setXY setting position to ' + pos, 'info', 'Dom');
+            };
+            
+            Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Set the X position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setX
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {Int} x The value to use as the X coordinate for the element(s).
+         */
+        setX: function(el, x) {
+            Y.Dom.setXY(el, [x, null]);
+        },
+        
+        /**
+         * Set the Y position of an html element in page coordinates, regardless of how the element is positioned.
+         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
+         * @method setY
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @param {Int} x To use as the Y coordinate for the element(s).
+         */
+        setY: function(el, y) {
+            Y.Dom.setXY(el, [null, y]);
+        },
+        
+        /**
+         * Returns the region position of the given element.
+         * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).
+         * @method getRegion
+         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
+         * @return {Region | Array} A Region or array of Region instances containing "top, left, bottom, right" member data.
+         */
+        getRegion: function(el) {
+            var f = function(el) {
+                if ( (el.parentNode === null || el.offsetParent === null ||
+                        this.getStyle(el, 'display') == 'none') && el != document.body) {
+                    YAHOO.log('getRegion failed: element not available', 'error', 'Dom');
+                    return false;
+                }
+
+                var region = Y.Region.getRegion(el);
+                YAHOO.log('getRegion returning ' + region, 'info', 'Dom');
+                return region;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Returns the width of the client (viewport).
+         * @method getClientWidth
+         * @deprecated Now using getViewportWidth.  This interface left intact for back compat.
+         * @return {Int} The width of the viewable area of the page.
+         */
+        getClientWidth: function() {
+            return Y.Dom.getViewportWidth();
+        },
+        
+        /**
+         * Returns the height of the client (viewport).
+         * @method getClientHeight
+         * @deprecated Now using getViewportHeight.  This interface left intact for back compat.
+         * @return {Int} The height of the viewable area of the page.
+         */
+        getClientHeight: function() {
+            return Y.Dom.getViewportHeight();
+        },
+
+        /**
+         * Returns a array of HTMLElements with the given class.
+         * For optimized performance, include a tag and/or root node when possible.
+         * @method getElementsByClassName
+         * @param {String} className The class name to match against
+         * @param {String} tag (optional) The tag name of the elements being collected
+         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
+         * @param {Function} apply (optional) A function to apply to each element when found 
+         * @return {Array} An array of elements that have the given class name
+         */
+        getElementsByClassName: function(className, tag, root, apply) {
+            tag = tag || '*';
+            root = (root) ? Y.Dom.get(root) : null || document; 
+            if (!root) {
+                return [];
+            }
+
+            var nodes = [],
+                elements = root.getElementsByTagName(tag),
+                re = getClassRegEx(className);
+
+            for (var i = 0, len = elements.length; i < len; ++i) {
+                if ( re.test(elements[i].className) ) {
+                    nodes[nodes.length] = elements[i];
+                    if (apply) {
+                        apply.call(elements[i], elements[i]);
+                    }
+                }
+            }
+            
+            return nodes;
+        },
+
+        /**
+         * Determines whether an HTMLElement has the given className.
+         * @method hasClass
+         * @param {String | HTMLElement | Array} el The element or collection to test
+         * @param {String} className the class name to search for
+         * @return {Boolean | Array} A boolean value or array of boolean values
+         */
+        hasClass: function(el, className) {
+            var re = getClassRegEx(className);
+
+            var f = function(el) {
+                YAHOO.log('hasClass returning ' + re.test(el.className), 'info', 'Dom');
+                return re.test(el.className);
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Adds a class name to a given element or collection of elements.
+         * @method addClass         
+         * @param {String | HTMLElement | Array} el The element or collection to add the class to
+         * @param {String} className the class name to add to the class attribute
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        addClass: function(el, className) {
+            var f = function(el) {
+                if (this.hasClass(el, className)) {
+                    return false; // already present
+                }
+                
+                YAHOO.log('addClass adding ' + className, 'info', 'Dom');
+                
+                el.className = YAHOO.lang.trim([el.className, className].join(' '));
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+    
+        /**
+         * Removes a class name from a given element or collection of elements.
+         * @method removeClass         
+         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
+         * @param {String} className the class name to remove from the class attribute
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        removeClass: function(el, className) {
+            var re = getClassRegEx(className);
+            
+            var f = function(el) {
+                if (!this.hasClass(el, className)) {
+                    return false; // not present
+                }                 
+
+                YAHOO.log('removeClass removing ' + className, 'info', 'Dom');
+                
+                var c = el.className;
+                el.className = c.replace(re, ' ');
+                if ( this.hasClass(el, className) ) { // in case of multiple adjacent
+                    this.removeClass(el, className);
+                }
+
+                el.className = YAHOO.lang.trim(el.className); // remove any trailing spaces
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Replace a class with another class for a given element or collection of elements.
+         * If no oldClassName is present, the newClassName is simply added.
+         * @method replaceClass  
+         * @param {String | HTMLElement | Array} el The element or collection to remove the class from
+         * @param {String} oldClassName the class name to be replaced
+         * @param {String} newClassName the class name that will be replacing the old class name
+         * @return {Boolean | Array} A pass/fail boolean or array of booleans
+         */
+        replaceClass: function(el, oldClassName, newClassName) {
+            if (!newClassName || oldClassName === newClassName) { // avoid infinite loop
+                return false;
+            }
+            
+            var re = getClassRegEx(oldClassName);
+
+            var f = function(el) {
+                YAHOO.log('replaceClass replacing ' + oldClassName + ' with ' + newClassName, 'info', 'Dom');
+            
+                if ( !this.hasClass(el, oldClassName) ) {
+                    this.addClass(el, newClassName); // just add it if nothing to replace
+                    return true; // NOTE: return
+                }
+            
+                el.className = el.className.replace(re, ' ' + newClassName + ' ');
+
+                if ( this.hasClass(el, oldClassName) ) { // in case of multiple adjacent
+                    this.replaceClass(el, oldClassName, newClassName);
+                }
+
+                el.className = YAHOO.lang.trim(el.className); // remove any trailing spaces
+                return true;
+            };
+            
+            return Y.Dom.batch(el, f, Y.Dom, true);
+        },
+        
+        /**
+         * Returns an ID and applies it to the element "el", if provided.
+         * @method generateId  
+         * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present).
+         * @param {String} prefix (optional) an optional prefix to use (defaults to "yui-gen").
+         * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element)
+         */
+        generateId: function(el, prefix) {
+            prefix = prefix || 'yui-gen';
+
+            var f = function(el) {
+                if (el && el.id) { // do not override existing ID
+                    YAHOO.log('generateId returning existing id ' + el.id, 'info', 'Dom');
+                    return el.id;
+                } 
+
+                var id = prefix + id_counter++;
+                YAHOO.log('generateId generating ' + id, 'info', 'Dom');
+
+                if (el) {
+                    el.id = id;
+                }
+                
+                return id;
+            };
+
+            // batch fails when no element, so just generate and return single ID
+            return Y.Dom.batch(el, f, Y.Dom, true) || f.apply(Y.Dom, arguments);
+        },
+        
+        /**
+         * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.
+         * @method isAncestor
+         * @param {String | HTMLElement} haystack The possible ancestor
+         * @param {String | HTMLElement} needle The possible descendent
+         * @return {Boolean} Whether or not the haystack is an ancestor of needle
+         */
+        isAncestor: function(haystack, needle) {
+            haystack = Y.Dom.get(haystack);
+            needle = Y.Dom.get(needle);
+            
+            if (!haystack || !needle) {
+                return false;
+            }
+
+            if (haystack.contains && needle.nodeType && !isSafari) { // safari contains is broken
+                YAHOO.log('isAncestor returning ' + haystack.contains(needle), 'info', 'Dom');
+                return haystack.contains(needle);
+            }
+            else if ( haystack.compareDocumentPosition && needle.nodeType ) {
+                YAHOO.log('isAncestor returning ' + !!(haystack.compareDocumentPosition(needle) & 16), 'info', 'Dom');
+                return !!(haystack.compareDocumentPosition(needle) & 16);
+            } else if (needle.nodeType) {
+                // fallback to crawling up (safari)
+                return !!this.getAncestorBy(needle, function(el) {
+                    return el == haystack; 
+                }); 
+            }
+            YAHOO.log('isAncestor failed; most likely needle is not an HTMLElement', 'error', 'Dom');
+            return false;
+        },
+        
+        /**
+         * Determines whether an HTMLElement is present in the current document.
+         * @method inDocument         
+         * @param {String | HTMLElement} el The element to search for
+         * @return {Boolean} Whether or not the element is present in the current document
+         */
+        inDocument: function(el) {
+            return this.isAncestor(document.documentElement, el);
+        },
+        
+        /**
+         * Returns a array of HTMLElements that pass the test applied by supplied boolean method.
+         * For optimized performance, include a tag and/or root node when possible.
+         * @method getElementsBy
+         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.
+         * @param {String} tag (optional) The tag name of the elements being collected
+         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point 
+         * @param {Function} apply (optional) A function to apply to each element when found 
+         * @return {Array} Array of HTMLElements
+         */
+        getElementsBy: function(method, tag, root, apply) {
+            tag = tag || '*';
+            root = (root) ? Y.Dom.get(root) : null || document; 
+
+            if (!root) {
+                return [];
+            }
+
+            var nodes = [],
+                elements = root.getElementsByTagName(tag);
+            
+            for (var i = 0, len = elements.length; i < len; ++i) {
+                if ( method(elements[i]) ) {
+                    nodes[nodes.length] = elements[i];
+                    if (apply) {
+                        apply(elements[i]);
+                    }
+                }
+            }
+
+            YAHOO.log('getElementsBy returning ' + nodes, 'info', 'Dom');
+            
+            return nodes;
+        },
+        
+        /**
+         * Runs the supplied method against each item in the Collection/Array.
+         * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).
+         * @method batch
+         * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to
+         * @param {Function} method The method to apply to the element(s)
+         * @param {Any} o (optional) An optional arg that is passed to the supplied method
+         * @param {Boolean} override (optional) Whether or not to override the scope of "method" with "o"
+         * @return {Any | Array} The return value(s) from the supplied method
+         */
+        batch: function(el, method, o, override) {
+            el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); // skip get() when possible
+
+            if (!el || !method) {
+                YAHOO.log('batch failed: invalid arguments', 'error', 'Dom');
+                return false;
+            } 
+            var scope = (override) ? o : window;
+            
+            if (el.tagName || el.length === undefined) { // element or not array-like 
+                return method.call(scope, el, o);
+            } 
+
+            var collection = [];
+            
+            for (var i = 0, len = el.length; i < len; ++i) {
+                collection[collection.length] = method.call(scope, el[i], o);
+            }
+            
+            return collection;
+        },
+        
+        /**
+         * Returns the height of the document.
+         * @method getDocumentHeight
+         * @return {Int} The height of the actual document (which includes the body and its margin).
+         */
+        getDocumentHeight: function() {
+            var scrollHeight = (document.compatMode != 'CSS1Compat') ? document.body.scrollHeight : document.documentElement.scrollHeight;
+
+            var h = Math.max(scrollHeight, Y.Dom.getViewportHeight());
+            YAHOO.log('getDocumentHeight returning ' + h, 'info', 'Dom');
+            return h;
+        },
+        
+        /**
+         * Returns the width of the document.
+         * @method getDocumentWidth
+         * @return {Int} The width of the actual document (which includes the body and its margin).
+         */
+        getDocumentWidth: function() {
+            var scrollWidth = (document.compatMode != 'CSS1Compat') ? document.body.scrollWidth : document.documentElement.scrollWidth;
+            var w = Math.max(scrollWidth, Y.Dom.getViewportWidth());
+            YAHOO.log('getDocumentWidth returning ' + w, 'info', 'Dom');
+            return w;
+        },
+
+        /**
+         * Returns the current height of the viewport.
+         * @method getViewportHeight
+         * @return {Int} The height of the viewable area of the page (excludes scrollbars).
+         */
+        getViewportHeight: function() {
+            var height = self.innerHeight; // Safari, Opera
+            var mode = document.compatMode;
+        
+            if ( (mode || isIE) && !isOpera ) { // IE, Gecko
+                height = (mode == 'CSS1Compat') ?
+                        document.documentElement.clientHeight : // Standards
+                        document.body.clientHeight; // Quirks
+            }
+        
+            YAHOO.log('getViewportHeight returning ' + height, 'info', 'Dom');
+            return height;
+        },
+        
+        /**
+         * Returns the current width of the viewport.
+         * @method getViewportWidth
+         * @return {Int} The width of the viewable area of the page (excludes scrollbars).
+         */
+        
+        getViewportWidth: function() {
+            var width = self.innerWidth;  // Safari
+            var mode = document.compatMode;
+            
+            if (mode || isIE) { // IE, Gecko, Opera
+                width = (mode == 'CSS1Compat') ?
+                        document.documentElement.clientWidth : // Standards
+                        document.body.clientWidth; // Quirks
+            }
+            YAHOO.log('getViewportWidth returning ' + width, 'info', 'Dom');
+            return width;
+        },
+
+       /**
+         * Returns the nearest ancestor that passes the test applied by supplied boolean method.
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * @method getAncestorBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.
+         * @return {Object} HTMLElement or null if not found
+         */
+        getAncestorBy: function(node, method) {
+            while (node = node.parentNode) { // NOTE: assignment
+                if ( testElement(node, method) ) {
+                    YAHOO.log('getAncestorBy returning ' + node, 'info', 'Dom');
+                    return node;
+                }
+            } 
+
+            YAHOO.log('getAncestorBy returning null (no ancestor passed test)', 'error', 'Dom');
+            return null;
+        },
+        
+        /**
+         * Returns the nearest ancestor with the given className.
+         * @method getAncestorByClassName
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @param {String} className
+         * @return {Object} HTMLElement
+         */
+        getAncestorByClassName: function(node, className) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getAncestorByClassName failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+            var method = function(el) { return Y.Dom.hasClass(el, className); };
+            return Y.Dom.getAncestorBy(node, method);
+        },
+
+        /**
+         * Returns the nearest ancestor with the given tagName.
+         * @method getAncestorByTagName
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @param {String} tagName
+         * @return {Object} HTMLElement
+         */
+        getAncestorByTagName: function(node, tagName) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getAncestorByTagName failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+            var method = function(el) {
+                 return el.tagName && el.tagName.toUpperCase() == tagName.toUpperCase();
+            };
+
+            return Y.Dom.getAncestorBy(node, method);
+        },
+
+        /**
+         * Returns the previous sibling that is an HTMLElement. 
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * Returns the nearest HTMLElement sibling if no method provided.
+         * @method getPreviousSiblingBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test siblings
+         * that receives the sibling node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getPreviousSiblingBy: function(node, method) {
+            while (node) {
+                node = node.previousSibling;
+                if ( testElement(node, method) ) {
+                    return node;
+                }
+            }
+            return null;
+        }, 
+
+        /**
+         * Returns the previous sibling that is an HTMLElement 
+         * @method getPreviousSibling
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getPreviousSibling: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getPreviousSibling failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+
+            return Y.Dom.getPreviousSiblingBy(node);
+        }, 
+
+        /**
+         * Returns the next HTMLElement sibling that passes the boolean method. 
+         * For performance reasons, IDs are not accepted and argument validation omitted.
+         * Returns the nearest HTMLElement sibling if no method provided.
+         * @method getNextSiblingBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test siblings
+         * that receives the sibling node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getNextSiblingBy: function(node, method) {
+            while (node) {
+                node = node.nextSibling;
+                if ( testElement(node, method) ) {
+                    return node;
+                }
+            }
+            return null;
+        }, 
+
+        /**
+         * Returns the next sibling that is an HTMLElement 
+         * @method getNextSibling
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getNextSibling: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getNextSibling failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+
+            return Y.Dom.getNextSiblingBy(node);
+        }, 
+
+        /**
+         * Returns the first HTMLElement child that passes the test method. 
+         * @method getFirstChildBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getFirstChildBy: function(node, method) {
+            var child = ( testElement(node.firstChild, method) ) ? node.firstChild : null;
+            return child || Y.Dom.getNextSiblingBy(node.firstChild, method);
+        }, 
+
+        /**
+         * Returns the first HTMLElement child. 
+         * @method getFirstChild
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getFirstChild: function(node, method) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getFirstChild failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+            return Y.Dom.getFirstChildBy(node);
+        }, 
+
+        /**
+         * Returns the last HTMLElement child that passes the test method. 
+         * @method getLastChildBy
+         * @param {HTMLElement} node The HTMLElement to use as the starting point 
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Object} HTMLElement or null if not found
+         */
+        getLastChildBy: function(node, method) {
+            if (!node) {
+                YAHOO.log('getLastChild failed: invalid node argument', 'error', 'Dom');
+                return null;
+            }
+            var child = ( testElement(node.lastChild, method) ) ? node.lastChild : null;
+            return child || Y.Dom.getPreviousSiblingBy(node.lastChild, method);
+        }, 
+
+        /**
+         * Returns the last HTMLElement child. 
+         * @method getLastChild
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Object} HTMLElement or null if not found
+         */
+        getLastChild: function(node) {
+            node = Y.Dom.get(node);
+            return Y.Dom.getLastChildBy(node);
+        }, 
+
+        /**
+         * Returns an array of HTMLElement childNodes that pass the test method. 
+         * @method getChildrenBy
+         * @param {HTMLElement} node The HTMLElement to start from
+         * @param {Function} method A boolean function used to test children
+         * that receives the node being tested as its only argument
+         * @return {Array} A static array of HTMLElements
+         */
+        getChildrenBy: function(node, method) {
+            var child = Y.Dom.getFirstChildBy(node, method);
+            var children = child ? [child] : [];
+
+            Y.Dom.getNextSiblingBy(child, function(node) {
+                if ( !method || method(node) ) {
+                    children[children.length] = node;
+                }
+                return false; // fail test to collect all children
+            });
+
+            return children;
+        },
+ 
+        /**
+         * Returns an array of HTMLElement childNodes. 
+         * @method getChildren
+         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point 
+         * @return {Array} A static array of HTMLElements
+         */
+        getChildren: function(node) {
+            node = Y.Dom.get(node);
+            if (!node) {
+                YAHOO.log('getChildren failed: invalid node argument', 'error', 'Dom');
+            }
+
+            return Y.Dom.getChildrenBy(node);
+        },
+ 
+        /**
+         * Returns the left scroll value of the document 
+         * @method getDocumentScrollLeft
+         * @param {HTMLDocument} document (optional) The document to get the scroll value of
+         * @return {Int}  The amount that the document is scrolled to the left
+         */
+        getDocumentScrollLeft: function(doc) {
+            doc = doc || document;
+            return Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
+        }, 
+
+        /**
+         * Returns the top scroll value of the document 
+         * @method getDocumentScrollTop
+         * @param {HTMLDocument} document (optional) The document to get the scroll value of
+         * @return {Int}  The amount that the document is scrolled to the top
+         */
+        getDocumentScrollTop: function(doc) {
+            doc = doc || document;
+            return Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);
+        },
+
+        /**
+         * Inserts the new node as the previous sibling of the reference node 
+         * @method insertBefore
+         * @param {String | HTMLElement} newNode The node to be inserted
+         * @param {String | HTMLElement} referenceNode The node to insert the new node before 
+         * @return {HTMLElement} The node that was inserted (or null if insert fails) 
+         */
+        insertBefore: function(newNode, referenceNode) {
+            newNode = Y.Dom.get(newNode); 
+            referenceNode = Y.Dom.get(referenceNode); 
+            
+            if (!newNode || !referenceNode || !referenceNode.parentNode) {
+                YAHOO.log('insertAfter failed: missing or invalid arg(s)', 'error', 'Dom');
+                return null;
+            }       
+
+            return referenceNode.parentNode.insertBefore(newNode, referenceNode); 
+        },
+
+        /**
+         * Inserts the new node as the next sibling of the reference node 
+         * @method insertAfter
+         * @param {String | HTMLElement} newNode The node to be inserted
+         * @param {String | HTMLElement} referenceNode The node to insert the new node after 
+         * @return {HTMLElement} The node that was inserted (or null if insert fails) 
+         */
+        insertAfter: function(newNode, referenceNode) {
+            newNode = Y.Dom.get(newNode); 
+            referenceNode = Y.Dom.get(referenceNode); 
+            
+            if (!newNode || !referenceNode || !referenceNode.parentNode) {
+                YAHOO.log('insertAfter failed: missing or invalid arg(s)', 'error', 'Dom');
+                return null;
+            }       
+
+            if (referenceNode.nextSibling) {
+                return referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); 
+            } else {
+                return referenceNode.parentNode.appendChild(newNode);
+            }
+        },
+
+        /**
+         * Creates a Region based on the viewport relative to the document. 
+         * @method getClientRegion
+         * @return {Region} A Region object representing the viewport which accounts for document scroll
+         */
+        getClientRegion: function() {
+            var t = Y.Dom.getDocumentScrollTop(),
+                l = Y.Dom.getDocumentScrollLeft(),
+                r = Y.Dom.getViewportWidth() + l,
+                b = Y.Dom.getViewportHeight() + t;
+
+            return new Y.Region(t, r, b, l);
+        }
+    };
+    
+    var getXY = function() {
+        if (document.documentElement.getBoundingClientRect) { // IE
+            return function(el) {
+                var box = el.getBoundingClientRect();
+
+                var rootNode = el.ownerDocument;
+                return [box.left + Y.Dom.getDocumentScrollLeft(rootNode), box.top +
+                        Y.Dom.getDocumentScrollTop(rootNode)];
+            };
+        } else {
+            return function(el) { // manually calculate by crawling up offsetParents
+                var pos = [el.offsetLeft, el.offsetTop];
+                var parentNode = el.offsetParent;
+
+                // safari: subtract body offsets if el is abs (or any offsetParent), unless body is offsetParent
+                var accountForBody = (isSafari &&
+                        Y.Dom.getStyle(el, 'position') == 'absolute' &&
+                        el.offsetParent == el.ownerDocument.body);
+
+                if (parentNode != el) {
+                    while (parentNode) {
+                        pos[0] += parentNode.offsetLeft;
+                        pos[1] += parentNode.offsetTop;
+                        if (!accountForBody && isSafari && 
+                                Y.Dom.getStyle(parentNode,'position') == 'absolute' ) { 
+                            accountForBody = true;
+                        }
+                        parentNode = parentNode.offsetParent;
+                    }
+                }
+
+                if (accountForBody) { //safari doubles in this case
+                    pos[0] -= el.ownerDocument.body.offsetLeft;
+                    pos[1] -= el.ownerDocument.body.offsetTop;
+                } 
+                parentNode = el.parentNode;
+
+                // account for any scrolled ancestors
+                while ( parentNode.tagName && !patterns.ROOT_TAG.test(parentNode.tagName) ) 
+                {
+                   // work around opera inline/table scrollLeft/Top bug
+                   if (Y.Dom.getStyle(parentNode, 'display').search(/^inline|table-row.*$/i)) { 
+                        pos[0] -= parentNode.scrollLeft;
+                        pos[1] -= parentNode.scrollTop;
+                    }
+                    
+                    parentNode = parentNode.parentNode; 
+                }
+
+                return pos;
+            };
+        }
+    }() // NOTE: Executing for loadtime branching
+})();
+/**
+ * A region is a representation of an object on a grid.  It is defined
+ * by the top, right, bottom, left extents, so is rectangular by default.  If 
+ * other shapes are required, this class could be extended to support it.
+ * @namespace YAHOO.util
+ * @class Region
+ * @param {Int} t the top extent
+ * @param {Int} r the right extent
+ * @param {Int} b the bottom extent
+ * @param {Int} l the left extent
+ * @constructor
+ */
+YAHOO.util.Region = function(t, r, b, l) {
+
+    /**
+     * The region's top extent
+     * @property top
+     * @type Int
+     */
+    this.top = t;
+    
+    /**
+     * The region's top extent as index, for symmetry with set/getXY
+     * @property 1
+     * @type Int
+     */
+    this[1] = t;
+
+    /**
+     * The region's right extent
+     * @property right
+     * @type int
+     */
+    this.right = r;
+
+    /**
+     * The region's bottom extent
+     * @property bottom
+     * @type Int
+     */
+    this.bottom = b;
+
+    /**
+     * The region's left extent
+     * @property left
+     * @type Int
+     */
+    this.left = l;
+    
+    /**
+     * The region's left extent as index, for symmetry with set/getXY
+     * @property 0
+     * @type Int
+     */
+    this[0] = l;
+};
+
+/**
+ * Returns true if this region contains the region passed in
+ * @method contains
+ * @param  {Region}  region The region to evaluate
+ * @return {Boolean}        True if the region is contained with this region, 
+ *                          else false
+ */
+YAHOO.util.Region.prototype.contains = function(region) {
+    return ( region.left   >= this.left   && 
+             region.right  <= this.right  && 
+             region.top    >= this.top    && 
+             region.bottom <= this.bottom    );
+
+    // this.logger.debug("does " + this + " contain " + region + " ... " + ret);
+};
+
+/**
+ * Returns the area of the region
+ * @method getArea
+ * @return {Int} the region's area
+ */
+YAHOO.util.Region.prototype.getArea = function() {
+    return ( (this.bottom - this.top) * (this.right - this.left) );
+};
+
+/**
+ * Returns the region where the passed in region overlaps with this one
+ * @method intersect
+ * @param  {Region} region The region that intersects
+ * @return {Region}        The overlap region, or null if there is no overlap
+ */
+YAHOO.util.Region.prototype.intersect = function(region) {
+    var t = Math.max( this.top,    region.top    );
+    var r = Math.min( this.right,  region.right  );
+    var b = Math.min( this.bottom, region.bottom );
+    var l = Math.max( this.left,   region.left   );
+    
+    if (b >= t && r >= l) {
+        return new YAHOO.util.Region(t, r, b, l);
+    } else {
+        return null;
+    }
+};
+
+/**
+ * Returns the region representing the smallest region that can contain both
+ * the passed in region and this region.
+ * @method union
+ * @param  {Region} region The region that to create the union with
+ * @return {Region}        The union region
+ */
+YAHOO.util.Region.prototype.union = function(region) {
+    var t = Math.min( this.top,    region.top    );
+    var r = Math.max( this.right,  region.right  );
+    var b = Math.max( this.bottom, region.bottom );
+    var l = Math.min( this.left,   region.left   );
+
+    return new YAHOO.util.Region(t, r, b, l);
+};
+
+/**
+ * toString
+ * @method toString
+ * @return string the region properties
+ */
+YAHOO.util.Region.prototype.toString = function() {
+    return ( "Region {"    +
+             "top: "       + this.top    + 
+             ", right: "   + this.right  + 
+             ", bottom: "  + this.bottom + 
+             ", left: "    + this.left   + 
+             "}" );
+};
+
+/**
+ * Returns a region that is occupied by the DOM element
+ * @method getRegion
+ * @param  {HTMLElement} el The element
+ * @return {Region}         The region that the element occupies
+ * @static
+ */
+YAHOO.util.Region.getRegion = function(el) {
+    var p = YAHOO.util.Dom.getXY(el);
+
+    var t = p[1];
+    var r = p[0] + el.offsetWidth;
+    var b = p[1] + el.offsetHeight;
+    var l = p[0];
+
+    return new YAHOO.util.Region(t, r, b, l);
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+/**
+ * A point is a region that is special in that it represents a single point on 
+ * the grid.
+ * @namespace YAHOO.util
+ * @class Point
+ * @param {Int} x The X position of the point
+ * @param {Int} y The Y position of the point
+ * @constructor
+ * @extends YAHOO.util.Region
+ */
+YAHOO.util.Point = function(x, y) {
+   if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc.
+      y = x[1]; // dont blow away x yet
+      x = x[0];
+   }
+   
+    /**
+     * The X position of the point, which is also the right, left and index zero (for Dom.getXY symmetry)
+     * @property x
+     * @type Int
+     */
+
+    this.x = this.right = this.left = this[0] = x;
+     
+    /**
+     * The Y position of the point, which is also the top, bottom and index one (for Dom.getXY symmetry)
+     * @property y
+     * @type Int
+     */
+    this.y = this.top = this.bottom = this[1] = y;
+};
+
+YAHOO.util.Point.prototype = new YAHOO.util.Region();
+
+YAHOO.register("dom", YAHOO.util.Dom, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/dom/dom-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/yahoo/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/yahoo/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/yahoo/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/yahoo/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/yahoo/yahoo.js
===================================================================
--- tags/2.7.0/wb/include/yui/yahoo/yahoo.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/yahoo/yahoo.js	(revision 838)
@@ -0,0 +1,952 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The YAHOO object is the single global object used by YUI Library.  It
+ * contains utility function for setting up namespaces, inheritance, and
+ * logging.  YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces
+ * created automatically for and used by the library.
+ * @module yahoo
+ * @title  YAHOO Global
+ */
+
+/**
+ * YAHOO_config is not included as part of the library.  Instead it is an 
+ * object that can be defined by the implementer immediately before 
+ * including the YUI library.  The properties included in this object
+ * will be used to configure global properties needed as soon as the 
+ * library begins to load.
+ * @class YAHOO_config
+ * @static
+ */
+
+/**
+ * A reference to a function that will be executed every time a YAHOO module
+ * is loaded.  As parameter, this function will receive the version
+ * information for the module. See <a href="YAHOO.env.html#getVersion">
+ * YAHOO.env.getVersion</a> for the description of the version data structure.
+ * @property listener
+ * @type Function
+ * @static
+ * @default undefined
+ */
+
+/**
+ * Set to true if the library will be dynamically loaded after window.onload.
+ * Defaults to false 
+ * @property injecting
+ * @type boolean
+ * @static
+ * @default undefined
+ */
+
+/**
+ * Instructs the yuiloader component to dynamically load yui components and
+ * their dependencies.  See the yuiloader documentation for more information
+ * about dynamic loading
+ * @property load
+ * @static
+ * @default undefined
+ * @see yuiloader
+ */
+
+/**
+ * Forces the use of the supplied locale where applicable in the library
+ * @property locale
+ * @type string
+ * @static
+ * @default undefined
+ */
+
+if (typeof YAHOO == "undefined" || !YAHOO) {
+    /**
+     * The YAHOO global namespace object.  If YAHOO is already defined, the
+     * existing YAHOO object will not be overwritten so that defined
+     * namespaces are preserved.
+     * @class YAHOO
+     * @static
+     */
+    var YAHOO = {};
+}
+
+/**
+ * Returns the namespace specified and creates it if it doesn't exist
+ * <pre>
+ * YAHOO.namespace("property.package");
+ * YAHOO.namespace("YAHOO.property.package");
+ * </pre>
+ * Either of the above would create YAHOO.property, then
+ * YAHOO.property.package
+ *
+ * Be careful when naming packages. Reserved words may work in some browsers
+ * and not others. For instance, the following will fail in Safari:
+ * <pre>
+ * YAHOO.namespace("really.long.nested.namespace");
+ * </pre>
+ * This fails because "long" is a future reserved word in ECMAScript
+ *
+ * @method namespace
+ * @static
+ * @param  {String*} arguments 1-n namespaces to create 
+ * @return {Object}  A reference to the last namespace object created
+ */
+YAHOO.namespace = function() {
+    var a=arguments, o=null, i, j, d;
+    for (i=0; i<a.length; i=i+1) {
+        d=a[i].split(".");
+        o=YAHOO;
+
+        // YAHOO is implied, so it is ignored if it is included
+        for (j=(d[0] == "YAHOO") ? 1 : 0; j<d.length; j=j+1) {
+            o[d[j]]=o[d[j]] || {};
+            o=o[d[j]];
+        }
+    }
+
+    return o;
+};
+
+/**
+ * Uses YAHOO.widget.Logger to output a log message, if the widget is
+ * available.
+ *
+ * @method log
+ * @static
+ * @param  {String}  msg  The message to log.
+ * @param  {String}  cat  The log category for the message.  Default
+ *                        categories are "info", "warn", "error", time".
+ *                        Custom categories can be used as well. (opt)
+ * @param  {String}  src  The source of the the message (opt)
+ * @return {Boolean}      True if the log operation was successful.
+ */
+YAHOO.log = function(msg, cat, src) {
+    var l=YAHOO.widget.Logger;
+    if(l && l.log) {
+        return l.log(msg, cat, src);
+    } else {
+        return false;
+    }
+};
+
+/**
+ * Registers a module with the YAHOO object
+ * @method register
+ * @static
+ * @param {String}   name    the name of the module (event, slider, etc)
+ * @param {Function} mainClass a reference to class in the module.  This
+ *                             class will be tagged with the version info
+ *                             so that it will be possible to identify the
+ *                             version that is in use when multiple versions
+ *                             have loaded
+ * @param {Object}   data      metadata object for the module.  Currently it
+ *                             is expected to contain a "version" property
+ *                             and a "build" property at minimum.
+ */
+YAHOO.register = function(name, mainClass, data) {
+    var mods = YAHOO.env.modules;
+    if (!mods[name]) {
+        mods[name] = { versions:[], builds:[] };
+    }
+    var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;
+    m.name = name;
+    m.version = v;
+    m.build = b;
+    m.versions.push(v);
+    m.builds.push(b);
+    m.mainClass = mainClass;
+    // fire the module load listeners
+    for (var i=0;i<ls.length;i=i+1) {
+        ls[i](m);
+    }
+    // label the main class
+    if (mainClass) {
+        mainClass.VERSION = v;
+        mainClass.BUILD = b;
+    } else {
+        YAHOO.log("mainClass is undefined for module " + name, "warn");
+    }
+};
+
+/**
+ * YAHOO.env is used to keep track of what is known about the YUI library and
+ * the browsing environment
+ * @class YAHOO.env
+ * @static
+ */
+YAHOO.env = YAHOO.env || {
+
+    /**
+     * Keeps the version info for all YUI modules that have reported themselves
+     * @property modules
+     * @type Object[]
+     */
+    modules: [],
+    
+    /**
+     * List of functions that should be executed every time a YUI module
+     * reports itself.
+     * @property listeners
+     * @type Function[]
+     */
+    listeners: []
+};
+
+/**
+ * Returns the version data for the specified module:
+ *      <dl>
+ *      <dt>name:</dt>      <dd>The name of the module</dd>
+ *      <dt>version:</dt>   <dd>The version in use</dd>
+ *      <dt>build:</dt>     <dd>The build number in use</dd>
+ *      <dt>versions:</dt>  <dd>All versions that were registered</dd>
+ *      <dt>builds:</dt>    <dd>All builds that were registered.</dd>
+ *      <dt>mainClass:</dt> <dd>An object that was was stamped with the
+ *                 current version and build. If 
+ *                 mainClass.VERSION != version or mainClass.BUILD != build,
+ *                 multiple versions of pieces of the library have been
+ *                 loaded, potentially causing issues.</dd>
+ *       </dl>
+ *
+ * @method getVersion
+ * @static
+ * @param {String}  name the name of the module (event, slider, etc)
+ * @return {Object} The version info
+ */
+YAHOO.env.getVersion = function(name) {
+    return YAHOO.env.modules[name] || null;
+};
+
+/**
+ * Do not fork for a browser if it can be avoided.  Use feature detection when
+ * you can.  Use the user agent as a last resort.  YAHOO.env.ua stores a version
+ * number for the browser engine, 0 otherwise.  This value may or may not map
+ * to the version number of the browser using the engine.  The value is 
+ * presented as a float so that it can easily be used for boolean evaluation 
+ * as well as for looking for a particular range of versions.  Because of this, 
+ * some of the granularity of the version info may be lost (e.g., Gecko 1.8.0.9 
+ * reports 1.8).
+ * @class YAHOO.env.ua
+ * @static
+ */
+YAHOO.env.ua = function() {
+    var o={
+
+        /**
+         * Internet Explorer version number or 0.  Example: 6
+         * @property ie
+         * @type float
+         */
+        ie:0,
+
+        /**
+         * Opera version number or 0.  Example: 9.2
+         * @property opera
+         * @type float
+         */
+        opera:0,
+
+        /**
+         * Gecko engine revision number.  Will evaluate to 1 if Gecko 
+         * is detected but the revision could not be found. Other browsers
+         * will be 0.  Example: 1.8
+         * <pre>
+         * Firefox 1.0.0.4: 1.7.8   <-- Reports 1.7
+         * Firefox 1.5.0.9: 1.8.0.9 <-- Reports 1.8
+         * Firefox 2.0.0.3: 1.8.1.3 <-- Reports 1.8
+         * Firefox 3 alpha: 1.9a4   <-- Reports 1.9
+         * </pre>
+         * @property gecko
+         * @type float
+         */
+        gecko:0,
+
+        /**
+         * AppleWebKit version.  KHTML browsers that are not WebKit browsers 
+         * will evaluate to 1, other browsers 0.  Example: 418.9.1
+         * <pre>
+         * Safari 1.3.2 (312.6): 312.8.1 <-- Reports 312.8 -- currently the 
+         *                                   latest available for Mac OSX 10.3.
+         * Safari 2.0.2:         416     <-- hasOwnProperty introduced
+         * Safari 2.0.4:         418     <-- preventDefault fixed
+         * Safari 2.0.4 (419.3): 418.9.1 <-- One version of Safari may run
+         *                                   different versions of webkit
+         * Safari 2.0.4 (419.3): 419     <-- Current Safari release
+         * Webkit 212 nightly:   522+    <-- Safari 3.0 (with native SVG) should
+         *                                   be higher than this
+         *                                   
+         * </pre>
+         * http://developer.apple.com/internet/safari/uamatrix.html
+         * @property webkit
+         * @type float
+         */
+        webkit:0,
+
+        /**
+         * The mobile property will be set to a string containing any relevant
+         * user agent information when a modern mobile browser is detected.
+         * Currently limited to Safari on the iPhone/iPod Touch, Nokia N-series
+         * devices with the WebKit-based browser, and Opera Mini.  
+         * @property mobile 
+         * @type string
+         */
+        mobile: null 
+    };
+
+    var ua=navigator.userAgent, m;
+
+    // Modern KHTML browsers should qualify as Safari X-Grade
+    if ((/KHTML/).test(ua)) {
+        o.webkit=1;
+    }
+    // Modern WebKit browsers are at least X-Grade
+    m=ua.match(/AppleWebKit\/([^\s]*)/);
+    if (m&&m[1]) {
+        o.webkit=parseFloat(m[1]);
+
+        // Mobile browser check
+        if (/ Mobile\//.test(ua)) {
+            o.mobile = "Apple"; // iPhone or iPod Touch
+        } else {
+            m=ua.match(/NokiaN[^\/]*/);
+            if (m) {
+                o.mobile = m[0]; // Nokia N-series, ex: NokiaN95
+            }
+        }
+
+    }
+
+    if (!o.webkit) { // not webkit
+        // @todo check Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
+        m=ua.match(/Opera[\s\/]([^\s]*)/);
+        if (m&&m[1]) {
+            o.opera=parseFloat(m[1]);
+            m=ua.match(/Opera Mini[^;]*/);
+            if (m) {
+                o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316
+            }
+        } else { // not opera or webkit
+            m=ua.match(/MSIE\s([^;]*)/);
+            if (m&&m[1]) {
+                o.ie=parseFloat(m[1]);
+            } else { // not opera, webkit, or ie
+                m=ua.match(/Gecko\/([^\s]*)/);
+                if (m) {
+                    o.gecko=1; // Gecko detected, look for revision
+                    m=ua.match(/rv:([^\s\)]*)/);
+                    if (m&&m[1]) {
+                        o.gecko=parseFloat(m[1]);
+                    }
+                }
+            }
+        }
+    }
+    
+    return o;
+}();
+
+/*
+ * Initializes the global by creating the default namespaces and applying
+ * any new configuration information that is detected.  This is the setup
+ * for env.
+ * @method init
+ * @static
+ * @private
+ */
+(function() {
+    YAHOO.namespace("util", "widget", "example");
+    if ("undefined" !== typeof YAHOO_config) {
+        var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;
+        if (l) {
+            // if YAHOO is loaded multiple times we need to check to see if
+            // this is a new config object.  If it is, add the new component
+            // load listener to the stack
+            for (i=0;i<ls.length;i=i+1) {
+                if (ls[i]==l) {
+                    unique=false;
+                    break;
+                }
+            }
+            if (unique) {
+                ls.push(l);
+            }
+        }
+    }
+})();
+/**
+ * Provides the language utilites and extensions used by the library
+ * @class YAHOO.lang
+ */
+YAHOO.lang = YAHOO.lang || {
+    /**
+     * Determines whether or not the provided object is an array.
+     * Testing typeof/instanceof/constructor of arrays across frame 
+     * boundaries isn't possible in Safari unless you have a reference
+     * to the other frame to test against its Array prototype.  To
+     * handle this case, we test well-known array properties instead.
+     * properties.
+     * @method isArray
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isArray: function(o) { 
+
+        if (o) {
+           var l = YAHOO.lang;
+           return l.isNumber(o.length) && l.isFunction(o.splice);
+        }
+        return false;
+    },
+
+    /**
+     * Determines whether or not the provided object is a boolean
+     * @method isBoolean
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isBoolean: function(o) {
+        return typeof o === 'boolean';
+    },
+    
+    /**
+     * Determines whether or not the provided object is a function
+     * @method isFunction
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isFunction: function(o) {
+        return typeof o === 'function';
+    },
+        
+    /**
+     * Determines whether or not the provided object is null
+     * @method isNull
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isNull: function(o) {
+        return o === null;
+    },
+        
+    /**
+     * Determines whether or not the provided object is a legal number
+     * @method isNumber
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isNumber: function(o) {
+        return typeof o === 'number' && isFinite(o);
+    },
+      
+    /**
+     * Determines whether or not the provided object is of type object
+     * or function
+     * @method isObject
+     * @param {any} o The object being testing
+     * @return Boolean
+     */  
+    isObject: function(o) {
+return (o && (typeof o === 'object' || YAHOO.lang.isFunction(o))) || false;
+    },
+        
+    /**
+     * Determines whether or not the provided object is a string
+     * @method isString
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isString: function(o) {
+        return typeof o === 'string';
+    },
+        
+    /**
+     * Determines whether or not the provided object is undefined
+     * @method isUndefined
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isUndefined: function(o) {
+        return typeof o === 'undefined';
+    },
+    
+    /**
+     * Determines whether or not the property was added
+     * to the object instance.  Returns false if the property is not present
+     * in the object, or was inherited from the prototype.
+     * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x.
+     * There is a discrepancy between YAHOO.lang.hasOwnProperty and
+     * Object.prototype.hasOwnProperty when the property is a primitive added to
+     * both the instance AND prototype with the same value:
+     * <pre>
+     * var A = function() {};
+     * A.prototype.foo = 'foo';
+     * var a = new A();
+     * a.foo = 'foo';
+     * alert(a.hasOwnProperty('foo')); // true
+     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
+     * </pre>
+     * @method hasOwnProperty
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    hasOwnProperty: function(o, prop) {
+        if (Object.prototype.hasOwnProperty) {
+            return o.hasOwnProperty(prop);
+        }
+        
+        return !YAHOO.lang.isUndefined(o[prop]) && 
+                o.constructor.prototype[prop] !== o[prop];
+    },
+ 
+    /**
+     * IE will not enumerate native functions in a derived object even if the
+     * function was overridden.  This is a workaround for specific functions 
+     * we care about on the Object prototype. 
+     * @property _IEEnumFix
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @static
+     * @private
+     */
+    _IEEnumFix: function(r, s) {
+        if (YAHOO.env.ua.ie) {
+            var add=["toString", "valueOf"], i;
+            for (i=0;i<add.length;i=i+1) {
+                var fname=add[i],f=s[fname];
+                if (YAHOO.lang.isFunction(f) && f!=Object.prototype[fname]) {
+                    r[fname]=f;
+                }
+            }
+        }
+    },
+       
+    /**
+     * Utility to set up the prototype, constructor and superclass properties to
+     * support an inheritance strategy that can chain constructors and methods.
+     * Static members will not be inherited.
+     *
+     * @method extend
+     * @static
+     * @param {Function} subc   the object to modify
+     * @param {Function} superc the object to inherit
+     * @param {Object} overrides  additional properties/methods to add to the
+     *                              subclass prototype.  These will override the
+     *                              matching items obtained from the superclass 
+     *                              if present.
+     */
+    extend: function(subc, superc, overrides) {
+        if (!superc||!subc) {
+            throw new Error("YAHOO.lang.extend failed, please check that " +
+                            "all dependencies are included.");
+        }
+        var F = function() {};
+        F.prototype=superc.prototype;
+        subc.prototype=new F();
+        subc.prototype.constructor=subc;
+        subc.superclass=superc.prototype;
+        if (superc.prototype.constructor == Object.prototype.constructor) {
+            superc.prototype.constructor=superc;
+        }
+    
+        if (overrides) {
+            for (var i in overrides) {
+                subc.prototype[i]=overrides[i];
+            }
+
+            YAHOO.lang._IEEnumFix(subc.prototype, overrides);
+        }
+    },
+   
+    /**
+     * Applies all properties in the supplier to the receiver if the
+     * receiver does not have these properties yet.  Optionally, one or 
+     * more methods/properties can be specified (as additional 
+     * parameters).  This option will overwrite the property if receiver 
+     * has it already.  If true is passed as the third parameter, all 
+     * properties will be applied and _will_ overwrite properties in 
+     * the receiver.
+     *
+     * @method augmentObject
+     * @static
+     * @since 2.3.0
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @param {String*|boolean}  arguments zero or more properties methods 
+     *        to augment the receiver with.  If none specified, everything
+     *        in the supplier will be used unless it would
+     *        overwrite an existing property in the receiver. If true
+     *        is specified as the third parameter, all properties will
+     *        be applied and will overwrite an existing property in
+     *        the receiver
+     */
+    augmentObject: function(r, s) {
+        if (!s||!r) {
+            throw new Error("Absorb failed, verify dependencies.");
+        }
+        var a=arguments, i, p, override=a[2];
+        if (override && override!==true) { // only absorb the specified properties
+            for (i=2; i<a.length; i=i+1) {
+                r[a[i]] = s[a[i]];
+            }
+        } else { // take everything, overwriting only if the third parameter is true
+            for (p in s) { 
+                if (override || !r[p]) {
+                    r[p] = s[p];
+                }
+            }
+            
+            YAHOO.lang._IEEnumFix(r, s);
+        }
+    },
+ 
+    /**
+     * Same as YAHOO.lang.augmentObject, except it only applies prototype properties
+     * @see YAHOO.lang.augmentObject
+     * @method augmentProto
+     * @static
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @param {String*|boolean}  arguments zero or more properties methods 
+     *        to augment the receiver with.  If none specified, everything 
+     *        in the supplier will be used unless it would overwrite an existing 
+     *        property in the receiver.  if true is specified as the third 
+     *        parameter, all properties will be applied and will overwrite an 
+     *        existing property in the receiver
+     */
+    augmentProto: function(r, s) {
+        if (!s||!r) {
+            throw new Error("Augment failed, verify dependencies.");
+        }
+        //var a=[].concat(arguments);
+        var a=[r.prototype,s.prototype];
+        for (var i=2;i<arguments.length;i=i+1) {
+            a.push(arguments[i]);
+        }
+        YAHOO.lang.augmentObject.apply(this, a);
+    },
+
+      
+    /**
+     * Returns a simple string representation of the object or array.
+     * Other types of objects will be returned unprocessed.  Arrays
+     * are expected to be indexed.  Use object notation for
+     * associative arrays.
+     * @method dump
+     * @since 2.3.0
+     * @param o {Object} The object to dump
+     * @param d {int} How deep to recurse child objects, default 3
+     * @return {String} the dump result
+     */
+    dump: function(o, d) {
+        var l=YAHOO.lang,i,len,s=[],OBJ="{...}",FUN="f(){...}",
+            COMMA=', ', ARROW=' => ';
+
+        // Cast non-objects to string
+        // Skip dates because the std toString is what we want
+        // Skip HTMLElement-like objects because trying to dump 
+        // an element will cause an unhandled exception in FF 2.x
+        if (!l.isObject(o)) {
+            return o + "";
+        } else if (o instanceof Date || ("nodeType" in o && "tagName" in o)) {
+            return o;
+        } else if  (l.isFunction(o)) {
+            return FUN;
+        }
+
+        // dig into child objects the depth specifed. Default 3
+        d = (l.isNumber(d)) ? d : 3;
+
+        // arrays [1, 2, 3]
+        if (l.isArray(o)) {
+            s.push("[");
+            for (i=0,len=o.length;i<len;i=i+1) {
+                if (l.isObject(o[i])) {
+                    s.push((d > 0) ? l.dump(o[i], d-1) : OBJ);
+                } else {
+                    s.push(o[i]);
+                }
+                s.push(COMMA);
+            }
+            if (s.length > 1) {
+                s.pop();
+            }
+            s.push("]");
+        // objects {k1 => v1, k2 => v2}
+        } else {
+            s.push("{");
+            for (i in o) {
+                if (l.hasOwnProperty(o, i)) {
+                    s.push(i + ARROW);
+                    if (l.isObject(o[i])) {
+                        s.push((d > 0) ? l.dump(o[i], d-1) : OBJ);
+                    } else {
+                        s.push(o[i]);
+                    }
+                    s.push(COMMA);
+                }
+            }
+            if (s.length > 1) {
+                s.pop();
+            }
+            s.push("}");
+        }
+
+        return s.join("");
+    },
+
+    /**
+     * Does variable substitution on a string. It scans through the string 
+     * looking for expressions enclosed in { } braces. If an expression 
+     * is found, it is used a key on the object.  If there is a space in
+     * the key, the first word is used for the key and the rest is provided
+     * to an optional function to be used to programatically determine the
+     * value (the extra information might be used for this decision). If 
+     * the value for the key in the object, or what is returned from the
+     * function has a string value, number value, or object value, it is 
+     * substituted for the bracket expression and it repeats.  If this
+     * value is an object, it uses the Object's toString() if this has
+     * been overridden, otherwise it does a shallow dump of the key/value
+     * pairs.
+     * @method substitute
+     * @since 2.3.0
+     * @param s {String} The string that will be modified.
+     * @param o {Object} An object containing the replacement values
+     * @param f {Function} An optional function that can be used to
+     *                     process each match.  It receives the key,
+     *                     value, and any extra metadata included with
+     *                     the key inside of the braces.
+     * @return {String} the substituted string
+     */
+    substitute: function (s, o, f) {
+        var i, j, k, key, v, meta, l=YAHOO.lang, saved=[], token, 
+            DUMP='dump', SPACE=' ', LBRACE='{', RBRACE='}';
+
+
+        for (;;) {
+            i = s.lastIndexOf(LBRACE);
+            if (i < 0) {
+                break;
+            }
+            j = s.indexOf(RBRACE, i);
+            if (i + 1 >= j) {
+                break;
+            }
+
+            //Extract key and meta info 
+            token = s.substring(i + 1, j);
+            key = token;
+            meta = null;
+            k = key.indexOf(SPACE);
+            if (k > -1) {
+                meta = key.substring(k + 1);
+                key = key.substring(0, k);
+            }
+
+            // lookup the value
+            v = o[key];
+
+            // if a substitution function was provided, execute it
+            if (f) {
+                v = f(key, v, meta);
+            }
+
+            if (l.isObject(v)) {
+                if (l.isArray(v)) {
+                    v = l.dump(v, parseInt(meta, 10));
+                } else {
+                    meta = meta || "";
+
+                    // look for the keyword 'dump', if found force obj dump
+                    var dump = meta.indexOf(DUMP);
+                    if (dump > -1) {
+                        meta = meta.substring(4);
+                    }
+
+                    // use the toString if it is not the Object toString 
+                    // and the 'dump' meta info was not found
+                    if (v.toString===Object.prototype.toString||dump>-1) {
+                        v = l.dump(v, parseInt(meta, 10));
+                    } else {
+                        v = v.toString();
+                    }
+                }
+            } else if (!l.isString(v) && !l.isNumber(v)) {
+                // This {block} has no replace string. Save it for later.
+                v = "~-" + saved.length + "-~";
+                saved[saved.length] = token;
+
+                // break;
+            }
+
+            s = s.substring(0, i) + v + s.substring(j + 1);
+
+
+        }
+
+        // restore saved {block}s
+        for (i=saved.length-1; i>=0; i=i-1) {
+            s = s.replace(new RegExp("~-" + i + "-~"), "{"  + saved[i] + "}", "g");
+        }
+
+        return s;
+    },
+
+
+    /**
+     * Returns a string without any leading or trailing whitespace.  If 
+     * the input is not a string, the input will be returned untouched.
+     * @method trim
+     * @since 2.3.0
+     * @param s {string} the string to trim
+     * @return {string} the trimmed string
+     */
+    trim: function(s){
+        try {
+            return s.replace(/^\s+|\s+$/g, "");
+        } catch(e) {
+            return s;
+        }
+    },
+
+    /**
+     * Returns a new object containing all of the properties of
+     * all the supplied objects.  The properties from later objects
+     * will overwrite those in earlier objects.
+     * @method merge
+     * @since 2.3.0
+     * @param arguments {Object*} the objects to merge
+     * @return the new merged object
+     */
+    merge: function() {
+        var o={}, a=arguments;
+        for (var i=0, l=a.length; i<l; i=i+1) {
+            YAHOO.lang.augmentObject(o, a[i], true);
+        }
+        return o;
+    },
+
+    /**
+     * Executes the supplied function in the scope of the supplied 
+     * object 'when' milliseconds later.  Executes the function a 
+     * single time unless periodic is set to true.
+     * @method later
+     * @since 2.4.0
+     * @param when {int} the number of milliseconds to wait until the fn 
+     * is executed
+     * @param o the scope object
+     * @param fn {Function|String} the function to execute or the name of 
+     * the method in the 'o' object to execute
+     * @param data [Array] data that is provided to the function.  This accepts
+     * either a single item or an array.  If an array is provided, the
+     * function is executed with one parameter for each array item.  If
+     * you need to pass a single array parameter, it needs to be wrapped in
+     * an array [myarray]
+     * @param periodic {boolean} if true, executes continuously at supplied 
+     * interval until canceled
+     * @return a timer object. Call the cancel() method on this object to 
+     * stop the timer.
+     */
+    later: function(when, o, fn, data, periodic) {
+        when = when || 0; 
+        o = o || {};
+        var m=fn, d=data, f, r;
+
+        if (YAHOO.lang.isString(fn)) {
+            m = o[fn];
+        }
+
+        if (!m) {
+            throw new TypeError("method undefined");
+        }
+
+        if (!YAHOO.lang.isArray(d)) {
+            d = [data];
+        }
+
+        f = function() {
+            m.apply(o, d);
+        };
+
+        r = (periodic) ? setInterval(f, when) : setTimeout(f, when);
+
+        return {
+            interval: periodic,
+            cancel: function() {
+                if (this.interval) {
+                    clearInterval(r);
+                } else {
+                    clearTimeout(r);
+                }
+            }
+        };
+    },
+
+    /**
+     * A convenience method for detecting a legitimate non-null value.
+     * Returns false for null/undefined/NaN, true for other values, 
+     * including 0/false/''
+     * @method isValue
+     * @since 2.3.0
+     * @param o {any} the item to test
+     * @return {boolean} true if it is not null/undefined/NaN || false
+     */
+    isValue: function(o) {
+        // return (o || o === false || o === 0 || o === ''); // Infinity fails
+        var l = YAHOO.lang;
+return (l.isObject(o) || l.isString(o) || l.isNumber(o) || l.isBoolean(o));
+    }
+
+};
+
+/*
+ * An alias for <a href="YAHOO.lang.html">YAHOO.lang</a>
+ * @class YAHOO.util.Lang
+ */
+YAHOO.util.Lang = YAHOO.lang;
+ 
+/**
+ * Same as YAHOO.lang.augmentObject, except it only applies prototype 
+ * properties.  This is an alias for augmentProto.
+ * @see YAHOO.lang.augmentObject
+ * @method augment
+ * @static
+ * @param {Function} r  the object to receive the augmentation
+ * @param {Function} s  the object that supplies the properties to augment
+ * @param {String*|boolean}  arguments zero or more properties methods to 
+ *        augment the receiver with.  If none specified, everything
+ *        in the supplier will be used unless it would
+ *        overwrite an existing property in the receiver.  if true
+ *        is specified as the third parameter, all properties will
+ *        be applied and will overwrite an existing property in
+ *        the receiver
+ */
+YAHOO.lang.augment = YAHOO.lang.augmentProto;
+
+/**
+ * An alias for <a href="YAHOO.lang.html#augment">YAHOO.lang.augment</a>
+ * @for YAHOO
+ * @method augment
+ * @static
+ * @param {Function} r  the object to receive the augmentation
+ * @param {Function} s  the object that supplies the properties to augment
+ * @param {String*}  arguments zero or more properties methods to 
+ *        augment the receiver with.  If none specified, everything
+ *        in the supplier will be used unless it would
+ *        overwrite an existing property in the receiver
+ */
+YAHOO.augment = YAHOO.lang.augmentProto;
+       
+/**
+ * An alias for <a href="YAHOO.lang.html#extend">YAHOO.lang.extend</a>
+ * @method extend
+ * @static
+ * @param {Function} subc   the object to modify
+ * @param {Function} superc the object to inherit
+ * @param {Object} overrides  additional properties/methods to add to the
+ *        subclass prototype.  These will override the
+ *        matching items obtained from the superclass if present.
+ */
+YAHOO.extend = YAHOO.lang.extend;
+
+YAHOO.register("yahoo", YAHOO, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/yahoo/yahoo.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/yahoo/yahoo-min.js
===================================================================
--- tags/2.7.0/wb/include/yui/yahoo/yahoo-min.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/yahoo/yahoo-min.js	(revision 838)
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.4.1",build:"742"});
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/yahoo/yahoo-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/yahoo/README
===================================================================
--- tags/2.7.0/wb/include/yui/yahoo/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/yahoo/README	(revision 838)
@@ -0,0 +1,95 @@
+YAHOO Global - Release Notes
+
+2.4.1
+
+No change
+
+2.4.0
+  * Added YAHOO.env.ua.mobile
+  * Removed the hasOwnProperty check in isArray to make it perform a bit better.
+  * YAHOO will be created/overwritten if YAHOO is undefined or the defined YAHOO is falsy
+
+2.3.1
+  * YAHOO.lang.dump casts primitives to strings
+
+2.3.0
+  * Added YAHOO.env.ua - browser detection
+  * Added YAHOO.lang.merge - object merge
+  * Added YAHOO.lang.trim - whitespace removal
+  * Added YAHOO.lang.augmentObject - mixins.  Renamed augment to augmentProto and 
+    made augment an alias to augmentProto
+  * isObject/isArray return false rather than null when testing null
+
+2.2.2
+
+  * No change
+
+2.2.1
+
+  * YAHOO.lang.isObject returns false for null
+  * YAHOO.lang.isArray no longer generates an error when the argument is null/undefined
+  * Better error messages for YAHOO.lang.augment/extend failures that are usually due 
+    to missing dependencies.
+
+2.2.0a
+
+  * Fixed a typo that prevented the proper detection of multiple YAHOO_config listeners
+
+2.2.0
+
+  * Added configuration of the library via a YAHOO_config object defined
+    prior to the reference to the library.  Currently it supports a listener
+    parameter that will execute every time a new module YUI module is loaded.
+
+  * Added YAHOO.register & YAHOO.getVersion for version stamping modules.
+  
+  * Added YAHOO.env which is the home for the information about the loaded
+    YUI modules, and will host more info later.
+    
+  * YAHOO.util.Lang was relocated to this package and is now YAHOO.lang.
+    YAHOO.extend and YAHOO.augment have moved to env (the original
+    functions still work).
+
+0.12.2
+
+  * No change
+
+0.12.1
+
+  * No change
+
+0.12.0
+
+   * Added YAHOO.augment, which copies all or part of the prototype of one
+     object to another.  
+
+   * YAHOO.namespace now can create multiple namespaces.
+
+   * Added an optional third parameter to YAHOO.extend: overrides.  It takes
+     an object literal of properties/methods to apply to the subclass
+     prototype, overriding the superclass if present.
+
+0.11.4
+
+   * Changed window.YAHOO = window.YAHOO || {} to 
+     if (typeof YAHOO == "undefined") YAHOO = {} because the previous statement
+     contributed to a memory leak in IE6 when the library was hosted in an 
+     iframe.
+
+0.11.3
+
+   * Changed var YAHOO = window.YAHOO || {} to window.YAHOO = window.YAHOO || {}.
+     This fixes an issue in IE where YAHOO would get overwritten if previously
+     defined via array notation (window["YAHOO"]).
+
+0.11.0
+
+   * Added YAHOO.extend, which provides an easy way to assign the prototype,
+     constructor, and superclass properties inheritance properties.  It also
+     prevents the constructor of the superclass from being exectuted twice.
+
+0.10.0
+
+   * Added YAHOO.log that provides a safe way to plumb logging statements in
+     code that will work if the logging component isn't available.
+

Property changes on: tags/2.7.0/wb/include/yui/yahoo/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/yahoo/yahoo-debug.js
===================================================================
--- tags/2.7.0/wb/include/yui/yahoo/yahoo-debug.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/yahoo/yahoo-debug.js	(revision 838)
@@ -0,0 +1,952 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The YAHOO object is the single global object used by YUI Library.  It
+ * contains utility function for setting up namespaces, inheritance, and
+ * logging.  YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces
+ * created automatically for and used by the library.
+ * @module yahoo
+ * @title  YAHOO Global
+ */
+
+/**
+ * YAHOO_config is not included as part of the library.  Instead it is an 
+ * object that can be defined by the implementer immediately before 
+ * including the YUI library.  The properties included in this object
+ * will be used to configure global properties needed as soon as the 
+ * library begins to load.
+ * @class YAHOO_config
+ * @static
+ */
+
+/**
+ * A reference to a function that will be executed every time a YAHOO module
+ * is loaded.  As parameter, this function will receive the version
+ * information for the module. See <a href="YAHOO.env.html#getVersion">
+ * YAHOO.env.getVersion</a> for the description of the version data structure.
+ * @property listener
+ * @type Function
+ * @static
+ * @default undefined
+ */
+
+/**
+ * Set to true if the library will be dynamically loaded after window.onload.
+ * Defaults to false 
+ * @property injecting
+ * @type boolean
+ * @static
+ * @default undefined
+ */
+
+/**
+ * Instructs the yuiloader component to dynamically load yui components and
+ * their dependencies.  See the yuiloader documentation for more information
+ * about dynamic loading
+ * @property load
+ * @static
+ * @default undefined
+ * @see yuiloader
+ */
+
+/**
+ * Forces the use of the supplied locale where applicable in the library
+ * @property locale
+ * @type string
+ * @static
+ * @default undefined
+ */
+
+if (typeof YAHOO == "undefined" || !YAHOO) {
+    /**
+     * The YAHOO global namespace object.  If YAHOO is already defined, the
+     * existing YAHOO object will not be overwritten so that defined
+     * namespaces are preserved.
+     * @class YAHOO
+     * @static
+     */
+    var YAHOO = {};
+}
+
+/**
+ * Returns the namespace specified and creates it if it doesn't exist
+ * <pre>
+ * YAHOO.namespace("property.package");
+ * YAHOO.namespace("YAHOO.property.package");
+ * </pre>
+ * Either of the above would create YAHOO.property, then
+ * YAHOO.property.package
+ *
+ * Be careful when naming packages. Reserved words may work in some browsers
+ * and not others. For instance, the following will fail in Safari:
+ * <pre>
+ * YAHOO.namespace("really.long.nested.namespace");
+ * </pre>
+ * This fails because "long" is a future reserved word in ECMAScript
+ *
+ * @method namespace
+ * @static
+ * @param  {String*} arguments 1-n namespaces to create 
+ * @return {Object}  A reference to the last namespace object created
+ */
+YAHOO.namespace = function() {
+    var a=arguments, o=null, i, j, d;
+    for (i=0; i<a.length; i=i+1) {
+        d=a[i].split(".");
+        o=YAHOO;
+
+        // YAHOO is implied, so it is ignored if it is included
+        for (j=(d[0] == "YAHOO") ? 1 : 0; j<d.length; j=j+1) {
+            o[d[j]]=o[d[j]] || {};
+            o=o[d[j]];
+        }
+    }
+
+    return o;
+};
+
+/**
+ * Uses YAHOO.widget.Logger to output a log message, if the widget is
+ * available.
+ *
+ * @method log
+ * @static
+ * @param  {String}  msg  The message to log.
+ * @param  {String}  cat  The log category for the message.  Default
+ *                        categories are "info", "warn", "error", time".
+ *                        Custom categories can be used as well. (opt)
+ * @param  {String}  src  The source of the the message (opt)
+ * @return {Boolean}      True if the log operation was successful.
+ */
+YAHOO.log = function(msg, cat, src) {
+    var l=YAHOO.widget.Logger;
+    if(l && l.log) {
+        return l.log(msg, cat, src);
+    } else {
+        return false;
+    }
+};
+
+/**
+ * Registers a module with the YAHOO object
+ * @method register
+ * @static
+ * @param {String}   name    the name of the module (event, slider, etc)
+ * @param {Function} mainClass a reference to class in the module.  This
+ *                             class will be tagged with the version info
+ *                             so that it will be possible to identify the
+ *                             version that is in use when multiple versions
+ *                             have loaded
+ * @param {Object}   data      metadata object for the module.  Currently it
+ *                             is expected to contain a "version" property
+ *                             and a "build" property at minimum.
+ */
+YAHOO.register = function(name, mainClass, data) {
+    var mods = YAHOO.env.modules;
+    if (!mods[name]) {
+        mods[name] = { versions:[], builds:[] };
+    }
+    var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;
+    m.name = name;
+    m.version = v;
+    m.build = b;
+    m.versions.push(v);
+    m.builds.push(b);
+    m.mainClass = mainClass;
+    // fire the module load listeners
+    for (var i=0;i<ls.length;i=i+1) {
+        ls[i](m);
+    }
+    // label the main class
+    if (mainClass) {
+        mainClass.VERSION = v;
+        mainClass.BUILD = b;
+    } else {
+        YAHOO.log("mainClass is undefined for module " + name, "warn");
+    }
+};
+
+/**
+ * YAHOO.env is used to keep track of what is known about the YUI library and
+ * the browsing environment
+ * @class YAHOO.env
+ * @static
+ */
+YAHOO.env = YAHOO.env || {
+
+    /**
+     * Keeps the version info for all YUI modules that have reported themselves
+     * @property modules
+     * @type Object[]
+     */
+    modules: [],
+    
+    /**
+     * List of functions that should be executed every time a YUI module
+     * reports itself.
+     * @property listeners
+     * @type Function[]
+     */
+    listeners: []
+};
+
+/**
+ * Returns the version data for the specified module:
+ *      <dl>
+ *      <dt>name:</dt>      <dd>The name of the module</dd>
+ *      <dt>version:</dt>   <dd>The version in use</dd>
+ *      <dt>build:</dt>     <dd>The build number in use</dd>
+ *      <dt>versions:</dt>  <dd>All versions that were registered</dd>
+ *      <dt>builds:</dt>    <dd>All builds that were registered.</dd>
+ *      <dt>mainClass:</dt> <dd>An object that was was stamped with the
+ *                 current version and build. If 
+ *                 mainClass.VERSION != version or mainClass.BUILD != build,
+ *                 multiple versions of pieces of the library have been
+ *                 loaded, potentially causing issues.</dd>
+ *       </dl>
+ *
+ * @method getVersion
+ * @static
+ * @param {String}  name the name of the module (event, slider, etc)
+ * @return {Object} The version info
+ */
+YAHOO.env.getVersion = function(name) {
+    return YAHOO.env.modules[name] || null;
+};
+
+/**
+ * Do not fork for a browser if it can be avoided.  Use feature detection when
+ * you can.  Use the user agent as a last resort.  YAHOO.env.ua stores a version
+ * number for the browser engine, 0 otherwise.  This value may or may not map
+ * to the version number of the browser using the engine.  The value is 
+ * presented as a float so that it can easily be used for boolean evaluation 
+ * as well as for looking for a particular range of versions.  Because of this, 
+ * some of the granularity of the version info may be lost (e.g., Gecko 1.8.0.9 
+ * reports 1.8).
+ * @class YAHOO.env.ua
+ * @static
+ */
+YAHOO.env.ua = function() {
+    var o={
+
+        /**
+         * Internet Explorer version number or 0.  Example: 6
+         * @property ie
+         * @type float
+         */
+        ie:0,
+
+        /**
+         * Opera version number or 0.  Example: 9.2
+         * @property opera
+         * @type float
+         */
+        opera:0,
+
+        /**
+         * Gecko engine revision number.  Will evaluate to 1 if Gecko 
+         * is detected but the revision could not be found. Other browsers
+         * will be 0.  Example: 1.8
+         * <pre>
+         * Firefox 1.0.0.4: 1.7.8   <-- Reports 1.7
+         * Firefox 1.5.0.9: 1.8.0.9 <-- Reports 1.8
+         * Firefox 2.0.0.3: 1.8.1.3 <-- Reports 1.8
+         * Firefox 3 alpha: 1.9a4   <-- Reports 1.9
+         * </pre>
+         * @property gecko
+         * @type float
+         */
+        gecko:0,
+
+        /**
+         * AppleWebKit version.  KHTML browsers that are not WebKit browsers 
+         * will evaluate to 1, other browsers 0.  Example: 418.9.1
+         * <pre>
+         * Safari 1.3.2 (312.6): 312.8.1 <-- Reports 312.8 -- currently the 
+         *                                   latest available for Mac OSX 10.3.
+         * Safari 2.0.2:         416     <-- hasOwnProperty introduced
+         * Safari 2.0.4:         418     <-- preventDefault fixed
+         * Safari 2.0.4 (419.3): 418.9.1 <-- One version of Safari may run
+         *                                   different versions of webkit
+         * Safari 2.0.4 (419.3): 419     <-- Current Safari release
+         * Webkit 212 nightly:   522+    <-- Safari 3.0 (with native SVG) should
+         *                                   be higher than this
+         *                                   
+         * </pre>
+         * http://developer.apple.com/internet/safari/uamatrix.html
+         * @property webkit
+         * @type float
+         */
+        webkit:0,
+
+        /**
+         * The mobile property will be set to a string containing any relevant
+         * user agent information when a modern mobile browser is detected.
+         * Currently limited to Safari on the iPhone/iPod Touch, Nokia N-series
+         * devices with the WebKit-based browser, and Opera Mini.  
+         * @property mobile 
+         * @type string
+         */
+        mobile: null 
+    };
+
+    var ua=navigator.userAgent, m;
+
+    // Modern KHTML browsers should qualify as Safari X-Grade
+    if ((/KHTML/).test(ua)) {
+        o.webkit=1;
+    }
+    // Modern WebKit browsers are at least X-Grade
+    m=ua.match(/AppleWebKit\/([^\s]*)/);
+    if (m&&m[1]) {
+        o.webkit=parseFloat(m[1]);
+
+        // Mobile browser check
+        if (/ Mobile\//.test(ua)) {
+            o.mobile = "Apple"; // iPhone or iPod Touch
+        } else {
+            m=ua.match(/NokiaN[^\/]*/);
+            if (m) {
+                o.mobile = m[0]; // Nokia N-series, ex: NokiaN95
+            }
+        }
+
+    }
+
+    if (!o.webkit) { // not webkit
+        // @todo check Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
+        m=ua.match(/Opera[\s\/]([^\s]*)/);
+        if (m&&m[1]) {
+            o.opera=parseFloat(m[1]);
+            m=ua.match(/Opera Mini[^;]*/);
+            if (m) {
+                o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316
+            }
+        } else { // not opera or webkit
+            m=ua.match(/MSIE\s([^;]*)/);
+            if (m&&m[1]) {
+                o.ie=parseFloat(m[1]);
+            } else { // not opera, webkit, or ie
+                m=ua.match(/Gecko\/([^\s]*)/);
+                if (m) {
+                    o.gecko=1; // Gecko detected, look for revision
+                    m=ua.match(/rv:([^\s\)]*)/);
+                    if (m&&m[1]) {
+                        o.gecko=parseFloat(m[1]);
+                    }
+                }
+            }
+        }
+    }
+    
+    return o;
+}();
+
+/*
+ * Initializes the global by creating the default namespaces and applying
+ * any new configuration information that is detected.  This is the setup
+ * for env.
+ * @method init
+ * @static
+ * @private
+ */
+(function() {
+    YAHOO.namespace("util", "widget", "example");
+    if ("undefined" !== typeof YAHOO_config) {
+        var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;
+        if (l) {
+            // if YAHOO is loaded multiple times we need to check to see if
+            // this is a new config object.  If it is, add the new component
+            // load listener to the stack
+            for (i=0;i<ls.length;i=i+1) {
+                if (ls[i]==l) {
+                    unique=false;
+                    break;
+                }
+            }
+            if (unique) {
+                ls.push(l);
+            }
+        }
+    }
+})();
+/**
+ * Provides the language utilites and extensions used by the library
+ * @class YAHOO.lang
+ */
+YAHOO.lang = YAHOO.lang || {
+    /**
+     * Determines whether or not the provided object is an array.
+     * Testing typeof/instanceof/constructor of arrays across frame 
+     * boundaries isn't possible in Safari unless you have a reference
+     * to the other frame to test against its Array prototype.  To
+     * handle this case, we test well-known array properties instead.
+     * properties.
+     * @method isArray
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isArray: function(o) { 
+
+        if (o) {
+           var l = YAHOO.lang;
+           return l.isNumber(o.length) && l.isFunction(o.splice);
+        }
+        return false;
+    },
+
+    /**
+     * Determines whether or not the provided object is a boolean
+     * @method isBoolean
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isBoolean: function(o) {
+        return typeof o === 'boolean';
+    },
+    
+    /**
+     * Determines whether or not the provided object is a function
+     * @method isFunction
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isFunction: function(o) {
+        return typeof o === 'function';
+    },
+        
+    /**
+     * Determines whether or not the provided object is null
+     * @method isNull
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isNull: function(o) {
+        return o === null;
+    },
+        
+    /**
+     * Determines whether or not the provided object is a legal number
+     * @method isNumber
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isNumber: function(o) {
+        return typeof o === 'number' && isFinite(o);
+    },
+      
+    /**
+     * Determines whether or not the provided object is of type object
+     * or function
+     * @method isObject
+     * @param {any} o The object being testing
+     * @return Boolean
+     */  
+    isObject: function(o) {
+return (o && (typeof o === 'object' || YAHOO.lang.isFunction(o))) || false;
+    },
+        
+    /**
+     * Determines whether or not the provided object is a string
+     * @method isString
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isString: function(o) {
+        return typeof o === 'string';
+    },
+        
+    /**
+     * Determines whether or not the provided object is undefined
+     * @method isUndefined
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    isUndefined: function(o) {
+        return typeof o === 'undefined';
+    },
+    
+    /**
+     * Determines whether or not the property was added
+     * to the object instance.  Returns false if the property is not present
+     * in the object, or was inherited from the prototype.
+     * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x.
+     * There is a discrepancy between YAHOO.lang.hasOwnProperty and
+     * Object.prototype.hasOwnProperty when the property is a primitive added to
+     * both the instance AND prototype with the same value:
+     * <pre>
+     * var A = function() {};
+     * A.prototype.foo = 'foo';
+     * var a = new A();
+     * a.foo = 'foo';
+     * alert(a.hasOwnProperty('foo')); // true
+     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
+     * </pre>
+     * @method hasOwnProperty
+     * @param {any} o The object being testing
+     * @return Boolean
+     */
+    hasOwnProperty: function(o, prop) {
+        if (Object.prototype.hasOwnProperty) {
+            return o.hasOwnProperty(prop);
+        }
+        
+        return !YAHOO.lang.isUndefined(o[prop]) && 
+                o.constructor.prototype[prop] !== o[prop];
+    },
+ 
+    /**
+     * IE will not enumerate native functions in a derived object even if the
+     * function was overridden.  This is a workaround for specific functions 
+     * we care about on the Object prototype. 
+     * @property _IEEnumFix
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @static
+     * @private
+     */
+    _IEEnumFix: function(r, s) {
+        if (YAHOO.env.ua.ie) {
+            var add=["toString", "valueOf"], i;
+            for (i=0;i<add.length;i=i+1) {
+                var fname=add[i],f=s[fname];
+                if (YAHOO.lang.isFunction(f) && f!=Object.prototype[fname]) {
+                    r[fname]=f;
+                }
+            }
+        }
+    },
+       
+    /**
+     * Utility to set up the prototype, constructor and superclass properties to
+     * support an inheritance strategy that can chain constructors and methods.
+     * Static members will not be inherited.
+     *
+     * @method extend
+     * @static
+     * @param {Function} subc   the object to modify
+     * @param {Function} superc the object to inherit
+     * @param {Object} overrides  additional properties/methods to add to the
+     *                              subclass prototype.  These will override the
+     *                              matching items obtained from the superclass 
+     *                              if present.
+     */
+    extend: function(subc, superc, overrides) {
+        if (!superc||!subc) {
+            throw new Error("YAHOO.lang.extend failed, please check that " +
+                            "all dependencies are included.");
+        }
+        var F = function() {};
+        F.prototype=superc.prototype;
+        subc.prototype=new F();
+        subc.prototype.constructor=subc;
+        subc.superclass=superc.prototype;
+        if (superc.prototype.constructor == Object.prototype.constructor) {
+            superc.prototype.constructor=superc;
+        }
+    
+        if (overrides) {
+            for (var i in overrides) {
+                subc.prototype[i]=overrides[i];
+            }
+
+            YAHOO.lang._IEEnumFix(subc.prototype, overrides);
+        }
+    },
+   
+    /**
+     * Applies all properties in the supplier to the receiver if the
+     * receiver does not have these properties yet.  Optionally, one or 
+     * more methods/properties can be specified (as additional 
+     * parameters).  This option will overwrite the property if receiver 
+     * has it already.  If true is passed as the third parameter, all 
+     * properties will be applied and _will_ overwrite properties in 
+     * the receiver.
+     *
+     * @method augmentObject
+     * @static
+     * @since 2.3.0
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @param {String*|boolean}  arguments zero or more properties methods 
+     *        to augment the receiver with.  If none specified, everything
+     *        in the supplier will be used unless it would
+     *        overwrite an existing property in the receiver. If true
+     *        is specified as the third parameter, all properties will
+     *        be applied and will overwrite an existing property in
+     *        the receiver
+     */
+    augmentObject: function(r, s) {
+        if (!s||!r) {
+            throw new Error("Absorb failed, verify dependencies.");
+        }
+        var a=arguments, i, p, override=a[2];
+        if (override && override!==true) { // only absorb the specified properties
+            for (i=2; i<a.length; i=i+1) {
+                r[a[i]] = s[a[i]];
+            }
+        } else { // take everything, overwriting only if the third parameter is true
+            for (p in s) { 
+                if (override || !r[p]) {
+                    r[p] = s[p];
+                }
+            }
+            
+            YAHOO.lang._IEEnumFix(r, s);
+        }
+    },
+ 
+    /**
+     * Same as YAHOO.lang.augmentObject, except it only applies prototype properties
+     * @see YAHOO.lang.augmentObject
+     * @method augmentProto
+     * @static
+     * @param {Function} r  the object to receive the augmentation
+     * @param {Function} s  the object that supplies the properties to augment
+     * @param {String*|boolean}  arguments zero or more properties methods 
+     *        to augment the receiver with.  If none specified, everything 
+     *        in the supplier will be used unless it would overwrite an existing 
+     *        property in the receiver.  if true is specified as the third 
+     *        parameter, all properties will be applied and will overwrite an 
+     *        existing property in the receiver
+     */
+    augmentProto: function(r, s) {
+        if (!s||!r) {
+            throw new Error("Augment failed, verify dependencies.");
+        }
+        //var a=[].concat(arguments);
+        var a=[r.prototype,s.prototype];
+        for (var i=2;i<arguments.length;i=i+1) {
+            a.push(arguments[i]);
+        }
+        YAHOO.lang.augmentObject.apply(this, a);
+    },
+
+      
+    /**
+     * Returns a simple string representation of the object or array.
+     * Other types of objects will be returned unprocessed.  Arrays
+     * are expected to be indexed.  Use object notation for
+     * associative arrays.
+     * @method dump
+     * @since 2.3.0
+     * @param o {Object} The object to dump
+     * @param d {int} How deep to recurse child objects, default 3
+     * @return {String} the dump result
+     */
+    dump: function(o, d) {
+        var l=YAHOO.lang,i,len,s=[],OBJ="{...}",FUN="f(){...}",
+            COMMA=', ', ARROW=' => ';
+
+        // Cast non-objects to string
+        // Skip dates because the std toString is what we want
+        // Skip HTMLElement-like objects because trying to dump 
+        // an element will cause an unhandled exception in FF 2.x
+        if (!l.isObject(o)) {
+            return o + "";
+        } else if (o instanceof Date || ("nodeType" in o && "tagName" in o)) {
+            return o;
+        } else if  (l.isFunction(o)) {
+            return FUN;
+        }
+
+        // dig into child objects the depth specifed. Default 3
+        d = (l.isNumber(d)) ? d : 3;
+
+        // arrays [1, 2, 3]
+        if (l.isArray(o)) {
+            s.push("[");
+            for (i=0,len=o.length;i<len;i=i+1) {
+                if (l.isObject(o[i])) {
+                    s.push((d > 0) ? l.dump(o[i], d-1) : OBJ);
+                } else {
+                    s.push(o[i]);
+                }
+                s.push(COMMA);
+            }
+            if (s.length > 1) {
+                s.pop();
+            }
+            s.push("]");
+        // objects {k1 => v1, k2 => v2}
+        } else {
+            s.push("{");
+            for (i in o) {
+                if (l.hasOwnProperty(o, i)) {
+                    s.push(i + ARROW);
+                    if (l.isObject(o[i])) {
+                        s.push((d > 0) ? l.dump(o[i], d-1) : OBJ);
+                    } else {
+                        s.push(o[i]);
+                    }
+                    s.push(COMMA);
+                }
+            }
+            if (s.length > 1) {
+                s.pop();
+            }
+            s.push("}");
+        }
+
+        return s.join("");
+    },
+
+    /**
+     * Does variable substitution on a string. It scans through the string 
+     * looking for expressions enclosed in { } braces. If an expression 
+     * is found, it is used a key on the object.  If there is a space in
+     * the key, the first word is used for the key and the rest is provided
+     * to an optional function to be used to programatically determine the
+     * value (the extra information might be used for this decision). If 
+     * the value for the key in the object, or what is returned from the
+     * function has a string value, number value, or object value, it is 
+     * substituted for the bracket expression and it repeats.  If this
+     * value is an object, it uses the Object's toString() if this has
+     * been overridden, otherwise it does a shallow dump of the key/value
+     * pairs.
+     * @method substitute
+     * @since 2.3.0
+     * @param s {String} The string that will be modified.
+     * @param o {Object} An object containing the replacement values
+     * @param f {Function} An optional function that can be used to
+     *                     process each match.  It receives the key,
+     *                     value, and any extra metadata included with
+     *                     the key inside of the braces.
+     * @return {String} the substituted string
+     */
+    substitute: function (s, o, f) {
+        var i, j, k, key, v, meta, l=YAHOO.lang, saved=[], token, 
+            DUMP='dump', SPACE=' ', LBRACE='{', RBRACE='}';
+
+
+        for (;;) {
+            i = s.lastIndexOf(LBRACE);
+            if (i < 0) {
+                break;
+            }
+            j = s.indexOf(RBRACE, i);
+            if (i + 1 >= j) {
+                break;
+            }
+
+            //Extract key and meta info 
+            token = s.substring(i + 1, j);
+            key = token;
+            meta = null;
+            k = key.indexOf(SPACE);
+            if (k > -1) {
+                meta = key.substring(k + 1);
+                key = key.substring(0, k);
+            }
+
+            // lookup the value
+            v = o[key];
+
+            // if a substitution function was provided, execute it
+            if (f) {
+                v = f(key, v, meta);
+            }
+
+            if (l.isObject(v)) {
+                if (l.isArray(v)) {
+                    v = l.dump(v, parseInt(meta, 10));
+                } else {
+                    meta = meta || "";
+
+                    // look for the keyword 'dump', if found force obj dump
+                    var dump = meta.indexOf(DUMP);
+                    if (dump > -1) {
+                        meta = meta.substring(4);
+                    }
+
+                    // use the toString if it is not the Object toString 
+                    // and the 'dump' meta info was not found
+                    if (v.toString===Object.prototype.toString||dump>-1) {
+                        v = l.dump(v, parseInt(meta, 10));
+                    } else {
+                        v = v.toString();
+                    }
+                }
+            } else if (!l.isString(v) && !l.isNumber(v)) {
+                // This {block} has no replace string. Save it for later.
+                v = "~-" + saved.length + "-~";
+                saved[saved.length] = token;
+
+                // break;
+            }
+
+            s = s.substring(0, i) + v + s.substring(j + 1);
+
+
+        }
+
+        // restore saved {block}s
+        for (i=saved.length-1; i>=0; i=i-1) {
+            s = s.replace(new RegExp("~-" + i + "-~"), "{"  + saved[i] + "}", "g");
+        }
+
+        return s;
+    },
+
+
+    /**
+     * Returns a string without any leading or trailing whitespace.  If 
+     * the input is not a string, the input will be returned untouched.
+     * @method trim
+     * @since 2.3.0
+     * @param s {string} the string to trim
+     * @return {string} the trimmed string
+     */
+    trim: function(s){
+        try {
+            return s.replace(/^\s+|\s+$/g, "");
+        } catch(e) {
+            return s;
+        }
+    },
+
+    /**
+     * Returns a new object containing all of the properties of
+     * all the supplied objects.  The properties from later objects
+     * will overwrite those in earlier objects.
+     * @method merge
+     * @since 2.3.0
+     * @param arguments {Object*} the objects to merge
+     * @return the new merged object
+     */
+    merge: function() {
+        var o={}, a=arguments;
+        for (var i=0, l=a.length; i<l; i=i+1) {
+            YAHOO.lang.augmentObject(o, a[i], true);
+        }
+        return o;
+    },
+
+    /**
+     * Executes the supplied function in the scope of the supplied 
+     * object 'when' milliseconds later.  Executes the function a 
+     * single time unless periodic is set to true.
+     * @method later
+     * @since 2.4.0
+     * @param when {int} the number of milliseconds to wait until the fn 
+     * is executed
+     * @param o the scope object
+     * @param fn {Function|String} the function to execute or the name of 
+     * the method in the 'o' object to execute
+     * @param data [Array] data that is provided to the function.  This accepts
+     * either a single item or an array.  If an array is provided, the
+     * function is executed with one parameter for each array item.  If
+     * you need to pass a single array parameter, it needs to be wrapped in
+     * an array [myarray]
+     * @param periodic {boolean} if true, executes continuously at supplied 
+     * interval until canceled
+     * @return a timer object. Call the cancel() method on this object to 
+     * stop the timer.
+     */
+    later: function(when, o, fn, data, periodic) {
+        when = when || 0; 
+        o = o || {};
+        var m=fn, d=data, f, r;
+
+        if (YAHOO.lang.isString(fn)) {
+            m = o[fn];
+        }
+
+        if (!m) {
+            throw new TypeError("method undefined");
+        }
+
+        if (!YAHOO.lang.isArray(d)) {
+            d = [data];
+        }
+
+        f = function() {
+            m.apply(o, d);
+        };
+
+        r = (periodic) ? setInterval(f, when) : setTimeout(f, when);
+
+        return {
+            interval: periodic,
+            cancel: function() {
+                if (this.interval) {
+                    clearInterval(r);
+                } else {
+                    clearTimeout(r);
+                }
+            }
+        };
+    },
+
+    /**
+     * A convenience method for detecting a legitimate non-null value.
+     * Returns false for null/undefined/NaN, true for other values, 
+     * including 0/false/''
+     * @method isValue
+     * @since 2.3.0
+     * @param o {any} the item to test
+     * @return {boolean} true if it is not null/undefined/NaN || false
+     */
+    isValue: function(o) {
+        // return (o || o === false || o === 0 || o === ''); // Infinity fails
+        var l = YAHOO.lang;
+return (l.isObject(o) || l.isString(o) || l.isNumber(o) || l.isBoolean(o));
+    }
+
+};
+
+/*
+ * An alias for <a href="YAHOO.lang.html">YAHOO.lang</a>
+ * @class YAHOO.util.Lang
+ */
+YAHOO.util.Lang = YAHOO.lang;
+ 
+/**
+ * Same as YAHOO.lang.augmentObject, except it only applies prototype 
+ * properties.  This is an alias for augmentProto.
+ * @see YAHOO.lang.augmentObject
+ * @method augment
+ * @static
+ * @param {Function} r  the object to receive the augmentation
+ * @param {Function} s  the object that supplies the properties to augment
+ * @param {String*|boolean}  arguments zero or more properties methods to 
+ *        augment the receiver with.  If none specified, everything
+ *        in the supplier will be used unless it would
+ *        overwrite an existing property in the receiver.  if true
+ *        is specified as the third parameter, all properties will
+ *        be applied and will overwrite an existing property in
+ *        the receiver
+ */
+YAHOO.lang.augment = YAHOO.lang.augmentProto;
+
+/**
+ * An alias for <a href="YAHOO.lang.html#augment">YAHOO.lang.augment</a>
+ * @for YAHOO
+ * @method augment
+ * @static
+ * @param {Function} r  the object to receive the augmentation
+ * @param {Function} s  the object that supplies the properties to augment
+ * @param {String*}  arguments zero or more properties methods to 
+ *        augment the receiver with.  If none specified, everything
+ *        in the supplier will be used unless it would
+ *        overwrite an existing property in the receiver
+ */
+YAHOO.augment = YAHOO.lang.augmentProto;
+       
+/**
+ * An alias for <a href="YAHOO.lang.html#extend">YAHOO.lang.extend</a>
+ * @method extend
+ * @static
+ * @param {Function} subc   the object to modify
+ * @param {Function} superc the object to inherit
+ * @param {Object} overrides  additional properties/methods to add to the
+ *        subclass prototype.  These will override the
+ *        matching items obtained from the superclass if present.
+ */
+YAHOO.extend = YAHOO.lang.extend;
+
+YAHOO.register("yahoo", YAHOO, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/yahoo/yahoo-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/event/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/event/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/event/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/event/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/event/event-debug.js
===================================================================
--- tags/2.7.0/wb/include/yui/event/event-debug.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/event/event-debug.js	(revision 838)
@@ -0,0 +1,2525 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+
+/**
+ * The CustomEvent class lets you define events for your application
+ * that can be subscribed to by one or more independent component.
+ *
+ * @param {String}  type The type of event, which is passed to the callback
+ *                  when the event fires
+ * @param {Object}  oScope The context the event will fire from.  "this" will
+ *                  refer to this object in the callback.  Default value: 
+ *                  the window object.  The listener can override this.
+ * @param {boolean} silent pass true to prevent the event from writing to
+ *                  the debugsystem
+ * @param {int}     signature the signature that the custom event subscriber
+ *                  will receive. YAHOO.util.CustomEvent.LIST or 
+ *                  YAHOO.util.CustomEvent.FLAT.  The default is
+ *                  YAHOO.util.CustomEvent.LIST.
+ * @namespace YAHOO.util
+ * @class CustomEvent
+ * @constructor
+ */
+YAHOO.util.CustomEvent = function(type, oScope, silent, signature) {
+
+    /**
+     * The type of event, returned to subscribers when the event fires
+     * @property type
+     * @type string
+     */
+    this.type = type;
+
+    /**
+     * The scope the the event will fire from by default.  Defaults to the window 
+     * obj
+     * @property scope
+     * @type object
+     */
+    this.scope = oScope || window;
+
+    /**
+     * By default all custom events are logged in the debug build, set silent
+     * to true to disable debug outpu for this event.
+     * @property silent
+     * @type boolean
+     */
+    this.silent = silent;
+
+    /**
+     * Custom events support two styles of arguments provided to the event
+     * subscribers.  
+     * <ul>
+     * <li>YAHOO.util.CustomEvent.LIST: 
+     *   <ul>
+     *   <li>param1: event name</li>
+     *   <li>param2: array of arguments sent to fire</li>
+     *   <li>param3: <optional> a custom object supplied by the subscriber</li>
+     *   </ul>
+     * </li>
+     * <li>YAHOO.util.CustomEvent.FLAT
+     *   <ul>
+     *   <li>param1: the first argument passed to fire.  If you need to
+     *           pass multiple parameters, use and array or object literal</li>
+     *   <li>param2: <optional> a custom object supplied by the subscriber</li>
+     *   </ul>
+     * </li>
+     * </ul>
+     *   @property signature
+     *   @type int
+     */
+    this.signature = signature || YAHOO.util.CustomEvent.LIST;
+
+    /**
+     * The subscribers to this event
+     * @property subscribers
+     * @type Subscriber[]
+     */
+    this.subscribers = [];
+
+    if (!this.silent) {
+        YAHOO.log( "Creating " + this, "info", "Event" );
+    }
+
+    var onsubscribeType = "_YUICEOnSubscribe";
+
+    // Only add subscribe events for events that are not generated by 
+    // CustomEvent
+    if (type !== onsubscribeType) {
+
+        /**
+         * Custom events provide a custom event that fires whenever there is
+         * a new subscriber to the event.  This provides an opportunity to
+         * handle the case where there is a non-repeating event that has
+         * already fired has a new subscriber.  
+         *
+         * @event subscribeEvent
+         * @type YAHOO.util.CustomEvent
+         * @param {Function} fn The function to execute
+         * @param {Object}   obj An object to be passed along when the event 
+         *                       fires
+         * @param {boolean|Object}  override If true, the obj passed in becomes 
+         *                                   the execution scope of the listener.
+         *                                   if an object, that object becomes the
+         *                                   the execution scope.
+         */
+        this.subscribeEvent = 
+                new YAHOO.util.CustomEvent(onsubscribeType, this, true);
+
+    } 
+
+
+    /**
+     * In order to make it possible to execute the rest of the subscriber
+     * stack when one thows an exception, the subscribers exceptions are
+     * caught.  The most recent exception is stored in this property
+     * @property lastError
+     * @type Error
+     */
+    this.lastError = null;
+};
+
+/**
+ * Subscriber listener sigature constant.  The LIST type returns three
+ * parameters: the event type, the array of args passed to fire, and
+ * the optional custom object
+ * @property YAHOO.util.CustomEvent.LIST
+ * @static
+ * @type int
+ */
+YAHOO.util.CustomEvent.LIST = 0;
+
+/**
+ * Subscriber listener sigature constant.  The FLAT type returns two
+ * parameters: the first argument passed to fire and the optional 
+ * custom object
+ * @property YAHOO.util.CustomEvent.FLAT
+ * @static
+ * @type int
+ */
+YAHOO.util.CustomEvent.FLAT = 1;
+
+YAHOO.util.CustomEvent.prototype = {
+
+    /**
+     * Subscribes the caller to this event
+     * @method subscribe
+     * @param {Function} fn        The function to execute
+     * @param {Object}   obj       An object to be passed along when the event 
+     *                             fires
+     * @param {boolean|Object}  override If true, the obj passed in becomes 
+     *                                   the execution scope of the listener.
+     *                                   if an object, that object becomes the
+     *                                   the execution scope.
+     */
+    subscribe: function(fn, obj, override) {
+
+        if (!fn) {
+throw new Error("Invalid callback for subscriber to '" + this.type + "'");
+        }
+
+        if (this.subscribeEvent) {
+            this.subscribeEvent.fire(fn, obj, override);
+        }
+
+        this.subscribers.push( new YAHOO.util.Subscriber(fn, obj, override) );
+    },
+
+    /**
+     * Unsubscribes subscribers.
+     * @method unsubscribe
+     * @param {Function} fn  The subscribed function to remove, if not supplied
+     *                       all will be removed
+     * @param {Object}   obj  The custom object passed to subscribe.  This is
+     *                        optional, but if supplied will be used to
+     *                        disambiguate multiple listeners that are the same
+     *                        (e.g., you subscribe many object using a function
+     *                        that lives on the prototype)
+     * @return {boolean} True if the subscriber was found and detached.
+     */
+    unsubscribe: function(fn, obj) {
+
+        if (!fn) {
+            return this.unsubscribeAll();
+        }
+
+        var found = false;
+        for (var i=0, len=this.subscribers.length; i<len; ++i) {
+            var s = this.subscribers[i];
+            if (s && s.contains(fn, obj)) {
+                this._delete(i);
+                found = true;
+            }
+        }
+
+        return found;
+    },
+
+    /**
+     * Notifies the subscribers.  The callback functions will be executed
+     * from the scope specified when the event was created, and with the 
+     * following parameters:
+     *   <ul>
+     *   <li>The type of event</li>
+     *   <li>All of the arguments fire() was executed with as an array</li>
+     *   <li>The custom object (if any) that was passed into the subscribe() 
+     *       method</li>
+     *   </ul>
+     * @method fire 
+     * @param {Object*} arguments an arbitrary set of parameters to pass to 
+     *                            the handler.
+     * @return {boolean} false if one of the subscribers returned false, 
+     *                   true otherwise
+     */
+    fire: function() {
+        var len=this.subscribers.length;
+        if (!len && this.silent) {
+            return true;
+        }
+
+        var args=[], ret=true, i, rebuild=false;
+
+        for (i=0; i<arguments.length; ++i) {
+            args.push(arguments[i]);
+        }
+
+        if (!this.silent) {
+            YAHOO.log( "Firing "       + this  + ", " + 
+                       "args: "        + args  + ", " +
+                       "subscribers: " + len,                 
+                       "info", "Event"                  );
+        }
+
+        for (i=0; i<len; ++i) {
+            var s = this.subscribers[i];
+            if (!s) {
+                rebuild=true;
+            } else {
+                if (!this.silent) {
+                    YAHOO.log( this.type + "->" + (i+1) + ": " +  s, 
+                                "info", "Event" );
+                }
+
+                var scope = s.getScope(this.scope);
+
+                if (this.signature == YAHOO.util.CustomEvent.FLAT) {
+                    var param = null;
+                    if (args.length > 0) {
+                        param = args[0];
+                    }
+
+                    try {
+                        ret = s.fn.call(scope, param, s.obj);
+                    } catch(e) {
+                        this.lastError = e;
+                        YAHOO.log(this + " subscriber exception: " + e,
+                                  "error", "Event");
+                    }
+                } else {
+                    try {
+                        ret = s.fn.call(scope, this.type, args, s.obj);
+                    } catch(ex) {
+                        this.lastError = ex;
+                        YAHOO.log(this + " subscriber exception: " + ex,
+                                  "error", "Event");
+                    }
+                }
+                if (false === ret) {
+                    if (!this.silent) {
+                        YAHOO.log("Event cancelled, subscriber " + i + 
+                                  " of " + len, "info", "Event");
+                    }
+
+                    //break;
+                    return false;
+                }
+            }
+        }
+
+        if (rebuild) {
+            var newlist=[],subs=this.subscribers;
+            for (i=0,len=subs.length; i<len; i=i+1) {
+                newlist.push(subs[i]);
+            }
+
+            this.subscribers=newlist;
+        }
+
+        return true;
+    },
+
+    /**
+     * Removes all listeners
+     * @method unsubscribeAll
+     * @return {int} The number of listeners unsubscribed
+     */
+    unsubscribeAll: function() {
+        for (var i=0, len=this.subscribers.length; i<len; ++i) {
+            this._delete(len - 1 - i);
+        }
+
+        this.subscribers=[];
+
+        return i;
+    },
+
+    /**
+     * @method _delete
+     * @private
+     */
+    _delete: function(index) {
+        var s = this.subscribers[index];
+        if (s) {
+            delete s.fn;
+            delete s.obj;
+        }
+
+        this.subscribers[index]=null;
+    },
+
+    /**
+     * @method toString
+     */
+    toString: function() {
+         return "CustomEvent: " + "'" + this.type  + "', " + 
+             "scope: " + this.scope;
+
+    }
+};
+
+/////////////////////////////////////////////////////////////////////
+
+/**
+ * Stores the subscriber information to be used when the event fires.
+ * @param {Function} fn       The function to execute
+ * @param {Object}   obj      An object to be passed along when the event fires
+ * @param {boolean}  override If true, the obj passed in becomes the execution
+ *                            scope of the listener
+ * @class Subscriber
+ * @constructor
+ */
+YAHOO.util.Subscriber = function(fn, obj, override) {
+
+    /**
+     * The callback that will be execute when the event fires
+     * @property fn
+     * @type function
+     */
+    this.fn = fn;
+
+    /**
+     * An optional custom object that will passed to the callback when
+     * the event fires
+     * @property obj
+     * @type object
+     */
+    this.obj = YAHOO.lang.isUndefined(obj) ? null : obj;
+
+    /**
+     * The default execution scope for the event listener is defined when the
+     * event is created (usually the object which contains the event).
+     * By setting override to true, the execution scope becomes the custom
+     * object passed in by the subscriber.  If override is an object, that 
+     * object becomes the scope.
+     * @property override
+     * @type boolean|object
+     */
+    this.override = override;
+
+};
+
+/**
+ * Returns the execution scope for this listener.  If override was set to true
+ * the custom obj will be the scope.  If override is an object, that is the
+ * scope, otherwise the default scope will be used.
+ * @method getScope
+ * @param {Object} defaultScope the scope to use if this listener does not
+ *                              override it.
+ */
+YAHOO.util.Subscriber.prototype.getScope = function(defaultScope) {
+    if (this.override) {
+        if (this.override === true) {
+            return this.obj;
+        } else {
+            return this.override;
+        }
+    }
+    return defaultScope;
+};
+
+/**
+ * Returns true if the fn and obj match this objects properties.
+ * Used by the unsubscribe method to match the right subscriber.
+ *
+ * @method contains
+ * @param {Function} fn the function to execute
+ * @param {Object} obj an object to be passed along when the event fires
+ * @return {boolean} true if the supplied arguments match this 
+ *                   subscriber's signature.
+ */
+YAHOO.util.Subscriber.prototype.contains = function(fn, obj) {
+    if (obj) {
+        return (this.fn == fn && this.obj == obj);
+    } else {
+        return (this.fn == fn);
+    }
+};
+
+/**
+ * @method toString
+ */
+YAHOO.util.Subscriber.prototype.toString = function() {
+    return "Subscriber { obj: " + this.obj  + 
+           ", override: " +  (this.override || "no") + " }";
+};
+
+/**
+ * The Event Utility provides utilities for managing DOM Events and tools
+ * for building event systems
+ *
+ * @module event
+ * @title Event Utility
+ * @namespace YAHOO.util
+ * @requires yahoo
+ */
+
+// The first instance of Event will win if it is loaded more than once.
+// @TODO this needs to be changed so that only the state data that needs to
+// be preserved is kept, while methods are overwritten/added as needed.
+// This means that the module pattern can't be used.
+if (!YAHOO.util.Event) {
+
+/**
+ * The event utility provides functions to add and remove event listeners,
+ * event cleansing.  It also tries to automatically remove listeners it
+ * registers during the unload event.
+ *
+ * @class Event
+ * @static
+ */
+    YAHOO.util.Event = function() {
+
+        /**
+         * True after the onload event has fired
+         * @property loadComplete
+         * @type boolean
+         * @static
+         * @private
+         */
+        var loadComplete =  false;
+
+        /**
+         * Cache of wrapped listeners
+         * @property listeners
+         * @type array
+         * @static
+         * @private
+         */
+        var listeners = [];
+
+        /**
+         * User-defined unload function that will be fired before all events
+         * are detached
+         * @property unloadListeners
+         * @type array
+         * @static
+         * @private
+         */
+        var unloadListeners = [];
+
+        /**
+         * Cache of DOM0 event handlers to work around issues with DOM2 events
+         * in Safari
+         * @property legacyEvents
+         * @static
+         * @private
+         */
+        var legacyEvents = [];
+
+        /**
+         * Listener stack for DOM0 events
+         * @property legacyHandlers
+         * @static
+         * @private
+         */
+        var legacyHandlers = [];
+
+        /**
+         * The number of times to poll after window.onload.  This number is
+         * increased if additional late-bound handlers are requested after
+         * the page load.
+         * @property retryCount
+         * @static
+         * @private
+         */
+        var retryCount = 0;
+
+        /**
+         * onAvailable listeners
+         * @property onAvailStack
+         * @static
+         * @private
+         */
+        var onAvailStack = [];
+
+        /**
+         * Lookup table for legacy events
+         * @property legacyMap
+         * @static
+         * @private
+         */
+        var legacyMap = [];
+
+        /**
+         * Counter for auto id generation
+         * @property counter
+         * @static
+         * @private
+         */
+        var counter = 0;
+        
+        /**
+         * Normalized keycodes for webkit/safari
+         * @property webkitKeymap
+         * @type {int: int}
+         * @private
+         * @static
+         * @final
+         */
+        var webkitKeymap = {
+            63232: 38, // up
+            63233: 40, // down
+            63234: 37, // left
+            63235: 39, // right
+            63276: 33, // page up
+            63277: 34, // page down
+            25: 9      // SHIFT-TAB (Safari provides a different key code in
+                       // this case, even though the shiftKey modifier is set)
+        };
+
+        return {
+
+            /**
+             * The number of times we should look for elements that are not
+             * in the DOM at the time the event is requested after the document
+             * has been loaded.  The default is 4000@amp;10 ms, so it will poll
+             * for 40 seconds or until all outstanding handlers are bound
+             * (whichever comes first).
+             * @property POLL_RETRYS
+             * @type int
+             * @static
+             * @final
+             */
+            POLL_RETRYS: 4000,
+
+            /**
+             * The poll interval in milliseconds
+             * @property POLL_INTERVAL
+             * @type int
+             * @static
+             * @final
+             */
+            POLL_INTERVAL: 10,
+
+            /**
+             * Element to bind, int constant
+             * @property EL
+             * @type int
+             * @static
+             * @final
+             */
+            EL: 0,
+
+            /**
+             * Type of event, int constant
+             * @property TYPE
+             * @type int
+             * @static
+             * @final
+             */
+            TYPE: 1,
+
+            /**
+             * Function to execute, int constant
+             * @property FN
+             * @type int
+             * @static
+             * @final
+             */
+            FN: 2,
+
+            /**
+             * Function wrapped for scope correction and cleanup, int constant
+             * @property WFN
+             * @type int
+             * @static
+             * @final
+             */
+            WFN: 3,
+
+            /**
+             * Object passed in by the user that will be returned as a 
+             * parameter to the callback, int constant.  Specific to
+             * unload listeners
+             * @property OBJ
+             * @type int
+             * @static
+             * @final
+             */
+            UNLOAD_OBJ: 3,
+
+            /**
+             * Adjusted scope, either the element we are registering the event
+             * on or the custom object passed in by the listener, int constant
+             * @property ADJ_SCOPE
+             * @type int
+             * @static
+             * @final
+             */
+            ADJ_SCOPE: 4,
+
+            /**
+             * The original obj passed into addListener
+             * @property OBJ
+             * @type int
+             * @static
+             * @final
+             */
+            OBJ: 5,
+
+            /**
+             * The original scope parameter passed into addListener
+             * @property OVERRIDE
+             * @type int
+             * @static
+             * @final
+             */
+            OVERRIDE: 6,
+
+            /**
+             * addListener/removeListener can throw errors in unexpected scenarios.
+             * These errors are suppressed, the method returns false, and this property
+             * is set
+             * @property lastError
+             * @static
+             * @type Error
+             */
+            lastError: null,
+
+            /**
+             * Safari detection
+             * @property isSafari
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.webkit
+             */
+            isSafari: YAHOO.env.ua.webkit,
+            
+            /**
+             * webkit version
+             * @property webkit
+             * @type string
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.webkit
+             */
+            webkit: YAHOO.env.ua.webkit,
+            
+            /**
+             * IE detection 
+             * @property isIE
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.ie
+             */
+            isIE: YAHOO.env.ua.ie,
+
+            /**
+             * poll handle
+             * @property _interval
+             * @static
+             * @private
+             */
+            _interval: null,
+
+            /**
+             * document readystate poll handle
+             * @property _dri
+             * @static
+             * @private
+             */
+             _dri: null,
+
+            /**
+             * True when the document is initially usable
+             * @property DOMReady
+             * @type boolean
+             * @static
+             */
+            DOMReady: false,
+
+            /**
+             * @method startInterval
+             * @static
+             * @private
+             */
+            startInterval: function() {
+                if (!this._interval) {
+                    var self = this;
+                    var callback = function() { self._tryPreloadAttach(); };
+                    this._interval = setInterval(callback, this.POLL_INTERVAL);
+                }
+            },
+
+            /**
+             * Executes the supplied callback when the item with the supplied
+             * id is found.  This is meant to be used to execute behavior as
+             * soon as possible as the page loads.  If you use this after the
+             * initial page load it will poll for a fixed time for the element.
+             * The number of times it will poll and the frequency are
+             * configurable.  By default it will poll for 10 seconds.
+             *
+             * <p>The callback is executed with a single parameter:
+             * the custom object parameter, if provided.</p>
+             *
+             * @method onAvailable
+             *
+             * @param {string||string[]}   p_id the id of the element, or an array
+             * of ids to look for.
+             * @param {function} p_fn what to execute when the element is found.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_override If set to true, p_fn will execute
+             *                   in the scope of p_obj, if set to an object it
+             *                   will execute in the scope of that object
+             * @param checkContent {boolean} check child node readiness (onContentReady)
+             * @static
+             */
+            onAvailable: function(p_id, p_fn, p_obj, p_override, checkContent) {
+
+                var a = (YAHOO.lang.isString(p_id)) ? [p_id] : p_id;
+
+                for (var i=0; i<a.length; i=i+1) {
+                    onAvailStack.push({id:         a[i], 
+                                       fn:         p_fn, 
+                                       obj:        p_obj, 
+                                       override:   p_override, 
+                                       checkReady: checkContent });
+                }
+                retryCount = this.POLL_RETRYS;
+                this.startInterval();
+            },
+
+            /**
+             * Works the same way as onAvailable, but additionally checks the
+             * state of sibling elements to determine if the content of the
+             * available element is safe to modify.
+             *
+             * <p>The callback is executed with a single parameter:
+             * the custom object parameter, if provided.</p>
+             *
+             * @method onContentReady
+             *
+             * @param {string}   p_id the id of the element to look for.
+             * @param {function} p_fn what to execute when the element is ready.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_override If set to true, p_fn will execute
+             *                   in the scope of p_obj.  If an object, p_fn will
+             *                   exectute in the scope of that object
+             *
+             * @static
+             */
+            onContentReady: function(p_id, p_fn, p_obj, p_override) {
+                this.onAvailable(p_id, p_fn, p_obj, p_override, true);
+            },
+
+            /**
+             * Executes the supplied callback when the DOM is first usable.  This
+             * will execute immediately if called after the DOMReady event has
+             * fired.   @todo the DOMContentReady event does not fire when the
+             * script is dynamically injected into the page.  This means the
+             * DOMReady custom event will never fire in FireFox or Opera when the
+             * library is injected.  It _will_ fire in Safari, and the IE 
+             * implementation would allow for us to fire it if the defered script
+             * is not available.  We want this to behave the same in all browsers.
+             * Is there a way to identify when the script has been injected 
+             * instead of included inline?  Is there a way to know whether the 
+             * window onload event has fired without having had a listener attached 
+             * to it when it did so?
+             *
+             * <p>The callback is a CustomEvent, so the signature is:</p>
+             * <p>type &lt;string&gt;, args &lt;array&gt;, customobject &lt;object&gt;</p>
+             * <p>For DOMReady events, there are no fire argments, so the
+             * signature is:</p>
+             * <p>"DOMReady", [], obj</p>
+             *
+             *
+             * @method onDOMReady
+             *
+             * @param {function} p_fn what to execute when the element is found.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_scope If set to true, p_fn will execute
+             *                   in the scope of p_obj, if set to an object it
+             *                   will execute in the scope of that object
+             *
+             * @static
+             */
+            onDOMReady: function(p_fn, p_obj, p_override) {
+                if (this.DOMReady) {
+                    setTimeout(function() {
+                        var s = window;
+                        if (p_override) {
+                            if (p_override === true) {
+                                s = p_obj;
+                            } else {
+                                s = p_override;
+                            }
+                        }
+                        p_fn.call(s, "DOMReady", [], p_obj);
+                    }, 0);
+                } else {
+                    this.DOMReadyEvent.subscribe(p_fn, p_obj, p_override);
+                }
+            },
+
+            /**
+             * Appends an event handler
+             *
+             * @method addListener
+             *
+             * @param {String|HTMLElement|Array|NodeList} el An id, an element 
+             *  reference, or a collection of ids and/or elements to assign the 
+             *  listener to.
+             * @param {String}   sType     The type of event to append
+             * @param {Function} fn        The method the event invokes
+             * @param {Object}   obj    An arbitrary object that will be 
+             *                             passed as a parameter to the handler
+             * @param {Boolean|object}  override  If true, the obj passed in becomes
+             *                             the execution scope of the listener. If an
+             *                             object, this object becomes the execution
+             *                             scope.
+             * @return {Boolean} True if the action was successful or defered,
+             *                        false if one or more of the elements 
+             *                        could not have the listener attached,
+             *                        or if the operation throws an exception.
+             * @static
+             */
+            addListener: function(el, sType, fn, obj, override) {
+
+                if (!fn || !fn.call) {
+// throw new TypeError(sType + " addListener call failed, callback undefined");
+YAHOO.log(sType + " addListener call failed, invalid callback", "error", "Event");
+                    return false;
+                }
+
+                // The el argument can be an array of elements or element ids.
+                if ( this._isValidCollection(el)) {
+                    var ok = true;
+                    for (var i=0,len=el.length; i<len; ++i) {
+                        ok = this.on(el[i], 
+                                       sType, 
+                                       fn, 
+                                       obj, 
+                                       override) && ok;
+                    }
+                    return ok;
+
+                } else if (YAHOO.lang.isString(el)) {
+                    var oEl = this.getEl(el);
+                    // If the el argument is a string, we assume it is 
+                    // actually the id of the element.  If the page is loaded
+                    // we convert el to the actual element, otherwise we 
+                    // defer attaching the event until onload event fires
+
+                    // check to see if we need to delay hooking up the event 
+                    // until after the page loads.
+                    if (oEl) {
+                        el = oEl;
+                    } else {
+                        // defer adding the event until the element is available
+                        this.onAvailable(el, function() {
+                           YAHOO.util.Event.on(el, sType, fn, obj, override);
+                        });
+
+                        return true;
+                    }
+                }
+
+                // Element should be an html element or an array if we get 
+                // here.
+                if (!el) {
+                    // this.logger.debug("unable to attach event " + sType);
+                    return false;
+                }
+
+                // we need to make sure we fire registered unload events 
+                // prior to automatically unhooking them.  So we hang on to 
+                // these instead of attaching them to the window and fire the
+                // handles explicitly during our one unload event.
+                if ("unload" == sType && obj !== this) {
+                    unloadListeners[unloadListeners.length] =
+                            [el, sType, fn, obj, override];
+                    return true;
+                }
+
+                // this.logger.debug("Adding handler: " + el + ", " + sType);
+
+                // if the user chooses to override the scope, we use the custom
+                // object passed in, otherwise the executing scope will be the
+                // HTML element that the event is registered on
+                var scope = el;
+                if (override) {
+                    if (override === true) {
+                        scope = obj;
+                    } else {
+                        scope = override;
+                    }
+                }
+
+                // wrap the function so we can return the obj object when
+                // the event fires;
+                var wrappedFn = function(e) {
+                        return fn.call(scope, YAHOO.util.Event.getEvent(e, el), 
+                                obj);
+                    };
+
+                var li = [el, sType, fn, wrappedFn, scope, obj, override];
+                var index = listeners.length;
+                // cache the listener so we can try to automatically unload
+                listeners[index] = li;
+
+                if (this.useLegacyEvent(el, sType)) {
+                    var legacyIndex = this.getLegacyIndex(el, sType);
+
+                    // Add a new dom0 wrapper if one is not detected for this
+                    // element
+                    if ( legacyIndex == -1 || 
+                                el != legacyEvents[legacyIndex][0] ) {
+
+                        legacyIndex = legacyEvents.length;
+                        legacyMap[el.id + sType] = legacyIndex;
+
+                        // cache the signature for the DOM0 event, and 
+                        // include the existing handler for the event, if any
+                        legacyEvents[legacyIndex] = 
+                            [el, sType, el["on" + sType]];
+                        legacyHandlers[legacyIndex] = [];
+
+                        el["on" + sType] = 
+                            function(e) {
+                                YAHOO.util.Event.fireLegacyEvent(
+                                    YAHOO.util.Event.getEvent(e), legacyIndex);
+                            };
+                    }
+
+                    // add a reference to the wrapped listener to our custom
+                    // stack of events
+                    //legacyHandlers[legacyIndex].push(index);
+                    legacyHandlers[legacyIndex].push(li);
+
+                } else {
+                    try {
+                        this._simpleAdd(el, sType, wrappedFn, false);
+                    } catch(ex) {
+                        // handle an error trying to attach an event.  If it fails
+                        // we need to clean up the cache
+                        this.lastError = ex;
+                        this.removeListener(el, sType, fn);
+                        return false;
+                    }
+                }
+
+                return true;
+                
+            },
+
+            /**
+             * When using legacy events, the handler is routed to this object
+             * so we can fire our custom listener stack.
+             * @method fireLegacyEvent
+             * @static
+             * @private
+             */
+            fireLegacyEvent: function(e, legacyIndex) {
+                // this.logger.debug("fireLegacyEvent " + legacyIndex);
+                var ok=true,le,lh,li,scope,ret;
+                
+                lh = legacyHandlers[legacyIndex];
+                for (var i=0,len=lh.length; i<len; ++i) {
+                    li = lh[i];
+                    if ( li && li[this.WFN] ) {
+                        scope = li[this.ADJ_SCOPE];
+                        ret = li[this.WFN].call(scope, e);
+                        ok = (ok && ret);
+                    }
+                }
+
+                // Fire the original handler if we replaced one.  We fire this
+                // after the other events to keep stopPropagation/preventDefault
+                // that happened in the DOM0 handler from touching our DOM2
+                // substitute
+                le = legacyEvents[legacyIndex];
+                if (le && le[2]) {
+                    le[2](e);
+                }
+                
+                return ok;
+            },
+
+            /**
+             * Returns the legacy event index that matches the supplied 
+             * signature
+             * @method getLegacyIndex
+             * @static
+             * @private
+             */
+            getLegacyIndex: function(el, sType) {
+                var key = this.generateId(el) + sType;
+                if (typeof legacyMap[key] == "undefined") { 
+                    return -1;
+                } else {
+                    return legacyMap[key];
+                }
+            },
+
+            /**
+             * Logic that determines when we should automatically use legacy
+             * events instead of DOM2 events.  Currently this is limited to old
+             * Safari browsers with a broken preventDefault
+             * @method useLegacyEvent
+             * @static
+             * @private
+             */
+            useLegacyEvent: function(el, sType) {
+                if (this.webkit && ("click"==sType || "dblclick"==sType)) {
+                    var v = parseInt(this.webkit, 10);
+                    if (!isNaN(v) && v<418) {
+                        return true;
+                    }
+                }
+                return false;
+            },
+                    
+            /**
+             * Removes an event listener
+             *
+             * @method removeListener
+             *
+             * @param {String|HTMLElement|Array|NodeList} el An id, an element 
+             *  reference, or a collection of ids and/or elements to remove
+             *  the listener from.
+             * @param {String} sType the type of event to remove.
+             * @param {Function} fn the method the event invokes.  If fn is
+             *  undefined, then all event handlers for the type of event are 
+             *  removed.
+             * @return {boolean} true if the unbind was successful, false 
+             *  otherwise.
+             * @static
+             */
+            removeListener: function(el, sType, fn) {
+                var i, len, li;
+
+                // The el argument can be a string
+                if (typeof el == "string") {
+                    el = this.getEl(el);
+                // The el argument can be an array of elements or element ids.
+                } else if ( this._isValidCollection(el)) {
+                    var ok = true;
+                    for (i=0,len=el.length; i<len; ++i) {
+                        ok = ( this.removeListener(el[i], sType, fn) && ok );
+                    }
+                    return ok;
+                }
+
+                if (!fn || !fn.call) {
+                    // this.logger.debug("Error, function is not valid " + fn);
+                    //return false;
+                    return this.purgeElement(el, false, sType);
+                }
+
+                if ("unload" == sType) {
+
+                    for (i=0, len=unloadListeners.length; i<len; i++) {
+                        li = unloadListeners[i];
+                        if (li && 
+                            li[0] == el && 
+                            li[1] == sType && 
+                            li[2] == fn) {
+                                //unloadListeners.splice(i, 1);
+                                unloadListeners[i]=null;
+                                return true;
+                        }
+                    }
+
+                    return false;
+                }
+
+                var cacheItem = null;
+
+                // The index is a hidden parameter; needed to remove it from
+                // the method signature because it was tempting users to
+                // try and take advantage of it, which is not possible.
+                var index = arguments[3];
+  
+                if ("undefined" === typeof index) {
+                    index = this._getCacheIndex(el, sType, fn);
+                }
+
+                if (index >= 0) {
+                    cacheItem = listeners[index];
+                }
+
+                if (!el || !cacheItem) {
+                    // this.logger.debug("cached listener not found");
+                    return false;
+                }
+
+                // this.logger.debug("Removing handler: " + el + ", " + sType);
+
+                if (this.useLegacyEvent(el, sType)) {
+                    var legacyIndex = this.getLegacyIndex(el, sType);
+                    var llist = legacyHandlers[legacyIndex];
+                    if (llist) {
+                        for (i=0, len=llist.length; i<len; ++i) {
+                            li = llist[i];
+                            if (li && 
+                                li[this.EL] == el && 
+                                li[this.TYPE] == sType && 
+                                li[this.FN] == fn) {
+                                    //llist.splice(i, 1);
+                                    llist[i]=null;
+                                    break;
+                            }
+                        }
+                    }
+
+                } else {
+                    try {
+                        this._simpleRemove(el, sType, cacheItem[this.WFN], false);
+                    } catch(ex) {
+                        this.lastError = ex;
+                        return false;
+                    }
+                }
+
+                // removed the wrapped handler
+                delete listeners[index][this.WFN];
+                delete listeners[index][this.FN];
+                //listeners.splice(index, 1);
+                listeners[index]=null;
+
+                return true;
+
+            },
+
+            /**
+             * Returns the event's target element.  Safari sometimes provides
+             * a text node, and this is automatically resolved to the text
+             * node's parent so that it behaves like other browsers.
+             * @method getTarget
+             * @param {Event} ev the event
+             * @param {boolean} resolveTextNode when set to true the target's
+             *                  parent will be returned if the target is a 
+             *                  text node.  @deprecated, the text node is
+             *                  now resolved automatically
+             * @return {HTMLElement} the event's target
+             * @static
+             */
+            getTarget: function(ev, resolveTextNode) {
+                var t = ev.target || ev.srcElement;
+                return this.resolveTextNode(t);
+            },
+
+            /**
+             * In some cases, some browsers will return a text node inside
+             * the actual element that was targeted.  This normalizes the
+             * return value for getTarget and getRelatedTarget.
+             * @method resolveTextNode
+             * @param {HTMLElement} node node to resolve
+             * @return {HTMLElement} the normized node
+             * @static
+             */
+            resolveTextNode: function(node) {
+                if (node && 3 == node.nodeType) {
+                    return node.parentNode;
+                } else {
+                    return node;
+                }
+            },
+
+            /**
+             * Returns the event's pageX
+             * @method getPageX
+             * @param {Event} ev the event
+             * @return {int} the event's pageX
+             * @static
+             */
+            getPageX: function(ev) {
+                var x = ev.pageX;
+                if (!x && 0 !== x) {
+                    x = ev.clientX || 0;
+
+                    if ( this.isIE ) {
+                        x += this._getScrollLeft();
+                    }
+                }
+
+                return x;
+            },
+
+            /**
+             * Returns the event's pageY
+             * @method getPageY
+             * @param {Event} ev the event
+             * @return {int} the event's pageY
+             * @static
+             */
+            getPageY: function(ev) {
+                var y = ev.pageY;
+                if (!y && 0 !== y) {
+                    y = ev.clientY || 0;
+
+                    if ( this.isIE ) {
+                        y += this._getScrollTop();
+                    }
+                }
+
+
+                return y;
+            },
+
+            /**
+             * Returns the pageX and pageY properties as an indexed array.
+             * @method getXY
+             * @param {Event} ev the event
+             * @return {[x, y]} the pageX and pageY properties of the event
+             * @static
+             */
+            getXY: function(ev) {
+                return [this.getPageX(ev), this.getPageY(ev)];
+            },
+
+            /**
+             * Returns the event's related target 
+             * @method getRelatedTarget
+             * @param {Event} ev the event
+             * @return {HTMLElement} the event's relatedTarget
+             * @static
+             */
+            getRelatedTarget: function(ev) {
+                var t = ev.relatedTarget;
+                if (!t) {
+                    if (ev.type == "mouseout") {
+                        t = ev.toElement;
+                    } else if (ev.type == "mouseover") {
+                        t = ev.fromElement;
+                    }
+                }
+
+                return this.resolveTextNode(t);
+            },
+
+            /**
+             * Returns the time of the event.  If the time is not included, the
+             * event is modified using the current time.
+             * @method getTime
+             * @param {Event} ev the event
+             * @return {Date} the time of the event
+             * @static
+             */
+            getTime: function(ev) {
+                if (!ev.time) {
+                    var t = new Date().getTime();
+                    try {
+                        ev.time = t;
+                    } catch(ex) { 
+                        this.lastError = ex;
+                        return t;
+                    }
+                }
+
+                return ev.time;
+            },
+
+            /**
+             * Convenience method for stopPropagation + preventDefault
+             * @method stopEvent
+             * @param {Event} ev the event
+             * @static
+             */
+            stopEvent: function(ev) {
+                this.stopPropagation(ev);
+                this.preventDefault(ev);
+            },
+
+            /**
+             * Stops event propagation
+             * @method stopPropagation
+             * @param {Event} ev the event
+             * @static
+             */
+            stopPropagation: function(ev) {
+                if (ev.stopPropagation) {
+                    ev.stopPropagation();
+                } else {
+                    ev.cancelBubble = true;
+                }
+            },
+
+            /**
+             * Prevents the default behavior of the event
+             * @method preventDefault
+             * @param {Event} ev the event
+             * @static
+             */
+            preventDefault: function(ev) {
+                if (ev.preventDefault) {
+                    ev.preventDefault();
+                } else {
+                    ev.returnValue = false;
+                }
+            },
+             
+            /**
+             * Finds the event in the window object, the caller's arguments, or
+             * in the arguments of another method in the callstack.  This is
+             * executed automatically for events registered through the event
+             * manager, so the implementer should not normally need to execute
+             * this function at all.
+             * @method getEvent
+             * @param {Event} e the event parameter from the handler
+             * @param {HTMLElement} boundEl the element the listener is attached to
+             * @return {Event} the event 
+             * @static
+             */
+            getEvent: function(e, boundEl) {
+                var ev = e || window.event;
+
+                if (!ev) {
+                    var c = this.getEvent.caller;
+                    while (c) {
+                        ev = c.arguments[0];
+                        if (ev && Event == ev.constructor) {
+                            break;
+                        }
+                        c = c.caller;
+                    }
+                }
+
+                // IE events that target non-browser objects (e.g., VML
+                // canvas) will sometimes throw errors when you try to
+                // inspect the properties of the event target.  We try to
+                // detect this condition, and provide a dummy target (the bound
+                // element) to eliminate spurious errors.  
+
+                // the implementation caused unexpected results in some 
+                // implementations, so this has been rolled back for now
+                /* 
+                if (ev && this.isIE) {
+
+                    try {
+
+                        var el = ev.srcElement;
+
+                    } catch(ex) {
+
+                        YAHOO.log("Inspecting the target caused an error, " +
+                            "setting the target to the bound element.", "warn");
+                         
+                        ev.target = boundEl;
+                    }
+
+                }
+                */
+
+                return ev;
+            },
+
+            /**
+             * Returns the charcode for an event
+             * @method getCharCode
+             * @param {Event} ev the event
+             * @return {int} the event's charCode
+             * @static
+             */
+            getCharCode: function(ev) {
+                var code = ev.keyCode || ev.charCode || 0;
+
+                // webkit normalization
+                if (YAHOO.env.ua.webkit && (code in webkitKeymap)) {
+                    code = webkitKeymap[code];
+                }
+                return code;
+            },
+
+            /**
+             * Locating the saved event handler data by function ref
+             *
+             * @method _getCacheIndex
+             * @static
+             * @private
+             */
+            _getCacheIndex: function(el, sType, fn) {
+                for (var i=0,len=listeners.length; i<len; ++i) {
+                    var li = listeners[i];
+                    if ( li                 && 
+                         li[this.FN] == fn  && 
+                         li[this.EL] == el  && 
+                         li[this.TYPE] == sType ) {
+                        return i;
+                    }
+                }
+
+                return -1;
+            },
+
+            /**
+             * Generates an unique ID for the element if it does not already 
+             * have one.
+             * @method generateId
+             * @param el the element to create the id for
+             * @return {string} the resulting id of the element
+             * @static
+             */
+            generateId: function(el) {
+                var id = el.id;
+
+                if (!id) {
+                    id = "yuievtautoid-" + counter;
+                    ++counter;
+                    el.id = id;
+                }
+
+                return id;
+            },
+
+
+            /**
+             * We want to be able to use getElementsByTagName as a collection
+             * to attach a group of events to.  Unfortunately, different 
+             * browsers return different types of collections.  This function
+             * tests to determine if the object is array-like.  It will also 
+             * fail if the object is an array, but is empty.
+             * @method _isValidCollection
+             * @param o the object to test
+             * @return {boolean} true if the object is array-like and populated
+             * @static
+             * @private
+             */
+            _isValidCollection: function(o) {
+                try {
+                    return ( o                     && // o is something
+                             typeof o !== "string" && // o is not a string
+                             o.length              && // o is indexed
+                             !o.tagName            && // o is not an HTML element
+                             !o.alert              && // o is not a window
+                             typeof o[0] !== "undefined" );
+                } catch(ex) {
+                    YAHOO.log("_isValidCollection error, assuming that " +
+                " this is a cross frame problem and not a collection", "warn");
+                    return false;
+                }
+
+            },
+
+            /**
+             * @private
+             * @property elCache
+             * DOM element cache
+             * @static
+             * @deprecated Elements are not cached due to issues that arise when
+             * elements are removed and re-added
+             */
+            elCache: {},
+
+            /**
+             * We cache elements bound by id because when the unload event 
+             * fires, we can no longer use document.getElementById
+             * @method getEl
+             * @static
+             * @private
+             * @deprecated Elements are not cached any longer
+             */
+            getEl: function(id) {
+                return (typeof id === "string") ? document.getElementById(id) : id;
+            },
+
+            /**
+             * Clears the element cache
+             * @deprecated Elements are not cached any longer
+             * @method clearCache
+             * @static
+             * @private
+             */
+            clearCache: function() { },
+
+            /**
+             * Custom event the fires when the dom is initially usable
+             * @event DOMReadyEvent
+             */
+            DOMReadyEvent: new YAHOO.util.CustomEvent("DOMReady", this),
+
+            /**
+             * hook up any deferred listeners
+             * @method _load
+             * @static
+             * @private
+             */
+            _load: function(e) {
+
+                if (!loadComplete) {
+                    loadComplete = true;
+                    var EU = YAHOO.util.Event;
+
+                    // Just in case DOMReady did not go off for some reason
+                    EU._ready();
+
+                    // Available elements may not have been detected before the
+                    // window load event fires. Try to find them now so that the
+                    // the user is more likely to get the onAvailable notifications
+                    // before the window load notification
+                    EU._tryPreloadAttach();
+
+                    // Remove the listener to assist with the IE memory issue, but not
+                    // for other browsers because FF 1.0x does not like it.
+                    //if (this.isIE) {
+                        //EU._simpleRemove(window, "load", EU._load);
+                    //}
+                }
+            },
+
+            /**
+             * Fires the DOMReady event listeners the first time the document is
+             * usable.
+             * @method _ready
+             * @static
+             * @private
+             */
+            _ready: function(e) {
+                var EU = YAHOO.util.Event;
+                if (!EU.DOMReady) {
+                    EU.DOMReady=true;
+
+                    // Fire the content ready custom event
+                    EU.DOMReadyEvent.fire();
+
+                    // Remove the DOMContentLoaded (FF/Opera)
+                    EU._simpleRemove(document, "DOMContentLoaded", EU._ready);
+                }
+            },
+
+            /**
+             * Polling function that runs before the onload event fires, 
+             * attempting to attach to DOM Nodes as soon as they are 
+             * available
+             * @method _tryPreloadAttach
+             * @static
+             * @private
+             */
+            _tryPreloadAttach: function() {
+
+                if (this.locked) {
+                    return false;
+                }
+
+                if (this.isIE) {
+                    // Hold off if DOMReady has not fired and check current
+                    // readyState to protect against the IE operation aborted
+                    // issue.
+                    //if (!this.DOMReady || "complete" !== document.readyState) {
+                    if (!this.DOMReady) {
+                        this.startInterval();
+                        return false;
+                    }
+                }
+
+                this.locked = true;
+
+                // this.logger.debug("tryPreloadAttach");
+
+                // keep trying until after the page is loaded.  We need to 
+                // check the page load state prior to trying to bind the 
+                // elements so that we can be certain all elements have been 
+                // tested appropriately
+                var tryAgain = !loadComplete;
+                if (!tryAgain) {
+                    tryAgain = (retryCount > 0);
+                }
+
+                // onAvailable
+                var notAvail = [];
+
+                var executeItem = function (el, item) {
+                    var scope = el;
+                    if (item.override) {
+                        if (item.override === true) {
+                            scope = item.obj;
+                        } else {
+                            scope = item.override;
+                        }
+                    }
+                    item.fn.call(scope, item.obj);
+                };
+
+                var i,len,item,el;
+
+                // onAvailable
+                for (i=0,len=onAvailStack.length; i<len; ++i) {
+                    item = onAvailStack[i];
+                    if (item && !item.checkReady) {
+                        el = this.getEl(item.id);
+                        if (el) {
+                            executeItem(el, item);
+                            onAvailStack[i] = null;
+                        } else {
+                            notAvail.push(item);
+                        }
+                    }
+                }
+
+                // onContentReady
+                for (i=0,len=onAvailStack.length; i<len; ++i) {
+                    item = onAvailStack[i];
+                    if (item && item.checkReady) {
+                        el = this.getEl(item.id);
+
+                        if (el) {
+                            // The element is available, but not necessarily ready
+                            // @todo should we test parentNode.nextSibling?
+                            if (loadComplete || el.nextSibling) {
+                                executeItem(el, item);
+                                onAvailStack[i] = null;
+                            }
+                        } else {
+                            notAvail.push(item);
+                        }
+                    }
+                }
+
+                retryCount = (notAvail.length === 0) ? 0 : retryCount - 1;
+
+                if (tryAgain) {
+                    // we may need to strip the nulled out items here
+                    this.startInterval();
+                } else {
+                    clearInterval(this._interval);
+                    this._interval = null;
+                }
+
+                this.locked = false;
+
+                return true;
+
+            },
+
+            /**
+             * Removes all listeners attached to the given element via addListener.
+             * Optionally, the node's children can also be purged.
+             * Optionally, you can specify a specific type of event to remove.
+             * @method purgeElement
+             * @param {HTMLElement} el the element to purge
+             * @param {boolean} recurse recursively purge this element's children
+             * as well.  Use with caution.
+             * @param {string} sType optional type of listener to purge. If
+             * left out, all listeners will be removed
+             * @static
+             */
+            purgeElement: function(el, recurse, sType) {
+                var oEl = (YAHOO.lang.isString(el)) ? this.getEl(el) : el;
+                var elListeners = this.getListeners(oEl, sType), i, len;
+                if (elListeners) {
+                    for (i=0,len=elListeners.length; i<len ; ++i) {
+                        var l = elListeners[i];
+                        // can't use the index on the changing collection
+                        this.removeListener(oEl, l.type, l.fn, l.index);
+                        //this.removeListener(oEl, l.type, l.fn);
+                    }
+                }
+
+                if (recurse && oEl && oEl.childNodes) {
+                    for (i=0,len=oEl.childNodes.length; i<len ; ++i) {
+                        this.purgeElement(oEl.childNodes[i], recurse, sType);
+                    }
+                }
+            },
+
+            /**
+             * Returns all listeners attached to the given element via addListener.
+             * Optionally, you can specify a specific type of event to return.
+             * @method getListeners
+             * @param el {HTMLElement|string} the element or element id to inspect 
+             * @param sType {string} optional type of listener to return. If
+             * left out, all listeners will be returned
+             * @return {Object} the listener. Contains the following fields:
+             * &nbsp;&nbsp;type:   (string)   the type of event
+             * &nbsp;&nbsp;fn:     (function) the callback supplied to addListener
+             * &nbsp;&nbsp;obj:    (object)   the custom object supplied to addListener
+             * &nbsp;&nbsp;adjust: (boolean|object)  whether or not to adjust the default scope
+             * &nbsp;&nbsp;scope: (boolean)  the derived scope based on the adjust parameter
+             * &nbsp;&nbsp;index:  (int)      its position in the Event util listener cache
+             * @static
+             */           
+            getListeners: function(el, sType) {
+                var results=[], searchLists;
+                if (!sType) {
+                    searchLists = [listeners, unloadListeners];
+                } else if (sType === "unload") {
+                    searchLists = [unloadListeners];
+                } else {
+                    searchLists = [listeners];
+                }
+
+                var oEl = (YAHOO.lang.isString(el)) ? this.getEl(el) : el;
+
+                for (var j=0;j<searchLists.length; j=j+1) {
+                    var searchList = searchLists[j];
+                    if (searchList && searchList.length > 0) {
+                        for (var i=0,len=searchList.length; i<len ; ++i) {
+                            var l = searchList[i];
+                            if ( l  && l[this.EL] === oEl && 
+                                    (!sType || sType === l[this.TYPE]) ) {
+                                results.push({
+                                    type:   l[this.TYPE],
+                                    fn:     l[this.FN],
+                                    obj:    l[this.OBJ],
+                                    adjust: l[this.OVERRIDE],
+                                    scope:  l[this.ADJ_SCOPE],
+                                    index:  i
+                                });
+                            }
+                        }
+                    }
+                }
+
+                return (results.length) ? results : null;
+            },
+
+            /**
+             * Removes all listeners registered by pe.event.  Called 
+             * automatically during the unload event.
+             * @method _unload
+             * @static
+             * @private
+             */
+            _unload: function(e) {
+
+                var EU = YAHOO.util.Event, i, j, l, len, index;
+
+                // execute and clear stored unload listeners
+                for (i=0,len=unloadListeners.length; i<len; ++i) {
+                    l = unloadListeners[i];
+                    if (l) {
+                        var scope = window;
+                        if (l[EU.ADJ_SCOPE]) {
+                            if (l[EU.ADJ_SCOPE] === true) {
+                                scope = l[EU.UNLOAD_OBJ];
+                            } else {
+                                scope = l[EU.ADJ_SCOPE];
+                            }
+                        }
+                        l[EU.FN].call(scope, EU.getEvent(e, l[EU.EL]), l[EU.UNLOAD_OBJ] );
+                        unloadListeners[i] = null;
+                        l=null;
+                        scope=null;
+                    }
+                }
+
+                unloadListeners = null;
+
+                // call clearAttributes or remove listeners to handle IE memory leaks
+                if (YAHOO.env.ua.ie && listeners && listeners.length > 0) {
+                    j = listeners.length;
+                    while (j) {
+                        index = j-1;
+                        l = listeners[index];
+                        if (l) {
+                            //try {
+                                //l[EU.EL].clearAttributes(); // errors on window objects
+                            //} catch(ex) {
+                            EU.removeListener(l[EU.EL], l[EU.TYPE], l[EU.FN], index);
+                            //}
+                        } 
+                        j--;
+                    }
+                    l=null;
+                }
+
+                /*
+                // remove all listeners
+                if (listeners && listeners.length > 0) {
+                    j = listeners.length;
+                    while (j) {
+                        index = j-1;
+                        l = listeners[index];
+                        if (l) {
+                            EU.removeListener(l[EU.EL], l[EU.TYPE], l[EU.FN], index);
+                        } 
+                        j = j - 1;
+                    }
+                    l=null;
+                }
+                */
+
+                /*
+                // kill legacy events
+                for (i=0,len=legacyEvents.length; i<len; ++i) {
+                    // dereference the element
+                    //delete legacyEvents[i][0];
+                    legacyEvents[i][0] = null;
+
+                    // delete the array item
+                    //delete legacyEvents[i];
+                    legacyEvents[i] = null;
+                }
+
+                */
+
+                legacyEvents = null;
+
+                EU._simpleRemove(window, "unload", EU._unload);
+
+            },
+
+            /**
+             * Returns scrollLeft
+             * @method _getScrollLeft
+             * @static
+             * @private
+             */
+            _getScrollLeft: function() {
+                return this._getScroll()[1];
+            },
+
+            /**
+             * Returns scrollTop
+             * @method _getScrollTop
+             * @static
+             * @private
+             */
+            _getScrollTop: function() {
+                return this._getScroll()[0];
+            },
+
+            /**
+             * Returns the scrollTop and scrollLeft.  Used to calculate the 
+             * pageX and pageY in Internet Explorer
+             * @method _getScroll
+             * @static
+             * @private
+             */
+            _getScroll: function() {
+                var dd = document.documentElement, db = document.body;
+                if (dd && (dd.scrollTop || dd.scrollLeft)) {
+                    return [dd.scrollTop, dd.scrollLeft];
+                } else if (db) {
+                    return [db.scrollTop, db.scrollLeft];
+                } else {
+                    return [0, 0];
+                }
+            },
+            
+            /**
+             * Used by old versions of CustomEvent, restored for backwards
+             * compatibility
+             * @method regCE
+             * @private
+             * @static
+             * @deprecated still here for backwards compatibility
+             */
+            regCE: function() {
+                // does nothing
+            },
+
+/*
+            testIEReady: function (){
+                var n = document.createElement('p'), ready = false;
+                try {
+                    // throws an error until the doc is ready
+                    n.doScroll('left'); 
+                    ready = true;
+                } catch(ex){ 
+                    // document is not ready
+                }
+
+                n = null;
+                return ready;
+            },
+*/
+
+            /**
+             * Adds a DOM event directly without the caching, cleanup, scope adj, etc
+             *
+             * @method _simpleAdd
+             * @param {HTMLElement} el      the element to bind the handler to
+             * @param {string}      sType   the type of event handler
+             * @param {function}    fn      the callback to invoke
+             * @param {boolen}      capture capture or bubble phase
+             * @static
+             * @private
+             */
+            _simpleAdd: function () {
+                if (window.addEventListener) {
+                    return function(el, sType, fn, capture) {
+                        el.addEventListener(sType, fn, (capture));
+                    };
+                } else if (window.attachEvent) {
+                    return function(el, sType, fn, capture) {
+                        el.attachEvent("on" + sType, fn);
+                    };
+                } else {
+                    return function(){};
+                }
+            }(),
+
+            /**
+             * Basic remove listener
+             *
+             * @method _simpleRemove
+             * @param {HTMLElement} el      the element to bind the handler to
+             * @param {string}      sType   the type of event handler
+             * @param {function}    fn      the callback to invoke
+             * @param {boolen}      capture capture or bubble phase
+             * @static
+             * @private
+             */
+            _simpleRemove: function() {
+                if (window.removeEventListener) {
+                    return function (el, sType, fn, capture) {
+                        el.removeEventListener(sType, fn, (capture));
+                    };
+                } else if (window.detachEvent) {
+                    return function (el, sType, fn) {
+                        el.detachEvent("on" + sType, fn);
+                    };
+                } else {
+                    return function(){};
+                }
+            }()
+        };
+
+    }();
+
+    (function() {
+        var EU = YAHOO.util.Event;
+
+        /**
+         * YAHOO.util.Event.on is an alias for addListener
+         * @method on
+         * @see addListener
+         * @static
+         */
+        EU.on = EU.addListener;
+
+        /////////////////////////////////////////////////////////////
+        // DOMReady
+        // based on work by: Dean Edwards/John Resig/Matthias Miller 
+
+        // Internet Explorer: use the readyState of a defered script.
+        // This isolates what appears to be a safe moment to manipulate
+        // the DOM prior to when the document's readyState suggests
+        // it is safe to do so.
+        if (EU.isIE) {
+
+            // Process onAvailable/onContentReady items when when the 
+            // DOM is ready.
+            YAHOO.util.Event.onDOMReady(
+                    YAHOO.util.Event._tryPreloadAttach,
+                    YAHOO.util.Event, true);
+
+            /*
+
+            //YAHOO.log("-" + document.readyState + "-");
+
+            var el, d=document, b=d.body;
+
+            // If the library is being injected after window.onload, it
+            // is not safe to document.write the script tag.  Detecting
+            // this state doesn't appear possible, so we expect a flag
+            // in YAHOO_config to be set if the library is being injected.
+            if (("undefined" !== typeof YAHOO_config) && YAHOO_config.injecting) {
+
+                el = document.createElement("script");
+                var p=d.getElementsByTagName("head")[0] || b;
+                p.insertBefore(el, p.firstChild);
+
+            } else {
+                //YAHOO.log("-dw-");
+    d.write('<scr'+'ipt id="_yui_eu_dr" defer="true" src="//:"><'+'/script>');
+                el=document.getElementById("_yui_eu_dr");
+            }
+            
+
+            if (el) {
+                el.onreadystatechange = function() {
+                    //YAHOO.log(";comp-" + this.readyState + ";");
+                    if ("complete" === this.readyState) {
+                        this.parentNode.removeChild(this);
+                        YAHOO.util.Event._ready();
+                    }
+                };
+            } else {
+                // The library was likely injected into the page
+                // rendering onDOMReady unreliable
+                // YAHOO.util.Event._ready();
+            }
+
+            el=null;
+
+            */
+
+/*
+            (function (){
+                var n = document.createElement('p');  
+                try {
+                    // throws an error if doc is not ready
+                    n.doScroll('left');
+                    n = null;
+                    YAHOO.util.Event._ready();
+                } catch (ex){
+                    n = null;
+setTimeout(arguments.callee, YAHOO.util.Event.POLL_INTERVAL);
+                }
+            })();
+*/
+
+            EU._dri = setInterval(function() {
+                var n = document.createElement('p');  
+                try {
+                    // throws an error if doc is not ready
+                    n.doScroll('left');
+                    clearInterval(EU._dri);
+                    EU._dri = null;
+                    EU._ready();
+                    n = null;
+                } catch (ex) { 
+                    n = null;
+                }
+            }, EU.POLL_INTERVAL); 
+
+        
+        // Safari: The document's readyState in Safari currently will
+        // change to loaded/complete before images are loaded.
+        //} else if (EU.webkit) {
+        } else if (EU.webkit) {
+
+            EU._dri = setInterval(function() {
+                var rs=document.readyState;
+                if ("loaded" == rs || "complete" == rs) {
+                    clearInterval(EU._dri);
+                    EU._dri = null;
+                    EU._ready();
+                }
+            }, EU.POLL_INTERVAL); 
+
+        // FireFox and Opera: These browsers provide a event for this
+        // moment.
+        } else {
+
+            // @todo will this fire when the library is injected?
+
+            EU._simpleAdd(document, "DOMContentLoaded", EU._ready);
+
+        }
+        /////////////////////////////////////////////////////////////
+
+
+        EU._simpleAdd(window, "load", EU._load);
+        EU._simpleAdd(window, "unload", EU._unload);
+        EU._tryPreloadAttach();
+    })();
+
+}
+/**
+ * EventProvider is designed to be used with YAHOO.augment to wrap 
+ * CustomEvents in an interface that allows events to be subscribed to 
+ * and fired by name.  This makes it possible for implementing code to
+ * subscribe to an event that either has not been created yet, or will
+ * not be created at all.
+ *
+ * @Class EventProvider
+ */
+YAHOO.util.EventProvider = function() { };
+
+YAHOO.util.EventProvider.prototype = {
+
+    /**
+     * Private storage of custom events
+     * @property __yui_events
+     * @type Object[]
+     * @private
+     */
+    __yui_events: null,
+
+    /**
+     * Private storage of custom event subscribers
+     * @property __yui_subscribers
+     * @type Object[]
+     * @private
+     */
+    __yui_subscribers: null,
+    
+    /**
+     * Subscribe to a CustomEvent by event type
+     *
+     * @method subscribe
+     * @param p_type     {string}   the type, or name of the event
+     * @param p_fn       {function} the function to exectute when the event fires
+     * @param p_obj      {Object}   An object to be passed along when the event 
+     *                              fires
+     * @param p_override {boolean}  If true, the obj passed in becomes the 
+     *                              execution scope of the listener
+     */
+    subscribe: function(p_type, p_fn, p_obj, p_override) {
+
+        this.__yui_events = this.__yui_events || {};
+        var ce = this.__yui_events[p_type];
+
+        if (ce) {
+            ce.subscribe(p_fn, p_obj, p_override);
+        } else {
+            this.__yui_subscribers = this.__yui_subscribers || {};
+            var subs = this.__yui_subscribers;
+            if (!subs[p_type]) {
+                subs[p_type] = [];
+            }
+            subs[p_type].push(
+                { fn: p_fn, obj: p_obj, override: p_override } );
+        }
+    },
+
+    /**
+     * Unsubscribes one or more listeners the from the specified event
+     * @method unsubscribe
+     * @param p_type {string}   The type, or name of the event.  If the type
+     *                          is not specified, it will attempt to remove
+     *                          the listener from all hosted events.
+     * @param p_fn   {Function} The subscribed function to unsubscribe, if not
+     *                          supplied, all subscribers will be removed.
+     * @param p_obj  {Object}   The custom object passed to subscribe.  This is
+     *                        optional, but if supplied will be used to
+     *                        disambiguate multiple listeners that are the same
+     *                        (e.g., you subscribe many object using a function
+     *                        that lives on the prototype)
+     * @return {boolean} true if the subscriber was found and detached.
+     */
+    unsubscribe: function(p_type, p_fn, p_obj) {
+        this.__yui_events = this.__yui_events || {};
+        var evts = this.__yui_events;
+        if (p_type) {
+            var ce = evts[p_type];
+            if (ce) {
+                return ce.unsubscribe(p_fn, p_obj);
+            }
+        } else {
+            var ret = true;
+            for (var i in evts) {
+                if (YAHOO.lang.hasOwnProperty(evts, i)) {
+                    ret = ret && evts[i].unsubscribe(p_fn, p_obj);
+                }
+            }
+            return ret;
+        }
+
+        return false;
+    },
+    
+    /**
+     * Removes all listeners from the specified event.  If the event type
+     * is not specified, all listeners from all hosted custom events will
+     * be removed.
+     * @method unsubscribeAll
+     * @param p_type {string}   The type, or name of the event
+     */
+    unsubscribeAll: function(p_type) {
+        return this.unsubscribe(p_type);
+    },
+
+    /**
+     * Creates a new custom event of the specified type.  If a custom event
+     * by that name already exists, it will not be re-created.  In either
+     * case the custom event is returned. 
+     *
+     * @method createEvent
+     *
+     * @param p_type {string} the type, or name of the event
+     * @param p_config {object} optional config params.  Valid properties are:
+     *
+     *  <ul>
+     *    <li>
+     *      scope: defines the default execution scope.  If not defined
+     *      the default scope will be this instance.
+     *    </li>
+     *    <li>
+     *      silent: if true, the custom event will not generate log messages.
+     *      This is false by default.
+     *    </li>
+     *    <li>
+     *      onSubscribeCallback: specifies a callback to execute when the
+     *      event has a new subscriber.  This will fire immediately for
+     *      each queued subscriber if any exist prior to the creation of
+     *      the event.
+     *    </li>
+     *  </ul>
+     *
+     *  @return {CustomEvent} the custom event
+     *
+     */
+    createEvent: function(p_type, p_config) {
+
+        this.__yui_events = this.__yui_events || {};
+        var opts = p_config || {};
+        var events = this.__yui_events;
+
+        if (events[p_type]) {
+YAHOO.log("EventProvider createEvent skipped: '"+p_type+"' already exists");
+        } else {
+
+            var scope  = opts.scope  || this;
+            var silent = (opts.silent);
+
+            var ce = new YAHOO.util.CustomEvent(p_type, scope, silent,
+                    YAHOO.util.CustomEvent.FLAT);
+            events[p_type] = ce;
+
+            if (opts.onSubscribeCallback) {
+                ce.subscribeEvent.subscribe(opts.onSubscribeCallback);
+            }
+
+            this.__yui_subscribers = this.__yui_subscribers || {};
+            var qs = this.__yui_subscribers[p_type];
+
+            if (qs) {
+                for (var i=0; i<qs.length; ++i) {
+                    ce.subscribe(qs[i].fn, qs[i].obj, qs[i].override);
+                }
+            }
+        }
+
+        return events[p_type];
+    },
+
+
+   /**
+     * Fire a custom event by name.  The callback functions will be executed
+     * from the scope specified when the event was created, and with the 
+     * following parameters:
+     *   <ul>
+     *   <li>The first argument fire() was executed with</li>
+     *   <li>The custom object (if any) that was passed into the subscribe() 
+     *       method</li>
+     *   </ul>
+     * If the custom event has not been explicitly created, it will be
+     * created now with the default config, scoped to the host object
+     * @method fireEvent
+     * @param p_type    {string}  the type, or name of the event
+     * @param arguments {Object*} an arbitrary set of parameters to pass to 
+     *                            the handler.
+     * @return {boolean} the return value from CustomEvent.fire
+     *                   
+     */
+    fireEvent: function(p_type, arg1, arg2, etc) {
+
+        this.__yui_events = this.__yui_events || {};
+        var ce = this.__yui_events[p_type];
+
+        if (!ce) {
+YAHOO.log(p_type + "event fired before it was created.");
+            return null;
+        }
+
+        var args = [];
+        for (var i=1; i<arguments.length; ++i) {
+            args.push(arguments[i]);
+        }
+        return ce.fire.apply(ce, args);
+    },
+
+    /**
+     * Returns true if the custom event of the provided type has been created
+     * with createEvent.
+     * @method hasEvent
+     * @param type {string} the type, or name of the event
+     */
+    hasEvent: function(type) {
+        if (this.__yui_events) {
+            if (this.__yui_events[type]) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+};
+
+/**
+* KeyListener is a utility that provides an easy interface for listening for
+* keydown/keyup events fired against DOM elements.
+* @namespace YAHOO.util
+* @class KeyListener
+* @constructor
+* @param {HTMLElement} attachTo The element or element ID to which the key 
+*                               event should be attached
+* @param {String}      attachTo The element or element ID to which the key
+*                               event should be attached
+* @param {Object}      keyData  The object literal representing the key(s) 
+*                               to detect. Possible attributes are 
+*                               shift(boolean), alt(boolean), ctrl(boolean) 
+*                               and keys(either an int or an array of ints 
+*                               representing keycodes).
+* @param {Function}    handler  The CustomEvent handler to fire when the 
+*                               key event is detected
+* @param {Object}      handler  An object literal representing the handler. 
+* @param {String}      event    Optional. The event (keydown or keyup) to 
+*                               listen for. Defaults automatically to keydown.
+*
+* @knownissue the "keypress" event is completely broken in Safari 2.x and below.
+*             the workaround is use "keydown" for key listening.  However, if
+*             it is desired to prevent the default behavior of the keystroke,
+*             that can only be done on the keypress event.  This makes key
+*             handling quite ugly.
+* @knownissue keydown is also broken in Safari 2.x and below for the ESC key.
+*             There currently is no workaround other than choosing another
+*             key to listen for.
+*/
+YAHOO.util.KeyListener = function(attachTo, keyData, handler, event) {
+    if (!attachTo) {
+        YAHOO.log("No attachTo element specified", "error");
+    } else if (!keyData) {
+        YAHOO.log("No keyData specified", "error");
+    } else if (!handler) {
+        YAHOO.log("No handler specified", "error");
+    } 
+    
+    if (!event) {
+        event = YAHOO.util.KeyListener.KEYDOWN;
+    }
+
+    /**
+    * The CustomEvent fired internally when a key is pressed
+    * @event keyEvent
+    * @private
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    var keyEvent = new YAHOO.util.CustomEvent("keyPressed");
+    
+    /**
+    * The CustomEvent fired when the KeyListener is enabled via the enable() 
+    * function
+    * @event enabledEvent
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    this.enabledEvent = new YAHOO.util.CustomEvent("enabled");
+
+    /**
+    * The CustomEvent fired when the KeyListener is disabled via the 
+    * disable() function
+    * @event disabledEvent
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    this.disabledEvent = new YAHOO.util.CustomEvent("disabled");
+
+    if (typeof attachTo == 'string') {
+        attachTo = document.getElementById(attachTo);
+    }
+
+    if (typeof handler == 'function') {
+        keyEvent.subscribe(handler);
+    } else {
+        keyEvent.subscribe(handler.fn, handler.scope, handler.correctScope);
+    }
+
+    /**
+    * Handles the key event when a key is pressed.
+    * @method handleKeyPress
+    * @param {DOMEvent} e   The keypress DOM event
+    * @param {Object}   obj The DOM event scope object
+    * @private
+    */
+    function handleKeyPress(e, obj) {
+        if (! keyData.shift) {  
+            keyData.shift = false; 
+        }
+        if (! keyData.alt) {    
+            keyData.alt = false;
+        }
+        if (! keyData.ctrl) {
+            keyData.ctrl = false;
+        }
+
+        // check held down modifying keys first
+        if (e.shiftKey == keyData.shift && 
+            e.altKey   == keyData.alt &&
+            e.ctrlKey  == keyData.ctrl) { // if we pass this, all modifiers match
+            
+            var dataItem;
+
+            if (keyData.keys instanceof Array) {
+                for (var i=0;i<keyData.keys.length;i++) {
+                    dataItem = keyData.keys[i];
+
+                    if (dataItem == e.charCode ) {
+                        keyEvent.fire(e.charCode, e);
+                        break;
+                    } else if (dataItem == e.keyCode) {
+                        keyEvent.fire(e.keyCode, e);
+                        break;
+                    }
+                }
+            } else {
+                dataItem = keyData.keys;
+                if (dataItem == e.charCode ) {
+                    keyEvent.fire(e.charCode, e);
+                } else if (dataItem == e.keyCode) {
+                    keyEvent.fire(e.keyCode, e);
+                }
+            }
+        }
+    }
+
+    /**
+    * Enables the KeyListener by attaching the DOM event listeners to the 
+    * target DOM element
+    * @method enable
+    */
+    this.enable = function() {
+        if (! this.enabled) {
+            YAHOO.util.Event.addListener(attachTo, event, handleKeyPress);
+            this.enabledEvent.fire(keyData);
+        }
+        /**
+        * Boolean indicating the enabled/disabled state of the Tooltip
+        * @property enabled
+        * @type Boolean
+        */
+        this.enabled = true;
+    };
+
+    /**
+    * Disables the KeyListener by removing the DOM event listeners from the 
+    * target DOM element
+    * @method disable
+    */
+    this.disable = function() {
+        if (this.enabled) {
+            YAHOO.util.Event.removeListener(attachTo, event, handleKeyPress);
+            this.disabledEvent.fire(keyData);
+        }
+        this.enabled = false;
+    };
+
+    /**
+    * Returns a String representation of the object.
+    * @method toString
+    * @return {String}  The string representation of the KeyListener
+    */ 
+    this.toString = function() {
+        return "KeyListener [" + keyData.keys + "] " + attachTo.tagName + 
+                (attachTo.id ? "[" + attachTo.id + "]" : "");
+    };
+
+};
+
+/**
+* Constant representing the DOM "keydown" event.
+* @property YAHOO.util.KeyListener.KEYDOWN
+* @static
+* @final
+* @type String
+*/
+YAHOO.util.KeyListener.KEYDOWN = "keydown";
+
+/**
+* Constant representing the DOM "keyup" event.
+* @property YAHOO.util.KeyListener.KEYUP
+* @static
+* @final
+* @type String
+*/
+YAHOO.util.KeyListener.KEYUP = "keyup";
+
+/**
+ * keycode constants for a subset of the special keys
+ * @property KEY
+ * @static
+ * @final
+ */
+YAHOO.util.KeyListener.KEY = {
+    ALT          : 18,
+    BACK_SPACE   : 8,
+    CAPS_LOCK    : 20,
+    CONTROL      : 17,
+    DELETE       : 46,
+    DOWN         : 40,
+    END          : 35,
+    ENTER        : 13,
+    ESCAPE       : 27,
+    HOME         : 36,
+    LEFT         : 37,
+    META         : 224,
+    NUM_LOCK     : 144,
+    PAGE_DOWN    : 34,
+    PAGE_UP      : 33, 
+    PAUSE        : 19,
+    PRINTSCREEN  : 44,
+    RIGHT        : 39,
+    SCROLL_LOCK  : 145,
+    SHIFT        : 16,
+    SPACE        : 32,
+    TAB          : 9,
+    UP           : 38
+};
+YAHOO.register("event", YAHOO.util.Event, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/event/event-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/event/event.js
===================================================================
--- tags/2.7.0/wb/include/yui/event/event.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/event/event.js	(revision 838)
@@ -0,0 +1,2492 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+
+/**
+ * The CustomEvent class lets you define events for your application
+ * that can be subscribed to by one or more independent component.
+ *
+ * @param {String}  type The type of event, which is passed to the callback
+ *                  when the event fires
+ * @param {Object}  oScope The context the event will fire from.  "this" will
+ *                  refer to this object in the callback.  Default value: 
+ *                  the window object.  The listener can override this.
+ * @param {boolean} silent pass true to prevent the event from writing to
+ *                  the debugsystem
+ * @param {int}     signature the signature that the custom event subscriber
+ *                  will receive. YAHOO.util.CustomEvent.LIST or 
+ *                  YAHOO.util.CustomEvent.FLAT.  The default is
+ *                  YAHOO.util.CustomEvent.LIST.
+ * @namespace YAHOO.util
+ * @class CustomEvent
+ * @constructor
+ */
+YAHOO.util.CustomEvent = function(type, oScope, silent, signature) {
+
+    /**
+     * The type of event, returned to subscribers when the event fires
+     * @property type
+     * @type string
+     */
+    this.type = type;
+
+    /**
+     * The scope the the event will fire from by default.  Defaults to the window 
+     * obj
+     * @property scope
+     * @type object
+     */
+    this.scope = oScope || window;
+
+    /**
+     * By default all custom events are logged in the debug build, set silent
+     * to true to disable debug outpu for this event.
+     * @property silent
+     * @type boolean
+     */
+    this.silent = silent;
+
+    /**
+     * Custom events support two styles of arguments provided to the event
+     * subscribers.  
+     * <ul>
+     * <li>YAHOO.util.CustomEvent.LIST: 
+     *   <ul>
+     *   <li>param1: event name</li>
+     *   <li>param2: array of arguments sent to fire</li>
+     *   <li>param3: <optional> a custom object supplied by the subscriber</li>
+     *   </ul>
+     * </li>
+     * <li>YAHOO.util.CustomEvent.FLAT
+     *   <ul>
+     *   <li>param1: the first argument passed to fire.  If you need to
+     *           pass multiple parameters, use and array or object literal</li>
+     *   <li>param2: <optional> a custom object supplied by the subscriber</li>
+     *   </ul>
+     * </li>
+     * </ul>
+     *   @property signature
+     *   @type int
+     */
+    this.signature = signature || YAHOO.util.CustomEvent.LIST;
+
+    /**
+     * The subscribers to this event
+     * @property subscribers
+     * @type Subscriber[]
+     */
+    this.subscribers = [];
+
+    if (!this.silent) {
+    }
+
+    var onsubscribeType = "_YUICEOnSubscribe";
+
+    // Only add subscribe events for events that are not generated by 
+    // CustomEvent
+    if (type !== onsubscribeType) {
+
+        /**
+         * Custom events provide a custom event that fires whenever there is
+         * a new subscriber to the event.  This provides an opportunity to
+         * handle the case where there is a non-repeating event that has
+         * already fired has a new subscriber.  
+         *
+         * @event subscribeEvent
+         * @type YAHOO.util.CustomEvent
+         * @param {Function} fn The function to execute
+         * @param {Object}   obj An object to be passed along when the event 
+         *                       fires
+         * @param {boolean|Object}  override If true, the obj passed in becomes 
+         *                                   the execution scope of the listener.
+         *                                   if an object, that object becomes the
+         *                                   the execution scope.
+         */
+        this.subscribeEvent = 
+                new YAHOO.util.CustomEvent(onsubscribeType, this, true);
+
+    } 
+
+
+    /**
+     * In order to make it possible to execute the rest of the subscriber
+     * stack when one thows an exception, the subscribers exceptions are
+     * caught.  The most recent exception is stored in this property
+     * @property lastError
+     * @type Error
+     */
+    this.lastError = null;
+};
+
+/**
+ * Subscriber listener sigature constant.  The LIST type returns three
+ * parameters: the event type, the array of args passed to fire, and
+ * the optional custom object
+ * @property YAHOO.util.CustomEvent.LIST
+ * @static
+ * @type int
+ */
+YAHOO.util.CustomEvent.LIST = 0;
+
+/**
+ * Subscriber listener sigature constant.  The FLAT type returns two
+ * parameters: the first argument passed to fire and the optional 
+ * custom object
+ * @property YAHOO.util.CustomEvent.FLAT
+ * @static
+ * @type int
+ */
+YAHOO.util.CustomEvent.FLAT = 1;
+
+YAHOO.util.CustomEvent.prototype = {
+
+    /**
+     * Subscribes the caller to this event
+     * @method subscribe
+     * @param {Function} fn        The function to execute
+     * @param {Object}   obj       An object to be passed along when the event 
+     *                             fires
+     * @param {boolean|Object}  override If true, the obj passed in becomes 
+     *                                   the execution scope of the listener.
+     *                                   if an object, that object becomes the
+     *                                   the execution scope.
+     */
+    subscribe: function(fn, obj, override) {
+
+        if (!fn) {
+throw new Error("Invalid callback for subscriber to '" + this.type + "'");
+        }
+
+        if (this.subscribeEvent) {
+            this.subscribeEvent.fire(fn, obj, override);
+        }
+
+        this.subscribers.push( new YAHOO.util.Subscriber(fn, obj, override) );
+    },
+
+    /**
+     * Unsubscribes subscribers.
+     * @method unsubscribe
+     * @param {Function} fn  The subscribed function to remove, if not supplied
+     *                       all will be removed
+     * @param {Object}   obj  The custom object passed to subscribe.  This is
+     *                        optional, but if supplied will be used to
+     *                        disambiguate multiple listeners that are the same
+     *                        (e.g., you subscribe many object using a function
+     *                        that lives on the prototype)
+     * @return {boolean} True if the subscriber was found and detached.
+     */
+    unsubscribe: function(fn, obj) {
+
+        if (!fn) {
+            return this.unsubscribeAll();
+        }
+
+        var found = false;
+        for (var i=0, len=this.subscribers.length; i<len; ++i) {
+            var s = this.subscribers[i];
+            if (s && s.contains(fn, obj)) {
+                this._delete(i);
+                found = true;
+            }
+        }
+
+        return found;
+    },
+
+    /**
+     * Notifies the subscribers.  The callback functions will be executed
+     * from the scope specified when the event was created, and with the 
+     * following parameters:
+     *   <ul>
+     *   <li>The type of event</li>
+     *   <li>All of the arguments fire() was executed with as an array</li>
+     *   <li>The custom object (if any) that was passed into the subscribe() 
+     *       method</li>
+     *   </ul>
+     * @method fire 
+     * @param {Object*} arguments an arbitrary set of parameters to pass to 
+     *                            the handler.
+     * @return {boolean} false if one of the subscribers returned false, 
+     *                   true otherwise
+     */
+    fire: function() {
+        var len=this.subscribers.length;
+        if (!len && this.silent) {
+            return true;
+        }
+
+        var args=[], ret=true, i, rebuild=false;
+
+        for (i=0; i<arguments.length; ++i) {
+            args.push(arguments[i]);
+        }
+
+        if (!this.silent) {
+        }
+
+        for (i=0; i<len; ++i) {
+            var s = this.subscribers[i];
+            if (!s) {
+                rebuild=true;
+            } else {
+                if (!this.silent) {
+                }
+
+                var scope = s.getScope(this.scope);
+
+                if (this.signature == YAHOO.util.CustomEvent.FLAT) {
+                    var param = null;
+                    if (args.length > 0) {
+                        param = args[0];
+                    }
+
+                    try {
+                        ret = s.fn.call(scope, param, s.obj);
+                    } catch(e) {
+                        this.lastError = e;
+                    }
+                } else {
+                    try {
+                        ret = s.fn.call(scope, this.type, args, s.obj);
+                    } catch(ex) {
+                        this.lastError = ex;
+                    }
+                }
+                if (false === ret) {
+                    if (!this.silent) {
+                    }
+
+                    //break;
+                    return false;
+                }
+            }
+        }
+
+        if (rebuild) {
+            var newlist=[],subs=this.subscribers;
+            for (i=0,len=subs.length; i<len; i=i+1) {
+                newlist.push(subs[i]);
+            }
+
+            this.subscribers=newlist;
+        }
+
+        return true;
+    },
+
+    /**
+     * Removes all listeners
+     * @method unsubscribeAll
+     * @return {int} The number of listeners unsubscribed
+     */
+    unsubscribeAll: function() {
+        for (var i=0, len=this.subscribers.length; i<len; ++i) {
+            this._delete(len - 1 - i);
+        }
+
+        this.subscribers=[];
+
+        return i;
+    },
+
+    /**
+     * @method _delete
+     * @private
+     */
+    _delete: function(index) {
+        var s = this.subscribers[index];
+        if (s) {
+            delete s.fn;
+            delete s.obj;
+        }
+
+        this.subscribers[index]=null;
+    },
+
+    /**
+     * @method toString
+     */
+    toString: function() {
+         return "CustomEvent: " + "'" + this.type  + "', " + 
+             "scope: " + this.scope;
+
+    }
+};
+
+/////////////////////////////////////////////////////////////////////
+
+/**
+ * Stores the subscriber information to be used when the event fires.
+ * @param {Function} fn       The function to execute
+ * @param {Object}   obj      An object to be passed along when the event fires
+ * @param {boolean}  override If true, the obj passed in becomes the execution
+ *                            scope of the listener
+ * @class Subscriber
+ * @constructor
+ */
+YAHOO.util.Subscriber = function(fn, obj, override) {
+
+    /**
+     * The callback that will be execute when the event fires
+     * @property fn
+     * @type function
+     */
+    this.fn = fn;
+
+    /**
+     * An optional custom object that will passed to the callback when
+     * the event fires
+     * @property obj
+     * @type object
+     */
+    this.obj = YAHOO.lang.isUndefined(obj) ? null : obj;
+
+    /**
+     * The default execution scope for the event listener is defined when the
+     * event is created (usually the object which contains the event).
+     * By setting override to true, the execution scope becomes the custom
+     * object passed in by the subscriber.  If override is an object, that 
+     * object becomes the scope.
+     * @property override
+     * @type boolean|object
+     */
+    this.override = override;
+
+};
+
+/**
+ * Returns the execution scope for this listener.  If override was set to true
+ * the custom obj will be the scope.  If override is an object, that is the
+ * scope, otherwise the default scope will be used.
+ * @method getScope
+ * @param {Object} defaultScope the scope to use if this listener does not
+ *                              override it.
+ */
+YAHOO.util.Subscriber.prototype.getScope = function(defaultScope) {
+    if (this.override) {
+        if (this.override === true) {
+            return this.obj;
+        } else {
+            return this.override;
+        }
+    }
+    return defaultScope;
+};
+
+/**
+ * Returns true if the fn and obj match this objects properties.
+ * Used by the unsubscribe method to match the right subscriber.
+ *
+ * @method contains
+ * @param {Function} fn the function to execute
+ * @param {Object} obj an object to be passed along when the event fires
+ * @return {boolean} true if the supplied arguments match this 
+ *                   subscriber's signature.
+ */
+YAHOO.util.Subscriber.prototype.contains = function(fn, obj) {
+    if (obj) {
+        return (this.fn == fn && this.obj == obj);
+    } else {
+        return (this.fn == fn);
+    }
+};
+
+/**
+ * @method toString
+ */
+YAHOO.util.Subscriber.prototype.toString = function() {
+    return "Subscriber { obj: " + this.obj  + 
+           ", override: " +  (this.override || "no") + " }";
+};
+
+/**
+ * The Event Utility provides utilities for managing DOM Events and tools
+ * for building event systems
+ *
+ * @module event
+ * @title Event Utility
+ * @namespace YAHOO.util
+ * @requires yahoo
+ */
+
+// The first instance of Event will win if it is loaded more than once.
+// @TODO this needs to be changed so that only the state data that needs to
+// be preserved is kept, while methods are overwritten/added as needed.
+// This means that the module pattern can't be used.
+if (!YAHOO.util.Event) {
+
+/**
+ * The event utility provides functions to add and remove event listeners,
+ * event cleansing.  It also tries to automatically remove listeners it
+ * registers during the unload event.
+ *
+ * @class Event
+ * @static
+ */
+    YAHOO.util.Event = function() {
+
+        /**
+         * True after the onload event has fired
+         * @property loadComplete
+         * @type boolean
+         * @static
+         * @private
+         */
+        var loadComplete =  false;
+
+        /**
+         * Cache of wrapped listeners
+         * @property listeners
+         * @type array
+         * @static
+         * @private
+         */
+        var listeners = [];
+
+        /**
+         * User-defined unload function that will be fired before all events
+         * are detached
+         * @property unloadListeners
+         * @type array
+         * @static
+         * @private
+         */
+        var unloadListeners = [];
+
+        /**
+         * Cache of DOM0 event handlers to work around issues with DOM2 events
+         * in Safari
+         * @property legacyEvents
+         * @static
+         * @private
+         */
+        var legacyEvents = [];
+
+        /**
+         * Listener stack for DOM0 events
+         * @property legacyHandlers
+         * @static
+         * @private
+         */
+        var legacyHandlers = [];
+
+        /**
+         * The number of times to poll after window.onload.  This number is
+         * increased if additional late-bound handlers are requested after
+         * the page load.
+         * @property retryCount
+         * @static
+         * @private
+         */
+        var retryCount = 0;
+
+        /**
+         * onAvailable listeners
+         * @property onAvailStack
+         * @static
+         * @private
+         */
+        var onAvailStack = [];
+
+        /**
+         * Lookup table for legacy events
+         * @property legacyMap
+         * @static
+         * @private
+         */
+        var legacyMap = [];
+
+        /**
+         * Counter for auto id generation
+         * @property counter
+         * @static
+         * @private
+         */
+        var counter = 0;
+        
+        /**
+         * Normalized keycodes for webkit/safari
+         * @property webkitKeymap
+         * @type {int: int}
+         * @private
+         * @static
+         * @final
+         */
+        var webkitKeymap = {
+            63232: 38, // up
+            63233: 40, // down
+            63234: 37, // left
+            63235: 39, // right
+            63276: 33, // page up
+            63277: 34, // page down
+            25: 9      // SHIFT-TAB (Safari provides a different key code in
+                       // this case, even though the shiftKey modifier is set)
+        };
+
+        return {
+
+            /**
+             * The number of times we should look for elements that are not
+             * in the DOM at the time the event is requested after the document
+             * has been loaded.  The default is 4000@amp;10 ms, so it will poll
+             * for 40 seconds or until all outstanding handlers are bound
+             * (whichever comes first).
+             * @property POLL_RETRYS
+             * @type int
+             * @static
+             * @final
+             */
+            POLL_RETRYS: 4000,
+
+            /**
+             * The poll interval in milliseconds
+             * @property POLL_INTERVAL
+             * @type int
+             * @static
+             * @final
+             */
+            POLL_INTERVAL: 10,
+
+            /**
+             * Element to bind, int constant
+             * @property EL
+             * @type int
+             * @static
+             * @final
+             */
+            EL: 0,
+
+            /**
+             * Type of event, int constant
+             * @property TYPE
+             * @type int
+             * @static
+             * @final
+             */
+            TYPE: 1,
+
+            /**
+             * Function to execute, int constant
+             * @property FN
+             * @type int
+             * @static
+             * @final
+             */
+            FN: 2,
+
+            /**
+             * Function wrapped for scope correction and cleanup, int constant
+             * @property WFN
+             * @type int
+             * @static
+             * @final
+             */
+            WFN: 3,
+
+            /**
+             * Object passed in by the user that will be returned as a 
+             * parameter to the callback, int constant.  Specific to
+             * unload listeners
+             * @property OBJ
+             * @type int
+             * @static
+             * @final
+             */
+            UNLOAD_OBJ: 3,
+
+            /**
+             * Adjusted scope, either the element we are registering the event
+             * on or the custom object passed in by the listener, int constant
+             * @property ADJ_SCOPE
+             * @type int
+             * @static
+             * @final
+             */
+            ADJ_SCOPE: 4,
+
+            /**
+             * The original obj passed into addListener
+             * @property OBJ
+             * @type int
+             * @static
+             * @final
+             */
+            OBJ: 5,
+
+            /**
+             * The original scope parameter passed into addListener
+             * @property OVERRIDE
+             * @type int
+             * @static
+             * @final
+             */
+            OVERRIDE: 6,
+
+            /**
+             * addListener/removeListener can throw errors in unexpected scenarios.
+             * These errors are suppressed, the method returns false, and this property
+             * is set
+             * @property lastError
+             * @static
+             * @type Error
+             */
+            lastError: null,
+
+            /**
+             * Safari detection
+             * @property isSafari
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.webkit
+             */
+            isSafari: YAHOO.env.ua.webkit,
+            
+            /**
+             * webkit version
+             * @property webkit
+             * @type string
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.webkit
+             */
+            webkit: YAHOO.env.ua.webkit,
+            
+            /**
+             * IE detection 
+             * @property isIE
+             * @private
+             * @static
+             * @deprecated use YAHOO.env.ua.ie
+             */
+            isIE: YAHOO.env.ua.ie,
+
+            /**
+             * poll handle
+             * @property _interval
+             * @static
+             * @private
+             */
+            _interval: null,
+
+            /**
+             * document readystate poll handle
+             * @property _dri
+             * @static
+             * @private
+             */
+             _dri: null,
+
+            /**
+             * True when the document is initially usable
+             * @property DOMReady
+             * @type boolean
+             * @static
+             */
+            DOMReady: false,
+
+            /**
+             * @method startInterval
+             * @static
+             * @private
+             */
+            startInterval: function() {
+                if (!this._interval) {
+                    var self = this;
+                    var callback = function() { self._tryPreloadAttach(); };
+                    this._interval = setInterval(callback, this.POLL_INTERVAL);
+                }
+            },
+
+            /**
+             * Executes the supplied callback when the item with the supplied
+             * id is found.  This is meant to be used to execute behavior as
+             * soon as possible as the page loads.  If you use this after the
+             * initial page load it will poll for a fixed time for the element.
+             * The number of times it will poll and the frequency are
+             * configurable.  By default it will poll for 10 seconds.
+             *
+             * <p>The callback is executed with a single parameter:
+             * the custom object parameter, if provided.</p>
+             *
+             * @method onAvailable
+             *
+             * @param {string||string[]}   p_id the id of the element, or an array
+             * of ids to look for.
+             * @param {function} p_fn what to execute when the element is found.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_override If set to true, p_fn will execute
+             *                   in the scope of p_obj, if set to an object it
+             *                   will execute in the scope of that object
+             * @param checkContent {boolean} check child node readiness (onContentReady)
+             * @static
+             */
+            onAvailable: function(p_id, p_fn, p_obj, p_override, checkContent) {
+
+                var a = (YAHOO.lang.isString(p_id)) ? [p_id] : p_id;
+
+                for (var i=0; i<a.length; i=i+1) {
+                    onAvailStack.push({id:         a[i], 
+                                       fn:         p_fn, 
+                                       obj:        p_obj, 
+                                       override:   p_override, 
+                                       checkReady: checkContent });
+                }
+                retryCount = this.POLL_RETRYS;
+                this.startInterval();
+            },
+
+            /**
+             * Works the same way as onAvailable, but additionally checks the
+             * state of sibling elements to determine if the content of the
+             * available element is safe to modify.
+             *
+             * <p>The callback is executed with a single parameter:
+             * the custom object parameter, if provided.</p>
+             *
+             * @method onContentReady
+             *
+             * @param {string}   p_id the id of the element to look for.
+             * @param {function} p_fn what to execute when the element is ready.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_override If set to true, p_fn will execute
+             *                   in the scope of p_obj.  If an object, p_fn will
+             *                   exectute in the scope of that object
+             *
+             * @static
+             */
+            onContentReady: function(p_id, p_fn, p_obj, p_override) {
+                this.onAvailable(p_id, p_fn, p_obj, p_override, true);
+            },
+
+            /**
+             * Executes the supplied callback when the DOM is first usable.  This
+             * will execute immediately if called after the DOMReady event has
+             * fired.   @todo the DOMContentReady event does not fire when the
+             * script is dynamically injected into the page.  This means the
+             * DOMReady custom event will never fire in FireFox or Opera when the
+             * library is injected.  It _will_ fire in Safari, and the IE 
+             * implementation would allow for us to fire it if the defered script
+             * is not available.  We want this to behave the same in all browsers.
+             * Is there a way to identify when the script has been injected 
+             * instead of included inline?  Is there a way to know whether the 
+             * window onload event has fired without having had a listener attached 
+             * to it when it did so?
+             *
+             * <p>The callback is a CustomEvent, so the signature is:</p>
+             * <p>type &lt;string&gt;, args &lt;array&gt;, customobject &lt;object&gt;</p>
+             * <p>For DOMReady events, there are no fire argments, so the
+             * signature is:</p>
+             * <p>"DOMReady", [], obj</p>
+             *
+             *
+             * @method onDOMReady
+             *
+             * @param {function} p_fn what to execute when the element is found.
+             * @param {object}   p_obj an optional object to be passed back as
+             *                   a parameter to p_fn.
+             * @param {boolean|object}  p_scope If set to true, p_fn will execute
+             *                   in the scope of p_obj, if set to an object it
+             *                   will execute in the scope of that object
+             *
+             * @static
+             */
+            onDOMReady: function(p_fn, p_obj, p_override) {
+                if (this.DOMReady) {
+                    setTimeout(function() {
+                        var s = window;
+                        if (p_override) {
+                            if (p_override === true) {
+                                s = p_obj;
+                            } else {
+                                s = p_override;
+                            }
+                        }
+                        p_fn.call(s, "DOMReady", [], p_obj);
+                    }, 0);
+                } else {
+                    this.DOMReadyEvent.subscribe(p_fn, p_obj, p_override);
+                }
+            },
+
+            /**
+             * Appends an event handler
+             *
+             * @method addListener
+             *
+             * @param {String|HTMLElement|Array|NodeList} el An id, an element 
+             *  reference, or a collection of ids and/or elements to assign the 
+             *  listener to.
+             * @param {String}   sType     The type of event to append
+             * @param {Function} fn        The method the event invokes
+             * @param {Object}   obj    An arbitrary object that will be 
+             *                             passed as a parameter to the handler
+             * @param {Boolean|object}  override  If true, the obj passed in becomes
+             *                             the execution scope of the listener. If an
+             *                             object, this object becomes the execution
+             *                             scope.
+             * @return {Boolean} True if the action was successful or defered,
+             *                        false if one or more of the elements 
+             *                        could not have the listener attached,
+             *                        or if the operation throws an exception.
+             * @static
+             */
+            addListener: function(el, sType, fn, obj, override) {
+
+                if (!fn || !fn.call) {
+// throw new TypeError(sType + " addListener call failed, callback undefined");
+                    return false;
+                }
+
+                // The el argument can be an array of elements or element ids.
+                if ( this._isValidCollection(el)) {
+                    var ok = true;
+                    for (var i=0,len=el.length; i<len; ++i) {
+                        ok = this.on(el[i], 
+                                       sType, 
+                                       fn, 
+                                       obj, 
+                                       override) && ok;
+                    }
+                    return ok;
+
+                } else if (YAHOO.lang.isString(el)) {
+                    var oEl = this.getEl(el);
+                    // If the el argument is a string, we assume it is 
+                    // actually the id of the element.  If the page is loaded
+                    // we convert el to the actual element, otherwise we 
+                    // defer attaching the event until onload event fires
+
+                    // check to see if we need to delay hooking up the event 
+                    // until after the page loads.
+                    if (oEl) {
+                        el = oEl;
+                    } else {
+                        // defer adding the event until the element is available
+                        this.onAvailable(el, function() {
+                           YAHOO.util.Event.on(el, sType, fn, obj, override);
+                        });
+
+                        return true;
+                    }
+                }
+
+                // Element should be an html element or an array if we get 
+                // here.
+                if (!el) {
+                    return false;
+                }
+
+                // we need to make sure we fire registered unload events 
+                // prior to automatically unhooking them.  So we hang on to 
+                // these instead of attaching them to the window and fire the
+                // handles explicitly during our one unload event.
+                if ("unload" == sType && obj !== this) {
+                    unloadListeners[unloadListeners.length] =
+                            [el, sType, fn, obj, override];
+                    return true;
+                }
+
+
+                // if the user chooses to override the scope, we use the custom
+                // object passed in, otherwise the executing scope will be the
+                // HTML element that the event is registered on
+                var scope = el;
+                if (override) {
+                    if (override === true) {
+                        scope = obj;
+                    } else {
+                        scope = override;
+                    }
+                }
+
+                // wrap the function so we can return the obj object when
+                // the event fires;
+                var wrappedFn = function(e) {
+                        return fn.call(scope, YAHOO.util.Event.getEvent(e, el), 
+                                obj);
+                    };
+
+                var li = [el, sType, fn, wrappedFn, scope, obj, override];
+                var index = listeners.length;
+                // cache the listener so we can try to automatically unload
+                listeners[index] = li;
+
+                if (this.useLegacyEvent(el, sType)) {
+                    var legacyIndex = this.getLegacyIndex(el, sType);
+
+                    // Add a new dom0 wrapper if one is not detected for this
+                    // element
+                    if ( legacyIndex == -1 || 
+                                el != legacyEvents[legacyIndex][0] ) {
+
+                        legacyIndex = legacyEvents.length;
+                        legacyMap[el.id + sType] = legacyIndex;
+
+                        // cache the signature for the DOM0 event, and 
+                        // include the existing handler for the event, if any
+                        legacyEvents[legacyIndex] = 
+                            [el, sType, el["on" + sType]];
+                        legacyHandlers[legacyIndex] = [];
+
+                        el["on" + sType] = 
+                            function(e) {
+                                YAHOO.util.Event.fireLegacyEvent(
+                                    YAHOO.util.Event.getEvent(e), legacyIndex);
+                            };
+                    }
+
+                    // add a reference to the wrapped listener to our custom
+                    // stack of events
+                    //legacyHandlers[legacyIndex].push(index);
+                    legacyHandlers[legacyIndex].push(li);
+
+                } else {
+                    try {
+                        this._simpleAdd(el, sType, wrappedFn, false);
+                    } catch(ex) {
+                        // handle an error trying to attach an event.  If it fails
+                        // we need to clean up the cache
+                        this.lastError = ex;
+                        this.removeListener(el, sType, fn);
+                        return false;
+                    }
+                }
+
+                return true;
+                
+            },
+
+            /**
+             * When using legacy events, the handler is routed to this object
+             * so we can fire our custom listener stack.
+             * @method fireLegacyEvent
+             * @static
+             * @private
+             */
+            fireLegacyEvent: function(e, legacyIndex) {
+                var ok=true,le,lh,li,scope,ret;
+                
+                lh = legacyHandlers[legacyIndex];
+                for (var i=0,len=lh.length; i<len; ++i) {
+                    li = lh[i];
+                    if ( li && li[this.WFN] ) {
+                        scope = li[this.ADJ_SCOPE];
+                        ret = li[this.WFN].call(scope, e);
+                        ok = (ok && ret);
+                    }
+                }
+
+                // Fire the original handler if we replaced one.  We fire this
+                // after the other events to keep stopPropagation/preventDefault
+                // that happened in the DOM0 handler from touching our DOM2
+                // substitute
+                le = legacyEvents[legacyIndex];
+                if (le && le[2]) {
+                    le[2](e);
+                }
+                
+                return ok;
+            },
+
+            /**
+             * Returns the legacy event index that matches the supplied 
+             * signature
+             * @method getLegacyIndex
+             * @static
+             * @private
+             */
+            getLegacyIndex: function(el, sType) {
+                var key = this.generateId(el) + sType;
+                if (typeof legacyMap[key] == "undefined") { 
+                    return -1;
+                } else {
+                    return legacyMap[key];
+                }
+            },
+
+            /**
+             * Logic that determines when we should automatically use legacy
+             * events instead of DOM2 events.  Currently this is limited to old
+             * Safari browsers with a broken preventDefault
+             * @method useLegacyEvent
+             * @static
+             * @private
+             */
+            useLegacyEvent: function(el, sType) {
+                if (this.webkit && ("click"==sType || "dblclick"==sType)) {
+                    var v = parseInt(this.webkit, 10);
+                    if (!isNaN(v) && v<418) {
+                        return true;
+                    }
+                }
+                return false;
+            },
+                    
+            /**
+             * Removes an event listener
+             *
+             * @method removeListener
+             *
+             * @param {String|HTMLElement|Array|NodeList} el An id, an element 
+             *  reference, or a collection of ids and/or elements to remove
+             *  the listener from.
+             * @param {String} sType the type of event to remove.
+             * @param {Function} fn the method the event invokes.  If fn is
+             *  undefined, then all event handlers for the type of event are 
+             *  removed.
+             * @return {boolean} true if the unbind was successful, false 
+             *  otherwise.
+             * @static
+             */
+            removeListener: function(el, sType, fn) {
+                var i, len, li;
+
+                // The el argument can be a string
+                if (typeof el == "string") {
+                    el = this.getEl(el);
+                // The el argument can be an array of elements or element ids.
+                } else if ( this._isValidCollection(el)) {
+                    var ok = true;
+                    for (i=0,len=el.length; i<len; ++i) {
+                        ok = ( this.removeListener(el[i], sType, fn) && ok );
+                    }
+                    return ok;
+                }
+
+                if (!fn || !fn.call) {
+                    //return false;
+                    return this.purgeElement(el, false, sType);
+                }
+
+                if ("unload" == sType) {
+
+                    for (i=0, len=unloadListeners.length; i<len; i++) {
+                        li = unloadListeners[i];
+                        if (li && 
+                            li[0] == el && 
+                            li[1] == sType && 
+                            li[2] == fn) {
+                                //unloadListeners.splice(i, 1);
+                                unloadListeners[i]=null;
+                                return true;
+                        }
+                    }
+
+                    return false;
+                }
+
+                var cacheItem = null;
+
+                // The index is a hidden parameter; needed to remove it from
+                // the method signature because it was tempting users to
+                // try and take advantage of it, which is not possible.
+                var index = arguments[3];
+  
+                if ("undefined" === typeof index) {
+                    index = this._getCacheIndex(el, sType, fn);
+                }
+
+                if (index >= 0) {
+                    cacheItem = listeners[index];
+                }
+
+                if (!el || !cacheItem) {
+                    return false;
+                }
+
+
+                if (this.useLegacyEvent(el, sType)) {
+                    var legacyIndex = this.getLegacyIndex(el, sType);
+                    var llist = legacyHandlers[legacyIndex];
+                    if (llist) {
+                        for (i=0, len=llist.length; i<len; ++i) {
+                            li = llist[i];
+                            if (li && 
+                                li[this.EL] == el && 
+                                li[this.TYPE] == sType && 
+                                li[this.FN] == fn) {
+                                    //llist.splice(i, 1);
+                                    llist[i]=null;
+                                    break;
+                            }
+                        }
+                    }
+
+                } else {
+                    try {
+                        this._simpleRemove(el, sType, cacheItem[this.WFN], false);
+                    } catch(ex) {
+                        this.lastError = ex;
+                        return false;
+                    }
+                }
+
+                // removed the wrapped handler
+                delete listeners[index][this.WFN];
+                delete listeners[index][this.FN];
+                //listeners.splice(index, 1);
+                listeners[index]=null;
+
+                return true;
+
+            },
+
+            /**
+             * Returns the event's target element.  Safari sometimes provides
+             * a text node, and this is automatically resolved to the text
+             * node's parent so that it behaves like other browsers.
+             * @method getTarget
+             * @param {Event} ev the event
+             * @param {boolean} resolveTextNode when set to true the target's
+             *                  parent will be returned if the target is a 
+             *                  text node.  @deprecated, the text node is
+             *                  now resolved automatically
+             * @return {HTMLElement} the event's target
+             * @static
+             */
+            getTarget: function(ev, resolveTextNode) {
+                var t = ev.target || ev.srcElement;
+                return this.resolveTextNode(t);
+            },
+
+            /**
+             * In some cases, some browsers will return a text node inside
+             * the actual element that was targeted.  This normalizes the
+             * return value for getTarget and getRelatedTarget.
+             * @method resolveTextNode
+             * @param {HTMLElement} node node to resolve
+             * @return {HTMLElement} the normized node
+             * @static
+             */
+            resolveTextNode: function(node) {
+                if (node && 3 == node.nodeType) {
+                    return node.parentNode;
+                } else {
+                    return node;
+                }
+            },
+
+            /**
+             * Returns the event's pageX
+             * @method getPageX
+             * @param {Event} ev the event
+             * @return {int} the event's pageX
+             * @static
+             */
+            getPageX: function(ev) {
+                var x = ev.pageX;
+                if (!x && 0 !== x) {
+                    x = ev.clientX || 0;
+
+                    if ( this.isIE ) {
+                        x += this._getScrollLeft();
+                    }
+                }
+
+                return x;
+            },
+
+            /**
+             * Returns the event's pageY
+             * @method getPageY
+             * @param {Event} ev the event
+             * @return {int} the event's pageY
+             * @static
+             */
+            getPageY: function(ev) {
+                var y = ev.pageY;
+                if (!y && 0 !== y) {
+                    y = ev.clientY || 0;
+
+                    if ( this.isIE ) {
+                        y += this._getScrollTop();
+                    }
+                }
+
+
+                return y;
+            },
+
+            /**
+             * Returns the pageX and pageY properties as an indexed array.
+             * @method getXY
+             * @param {Event} ev the event
+             * @return {[x, y]} the pageX and pageY properties of the event
+             * @static
+             */
+            getXY: function(ev) {
+                return [this.getPageX(ev), this.getPageY(ev)];
+            },
+
+            /**
+             * Returns the event's related target 
+             * @method getRelatedTarget
+             * @param {Event} ev the event
+             * @return {HTMLElement} the event's relatedTarget
+             * @static
+             */
+            getRelatedTarget: function(ev) {
+                var t = ev.relatedTarget;
+                if (!t) {
+                    if (ev.type == "mouseout") {
+                        t = ev.toElement;
+                    } else if (ev.type == "mouseover") {
+                        t = ev.fromElement;
+                    }
+                }
+
+                return this.resolveTextNode(t);
+            },
+
+            /**
+             * Returns the time of the event.  If the time is not included, the
+             * event is modified using the current time.
+             * @method getTime
+             * @param {Event} ev the event
+             * @return {Date} the time of the event
+             * @static
+             */
+            getTime: function(ev) {
+                if (!ev.time) {
+                    var t = new Date().getTime();
+                    try {
+                        ev.time = t;
+                    } catch(ex) { 
+                        this.lastError = ex;
+                        return t;
+                    }
+                }
+
+                return ev.time;
+            },
+
+            /**
+             * Convenience method for stopPropagation + preventDefault
+             * @method stopEvent
+             * @param {Event} ev the event
+             * @static
+             */
+            stopEvent: function(ev) {
+                this.stopPropagation(ev);
+                this.preventDefault(ev);
+            },
+
+            /**
+             * Stops event propagation
+             * @method stopPropagation
+             * @param {Event} ev the event
+             * @static
+             */
+            stopPropagation: function(ev) {
+                if (ev.stopPropagation) {
+                    ev.stopPropagation();
+                } else {
+                    ev.cancelBubble = true;
+                }
+            },
+
+            /**
+             * Prevents the default behavior of the event
+             * @method preventDefault
+             * @param {Event} ev the event
+             * @static
+             */
+            preventDefault: function(ev) {
+                if (ev.preventDefault) {
+                    ev.preventDefault();
+                } else {
+                    ev.returnValue = false;
+                }
+            },
+             
+            /**
+             * Finds the event in the window object, the caller's arguments, or
+             * in the arguments of another method in the callstack.  This is
+             * executed automatically for events registered through the event
+             * manager, so the implementer should not normally need to execute
+             * this function at all.
+             * @method getEvent
+             * @param {Event} e the event parameter from the handler
+             * @param {HTMLElement} boundEl the element the listener is attached to
+             * @return {Event} the event 
+             * @static
+             */
+            getEvent: function(e, boundEl) {
+                var ev = e || window.event;
+
+                if (!ev) {
+                    var c = this.getEvent.caller;
+                    while (c) {
+                        ev = c.arguments[0];
+                        if (ev && Event == ev.constructor) {
+                            break;
+                        }
+                        c = c.caller;
+                    }
+                }
+
+                // IE events that target non-browser objects (e.g., VML
+                // canvas) will sometimes throw errors when you try to
+                // inspect the properties of the event target.  We try to
+                // detect this condition, and provide a dummy target (the bound
+                // element) to eliminate spurious errors.  
+
+                // the implementation caused unexpected results in some 
+                // implementations, so this has been rolled back for now
+                /* 
+                if (ev && this.isIE) {
+
+                    try {
+
+                        var el = ev.srcElement;
+
+                    } catch(ex) {
+
+                         
+                        ev.target = boundEl;
+                    }
+
+                }
+                */
+
+                return ev;
+            },
+
+            /**
+             * Returns the charcode for an event
+             * @method getCharCode
+             * @param {Event} ev the event
+             * @return {int} the event's charCode
+             * @static
+             */
+            getCharCode: function(ev) {
+                var code = ev.keyCode || ev.charCode || 0;
+
+                // webkit normalization
+                if (YAHOO.env.ua.webkit && (code in webkitKeymap)) {
+                    code = webkitKeymap[code];
+                }
+                return code;
+            },
+
+            /**
+             * Locating the saved event handler data by function ref
+             *
+             * @method _getCacheIndex
+             * @static
+             * @private
+             */
+            _getCacheIndex: function(el, sType, fn) {
+                for (var i=0,len=listeners.length; i<len; ++i) {
+                    var li = listeners[i];
+                    if ( li                 && 
+                         li[this.FN] == fn  && 
+                         li[this.EL] == el  && 
+                         li[this.TYPE] == sType ) {
+                        return i;
+                    }
+                }
+
+                return -1;
+            },
+
+            /**
+             * Generates an unique ID for the element if it does not already 
+             * have one.
+             * @method generateId
+             * @param el the element to create the id for
+             * @return {string} the resulting id of the element
+             * @static
+             */
+            generateId: function(el) {
+                var id = el.id;
+
+                if (!id) {
+                    id = "yuievtautoid-" + counter;
+                    ++counter;
+                    el.id = id;
+                }
+
+                return id;
+            },
+
+
+            /**
+             * We want to be able to use getElementsByTagName as a collection
+             * to attach a group of events to.  Unfortunately, different 
+             * browsers return different types of collections.  This function
+             * tests to determine if the object is array-like.  It will also 
+             * fail if the object is an array, but is empty.
+             * @method _isValidCollection
+             * @param o the object to test
+             * @return {boolean} true if the object is array-like and populated
+             * @static
+             * @private
+             */
+            _isValidCollection: function(o) {
+                try {
+                    return ( o                     && // o is something
+                             typeof o !== "string" && // o is not a string
+                             o.length              && // o is indexed
+                             !o.tagName            && // o is not an HTML element
+                             !o.alert              && // o is not a window
+                             typeof o[0] !== "undefined" );
+                } catch(ex) {
+                    return false;
+                }
+
+            },
+
+            /**
+             * @private
+             * @property elCache
+             * DOM element cache
+             * @static
+             * @deprecated Elements are not cached due to issues that arise when
+             * elements are removed and re-added
+             */
+            elCache: {},
+
+            /**
+             * We cache elements bound by id because when the unload event 
+             * fires, we can no longer use document.getElementById
+             * @method getEl
+             * @static
+             * @private
+             * @deprecated Elements are not cached any longer
+             */
+            getEl: function(id) {
+                return (typeof id === "string") ? document.getElementById(id) : id;
+            },
+
+            /**
+             * Clears the element cache
+             * @deprecated Elements are not cached any longer
+             * @method clearCache
+             * @static
+             * @private
+             */
+            clearCache: function() { },
+
+            /**
+             * Custom event the fires when the dom is initially usable
+             * @event DOMReadyEvent
+             */
+            DOMReadyEvent: new YAHOO.util.CustomEvent("DOMReady", this),
+
+            /**
+             * hook up any deferred listeners
+             * @method _load
+             * @static
+             * @private
+             */
+            _load: function(e) {
+
+                if (!loadComplete) {
+                    loadComplete = true;
+                    var EU = YAHOO.util.Event;
+
+                    // Just in case DOMReady did not go off for some reason
+                    EU._ready();
+
+                    // Available elements may not have been detected before the
+                    // window load event fires. Try to find them now so that the
+                    // the user is more likely to get the onAvailable notifications
+                    // before the window load notification
+                    EU._tryPreloadAttach();
+
+                    // Remove the listener to assist with the IE memory issue, but not
+                    // for other browsers because FF 1.0x does not like it.
+                    //if (this.isIE) {
+                        //EU._simpleRemove(window, "load", EU._load);
+                    //}
+                }
+            },
+
+            /**
+             * Fires the DOMReady event listeners the first time the document is
+             * usable.
+             * @method _ready
+             * @static
+             * @private
+             */
+            _ready: function(e) {
+                var EU = YAHOO.util.Event;
+                if (!EU.DOMReady) {
+                    EU.DOMReady=true;
+
+                    // Fire the content ready custom event
+                    EU.DOMReadyEvent.fire();
+
+                    // Remove the DOMContentLoaded (FF/Opera)
+                    EU._simpleRemove(document, "DOMContentLoaded", EU._ready);
+                }
+            },
+
+            /**
+             * Polling function that runs before the onload event fires, 
+             * attempting to attach to DOM Nodes as soon as they are 
+             * available
+             * @method _tryPreloadAttach
+             * @static
+             * @private
+             */
+            _tryPreloadAttach: function() {
+
+                if (this.locked) {
+                    return false;
+                }
+
+                if (this.isIE) {
+                    // Hold off if DOMReady has not fired and check current
+                    // readyState to protect against the IE operation aborted
+                    // issue.
+                    //if (!this.DOMReady || "complete" !== document.readyState) {
+                    if (!this.DOMReady) {
+                        this.startInterval();
+                        return false;
+                    }
+                }
+
+                this.locked = true;
+
+
+                // keep trying until after the page is loaded.  We need to 
+                // check the page load state prior to trying to bind the 
+                // elements so that we can be certain all elements have been 
+                // tested appropriately
+                var tryAgain = !loadComplete;
+                if (!tryAgain) {
+                    tryAgain = (retryCount > 0);
+                }
+
+                // onAvailable
+                var notAvail = [];
+
+                var executeItem = function (el, item) {
+                    var scope = el;
+                    if (item.override) {
+                        if (item.override === true) {
+                            scope = item.obj;
+                        } else {
+                            scope = item.override;
+                        }
+                    }
+                    item.fn.call(scope, item.obj);
+                };
+
+                var i,len,item,el;
+
+                // onAvailable
+                for (i=0,len=onAvailStack.length; i<len; ++i) {
+                    item = onAvailStack[i];
+                    if (item && !item.checkReady) {
+                        el = this.getEl(item.id);
+                        if (el) {
+                            executeItem(el, item);
+                            onAvailStack[i] = null;
+                        } else {
+                            notAvail.push(item);
+                        }
+                    }
+                }
+
+                // onContentReady
+                for (i=0,len=onAvailStack.length; i<len; ++i) {
+                    item = onAvailStack[i];
+                    if (item && item.checkReady) {
+                        el = this.getEl(item.id);
+
+                        if (el) {
+                            // The element is available, but not necessarily ready
+                            // @todo should we test parentNode.nextSibling?
+                            if (loadComplete || el.nextSibling) {
+                                executeItem(el, item);
+                                onAvailStack[i] = null;
+                            }
+                        } else {
+                            notAvail.push(item);
+                        }
+                    }
+                }
+
+                retryCount = (notAvail.length === 0) ? 0 : retryCount - 1;
+
+                if (tryAgain) {
+                    // we may need to strip the nulled out items here
+                    this.startInterval();
+                } else {
+                    clearInterval(this._interval);
+                    this._interval = null;
+                }
+
+                this.locked = false;
+
+                return true;
+
+            },
+
+            /**
+             * Removes all listeners attached to the given element via addListener.
+             * Optionally, the node's children can also be purged.
+             * Optionally, you can specify a specific type of event to remove.
+             * @method purgeElement
+             * @param {HTMLElement} el the element to purge
+             * @param {boolean} recurse recursively purge this element's children
+             * as well.  Use with caution.
+             * @param {string} sType optional type of listener to purge. If
+             * left out, all listeners will be removed
+             * @static
+             */
+            purgeElement: function(el, recurse, sType) {
+                var oEl = (YAHOO.lang.isString(el)) ? this.getEl(el) : el;
+                var elListeners = this.getListeners(oEl, sType), i, len;
+                if (elListeners) {
+                    for (i=0,len=elListeners.length; i<len ; ++i) {
+                        var l = elListeners[i];
+                        // can't use the index on the changing collection
+                        this.removeListener(oEl, l.type, l.fn, l.index);
+                        //this.removeListener(oEl, l.type, l.fn);
+                    }
+                }
+
+                if (recurse && oEl && oEl.childNodes) {
+                    for (i=0,len=oEl.childNodes.length; i<len ; ++i) {
+                        this.purgeElement(oEl.childNodes[i], recurse, sType);
+                    }
+                }
+            },
+
+            /**
+             * Returns all listeners attached to the given element via addListener.
+             * Optionally, you can specify a specific type of event to return.
+             * @method getListeners
+             * @param el {HTMLElement|string} the element or element id to inspect 
+             * @param sType {string} optional type of listener to return. If
+             * left out, all listeners will be returned
+             * @return {Object} the listener. Contains the following fields:
+             * &nbsp;&nbsp;type:   (string)   the type of event
+             * &nbsp;&nbsp;fn:     (function) the callback supplied to addListener
+             * &nbsp;&nbsp;obj:    (object)   the custom object supplied to addListener
+             * &nbsp;&nbsp;adjust: (boolean|object)  whether or not to adjust the default scope
+             * &nbsp;&nbsp;scope: (boolean)  the derived scope based on the adjust parameter
+             * &nbsp;&nbsp;index:  (int)      its position in the Event util listener cache
+             * @static
+             */           
+            getListeners: function(el, sType) {
+                var results=[], searchLists;
+                if (!sType) {
+                    searchLists = [listeners, unloadListeners];
+                } else if (sType === "unload") {
+                    searchLists = [unloadListeners];
+                } else {
+                    searchLists = [listeners];
+                }
+
+                var oEl = (YAHOO.lang.isString(el)) ? this.getEl(el) : el;
+
+                for (var j=0;j<searchLists.length; j=j+1) {
+                    var searchList = searchLists[j];
+                    if (searchList && searchList.length > 0) {
+                        for (var i=0,len=searchList.length; i<len ; ++i) {
+                            var l = searchList[i];
+                            if ( l  && l[this.EL] === oEl && 
+                                    (!sType || sType === l[this.TYPE]) ) {
+                                results.push({
+                                    type:   l[this.TYPE],
+                                    fn:     l[this.FN],
+                                    obj:    l[this.OBJ],
+                                    adjust: l[this.OVERRIDE],
+                                    scope:  l[this.ADJ_SCOPE],
+                                    index:  i
+                                });
+                            }
+                        }
+                    }
+                }
+
+                return (results.length) ? results : null;
+            },
+
+            /**
+             * Removes all listeners registered by pe.event.  Called 
+             * automatically during the unload event.
+             * @method _unload
+             * @static
+             * @private
+             */
+            _unload: function(e) {
+
+                var EU = YAHOO.util.Event, i, j, l, len, index;
+
+                // execute and clear stored unload listeners
+                for (i=0,len=unloadListeners.length; i<len; ++i) {
+                    l = unloadListeners[i];
+                    if (l) {
+                        var scope = window;
+                        if (l[EU.ADJ_SCOPE]) {
+                            if (l[EU.ADJ_SCOPE] === true) {
+                                scope = l[EU.UNLOAD_OBJ];
+                            } else {
+                                scope = l[EU.ADJ_SCOPE];
+                            }
+                        }
+                        l[EU.FN].call(scope, EU.getEvent(e, l[EU.EL]), l[EU.UNLOAD_OBJ] );
+                        unloadListeners[i] = null;
+                        l=null;
+                        scope=null;
+                    }
+                }
+
+                unloadListeners = null;
+
+                // call clearAttributes or remove listeners to handle IE memory leaks
+                if (YAHOO.env.ua.ie && listeners && listeners.length > 0) {
+                    j = listeners.length;
+                    while (j) {
+                        index = j-1;
+                        l = listeners[index];
+                        if (l) {
+                            //try {
+                                //l[EU.EL].clearAttributes(); // errors on window objects
+                            //} catch(ex) {
+                            EU.removeListener(l[EU.EL], l[EU.TYPE], l[EU.FN], index);
+                            //}
+                        } 
+                        j--;
+                    }
+                    l=null;
+                }
+
+                /*
+                // remove all listeners
+                if (listeners && listeners.length > 0) {
+                    j = listeners.length;
+                    while (j) {
+                        index = j-1;
+                        l = listeners[index];
+                        if (l) {
+                            EU.removeListener(l[EU.EL], l[EU.TYPE], l[EU.FN], index);
+                        } 
+                        j = j - 1;
+                    }
+                    l=null;
+                }
+                */
+
+                /*
+                // kill legacy events
+                for (i=0,len=legacyEvents.length; i<len; ++i) {
+                    // dereference the element
+                    //delete legacyEvents[i][0];
+                    legacyEvents[i][0] = null;
+
+                    // delete the array item
+                    //delete legacyEvents[i];
+                    legacyEvents[i] = null;
+                }
+
+                */
+
+                legacyEvents = null;
+
+                EU._simpleRemove(window, "unload", EU._unload);
+
+            },
+
+            /**
+             * Returns scrollLeft
+             * @method _getScrollLeft
+             * @static
+             * @private
+             */
+            _getScrollLeft: function() {
+                return this._getScroll()[1];
+            },
+
+            /**
+             * Returns scrollTop
+             * @method _getScrollTop
+             * @static
+             * @private
+             */
+            _getScrollTop: function() {
+                return this._getScroll()[0];
+            },
+
+            /**
+             * Returns the scrollTop and scrollLeft.  Used to calculate the 
+             * pageX and pageY in Internet Explorer
+             * @method _getScroll
+             * @static
+             * @private
+             */
+            _getScroll: function() {
+                var dd = document.documentElement, db = document.body;
+                if (dd && (dd.scrollTop || dd.scrollLeft)) {
+                    return [dd.scrollTop, dd.scrollLeft];
+                } else if (db) {
+                    return [db.scrollTop, db.scrollLeft];
+                } else {
+                    return [0, 0];
+                }
+            },
+            
+            /**
+             * Used by old versions of CustomEvent, restored for backwards
+             * compatibility
+             * @method regCE
+             * @private
+             * @static
+             * @deprecated still here for backwards compatibility
+             */
+            regCE: function() {
+                // does nothing
+            },
+
+/*
+            testIEReady: function (){
+                var n = document.createElement('p'), ready = false;
+                try {
+                    // throws an error until the doc is ready
+                    n.doScroll('left'); 
+                    ready = true;
+                } catch(ex){ 
+                    // document is not ready
+                }
+
+                n = null;
+                return ready;
+            },
+*/
+
+            /**
+             * Adds a DOM event directly without the caching, cleanup, scope adj, etc
+             *
+             * @method _simpleAdd
+             * @param {HTMLElement} el      the element to bind the handler to
+             * @param {string}      sType   the type of event handler
+             * @param {function}    fn      the callback to invoke
+             * @param {boolen}      capture capture or bubble phase
+             * @static
+             * @private
+             */
+            _simpleAdd: function () {
+                if (window.addEventListener) {
+                    return function(el, sType, fn, capture) {
+                        el.addEventListener(sType, fn, (capture));
+                    };
+                } else if (window.attachEvent) {
+                    return function(el, sType, fn, capture) {
+                        el.attachEvent("on" + sType, fn);
+                    };
+                } else {
+                    return function(){};
+                }
+            }(),
+
+            /**
+             * Basic remove listener
+             *
+             * @method _simpleRemove
+             * @param {HTMLElement} el      the element to bind the handler to
+             * @param {string}      sType   the type of event handler
+             * @param {function}    fn      the callback to invoke
+             * @param {boolen}      capture capture or bubble phase
+             * @static
+             * @private
+             */
+            _simpleRemove: function() {
+                if (window.removeEventListener) {
+                    return function (el, sType, fn, capture) {
+                        el.removeEventListener(sType, fn, (capture));
+                    };
+                } else if (window.detachEvent) {
+                    return function (el, sType, fn) {
+                        el.detachEvent("on" + sType, fn);
+                    };
+                } else {
+                    return function(){};
+                }
+            }()
+        };
+
+    }();
+
+    (function() {
+        var EU = YAHOO.util.Event;
+
+        /**
+         * YAHOO.util.Event.on is an alias for addListener
+         * @method on
+         * @see addListener
+         * @static
+         */
+        EU.on = EU.addListener;
+
+        /////////////////////////////////////////////////////////////
+        // DOMReady
+        // based on work by: Dean Edwards/John Resig/Matthias Miller 
+
+        // Internet Explorer: use the readyState of a defered script.
+        // This isolates what appears to be a safe moment to manipulate
+        // the DOM prior to when the document's readyState suggests
+        // it is safe to do so.
+        if (EU.isIE) {
+
+            // Process onAvailable/onContentReady items when when the 
+            // DOM is ready.
+            YAHOO.util.Event.onDOMReady(
+                    YAHOO.util.Event._tryPreloadAttach,
+                    YAHOO.util.Event, true);
+
+            /*
+
+
+            var el, d=document, b=d.body;
+
+            // If the library is being injected after window.onload, it
+            // is not safe to document.write the script tag.  Detecting
+            // this state doesn't appear possible, so we expect a flag
+            // in YAHOO_config to be set if the library is being injected.
+            if (("undefined" !== typeof YAHOO_config) && YAHOO_config.injecting) {
+
+                el = document.createElement("script");
+                var p=d.getElementsByTagName("head")[0] || b;
+                p.insertBefore(el, p.firstChild);
+
+            } else {
+    d.write('<scr'+'ipt id="_yui_eu_dr" defer="true" src="//:"><'+'/script>');
+                el=document.getElementById("_yui_eu_dr");
+            }
+            
+
+            if (el) {
+                el.onreadystatechange = function() {
+                    if ("complete" === this.readyState) {
+                        this.parentNode.removeChild(this);
+                        YAHOO.util.Event._ready();
+                    }
+                };
+            } else {
+                // The library was likely injected into the page
+                // rendering onDOMReady unreliable
+                // YAHOO.util.Event._ready();
+            }
+
+            el=null;
+
+            */
+
+/*
+            (function (){
+                var n = document.createElement('p');  
+                try {
+                    // throws an error if doc is not ready
+                    n.doScroll('left');
+                    n = null;
+                    YAHOO.util.Event._ready();
+                } catch (ex){
+                    n = null;
+setTimeout(arguments.callee, YAHOO.util.Event.POLL_INTERVAL);
+                }
+            })();
+*/
+
+            EU._dri = setInterval(function() {
+                var n = document.createElement('p');  
+                try {
+                    // throws an error if doc is not ready
+                    n.doScroll('left');
+                    clearInterval(EU._dri);
+                    EU._dri = null;
+                    EU._ready();
+                    n = null;
+                } catch (ex) { 
+                    n = null;
+                }
+            }, EU.POLL_INTERVAL); 
+
+        
+        // Safari: The document's readyState in Safari currently will
+        // change to loaded/complete before images are loaded.
+        //} else if (EU.webkit) {
+        } else if (EU.webkit) {
+
+            EU._dri = setInterval(function() {
+                var rs=document.readyState;
+                if ("loaded" == rs || "complete" == rs) {
+                    clearInterval(EU._dri);
+                    EU._dri = null;
+                    EU._ready();
+                }
+            }, EU.POLL_INTERVAL); 
+
+        // FireFox and Opera: These browsers provide a event for this
+        // moment.
+        } else {
+
+            // @todo will this fire when the library is injected?
+
+            EU._simpleAdd(document, "DOMContentLoaded", EU._ready);
+
+        }
+        /////////////////////////////////////////////////////////////
+
+
+        EU._simpleAdd(window, "load", EU._load);
+        EU._simpleAdd(window, "unload", EU._unload);
+        EU._tryPreloadAttach();
+    })();
+
+}
+/**
+ * EventProvider is designed to be used with YAHOO.augment to wrap 
+ * CustomEvents in an interface that allows events to be subscribed to 
+ * and fired by name.  This makes it possible for implementing code to
+ * subscribe to an event that either has not been created yet, or will
+ * not be created at all.
+ *
+ * @Class EventProvider
+ */
+YAHOO.util.EventProvider = function() { };
+
+YAHOO.util.EventProvider.prototype = {
+
+    /**
+     * Private storage of custom events
+     * @property __yui_events
+     * @type Object[]
+     * @private
+     */
+    __yui_events: null,
+
+    /**
+     * Private storage of custom event subscribers
+     * @property __yui_subscribers
+     * @type Object[]
+     * @private
+     */
+    __yui_subscribers: null,
+    
+    /**
+     * Subscribe to a CustomEvent by event type
+     *
+     * @method subscribe
+     * @param p_type     {string}   the type, or name of the event
+     * @param p_fn       {function} the function to exectute when the event fires
+     * @param p_obj      {Object}   An object to be passed along when the event 
+     *                              fires
+     * @param p_override {boolean}  If true, the obj passed in becomes the 
+     *                              execution scope of the listener
+     */
+    subscribe: function(p_type, p_fn, p_obj, p_override) {
+
+        this.__yui_events = this.__yui_events || {};
+        var ce = this.__yui_events[p_type];
+
+        if (ce) {
+            ce.subscribe(p_fn, p_obj, p_override);
+        } else {
+            this.__yui_subscribers = this.__yui_subscribers || {};
+            var subs = this.__yui_subscribers;
+            if (!subs[p_type]) {
+                subs[p_type] = [];
+            }
+            subs[p_type].push(
+                { fn: p_fn, obj: p_obj, override: p_override } );
+        }
+    },
+
+    /**
+     * Unsubscribes one or more listeners the from the specified event
+     * @method unsubscribe
+     * @param p_type {string}   The type, or name of the event.  If the type
+     *                          is not specified, it will attempt to remove
+     *                          the listener from all hosted events.
+     * @param p_fn   {Function} The subscribed function to unsubscribe, if not
+     *                          supplied, all subscribers will be removed.
+     * @param p_obj  {Object}   The custom object passed to subscribe.  This is
+     *                        optional, but if supplied will be used to
+     *                        disambiguate multiple listeners that are the same
+     *                        (e.g., you subscribe many object using a function
+     *                        that lives on the prototype)
+     * @return {boolean} true if the subscriber was found and detached.
+     */
+    unsubscribe: function(p_type, p_fn, p_obj) {
+        this.__yui_events = this.__yui_events || {};
+        var evts = this.__yui_events;
+        if (p_type) {
+            var ce = evts[p_type];
+            if (ce) {
+                return ce.unsubscribe(p_fn, p_obj);
+            }
+        } else {
+            var ret = true;
+            for (var i in evts) {
+                if (YAHOO.lang.hasOwnProperty(evts, i)) {
+                    ret = ret && evts[i].unsubscribe(p_fn, p_obj);
+                }
+            }
+            return ret;
+        }
+
+        return false;
+    },
+    
+    /**
+     * Removes all listeners from the specified event.  If the event type
+     * is not specified, all listeners from all hosted custom events will
+     * be removed.
+     * @method unsubscribeAll
+     * @param p_type {string}   The type, or name of the event
+     */
+    unsubscribeAll: function(p_type) {
+        return this.unsubscribe(p_type);
+    },
+
+    /**
+     * Creates a new custom event of the specified type.  If a custom event
+     * by that name already exists, it will not be re-created.  In either
+     * case the custom event is returned. 
+     *
+     * @method createEvent
+     *
+     * @param p_type {string} the type, or name of the event
+     * @param p_config {object} optional config params.  Valid properties are:
+     *
+     *  <ul>
+     *    <li>
+     *      scope: defines the default execution scope.  If not defined
+     *      the default scope will be this instance.
+     *    </li>
+     *    <li>
+     *      silent: if true, the custom event will not generate log messages.
+     *      This is false by default.
+     *    </li>
+     *    <li>
+     *      onSubscribeCallback: specifies a callback to execute when the
+     *      event has a new subscriber.  This will fire immediately for
+     *      each queued subscriber if any exist prior to the creation of
+     *      the event.
+     *    </li>
+     *  </ul>
+     *
+     *  @return {CustomEvent} the custom event
+     *
+     */
+    createEvent: function(p_type, p_config) {
+
+        this.__yui_events = this.__yui_events || {};
+        var opts = p_config || {};
+        var events = this.__yui_events;
+
+        if (events[p_type]) {
+        } else {
+
+            var scope  = opts.scope  || this;
+            var silent = (opts.silent);
+
+            var ce = new YAHOO.util.CustomEvent(p_type, scope, silent,
+                    YAHOO.util.CustomEvent.FLAT);
+            events[p_type] = ce;
+
+            if (opts.onSubscribeCallback) {
+                ce.subscribeEvent.subscribe(opts.onSubscribeCallback);
+            }
+
+            this.__yui_subscribers = this.__yui_subscribers || {};
+            var qs = this.__yui_subscribers[p_type];
+
+            if (qs) {
+                for (var i=0; i<qs.length; ++i) {
+                    ce.subscribe(qs[i].fn, qs[i].obj, qs[i].override);
+                }
+            }
+        }
+
+        return events[p_type];
+    },
+
+
+   /**
+     * Fire a custom event by name.  The callback functions will be executed
+     * from the scope specified when the event was created, and with the 
+     * following parameters:
+     *   <ul>
+     *   <li>The first argument fire() was executed with</li>
+     *   <li>The custom object (if any) that was passed into the subscribe() 
+     *       method</li>
+     *   </ul>
+     * If the custom event has not been explicitly created, it will be
+     * created now with the default config, scoped to the host object
+     * @method fireEvent
+     * @param p_type    {string}  the type, or name of the event
+     * @param arguments {Object*} an arbitrary set of parameters to pass to 
+     *                            the handler.
+     * @return {boolean} the return value from CustomEvent.fire
+     *                   
+     */
+    fireEvent: function(p_type, arg1, arg2, etc) {
+
+        this.__yui_events = this.__yui_events || {};
+        var ce = this.__yui_events[p_type];
+
+        if (!ce) {
+            return null;
+        }
+
+        var args = [];
+        for (var i=1; i<arguments.length; ++i) {
+            args.push(arguments[i]);
+        }
+        return ce.fire.apply(ce, args);
+    },
+
+    /**
+     * Returns true if the custom event of the provided type has been created
+     * with createEvent.
+     * @method hasEvent
+     * @param type {string} the type, or name of the event
+     */
+    hasEvent: function(type) {
+        if (this.__yui_events) {
+            if (this.__yui_events[type]) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+};
+
+/**
+* KeyListener is a utility that provides an easy interface for listening for
+* keydown/keyup events fired against DOM elements.
+* @namespace YAHOO.util
+* @class KeyListener
+* @constructor
+* @param {HTMLElement} attachTo The element or element ID to which the key 
+*                               event should be attached
+* @param {String}      attachTo The element or element ID to which the key
+*                               event should be attached
+* @param {Object}      keyData  The object literal representing the key(s) 
+*                               to detect. Possible attributes are 
+*                               shift(boolean), alt(boolean), ctrl(boolean) 
+*                               and keys(either an int or an array of ints 
+*                               representing keycodes).
+* @param {Function}    handler  The CustomEvent handler to fire when the 
+*                               key event is detected
+* @param {Object}      handler  An object literal representing the handler. 
+* @param {String}      event    Optional. The event (keydown or keyup) to 
+*                               listen for. Defaults automatically to keydown.
+*
+* @knownissue the "keypress" event is completely broken in Safari 2.x and below.
+*             the workaround is use "keydown" for key listening.  However, if
+*             it is desired to prevent the default behavior of the keystroke,
+*             that can only be done on the keypress event.  This makes key
+*             handling quite ugly.
+* @knownissue keydown is also broken in Safari 2.x and below for the ESC key.
+*             There currently is no workaround other than choosing another
+*             key to listen for.
+*/
+YAHOO.util.KeyListener = function(attachTo, keyData, handler, event) {
+    if (!attachTo) {
+    } else if (!keyData) {
+    } else if (!handler) {
+    } 
+    
+    if (!event) {
+        event = YAHOO.util.KeyListener.KEYDOWN;
+    }
+
+    /**
+    * The CustomEvent fired internally when a key is pressed
+    * @event keyEvent
+    * @private
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    var keyEvent = new YAHOO.util.CustomEvent("keyPressed");
+    
+    /**
+    * The CustomEvent fired when the KeyListener is enabled via the enable() 
+    * function
+    * @event enabledEvent
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    this.enabledEvent = new YAHOO.util.CustomEvent("enabled");
+
+    /**
+    * The CustomEvent fired when the KeyListener is disabled via the 
+    * disable() function
+    * @event disabledEvent
+    * @param {Object} keyData The object literal representing the key(s) to 
+    *                         detect. Possible attributes are shift(boolean), 
+    *                         alt(boolean), ctrl(boolean) and keys(either an 
+    *                         int or an array of ints representing keycodes).
+    */
+    this.disabledEvent = new YAHOO.util.CustomEvent("disabled");
+
+    if (typeof attachTo == 'string') {
+        attachTo = document.getElementById(attachTo);
+    }
+
+    if (typeof handler == 'function') {
+        keyEvent.subscribe(handler);
+    } else {
+        keyEvent.subscribe(handler.fn, handler.scope, handler.correctScope);
+    }
+
+    /**
+    * Handles the key event when a key is pressed.
+    * @method handleKeyPress
+    * @param {DOMEvent} e   The keypress DOM event
+    * @param {Object}   obj The DOM event scope object
+    * @private
+    */
+    function handleKeyPress(e, obj) {
+        if (! keyData.shift) {  
+            keyData.shift = false; 
+        }
+        if (! keyData.alt) {    
+            keyData.alt = false;
+        }
+        if (! keyData.ctrl) {
+            keyData.ctrl = false;
+        }
+
+        // check held down modifying keys first
+        if (e.shiftKey == keyData.shift && 
+            e.altKey   == keyData.alt &&
+            e.ctrlKey  == keyData.ctrl) { // if we pass this, all modifiers match
+            
+            var dataItem;
+
+            if (keyData.keys instanceof Array) {
+                for (var i=0;i<keyData.keys.length;i++) {
+                    dataItem = keyData.keys[i];
+
+                    if (dataItem == e.charCode ) {
+                        keyEvent.fire(e.charCode, e);
+                        break;
+                    } else if (dataItem == e.keyCode) {
+                        keyEvent.fire(e.keyCode, e);
+                        break;
+                    }
+                }
+            } else {
+                dataItem = keyData.keys;
+                if (dataItem == e.charCode ) {
+                    keyEvent.fire(e.charCode, e);
+                } else if (dataItem == e.keyCode) {
+                    keyEvent.fire(e.keyCode, e);
+                }
+            }
+        }
+    }
+
+    /**
+    * Enables the KeyListener by attaching the DOM event listeners to the 
+    * target DOM element
+    * @method enable
+    */
+    this.enable = function() {
+        if (! this.enabled) {
+            YAHOO.util.Event.addListener(attachTo, event, handleKeyPress);
+            this.enabledEvent.fire(keyData);
+        }
+        /**
+        * Boolean indicating the enabled/disabled state of the Tooltip
+        * @property enabled
+        * @type Boolean
+        */
+        this.enabled = true;
+    };
+
+    /**
+    * Disables the KeyListener by removing the DOM event listeners from the 
+    * target DOM element
+    * @method disable
+    */
+    this.disable = function() {
+        if (this.enabled) {
+            YAHOO.util.Event.removeListener(attachTo, event, handleKeyPress);
+            this.disabledEvent.fire(keyData);
+        }
+        this.enabled = false;
+    };
+
+    /**
+    * Returns a String representation of the object.
+    * @method toString
+    * @return {String}  The string representation of the KeyListener
+    */ 
+    this.toString = function() {
+        return "KeyListener [" + keyData.keys + "] " + attachTo.tagName + 
+                (attachTo.id ? "[" + attachTo.id + "]" : "");
+    };
+
+};
+
+/**
+* Constant representing the DOM "keydown" event.
+* @property YAHOO.util.KeyListener.KEYDOWN
+* @static
+* @final
+* @type String
+*/
+YAHOO.util.KeyListener.KEYDOWN = "keydown";
+
+/**
+* Constant representing the DOM "keyup" event.
+* @property YAHOO.util.KeyListener.KEYUP
+* @static
+* @final
+* @type String
+*/
+YAHOO.util.KeyListener.KEYUP = "keyup";
+
+/**
+ * keycode constants for a subset of the special keys
+ * @property KEY
+ * @static
+ * @final
+ */
+YAHOO.util.KeyListener.KEY = {
+    ALT          : 18,
+    BACK_SPACE   : 8,
+    CAPS_LOCK    : 20,
+    CONTROL      : 17,
+    DELETE       : 46,
+    DOWN         : 40,
+    END          : 35,
+    ENTER        : 13,
+    ESCAPE       : 27,
+    HOME         : 36,
+    LEFT         : 37,
+    META         : 224,
+    NUM_LOCK     : 144,
+    PAGE_DOWN    : 34,
+    PAGE_UP      : 33, 
+    PAUSE        : 19,
+    PRINTSCREEN  : 44,
+    RIGHT        : 39,
+    SCROLL_LOCK  : 145,
+    SHIFT        : 16,
+    SPACE        : 32,
+    TAB          : 9,
+    UP           : 38
+};
+YAHOO.register("event", YAHOO.util.Event, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/event/event.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/event/README
===================================================================
--- tags/2.7.0/wb/include/yui/event/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/event/README	(revision 838)
@@ -0,0 +1,228 @@
+
+YUI Library - Event - Release Notes
+
+2.4.1
+  * Reverted clearAttributes() change to fix IE memory leak on iframes/windows
+
+2.4.0
+  * getListeners/purgeElement accepts either an element reference or an element id
+  * onAvailable/onContentReady accepts a single id or an array of ids
+  * No longer removing listeners during the unload event for non-IE browsers
+  * IE unload strategy for cross page memory leaks changed from removing each listener
+    to calling clearAttributes()
+  * the DOMReady property is now public
+  * Changed IE onDOMReady approach from the defered script node hack to the doScroll('left') hack
+  * getCharChode now Remaps SHIFT-TAB key code (25) to TAB (9) in Safari
+  * getCharCode provides the proper key codes for page up and page down in Safari
+  * Restored object check to _isValidCollection.
+  * In KeyListener, added keycode constants for some of the special keys.
+  * Rolled back the change added for hacking around IE errors from bubbled 
+    events that originally targeted an ActiveX control.
+
+2.3.1
+  * CustomEvent fire() now catches exceptions thrown by the subscribers so
+    that the rest of the subscribers execute.  The exception is logged and
+    stored in the "lastError" property.
+  * Performance tweak: _isValidCollection fails strings first.
+  * onAvailable/onContentReady will work if an element ref rather than an
+    id is provided.
+  * getListeners: fixed the values for the obj and adjust properties.
+    Added scope property.
+  * Added IE hack for when the event target is something that can't be
+    inspected (like a VML canvas).  In this case the target is set to
+    the element the listener is bound to.
+
+2.3.0
+  * addListener now produces a logger warning if the supplied callback is 
+    undefined.
+  * Reduced the likelihood that window onload listeners fire before
+    onAvailable listeners when the two happen near the same moment.
+  * Fixed an IE error that could occur when the library was injected into 
+    the page after window onload.
+  * The onDOMReady listener will be executed immediately if the
+    DOMReady event had already fired prior to the call.
+  * Unsubscribing custom events within a handler for the event now works 
+    properly.
+  * EventProvider unsubscribeAll will unsubscribe all listeners from
+    all hosted custom events if the type is not specified.
+  * Event.getKeyCode now checks keyCode before charCode for Safari normalization.  
+    Safari arrow key codes are normalized as well.
+  * Broke up the </script> in Event to allow it to be included inline
+
+2.2.2
+  * No change
+
+2.2.1
+  * onAvailable listeners are processed before onContentReady listeners so
+    they fire in the logical order when an element is found to be available 
+    and ready in the same pass.
+  * Added onDOMReady for receiving notification when the DOM is first usable.
+  * In Internet Explorer, onAvailable/onContentReady checks now start when
+    DOMReady fires to reduce the possibility of receiving an "operation
+    aborted" errors when inserting DOM nodes during in the onAvailable/
+    onContentReady listener execution.
+  * CustomEvent subscribers supplying undefined callbacks will be notified
+    when subscribing rather than having an ambiguous error thrown when the
+    event is fired.
+  * Fixed missing html tags in the examples.
+  * POLL_INTERVAL is 10 ms.
+  * YAHOO.util.CustomEvent is now declared before YAHOO.util.Event.
+
+2.2.0
+
+  * YAHOO.util.KeyListener was moved from the container package into event.
+  
+  * The Safari bug that made it so preventDefault would not work with click
+    and double-click listeners on anchor tags was resolved in version 2.0.4.
+    The workaround (using DOM0 events for these instead of the normal DOM2
+    events) is now only used for releases prior to 2.0.4.
+    
+  * getListeners/purgeElement now work correctly with unload listeners
+
+  * When legacyEvents are used (Safari<2.0.4 click events), if there was an
+    existing DOM0 event that the utility replaced, it is executed along with
+    the listeners that were added with the utility.
+
+  * Restored Event.regCE for compatibility with a beta release of the library
+    that in use in an external API.
+
+  * unsubscribe in CustomEvent and EventProvider will remove all listeners
+    if the listener is omitted.
+
+  * Added unsubscribeAll to EventProvider
+
+  * Added Event.lastError which stores the most recent error object if
+    a browser-specific add/remove listener call throws an exception.
+
+0.12.2
+
+  * Fixed a bug introduced in 0.12.1 release caused nested onAvailable
+    calls to fail.
+
+0.12.1
+
+  * If an error is thrown during the browser-specific add/remove lister call,
+    addListener/removeListener will catch the error and return false.
+
+  * onAvailable array items are nulled out instead of deleted when completed to
+    get around an Opera issue introduced in a recent version of the browser.
+
+0.12.0
+
+   * If the function argument is not provided to Event.removeListener, all
+     all listeners for the specified event type on the element will be removed.
+
+   * CustomEvent now has an optional parameter that defines the signature of
+     the listeners for this event.  Two signatures are supported:
+
+       YAHOO.util.CustomEvent.LIST:
+         param1: event name
+         param2: array of arguments provided to fire()
+         param3: <optional> the custom object supplied to subscribe()
+
+       YAHOO.util.CustomEvent.FLAT:
+         param1: the first argument provided to fire()
+         param2: <optional> the custom object supplied to subscribe()
+
+     The new flat signature makes it possible to provide a better API 
+     when using custom events, and it makes it possible to transparently 
+     wrap DOM events.
+   
+   * The parameters for overriding scope in both Event.addListener, and
+     CustomEvent.subscribe have been augmented.  In addition to the 
+     previous behavior where a true value would make the previous parameter
+     the execution scope, an object can be supplied instead.  If an object
+     is provided, that object becomes the scope obj.  This makes it possible 
+     to pass a both a custom object and adjust the scope to a different object.
+
+   * Added EventProvider, which is a wrapper for CustomEvent that makes it
+     possible to subscribe to events by name, whether or not the event has
+     been created.  This class was designed to be used with YAHOO.augment.
+     EventProvider custom events are created with the new FLAT listener
+     signature.
+
+   * CustomEvent subscribers can return false to stop the propagation of
+     the event.
+
+   * CustomEvents now have an onSubscribe custom event that can used to the
+     case where a subscriber subscribes to an one-time event that has already
+     happened.  Also provides a way for the implementer to defer initialization
+     logic until after the first subscription.
+
+   * Event.getCharCode now always returns keyCode if charCode is not available.
+
+   * Added Event.onContentReady, which is similar to onAvailable, but it also
+     checks simblings to try to determine when the element's children are
+     available.
+
+0.11.4
+
+   * Fixed a memory leak in IE6 that occurred when the utility was hosted in 
+     an iframe.
+
+   * Fixed an issue with Safari click listeners when listeners were removed.
+
+0.11.3
+
+   * The listener cache is now pruned when events are removed.  This fixes
+     a performance issue when adding many listeners, removing them, and
+     adding them again repeatedly.
+
+   * Safari click listeners will work correctly if a bound element is removed
+     from the DOM and a new element with the same ID is added.
+
+   * Removed the code that automatically unsubscribed custom event listeners.
+
+0.11.0
+
+   * Added Event.purgeElement which will remove all listeners added via 
+     addListener from the supplied element.  If an optional "type" parameter
+     is supplied, only events of that type will be removed.  Optionally, the
+     purge can be performed recursively on the element's children as well.
+
+   * Added Event.getListeners which will return all listeners attached to 
+     a given element.. either all listeners or listeners of a specific type.
+
+   * getTarget now automatically resolves text nodes.  The optional parameter
+     for this feature is now deprecated.
+
+   * getRelatedTarget now resolves text nodes for the browsers that return the
+     text node rather than its host HTML element.
+
+   * CustomEvent now logs the custom event activity if the logger widget is available
+
+0.10.0
+
+   * Added Safari dblclick to the list of legacy events.
+
+   * When multiple identical event handlers are defined, multiple calls
+     to removeListener can now remove all of them.
+
+   * removeListener works properly for unload events
+
+   * Legacy event bookkeeping is more efficient, improving the performance for
+     adding Safari click events.
+
+   * _unload() is more efficient, improving the page transition experience in 
+     Safari in particular.
+
+   * addListener, removeListener now return false if the function argument is
+     not valid.
+
+   * Fixed an operator precedence issue in getCharCode.
+
+   * Added Event.getXY, which returns [Event.getPageX(e), Event.getPageY(e)]
+
+   * Added Event.onAvailable, which will execute the callback when the element
+     with the supplied id is found.  Currently searches periodically until the
+     window load event or for up to 10 seconds after the onAvailable method 
+     was executed.
+
+   * The lazy listener attachment process now will poll beyond the window load
+     event in order to better handle the case when a listener is defined
+     late in the page but before the element is in the dom.
+
+   * Fixed browser detection for Opera installations reporting as IE.
+
+   * It is now possible to remove and re-add legacy events (Safari click event).
+

Property changes on: tags/2.7.0/wb/include/yui/event/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/event/event-min.js
===================================================================
--- tags/2.7.0/wb/include/yui/event/event-min.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/event/event-min.js	(revision 838)
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: '"+this.type+"', scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(K){if(K&&3==K.nodeType){return K.parentNode;}else{return K;}},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];
+},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(YAHOO.env.ua.ie&&I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var A=YAHOO.util.Event;A.on=A.addListener;if(A.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);A._dri=setInterval(function(){var C=document.createElement("p");try{C.doScroll("left");clearInterval(A._dri);A._dri=null;A._ready();C=null;}catch(B){C=null;}},A.POLL_INTERVAL);}else{if(A.webkit){A._dri=setInterval(function(){var B=document.readyState;if("loaded"==B||"complete"==B){clearInterval(A._dri);A._dri=null;A._ready();}},A.POLL_INTERVAL);}else{A._simpleAdd(document,"DOMContentLoaded",A._ready);}}A._simpleAdd(window,"load",A._load);A._simpleAdd(window,"unload",A._unload);A._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};
+var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.4.1",build:"742"});
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/event/event-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dragdrop/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/dragdrop/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dragdrop/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/dragdrop/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dragdrop/dragdrop-debug.js
===================================================================
--- tags/2.7.0/wb/include/yui/dragdrop/dragdrop-debug.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dragdrop/dragdrop-debug.js	(revision 838)
@@ -0,0 +1,3255 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The drag and drop utility provides a framework for building drag and drop
+ * applications.  In addition to enabling drag and drop for specific elements,
+ * the drag and drop elements are tracked by the manager class, and the
+ * interactions between the various elements are tracked during the drag and
+ * the implementing code is notified about these important moments.
+ * @module dragdrop
+ * @title Drag and Drop
+ * @requires yahoo,dom,event
+ * @namespace YAHOO.util
+ */
+
+// Only load the library once.  Rewriting the manager class would orphan 
+// existing drag and drop instances.
+if (!YAHOO.util.DragDropMgr) {
+
+/**
+ * DragDropMgr is a singleton that tracks the element interaction for 
+ * all DragDrop items in the window.  Generally, you will not call 
+ * this class directly, but it does have helper methods that could 
+ * be useful in your DragDrop implementations.
+ * @class DragDropMgr
+ * @static
+ */
+YAHOO.util.DragDropMgr = function() {
+
+    var Event = YAHOO.util.Event;
+
+    return {
+
+        /**
+         * Two dimensional Array of registered DragDrop objects.  The first 
+         * dimension is the DragDrop item group, the second the DragDrop 
+         * object.
+         * @property ids
+         * @type {string: string}
+         * @private
+         * @static
+         */
+        ids: {},
+
+        /**
+         * Array of element ids defined as drag handles.  Used to determine 
+         * if the element that generated the mousedown event is actually the 
+         * handle and not the html element itself.
+         * @property handleIds
+         * @type {string: string}
+         * @private
+         * @static
+         */
+        handleIds: {},
+
+        /**
+         * the DragDrop object that is currently being dragged
+         * @property dragCurrent
+         * @type DragDrop
+         * @private
+         * @static
+         **/
+        dragCurrent: null,
+
+        /**
+         * the DragDrop object(s) that are being hovered over
+         * @property dragOvers
+         * @type Array
+         * @private
+         * @static
+         */
+        dragOvers: {},
+
+        /**
+         * the X distance between the cursor and the object being dragged
+         * @property deltaX
+         * @type int
+         * @private
+         * @static
+         */
+        deltaX: 0,
+
+        /**
+         * the Y distance between the cursor and the object being dragged
+         * @property deltaY
+         * @type int
+         * @private
+         * @static
+         */
+        deltaY: 0,
+
+        /**
+         * Flag to determine if we should prevent the default behavior of the
+         * events we define. By default this is true, but this can be set to 
+         * false if you need the default behavior (not recommended)
+         * @property preventDefault
+         * @type boolean
+         * @static
+         */
+        preventDefault: true,
+
+        /**
+         * Flag to determine if we should stop the propagation of the events 
+         * we generate. This is true by default but you may want to set it to
+         * false if the html element contains other features that require the
+         * mouse click.
+         * @property stopPropagation
+         * @type boolean
+         * @static
+         */
+        stopPropagation: true,
+
+        /**
+         * Internal flag that is set to true when drag and drop has been
+         * initialized
+         * @property initialized
+         * @private
+         * @static
+         */
+        initialized: false,
+
+        /**
+         * All drag and drop can be disabled.
+         * @property locked
+         * @private
+         * @static
+         */
+        locked: false,
+
+        /**
+         * Provides additional information about the the current set of
+         * interactions.  Can be accessed from the event handlers. It
+         * contains the following properties:
+         *
+         *       out:       onDragOut interactions
+         *       enter:     onDragEnter interactions
+         *       over:      onDragOver interactions
+         *       drop:      onDragDrop interactions
+         *       point:     The location of the cursor
+         *       draggedRegion: The location of dragged element at the time
+         *                      of the interaction
+         *       sourceRegion: The location of the source elemtn at the time
+         *                     of the interaction
+         *       validDrop: boolean
+         * @property interactionInfo
+         * @type object
+         * @static
+         */
+        interactionInfo: null,
+
+        /**
+         * Called the first time an element is registered.
+         * @method init
+         * @private
+         * @static
+         */
+        init: function() {
+            this.initialized = true;
+        },
+
+        /**
+         * In point mode, drag and drop interaction is defined by the 
+         * location of the cursor during the drag/drop
+         * @property POINT
+         * @type int
+         * @static
+         * @final
+         */
+        POINT: 0,
+
+        /**
+         * In intersect mode, drag and drop interaction is defined by the 
+         * cursor position or the amount of overlap of two or more drag and 
+         * drop objects.
+         * @property INTERSECT
+         * @type int
+         * @static
+         * @final
+         */
+        INTERSECT: 1,
+
+        /**
+         * In intersect mode, drag and drop interaction is defined only by the 
+         * overlap of two or more drag and drop objects.
+         * @property STRICT_INTERSECT
+         * @type int
+         * @static
+         * @final
+         */
+        STRICT_INTERSECT: 2,
+
+        /**
+         * The current drag and drop mode.  Default: POINT
+         * @property mode
+         * @type int
+         * @static
+         */
+        mode: 0,
+
+        /**
+         * Runs method on all drag and drop objects
+         * @method _execOnAll
+         * @private
+         * @static
+         */
+        _execOnAll: function(sMethod, args) {
+            for (var i in this.ids) {
+                for (var j in this.ids[i]) {
+                    var oDD = this.ids[i][j];
+                    if (! this.isTypeOfDD(oDD)) {
+                        continue;
+                    }
+                    oDD[sMethod].apply(oDD, args);
+                }
+            }
+        },
+
+        /**
+         * Drag and drop initialization.  Sets up the global event handlers
+         * @method _onLoad
+         * @private
+         * @static
+         */
+        _onLoad: function() {
+
+            this.init();
+
+            YAHOO.log("DragDropMgr onload", "info", "DragDropMgr");
+
+            Event.on(document, "mouseup",   this.handleMouseUp, this, true);
+            Event.on(document, "mousemove", this.handleMouseMove, this, true);
+            Event.on(window,   "unload",    this._onUnload, this, true);
+            Event.on(window,   "resize",    this._onResize, this, true);
+            // Event.on(window,   "mouseout",    this._test);
+
+        },
+
+        /**
+         * Reset constraints on all drag and drop objs
+         * @method _onResize
+         * @private
+         * @static
+         */
+        _onResize: function(e) {
+            YAHOO.log("window resize", "info", "DragDropMgr");
+            this._execOnAll("resetConstraints", []);
+        },
+
+        /**
+         * Lock all drag and drop functionality
+         * @method lock
+         * @static
+         */
+        lock: function() { this.locked = true; },
+
+        /**
+         * Unlock all drag and drop functionality
+         * @method unlock
+         * @static
+         */
+        unlock: function() { this.locked = false; },
+
+        /**
+         * Is drag and drop locked?
+         * @method isLocked
+         * @return {boolean} True if drag and drop is locked, false otherwise.
+         * @static
+         */
+        isLocked: function() { return this.locked; },
+
+        /**
+         * Location cache that is set for all drag drop objects when a drag is
+         * initiated, cleared when the drag is finished.
+         * @property locationCache
+         * @private
+         * @static
+         */
+        locationCache: {},
+
+        /**
+         * Set useCache to false if you want to force object the lookup of each
+         * drag and drop linked element constantly during a drag.
+         * @property useCache
+         * @type boolean
+         * @static
+         */
+        useCache: true,
+
+        /**
+         * The number of pixels that the mouse needs to move after the 
+         * mousedown before the drag is initiated.  Default=3;
+         * @property clickPixelThresh
+         * @type int
+         * @static
+         */
+        clickPixelThresh: 3,
+
+        /**
+         * The number of milliseconds after the mousedown event to initiate the
+         * drag if we don't get a mouseup event. Default=1000
+         * @property clickTimeThresh
+         * @type int
+         * @static
+         */
+        clickTimeThresh: 1000,
+
+        /**
+         * Flag that indicates that either the drag pixel threshold or the 
+         * mousdown time threshold has been met
+         * @property dragThreshMet
+         * @type boolean
+         * @private
+         * @static
+         */
+        dragThreshMet: false,
+
+        /**
+         * Timeout used for the click time threshold
+         * @property clickTimeout
+         * @type Object
+         * @private
+         * @static
+         */
+        clickTimeout: null,
+
+        /**
+         * The X position of the mousedown event stored for later use when a 
+         * drag threshold is met.
+         * @property startX
+         * @type int
+         * @private
+         * @static
+         */
+        startX: 0,
+
+        /**
+         * The Y position of the mousedown event stored for later use when a 
+         * drag threshold is met.
+         * @property startY
+         * @type int
+         * @private
+         * @static
+         */
+        startY: 0,
+
+        /**
+         * Flag to determine if the drag event was fired from the click timeout and
+         * not the mouse move threshold.
+         * @property fromTimeout
+         * @type boolean
+         * @private
+         * @static
+         */
+        fromTimeout: false,
+
+        /**
+         * Each DragDrop instance must be registered with the DragDropMgr.  
+         * This is executed in DragDrop.init()
+         * @method regDragDrop
+         * @param {DragDrop} oDD the DragDrop object to register
+         * @param {String} sGroup the name of the group this element belongs to
+         * @static
+         */
+        regDragDrop: function(oDD, sGroup) {
+            if (!this.initialized) { this.init(); }
+            
+            if (!this.ids[sGroup]) {
+                this.ids[sGroup] = {};
+            }
+            this.ids[sGroup][oDD.id] = oDD;
+        },
+
+        /**
+         * Removes the supplied dd instance from the supplied group. Executed
+         * by DragDrop.removeFromGroup, so don't call this function directly.
+         * @method removeDDFromGroup
+         * @private
+         * @static
+         */
+        removeDDFromGroup: function(oDD, sGroup) {
+            if (!this.ids[sGroup]) {
+                this.ids[sGroup] = {};
+            }
+
+            var obj = this.ids[sGroup];
+            if (obj && obj[oDD.id]) {
+                delete obj[oDD.id];
+            }
+        },
+
+        /**
+         * Unregisters a drag and drop item.  This is executed in 
+         * DragDrop.unreg, use that method instead of calling this directly.
+         * @method _remove
+         * @private
+         * @static
+         */
+        _remove: function(oDD) {
+            for (var g in oDD.groups) {
+                if (g && this.ids[g][oDD.id]) {
+                    delete this.ids[g][oDD.id];
+                    //YAHOO.log("NEW LEN " + this.ids.length, "warn");
+                }
+            }
+            delete this.handleIds[oDD.id];
+        },
+
+        /**
+         * Each DragDrop handle element must be registered.  This is done
+         * automatically when executing DragDrop.setHandleElId()
+         * @method regHandle
+         * @param {String} sDDId the DragDrop id this element is a handle for
+         * @param {String} sHandleId the id of the element that is the drag 
+         * handle
+         * @static
+         */
+        regHandle: function(sDDId, sHandleId) {
+            if (!this.handleIds[sDDId]) {
+                this.handleIds[sDDId] = {};
+            }
+            this.handleIds[sDDId][sHandleId] = sHandleId;
+        },
+
+        /**
+         * Utility function to determine if a given element has been 
+         * registered as a drag drop item.
+         * @method isDragDrop
+         * @param {String} id the element id to check
+         * @return {boolean} true if this element is a DragDrop item, 
+         * false otherwise
+         * @static
+         */
+        isDragDrop: function(id) {
+            return ( this.getDDById(id) ) ? true : false;
+        },
+
+        /**
+         * Returns the drag and drop instances that are in all groups the
+         * passed in instance belongs to.
+         * @method getRelated
+         * @param {DragDrop} p_oDD the obj to get related data for
+         * @param {boolean} bTargetsOnly if true, only return targetable objs
+         * @return {DragDrop[]} the related instances
+         * @static
+         */
+        getRelated: function(p_oDD, bTargetsOnly) {
+            var oDDs = [];
+            for (var i in p_oDD.groups) {
+                for (var j in this.ids[i]) {
+                    var dd = this.ids[i][j];
+                    if (! this.isTypeOfDD(dd)) {
+                        continue;
+                    }
+                    if (!bTargetsOnly || dd.isTarget) {
+                        oDDs[oDDs.length] = dd;
+                    }
+                }
+            }
+
+            return oDDs;
+        },
+
+        /**
+         * Returns true if the specified dd target is a legal target for 
+         * the specifice drag obj
+         * @method isLegalTarget
+         * @param {DragDrop} the drag obj
+         * @param {DragDrop} the target
+         * @return {boolean} true if the target is a legal target for the 
+         * dd obj
+         * @static
+         */
+        isLegalTarget: function (oDD, oTargetDD) {
+            var targets = this.getRelated(oDD, true);
+            for (var i=0, len=targets.length;i<len;++i) {
+                if (targets[i].id == oTargetDD.id) {
+                    return true;
+                }
+            }
+
+            return false;
+        },
+
+        /**
+         * My goal is to be able to transparently determine if an object is
+         * typeof DragDrop, and the exact subclass of DragDrop.  typeof 
+         * returns "object", oDD.constructor.toString() always returns
+         * "DragDrop" and not the name of the subclass.  So for now it just
+         * evaluates a well-known variable in DragDrop.
+         * @method isTypeOfDD
+         * @param {Object} the object to evaluate
+         * @return {boolean} true if typeof oDD = DragDrop
+         * @static
+         */
+        isTypeOfDD: function (oDD) {
+            return (oDD && oDD.__ygDragDrop);
+        },
+
+        /**
+         * Utility function to determine if a given element has been 
+         * registered as a drag drop handle for the given Drag Drop object.
+         * @method isHandle
+         * @param {String} id the element id to check
+         * @return {boolean} true if this element is a DragDrop handle, false 
+         * otherwise
+         * @static
+         */
+        isHandle: function(sDDId, sHandleId) {
+            return ( this.handleIds[sDDId] && 
+                            this.handleIds[sDDId][sHandleId] );
+        },
+
+        /**
+         * Returns the DragDrop instance for a given id
+         * @method getDDById
+         * @param {String} id the id of the DragDrop object
+         * @return {DragDrop} the drag drop object, null if it is not found
+         * @static
+         */
+        getDDById: function(id) {
+            for (var i in this.ids) {
+                if (this.ids[i][id]) {
+                    return this.ids[i][id];
+                }
+            }
+            return null;
+        },
+
+        /**
+         * Fired after a registered DragDrop object gets the mousedown event.
+         * Sets up the events required to track the object being dragged
+         * @method handleMouseDown
+         * @param {Event} e the event
+         * @param oDD the DragDrop object being dragged
+         * @private
+         * @static
+         */
+        handleMouseDown: function(e, oDD) {
+
+            this.currentTarget = YAHOO.util.Event.getTarget(e);
+
+            this.dragCurrent = oDD;
+
+            var el = oDD.getEl();
+
+            // track start position
+            this.startX = YAHOO.util.Event.getPageX(e);
+            this.startY = YAHOO.util.Event.getPageY(e);
+
+            this.deltaX = this.startX - el.offsetLeft;
+            this.deltaY = this.startY - el.offsetTop;
+
+            this.dragThreshMet = false;
+
+            this.clickTimeout = setTimeout( 
+                    function() { 
+                        var DDM = YAHOO.util.DDM;
+                        DDM.startDrag(DDM.startX, DDM.startY);
+                        DDM.fromTimeout = true;
+                    }, 
+                    this.clickTimeThresh );
+        },
+
+        /**
+         * Fired when either the drag pixel threshol or the mousedown hold 
+         * time threshold has been met.
+         * @method startDrag
+         * @param x {int} the X position of the original mousedown
+         * @param y {int} the Y position of the original mousedown
+         * @static
+         */
+        startDrag: function(x, y) {
+            YAHOO.log("firing drag start events", "info", "DragDropMgr");
+            clearTimeout(this.clickTimeout);
+            var dc = this.dragCurrent;
+            if (dc) {
+                dc.b4StartDrag(x, y);
+            }
+            if (dc) {
+                dc.startDrag(x, y);
+            }
+            this.dragThreshMet = true;
+        },
+
+        /**
+         * Internal function to handle the mouseup event.  Will be invoked 
+         * from the context of the document.
+         * @method handleMouseUp
+         * @param {Event} e the event
+         * @private
+         * @static
+         */
+        handleMouseUp: function(e) {
+            if (this.dragCurrent) {
+                clearTimeout(this.clickTimeout);
+
+                if (this.dragThreshMet) {
+                    YAHOO.log("mouseup detected - completing drag", "info", "DragDropMgr");
+                    if (this.fromTimeout) {
+                        YAHOO.log('fromTimeout is true (mouse didn\'t move), call handleMouseDown so we can get the dragOver event', 'info', 'DragDropMgr');
+                        this.handleMouseMove(e);
+                    }
+                    this.fromTimeout = false;
+                    this.fireEvents(e, true);
+                } else {
+                    YAHOO.log("drag threshold not met", "info", "DragDropMgr");
+                }
+
+                this.stopDrag(e);
+
+                this.stopEvent(e);
+            }
+        },
+
+        /**
+         * Utility to stop event propagation and event default, if these 
+         * features are turned on.
+         * @method stopEvent
+         * @param {Event} e the event as returned by this.getEvent()
+         * @static
+         */
+        stopEvent: function(e) {
+            if (this.stopPropagation) {
+                YAHOO.util.Event.stopPropagation(e);
+            }
+
+            if (this.preventDefault) {
+                YAHOO.util.Event.preventDefault(e);
+            }
+        },
+
+        /** 
+         * Ends the current drag, cleans up the state, and fires the endDrag
+         * and mouseUp events.  Called internally when a mouseup is detected
+         * during the drag.  Can be fired manually during the drag by passing
+         * either another event (such as the mousemove event received in onDrag)
+         * or a fake event with pageX and pageY defined (so that endDrag and
+         * onMouseUp have usable position data.).  Alternatively, pass true
+         * for the silent parameter so that the endDrag and onMouseUp events
+         * are skipped (so no event data is needed.)
+         *
+         * @method stopDrag
+         * @param {Event} e the mouseup event, another event (or a fake event) 
+         *                  with pageX and pageY defined, or nothing if the 
+         *                  silent parameter is true
+         * @param {boolean} silent skips the enddrag and mouseup events if true
+         * @static
+         */
+        stopDrag: function(e, silent) {
+            // YAHOO.log("mouseup - removing event handlers");
+
+            // Fire the drag end event for the item that was dragged
+            if (this.dragCurrent && !silent) {
+                if (this.dragThreshMet) {
+                    YAHOO.log("firing endDrag events", "info", "DragDropMgr");
+                    this.dragCurrent.b4EndDrag(e);
+                    this.dragCurrent.endDrag(e);
+                }
+
+                YAHOO.log("firing dragdrop onMouseUp event", "info", "DragDropMgr");
+                this.dragCurrent.onMouseUp(e);
+            }
+
+            this.dragCurrent = null;
+            this.dragOvers = {};
+        },
+
+        /** 
+         * Internal function to handle the mousemove event.  Will be invoked 
+         * from the context of the html element.
+         *
+         * @TODO figure out what we can do about mouse events lost when the 
+         * user drags objects beyond the window boundary.  Currently we can 
+         * detect this in internet explorer by verifying that the mouse is 
+         * down during the mousemove event.  Firefox doesn't give us the 
+         * button state on the mousemove event.
+         * @method handleMouseMove
+         * @param {Event} e the event
+         * @private
+         * @static
+         */
+        handleMouseMove: function(e) {
+            //YAHOO.log("handlemousemove");
+            
+            var dc = this.dragCurrent;
+            if (dc) {
+                // YAHOO.log("no current drag obj");
+
+                // var button = e.which || e.button;
+                // YAHOO.log("which: " + e.which + ", button: "+ e.button);
+
+                // check for IE mouseup outside of page boundary
+                if (YAHOO.util.Event.isIE && !e.button) {
+                    YAHOO.log("button failure", "info", "DragDropMgr");
+                    this.stopEvent(e);
+                    return this.handleMouseUp(e);
+                }
+
+                if (!this.dragThreshMet) {
+                    var diffX = Math.abs(this.startX - YAHOO.util.Event.getPageX(e));
+                    var diffY = Math.abs(this.startY - YAHOO.util.Event.getPageY(e));
+                    // YAHOO.log("diffX: " + diffX + "diffY: " + diffY);
+                    if (diffX > this.clickPixelThresh || 
+                                diffY > this.clickPixelThresh) {
+                        YAHOO.log("pixel threshold met", "info", "DragDropMgr");
+                        this.startDrag(this.startX, this.startY);
+                    }
+                }
+
+                if (this.dragThreshMet) {
+                    dc.b4Drag(e);
+                    if (dc) {
+                        dc.onDrag(e);
+                    }
+                    if (dc) {
+                        this.fireEvents(e, false);
+                    }
+                }
+
+                this.stopEvent(e);
+            }
+        },
+        
+        /**
+         * Iterates over all of the DragDrop elements to find ones we are 
+         * hovering over or dropping on
+         * @method fireEvents
+         * @param {Event} e the event
+         * @param {boolean} isDrop is this a drop op or a mouseover op?
+         * @private
+         * @static
+         */
+        fireEvents: function(e, isDrop) {
+            var dc = this.dragCurrent;
+
+            // If the user did the mouse up outside of the window, we could 
+            // get here even though we have ended the drag.
+            // If the config option dragOnly is true, bail out and don't fire the events
+            if (!dc || dc.isLocked() || dc.dragOnly) {
+                return;
+            }
+
+            var x = YAHOO.util.Event.getPageX(e),
+                y = YAHOO.util.Event.getPageY(e),
+                pt = new YAHOO.util.Point(x,y),
+                pos = dc.getTargetCoord(pt.x, pt.y),
+                el = dc.getDragEl(),
+                curRegion = new YAHOO.util.Region( pos.y, 
+                                               pos.x + el.offsetWidth,
+                                               pos.y + el.offsetHeight, 
+                                               pos.x ),
+            
+                oldOvers = [], // cache the previous dragOver array
+                outEvts   = [],
+                overEvts  = [],
+                dropEvts  = [],
+                enterEvts = [],
+                inGroupsObj  = {},
+                inGroups  = [];
+
+
+            // Check to see if the object(s) we were hovering over is no longer 
+            // being hovered over so we can fire the onDragOut event
+            for (var i in this.dragOvers) {
+
+                var ddo = this.dragOvers[i];
+
+                if (! this.isTypeOfDD(ddo)) {
+                    continue;
+                }
+                if (! this.isOverTarget(pt, ddo, this.mode, curRegion)) {
+                    outEvts.push( ddo );
+                }
+
+                oldOvers[i] = true;
+                delete this.dragOvers[i];
+            }
+
+            for (var sGroup in dc.groups) {
+                // YAHOO.log("Processing group " + sGroup);
+                
+                if ("string" != typeof sGroup) {
+                    continue;
+                }
+
+                for (i in this.ids[sGroup]) {
+                    var oDD = this.ids[sGroup][i];
+                    if (! this.isTypeOfDD(oDD)) {
+                        continue;
+                    }
+
+                    if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {
+                        if (this.isOverTarget(pt, oDD, this.mode, curRegion)) {
+                            inGroupsObj[sGroup] = true;
+                            // look for drop interactions
+                            if (isDrop) {
+                                dropEvts.push( oDD );
+                            // look for drag enter and drag over interactions
+                            } else {
+
+                                // initial drag over: dragEnter fires
+                                if (!oldOvers[oDD.id]) {
+                                    enterEvts.push( oDD );
+                                // subsequent drag overs: dragOver fires
+                                } else {
+                                    overEvts.push( oDD );
+                                }
+
+                                this.dragOvers[oDD.id] = oDD;
+                            }
+                        }
+                    }
+                }
+            }
+
+            this.interactionInfo = {
+                out:       outEvts,
+                enter:     enterEvts,
+                over:      overEvts,
+                drop:      dropEvts,
+                point:     pt,
+                draggedRegion:    curRegion,
+                sourceRegion: this.locationCache[dc.id],
+                validDrop: isDrop
+            };
+
+            
+            for (var inG in inGroupsObj) {
+                inGroups.push(inG);
+            }
+
+            // notify about a drop that did not find a target
+            if (isDrop && !dropEvts.length) {
+                YAHOO.log(dc.id + " dropped, but not on a target", "info", "DragDropMgr");
+                this.interactionInfo.validDrop = false;
+                dc.onInvalidDrop(e);
+            }
+
+
+            if (this.mode) {
+                if (outEvts.length) {
+                    YAHOO.log(dc.id+" onDragOut: " + outEvts, "info", "DragDropMgr");
+                    dc.b4DragOut(e, outEvts);
+                    if (dc) {
+                        dc.onDragOut(e, outEvts);
+                    }
+                }
+
+                if (enterEvts.length) {
+                    YAHOO.log(dc.id+" onDragEnter: " + enterEvts + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    if (dc) {
+                        dc.onDragEnter(e, enterEvts, inGroups);
+                    }
+                }
+
+                if (overEvts.length) {
+                    YAHOO.log(dc.id+" onDragOver: " + overEvts + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    if (dc) {
+                        dc.b4DragOver(e, overEvts, inGroups);
+                    }
+
+                    if (dc) {
+                        dc.onDragOver(e, overEvts, inGroups);
+                    }
+                }
+
+                if (dropEvts.length) {
+                    YAHOO.log(dc.id+" onDragDrop: " + dropEvts + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    if (dc) {
+                        dc.b4DragDrop(e, dropEvts, inGroups);
+                    }
+                    if (dc) {
+                        dc.onDragDrop(e, dropEvts, inGroups);
+                    }
+                }
+
+            } else {
+                // fire dragout events
+                var len = 0;
+                for (i=0, len=outEvts.length; i<len; ++i) {
+                    YAHOO.log(dc.id+" onDragOut: " + outEvts[i].id, "info", "DragDropMgr");
+                    if (dc) {
+                        dc.b4DragOut(e, outEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragOut(e, outEvts[i].id, inGroups[0]);
+                    }
+                }
+                 
+                // fire enter events
+                for (i=0,len=enterEvts.length; i<len; ++i) {
+                    YAHOO.log(dc.id + " onDragEnter " + enterEvts[i].id + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    // dc.b4DragEnter(e, oDD.id);
+
+                    if (dc) {
+                        dc.onDragEnter(e, enterEvts[i].id, inGroups[0]);
+                    }
+                }
+         
+                // fire over events
+                for (i=0,len=overEvts.length; i<len; ++i) {
+                    YAHOO.log(dc.id + " onDragOver " + overEvts[i].id + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    if (dc) {
+                        dc.b4DragOver(e, overEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragOver(e, overEvts[i].id, inGroups[0]);
+                    }
+                }
+
+                // fire drop events
+                for (i=0, len=dropEvts.length; i<len; ++i) {
+                    YAHOO.log(dc.id + " dropped on " + dropEvts[i].id + " (group: " + inGroups + ")", "info", "DragDropMgr");
+                    if (dc) {
+                        dc.b4DragDrop(e, dropEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragDrop(e, dropEvts[i].id, inGroups[0]);
+                    }
+                }
+
+            }
+        },
+
+        /**
+         * Helper function for getting the best match from the list of drag 
+         * and drop objects returned by the drag and drop events when we are 
+         * in INTERSECT mode.  It returns either the first object that the 
+         * cursor is over, or the object that has the greatest overlap with 
+         * the dragged element.
+         * @method getBestMatch
+         * @param  {DragDrop[]} dds The array of drag and drop objects 
+         * targeted
+         * @return {DragDrop}       The best single match
+         * @static
+         */
+        getBestMatch: function(dds) {
+            var winner = null;
+
+            var len = dds.length;
+
+            if (len == 1) {
+                winner = dds[0];
+            } else {
+                // Loop through the targeted items
+                for (var i=0; i<len; ++i) {
+                    var dd = dds[i];
+                    // If the cursor is over the object, it wins.  If the 
+                    // cursor is over multiple matches, the first one we come
+                    // to wins.
+                    if (this.mode == this.INTERSECT && dd.cursorIsOver) {
+                        winner = dd;
+                        break;
+                    // Otherwise the object with the most overlap wins
+                    } else {
+                        if (!winner || !winner.overlap || (dd.overlap &&
+                            winner.overlap.getArea() < dd.overlap.getArea())) {
+                            winner = dd;
+                        }
+                    }
+                }
+            }
+
+            return winner;
+        },
+
+        /**
+         * Refreshes the cache of the top-left and bottom-right points of the 
+         * drag and drop objects in the specified group(s).  This is in the
+         * format that is stored in the drag and drop instance, so typical 
+         * usage is:
+         * <code>
+         * YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);
+         * </code>
+         * Alternatively:
+         * <code>
+         * YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});
+         * </code>
+         * @TODO this really should be an indexed array.  Alternatively this
+         * method could accept both.
+         * @method refreshCache
+         * @param {Object} groups an associative array of groups to refresh
+         * @static
+         */
+        refreshCache: function(groups) {
+            YAHOO.log("refreshing element location cache", "info", "DragDropMgr");
+
+            // refresh everything if group array is not provided
+            var g = groups || this.ids;
+
+            for (var sGroup in g) {
+                if ("string" != typeof sGroup) {
+                    continue;
+                }
+                for (var i in this.ids[sGroup]) {
+                    var oDD = this.ids[sGroup][i];
+
+                    if (this.isTypeOfDD(oDD)) {
+                        var loc = this.getLocation(oDD);
+                        if (loc) {
+                            this.locationCache[oDD.id] = loc;
+                        } else {
+                            delete this.locationCache[oDD.id];
+YAHOO.log("Could not get the loc for " + oDD.id, "warn", "DragDropMgr");
+                        }
+                    }
+                }
+            }
+        },
+
+        /**
+         * This checks to make sure an element exists and is in the DOM.  The
+         * main purpose is to handle cases where innerHTML is used to remove
+         * drag and drop objects from the DOM.  IE provides an 'unspecified
+         * error' when trying to access the offsetParent of such an element
+         * @method verifyEl
+         * @param {HTMLElement} el the element to check
+         * @return {boolean} true if the element looks usable
+         * @static
+         */
+        verifyEl: function(el) {
+            try {
+                if (el) {
+                    var parent = el.offsetParent;
+                    if (parent) {
+                        return true;
+                    }
+                }
+            } catch(e) {
+                YAHOO.log("detected problem with an element", "info", "DragDropMgr");
+            }
+
+            return false;
+        },
+        
+        /**
+         * Returns a Region object containing the drag and drop element's position
+         * and size, including the padding configured for it
+         * @method getLocation
+         * @param {DragDrop} oDD the drag and drop object to get the 
+         *                       location for
+         * @return {YAHOO.util.Region} a Region object representing the total area
+         *                             the element occupies, including any padding
+         *                             the instance is configured for.
+         * @static
+         */
+        getLocation: function(oDD) {
+            if (! this.isTypeOfDD(oDD)) {
+                YAHOO.log(oDD + " is not a DD obj", "info", "DragDropMgr");
+                return null;
+            }
+
+            var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;
+
+            try {
+                pos= YAHOO.util.Dom.getXY(el);
+            } catch (e) { }
+
+            if (!pos) {
+                YAHOO.log("getXY failed", "info", "DragDropMgr");
+                return null;
+            }
+
+            x1 = pos[0];
+            x2 = x1 + el.offsetWidth;
+            y1 = pos[1];
+            y2 = y1 + el.offsetHeight;
+
+            t = y1 - oDD.padding[0];
+            r = x2 + oDD.padding[1];
+            b = y2 + oDD.padding[2];
+            l = x1 - oDD.padding[3];
+
+            return new YAHOO.util.Region( t, r, b, l );
+        },
+
+        /**
+         * Checks the cursor location to see if it over the target
+         * @method isOverTarget
+         * @param {YAHOO.util.Point} pt The point to evaluate
+         * @param {DragDrop} oTarget the DragDrop object we are inspecting
+         * @param {boolean} intersect true if we are in intersect mode
+         * @param {YAHOO.util.Region} pre-cached location of the dragged element
+         * @return {boolean} true if the mouse is over the target
+         * @private
+         * @static
+         */
+        isOverTarget: function(pt, oTarget, intersect, curRegion) {
+            // use cache if available
+            var loc = this.locationCache[oTarget.id];
+            if (!loc || !this.useCache) {
+                YAHOO.log("cache not populated", "info", "DragDropMgr");
+                loc = this.getLocation(oTarget);
+                this.locationCache[oTarget.id] = loc;
+
+                YAHOO.log("cache: " + loc, "info", "DragDropMgr");
+            }
+
+            if (!loc) {
+                YAHOO.log("could not get the location of the element", "info", "DragDropMgr");
+                return false;
+            }
+
+            //YAHOO.log("loc: " + loc + ", pt: " + pt);
+            oTarget.cursorIsOver = loc.contains( pt );
+
+            // DragDrop is using this as a sanity check for the initial mousedown
+            // in this case we are done.  In POINT mode, if the drag obj has no
+            // contraints, we are done. Otherwise we need to evaluate the 
+            // region the target as occupies to determine if the dragged element
+            // overlaps with it.
+            
+            var dc = this.dragCurrent;
+            if (!dc || (!intersect && !dc.constrainX && !dc.constrainY)) {
+
+                //if (oTarget.cursorIsOver) {
+                    //YAHOO.log("over " + oTarget + ", " + loc + ", " + pt, "warn");
+                //}
+                return oTarget.cursorIsOver;
+            }
+
+            oTarget.overlap = null;
+
+            // Get the current location of the drag element, this is the
+            // location of the mouse event less the delta that represents
+            // where the original mousedown happened on the element.  We
+            // need to consider constraints and ticks as well.
+
+            if (!curRegion) {
+                var pos = dc.getTargetCoord(pt.x, pt.y);
+                var el = dc.getDragEl();
+                curRegion = new YAHOO.util.Region( pos.y, 
+                                                   pos.x + el.offsetWidth,
+                                                   pos.y + el.offsetHeight, 
+                                                   pos.x );
+            }
+
+            var overlap = curRegion.intersect(loc);
+
+            if (overlap) {
+                oTarget.overlap = overlap;
+                return (intersect) ? true : oTarget.cursorIsOver;
+            } else {
+                return false;
+            }
+        },
+
+        /**
+         * unload event handler
+         * @method _onUnload
+         * @private
+         * @static
+         */
+        _onUnload: function(e, me) {
+            this.unregAll();
+        },
+
+        /**
+         * Cleans up the drag and drop events and objects.
+         * @method unregAll
+         * @private
+         * @static
+         */
+        unregAll: function() {
+            YAHOO.log("unregister all", "info", "DragDropMgr");
+
+            if (this.dragCurrent) {
+                this.stopDrag();
+                this.dragCurrent = null;
+            }
+
+            this._execOnAll("unreg", []);
+
+            //for (var i in this.elementCache) {
+                //delete this.elementCache[i];
+            //}
+            //this.elementCache = {};
+
+            this.ids = {};
+        },
+
+        /**
+         * A cache of DOM elements
+         * @property elementCache
+         * @private
+         * @static
+         * @deprecated elements are not cached now
+         */
+        elementCache: {},
+        
+        /**
+         * Get the wrapper for the DOM element specified
+         * @method getElWrapper
+         * @param {String} id the id of the element to get
+         * @return {YAHOO.util.DDM.ElementWrapper} the wrapped element
+         * @private
+         * @deprecated This wrapper isn't that useful
+         * @static
+         */
+        getElWrapper: function(id) {
+            var oWrapper = this.elementCache[id];
+            if (!oWrapper || !oWrapper.el) {
+                oWrapper = this.elementCache[id] = 
+                    new this.ElementWrapper(YAHOO.util.Dom.get(id));
+            }
+            return oWrapper;
+        },
+
+        /**
+         * Returns the actual DOM element
+         * @method getElement
+         * @param {String} id the id of the elment to get
+         * @return {Object} The element
+         * @deprecated use YAHOO.util.Dom.get instead
+         * @static
+         */
+        getElement: function(id) {
+            return YAHOO.util.Dom.get(id);
+        },
+        
+        /**
+         * Returns the style property for the DOM element (i.e., 
+         * document.getElById(id).style)
+         * @method getCss
+         * @param {String} id the id of the elment to get
+         * @return {Object} The style property of the element
+         * @deprecated use YAHOO.util.Dom instead
+         * @static
+         */
+        getCss: function(id) {
+            var el = YAHOO.util.Dom.get(id);
+            return (el) ? el.style : null;
+        },
+
+        /**
+         * Inner class for cached elements
+         * @class DragDropMgr.ElementWrapper
+         * @for DragDropMgr
+         * @private
+         * @deprecated
+         */
+        ElementWrapper: function(el) {
+                /**
+                 * The element
+                 * @property el
+                 */
+                this.el = el || null;
+                /**
+                 * The element id
+                 * @property id
+                 */
+                this.id = this.el && el.id;
+                /**
+                 * A reference to the style property
+                 * @property css
+                 */
+                this.css = this.el && el.style;
+            },
+
+        /**
+         * Returns the X position of an html element
+         * @method getPosX
+         * @param el the element for which to get the position
+         * @return {int} the X coordinate
+         * @for DragDropMgr
+         * @deprecated use YAHOO.util.Dom.getX instead
+         * @static
+         */
+        getPosX: function(el) {
+            return YAHOO.util.Dom.getX(el);
+        },
+
+        /**
+         * Returns the Y position of an html element
+         * @method getPosY
+         * @param el the element for which to get the position
+         * @return {int} the Y coordinate
+         * @deprecated use YAHOO.util.Dom.getY instead
+         * @static
+         */
+        getPosY: function(el) {
+            return YAHOO.util.Dom.getY(el); 
+        },
+
+        /**
+         * Swap two nodes.  In IE, we use the native method, for others we 
+         * emulate the IE behavior
+         * @method swapNode
+         * @param n1 the first node to swap
+         * @param n2 the other node to swap
+         * @static
+         */
+        swapNode: function(n1, n2) {
+            if (n1.swapNode) {
+                n1.swapNode(n2);
+            } else {
+                var p = n2.parentNode;
+                var s = n2.nextSibling;
+
+                if (s == n1) {
+                    p.insertBefore(n1, n2);
+                } else if (n2 == n1.nextSibling) {
+                    p.insertBefore(n2, n1);
+                } else {
+                    n1.parentNode.replaceChild(n2, n1);
+                    p.insertBefore(n1, s);
+                }
+            }
+        },
+
+        /**
+         * Returns the current scroll position
+         * @method getScroll
+         * @private
+         * @static
+         */
+        getScroll: function () {
+            var t, l, dde=document.documentElement, db=document.body;
+            if (dde && (dde.scrollTop || dde.scrollLeft)) {
+                t = dde.scrollTop;
+                l = dde.scrollLeft;
+            } else if (db) {
+                t = db.scrollTop;
+                l = db.scrollLeft;
+            } else {
+                YAHOO.log("could not get scroll property", "info", "DragDropMgr");
+            }
+            return { top: t, left: l };
+        },
+
+        /**
+         * Returns the specified element style property
+         * @method getStyle
+         * @param {HTMLElement} el          the element
+         * @param {string}      styleProp   the style property
+         * @return {string} The value of the style property
+         * @deprecated use YAHOO.util.Dom.getStyle
+         * @static
+         */
+        getStyle: function(el, styleProp) {
+            return YAHOO.util.Dom.getStyle(el, styleProp);
+        },
+
+        /**
+         * Gets the scrollTop
+         * @method getScrollTop
+         * @return {int} the document's scrollTop
+         * @static
+         */
+        getScrollTop: function () { return this.getScroll().top; },
+
+        /**
+         * Gets the scrollLeft
+         * @method getScrollLeft
+         * @return {int} the document's scrollTop
+         * @static
+         */
+        getScrollLeft: function () { return this.getScroll().left; },
+
+        /**
+         * Sets the x/y position of an element to the location of the
+         * target element.
+         * @method moveToEl
+         * @param {HTMLElement} moveEl      The element to move
+         * @param {HTMLElement} targetEl    The position reference element
+         * @static
+         */
+        moveToEl: function (moveEl, targetEl) {
+            var aCoord = YAHOO.util.Dom.getXY(targetEl);
+            YAHOO.log("moveToEl: " + aCoord, "info", "DragDropMgr");
+            YAHOO.util.Dom.setXY(moveEl, aCoord);
+        },
+
+        /**
+         * Gets the client height
+         * @method getClientHeight
+         * @return {int} client height in px
+         * @deprecated use YAHOO.util.Dom.getViewportHeight instead
+         * @static
+         */
+        getClientHeight: function() {
+            return YAHOO.util.Dom.getViewportHeight();
+        },
+
+        /**
+         * Gets the client width
+         * @method getClientWidth
+         * @return {int} client width in px
+         * @deprecated use YAHOO.util.Dom.getViewportWidth instead
+         * @static
+         */
+        getClientWidth: function() {
+            return YAHOO.util.Dom.getViewportWidth();
+        },
+
+        /**
+         * Numeric array sort function
+         * @method numericSort
+         * @static
+         */
+        numericSort: function(a, b) { return (a - b); },
+
+        /**
+         * Internal counter
+         * @property _timeoutCount
+         * @private
+         * @static
+         */
+        _timeoutCount: 0,
+
+        /**
+         * Trying to make the load order less important.  Without this we get
+         * an error if this file is loaded before the Event Utility.
+         * @method _addListeners
+         * @private
+         * @static
+         */
+        _addListeners: function() {
+            var DDM = YAHOO.util.DDM;
+            if ( YAHOO.util.Event && document ) {
+                DDM._onLoad();
+            } else {
+                if (DDM._timeoutCount > 2000) {
+                    YAHOO.log("DragDrop requires the Event Utility", "error", "DragDropMgr");
+                } else {
+                    setTimeout(DDM._addListeners, 10);
+                    if (document && document.body) {
+                        DDM._timeoutCount += 1;
+                    }
+                }
+            }
+        },
+
+        /**
+         * Recursively searches the immediate parent and all child nodes for 
+         * the handle element in order to determine wheter or not it was 
+         * clicked.
+         * @method handleWasClicked
+         * @param node the html element to inspect
+         * @static
+         */
+        handleWasClicked: function(node, id) {
+            if (this.isHandle(id, node.id)) {
+                YAHOO.log("clicked node is a handle", "info", "DragDropMgr");
+                return true;
+            } else {
+                // check to see if this is a text node child of the one we want
+                var p = node.parentNode;
+                // YAHOO.log("p: " + p);
+
+                while (p) {
+                    if (this.isHandle(id, p.id)) {
+                        return true;
+                    } else {
+                        YAHOO.log(p.id + " is not a handle", "info", "DragDropMgr");
+                        p = p.parentNode;
+                    }
+                }
+            }
+
+            return false;
+        }
+
+    };
+
+}();
+
+// shorter alias, save a few bytes
+YAHOO.util.DDM = YAHOO.util.DragDropMgr;
+YAHOO.util.DDM._addListeners();
+
+}
+
+(function() {
+
+var Event=YAHOO.util.Event; 
+var Dom=YAHOO.util.Dom;
+
+/**
+ * Defines the interface and base operation of items that that can be 
+ * dragged or can be drop targets.  It was designed to be extended, overriding
+ * the event handlers for startDrag, onDrag, onDragOver, onDragOut.
+ * Up to three html elements can be associated with a DragDrop instance:
+ * <ul>
+ * <li>linked element: the element that is passed into the constructor.
+ * This is the element which defines the boundaries for interaction with 
+ * other DragDrop objects.</li>
+ * <li>handle element(s): The drag operation only occurs if the element that 
+ * was clicked matches a handle element.  By default this is the linked 
+ * element, but there are times that you will want only a portion of the 
+ * linked element to initiate the drag operation, and the setHandleElId() 
+ * method provides a way to define this.</li>
+ * <li>drag element: this represents an the element that would be moved along
+ * with the cursor during a drag operation.  By default, this is the linked
+ * element itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define
+ * a separate element that would be moved, as in {@link YAHOO.util.DDProxy}
+ * </li>
+ * </ul>
+ * This class should not be instantiated until the onload event to ensure that
+ * the associated elements are available.
+ * The following would define a DragDrop obj that would interact with any 
+ * other DragDrop obj in the "group1" group:
+ * <pre>
+ *  dd = new YAHOO.util.DragDrop("div1", "group1");
+ * </pre>
+ * Since none of the event handlers have been implemented, nothing would 
+ * actually happen if you were to run the code above.  Normally you would 
+ * override this class or one of the default implementations, but you can 
+ * also override the methods you want on an instance of the class...
+ * <pre>
+ *  dd.onDragDrop = function(e, id) {
+ *  &nbsp;&nbsp;alert("dd was dropped on " + id);
+ *  }
+ * </pre>
+ * @namespace YAHOO.util
+ * @class DragDrop
+ * @constructor
+ * @param {String} id of the element that is linked to this instance
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DragDrop: 
+ *                    padding, isTarget, maintainOffset, primaryButtonOnly,
+ */
+YAHOO.util.DragDrop = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config); 
+    }
+};
+
+YAHOO.util.DragDrop.prototype = {
+
+    /**
+     * The id of the element associated with this object.  This is what we 
+     * refer to as the "linked element" because the size and position of 
+     * this element is used to determine when the drag and drop objects have 
+     * interacted.
+     * @property id
+     * @type String
+     */
+    id: null,
+
+    /**
+     * Configuration attributes passed into the constructor
+     * @property config
+     * @type object
+     */
+    config: null,
+
+    /**
+     * The id of the element that will be dragged.  By default this is same 
+     * as the linked element , but could be changed to another element. Ex: 
+     * YAHOO.util.DDProxy
+     * @property dragElId
+     * @type String
+     * @private
+     */
+    dragElId: null, 
+
+    /**
+     * the id of the element that initiates the drag operation.  By default 
+     * this is the linked element, but could be changed to be a child of this
+     * element.  This lets us do things like only starting the drag when the 
+     * header element within the linked html element is clicked.
+     * @property handleElId
+     * @type String
+     * @private
+     */
+    handleElId: null, 
+
+    /**
+     * An associative array of HTML tags that will be ignored if clicked.
+     * @property invalidHandleTypes
+     * @type {string: string}
+     */
+    invalidHandleTypes: null, 
+
+    /**
+     * An associative array of ids for elements that will be ignored if clicked
+     * @property invalidHandleIds
+     * @type {string: string}
+     */
+    invalidHandleIds: null, 
+
+    /**
+     * An indexted array of css class names for elements that will be ignored
+     * if clicked.
+     * @property invalidHandleClasses
+     * @type string[]
+     */
+    invalidHandleClasses: null, 
+
+    /**
+     * The linked element's absolute X position at the time the drag was 
+     * started
+     * @property startPageX
+     * @type int
+     * @private
+     */
+    startPageX: 0,
+
+    /**
+     * The linked element's absolute X position at the time the drag was 
+     * started
+     * @property startPageY
+     * @type int
+     * @private
+     */
+    startPageY: 0,
+
+    /**
+     * The group defines a logical collection of DragDrop objects that are 
+     * related.  Instances only get events when interacting with other 
+     * DragDrop object in the same group.  This lets us define multiple 
+     * groups using a single DragDrop subclass if we want.
+     * @property groups
+     * @type {string: string}
+     */
+    groups: null,
+
+    /**
+     * Individual drag/drop instances can be locked.  This will prevent 
+     * onmousedown start drag.
+     * @property locked
+     * @type boolean
+     * @private
+     */
+    locked: false,
+
+    /**
+     * Lock this instance
+     * @method lock
+     */
+    lock: function() { this.locked = true; },
+
+    /**
+     * Unlock this instace
+     * @method unlock
+     */
+    unlock: function() { this.locked = false; },
+
+    /**
+     * By default, all instances can be a drop target.  This can be disabled by
+     * setting isTarget to false.
+     * @property isTarget
+     * @type boolean
+     */
+    isTarget: true,
+
+    /**
+     * The padding configured for this drag and drop object for calculating
+     * the drop zone intersection with this object.
+     * @property padding
+     * @type int[]
+     */
+    padding: null,
+    /**
+     * If this flag is true, do not fire drop events. The element is a drag only element (for movement not dropping)
+     * @property dragOnly
+     * @type Boolean
+     */
+    dragOnly: false,
+
+    /**
+     * Cached reference to the linked element
+     * @property _domRef
+     * @private
+     */
+    _domRef: null,
+
+    /**
+     * Internal typeof flag
+     * @property __ygDragDrop
+     * @private
+     */
+    __ygDragDrop: true,
+
+    /**
+     * Set to true when horizontal contraints are applied
+     * @property constrainX
+     * @type boolean
+     * @private
+     */
+    constrainX: false,
+
+    /**
+     * Set to true when vertical contraints are applied
+     * @property constrainY
+     * @type boolean
+     * @private
+     */
+    constrainY: false,
+
+    /**
+     * The left constraint
+     * @property minX
+     * @type int
+     * @private
+     */
+    minX: 0,
+
+    /**
+     * The right constraint
+     * @property maxX
+     * @type int
+     * @private
+     */
+    maxX: 0,
+
+    /**
+     * The up constraint 
+     * @property minY
+     * @type int
+     * @type int
+     * @private
+     */
+    minY: 0,
+
+    /**
+     * The down constraint 
+     * @property maxY
+     * @type int
+     * @private
+     */
+    maxY: 0,
+
+    /**
+     * The difference between the click position and the source element's location
+     * @property deltaX
+     * @type int
+     * @private
+     */
+    deltaX: 0,
+
+    /**
+     * The difference between the click position and the source element's location
+     * @property deltaY
+     * @type int
+     * @private
+     */
+    deltaY: 0,
+
+    /**
+     * Maintain offsets when we resetconstraints.  Set to true when you want
+     * the position of the element relative to its parent to stay the same
+     * when the page changes
+     *
+     * @property maintainOffset
+     * @type boolean
+     */
+    maintainOffset: false,
+
+    /**
+     * Array of pixel locations the element will snap to if we specified a 
+     * horizontal graduation/interval.  This array is generated automatically
+     * when you define a tick interval.
+     * @property xTicks
+     * @type int[]
+     */
+    xTicks: null,
+
+    /**
+     * Array of pixel locations the element will snap to if we specified a 
+     * vertical graduation/interval.  This array is generated automatically 
+     * when you define a tick interval.
+     * @property yTicks
+     * @type int[]
+     */
+    yTicks: null,
+
+    /**
+     * By default the drag and drop instance will only respond to the primary
+     * button click (left button for a right-handed mouse).  Set to true to
+     * allow drag and drop to start with any mouse click that is propogated
+     * by the browser
+     * @property primaryButtonOnly
+     * @type boolean
+     */
+    primaryButtonOnly: true,
+
+    /**
+     * The availabe property is false until the linked dom element is accessible.
+     * @property available
+     * @type boolean
+     */
+    available: false,
+
+    /**
+     * By default, drags can only be initiated if the mousedown occurs in the
+     * region the linked element is.  This is done in part to work around a
+     * bug in some browsers that mis-report the mousedown if the previous
+     * mouseup happened outside of the window.  This property is set to true
+     * if outer handles are defined.
+     *
+     * @property hasOuterHandles
+     * @type boolean
+     * @default false
+     */
+    hasOuterHandles: false,
+
+    /**
+     * Property that is assigned to a drag and drop object when testing to
+     * see if it is being targeted by another dd object.  This property
+     * can be used in intersect mode to help determine the focus of
+     * the mouse interaction.  DDM.getBestMatch uses this property first to
+     * determine the closest match in INTERSECT mode when multiple targets
+     * are part of the same interaction.
+     * @property cursorIsOver
+     * @type boolean
+     */
+    cursorIsOver: false,
+
+    /**
+     * Property that is assigned to a drag and drop object when testing to
+     * see if it is being targeted by another dd object.  This is a region
+     * that represents the area the draggable element overlaps this target.
+     * DDM.getBestMatch uses this property to compare the size of the overlap
+     * to that of other targets in order to determine the closest match in
+     * INTERSECT mode when multiple targets are part of the same interaction.
+     * @property overlap 
+     * @type YAHOO.util.Region
+     */
+    overlap: null,
+
+    /**
+     * Code that executes immediately before the startDrag event
+     * @method b4StartDrag
+     * @private
+     */
+    b4StartDrag: function(x, y) { },
+
+    /**
+     * Abstract method called after a drag/drop object is clicked
+     * and the drag or mousedown time thresholds have beeen met.
+     * @method startDrag
+     * @param {int} X click location
+     * @param {int} Y click location
+     */
+    startDrag: function(x, y) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDrag event
+     * @method b4Drag
+     * @private
+     */
+    b4Drag: function(e) { },
+
+    /**
+     * Abstract method called during the onMouseMove event while dragging an 
+     * object.
+     * @method onDrag
+     * @param {Event} e the mousemove event
+     */
+    onDrag: function(e) { /* override this */ },
+
+    /**
+     * Abstract method called when this element fist begins hovering over 
+     * another DragDrop obj
+     * @method onDragEnter
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this is hovering over.  In INTERSECT mode, an array of one or more 
+     * dragdrop items being hovered over.
+     */
+    onDragEnter: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragOver event
+     * @method b4DragOver
+     * @private
+     */
+    b4DragOver: function(e) { },
+
+    /**
+     * Abstract method called when this element is hovering over another 
+     * DragDrop obj
+     * @method onDragOver
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this is hovering over.  In INTERSECT mode, an array of dd items 
+     * being hovered over.
+     */
+    onDragOver: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragOut event
+     * @method b4DragOut
+     * @private
+     */
+    b4DragOut: function(e) { },
+
+    /**
+     * Abstract method called when we are no longer hovering over an element
+     * @method onDragOut
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this was hovering over.  In INTERSECT mode, an array of dd items 
+     * that the mouse is no longer over.
+     */
+    onDragOut: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragDrop event
+     * @method b4DragDrop
+     * @private
+     */
+    b4DragDrop: function(e) { },
+
+    /**
+     * Abstract method called when this item is dropped on another DragDrop 
+     * obj
+     * @method onDragDrop
+     * @param {Event} e the mouseup event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this was dropped on.  In INTERSECT mode, an array of dd items this 
+     * was dropped on.
+     */
+    onDragDrop: function(e, id) { /* override this */ },
+
+    /**
+     * Abstract method called when this item is dropped on an area with no
+     * drop target
+     * @method onInvalidDrop
+     * @param {Event} e the mouseup event
+     */
+    onInvalidDrop: function(e) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the endDrag event
+     * @method b4EndDrag
+     * @private
+     */
+    b4EndDrag: function(e) { },
+
+    /**
+     * Fired when we are done dragging the object
+     * @method endDrag
+     * @param {Event} e the mouseup event
+     */
+    endDrag: function(e) { /* override this */ },
+
+    /**
+     * Code executed immediately before the onMouseDown event
+     * @method b4MouseDown
+     * @param {Event} e the mousedown event
+     * @private
+     */
+    b4MouseDown: function(e) {  },
+
+    /**
+     * Event handler that fires when a drag/drop obj gets a mousedown
+     * @method onMouseDown
+     * @param {Event} e the mousedown event
+     */
+    onMouseDown: function(e) { /* override this */ },
+
+    /**
+     * Event handler that fires when a drag/drop obj gets a mouseup
+     * @method onMouseUp
+     * @param {Event} e the mouseup event
+     */
+    onMouseUp: function(e) { /* override this */ },
+   
+    /**
+     * Override the onAvailable method to do what is needed after the initial
+     * position was determined.
+     * @method onAvailable
+     */
+    onAvailable: function () { 
+        //this.logger.log("onAvailable (base)"); 
+    },
+
+    /**
+     * Returns a reference to the linked element
+     * @method getEl
+     * @return {HTMLElement} the html element 
+     */
+    getEl: function() { 
+        if (!this._domRef) {
+            this._domRef = Dom.get(this.id); 
+        }
+
+        return this._domRef;
+    },
+
+    /**
+     * Returns a reference to the actual element to drag.  By default this is
+     * the same as the html element, but it can be assigned to another 
+     * element. An example of this can be found in YAHOO.util.DDProxy
+     * @method getDragEl
+     * @return {HTMLElement} the html element 
+     */
+    getDragEl: function() {
+        return Dom.get(this.dragElId);
+    },
+
+    /**
+     * Sets up the DragDrop object.  Must be called in the constructor of any
+     * YAHOO.util.DragDrop subclass
+     * @method init
+     * @param id the id of the linked element
+     * @param {String} sGroup the group of related items
+     * @param {object} config configuration attributes
+     */
+    init: function(id, sGroup, config) {
+        this.initTarget(id, sGroup, config);
+        Event.on(this._domRef || this.id, "mousedown", 
+                        this.handleMouseDown, this, true);
+        // Event.on(this.id, "selectstart", Event.preventDefault);
+    },
+
+    /**
+     * Initializes Targeting functionality only... the object does not
+     * get a mousedown handler.
+     * @method initTarget
+     * @param id the id of the linked element
+     * @param {String} sGroup the group of related items
+     * @param {object} config configuration attributes
+     */
+    initTarget: function(id, sGroup, config) {
+
+        // configuration attributes 
+        this.config = config || {};
+
+        // create a local reference to the drag and drop manager
+        this.DDM = YAHOO.util.DDM;
+
+        // initialize the groups object
+        this.groups = {};
+
+        // assume that we have an element reference instead of an id if the
+        // parameter is not a string
+        if (typeof id !== "string") {
+            YAHOO.log("id is not a string, assuming it is an HTMLElement");
+            this._domRef = id;
+            id = Dom.generateId(id);
+        }
+
+        // set the id
+        this.id = id;
+
+        // add to an interaction group
+        this.addToGroup((sGroup) ? sGroup : "default");
+
+        // We don't want to register this as the handle with the manager
+        // so we just set the id rather than calling the setter.
+        this.handleElId = id;
+
+        Event.onAvailable(id, this.handleOnAvailable, this, true);
+
+        // create a logger instance
+        this.logger = (YAHOO.widget.LogWriter) ? 
+                new YAHOO.widget.LogWriter(this.toString()) : YAHOO;
+
+        // the linked element is the element that gets dragged by default
+        this.setDragElId(id); 
+
+        // by default, clicked anchors will not start drag operations. 
+        // @TODO what else should be here?  Probably form fields.
+        this.invalidHandleTypes = { A: "A" };
+        this.invalidHandleIds = {};
+        this.invalidHandleClasses = [];
+
+        this.applyConfig();
+    },
+
+    /**
+     * Applies the configuration parameters that were passed into the constructor.
+     * This is supposed to happen at each level through the inheritance chain.  So
+     * a DDProxy implentation will execute apply config on DDProxy, DD, and 
+     * DragDrop in order to get all of the parameters that are available in
+     * each object.
+     * @method applyConfig
+     */
+    applyConfig: function() {
+
+        // configurable properties: 
+        //    padding, isTarget, maintainOffset, primaryButtonOnly
+        this.padding           = this.config.padding || [0, 0, 0, 0];
+        this.isTarget          = (this.config.isTarget !== false);
+        this.maintainOffset    = (this.config.maintainOffset);
+        this.primaryButtonOnly = (this.config.primaryButtonOnly !== false);
+        this.dragOnly = ((this.config.dragOnly === true) ? true : false);
+    },
+
+    /**
+     * Executed when the linked element is available
+     * @method handleOnAvailable
+     * @private
+     */
+    handleOnAvailable: function() {
+        //this.logger.log("handleOnAvailable");
+        this.available = true;
+        this.resetConstraints();
+        this.onAvailable();
+    },
+
+     /**
+     * Configures the padding for the target zone in px.  Effectively expands
+     * (or reduces) the virtual object size for targeting calculations.  
+     * Supports css-style shorthand; if only one parameter is passed, all sides
+     * will have that padding, and if only two are passed, the top and bottom
+     * will have the first param, the left and right the second.
+     * @method setPadding
+     * @param {int} iTop    Top pad
+     * @param {int} iRight  Right pad
+     * @param {int} iBot    Bot pad
+     * @param {int} iLeft   Left pad
+     */
+    setPadding: function(iTop, iRight, iBot, iLeft) {
+        // this.padding = [iLeft, iRight, iTop, iBot];
+        if (!iRight && 0 !== iRight) {
+            this.padding = [iTop, iTop, iTop, iTop];
+        } else if (!iBot && 0 !== iBot) {
+            this.padding = [iTop, iRight, iTop, iRight];
+        } else {
+            this.padding = [iTop, iRight, iBot, iLeft];
+        }
+    },
+
+    /**
+     * Stores the initial placement of the linked element.
+     * @method setInitialPosition
+     * @param {int} diffX   the X offset, default 0
+     * @param {int} diffY   the Y offset, default 0
+     * @private
+     */
+    setInitPosition: function(diffX, diffY) {
+        var el = this.getEl();
+
+        if (!this.DDM.verifyEl(el)) {
+            this.logger.log(this.id + " element is broken");
+            return;
+        }
+
+        var dx = diffX || 0;
+        var dy = diffY || 0;
+
+        var p = Dom.getXY( el );
+
+        this.initPageX = p[0] - dx;
+        this.initPageY = p[1] - dy;
+
+        this.lastPageX = p[0];
+        this.lastPageY = p[1];
+
+        this.logger.log(this.id + " initial position: " + this.initPageX + 
+                ", " + this.initPageY);
+
+
+        this.setStartPosition(p);
+    },
+
+    /**
+     * Sets the start position of the element.  This is set when the obj
+     * is initialized, the reset when a drag is started.
+     * @method setStartPosition
+     * @param pos current position (from previous lookup)
+     * @private
+     */
+    setStartPosition: function(pos) {
+        var p = pos || Dom.getXY(this.getEl());
+
+        this.deltaSetXY = null;
+
+        this.startPageX = p[0];
+        this.startPageY = p[1];
+    },
+
+    /**
+     * Add this instance to a group of related drag/drop objects.  All 
+     * instances belong to at least one group, and can belong to as many 
+     * groups as needed.
+     * @method addToGroup
+     * @param sGroup {string} the name of the group
+     */
+    addToGroup: function(sGroup) {
+        this.groups[sGroup] = true;
+        this.DDM.regDragDrop(this, sGroup);
+    },
+
+    /**
+     * Remove's this instance from the supplied interaction group
+     * @method removeFromGroup
+     * @param {string}  sGroup  The group to drop
+     */
+    removeFromGroup: function(sGroup) {
+        this.logger.log("Removing from group: " + sGroup);
+        if (this.groups[sGroup]) {
+            delete this.groups[sGroup];
+        }
+
+        this.DDM.removeDDFromGroup(this, sGroup);
+    },
+
+    /**
+     * Allows you to specify that an element other than the linked element 
+     * will be moved with the cursor during a drag
+     * @method setDragElId
+     * @param id {string} the id of the element that will be used to initiate the drag
+     */
+    setDragElId: function(id) {
+        this.dragElId = id;
+    },
+
+    /**
+     * Allows you to specify a child of the linked element that should be 
+     * used to initiate the drag operation.  An example of this would be if 
+     * you have a content div with text and links.  Clicking anywhere in the 
+     * content area would normally start the drag operation.  Use this method
+     * to specify that an element inside of the content div is the element 
+     * that starts the drag operation.
+     * @method setHandleElId
+     * @param id {string} the id of the element that will be used to 
+     * initiate the drag.
+     */
+    setHandleElId: function(id) {
+        if (typeof id !== "string") {
+            YAHOO.log("id is not a string, assuming it is an HTMLElement");
+            id = Dom.generateId(id);
+        }
+        this.handleElId = id;
+        this.DDM.regHandle(this.id, id);
+    },
+
+    /**
+     * Allows you to set an element outside of the linked element as a drag 
+     * handle
+     * @method setOuterHandleElId
+     * @param id the id of the element that will be used to initiate the drag
+     */
+    setOuterHandleElId: function(id) {
+        if (typeof id !== "string") {
+            YAHOO.log("id is not a string, assuming it is an HTMLElement");
+            id = Dom.generateId(id);
+        }
+        this.logger.log("Adding outer handle event: " + id);
+        Event.on(id, "mousedown", 
+                this.handleMouseDown, this, true);
+        this.setHandleElId(id);
+
+        this.hasOuterHandles = true;
+    },
+
+    /**
+     * Remove all drag and drop hooks for this element
+     * @method unreg
+     */
+    unreg: function() {
+        this.logger.log("DragDrop obj cleanup " + this.id);
+        Event.removeListener(this.id, "mousedown", 
+                this.handleMouseDown);
+        this._domRef = null;
+        this.DDM._remove(this);
+    },
+
+    /**
+     * Returns true if this instance is locked, or the drag drop mgr is locked
+     * (meaning that all drag/drop is disabled on the page.)
+     * @method isLocked
+     * @return {boolean} true if this obj or all drag/drop is locked, else 
+     * false
+     */
+    isLocked: function() {
+        return (this.DDM.isLocked() || this.locked);
+    },
+
+    /**
+     * Fired when this object is clicked
+     * @method handleMouseDown
+     * @param {Event} e 
+     * @param {YAHOO.util.DragDrop} oDD the clicked dd object (this dd obj)
+     * @private
+     */
+    handleMouseDown: function(e, oDD) {
+
+        var button = e.which || e.button;
+        this.logger.log("button: " + button);
+
+        if (this.primaryButtonOnly && button > 1) {
+            this.logger.log("Mousedown was not produced by the primary button");
+            return;
+        }
+
+        if (this.isLocked()) {
+            this.logger.log("Drag and drop is disabled, aborting");
+            return;
+        }
+
+        this.logger.log("mousedown " + this.id);
+
+        this.logger.log("firing onMouseDown events");
+
+        // firing the mousedown events prior to calculating positions
+        var b4Return = this.b4MouseDown(e);
+        var mDownReturn = this.onMouseDown(e);
+
+        if ((b4Return === false) || (mDownReturn === false)) {
+            this.logger.log('b4MouseDown or onMouseDown returned false, exiting drag');
+            return;
+        }
+
+        this.DDM.refreshCache(this.groups);
+        // var self = this;
+        // setTimeout( function() { self.DDM.refreshCache(self.groups); }, 0);
+
+        // Only process the event if we really clicked within the linked 
+        // element.  The reason we make this check is that in the case that 
+        // another element was moved between the clicked element and the 
+        // cursor in the time between the mousedown and mouseup events. When 
+        // this happens, the element gets the next mousedown event 
+        // regardless of where on the screen it happened.  
+        var pt = new YAHOO.util.Point(Event.getPageX(e), Event.getPageY(e));
+        if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) )  {
+                this.logger.log("Click was not over the element: " + this.id);
+        } else {
+            if (this.clickValidator(e)) {
+
+                this.logger.log("click was a valid handle");
+
+                // set the initial element position
+                this.setStartPosition();
+
+                // start tracking mousemove distance and mousedown time to
+                // determine when to start the actual drag
+                this.DDM.handleMouseDown(e, this);
+
+                // this mousedown is mine
+                this.DDM.stopEvent(e);
+            } else {
+
+this.logger.log("clickValidator returned false, drag not initiated");
+
+            }
+        }
+    },
+
+    /**
+     * @method clickValidator
+     * @description Method validates that the clicked element
+     * was indeed the handle or a valid child of the handle
+     * @param {Event} e 
+     * @private
+     */
+    clickValidator: function(e) {
+        var target = Event.getTarget(e);
+        return ( this.isValidHandleChild(target) &&
+                    (this.id == this.handleElId || 
+                        this.DDM.handleWasClicked(target, this.id)) );
+    },
+
+    /**
+     * Finds the location the element should be placed if we want to move
+     * it to where the mouse location less the click offset would place us.
+     * @method getTargetCoord
+     * @param {int} iPageX the X coordinate of the click
+     * @param {int} iPageY the Y coordinate of the click
+     * @return an object that contains the coordinates (Object.x and Object.y)
+     * @private
+     */
+    getTargetCoord: function(iPageX, iPageY) {
+
+        // this.logger.log("getTargetCoord: " + iPageX + ", " + iPageY);
+
+        var x = iPageX - this.deltaX;
+        var y = iPageY - this.deltaY;
+
+        if (this.constrainX) {
+            if (x < this.minX) { x = this.minX; }
+            if (x > this.maxX) { x = this.maxX; }
+        }
+
+        if (this.constrainY) {
+            if (y < this.minY) { y = this.minY; }
+            if (y > this.maxY) { y = this.maxY; }
+        }
+
+        x = this.getTick(x, this.xTicks);
+        y = this.getTick(y, this.yTicks);
+
+        // this.logger.log("getTargetCoord " + 
+                // " iPageX: " + iPageX +
+                // " iPageY: " + iPageY +
+                // " x: " + x + ", y: " + y);
+
+        return {x:x, y:y};
+    },
+
+    /**
+     * Allows you to specify a tag name that should not start a drag operation
+     * when clicked.  This is designed to facilitate embedding links within a
+     * drag handle that do something other than start the drag.
+     * @method addInvalidHandleType
+     * @param {string} tagName the type of element to exclude
+     */
+    addInvalidHandleType: function(tagName) {
+        var type = tagName.toUpperCase();
+        this.invalidHandleTypes[type] = type;
+    },
+
+    /**
+     * Lets you to specify an element id for a child of a drag handle
+     * that should not initiate a drag
+     * @method addInvalidHandleId
+     * @param {string} id the element id of the element you wish to ignore
+     */
+    addInvalidHandleId: function(id) {
+        if (typeof id !== "string") {
+            YAHOO.log("id is not a string, assuming it is an HTMLElement");
+            id = Dom.generateId(id);
+        }
+        this.invalidHandleIds[id] = id;
+    },
+
+
+    /**
+     * Lets you specify a css class of elements that will not initiate a drag
+     * @method addInvalidHandleClass
+     * @param {string} cssClass the class of the elements you wish to ignore
+     */
+    addInvalidHandleClass: function(cssClass) {
+        this.invalidHandleClasses.push(cssClass);
+    },
+
+    /**
+     * Unsets an excluded tag name set by addInvalidHandleType
+     * @method removeInvalidHandleType
+     * @param {string} tagName the type of element to unexclude
+     */
+    removeInvalidHandleType: function(tagName) {
+        var type = tagName.toUpperCase();
+        // this.invalidHandleTypes[type] = null;
+        delete this.invalidHandleTypes[type];
+    },
+    
+    /**
+     * Unsets an invalid handle id
+     * @method removeInvalidHandleId
+     * @param {string} id the id of the element to re-enable
+     */
+    removeInvalidHandleId: function(id) {
+        if (typeof id !== "string") {
+            YAHOO.log("id is not a string, assuming it is an HTMLElement");
+            id = Dom.generateId(id);
+        }
+        delete this.invalidHandleIds[id];
+    },
+
+    /**
+     * Unsets an invalid css class
+     * @method removeInvalidHandleClass
+     * @param {string} cssClass the class of the element(s) you wish to 
+     * re-enable
+     */
+    removeInvalidHandleClass: function(cssClass) {
+        for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {
+            if (this.invalidHandleClasses[i] == cssClass) {
+                delete this.invalidHandleClasses[i];
+            }
+        }
+    },
+
+    /**
+     * Checks the tag exclusion list to see if this click should be ignored
+     * @method isValidHandleChild
+     * @param {HTMLElement} node the HTMLElement to evaluate
+     * @return {boolean} true if this is a valid tag type, false if not
+     */
+    isValidHandleChild: function(node) {
+
+        var valid = true;
+        // var n = (node.nodeName == "#text") ? node.parentNode : node;
+        var nodeName;
+        try {
+            nodeName = node.nodeName.toUpperCase();
+        } catch(e) {
+            nodeName = node.nodeName;
+        }
+        valid = valid && !this.invalidHandleTypes[nodeName];
+        valid = valid && !this.invalidHandleIds[node.id];
+
+        for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {
+            valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);
+        }
+
+        this.logger.log("Valid handle? ... " + valid);
+
+        return valid;
+
+    },
+
+    /**
+     * Create the array of horizontal tick marks if an interval was specified
+     * in setXConstraint().
+     * @method setXTicks
+     * @private
+     */
+    setXTicks: function(iStartX, iTickSize) {
+        this.xTicks = [];
+        this.xTickSize = iTickSize;
+        
+        var tickMap = {};
+
+        for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {
+            if (!tickMap[i]) {
+                this.xTicks[this.xTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {
+            if (!tickMap[i]) {
+                this.xTicks[this.xTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        this.xTicks.sort(this.DDM.numericSort) ;
+        this.logger.log("xTicks: " + this.xTicks.join());
+    },
+
+    /**
+     * Create the array of vertical tick marks if an interval was specified in 
+     * setYConstraint().
+     * @method setYTicks
+     * @private
+     */
+    setYTicks: function(iStartY, iTickSize) {
+        // this.logger.log("setYTicks: " + iStartY + ", " + iTickSize
+               // + ", " + this.initPageY + ", " + this.minY + ", " + this.maxY );
+        this.yTicks = [];
+        this.yTickSize = iTickSize;
+
+        var tickMap = {};
+
+        for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {
+            if (!tickMap[i]) {
+                this.yTicks[this.yTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {
+            if (!tickMap[i]) {
+                this.yTicks[this.yTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        this.yTicks.sort(this.DDM.numericSort) ;
+        this.logger.log("yTicks: " + this.yTicks.join());
+    },
+
+    /**
+     * By default, the element can be dragged any place on the screen.  Use 
+     * this method to limit the horizontal travel of the element.  Pass in 
+     * 0,0 for the parameters if you want to lock the drag to the y axis.
+     * @method setXConstraint
+     * @param {int} iLeft the number of pixels the element can move to the left
+     * @param {int} iRight the number of pixels the element can move to the 
+     * right
+     * @param {int} iTickSize optional parameter for specifying that the 
+     * element
+     * should move iTickSize pixels at a time.
+     */
+    setXConstraint: function(iLeft, iRight, iTickSize) {
+        this.leftConstraint = parseInt(iLeft, 10);
+        this.rightConstraint = parseInt(iRight, 10);
+
+        this.minX = this.initPageX - this.leftConstraint;
+        this.maxX = this.initPageX + this.rightConstraint;
+        if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }
+
+        this.constrainX = true;
+        this.logger.log("initPageX:" + this.initPageX + " minX:" + this.minX + 
+                " maxX:" + this.maxX);
+    },
+
+    /**
+     * Clears any constraints applied to this instance.  Also clears ticks
+     * since they can't exist independent of a constraint at this time.
+     * @method clearConstraints
+     */
+    clearConstraints: function() {
+        this.logger.log("Clearing constraints");
+        this.constrainX = false;
+        this.constrainY = false;
+        this.clearTicks();
+    },
+
+    /**
+     * Clears any tick interval defined for this instance
+     * @method clearTicks
+     */
+    clearTicks: function() {
+        this.logger.log("Clearing ticks");
+        this.xTicks = null;
+        this.yTicks = null;
+        this.xTickSize = 0;
+        this.yTickSize = 0;
+    },
+
+    /**
+     * By default, the element can be dragged any place on the screen.  Set 
+     * this to limit the vertical travel of the element.  Pass in 0,0 for the
+     * parameters if you want to lock the drag to the x axis.
+     * @method setYConstraint
+     * @param {int} iUp the number of pixels the element can move up
+     * @param {int} iDown the number of pixels the element can move down
+     * @param {int} iTickSize optional parameter for specifying that the 
+     * element should move iTickSize pixels at a time.
+     */
+    setYConstraint: function(iUp, iDown, iTickSize) {
+        this.logger.log("setYConstraint: " + iUp + "," + iDown + "," + iTickSize);
+        this.topConstraint = parseInt(iUp, 10);
+        this.bottomConstraint = parseInt(iDown, 10);
+
+        this.minY = this.initPageY - this.topConstraint;
+        this.maxY = this.initPageY + this.bottomConstraint;
+        if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }
+
+        this.constrainY = true;
+        
+        this.logger.log("initPageY:" + this.initPageY + " minY:" + this.minY + 
+                " maxY:" + this.maxY);
+    },
+
+    /**
+     * resetConstraints must be called if you manually reposition a dd element.
+     * @method resetConstraints
+     */
+    resetConstraints: function() {
+
+        //this.logger.log("resetConstraints");
+
+        // Maintain offsets if necessary
+        if (this.initPageX || this.initPageX === 0) {
+            //this.logger.log("init pagexy: " + this.initPageX + ", " + 
+                               //this.initPageY);
+            //this.logger.log("last pagexy: " + this.lastPageX + ", " + 
+                               //this.lastPageY);
+            // figure out how much this thing has moved
+            var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;
+            var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;
+
+            this.setInitPosition(dx, dy);
+
+        // This is the first time we have detected the element's position
+        } else {
+            this.setInitPosition();
+        }
+
+        if (this.constrainX) {
+            this.setXConstraint( this.leftConstraint, 
+                                 this.rightConstraint, 
+                                 this.xTickSize        );
+        }
+
+        if (this.constrainY) {
+            this.setYConstraint( this.topConstraint, 
+                                 this.bottomConstraint, 
+                                 this.yTickSize         );
+        }
+    },
+
+    /**
+     * Normally the drag element is moved pixel by pixel, but we can specify 
+     * that it move a number of pixels at a time.  This method resolves the 
+     * location when we have it set up like this.
+     * @method getTick
+     * @param {int} val where we want to place the object
+     * @param {int[]} tickArray sorted array of valid points
+     * @return {int} the closest tick
+     * @private
+     */
+    getTick: function(val, tickArray) {
+
+        if (!tickArray) {
+            // If tick interval is not defined, it is effectively 1 pixel, 
+            // so we return the value passed to us.
+            return val; 
+        } else if (tickArray[0] >= val) {
+            // The value is lower than the first tick, so we return the first
+            // tick.
+            return tickArray[0];
+        } else {
+            for (var i=0, len=tickArray.length; i<len; ++i) {
+                var next = i + 1;
+                if (tickArray[next] && tickArray[next] >= val) {
+                    var diff1 = val - tickArray[i];
+                    var diff2 = tickArray[next] - val;
+                    return (diff2 > diff1) ? tickArray[i] : tickArray[next];
+                }
+            }
+
+            // The value is larger than the last tick, so we return the last
+            // tick.
+            return tickArray[tickArray.length - 1];
+        }
+    },
+
+    /**
+     * toString method
+     * @method toString
+     * @return {string} string representation of the dd obj
+     */
+    toString: function() {
+        return ("DragDrop " + this.id);
+    }
+
+};
+
+})();
+/**
+ * A DragDrop implementation where the linked element follows the 
+ * mouse cursor during a drag.
+ * @class DD
+ * @extends YAHOO.util.DragDrop
+ * @constructor
+ * @param {String} id the id of the linked element 
+ * @param {String} sGroup the group of related DragDrop items
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DD: 
+ *                    scroll
+ */
+YAHOO.util.DD = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config);
+    }
+};
+
+YAHOO.extend(YAHOO.util.DD, YAHOO.util.DragDrop, {
+
+    /**
+     * When set to true, the utility automatically tries to scroll the browser
+     * window wehn a drag and drop element is dragged near the viewport boundary.
+     * Defaults to true.
+     * @property scroll
+     * @type boolean
+     */
+    scroll: true, 
+
+    /**
+     * Sets the pointer offset to the distance between the linked element's top 
+     * left corner and the location the element was clicked
+     * @method autoOffset
+     * @param {int} iPageX the X coordinate of the click
+     * @param {int} iPageY the Y coordinate of the click
+     */
+    autoOffset: function(iPageX, iPageY) {
+        var x = iPageX - this.startPageX;
+        var y = iPageY - this.startPageY;
+        this.setDelta(x, y);
+        // this.logger.log("autoOffset el pos: " + aCoord + ", delta: " + x + "," + y);
+    },
+
+    /** 
+     * Sets the pointer offset.  You can call this directly to force the 
+     * offset to be in a particular location (e.g., pass in 0,0 to set it 
+     * to the center of the object, as done in YAHOO.widget.Slider)
+     * @method setDelta
+     * @param {int} iDeltaX the distance from the left
+     * @param {int} iDeltaY the distance from the top
+     */
+    setDelta: function(iDeltaX, iDeltaY) {
+        this.deltaX = iDeltaX;
+        this.deltaY = iDeltaY;
+        this.logger.log("deltaX:" + this.deltaX + ", deltaY:" + this.deltaY);
+    },
+
+    /**
+     * Sets the drag element to the location of the mousedown or click event, 
+     * maintaining the cursor location relative to the location on the element 
+     * that was clicked.  Override this if you want to place the element in a 
+     * location other than where the cursor is.
+     * @method setDragElPos
+     * @param {int} iPageX the X coordinate of the mousedown or drag event
+     * @param {int} iPageY the Y coordinate of the mousedown or drag event
+     */
+    setDragElPos: function(iPageX, iPageY) {
+        // the first time we do this, we are going to check to make sure
+        // the element has css positioning
+
+        var el = this.getDragEl();
+        this.alignElWithMouse(el, iPageX, iPageY);
+    },
+
+    /**
+     * Sets the element to the location of the mousedown or click event, 
+     * maintaining the cursor location relative to the location on the element 
+     * that was clicked.  Override this if you want to place the element in a 
+     * location other than where the cursor is.
+     * @method alignElWithMouse
+     * @param {HTMLElement} el the element to move
+     * @param {int} iPageX the X coordinate of the mousedown or drag event
+     * @param {int} iPageY the Y coordinate of the mousedown or drag event
+     */
+    alignElWithMouse: function(el, iPageX, iPageY) {
+        var oCoord = this.getTargetCoord(iPageX, iPageY);
+        // this.logger.log("****alignElWithMouse : " + el.id + ", " + aCoord + ", " + el.style.display);
+
+        if (!this.deltaSetXY) {
+            var aCoord = [oCoord.x, oCoord.y];
+            YAHOO.util.Dom.setXY(el, aCoord);
+            var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );
+            var newTop  = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );
+
+            this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];
+        } else {
+            YAHOO.util.Dom.setStyle(el, "left", (oCoord.x + this.deltaSetXY[0]) + "px");
+            YAHOO.util.Dom.setStyle(el, "top",  (oCoord.y + this.deltaSetXY[1]) + "px");
+            //el.style.left = (oCoord.x + this.deltaSetXY[0]) + "px";
+            //el.style.top = (oCoord.y + this.deltaSetXY[1]) + "px";
+        }
+        
+        this.cachePosition(oCoord.x, oCoord.y);
+        //DAV
+        var self = this;
+        setTimeout(function() {
+            self.autoScroll.call(self, oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);
+        }, 0);
+    },
+
+    /**
+     * Saves the most recent position so that we can reset the constraints and
+     * tick marks on-demand.  We need to know this so that we can calculate the
+     * number of pixels the element is offset from its original position.
+     * @method cachePosition
+     * @param iPageX the current x position (optional, this just makes it so we
+     * don't have to look it up again)
+     * @param iPageY the current y position (optional, this just makes it so we
+     * don't have to look it up again)
+     */
+    cachePosition: function(iPageX, iPageY) {
+        if (iPageX) {
+            this.lastPageX = iPageX;
+            this.lastPageY = iPageY;
+        } else {
+            var aCoord = YAHOO.util.Dom.getXY(this.getEl());
+            this.lastPageX = aCoord[0];
+            this.lastPageY = aCoord[1];
+        }
+    },
+
+    /**
+     * Auto-scroll the window if the dragged object has been moved beyond the 
+     * visible window boundary.
+     * @method autoScroll
+     * @param {int} x the drag element's x position
+     * @param {int} y the drag element's y position
+     * @param {int} h the height of the drag element
+     * @param {int} w the width of the drag element
+     * @private
+     */
+    autoScroll: function(x, y, h, w) {
+
+        if (this.scroll) {
+            // The client height
+            var clientH = this.DDM.getClientHeight();
+
+            // The client width
+            var clientW = this.DDM.getClientWidth();
+
+            // The amt scrolled down
+            var st = this.DDM.getScrollTop();
+
+            // The amt scrolled right
+            var sl = this.DDM.getScrollLeft();
+
+            // Location of the bottom of the element
+            var bot = h + y;
+
+            // Location of the right of the element
+            var right = w + x;
+
+            // The distance from the cursor to the bottom of the visible area, 
+            // adjusted so that we don't scroll if the cursor is beyond the
+            // element drag constraints
+            var toBot = (clientH + st - y - this.deltaY);
+
+            // The distance from the cursor to the right of the visible area
+            var toRight = (clientW + sl - x - this.deltaX);
+
+            // this.logger.log( " x: " + x + " y: " + y + " h: " + h + 
+            // " clientH: " + clientH + " clientW: " + clientW + 
+            // " st: " + st + " sl: " + sl + " bot: " + bot + 
+            // " right: " + right + " toBot: " + toBot + " toRight: " + toRight);
+
+            // How close to the edge the cursor must be before we scroll
+            // var thresh = (document.all) ? 100 : 40;
+            var thresh = 40;
+
+            // How many pixels to scroll per autoscroll op.  This helps to reduce 
+            // clunky scrolling. IE is more sensitive about this ... it needs this 
+            // value to be higher.
+            var scrAmt = (document.all) ? 80 : 30;
+
+            // Scroll down if we are near the bottom of the visible page and the 
+            // obj extends below the crease
+            if ( bot > clientH && toBot < thresh ) { 
+                window.scrollTo(sl, st + scrAmt); 
+            }
+
+            // Scroll up if the window is scrolled down and the top of the object
+            // goes above the top border
+            if ( y < st && st > 0 && y - st < thresh ) { 
+                window.scrollTo(sl, st - scrAmt); 
+            }
+
+            // Scroll right if the obj is beyond the right border and the cursor is
+            // near the border.
+            if ( right > clientW && toRight < thresh ) { 
+                window.scrollTo(sl + scrAmt, st); 
+            }
+
+            // Scroll left if the window has been scrolled to the right and the obj
+            // extends past the left border
+            if ( x < sl && sl > 0 && x - sl < thresh ) { 
+                window.scrollTo(sl - scrAmt, st);
+            }
+        }
+    },
+
+    /*
+     * Sets up config options specific to this class. Overrides
+     * YAHOO.util.DragDrop, but all versions of this method through the 
+     * inheritance chain are called
+     */
+    applyConfig: function() {
+        YAHOO.util.DD.superclass.applyConfig.call(this);
+        this.scroll = (this.config.scroll !== false);
+    },
+
+    /*
+     * Event that fires prior to the onMouseDown event.  Overrides 
+     * YAHOO.util.DragDrop.
+     */
+    b4MouseDown: function(e) {
+        this.setStartPosition();
+        // this.resetConstraints();
+        this.autoOffset(YAHOO.util.Event.getPageX(e), 
+                            YAHOO.util.Event.getPageY(e));
+    },
+
+    /*
+     * Event that fires prior to the onDrag event.  Overrides 
+     * YAHOO.util.DragDrop.
+     */
+    b4Drag: function(e) {
+        this.setDragElPos(YAHOO.util.Event.getPageX(e), 
+                            YAHOO.util.Event.getPageY(e));
+    },
+
+    toString: function() {
+        return ("DD " + this.id);
+    }
+
+    //////////////////////////////////////////////////////////////////////////
+    // Debugging ygDragDrop events that can be overridden
+    //////////////////////////////////////////////////////////////////////////
+    /*
+    startDrag: function(x, y) {
+        this.logger.log(this.id.toString()  + " startDrag");
+    },
+
+    onDrag: function(e) {
+        this.logger.log(this.id.toString() + " onDrag");
+    },
+
+    onDragEnter: function(e, id) {
+        this.logger.log(this.id.toString() + " onDragEnter: " + id);
+    },
+
+    onDragOver: function(e, id) {
+        this.logger.log(this.id.toString() + " onDragOver: " + id);
+    },
+
+    onDragOut: function(e, id) {
+        this.logger.log(this.id.toString() + " onDragOut: " + id);
+    },
+
+    onDragDrop: function(e, id) {
+        this.logger.log(this.id.toString() + " onDragDrop: " + id);
+    },
+
+    endDrag: function(e) {
+        this.logger.log(this.id.toString() + " endDrag");
+    }
+
+    */
+
+});
+/**
+ * A DragDrop implementation that inserts an empty, bordered div into
+ * the document that follows the cursor during drag operations.  At the time of
+ * the click, the frame div is resized to the dimensions of the linked html
+ * element, and moved to the exact location of the linked element.
+ *
+ * References to the "frame" element refer to the single proxy element that
+ * was created to be dragged in place of all DDProxy elements on the
+ * page.
+ *
+ * @class DDProxy
+ * @extends YAHOO.util.DD
+ * @constructor
+ * @param {String} id the id of the linked html element
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DDProxy in addition to those in DragDrop: 
+ *                   resizeFrame, centerFrame, dragElId
+ */
+YAHOO.util.DDProxy = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config);
+        this.initFrame(); 
+    }
+};
+
+/**
+ * The default drag frame div id
+ * @property YAHOO.util.DDProxy.dragElId
+ * @type String
+ * @static
+ */
+YAHOO.util.DDProxy.dragElId = "ygddfdiv";
+
+YAHOO.extend(YAHOO.util.DDProxy, YAHOO.util.DD, {
+
+    /**
+     * By default we resize the drag frame to be the same size as the element
+     * we want to drag (this is to get the frame effect).  We can turn it off
+     * if we want a different behavior.
+     * @property resizeFrame
+     * @type boolean
+     */
+    resizeFrame: true,
+
+    /**
+     * By default the frame is positioned exactly where the drag element is, so
+     * we use the cursor offset provided by YAHOO.util.DD.  Another option that works only if
+     * you do not have constraints on the obj is to have the drag frame centered
+     * around the cursor.  Set centerFrame to true for this effect.
+     * @property centerFrame
+     * @type boolean
+     */
+    centerFrame: false,
+
+    /**
+     * Creates the proxy element if it does not yet exist
+     * @method createFrame
+     */
+    createFrame: function() {
+        var self=this, body=document.body;
+
+        if (!body || !body.firstChild) {
+            setTimeout( function() { self.createFrame(); }, 50 );
+            return;
+        }
+
+        var div=this.getDragEl(), Dom=YAHOO.util.Dom;
+
+        if (!div) {
+            div    = document.createElement("div");
+            div.id = this.dragElId;
+            var s  = div.style;
+
+            s.position   = "absolute";
+            s.visibility = "hidden";
+            s.cursor     = "move";
+            s.border     = "2px solid #aaa";
+            s.zIndex     = 999;
+            s.height     = "25px";
+            s.width      = "25px";
+
+            var _data = document.createElement('div');
+            Dom.setStyle(_data, 'height', '100%');
+            Dom.setStyle(_data, 'width', '100%');
+            /**
+            * If the proxy element has no background-color, then it is considered to the "transparent" by Internet Explorer.
+            * Since it is "transparent" then the events pass through it to the iframe below.
+            * So creating a "fake" div inside the proxy element and giving it a background-color, then setting it to an
+            * opacity of 0, it appears to not be there, however IE still thinks that it is so the events never pass through.
+            */
+            Dom.setStyle(_data, 'background-color', '#ccc');
+            Dom.setStyle(_data, 'opacity', '0');
+            div.appendChild(_data);
+
+            // appendChild can blow up IE if invoked prior to the window load event
+            // while rendering a table.  It is possible there are other scenarios 
+            // that would cause this to happen as well.
+            body.insertBefore(div, body.firstChild);
+        }
+    },
+
+    /**
+     * Initialization for the drag frame element.  Must be called in the
+     * constructor of all subclasses
+     * @method initFrame
+     */
+    initFrame: function() {
+        this.createFrame();
+    },
+
+    applyConfig: function() {
+        //this.logger.log("DDProxy applyConfig");
+        YAHOO.util.DDProxy.superclass.applyConfig.call(this);
+
+        this.resizeFrame = (this.config.resizeFrame !== false);
+        this.centerFrame = (this.config.centerFrame);
+        this.setDragElId(this.config.dragElId || YAHOO.util.DDProxy.dragElId);
+    },
+
+    /**
+     * Resizes the drag frame to the dimensions of the clicked object, positions 
+     * it over the object, and finally displays it
+     * @method showFrame
+     * @param {int} iPageX X click position
+     * @param {int} iPageY Y click position
+     * @private
+     */
+    showFrame: function(iPageX, iPageY) {
+        var el = this.getEl();
+        var dragEl = this.getDragEl();
+        var s = dragEl.style;
+
+        this._resizeProxy();
+
+        if (this.centerFrame) {
+            this.setDelta( Math.round(parseInt(s.width,  10)/2), 
+                           Math.round(parseInt(s.height, 10)/2) );
+        }
+
+        this.setDragElPos(iPageX, iPageY);
+
+        YAHOO.util.Dom.setStyle(dragEl, "visibility", "visible"); 
+    },
+
+    /**
+     * The proxy is automatically resized to the dimensions of the linked
+     * element when a drag is initiated, unless resizeFrame is set to false
+     * @method _resizeProxy
+     * @private
+     */
+    _resizeProxy: function() {
+        if (this.resizeFrame) {
+            var DOM    = YAHOO.util.Dom;
+            var el     = this.getEl();
+            var dragEl = this.getDragEl();
+
+            var bt = parseInt( DOM.getStyle(dragEl, "borderTopWidth"    ), 10);
+            var br = parseInt( DOM.getStyle(dragEl, "borderRightWidth"  ), 10);
+            var bb = parseInt( DOM.getStyle(dragEl, "borderBottomWidth" ), 10);
+            var bl = parseInt( DOM.getStyle(dragEl, "borderLeftWidth"   ), 10);
+
+            if (isNaN(bt)) { bt = 0; }
+            if (isNaN(br)) { br = 0; }
+            if (isNaN(bb)) { bb = 0; }
+            if (isNaN(bl)) { bl = 0; }
+
+            this.logger.log("proxy size: " + bt + "  " + br + " " + bb + " " + bl);
+
+            var newWidth  = Math.max(0, el.offsetWidth  - br - bl);                                                                                           
+            var newHeight = Math.max(0, el.offsetHeight - bt - bb);
+
+            this.logger.log("Resizing proxy element");
+
+            DOM.setStyle( dragEl, "width",  newWidth  + "px" );
+            DOM.setStyle( dragEl, "height", newHeight + "px" );
+        }
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4MouseDown: function(e) {
+        this.setStartPosition();
+        var x = YAHOO.util.Event.getPageX(e);
+        var y = YAHOO.util.Event.getPageY(e);
+        this.autoOffset(x, y);
+
+        // This causes the autoscroll code to kick off, which means autoscroll can
+        // happen prior to the check for a valid drag handle.
+        // this.setDragElPos(x, y);
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4StartDrag: function(x, y) {
+        // show the drag frame
+        this.logger.log("start drag show frame, x: " + x + ", y: " + y);
+        this.showFrame(x, y);
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4EndDrag: function(e) {
+        this.logger.log(this.id + " b4EndDrag");
+        YAHOO.util.Dom.setStyle(this.getDragEl(), "visibility", "hidden"); 
+    },
+
+    // overrides YAHOO.util.DragDrop
+    // By default we try to move the element to the last location of the frame.  
+    // This is so that the default behavior mirrors that of YAHOO.util.DD.  
+    endDrag: function(e) {
+        var DOM = YAHOO.util.Dom;
+        this.logger.log(this.id + " endDrag");
+        var lel = this.getEl();
+        var del = this.getDragEl();
+
+        // Show the drag frame briefly so we can get its position
+        // del.style.visibility = "";
+        DOM.setStyle(del, "visibility", ""); 
+
+        // Hide the linked element before the move to get around a Safari 
+        // rendering bug.
+        //lel.style.visibility = "hidden";
+        DOM.setStyle(lel, "visibility", "hidden"); 
+        YAHOO.util.DDM.moveToEl(lel, del);
+        //del.style.visibility = "hidden";
+        DOM.setStyle(del, "visibility", "hidden"); 
+        //lel.style.visibility = "";
+        DOM.setStyle(lel, "visibility", ""); 
+    },
+
+    toString: function() {
+        return ("DDProxy " + this.id);
+    }
+
+});
+/**
+ * A DragDrop implementation that does not move, but can be a drop 
+ * target.  You would get the same result by simply omitting implementation 
+ * for the event callbacks, but this way we reduce the processing cost of the 
+ * event listener and the callbacks.
+ * @class DDTarget
+ * @extends YAHOO.util.DragDrop 
+ * @constructor
+ * @param {String} id the id of the element that is a drop target
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                 Valid properties for DDTarget in addition to those in 
+ *                 DragDrop: 
+ *                    none
+ */
+YAHOO.util.DDTarget = function(id, sGroup, config) {
+    if (id) {
+        this.initTarget(id, sGroup, config);
+    }
+};
+
+// YAHOO.util.DDTarget.prototype = new YAHOO.util.DragDrop();
+YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {
+    toString: function() {
+        return ("DDTarget " + this.id);
+    }
+});
+YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/dragdrop/dragdrop-debug.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dragdrop/README
===================================================================
--- tags/2.7.0/wb/include/yui/dragdrop/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dragdrop/README	(revision 838)
@@ -0,0 +1,162 @@
+Drag and Drop Release Notes
+
+2.4.1
+No change
+
+2.4.0
+  * Added configuration option called "dragOnly". If dragOnly is set to true,
+    all event in the fireEvents method will not fire. These events are:
+        onInvalidDrop
+        b4DragOut & onDragOut
+        onDragEnter
+        b4DragOver & onDragOver
+        b4DragDrop & onDragDrop
+    This config option should be used to drag elements that have no need for
+        drop interaction. They are elements that just need to move.
+
+2.3.1
+  * No change
+
+2.3.0
+  * YAHOO.util.DragDropMgr.stopDrag is now public, and can be used to cancel
+    a drag in progress.  An optional "silent" flag was added to skip the
+    onMouseUp and endDrag functions when needed (eliminating the need to
+    supply mouseup page coordinates to these functions).
+  * DDProxy: the position of the proxy is not set before the drag is confirmed,
+    preventing auto-scroll from distrupting the user experience.
+  * Modified the default proxy so that IE properly registers the proxy as
+    the event target during the drag.
+  * If a dd instance is created using a dom reference rather than an id, that
+    reference is stored and used throughout making it possible to control
+    instances outside the current window.
+  * The document mousemove listener no longer returns true.
+
+2.2.2
+  * No change
+
+2.2.1
+
+  * Added YAHOO.util.DragDropMgr.interactionInfo, which is
+    a repository of interaction information accumulated during
+    the current event loop result, and accessible from the
+    handlers for the events.
+  * The region for the dragged element is now cached while
+    processing the drag and drop events
+  * List example supports moving an item to an empty list
+  * Fixed missing html tags in the examples
+  * The debug version now works when included before the logger is included.
+
+2.2.0
+
+  * onMouseDown event is executed before element positions are calculated
+  * refreshCache refreshes everything if groups array is not provided
+  * setX/setYConstraint doesn't fail when presented ints cast as strings
+
+0.12.2
+
+  * No change
+
+0.12.1
+
+  * Added a STRICT_INTERSECT drag and drop interaction mode.  This alters the
+    behavior of DDM::getBestMatch.  INTERSECT mode first tests the cursor
+    location, and if it is over the target that target wins, otherwise it
+    tests the overlap of the elements.  STRICT_INTERSECT mode tests only 
+    the overlap, the largest overlap wins.
+
+  * getBestMatch will work for targeted elements that have no overlap.
+
+0.12.0
+
+   * The logic to determine if a drag should be initiated has been isolated
+     to the clickValidator method.  This method can be overridden to provide
+     custom valdiation logic.  For example, it is possible to specify hotspots
+     of any dimension or shape.  The provided example shows how to make only
+     a circular region in the middle of the element initiate a drag.
+
+   * Added a new drag and drop event: onInvalidDrop.  This is executed when
+     the dragged element in dropped in a location without a target.  Previously
+     this condition could only detected by implementing handlers for three 
+     other events.
+
+   * Now accepts an element reference in lieu of an id.  Ids will
+     be generated if the element does not have one.
+
+   * Fixed horizontal autoscroll when scrollTop is zero.
+
+   * Added hasOuterHandles property to bypass the isOverTarget check in the
+     mousedown validation routine.  Fixes setOuterHandleElId.
+
+0.11.4
+
+   * YAHOO.util.DragDropMgr.swapNode now handles adjacent nodes properly
+   
+   * Fixed missing variable declarations
+
+0.11.3
+ 
+   * Fixed a JavaScript error that would be generated when trying to implement
+     DDProxy using the default settings and a tiny element.
+
+   * Fixed an error that resulted when constraints were applied to DragDrop 
+     instances.
+
+0.11.2
+
+   * Drag and drop will no longer interfere with selecting text on elements
+     that are not involved in drag and drop.
+
+   * The shared drag and drop proxy element now resizes correctly when autoResize
+     is enabled.
+
+0.11.1
+
+   * Fixes an issue where the setXY cache could get out of sync if the element's
+     offsetParent is changed during onDragDrop.
+
+0.11.0
+
+   * The Dom.util.setXY calculation for the initial placement of the dragged
+     element is cached during the drag, enhancing the drag performance.
+
+   * DDProxy no longer enforces having a single proxy element for all instances.
+     dragElId can be set in the config object in the constructor.  If the
+     element already exists it will use that element, otherwise a new one will
+     be created with that id.
+
+   * DDProxy->borderWidth has been removed. The value is calculated on the fly
+     instead.
+
+   * Added DragDrop->clearTicks and DragDrop->clearConstraints
+
+   * All drag and drop constructors now have an additional, optional parameter
+     call "config".  It is an object that can contain properties for a
+     number of configuration settings.
+
+   * Drag and drop will not be disabled for elements that cannot have their
+     location determined.
+
+   * isLegalTarget won't return dd objects that are not targetable.
+
+   * Added DragDrop->removeFromGroup.
+
+   * Constraints are now applied properly when determining which drag and drop
+     events should fire.
+
+
+0.10.0
+
+   * Improved the performance when in intersect mode
+
+   * It was possible for the drag and drop initialization to be skipped
+     for very slow loading pages.  This was fixed.
+
+   * New methods to exclude regions within your drag and drop element: 
+     addInvalidHandleId(), addInvalidHandleClass()
+
+   * Added an onAvailable handler that is executed after the initial state is set.
+
+   * Drag and drop is more forgiving when the implementer attempts to create the
+     instance prior to the element being in the document, but after the window
+     load event has fired.
+

Property changes on: tags/2.7.0/wb/include/yui/dragdrop/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dragdrop/dragdrop.js
===================================================================
--- tags/2.7.0/wb/include/yui/dragdrop/dragdrop.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dragdrop/dragdrop.js	(revision 838)
@@ -0,0 +1,3145 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+/**
+ * The drag and drop utility provides a framework for building drag and drop
+ * applications.  In addition to enabling drag and drop for specific elements,
+ * the drag and drop elements are tracked by the manager class, and the
+ * interactions between the various elements are tracked during the drag and
+ * the implementing code is notified about these important moments.
+ * @module dragdrop
+ * @title Drag and Drop
+ * @requires yahoo,dom,event
+ * @namespace YAHOO.util
+ */
+
+// Only load the library once.  Rewriting the manager class would orphan 
+// existing drag and drop instances.
+if (!YAHOO.util.DragDropMgr) {
+
+/**
+ * DragDropMgr is a singleton that tracks the element interaction for 
+ * all DragDrop items in the window.  Generally, you will not call 
+ * this class directly, but it does have helper methods that could 
+ * be useful in your DragDrop implementations.
+ * @class DragDropMgr
+ * @static
+ */
+YAHOO.util.DragDropMgr = function() {
+
+    var Event = YAHOO.util.Event;
+
+    return {
+
+        /**
+         * Two dimensional Array of registered DragDrop objects.  The first 
+         * dimension is the DragDrop item group, the second the DragDrop 
+         * object.
+         * @property ids
+         * @type {string: string}
+         * @private
+         * @static
+         */
+        ids: {},
+
+        /**
+         * Array of element ids defined as drag handles.  Used to determine 
+         * if the element that generated the mousedown event is actually the 
+         * handle and not the html element itself.
+         * @property handleIds
+         * @type {string: string}
+         * @private
+         * @static
+         */
+        handleIds: {},
+
+        /**
+         * the DragDrop object that is currently being dragged
+         * @property dragCurrent
+         * @type DragDrop
+         * @private
+         * @static
+         **/
+        dragCurrent: null,
+
+        /**
+         * the DragDrop object(s) that are being hovered over
+         * @property dragOvers
+         * @type Array
+         * @private
+         * @static
+         */
+        dragOvers: {},
+
+        /**
+         * the X distance between the cursor and the object being dragged
+         * @property deltaX
+         * @type int
+         * @private
+         * @static
+         */
+        deltaX: 0,
+
+        /**
+         * the Y distance between the cursor and the object being dragged
+         * @property deltaY
+         * @type int
+         * @private
+         * @static
+         */
+        deltaY: 0,
+
+        /**
+         * Flag to determine if we should prevent the default behavior of the
+         * events we define. By default this is true, but this can be set to 
+         * false if you need the default behavior (not recommended)
+         * @property preventDefault
+         * @type boolean
+         * @static
+         */
+        preventDefault: true,
+
+        /**
+         * Flag to determine if we should stop the propagation of the events 
+         * we generate. This is true by default but you may want to set it to
+         * false if the html element contains other features that require the
+         * mouse click.
+         * @property stopPropagation
+         * @type boolean
+         * @static
+         */
+        stopPropagation: true,
+
+        /**
+         * Internal flag that is set to true when drag and drop has been
+         * initialized
+         * @property initialized
+         * @private
+         * @static
+         */
+        initialized: false,
+
+        /**
+         * All drag and drop can be disabled.
+         * @property locked
+         * @private
+         * @static
+         */
+        locked: false,
+
+        /**
+         * Provides additional information about the the current set of
+         * interactions.  Can be accessed from the event handlers. It
+         * contains the following properties:
+         *
+         *       out:       onDragOut interactions
+         *       enter:     onDragEnter interactions
+         *       over:      onDragOver interactions
+         *       drop:      onDragDrop interactions
+         *       point:     The location of the cursor
+         *       draggedRegion: The location of dragged element at the time
+         *                      of the interaction
+         *       sourceRegion: The location of the source elemtn at the time
+         *                     of the interaction
+         *       validDrop: boolean
+         * @property interactionInfo
+         * @type object
+         * @static
+         */
+        interactionInfo: null,
+
+        /**
+         * Called the first time an element is registered.
+         * @method init
+         * @private
+         * @static
+         */
+        init: function() {
+            this.initialized = true;
+        },
+
+        /**
+         * In point mode, drag and drop interaction is defined by the 
+         * location of the cursor during the drag/drop
+         * @property POINT
+         * @type int
+         * @static
+         * @final
+         */
+        POINT: 0,
+
+        /**
+         * In intersect mode, drag and drop interaction is defined by the 
+         * cursor position or the amount of overlap of two or more drag and 
+         * drop objects.
+         * @property INTERSECT
+         * @type int
+         * @static
+         * @final
+         */
+        INTERSECT: 1,
+
+        /**
+         * In intersect mode, drag and drop interaction is defined only by the 
+         * overlap of two or more drag and drop objects.
+         * @property STRICT_INTERSECT
+         * @type int
+         * @static
+         * @final
+         */
+        STRICT_INTERSECT: 2,
+
+        /**
+         * The current drag and drop mode.  Default: POINT
+         * @property mode
+         * @type int
+         * @static
+         */
+        mode: 0,
+
+        /**
+         * Runs method on all drag and drop objects
+         * @method _execOnAll
+         * @private
+         * @static
+         */
+        _execOnAll: function(sMethod, args) {
+            for (var i in this.ids) {
+                for (var j in this.ids[i]) {
+                    var oDD = this.ids[i][j];
+                    if (! this.isTypeOfDD(oDD)) {
+                        continue;
+                    }
+                    oDD[sMethod].apply(oDD, args);
+                }
+            }
+        },
+
+        /**
+         * Drag and drop initialization.  Sets up the global event handlers
+         * @method _onLoad
+         * @private
+         * @static
+         */
+        _onLoad: function() {
+
+            this.init();
+
+
+            Event.on(document, "mouseup",   this.handleMouseUp, this, true);
+            Event.on(document, "mousemove", this.handleMouseMove, this, true);
+            Event.on(window,   "unload",    this._onUnload, this, true);
+            Event.on(window,   "resize",    this._onResize, this, true);
+            // Event.on(window,   "mouseout",    this._test);
+
+        },
+
+        /**
+         * Reset constraints on all drag and drop objs
+         * @method _onResize
+         * @private
+         * @static
+         */
+        _onResize: function(e) {
+            this._execOnAll("resetConstraints", []);
+        },
+
+        /**
+         * Lock all drag and drop functionality
+         * @method lock
+         * @static
+         */
+        lock: function() { this.locked = true; },
+
+        /**
+         * Unlock all drag and drop functionality
+         * @method unlock
+         * @static
+         */
+        unlock: function() { this.locked = false; },
+
+        /**
+         * Is drag and drop locked?
+         * @method isLocked
+         * @return {boolean} True if drag and drop is locked, false otherwise.
+         * @static
+         */
+        isLocked: function() { return this.locked; },
+
+        /**
+         * Location cache that is set for all drag drop objects when a drag is
+         * initiated, cleared when the drag is finished.
+         * @property locationCache
+         * @private
+         * @static
+         */
+        locationCache: {},
+
+        /**
+         * Set useCache to false if you want to force object the lookup of each
+         * drag and drop linked element constantly during a drag.
+         * @property useCache
+         * @type boolean
+         * @static
+         */
+        useCache: true,
+
+        /**
+         * The number of pixels that the mouse needs to move after the 
+         * mousedown before the drag is initiated.  Default=3;
+         * @property clickPixelThresh
+         * @type int
+         * @static
+         */
+        clickPixelThresh: 3,
+
+        /**
+         * The number of milliseconds after the mousedown event to initiate the
+         * drag if we don't get a mouseup event. Default=1000
+         * @property clickTimeThresh
+         * @type int
+         * @static
+         */
+        clickTimeThresh: 1000,
+
+        /**
+         * Flag that indicates that either the drag pixel threshold or the 
+         * mousdown time threshold has been met
+         * @property dragThreshMet
+         * @type boolean
+         * @private
+         * @static
+         */
+        dragThreshMet: false,
+
+        /**
+         * Timeout used for the click time threshold
+         * @property clickTimeout
+         * @type Object
+         * @private
+         * @static
+         */
+        clickTimeout: null,
+
+        /**
+         * The X position of the mousedown event stored for later use when a 
+         * drag threshold is met.
+         * @property startX
+         * @type int
+         * @private
+         * @static
+         */
+        startX: 0,
+
+        /**
+         * The Y position of the mousedown event stored for later use when a 
+         * drag threshold is met.
+         * @property startY
+         * @type int
+         * @private
+         * @static
+         */
+        startY: 0,
+
+        /**
+         * Flag to determine if the drag event was fired from the click timeout and
+         * not the mouse move threshold.
+         * @property fromTimeout
+         * @type boolean
+         * @private
+         * @static
+         */
+        fromTimeout: false,
+
+        /**
+         * Each DragDrop instance must be registered with the DragDropMgr.  
+         * This is executed in DragDrop.init()
+         * @method regDragDrop
+         * @param {DragDrop} oDD the DragDrop object to register
+         * @param {String} sGroup the name of the group this element belongs to
+         * @static
+         */
+        regDragDrop: function(oDD, sGroup) {
+            if (!this.initialized) { this.init(); }
+            
+            if (!this.ids[sGroup]) {
+                this.ids[sGroup] = {};
+            }
+            this.ids[sGroup][oDD.id] = oDD;
+        },
+
+        /**
+         * Removes the supplied dd instance from the supplied group. Executed
+         * by DragDrop.removeFromGroup, so don't call this function directly.
+         * @method removeDDFromGroup
+         * @private
+         * @static
+         */
+        removeDDFromGroup: function(oDD, sGroup) {
+            if (!this.ids[sGroup]) {
+                this.ids[sGroup] = {};
+            }
+
+            var obj = this.ids[sGroup];
+            if (obj && obj[oDD.id]) {
+                delete obj[oDD.id];
+            }
+        },
+
+        /**
+         * Unregisters a drag and drop item.  This is executed in 
+         * DragDrop.unreg, use that method instead of calling this directly.
+         * @method _remove
+         * @private
+         * @static
+         */
+        _remove: function(oDD) {
+            for (var g in oDD.groups) {
+                if (g && this.ids[g][oDD.id]) {
+                    delete this.ids[g][oDD.id];
+                }
+            }
+            delete this.handleIds[oDD.id];
+        },
+
+        /**
+         * Each DragDrop handle element must be registered.  This is done
+         * automatically when executing DragDrop.setHandleElId()
+         * @method regHandle
+         * @param {String} sDDId the DragDrop id this element is a handle for
+         * @param {String} sHandleId the id of the element that is the drag 
+         * handle
+         * @static
+         */
+        regHandle: function(sDDId, sHandleId) {
+            if (!this.handleIds[sDDId]) {
+                this.handleIds[sDDId] = {};
+            }
+            this.handleIds[sDDId][sHandleId] = sHandleId;
+        },
+
+        /**
+         * Utility function to determine if a given element has been 
+         * registered as a drag drop item.
+         * @method isDragDrop
+         * @param {String} id the element id to check
+         * @return {boolean} true if this element is a DragDrop item, 
+         * false otherwise
+         * @static
+         */
+        isDragDrop: function(id) {
+            return ( this.getDDById(id) ) ? true : false;
+        },
+
+        /**
+         * Returns the drag and drop instances that are in all groups the
+         * passed in instance belongs to.
+         * @method getRelated
+         * @param {DragDrop} p_oDD the obj to get related data for
+         * @param {boolean} bTargetsOnly if true, only return targetable objs
+         * @return {DragDrop[]} the related instances
+         * @static
+         */
+        getRelated: function(p_oDD, bTargetsOnly) {
+            var oDDs = [];
+            for (var i in p_oDD.groups) {
+                for (var j in this.ids[i]) {
+                    var dd = this.ids[i][j];
+                    if (! this.isTypeOfDD(dd)) {
+                        continue;
+                    }
+                    if (!bTargetsOnly || dd.isTarget) {
+                        oDDs[oDDs.length] = dd;
+                    }
+                }
+            }
+
+            return oDDs;
+        },
+
+        /**
+         * Returns true if the specified dd target is a legal target for 
+         * the specifice drag obj
+         * @method isLegalTarget
+         * @param {DragDrop} the drag obj
+         * @param {DragDrop} the target
+         * @return {boolean} true if the target is a legal target for the 
+         * dd obj
+         * @static
+         */
+        isLegalTarget: function (oDD, oTargetDD) {
+            var targets = this.getRelated(oDD, true);
+            for (var i=0, len=targets.length;i<len;++i) {
+                if (targets[i].id == oTargetDD.id) {
+                    return true;
+                }
+            }
+
+            return false;
+        },
+
+        /**
+         * My goal is to be able to transparently determine if an object is
+         * typeof DragDrop, and the exact subclass of DragDrop.  typeof 
+         * returns "object", oDD.constructor.toString() always returns
+         * "DragDrop" and not the name of the subclass.  So for now it just
+         * evaluates a well-known variable in DragDrop.
+         * @method isTypeOfDD
+         * @param {Object} the object to evaluate
+         * @return {boolean} true if typeof oDD = DragDrop
+         * @static
+         */
+        isTypeOfDD: function (oDD) {
+            return (oDD && oDD.__ygDragDrop);
+        },
+
+        /**
+         * Utility function to determine if a given element has been 
+         * registered as a drag drop handle for the given Drag Drop object.
+         * @method isHandle
+         * @param {String} id the element id to check
+         * @return {boolean} true if this element is a DragDrop handle, false 
+         * otherwise
+         * @static
+         */
+        isHandle: function(sDDId, sHandleId) {
+            return ( this.handleIds[sDDId] && 
+                            this.handleIds[sDDId][sHandleId] );
+        },
+
+        /**
+         * Returns the DragDrop instance for a given id
+         * @method getDDById
+         * @param {String} id the id of the DragDrop object
+         * @return {DragDrop} the drag drop object, null if it is not found
+         * @static
+         */
+        getDDById: function(id) {
+            for (var i in this.ids) {
+                if (this.ids[i][id]) {
+                    return this.ids[i][id];
+                }
+            }
+            return null;
+        },
+
+        /**
+         * Fired after a registered DragDrop object gets the mousedown event.
+         * Sets up the events required to track the object being dragged
+         * @method handleMouseDown
+         * @param {Event} e the event
+         * @param oDD the DragDrop object being dragged
+         * @private
+         * @static
+         */
+        handleMouseDown: function(e, oDD) {
+
+            this.currentTarget = YAHOO.util.Event.getTarget(e);
+
+            this.dragCurrent = oDD;
+
+            var el = oDD.getEl();
+
+            // track start position
+            this.startX = YAHOO.util.Event.getPageX(e);
+            this.startY = YAHOO.util.Event.getPageY(e);
+
+            this.deltaX = this.startX - el.offsetLeft;
+            this.deltaY = this.startY - el.offsetTop;
+
+            this.dragThreshMet = false;
+
+            this.clickTimeout = setTimeout( 
+                    function() { 
+                        var DDM = YAHOO.util.DDM;
+                        DDM.startDrag(DDM.startX, DDM.startY);
+                        DDM.fromTimeout = true;
+                    }, 
+                    this.clickTimeThresh );
+        },
+
+        /**
+         * Fired when either the drag pixel threshol or the mousedown hold 
+         * time threshold has been met.
+         * @method startDrag
+         * @param x {int} the X position of the original mousedown
+         * @param y {int} the Y position of the original mousedown
+         * @static
+         */
+        startDrag: function(x, y) {
+            clearTimeout(this.clickTimeout);
+            var dc = this.dragCurrent;
+            if (dc) {
+                dc.b4StartDrag(x, y);
+            }
+            if (dc) {
+                dc.startDrag(x, y);
+            }
+            this.dragThreshMet = true;
+        },
+
+        /**
+         * Internal function to handle the mouseup event.  Will be invoked 
+         * from the context of the document.
+         * @method handleMouseUp
+         * @param {Event} e the event
+         * @private
+         * @static
+         */
+        handleMouseUp: function(e) {
+            if (this.dragCurrent) {
+                clearTimeout(this.clickTimeout);
+
+                if (this.dragThreshMet) {
+                    if (this.fromTimeout) {
+                        this.handleMouseMove(e);
+                    }
+                    this.fromTimeout = false;
+                    this.fireEvents(e, true);
+                } else {
+                }
+
+                this.stopDrag(e);
+
+                this.stopEvent(e);
+            }
+        },
+
+        /**
+         * Utility to stop event propagation and event default, if these 
+         * features are turned on.
+         * @method stopEvent
+         * @param {Event} e the event as returned by this.getEvent()
+         * @static
+         */
+        stopEvent: function(e) {
+            if (this.stopPropagation) {
+                YAHOO.util.Event.stopPropagation(e);
+            }
+
+            if (this.preventDefault) {
+                YAHOO.util.Event.preventDefault(e);
+            }
+        },
+
+        /** 
+         * Ends the current drag, cleans up the state, and fires the endDrag
+         * and mouseUp events.  Called internally when a mouseup is detected
+         * during the drag.  Can be fired manually during the drag by passing
+         * either another event (such as the mousemove event received in onDrag)
+         * or a fake event with pageX and pageY defined (so that endDrag and
+         * onMouseUp have usable position data.).  Alternatively, pass true
+         * for the silent parameter so that the endDrag and onMouseUp events
+         * are skipped (so no event data is needed.)
+         *
+         * @method stopDrag
+         * @param {Event} e the mouseup event, another event (or a fake event) 
+         *                  with pageX and pageY defined, or nothing if the 
+         *                  silent parameter is true
+         * @param {boolean} silent skips the enddrag and mouseup events if true
+         * @static
+         */
+        stopDrag: function(e, silent) {
+
+            // Fire the drag end event for the item that was dragged
+            if (this.dragCurrent && !silent) {
+                if (this.dragThreshMet) {
+                    this.dragCurrent.b4EndDrag(e);
+                    this.dragCurrent.endDrag(e);
+                }
+
+                this.dragCurrent.onMouseUp(e);
+            }
+
+            this.dragCurrent = null;
+            this.dragOvers = {};
+        },
+
+        /** 
+         * Internal function to handle the mousemove event.  Will be invoked 
+         * from the context of the html element.
+         *
+         * @TODO figure out what we can do about mouse events lost when the 
+         * user drags objects beyond the window boundary.  Currently we can 
+         * detect this in internet explorer by verifying that the mouse is 
+         * down during the mousemove event.  Firefox doesn't give us the 
+         * button state on the mousemove event.
+         * @method handleMouseMove
+         * @param {Event} e the event
+         * @private
+         * @static
+         */
+        handleMouseMove: function(e) {
+            
+            var dc = this.dragCurrent;
+            if (dc) {
+
+                // var button = e.which || e.button;
+
+                // check for IE mouseup outside of page boundary
+                if (YAHOO.util.Event.isIE && !e.button) {
+                    this.stopEvent(e);
+                    return this.handleMouseUp(e);
+                }
+
+                if (!this.dragThreshMet) {
+                    var diffX = Math.abs(this.startX - YAHOO.util.Event.getPageX(e));
+                    var diffY = Math.abs(this.startY - YAHOO.util.Event.getPageY(e));
+                    if (diffX > this.clickPixelThresh || 
+                                diffY > this.clickPixelThresh) {
+                        this.startDrag(this.startX, this.startY);
+                    }
+                }
+
+                if (this.dragThreshMet) {
+                    dc.b4Drag(e);
+                    if (dc) {
+                        dc.onDrag(e);
+                    }
+                    if (dc) {
+                        this.fireEvents(e, false);
+                    }
+                }
+
+                this.stopEvent(e);
+            }
+        },
+        
+        /**
+         * Iterates over all of the DragDrop elements to find ones we are 
+         * hovering over or dropping on
+         * @method fireEvents
+         * @param {Event} e the event
+         * @param {boolean} isDrop is this a drop op or a mouseover op?
+         * @private
+         * @static
+         */
+        fireEvents: function(e, isDrop) {
+            var dc = this.dragCurrent;
+
+            // If the user did the mouse up outside of the window, we could 
+            // get here even though we have ended the drag.
+            // If the config option dragOnly is true, bail out and don't fire the events
+            if (!dc || dc.isLocked() || dc.dragOnly) {
+                return;
+            }
+
+            var x = YAHOO.util.Event.getPageX(e),
+                y = YAHOO.util.Event.getPageY(e),
+                pt = new YAHOO.util.Point(x,y),
+                pos = dc.getTargetCoord(pt.x, pt.y),
+                el = dc.getDragEl(),
+                curRegion = new YAHOO.util.Region( pos.y, 
+                                               pos.x + el.offsetWidth,
+                                               pos.y + el.offsetHeight, 
+                                               pos.x ),
+            
+                oldOvers = [], // cache the previous dragOver array
+                outEvts   = [],
+                overEvts  = [],
+                dropEvts  = [],
+                enterEvts = [],
+                inGroupsObj  = {},
+                inGroups  = [];
+
+
+            // Check to see if the object(s) we were hovering over is no longer 
+            // being hovered over so we can fire the onDragOut event
+            for (var i in this.dragOvers) {
+
+                var ddo = this.dragOvers[i];
+
+                if (! this.isTypeOfDD(ddo)) {
+                    continue;
+                }
+                if (! this.isOverTarget(pt, ddo, this.mode, curRegion)) {
+                    outEvts.push( ddo );
+                }
+
+                oldOvers[i] = true;
+                delete this.dragOvers[i];
+            }
+
+            for (var sGroup in dc.groups) {
+                
+                if ("string" != typeof sGroup) {
+                    continue;
+                }
+
+                for (i in this.ids[sGroup]) {
+                    var oDD = this.ids[sGroup][i];
+                    if (! this.isTypeOfDD(oDD)) {
+                        continue;
+                    }
+
+                    if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {
+                        if (this.isOverTarget(pt, oDD, this.mode, curRegion)) {
+                            inGroupsObj[sGroup] = true;
+                            // look for drop interactions
+                            if (isDrop) {
+                                dropEvts.push( oDD );
+                            // look for drag enter and drag over interactions
+                            } else {
+
+                                // initial drag over: dragEnter fires
+                                if (!oldOvers[oDD.id]) {
+                                    enterEvts.push( oDD );
+                                // subsequent drag overs: dragOver fires
+                                } else {
+                                    overEvts.push( oDD );
+                                }
+
+                                this.dragOvers[oDD.id] = oDD;
+                            }
+                        }
+                    }
+                }
+            }
+
+            this.interactionInfo = {
+                out:       outEvts,
+                enter:     enterEvts,
+                over:      overEvts,
+                drop:      dropEvts,
+                point:     pt,
+                draggedRegion:    curRegion,
+                sourceRegion: this.locationCache[dc.id],
+                validDrop: isDrop
+            };
+
+            
+            for (var inG in inGroupsObj) {
+                inGroups.push(inG);
+            }
+
+            // notify about a drop that did not find a target
+            if (isDrop && !dropEvts.length) {
+                this.interactionInfo.validDrop = false;
+                dc.onInvalidDrop(e);
+            }
+
+
+            if (this.mode) {
+                if (outEvts.length) {
+                    dc.b4DragOut(e, outEvts);
+                    if (dc) {
+                        dc.onDragOut(e, outEvts);
+                    }
+                }
+
+                if (enterEvts.length) {
+                    if (dc) {
+                        dc.onDragEnter(e, enterEvts, inGroups);
+                    }
+                }
+
+                if (overEvts.length) {
+                    if (dc) {
+                        dc.b4DragOver(e, overEvts, inGroups);
+                    }
+
+                    if (dc) {
+                        dc.onDragOver(e, overEvts, inGroups);
+                    }
+                }
+
+                if (dropEvts.length) {
+                    if (dc) {
+                        dc.b4DragDrop(e, dropEvts, inGroups);
+                    }
+                    if (dc) {
+                        dc.onDragDrop(e, dropEvts, inGroups);
+                    }
+                }
+
+            } else {
+                // fire dragout events
+                var len = 0;
+                for (i=0, len=outEvts.length; i<len; ++i) {
+                    if (dc) {
+                        dc.b4DragOut(e, outEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragOut(e, outEvts[i].id, inGroups[0]);
+                    }
+                }
+                 
+                // fire enter events
+                for (i=0,len=enterEvts.length; i<len; ++i) {
+                    // dc.b4DragEnter(e, oDD.id);
+
+                    if (dc) {
+                        dc.onDragEnter(e, enterEvts[i].id, inGroups[0]);
+                    }
+                }
+         
+                // fire over events
+                for (i=0,len=overEvts.length; i<len; ++i) {
+                    if (dc) {
+                        dc.b4DragOver(e, overEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragOver(e, overEvts[i].id, inGroups[0]);
+                    }
+                }
+
+                // fire drop events
+                for (i=0, len=dropEvts.length; i<len; ++i) {
+                    if (dc) {
+                        dc.b4DragDrop(e, dropEvts[i].id, inGroups[0]);
+                    }
+                    if (dc) {
+                        dc.onDragDrop(e, dropEvts[i].id, inGroups[0]);
+                    }
+                }
+
+            }
+        },
+
+        /**
+         * Helper function for getting the best match from the list of drag 
+         * and drop objects returned by the drag and drop events when we are 
+         * in INTERSECT mode.  It returns either the first object that the 
+         * cursor is over, or the object that has the greatest overlap with 
+         * the dragged element.
+         * @method getBestMatch
+         * @param  {DragDrop[]} dds The array of drag and drop objects 
+         * targeted
+         * @return {DragDrop}       The best single match
+         * @static
+         */
+        getBestMatch: function(dds) {
+            var winner = null;
+
+            var len = dds.length;
+
+            if (len == 1) {
+                winner = dds[0];
+            } else {
+                // Loop through the targeted items
+                for (var i=0; i<len; ++i) {
+                    var dd = dds[i];
+                    // If the cursor is over the object, it wins.  If the 
+                    // cursor is over multiple matches, the first one we come
+                    // to wins.
+                    if (this.mode == this.INTERSECT && dd.cursorIsOver) {
+                        winner = dd;
+                        break;
+                    // Otherwise the object with the most overlap wins
+                    } else {
+                        if (!winner || !winner.overlap || (dd.overlap &&
+                            winner.overlap.getArea() < dd.overlap.getArea())) {
+                            winner = dd;
+                        }
+                    }
+                }
+            }
+
+            return winner;
+        },
+
+        /**
+         * Refreshes the cache of the top-left and bottom-right points of the 
+         * drag and drop objects in the specified group(s).  This is in the
+         * format that is stored in the drag and drop instance, so typical 
+         * usage is:
+         * <code>
+         * YAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);
+         * </code>
+         * Alternatively:
+         * <code>
+         * YAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});
+         * </code>
+         * @TODO this really should be an indexed array.  Alternatively this
+         * method could accept both.
+         * @method refreshCache
+         * @param {Object} groups an associative array of groups to refresh
+         * @static
+         */
+        refreshCache: function(groups) {
+
+            // refresh everything if group array is not provided
+            var g = groups || this.ids;
+
+            for (var sGroup in g) {
+                if ("string" != typeof sGroup) {
+                    continue;
+                }
+                for (var i in this.ids[sGroup]) {
+                    var oDD = this.ids[sGroup][i];
+
+                    if (this.isTypeOfDD(oDD)) {
+                        var loc = this.getLocation(oDD);
+                        if (loc) {
+                            this.locationCache[oDD.id] = loc;
+                        } else {
+                            delete this.locationCache[oDD.id];
+                        }
+                    }
+                }
+            }
+        },
+
+        /**
+         * This checks to make sure an element exists and is in the DOM.  The
+         * main purpose is to handle cases where innerHTML is used to remove
+         * drag and drop objects from the DOM.  IE provides an 'unspecified
+         * error' when trying to access the offsetParent of such an element
+         * @method verifyEl
+         * @param {HTMLElement} el the element to check
+         * @return {boolean} true if the element looks usable
+         * @static
+         */
+        verifyEl: function(el) {
+            try {
+                if (el) {
+                    var parent = el.offsetParent;
+                    if (parent) {
+                        return true;
+                    }
+                }
+            } catch(e) {
+            }
+
+            return false;
+        },
+        
+        /**
+         * Returns a Region object containing the drag and drop element's position
+         * and size, including the padding configured for it
+         * @method getLocation
+         * @param {DragDrop} oDD the drag and drop object to get the 
+         *                       location for
+         * @return {YAHOO.util.Region} a Region object representing the total area
+         *                             the element occupies, including any padding
+         *                             the instance is configured for.
+         * @static
+         */
+        getLocation: function(oDD) {
+            if (! this.isTypeOfDD(oDD)) {
+                return null;
+            }
+
+            var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;
+
+            try {
+                pos= YAHOO.util.Dom.getXY(el);
+            } catch (e) { }
+
+            if (!pos) {
+                return null;
+            }
+
+            x1 = pos[0];
+            x2 = x1 + el.offsetWidth;
+            y1 = pos[1];
+            y2 = y1 + el.offsetHeight;
+
+            t = y1 - oDD.padding[0];
+            r = x2 + oDD.padding[1];
+            b = y2 + oDD.padding[2];
+            l = x1 - oDD.padding[3];
+
+            return new YAHOO.util.Region( t, r, b, l );
+        },
+
+        /**
+         * Checks the cursor location to see if it over the target
+         * @method isOverTarget
+         * @param {YAHOO.util.Point} pt The point to evaluate
+         * @param {DragDrop} oTarget the DragDrop object we are inspecting
+         * @param {boolean} intersect true if we are in intersect mode
+         * @param {YAHOO.util.Region} pre-cached location of the dragged element
+         * @return {boolean} true if the mouse is over the target
+         * @private
+         * @static
+         */
+        isOverTarget: function(pt, oTarget, intersect, curRegion) {
+            // use cache if available
+            var loc = this.locationCache[oTarget.id];
+            if (!loc || !this.useCache) {
+                loc = this.getLocation(oTarget);
+                this.locationCache[oTarget.id] = loc;
+
+            }
+
+            if (!loc) {
+                return false;
+            }
+
+            oTarget.cursorIsOver = loc.contains( pt );
+
+            // DragDrop is using this as a sanity check for the initial mousedown
+            // in this case we are done.  In POINT mode, if the drag obj has no
+            // contraints, we are done. Otherwise we need to evaluate the 
+            // region the target as occupies to determine if the dragged element
+            // overlaps with it.
+            
+            var dc = this.dragCurrent;
+            if (!dc || (!intersect && !dc.constrainX && !dc.constrainY)) {
+
+                //if (oTarget.cursorIsOver) {
+                //}
+                return oTarget.cursorIsOver;
+            }
+
+            oTarget.overlap = null;
+
+            // Get the current location of the drag element, this is the
+            // location of the mouse event less the delta that represents
+            // where the original mousedown happened on the element.  We
+            // need to consider constraints and ticks as well.
+
+            if (!curRegion) {
+                var pos = dc.getTargetCoord(pt.x, pt.y);
+                var el = dc.getDragEl();
+                curRegion = new YAHOO.util.Region( pos.y, 
+                                                   pos.x + el.offsetWidth,
+                                                   pos.y + el.offsetHeight, 
+                                                   pos.x );
+            }
+
+            var overlap = curRegion.intersect(loc);
+
+            if (overlap) {
+                oTarget.overlap = overlap;
+                return (intersect) ? true : oTarget.cursorIsOver;
+            } else {
+                return false;
+            }
+        },
+
+        /**
+         * unload event handler
+         * @method _onUnload
+         * @private
+         * @static
+         */
+        _onUnload: function(e, me) {
+            this.unregAll();
+        },
+
+        /**
+         * Cleans up the drag and drop events and objects.
+         * @method unregAll
+         * @private
+         * @static
+         */
+        unregAll: function() {
+
+            if (this.dragCurrent) {
+                this.stopDrag();
+                this.dragCurrent = null;
+            }
+
+            this._execOnAll("unreg", []);
+
+            //for (var i in this.elementCache) {
+                //delete this.elementCache[i];
+            //}
+            //this.elementCache = {};
+
+            this.ids = {};
+        },
+
+        /**
+         * A cache of DOM elements
+         * @property elementCache
+         * @private
+         * @static
+         * @deprecated elements are not cached now
+         */
+        elementCache: {},
+        
+        /**
+         * Get the wrapper for the DOM element specified
+         * @method getElWrapper
+         * @param {String} id the id of the element to get
+         * @return {YAHOO.util.DDM.ElementWrapper} the wrapped element
+         * @private
+         * @deprecated This wrapper isn't that useful
+         * @static
+         */
+        getElWrapper: function(id) {
+            var oWrapper = this.elementCache[id];
+            if (!oWrapper || !oWrapper.el) {
+                oWrapper = this.elementCache[id] = 
+                    new this.ElementWrapper(YAHOO.util.Dom.get(id));
+            }
+            return oWrapper;
+        },
+
+        /**
+         * Returns the actual DOM element
+         * @method getElement
+         * @param {String} id the id of the elment to get
+         * @return {Object} The element
+         * @deprecated use YAHOO.util.Dom.get instead
+         * @static
+         */
+        getElement: function(id) {
+            return YAHOO.util.Dom.get(id);
+        },
+        
+        /**
+         * Returns the style property for the DOM element (i.e., 
+         * document.getElById(id).style)
+         * @method getCss
+         * @param {String} id the id of the elment to get
+         * @return {Object} The style property of the element
+         * @deprecated use YAHOO.util.Dom instead
+         * @static
+         */
+        getCss: function(id) {
+            var el = YAHOO.util.Dom.get(id);
+            return (el) ? el.style : null;
+        },
+
+        /**
+         * Inner class for cached elements
+         * @class DragDropMgr.ElementWrapper
+         * @for DragDropMgr
+         * @private
+         * @deprecated
+         */
+        ElementWrapper: function(el) {
+                /**
+                 * The element
+                 * @property el
+                 */
+                this.el = el || null;
+                /**
+                 * The element id
+                 * @property id
+                 */
+                this.id = this.el && el.id;
+                /**
+                 * A reference to the style property
+                 * @property css
+                 */
+                this.css = this.el && el.style;
+            },
+
+        /**
+         * Returns the X position of an html element
+         * @method getPosX
+         * @param el the element for which to get the position
+         * @return {int} the X coordinate
+         * @for DragDropMgr
+         * @deprecated use YAHOO.util.Dom.getX instead
+         * @static
+         */
+        getPosX: function(el) {
+            return YAHOO.util.Dom.getX(el);
+        },
+
+        /**
+         * Returns the Y position of an html element
+         * @method getPosY
+         * @param el the element for which to get the position
+         * @return {int} the Y coordinate
+         * @deprecated use YAHOO.util.Dom.getY instead
+         * @static
+         */
+        getPosY: function(el) {
+            return YAHOO.util.Dom.getY(el); 
+        },
+
+        /**
+         * Swap two nodes.  In IE, we use the native method, for others we 
+         * emulate the IE behavior
+         * @method swapNode
+         * @param n1 the first node to swap
+         * @param n2 the other node to swap
+         * @static
+         */
+        swapNode: function(n1, n2) {
+            if (n1.swapNode) {
+                n1.swapNode(n2);
+            } else {
+                var p = n2.parentNode;
+                var s = n2.nextSibling;
+
+                if (s == n1) {
+                    p.insertBefore(n1, n2);
+                } else if (n2 == n1.nextSibling) {
+                    p.insertBefore(n2, n1);
+                } else {
+                    n1.parentNode.replaceChild(n2, n1);
+                    p.insertBefore(n1, s);
+                }
+            }
+        },
+
+        /**
+         * Returns the current scroll position
+         * @method getScroll
+         * @private
+         * @static
+         */
+        getScroll: function () {
+            var t, l, dde=document.documentElement, db=document.body;
+            if (dde && (dde.scrollTop || dde.scrollLeft)) {
+                t = dde.scrollTop;
+                l = dde.scrollLeft;
+            } else if (db) {
+                t = db.scrollTop;
+                l = db.scrollLeft;
+            } else {
+            }
+            return { top: t, left: l };
+        },
+
+        /**
+         * Returns the specified element style property
+         * @method getStyle
+         * @param {HTMLElement} el          the element
+         * @param {string}      styleProp   the style property
+         * @return {string} The value of the style property
+         * @deprecated use YAHOO.util.Dom.getStyle
+         * @static
+         */
+        getStyle: function(el, styleProp) {
+            return YAHOO.util.Dom.getStyle(el, styleProp);
+        },
+
+        /**
+         * Gets the scrollTop
+         * @method getScrollTop
+         * @return {int} the document's scrollTop
+         * @static
+         */
+        getScrollTop: function () { return this.getScroll().top; },
+
+        /**
+         * Gets the scrollLeft
+         * @method getScrollLeft
+         * @return {int} the document's scrollTop
+         * @static
+         */
+        getScrollLeft: function () { return this.getScroll().left; },
+
+        /**
+         * Sets the x/y position of an element to the location of the
+         * target element.
+         * @method moveToEl
+         * @param {HTMLElement} moveEl      The element to move
+         * @param {HTMLElement} targetEl    The position reference element
+         * @static
+         */
+        moveToEl: function (moveEl, targetEl) {
+            var aCoord = YAHOO.util.Dom.getXY(targetEl);
+            YAHOO.util.Dom.setXY(moveEl, aCoord);
+        },
+
+        /**
+         * Gets the client height
+         * @method getClientHeight
+         * @return {int} client height in px
+         * @deprecated use YAHOO.util.Dom.getViewportHeight instead
+         * @static
+         */
+        getClientHeight: function() {
+            return YAHOO.util.Dom.getViewportHeight();
+        },
+
+        /**
+         * Gets the client width
+         * @method getClientWidth
+         * @return {int} client width in px
+         * @deprecated use YAHOO.util.Dom.getViewportWidth instead
+         * @static
+         */
+        getClientWidth: function() {
+            return YAHOO.util.Dom.getViewportWidth();
+        },
+
+        /**
+         * Numeric array sort function
+         * @method numericSort
+         * @static
+         */
+        numericSort: function(a, b) { return (a - b); },
+
+        /**
+         * Internal counter
+         * @property _timeoutCount
+         * @private
+         * @static
+         */
+        _timeoutCount: 0,
+
+        /**
+         * Trying to make the load order less important.  Without this we get
+         * an error if this file is loaded before the Event Utility.
+         * @method _addListeners
+         * @private
+         * @static
+         */
+        _addListeners: function() {
+            var DDM = YAHOO.util.DDM;
+            if ( YAHOO.util.Event && document ) {
+                DDM._onLoad();
+            } else {
+                if (DDM._timeoutCount > 2000) {
+                } else {
+                    setTimeout(DDM._addListeners, 10);
+                    if (document && document.body) {
+                        DDM._timeoutCount += 1;
+                    }
+                }
+            }
+        },
+
+        /**
+         * Recursively searches the immediate parent and all child nodes for 
+         * the handle element in order to determine wheter or not it was 
+         * clicked.
+         * @method handleWasClicked
+         * @param node the html element to inspect
+         * @static
+         */
+        handleWasClicked: function(node, id) {
+            if (this.isHandle(id, node.id)) {
+                return true;
+            } else {
+                // check to see if this is a text node child of the one we want
+                var p = node.parentNode;
+
+                while (p) {
+                    if (this.isHandle(id, p.id)) {
+                        return true;
+                    } else {
+                        p = p.parentNode;
+                    }
+                }
+            }
+
+            return false;
+        }
+
+    };
+
+}();
+
+// shorter alias, save a few bytes
+YAHOO.util.DDM = YAHOO.util.DragDropMgr;
+YAHOO.util.DDM._addListeners();
+
+}
+
+(function() {
+
+var Event=YAHOO.util.Event; 
+var Dom=YAHOO.util.Dom;
+
+/**
+ * Defines the interface and base operation of items that that can be 
+ * dragged or can be drop targets.  It was designed to be extended, overriding
+ * the event handlers for startDrag, onDrag, onDragOver, onDragOut.
+ * Up to three html elements can be associated with a DragDrop instance:
+ * <ul>
+ * <li>linked element: the element that is passed into the constructor.
+ * This is the element which defines the boundaries for interaction with 
+ * other DragDrop objects.</li>
+ * <li>handle element(s): The drag operation only occurs if the element that 
+ * was clicked matches a handle element.  By default this is the linked 
+ * element, but there are times that you will want only a portion of the 
+ * linked element to initiate the drag operation, and the setHandleElId() 
+ * method provides a way to define this.</li>
+ * <li>drag element: this represents an the element that would be moved along
+ * with the cursor during a drag operation.  By default, this is the linked
+ * element itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define
+ * a separate element that would be moved, as in {@link YAHOO.util.DDProxy}
+ * </li>
+ * </ul>
+ * This class should not be instantiated until the onload event to ensure that
+ * the associated elements are available.
+ * The following would define a DragDrop obj that would interact with any 
+ * other DragDrop obj in the "group1" group:
+ * <pre>
+ *  dd = new YAHOO.util.DragDrop("div1", "group1");
+ * </pre>
+ * Since none of the event handlers have been implemented, nothing would 
+ * actually happen if you were to run the code above.  Normally you would 
+ * override this class or one of the default implementations, but you can 
+ * also override the methods you want on an instance of the class...
+ * <pre>
+ *  dd.onDragDrop = function(e, id) {
+ *  &nbsp;&nbsp;alert("dd was dropped on " + id);
+ *  }
+ * </pre>
+ * @namespace YAHOO.util
+ * @class DragDrop
+ * @constructor
+ * @param {String} id of the element that is linked to this instance
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DragDrop: 
+ *                    padding, isTarget, maintainOffset, primaryButtonOnly,
+ */
+YAHOO.util.DragDrop = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config); 
+    }
+};
+
+YAHOO.util.DragDrop.prototype = {
+
+    /**
+     * The id of the element associated with this object.  This is what we 
+     * refer to as the "linked element" because the size and position of 
+     * this element is used to determine when the drag and drop objects have 
+     * interacted.
+     * @property id
+     * @type String
+     */
+    id: null,
+
+    /**
+     * Configuration attributes passed into the constructor
+     * @property config
+     * @type object
+     */
+    config: null,
+
+    /**
+     * The id of the element that will be dragged.  By default this is same 
+     * as the linked element , but could be changed to another element. Ex: 
+     * YAHOO.util.DDProxy
+     * @property dragElId
+     * @type String
+     * @private
+     */
+    dragElId: null, 
+
+    /**
+     * the id of the element that initiates the drag operation.  By default 
+     * this is the linked element, but could be changed to be a child of this
+     * element.  This lets us do things like only starting the drag when the 
+     * header element within the linked html element is clicked.
+     * @property handleElId
+     * @type String
+     * @private
+     */
+    handleElId: null, 
+
+    /**
+     * An associative array of HTML tags that will be ignored if clicked.
+     * @property invalidHandleTypes
+     * @type {string: string}
+     */
+    invalidHandleTypes: null, 
+
+    /**
+     * An associative array of ids for elements that will be ignored if clicked
+     * @property invalidHandleIds
+     * @type {string: string}
+     */
+    invalidHandleIds: null, 
+
+    /**
+     * An indexted array of css class names for elements that will be ignored
+     * if clicked.
+     * @property invalidHandleClasses
+     * @type string[]
+     */
+    invalidHandleClasses: null, 
+
+    /**
+     * The linked element's absolute X position at the time the drag was 
+     * started
+     * @property startPageX
+     * @type int
+     * @private
+     */
+    startPageX: 0,
+
+    /**
+     * The linked element's absolute X position at the time the drag was 
+     * started
+     * @property startPageY
+     * @type int
+     * @private
+     */
+    startPageY: 0,
+
+    /**
+     * The group defines a logical collection of DragDrop objects that are 
+     * related.  Instances only get events when interacting with other 
+     * DragDrop object in the same group.  This lets us define multiple 
+     * groups using a single DragDrop subclass if we want.
+     * @property groups
+     * @type {string: string}
+     */
+    groups: null,
+
+    /**
+     * Individual drag/drop instances can be locked.  This will prevent 
+     * onmousedown start drag.
+     * @property locked
+     * @type boolean
+     * @private
+     */
+    locked: false,
+
+    /**
+     * Lock this instance
+     * @method lock
+     */
+    lock: function() { this.locked = true; },
+
+    /**
+     * Unlock this instace
+     * @method unlock
+     */
+    unlock: function() { this.locked = false; },
+
+    /**
+     * By default, all instances can be a drop target.  This can be disabled by
+     * setting isTarget to false.
+     * @property isTarget
+     * @type boolean
+     */
+    isTarget: true,
+
+    /**
+     * The padding configured for this drag and drop object for calculating
+     * the drop zone intersection with this object.
+     * @property padding
+     * @type int[]
+     */
+    padding: null,
+    /**
+     * If this flag is true, do not fire drop events. The element is a drag only element (for movement not dropping)
+     * @property dragOnly
+     * @type Boolean
+     */
+    dragOnly: false,
+
+    /**
+     * Cached reference to the linked element
+     * @property _domRef
+     * @private
+     */
+    _domRef: null,
+
+    /**
+     * Internal typeof flag
+     * @property __ygDragDrop
+     * @private
+     */
+    __ygDragDrop: true,
+
+    /**
+     * Set to true when horizontal contraints are applied
+     * @property constrainX
+     * @type boolean
+     * @private
+     */
+    constrainX: false,
+
+    /**
+     * Set to true when vertical contraints are applied
+     * @property constrainY
+     * @type boolean
+     * @private
+     */
+    constrainY: false,
+
+    /**
+     * The left constraint
+     * @property minX
+     * @type int
+     * @private
+     */
+    minX: 0,
+
+    /**
+     * The right constraint
+     * @property maxX
+     * @type int
+     * @private
+     */
+    maxX: 0,
+
+    /**
+     * The up constraint 
+     * @property minY
+     * @type int
+     * @type int
+     * @private
+     */
+    minY: 0,
+
+    /**
+     * The down constraint 
+     * @property maxY
+     * @type int
+     * @private
+     */
+    maxY: 0,
+
+    /**
+     * The difference between the click position and the source element's location
+     * @property deltaX
+     * @type int
+     * @private
+     */
+    deltaX: 0,
+
+    /**
+     * The difference between the click position and the source element's location
+     * @property deltaY
+     * @type int
+     * @private
+     */
+    deltaY: 0,
+
+    /**
+     * Maintain offsets when we resetconstraints.  Set to true when you want
+     * the position of the element relative to its parent to stay the same
+     * when the page changes
+     *
+     * @property maintainOffset
+     * @type boolean
+     */
+    maintainOffset: false,
+
+    /**
+     * Array of pixel locations the element will snap to if we specified a 
+     * horizontal graduation/interval.  This array is generated automatically
+     * when you define a tick interval.
+     * @property xTicks
+     * @type int[]
+     */
+    xTicks: null,
+
+    /**
+     * Array of pixel locations the element will snap to if we specified a 
+     * vertical graduation/interval.  This array is generated automatically 
+     * when you define a tick interval.
+     * @property yTicks
+     * @type int[]
+     */
+    yTicks: null,
+
+    /**
+     * By default the drag and drop instance will only respond to the primary
+     * button click (left button for a right-handed mouse).  Set to true to
+     * allow drag and drop to start with any mouse click that is propogated
+     * by the browser
+     * @property primaryButtonOnly
+     * @type boolean
+     */
+    primaryButtonOnly: true,
+
+    /**
+     * The availabe property is false until the linked dom element is accessible.
+     * @property available
+     * @type boolean
+     */
+    available: false,
+
+    /**
+     * By default, drags can only be initiated if the mousedown occurs in the
+     * region the linked element is.  This is done in part to work around a
+     * bug in some browsers that mis-report the mousedown if the previous
+     * mouseup happened outside of the window.  This property is set to true
+     * if outer handles are defined.
+     *
+     * @property hasOuterHandles
+     * @type boolean
+     * @default false
+     */
+    hasOuterHandles: false,
+
+    /**
+     * Property that is assigned to a drag and drop object when testing to
+     * see if it is being targeted by another dd object.  This property
+     * can be used in intersect mode to help determine the focus of
+     * the mouse interaction.  DDM.getBestMatch uses this property first to
+     * determine the closest match in INTERSECT mode when multiple targets
+     * are part of the same interaction.
+     * @property cursorIsOver
+     * @type boolean
+     */
+    cursorIsOver: false,
+
+    /**
+     * Property that is assigned to a drag and drop object when testing to
+     * see if it is being targeted by another dd object.  This is a region
+     * that represents the area the draggable element overlaps this target.
+     * DDM.getBestMatch uses this property to compare the size of the overlap
+     * to that of other targets in order to determine the closest match in
+     * INTERSECT mode when multiple targets are part of the same interaction.
+     * @property overlap 
+     * @type YAHOO.util.Region
+     */
+    overlap: null,
+
+    /**
+     * Code that executes immediately before the startDrag event
+     * @method b4StartDrag
+     * @private
+     */
+    b4StartDrag: function(x, y) { },
+
+    /**
+     * Abstract method called after a drag/drop object is clicked
+     * and the drag or mousedown time thresholds have beeen met.
+     * @method startDrag
+     * @param {int} X click location
+     * @param {int} Y click location
+     */
+    startDrag: function(x, y) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDrag event
+     * @method b4Drag
+     * @private
+     */
+    b4Drag: function(e) { },
+
+    /**
+     * Abstract method called during the onMouseMove event while dragging an 
+     * object.
+     * @method onDrag
+     * @param {Event} e the mousemove event
+     */
+    onDrag: function(e) { /* override this */ },
+
+    /**
+     * Abstract method called when this element fist begins hovering over 
+     * another DragDrop obj
+     * @method onDragEnter
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this is hovering over.  In INTERSECT mode, an array of one or more 
+     * dragdrop items being hovered over.
+     */
+    onDragEnter: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragOver event
+     * @method b4DragOver
+     * @private
+     */
+    b4DragOver: function(e) { },
+
+    /**
+     * Abstract method called when this element is hovering over another 
+     * DragDrop obj
+     * @method onDragOver
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this is hovering over.  In INTERSECT mode, an array of dd items 
+     * being hovered over.
+     */
+    onDragOver: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragOut event
+     * @method b4DragOut
+     * @private
+     */
+    b4DragOut: function(e) { },
+
+    /**
+     * Abstract method called when we are no longer hovering over an element
+     * @method onDragOut
+     * @param {Event} e the mousemove event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this was hovering over.  In INTERSECT mode, an array of dd items 
+     * that the mouse is no longer over.
+     */
+    onDragOut: function(e, id) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the onDragDrop event
+     * @method b4DragDrop
+     * @private
+     */
+    b4DragDrop: function(e) { },
+
+    /**
+     * Abstract method called when this item is dropped on another DragDrop 
+     * obj
+     * @method onDragDrop
+     * @param {Event} e the mouseup event
+     * @param {String|DragDrop[]} id In POINT mode, the element
+     * id this was dropped on.  In INTERSECT mode, an array of dd items this 
+     * was dropped on.
+     */
+    onDragDrop: function(e, id) { /* override this */ },
+
+    /**
+     * Abstract method called when this item is dropped on an area with no
+     * drop target
+     * @method onInvalidDrop
+     * @param {Event} e the mouseup event
+     */
+    onInvalidDrop: function(e) { /* override this */ },
+
+    /**
+     * Code that executes immediately before the endDrag event
+     * @method b4EndDrag
+     * @private
+     */
+    b4EndDrag: function(e) { },
+
+    /**
+     * Fired when we are done dragging the object
+     * @method endDrag
+     * @param {Event} e the mouseup event
+     */
+    endDrag: function(e) { /* override this */ },
+
+    /**
+     * Code executed immediately before the onMouseDown event
+     * @method b4MouseDown
+     * @param {Event} e the mousedown event
+     * @private
+     */
+    b4MouseDown: function(e) {  },
+
+    /**
+     * Event handler that fires when a drag/drop obj gets a mousedown
+     * @method onMouseDown
+     * @param {Event} e the mousedown event
+     */
+    onMouseDown: function(e) { /* override this */ },
+
+    /**
+     * Event handler that fires when a drag/drop obj gets a mouseup
+     * @method onMouseUp
+     * @param {Event} e the mouseup event
+     */
+    onMouseUp: function(e) { /* override this */ },
+   
+    /**
+     * Override the onAvailable method to do what is needed after the initial
+     * position was determined.
+     * @method onAvailable
+     */
+    onAvailable: function () { 
+    },
+
+    /**
+     * Returns a reference to the linked element
+     * @method getEl
+     * @return {HTMLElement} the html element 
+     */
+    getEl: function() { 
+        if (!this._domRef) {
+            this._domRef = Dom.get(this.id); 
+        }
+
+        return this._domRef;
+    },
+
+    /**
+     * Returns a reference to the actual element to drag.  By default this is
+     * the same as the html element, but it can be assigned to another 
+     * element. An example of this can be found in YAHOO.util.DDProxy
+     * @method getDragEl
+     * @return {HTMLElement} the html element 
+     */
+    getDragEl: function() {
+        return Dom.get(this.dragElId);
+    },
+
+    /**
+     * Sets up the DragDrop object.  Must be called in the constructor of any
+     * YAHOO.util.DragDrop subclass
+     * @method init
+     * @param id the id of the linked element
+     * @param {String} sGroup the group of related items
+     * @param {object} config configuration attributes
+     */
+    init: function(id, sGroup, config) {
+        this.initTarget(id, sGroup, config);
+        Event.on(this._domRef || this.id, "mousedown", 
+                        this.handleMouseDown, this, true);
+        // Event.on(this.id, "selectstart", Event.preventDefault);
+    },
+
+    /**
+     * Initializes Targeting functionality only... the object does not
+     * get a mousedown handler.
+     * @method initTarget
+     * @param id the id of the linked element
+     * @param {String} sGroup the group of related items
+     * @param {object} config configuration attributes
+     */
+    initTarget: function(id, sGroup, config) {
+
+        // configuration attributes 
+        this.config = config || {};
+
+        // create a local reference to the drag and drop manager
+        this.DDM = YAHOO.util.DDM;
+
+        // initialize the groups object
+        this.groups = {};
+
+        // assume that we have an element reference instead of an id if the
+        // parameter is not a string
+        if (typeof id !== "string") {
+            this._domRef = id;
+            id = Dom.generateId(id);
+        }
+
+        // set the id
+        this.id = id;
+
+        // add to an interaction group
+        this.addToGroup((sGroup) ? sGroup : "default");
+
+        // We don't want to register this as the handle with the manager
+        // so we just set the id rather than calling the setter.
+        this.handleElId = id;
+
+        Event.onAvailable(id, this.handleOnAvailable, this, true);
+
+
+        // the linked element is the element that gets dragged by default
+        this.setDragElId(id); 
+
+        // by default, clicked anchors will not start drag operations. 
+        // @TODO what else should be here?  Probably form fields.
+        this.invalidHandleTypes = { A: "A" };
+        this.invalidHandleIds = {};
+        this.invalidHandleClasses = [];
+
+        this.applyConfig();
+    },
+
+    /**
+     * Applies the configuration parameters that were passed into the constructor.
+     * This is supposed to happen at each level through the inheritance chain.  So
+     * a DDProxy implentation will execute apply config on DDProxy, DD, and 
+     * DragDrop in order to get all of the parameters that are available in
+     * each object.
+     * @method applyConfig
+     */
+    applyConfig: function() {
+
+        // configurable properties: 
+        //    padding, isTarget, maintainOffset, primaryButtonOnly
+        this.padding           = this.config.padding || [0, 0, 0, 0];
+        this.isTarget          = (this.config.isTarget !== false);
+        this.maintainOffset    = (this.config.maintainOffset);
+        this.primaryButtonOnly = (this.config.primaryButtonOnly !== false);
+        this.dragOnly = ((this.config.dragOnly === true) ? true : false);
+    },
+
+    /**
+     * Executed when the linked element is available
+     * @method handleOnAvailable
+     * @private
+     */
+    handleOnAvailable: function() {
+        this.available = true;
+        this.resetConstraints();
+        this.onAvailable();
+    },
+
+     /**
+     * Configures the padding for the target zone in px.  Effectively expands
+     * (or reduces) the virtual object size for targeting calculations.  
+     * Supports css-style shorthand; if only one parameter is passed, all sides
+     * will have that padding, and if only two are passed, the top and bottom
+     * will have the first param, the left and right the second.
+     * @method setPadding
+     * @param {int} iTop    Top pad
+     * @param {int} iRight  Right pad
+     * @param {int} iBot    Bot pad
+     * @param {int} iLeft   Left pad
+     */
+    setPadding: function(iTop, iRight, iBot, iLeft) {
+        // this.padding = [iLeft, iRight, iTop, iBot];
+        if (!iRight && 0 !== iRight) {
+            this.padding = [iTop, iTop, iTop, iTop];
+        } else if (!iBot && 0 !== iBot) {
+            this.padding = [iTop, iRight, iTop, iRight];
+        } else {
+            this.padding = [iTop, iRight, iBot, iLeft];
+        }
+    },
+
+    /**
+     * Stores the initial placement of the linked element.
+     * @method setInitialPosition
+     * @param {int} diffX   the X offset, default 0
+     * @param {int} diffY   the Y offset, default 0
+     * @private
+     */
+    setInitPosition: function(diffX, diffY) {
+        var el = this.getEl();
+
+        if (!this.DDM.verifyEl(el)) {
+            return;
+        }
+
+        var dx = diffX || 0;
+        var dy = diffY || 0;
+
+        var p = Dom.getXY( el );
+
+        this.initPageX = p[0] - dx;
+        this.initPageY = p[1] - dy;
+
+        this.lastPageX = p[0];
+        this.lastPageY = p[1];
+
+
+
+        this.setStartPosition(p);
+    },
+
+    /**
+     * Sets the start position of the element.  This is set when the obj
+     * is initialized, the reset when a drag is started.
+     * @method setStartPosition
+     * @param pos current position (from previous lookup)
+     * @private
+     */
+    setStartPosition: function(pos) {
+        var p = pos || Dom.getXY(this.getEl());
+
+        this.deltaSetXY = null;
+
+        this.startPageX = p[0];
+        this.startPageY = p[1];
+    },
+
+    /**
+     * Add this instance to a group of related drag/drop objects.  All 
+     * instances belong to at least one group, and can belong to as many 
+     * groups as needed.
+     * @method addToGroup
+     * @param sGroup {string} the name of the group
+     */
+    addToGroup: function(sGroup) {
+        this.groups[sGroup] = true;
+        this.DDM.regDragDrop(this, sGroup);
+    },
+
+    /**
+     * Remove's this instance from the supplied interaction group
+     * @method removeFromGroup
+     * @param {string}  sGroup  The group to drop
+     */
+    removeFromGroup: function(sGroup) {
+        if (this.groups[sGroup]) {
+            delete this.groups[sGroup];
+        }
+
+        this.DDM.removeDDFromGroup(this, sGroup);
+    },
+
+    /**
+     * Allows you to specify that an element other than the linked element 
+     * will be moved with the cursor during a drag
+     * @method setDragElId
+     * @param id {string} the id of the element that will be used to initiate the drag
+     */
+    setDragElId: function(id) {
+        this.dragElId = id;
+    },
+
+    /**
+     * Allows you to specify a child of the linked element that should be 
+     * used to initiate the drag operation.  An example of this would be if 
+     * you have a content div with text and links.  Clicking anywhere in the 
+     * content area would normally start the drag operation.  Use this method
+     * to specify that an element inside of the content div is the element 
+     * that starts the drag operation.
+     * @method setHandleElId
+     * @param id {string} the id of the element that will be used to 
+     * initiate the drag.
+     */
+    setHandleElId: function(id) {
+        if (typeof id !== "string") {
+            id = Dom.generateId(id);
+        }
+        this.handleElId = id;
+        this.DDM.regHandle(this.id, id);
+    },
+
+    /**
+     * Allows you to set an element outside of the linked element as a drag 
+     * handle
+     * @method setOuterHandleElId
+     * @param id the id of the element that will be used to initiate the drag
+     */
+    setOuterHandleElId: function(id) {
+        if (typeof id !== "string") {
+            id = Dom.generateId(id);
+        }
+        Event.on(id, "mousedown", 
+                this.handleMouseDown, this, true);
+        this.setHandleElId(id);
+
+        this.hasOuterHandles = true;
+    },
+
+    /**
+     * Remove all drag and drop hooks for this element
+     * @method unreg
+     */
+    unreg: function() {
+        Event.removeListener(this.id, "mousedown", 
+                this.handleMouseDown);
+        this._domRef = null;
+        this.DDM._remove(this);
+    },
+
+    /**
+     * Returns true if this instance is locked, or the drag drop mgr is locked
+     * (meaning that all drag/drop is disabled on the page.)
+     * @method isLocked
+     * @return {boolean} true if this obj or all drag/drop is locked, else 
+     * false
+     */
+    isLocked: function() {
+        return (this.DDM.isLocked() || this.locked);
+    },
+
+    /**
+     * Fired when this object is clicked
+     * @method handleMouseDown
+     * @param {Event} e 
+     * @param {YAHOO.util.DragDrop} oDD the clicked dd object (this dd obj)
+     * @private
+     */
+    handleMouseDown: function(e, oDD) {
+
+        var button = e.which || e.button;
+
+        if (this.primaryButtonOnly && button > 1) {
+            return;
+        }
+
+        if (this.isLocked()) {
+            return;
+        }
+
+
+
+        // firing the mousedown events prior to calculating positions
+        var b4Return = this.b4MouseDown(e);
+        var mDownReturn = this.onMouseDown(e);
+
+        if ((b4Return === false) || (mDownReturn === false)) {
+            return;
+        }
+
+        this.DDM.refreshCache(this.groups);
+        // var self = this;
+        // setTimeout( function() { self.DDM.refreshCache(self.groups); }, 0);
+
+        // Only process the event if we really clicked within the linked 
+        // element.  The reason we make this check is that in the case that 
+        // another element was moved between the clicked element and the 
+        // cursor in the time between the mousedown and mouseup events. When 
+        // this happens, the element gets the next mousedown event 
+        // regardless of where on the screen it happened.  
+        var pt = new YAHOO.util.Point(Event.getPageX(e), Event.getPageY(e));
+        if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) )  {
+        } else {
+            if (this.clickValidator(e)) {
+
+
+                // set the initial element position
+                this.setStartPosition();
+
+                // start tracking mousemove distance and mousedown time to
+                // determine when to start the actual drag
+                this.DDM.handleMouseDown(e, this);
+
+                // this mousedown is mine
+                this.DDM.stopEvent(e);
+            } else {
+
+
+            }
+        }
+    },
+
+    /**
+     * @method clickValidator
+     * @description Method validates that the clicked element
+     * was indeed the handle or a valid child of the handle
+     * @param {Event} e 
+     * @private
+     */
+    clickValidator: function(e) {
+        var target = Event.getTarget(e);
+        return ( this.isValidHandleChild(target) &&
+                    (this.id == this.handleElId || 
+                        this.DDM.handleWasClicked(target, this.id)) );
+    },
+
+    /**
+     * Finds the location the element should be placed if we want to move
+     * it to where the mouse location less the click offset would place us.
+     * @method getTargetCoord
+     * @param {int} iPageX the X coordinate of the click
+     * @param {int} iPageY the Y coordinate of the click
+     * @return an object that contains the coordinates (Object.x and Object.y)
+     * @private
+     */
+    getTargetCoord: function(iPageX, iPageY) {
+
+
+        var x = iPageX - this.deltaX;
+        var y = iPageY - this.deltaY;
+
+        if (this.constrainX) {
+            if (x < this.minX) { x = this.minX; }
+            if (x > this.maxX) { x = this.maxX; }
+        }
+
+        if (this.constrainY) {
+            if (y < this.minY) { y = this.minY; }
+            if (y > this.maxY) { y = this.maxY; }
+        }
+
+        x = this.getTick(x, this.xTicks);
+        y = this.getTick(y, this.yTicks);
+
+
+        return {x:x, y:y};
+    },
+
+    /**
+     * Allows you to specify a tag name that should not start a drag operation
+     * when clicked.  This is designed to facilitate embedding links within a
+     * drag handle that do something other than start the drag.
+     * @method addInvalidHandleType
+     * @param {string} tagName the type of element to exclude
+     */
+    addInvalidHandleType: function(tagName) {
+        var type = tagName.toUpperCase();
+        this.invalidHandleTypes[type] = type;
+    },
+
+    /**
+     * Lets you to specify an element id for a child of a drag handle
+     * that should not initiate a drag
+     * @method addInvalidHandleId
+     * @param {string} id the element id of the element you wish to ignore
+     */
+    addInvalidHandleId: function(id) {
+        if (typeof id !== "string") {
+            id = Dom.generateId(id);
+        }
+        this.invalidHandleIds[id] = id;
+    },
+
+
+    /**
+     * Lets you specify a css class of elements that will not initiate a drag
+     * @method addInvalidHandleClass
+     * @param {string} cssClass the class of the elements you wish to ignore
+     */
+    addInvalidHandleClass: function(cssClass) {
+        this.invalidHandleClasses.push(cssClass);
+    },
+
+    /**
+     * Unsets an excluded tag name set by addInvalidHandleType
+     * @method removeInvalidHandleType
+     * @param {string} tagName the type of element to unexclude
+     */
+    removeInvalidHandleType: function(tagName) {
+        var type = tagName.toUpperCase();
+        // this.invalidHandleTypes[type] = null;
+        delete this.invalidHandleTypes[type];
+    },
+    
+    /**
+     * Unsets an invalid handle id
+     * @method removeInvalidHandleId
+     * @param {string} id the id of the element to re-enable
+     */
+    removeInvalidHandleId: function(id) {
+        if (typeof id !== "string") {
+            id = Dom.generateId(id);
+        }
+        delete this.invalidHandleIds[id];
+    },
+
+    /**
+     * Unsets an invalid css class
+     * @method removeInvalidHandleClass
+     * @param {string} cssClass the class of the element(s) you wish to 
+     * re-enable
+     */
+    removeInvalidHandleClass: function(cssClass) {
+        for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {
+            if (this.invalidHandleClasses[i] == cssClass) {
+                delete this.invalidHandleClasses[i];
+            }
+        }
+    },
+
+    /**
+     * Checks the tag exclusion list to see if this click should be ignored
+     * @method isValidHandleChild
+     * @param {HTMLElement} node the HTMLElement to evaluate
+     * @return {boolean} true if this is a valid tag type, false if not
+     */
+    isValidHandleChild: function(node) {
+
+        var valid = true;
+        // var n = (node.nodeName == "#text") ? node.parentNode : node;
+        var nodeName;
+        try {
+            nodeName = node.nodeName.toUpperCase();
+        } catch(e) {
+            nodeName = node.nodeName;
+        }
+        valid = valid && !this.invalidHandleTypes[nodeName];
+        valid = valid && !this.invalidHandleIds[node.id];
+
+        for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {
+            valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);
+        }
+
+
+        return valid;
+
+    },
+
+    /**
+     * Create the array of horizontal tick marks if an interval was specified
+     * in setXConstraint().
+     * @method setXTicks
+     * @private
+     */
+    setXTicks: function(iStartX, iTickSize) {
+        this.xTicks = [];
+        this.xTickSize = iTickSize;
+        
+        var tickMap = {};
+
+        for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {
+            if (!tickMap[i]) {
+                this.xTicks[this.xTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {
+            if (!tickMap[i]) {
+                this.xTicks[this.xTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        this.xTicks.sort(this.DDM.numericSort) ;
+    },
+
+    /**
+     * Create the array of vertical tick marks if an interval was specified in 
+     * setYConstraint().
+     * @method setYTicks
+     * @private
+     */
+    setYTicks: function(iStartY, iTickSize) {
+        this.yTicks = [];
+        this.yTickSize = iTickSize;
+
+        var tickMap = {};
+
+        for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {
+            if (!tickMap[i]) {
+                this.yTicks[this.yTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {
+            if (!tickMap[i]) {
+                this.yTicks[this.yTicks.length] = i;
+                tickMap[i] = true;
+            }
+        }
+
+        this.yTicks.sort(this.DDM.numericSort) ;
+    },
+
+    /**
+     * By default, the element can be dragged any place on the screen.  Use 
+     * this method to limit the horizontal travel of the element.  Pass in 
+     * 0,0 for the parameters if you want to lock the drag to the y axis.
+     * @method setXConstraint
+     * @param {int} iLeft the number of pixels the element can move to the left
+     * @param {int} iRight the number of pixels the element can move to the 
+     * right
+     * @param {int} iTickSize optional parameter for specifying that the 
+     * element
+     * should move iTickSize pixels at a time.
+     */
+    setXConstraint: function(iLeft, iRight, iTickSize) {
+        this.leftConstraint = parseInt(iLeft, 10);
+        this.rightConstraint = parseInt(iRight, 10);
+
+        this.minX = this.initPageX - this.leftConstraint;
+        this.maxX = this.initPageX + this.rightConstraint;
+        if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }
+
+        this.constrainX = true;
+    },
+
+    /**
+     * Clears any constraints applied to this instance.  Also clears ticks
+     * since they can't exist independent of a constraint at this time.
+     * @method clearConstraints
+     */
+    clearConstraints: function() {
+        this.constrainX = false;
+        this.constrainY = false;
+        this.clearTicks();
+    },
+
+    /**
+     * Clears any tick interval defined for this instance
+     * @method clearTicks
+     */
+    clearTicks: function() {
+        this.xTicks = null;
+        this.yTicks = null;
+        this.xTickSize = 0;
+        this.yTickSize = 0;
+    },
+
+    /**
+     * By default, the element can be dragged any place on the screen.  Set 
+     * this to limit the vertical travel of the element.  Pass in 0,0 for the
+     * parameters if you want to lock the drag to the x axis.
+     * @method setYConstraint
+     * @param {int} iUp the number of pixels the element can move up
+     * @param {int} iDown the number of pixels the element can move down
+     * @param {int} iTickSize optional parameter for specifying that the 
+     * element should move iTickSize pixels at a time.
+     */
+    setYConstraint: function(iUp, iDown, iTickSize) {
+        this.topConstraint = parseInt(iUp, 10);
+        this.bottomConstraint = parseInt(iDown, 10);
+
+        this.minY = this.initPageY - this.topConstraint;
+        this.maxY = this.initPageY + this.bottomConstraint;
+        if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }
+
+        this.constrainY = true;
+        
+    },
+
+    /**
+     * resetConstraints must be called if you manually reposition a dd element.
+     * @method resetConstraints
+     */
+    resetConstraints: function() {
+
+
+        // Maintain offsets if necessary
+        if (this.initPageX || this.initPageX === 0) {
+            // figure out how much this thing has moved
+            var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;
+            var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;
+
+            this.setInitPosition(dx, dy);
+
+        // This is the first time we have detected the element's position
+        } else {
+            this.setInitPosition();
+        }
+
+        if (this.constrainX) {
+            this.setXConstraint( this.leftConstraint, 
+                                 this.rightConstraint, 
+                                 this.xTickSize        );
+        }
+
+        if (this.constrainY) {
+            this.setYConstraint( this.topConstraint, 
+                                 this.bottomConstraint, 
+                                 this.yTickSize         );
+        }
+    },
+
+    /**
+     * Normally the drag element is moved pixel by pixel, but we can specify 
+     * that it move a number of pixels at a time.  This method resolves the 
+     * location when we have it set up like this.
+     * @method getTick
+     * @param {int} val where we want to place the object
+     * @param {int[]} tickArray sorted array of valid points
+     * @return {int} the closest tick
+     * @private
+     */
+    getTick: function(val, tickArray) {
+
+        if (!tickArray) {
+            // If tick interval is not defined, it is effectively 1 pixel, 
+            // so we return the value passed to us.
+            return val; 
+        } else if (tickArray[0] >= val) {
+            // The value is lower than the first tick, so we return the first
+            // tick.
+            return tickArray[0];
+        } else {
+            for (var i=0, len=tickArray.length; i<len; ++i) {
+                var next = i + 1;
+                if (tickArray[next] && tickArray[next] >= val) {
+                    var diff1 = val - tickArray[i];
+                    var diff2 = tickArray[next] - val;
+                    return (diff2 > diff1) ? tickArray[i] : tickArray[next];
+                }
+            }
+
+            // The value is larger than the last tick, so we return the last
+            // tick.
+            return tickArray[tickArray.length - 1];
+        }
+    },
+
+    /**
+     * toString method
+     * @method toString
+     * @return {string} string representation of the dd obj
+     */
+    toString: function() {
+        return ("DragDrop " + this.id);
+    }
+
+};
+
+})();
+/**
+ * A DragDrop implementation where the linked element follows the 
+ * mouse cursor during a drag.
+ * @class DD
+ * @extends YAHOO.util.DragDrop
+ * @constructor
+ * @param {String} id the id of the linked element 
+ * @param {String} sGroup the group of related DragDrop items
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DD: 
+ *                    scroll
+ */
+YAHOO.util.DD = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config);
+    }
+};
+
+YAHOO.extend(YAHOO.util.DD, YAHOO.util.DragDrop, {
+
+    /**
+     * When set to true, the utility automatically tries to scroll the browser
+     * window wehn a drag and drop element is dragged near the viewport boundary.
+     * Defaults to true.
+     * @property scroll
+     * @type boolean
+     */
+    scroll: true, 
+
+    /**
+     * Sets the pointer offset to the distance between the linked element's top 
+     * left corner and the location the element was clicked
+     * @method autoOffset
+     * @param {int} iPageX the X coordinate of the click
+     * @param {int} iPageY the Y coordinate of the click
+     */
+    autoOffset: function(iPageX, iPageY) {
+        var x = iPageX - this.startPageX;
+        var y = iPageY - this.startPageY;
+        this.setDelta(x, y);
+    },
+
+    /** 
+     * Sets the pointer offset.  You can call this directly to force the 
+     * offset to be in a particular location (e.g., pass in 0,0 to set it 
+     * to the center of the object, as done in YAHOO.widget.Slider)
+     * @method setDelta
+     * @param {int} iDeltaX the distance from the left
+     * @param {int} iDeltaY the distance from the top
+     */
+    setDelta: function(iDeltaX, iDeltaY) {
+        this.deltaX = iDeltaX;
+        this.deltaY = iDeltaY;
+    },
+
+    /**
+     * Sets the drag element to the location of the mousedown or click event, 
+     * maintaining the cursor location relative to the location on the element 
+     * that was clicked.  Override this if you want to place the element in a 
+     * location other than where the cursor is.
+     * @method setDragElPos
+     * @param {int} iPageX the X coordinate of the mousedown or drag event
+     * @param {int} iPageY the Y coordinate of the mousedown or drag event
+     */
+    setDragElPos: function(iPageX, iPageY) {
+        // the first time we do this, we are going to check to make sure
+        // the element has css positioning
+
+        var el = this.getDragEl();
+        this.alignElWithMouse(el, iPageX, iPageY);
+    },
+
+    /**
+     * Sets the element to the location of the mousedown or click event, 
+     * maintaining the cursor location relative to the location on the element 
+     * that was clicked.  Override this if you want to place the element in a 
+     * location other than where the cursor is.
+     * @method alignElWithMouse
+     * @param {HTMLElement} el the element to move
+     * @param {int} iPageX the X coordinate of the mousedown or drag event
+     * @param {int} iPageY the Y coordinate of the mousedown or drag event
+     */
+    alignElWithMouse: function(el, iPageX, iPageY) {
+        var oCoord = this.getTargetCoord(iPageX, iPageY);
+
+        if (!this.deltaSetXY) {
+            var aCoord = [oCoord.x, oCoord.y];
+            YAHOO.util.Dom.setXY(el, aCoord);
+            var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );
+            var newTop  = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );
+
+            this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];
+        } else {
+            YAHOO.util.Dom.setStyle(el, "left", (oCoord.x + this.deltaSetXY[0]) + "px");
+            YAHOO.util.Dom.setStyle(el, "top",  (oCoord.y + this.deltaSetXY[1]) + "px");
+            //el.style.left = (oCoord.x + this.deltaSetXY[0]) + "px";
+            //el.style.top = (oCoord.y + this.deltaSetXY[1]) + "px";
+        }
+        
+        this.cachePosition(oCoord.x, oCoord.y);
+        //DAV
+        var self = this;
+        setTimeout(function() {
+            self.autoScroll.call(self, oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);
+        }, 0);
+    },
+
+    /**
+     * Saves the most recent position so that we can reset the constraints and
+     * tick marks on-demand.  We need to know this so that we can calculate the
+     * number of pixels the element is offset from its original position.
+     * @method cachePosition
+     * @param iPageX the current x position (optional, this just makes it so we
+     * don't have to look it up again)
+     * @param iPageY the current y position (optional, this just makes it so we
+     * don't have to look it up again)
+     */
+    cachePosition: function(iPageX, iPageY) {
+        if (iPageX) {
+            this.lastPageX = iPageX;
+            this.lastPageY = iPageY;
+        } else {
+            var aCoord = YAHOO.util.Dom.getXY(this.getEl());
+            this.lastPageX = aCoord[0];
+            this.lastPageY = aCoord[1];
+        }
+    },
+
+    /**
+     * Auto-scroll the window if the dragged object has been moved beyond the 
+     * visible window boundary.
+     * @method autoScroll
+     * @param {int} x the drag element's x position
+     * @param {int} y the drag element's y position
+     * @param {int} h the height of the drag element
+     * @param {int} w the width of the drag element
+     * @private
+     */
+    autoScroll: function(x, y, h, w) {
+
+        if (this.scroll) {
+            // The client height
+            var clientH = this.DDM.getClientHeight();
+
+            // The client width
+            var clientW = this.DDM.getClientWidth();
+
+            // The amt scrolled down
+            var st = this.DDM.getScrollTop();
+
+            // The amt scrolled right
+            var sl = this.DDM.getScrollLeft();
+
+            // Location of the bottom of the element
+            var bot = h + y;
+
+            // Location of the right of the element
+            var right = w + x;
+
+            // The distance from the cursor to the bottom of the visible area, 
+            // adjusted so that we don't scroll if the cursor is beyond the
+            // element drag constraints
+            var toBot = (clientH + st - y - this.deltaY);
+
+            // The distance from the cursor to the right of the visible area
+            var toRight = (clientW + sl - x - this.deltaX);
+
+
+            // How close to the edge the cursor must be before we scroll
+            // var thresh = (document.all) ? 100 : 40;
+            var thresh = 40;
+
+            // How many pixels to scroll per autoscroll op.  This helps to reduce 
+            // clunky scrolling. IE is more sensitive about this ... it needs this 
+            // value to be higher.
+            var scrAmt = (document.all) ? 80 : 30;
+
+            // Scroll down if we are near the bottom of the visible page and the 
+            // obj extends below the crease
+            if ( bot > clientH && toBot < thresh ) { 
+                window.scrollTo(sl, st + scrAmt); 
+            }
+
+            // Scroll up if the window is scrolled down and the top of the object
+            // goes above the top border
+            if ( y < st && st > 0 && y - st < thresh ) { 
+                window.scrollTo(sl, st - scrAmt); 
+            }
+
+            // Scroll right if the obj is beyond the right border and the cursor is
+            // near the border.
+            if ( right > clientW && toRight < thresh ) { 
+                window.scrollTo(sl + scrAmt, st); 
+            }
+
+            // Scroll left if the window has been scrolled to the right and the obj
+            // extends past the left border
+            if ( x < sl && sl > 0 && x - sl < thresh ) { 
+                window.scrollTo(sl - scrAmt, st);
+            }
+        }
+    },
+
+    /*
+     * Sets up config options specific to this class. Overrides
+     * YAHOO.util.DragDrop, but all versions of this method through the 
+     * inheritance chain are called
+     */
+    applyConfig: function() {
+        YAHOO.util.DD.superclass.applyConfig.call(this);
+        this.scroll = (this.config.scroll !== false);
+    },
+
+    /*
+     * Event that fires prior to the onMouseDown event.  Overrides 
+     * YAHOO.util.DragDrop.
+     */
+    b4MouseDown: function(e) {
+        this.setStartPosition();
+        // this.resetConstraints();
+        this.autoOffset(YAHOO.util.Event.getPageX(e), 
+                            YAHOO.util.Event.getPageY(e));
+    },
+
+    /*
+     * Event that fires prior to the onDrag event.  Overrides 
+     * YAHOO.util.DragDrop.
+     */
+    b4Drag: function(e) {
+        this.setDragElPos(YAHOO.util.Event.getPageX(e), 
+                            YAHOO.util.Event.getPageY(e));
+    },
+
+    toString: function() {
+        return ("DD " + this.id);
+    }
+
+    //////////////////////////////////////////////////////////////////////////
+    // Debugging ygDragDrop events that can be overridden
+    //////////////////////////////////////////////////////////////////////////
+    /*
+    startDrag: function(x, y) {
+    },
+
+    onDrag: function(e) {
+    },
+
+    onDragEnter: function(e, id) {
+    },
+
+    onDragOver: function(e, id) {
+    },
+
+    onDragOut: function(e, id) {
+    },
+
+    onDragDrop: function(e, id) {
+    },
+
+    endDrag: function(e) {
+    }
+
+    */
+
+});
+/**
+ * A DragDrop implementation that inserts an empty, bordered div into
+ * the document that follows the cursor during drag operations.  At the time of
+ * the click, the frame div is resized to the dimensions of the linked html
+ * element, and moved to the exact location of the linked element.
+ *
+ * References to the "frame" element refer to the single proxy element that
+ * was created to be dragged in place of all DDProxy elements on the
+ * page.
+ *
+ * @class DDProxy
+ * @extends YAHOO.util.DD
+ * @constructor
+ * @param {String} id the id of the linked html element
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                Valid properties for DDProxy in addition to those in DragDrop: 
+ *                   resizeFrame, centerFrame, dragElId
+ */
+YAHOO.util.DDProxy = function(id, sGroup, config) {
+    if (id) {
+        this.init(id, sGroup, config);
+        this.initFrame(); 
+    }
+};
+
+/**
+ * The default drag frame div id
+ * @property YAHOO.util.DDProxy.dragElId
+ * @type String
+ * @static
+ */
+YAHOO.util.DDProxy.dragElId = "ygddfdiv";
+
+YAHOO.extend(YAHOO.util.DDProxy, YAHOO.util.DD, {
+
+    /**
+     * By default we resize the drag frame to be the same size as the element
+     * we want to drag (this is to get the frame effect).  We can turn it off
+     * if we want a different behavior.
+     * @property resizeFrame
+     * @type boolean
+     */
+    resizeFrame: true,
+
+    /**
+     * By default the frame is positioned exactly where the drag element is, so
+     * we use the cursor offset provided by YAHOO.util.DD.  Another option that works only if
+     * you do not have constraints on the obj is to have the drag frame centered
+     * around the cursor.  Set centerFrame to true for this effect.
+     * @property centerFrame
+     * @type boolean
+     */
+    centerFrame: false,
+
+    /**
+     * Creates the proxy element if it does not yet exist
+     * @method createFrame
+     */
+    createFrame: function() {
+        var self=this, body=document.body;
+
+        if (!body || !body.firstChild) {
+            setTimeout( function() { self.createFrame(); }, 50 );
+            return;
+        }
+
+        var div=this.getDragEl(), Dom=YAHOO.util.Dom;
+
+        if (!div) {
+            div    = document.createElement("div");
+            div.id = this.dragElId;
+            var s  = div.style;
+
+            s.position   = "absolute";
+            s.visibility = "hidden";
+            s.cursor     = "move";
+            s.border     = "2px solid #aaa";
+            s.zIndex     = 999;
+            s.height     = "25px";
+            s.width      = "25px";
+
+            var _data = document.createElement('div');
+            Dom.setStyle(_data, 'height', '100%');
+            Dom.setStyle(_data, 'width', '100%');
+            /**
+            * If the proxy element has no background-color, then it is considered to the "transparent" by Internet Explorer.
+            * Since it is "transparent" then the events pass through it to the iframe below.
+            * So creating a "fake" div inside the proxy element and giving it a background-color, then setting it to an
+            * opacity of 0, it appears to not be there, however IE still thinks that it is so the events never pass through.
+            */
+            Dom.setStyle(_data, 'background-color', '#ccc');
+            Dom.setStyle(_data, 'opacity', '0');
+            div.appendChild(_data);
+
+            // appendChild can blow up IE if invoked prior to the window load event
+            // while rendering a table.  It is possible there are other scenarios 
+            // that would cause this to happen as well.
+            body.insertBefore(div, body.firstChild);
+        }
+    },
+
+    /**
+     * Initialization for the drag frame element.  Must be called in the
+     * constructor of all subclasses
+     * @method initFrame
+     */
+    initFrame: function() {
+        this.createFrame();
+    },
+
+    applyConfig: function() {
+        YAHOO.util.DDProxy.superclass.applyConfig.call(this);
+
+        this.resizeFrame = (this.config.resizeFrame !== false);
+        this.centerFrame = (this.config.centerFrame);
+        this.setDragElId(this.config.dragElId || YAHOO.util.DDProxy.dragElId);
+    },
+
+    /**
+     * Resizes the drag frame to the dimensions of the clicked object, positions 
+     * it over the object, and finally displays it
+     * @method showFrame
+     * @param {int} iPageX X click position
+     * @param {int} iPageY Y click position
+     * @private
+     */
+    showFrame: function(iPageX, iPageY) {
+        var el = this.getEl();
+        var dragEl = this.getDragEl();
+        var s = dragEl.style;
+
+        this._resizeProxy();
+
+        if (this.centerFrame) {
+            this.setDelta( Math.round(parseInt(s.width,  10)/2), 
+                           Math.round(parseInt(s.height, 10)/2) );
+        }
+
+        this.setDragElPos(iPageX, iPageY);
+
+        YAHOO.util.Dom.setStyle(dragEl, "visibility", "visible"); 
+    },
+
+    /**
+     * The proxy is automatically resized to the dimensions of the linked
+     * element when a drag is initiated, unless resizeFrame is set to false
+     * @method _resizeProxy
+     * @private
+     */
+    _resizeProxy: function() {
+        if (this.resizeFrame) {
+            var DOM    = YAHOO.util.Dom;
+            var el     = this.getEl();
+            var dragEl = this.getDragEl();
+
+            var bt = parseInt( DOM.getStyle(dragEl, "borderTopWidth"    ), 10);
+            var br = parseInt( DOM.getStyle(dragEl, "borderRightWidth"  ), 10);
+            var bb = parseInt( DOM.getStyle(dragEl, "borderBottomWidth" ), 10);
+            var bl = parseInt( DOM.getStyle(dragEl, "borderLeftWidth"   ), 10);
+
+            if (isNaN(bt)) { bt = 0; }
+            if (isNaN(br)) { br = 0; }
+            if (isNaN(bb)) { bb = 0; }
+            if (isNaN(bl)) { bl = 0; }
+
+
+            var newWidth  = Math.max(0, el.offsetWidth  - br - bl);                                                                                           
+            var newHeight = Math.max(0, el.offsetHeight - bt - bb);
+
+
+            DOM.setStyle( dragEl, "width",  newWidth  + "px" );
+            DOM.setStyle( dragEl, "height", newHeight + "px" );
+        }
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4MouseDown: function(e) {
+        this.setStartPosition();
+        var x = YAHOO.util.Event.getPageX(e);
+        var y = YAHOO.util.Event.getPageY(e);
+        this.autoOffset(x, y);
+
+        // This causes the autoscroll code to kick off, which means autoscroll can
+        // happen prior to the check for a valid drag handle.
+        // this.setDragElPos(x, y);
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4StartDrag: function(x, y) {
+        // show the drag frame
+        this.showFrame(x, y);
+    },
+
+    // overrides YAHOO.util.DragDrop
+    b4EndDrag: function(e) {
+        YAHOO.util.Dom.setStyle(this.getDragEl(), "visibility", "hidden"); 
+    },
+
+    // overrides YAHOO.util.DragDrop
+    // By default we try to move the element to the last location of the frame.  
+    // This is so that the default behavior mirrors that of YAHOO.util.DD.  
+    endDrag: function(e) {
+        var DOM = YAHOO.util.Dom;
+        var lel = this.getEl();
+        var del = this.getDragEl();
+
+        // Show the drag frame briefly so we can get its position
+        // del.style.visibility = "";
+        DOM.setStyle(del, "visibility", ""); 
+
+        // Hide the linked element before the move to get around a Safari 
+        // rendering bug.
+        //lel.style.visibility = "hidden";
+        DOM.setStyle(lel, "visibility", "hidden"); 
+        YAHOO.util.DDM.moveToEl(lel, del);
+        //del.style.visibility = "hidden";
+        DOM.setStyle(del, "visibility", "hidden"); 
+        //lel.style.visibility = "";
+        DOM.setStyle(lel, "visibility", ""); 
+    },
+
+    toString: function() {
+        return ("DDProxy " + this.id);
+    }
+
+});
+/**
+ * A DragDrop implementation that does not move, but can be a drop 
+ * target.  You would get the same result by simply omitting implementation 
+ * for the event callbacks, but this way we reduce the processing cost of the 
+ * event listener and the callbacks.
+ * @class DDTarget
+ * @extends YAHOO.util.DragDrop 
+ * @constructor
+ * @param {String} id the id of the element that is a drop target
+ * @param {String} sGroup the group of related DragDrop objects
+ * @param {object} config an object containing configurable attributes
+ *                 Valid properties for DDTarget in addition to those in 
+ *                 DragDrop: 
+ *                    none
+ */
+YAHOO.util.DDTarget = function(id, sGroup, config) {
+    if (id) {
+        this.initTarget(id, sGroup, config);
+    }
+};
+
+// YAHOO.util.DDTarget.prototype = new YAHOO.util.DragDrop();
+YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {
+    toString: function() {
+        return ("DDTarget " + this.id);
+    }
+});
+YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.4.1", build: "742"});

Property changes on: tags/2.7.0/wb/include/yui/dragdrop/dragdrop.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/dragdrop/dragdrop-min.js
===================================================================
--- tags/2.7.0/wb/include/yui/dragdrop/dragdrop-min.js	(nonexistent)
+++ tags/2.7.0/wb/include/yui/dragdrop/dragdrop-min.js	(revision 838)
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.4.1
+*/
+if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue;}F[D].apply(F,C);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(B){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(C,B){if(!this.initialized){this.init();}if(!this.ids[B]){this.ids[B]={};}this.ids[B][C.id]=C;},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={};}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id];}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id];}}delete this.handleIds[C.id];},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={};}this.handleIds[C][B]=B;},isDragDrop:function(B){return(this.getDDById(B))?true:false;},getRelated:function(G,C){var F=[];for(var E in G.groups){for(var D in this.ids[E]){var B=this.ids[E][D];if(!this.isTypeOfDD(B)){continue;}if(!C||B.isTarget){F[F.length]=B;}}}return F;},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;D<B;++D){if(C[D].id==E.id){return true;}}return false;},isTypeOfDD:function(B){return(B&&B.__ygDragDrop);},isHandle:function(C,B){return(this.handleIds[C]&&this.handleIds[C][B]);},getDDById:function(C){for(var B in this.ids){if(this.ids[B][C]){return this.ids[B][C];}}return null;},handleMouseDown:function(D,C){this.currentTarget=YAHOO.util.Event.getTarget(D);this.dragCurrent=C;var B=C.getEl();this.startX=YAHOO.util.Event.getPageX(D);this.startY=YAHOO.util.Event.getPageY(D);this.deltaX=this.startX-B.offsetLeft;this.deltaY=this.startY-B.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var E=YAHOO.util.DDM;E.startDrag(E.startX,E.startY);E.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(B,D){clearTimeout(this.clickTimeout);var C=this.dragCurrent;if(C){C.b4StartDrag(B,D);}if(C){C.startDrag(B,D);}this.dragThreshMet=true;},handleMouseUp:function(B){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.handleMouseMove(B);}this.fromTimeout=false;this.fireEvents(B,true);}else{}this.stopDrag(B);this.stopEvent(B);}},stopEvent:function(B){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(B);}if(this.preventDefault){YAHOO.util.Event.preventDefault(B);}},stopDrag:function(C,B){if(this.dragCurrent&&!B){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(C);this.dragCurrent.endDrag(C);}this.dragCurrent.onMouseUp(C);}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(E){var B=this.dragCurrent;if(B){if(YAHOO.util.Event.isIE&&!E.button){this.stopEvent(E);return this.handleMouseUp(E);}if(!this.dragThreshMet){var D=Math.abs(this.startX-YAHOO.util.Event.getPageX(E));var C=Math.abs(this.startY-YAHOO.util.Event.getPageY(E));if(D>this.clickPixelThresh||C>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){B.b4Drag(E);if(B){B.onDrag(E);}if(B){this.fireEvents(E,false);}}this.stopEvent(E);}},fireEvents:function(T,J){var V=this.dragCurrent;if(!V||V.isLocked()||V.dragOnly){return ;}var L=YAHOO.util.Event.getPageX(T),K=YAHOO.util.Event.getPageY(T),M=new YAHOO.util.Point(L,K),H=V.getTargetCoord(M.x,M.y),E=V.getDragEl(),S=new YAHOO.util.Region(H.y,H.x+E.offsetWidth,H.y+E.offsetHeight,H.x),G=[],I=[],D=[],U=[],R=[],C={},N=[];for(var P in this.dragOvers){var W=this.dragOvers[P];if(!this.isTypeOfDD(W)){continue;}if(!this.isOverTarget(M,W,this.mode,S)){I.push(W);}G[P]=true;delete this.dragOvers[P];}for(var O in V.groups){if("string"!=typeof O){continue;}for(P in this.ids[O]){var F=this.ids[O][P];if(!this.isTypeOfDD(F)){continue;}if(F.isTarget&&!F.isLocked()&&F!=V){if(this.isOverTarget(M,F,this.mode,S)){C[O]=true;if(J){U.push(F);}else{if(!G[F.id]){R.push(F);}else{D.push(F);}this.dragOvers[F.id]=F;}}}}}this.interactionInfo={out:I,enter:R,over:D,drop:U,point:M,draggedRegion:S,sourceRegion:this.locationCache[V.id],validDrop:J};for(var B in C){N.push(B);}if(J&&!U.length){this.interactionInfo.validDrop=false;V.onInvalidDrop(T);}if(this.mode){if(I.length){V.b4DragOut(T,I);if(V){V.onDragOut(T,I);}}if(R.length){if(V){V.onDragEnter(T,R,N);}}if(D.length){if(V){V.b4DragOver(T,D,N);}if(V){V.onDragOver(T,D,N);}}if(U.length){if(V){V.b4DragDrop(T,U,N);}if(V){V.onDragDrop(T,U,N);}}}else{var Q=0;for(P=0,Q=I.length;P<Q;++P){if(V){V.b4DragOut(T,I[P].id,N[0]);}if(V){V.onDragOut(T,I[P].id,N[0]);}}for(P=0,Q=R.length;P<Q;++P){if(V){V.onDragEnter(T,R[P].id,N[0]);}}for(P=0,Q=D.length;P<Q;++P){if(V){V.b4DragOver(T,D[P].id,N[0]);}if(V){V.onDragOver(T,D[P].id,N[0]);}}for(P=0,Q=U.length;P<Q;++P){if(V){V.b4DragDrop(T,U[P].id,N[0]);}if(V){V.onDragDrop(T,U[P].id,N[0]);}}}},getBestMatch:function(D){var F=null;var C=D.length;if(C==1){F=D[0];}else{for(var E=0;E<C;++E){var B=D[E];if(this.mode==this.INTERSECT&&B.cursorIsOver){F=B;break;}else{if(!F||!F.overlap||(B.overlap&&F.overlap.getArea()<B.overlap.getArea())){F=B;}}}}return F;},refreshCache:function(C){var E=C||this.ids;for(var B in E){if("string"!=typeof B){continue;}for(var D in this.ids[B]){var F=this.ids[B][D];if(this.isTypeOfDD(F)){var G=this.getLocation(F);if(G){this.locationCache[F.id]=G;}else{delete this.locationCache[F.id];}}}}},verifyEl:function(C){try{if(C){var B=C.offsetParent;
+if(B){return true;}}}catch(D){}return false;},getLocation:function(G){if(!this.isTypeOfDD(G)){return null;}var E=G.getEl(),J,D,C,L,K,M,B,I,F;try{J=YAHOO.util.Dom.getXY(E);}catch(H){}if(!J){return null;}D=J[0];C=D+E.offsetWidth;L=J[1];K=L+E.offsetHeight;M=L-G.padding[0];B=C+G.padding[1];I=K+G.padding[2];F=D-G.padding[3];return new YAHOO.util.Region(M,B,I,F);},isOverTarget:function(J,B,D,E){var F=this.locationCache[B.id];if(!F||!this.useCache){F=this.getLocation(B);this.locationCache[B.id]=F;}if(!F){return false;}B.cursorIsOver=F.contains(J);var I=this.dragCurrent;if(!I||(!D&&!I.constrainX&&!I.constrainY)){return B.cursorIsOver;}B.overlap=null;if(!E){var G=I.getTargetCoord(J.x,J.y);var C=I.getDragEl();E=new YAHOO.util.Region(G.y,G.x+C.offsetWidth,G.y+C.offsetHeight,G.x);}var H=E.intersect(F);if(H){B.overlap=H;return(D)?true:B.cursorIsOver;}else{return false;}},_onUnload:function(C,B){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(C){var B=this.elementCache[C];if(!B||!B.el){B=this.elementCache[C]=new this.ElementWrapper(YAHOO.util.Dom.get(C));}return B;},getElement:function(B){return YAHOO.util.Dom.get(B);},getCss:function(C){var B=YAHOO.util.Dom.get(C);return(B)?B.style:null;},ElementWrapper:function(B){this.el=B||null;this.id=this.el&&B.id;this.css=this.el&&B.style;},getPosX:function(B){return YAHOO.util.Dom.getX(B);},getPosY:function(B){return YAHOO.util.Dom.getY(B);},swapNode:function(D,B){if(D.swapNode){D.swapNode(B);}else{var E=B.parentNode;var C=B.nextSibling;if(C==D){E.insertBefore(D,B);}else{if(B==D.nextSibling){E.insertBefore(B,D);}else{D.parentNode.replaceChild(B,D);E.insertBefore(D,C);}}}},getScroll:function(){var D,B,E=document.documentElement,C=document.body;if(E&&(E.scrollTop||E.scrollLeft)){D=E.scrollTop;B=E.scrollLeft;}else{if(C){D=C.scrollTop;B=C.scrollLeft;}else{}}return{top:D,left:B};},getStyle:function(C,B){return YAHOO.util.Dom.getStyle(C,B);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(B,D){var C=YAHOO.util.Dom.getXY(D);YAHOO.util.Dom.setXY(B,C);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(C,B){return(C-B);},_timeoutCount:0,_addListeners:function(){var B=YAHOO.util.DDM;if(YAHOO.util.Event&&document){B._onLoad();}else{if(B._timeoutCount>2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1;}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true;}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true;}else{C=C.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(E,C,D){this.initTarget(E,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(E,C,D){this.config=D||{};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){return ;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);
+this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(H,G){var D=H.which||H.button;if(this.primaryButtonOnly&&D>1){return ;}if(this.isLocked()){return ;}var C=this.b4MouseDown(H);var E=this.onMouseDown(H);if((C===false)||(E===false)){return ;}this.DDM.refreshCache(this.groups);var F=new YAHOO.util.Point(A.getPageX(H),A.getPageY(H));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(F,this)){}else{if(this.clickValidator(H)){this.setStartPosition();this.DDM.handleMouseDown(H,this);this.DDM.stopEvent(H);}else{}}},clickValidator:function(D){var C=A.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();
+}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return ;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.4.1",build:"742"});
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/dragdrop/dragdrop-min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/index.php
===================================================================
--- tags/2.7.0/wb/include/yui/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/yui/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/yui/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/License.txt
===================================================================
--- tags/2.7.0/wb/include/yui/License.txt	(nonexistent)
+++ tags/2.7.0/wb/include/yui/License.txt	(revision 838)
@@ -0,0 +1,22 @@
+The actual License of Yahoo YUI
+are here :
+http://developer.yahoo.com/yui/license.html
+
+Software License Agreement (BSD License)
+Copyright (c) 2008, Yahoo! Inc.
+All rights reserved.
+Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the
+following disclaimer.
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+Neither the name of Yahoo! Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Yahoo! Inc.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Sources of Intellectual Property Included in the YUI Library
+Where not otherwise indicated, all YUI content is authored by Yahoo! engineers and consists of Yahoo!-owned intellectual property. YUI is issued by Yahoo! under the BSD license above. In some specific instances, YUI will incorporate work done by developers outside of Yahoo! with their express permission. In these instances, copyright is retained by the author; however, in the context of the YUI library it is issued under the BSD license.
+
+Below is the explicit list of external (non-Yahoo) sources of intellectual property in YUI:
+
+Douglas Crockford's JSON parsing and stringifying methods: In the JSON Utility, Douglas Crockford's JSON parsing and stringifying methods are adapted from work published at JSON.org. The adapted work is in the public domain.
+Robert Penner's animation-easing algorithms: In the Animation Utility, YUI makes use of Robert Penner's algorithms for easing.

Property changes on: tags/2.7.0/wb/include/yui/License.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/yui/README
===================================================================
--- tags/2.7.0/wb/include/yui/README	(nonexistent)
+++ tags/2.7.0/wb/include/yui/README	(revision 838)
@@ -0,0 +1,257 @@
+YUI Library Release Notes
+
+*** version 2.4.1 ***
+
+This release fixes a IE memory leak when attaching listeners
+to iframes/windows, as well as a few example updates.  Of the 
+YUI components, only event has changed since 2.4.0.
+
+*** version 2.4.0 ***
+
+This release introduces five new components into YUI:
+
+   * Selector
+   * Charts Widget
+   * Get Utility
+   * Profiler
+   * JSON Utility
+   
+These new components are introduced as "beta", with the exception of the Charts
+Widget which is released as an experimental component.  Please see the YUI FAQ
+on the definition of beta and experimental at:
+http://developer.yahoo.com/yui/articles/faq/#beta
+
+In addition to new components, you'll find updates and bug fixes throughout the
+library.
+
+*** version 2.3.1 ***
+
+This update contains general fixes to the YUI library.  Please see the README
+file for each component in the build directory for specific updates since
+version 2.3.0.
+
+*** version 2.3.0 ***
+
+This release introduces six new components into YUI:
+
+   * Base CSS
+   * Color Picker Control
+   * ImageLoader Utility
+   * Rich Text Editor
+   * YUI Loader Utility
+   * YUI Test Utility
+   
+These new components are introduced as "beta", with the exception of ImageLoader
+Utility which is released as an experimental component.  Please see the YUI 
+FAQ on the definition of beta and experimental at:
+http://developer.yahoo.com/yui/articles/faq/#beta
+
+In addition to new components, you'll find updates and bug fixes throughout the
+library.
+
+*** version 2.2.2 ***
+
+This update contains general fixes to the YUI library.  Please see the
+README file for each component in the build directory for specific updates since
+version 2.2.1.
+
+*** version 2.2.1 ***
+
+This update contains general fixes to the YUI library.  Please see the
+README file for each component in the build directory for specific updates since
+version 2.2.0.
+
+*** version 2.2.0 ***
+
+This release synchronizes the SourceForge version with Yahoo!'s version of YUI
+-- version number 2.2.0.  Please see the following blog article for information
+on this specific version increment at:
+http://www.yuiblog.com/blog/2007/02/20/yui-220-released
+
+The following new components are introduced with this release:
+
+   * Button
+   * DataTable
+   * Browser History Manager
+
+   The following components are now available as utilities:
+
+   * Element
+   * DataSource
+
+These new components are introduced as "beta", with the exception of Browser
+History Manager as an experimental component.  Please see the YUI FAQ on the
+definition of beta and experimental at:
+http://developer.yahoo.com/yui/articles/faq/#beta
+
+* CSS customizations *
+Calendar, Container, and Menu have been revised to allow image customizations
+through their respective CSS files.  Please refer to each component's README to
+see the full details on affected properties.
+
+Additional details for fixes and updates can be found in the README files for
+each updated component.  All YUI API cheatsheets have been updated for the
+current version and can be found at: yui/docs/assets/cheatsheets.zip.
+
+*** version 0.12.2 ***
+
+This update contains general fixes to the YUI library.  Please see the
+README file for each component in the build directory for specific updates since
+version 0.12.1.  As part of the 0.12.2 update, a number of corrections have been
+made to functional examples that were configured incorrectly in 0.12.1.
+
+*** version 0.12.1 ***
+
+This update contains general fixes to the YUI library.  Please see the
+README file for each component in the build directory for specific updates since
+version 0.12.0.
+
+Beginning with this release, all YUI minification will be performed with JSMin(
+http://www.crockford.com/javascript/jsmin.html).  Line breaks will be preserved.
+
+*** version 0.12.0 ***
+
+This version introduces the Tabview widget as well as general fixes to the YUI
+library.  Additional details can be found in the README files for each updated
+component.  All YUI API cheatsheets have been updated for the current version
+and can be found at: yui/docs/assets/cheatsheets.zip.
+
+* documentation *
+The YUI API documentation format is revised with this release.  This new
+format -- now a flat file structure under yui/docs/ -- implements the YUI
+AutoComplete widget on the main landing page to allow keyword searching of YUI.
+It also contains the full API documentation for all YUI components along with
+the following categories of data for each component(if applicable):
+
+* Inheritance hierarchy for extensions and subclasses.
+* YUI dependencies
+* Properties and methods
+* Events
+* Configuration attributes.
+
+* concatenated files *
+For convenience, three additional, minified variations of YUI are now available
+for your use:
+
+* reset-fonts-grids.css
+* yahoo-dom-event.js
+* utilities.js
+
+* API changes *
+There are interface changes to the Calendar widget.  Please see the 0.12.0
+Calendar upgrade guide at http:// developer.yahoo.com/yui/calendar/upgrade.html
+to see if this update affects your Calendar implementation and instructions on
+upgrading to version 0.12.0.
+
+
+*** version 0.11.4 ***
+
+This update contains some priority bug fixes to the following components:
+
+* Yahoo
+* Container
+* Drag and Drop
+* Event
+
+Additional details can be found in the README files for each updated component.
+
+*** version 0.11.3 ***
+
+This update contains general fixes to the YUI library.  Please see the
+README file for each component in the build directory for updates and fixes
+since version 0.11.2.
+
+*** version 0.11.2 ***
+
+This update contains a high-priority fix to Drag and Drop that prevents text
+selection.  Additional details can be found in the README file for:
+
+* Drag and Drop
+
+*** version 0.11.1 ***
+
+Release 0.11.1 addresses some high-priority bugs reported in the recently
+released version 0.11.0. Additional details can be found in the README files for
+each updated component:
+
+* Animation
+* Dom
+* Drag and Drop
+* Connection Manager
+* Container
+
+*** version 0.11.0 ***
+
+This version introduces the Logger widget.  The YUI cheatsheets for version
+0.11.0 and 0.10.0 are also included in this distribution under docs/assets.
+
+Please see the README file for each component in the build directory for
+updates and fixes since version 0.10.0.
+
+*** version 0.10.0 ***
+
+In this release, the directory structure has been modified to provide more
+component organization.  This is the new format:
+
+yui/
+  |
+  -- build/
+  | |
+  | -- dom/
+  | |
+  | | -- assets/
+  | |
+  | | -- dom.js
+  | |
+  -- docs/
+  | |
+  | -- dom/
+  | |
+  -- examples/
+  | |
+  | -- dom/
+  | |
+  | | -- img/
+
+Notice there are three immediate directories under the
+root YUI.  They are:
+
+*build/*
+This directory contains the source files for each YUI component, and each
+component is presented as a sub-directory under build/.  Notice that there are
+generally two source files: component.js and component-min.js.  The "component"
+source is the raw, commented build and "component-min" is the minified version
+of the same file with comments and whitespace removed.  With some components,
+there is an assets sub-directory.  CSS and image dependencies for each
+component are stored in its assets sub-directory.
+
+Note: If a component makes use of images, the image source path in the
+component's CSS file will point to Akamai.  The physical images are also
+available in the assets/ directory for local availability.  Please modify the
+CSS image references if you wish to use your own image assets.
+
+*docs/*
+This directory contains the jsdoc-generated API reference for every YUI
+component.  Each component is presented as a sub-directory under docs/.
+
+*examples/*
+This directory contains functional examples for each component in the YUI
+Library.  The examples are not part of the formal distribution; rather,
+they provide demonstrations of each component in use.  Each example uses YUI
+Library source files from the build/ directory, while all example-specific
+dependencies are stored in sub-directories (e.g. examples/dom/img).
+Some components, including the AutoComplete Control and Connection Manager,
+make use of PHP to implement certain examples.
+
+For example:
+In yui/examples/dom, the dom.js source file and all YUI .js dependencies
+are drawn from yui/build/ directories.  All other example-specific sources are
+stored as sub-directories: yui/examples/dom/css and yui/examples/dom/img.
+
+Each functional example is also available and functional on
+developer.yahoo.com/yui/.  They reproduced here as part of the distribution
+for your convenience.
+
+
+
+

Property changes on: tags/2.7.0/wb/include/yui/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/images/index.php
===================================================================
--- tags/2.7.0/wb/include/codepress/images/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/images/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/codepress/images/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/images/line-numbers.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/include/codepress/images/line-numbers.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/languages/index.php
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/codepress/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/languages/css.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/css.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/css.css	(revision 838)
@@ -0,0 +1,10 @@
+/*
+ * CodePress color styles for CSS syntax highlighting
+ */
+
+b, b a, b u {color:#000080;} /* tags, ids, classes */
+i, i b, i s, i a, i u {color:gray;} /* comments */
+s, s b {color:#a0a0dd;} /* parameters */
+a {color:#0000ff;} /* keys */
+u {color:red;} /* values */
+
Index: tags/2.7.0/wb/include/codepress/languages/html.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/html.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/html.js	(revision 838)
@@ -0,0 +1,59 @@
+/*
+ * CodePress regular expressions for HTML syntax highlighting
+ */
+
+// HTML
+Language.syntax = [
+	{ input : /(&lt;[^!]*?&gt;)/g, output : '<b>$1</b>'	}, // all tags
+	{ input : /(&lt;a .*?&gt;|&lt;\/a&gt;)/g, output : '<a>$1</a>' }, // links
+	{ input : /(&lt;img .*?&gt;)/g, output : '<big>$1</big>' }, // images
+	{ input : /(&lt;\/?(button|textarea|form|input|select|option|label).*?&gt;)/g, output : '<u>$1</u>' }, // forms
+	{ input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, // style tags
+	{ input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g, output : '<strong>$1</strong><tt>$2</tt><strong>$3</strong>' }, // script tags
+	{ input : /=(".*?")/g, output : '=<s>$1</s>' }, // atributes double quote
+	{ input : /=('.*?')/g, output : '=<s>$1</s>' }, // atributes single quote
+	{ input : /(&lt;!--.*?--&gt.)/g, output : '<ins>$1</ins>' }, // comments 
+	{ input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '<i>$1</i>' } // script reserved words 
+]
+
+Language.snippets = [
+	{ input : 'aref', output : '<a href="$0"></a>' },
+	{ input : 'h1', output : '<h1>$0</h1>' },
+	{ input : 'h2', output : '<h2>$0</h2>' },
+	{ input : 'h3', output : '<h3>$0</h3>' },
+	{ input : 'h4', output : '<h4>$0</h4>' },
+	{ input : 'h5', output : '<h5>$0</h5>' },
+	{ input : 'h6', output : '<h6>$0</h6>' },
+	{ input : 'html', output : '<html>\n\t$0\n</html>' },
+	{ input : 'head', output : '<head>\n\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\t<title>$0</title>\n\t\n</head>' },
+	{ input : 'img', output : '<img src="$0" alt="" />' },
+	{ input : 'input', output : '<input name="$0" id="" type="" value="" />' },
+	{ input : 'label', output : '<label for="$0"></label>' },
+	{ input : 'legend', output : '<legend>\n\t$0\n</legend>' },
+	{ input : 'link', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },		
+	{ input : 'base', output : '<base href="$0" />' }, 
+	{ input : 'body', output : '<body>\n\t$0\n</body>' }, 
+	{ input : 'css', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
+	{ input : 'div', output : '<div>\n\t$0\n</div>' },
+	{ input : 'divid', output : '<div id="$0">\n\t\n</div>' },
+	{ input : 'dl', output : '<dl>\n\t<dt>\n\t\t$0\n\t</dt>\n\t<dd></dd>\n</dl>' },
+	{ input : 'fieldset', output : '<fieldset>\n\t$0\n</fieldset>' },
+	{ input : 'form', output : '<form action="$0" method="" name="">\n\t\n</form>' },
+	{ input : 'meta', output : '<meta name="$0" content="" />' },
+	{ input : 'p', output : '<p>$0</p>' },
+	{ input : 'script', output : '<script type="text/javascript" language="javascript" charset="utf-8">\n\t$0\t\n</script>' },
+	{ input : 'scriptsrc', output : '<script src="$0" type="text/javascript" language="javascript" charset="utf-8"></script>' },
+	{ input : 'span', output : '<span>$0</span>' },
+	{ input : 'table', output : '<table border="$0" cellspacing="" cellpadding="">\n\t<tr><th></th></tr>\n\t<tr><td></td></tr>\n</table>' },
+	{ input : 'style', output : '<style type="text/css" media="screen">\n\t$0\n</style>' }
+]
+	
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/autoit.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/autoit.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/autoit.js	(revision 838)
@@ -0,0 +1,32 @@
+/**
+ * CodePress regular expressions for AutoIt syntax highlighting
+ * @author: James Brooks, Michael HURNI
+ */ 
+ 
+// AutoIt 
+Language.syntax = [  
+    { input : /({|}|\(|\))/g, output : '<b>$1</b>' }, // Brackets
+	{ input : /(\*|\+|-)/g, output : '<b>$1</b>' }, // Operator
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : "<s>\"$1$2</s>" }, // strings double 
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single  
+	{ input : /\b([\d]+)\b/g, output : '<ins>$1</ins>' }, // Numbers 
+	{ input : /#(.*?)(<br>|<\/P>)/g, output : '<i>#$1</i>$2' }, // Directives and Includes 
+	{ input : /(\$[\w\.]*)/g, output : '<var>$1</var>' }, // vars
+	{ input : /(_[\w\.]*)/g, output : '<a>$1</a>' }, // underscored word
+	{ input : /(\@[\w\.]*)/g, output : '<em>$1</em>' }, // Macros
+	{ input : /\b(Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitSHIFT|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCall|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFS|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GuiCreate|GuiCtrlCreateAvi|GuiCtrlCreateButton|GuiCtrlCreateCheckbox|GuiCtrlCreateCombo|GuiCtrlCreateContextMenu|GuiCtrlCreateDate|GuiCtrlCreateDummy|GuiCtrlCreateEdit|GuiCtrlCreateGraphic|GuiCtrlCreateGroup|GuiCtrlCreateIcon|GuiCtrlCreateInput|GuiCtrlCreateLabel|GuiCtrlCreateList|GuiCtrlCreateListView|GuiCtrlCreateListViewItem|GuiCtrlCreateMenu|GuiCtrlCreateMenuItem|GuiCtrlCreateMonthCal|GuiCtrlCreateObj|GuiCtrlCreatePic|GuiCtrlCreateProgress|GuiCtrlCreateRadio|GuiCtrlCreateSlider|GuiCtrlCreateTab|GuiCtrlCreateTabItem|GuiCtrlCreateUpdown|GuiCtrlDelete|GuiCtrlGetHandle|GuiCtrlGetState|GuiCtrlRead|GuiCtrlRecvMsg|GuiCtrlSentMsg|GuiCtrlSendToDummy|GuiCtrlSetBkColor|GuiCtrlSetColor|GuiCtrlSetCursor|GuiCtrlSetData|GuiCtrlSetFont|GuiCtrlSetGraphic|GuiCtrlSetImage|GuiCtrlSetLimit|GuiCtrlSetOnEvent|GuiCtrlSetPos|GuiCtrlResizing|GuiCtrlSetState|GuiCtrlSetTip|GuiDelete|GuiGetCursorInfo|GuiGetMsg|GuiGetStyle|GuiRegisterMsg|GuiSetBkColor|GuiSetCoord|GuiSetCursor|GuiSetFont|GuiSetHelp|GuiSetIcon|GuiSetOnEvent|GuiSetStat|GuiSetStyle|GuiStartGroup|GuiSwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Ping|PixelCheckSum|PixelGetColor|PixelSearch|ProcessClose|ProcessExists|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProcessOn|ProgressSet|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAsSet|RunWait|Send|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPrecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/g, output : '<u>$1</u>' } ,// reserved words
+	{ input : /\B;(.*?)(<br>|<\/P>)/g, output : '<cite>;$1</cite>$2' }, // comments 
+	{ input : /#CS(.*?)#CE/g, output : '<cite>#CS$1#CE</cite>' } // Block Comments
+] 
+ 
+Language.snippets = [] 
+ 
+Language.complete = [ 
+{ input : '\'',output : '\'$0\'' }, 
+{ input : '"', output : '"$0"' }, 
+{ input : '(', output : '\($0\)' }, 
+{ input : '[', output : '\[$0\]' }, 
+{ input : '{', output : '{\n\t$0\n}' } 
+] 
+ 
+Language.shortcuts = [] 
Index: tags/2.7.0/wb/include/codepress/languages/xsl.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/xsl.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/xsl.js	(revision 838)
@@ -0,0 +1,103 @@
+/*
+ * CodePress regular expressions for XSL syntax highlighting
+ * By RJ Bruneel
+ */
+
+Language.syntax = [ // XSL
+	{
+	input : /(&lt;[^!]*?&gt;)/g,
+	output : '<b>$1</b>' // all tags
+	},{
+	input : /(&lt;a.*?&gt;|&lt;\/a&gt;)/g,
+	output : '<a>$1</a>' // links
+	},{
+	input : /(&lt;img .*?&gt;)/g,
+	output : '<big>$1</big>' // images
+	},{
+	input : /(&lt;\/?(button|textarea|form|input|select|option|label).*?&gt;)/g,
+	output : '<u>$1</u>' // forms
+	},{
+	input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g,
+	output : '<em>$1</em><em>$2</em><em>$3</em>' // style tags
+	},{
+	input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g,
+	output : '<strong>$1</strong><tt>$2</tt><strong>$3</strong>' // script tags
+	},{	
+	input : /(&lt;xsl.*?&gt;|&lt;\/xsl.*?&gt;)/g,
+	output : '<xsl>$1</xsl>' // xsl
+	},{
+	input : /=(".*?")/g,
+	output : '=<s>$1</s>' // atributes double quote
+	},{
+	input : /=('.*?')/g,
+	output : '=<s>$1</s>' // atributes single quote
+	},{
+	input : /(&lt;!--.*?--&gt.)/g,
+	output : '<ins>$1</ins>' // comments 
+	},{
+	input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g,
+	output : '<i>$1</i>' // script reserved words
+	}
+];
+
+Language.snippets = [
+	{input : 'aref', output : '<a href="$0"></a>' },
+	{input : 'h1', output : '<h1>$0</h1>' },
+	{input : 'h2', output : '<h2>$0</h2>' },
+	{input : 'h3', output : '<h3>$0</h3>' },
+	{input : 'h4', output : '<h4>$0</h4>' },
+	{input : 'h5', output : '<h5>$0</h5>' },
+	{input : 'h6', output : '<h6>$0</h6>' },
+	{input : 'html', output : '<html>\n\t$0\n</html>' },
+	{input : 'head', output : '<head>\n\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\t<title>$0</title>\n\t\n</head>' },
+	{input : 'img', output : '<img src="$0" width="" height="" alt="" border="0" />' },
+	{input : 'input', output : '<input name="$0" id="" type="" value="" />' },
+	{input : 'label', output : '<label for="$0"></label>' },
+	{input : 'legend', output : '<legend>\n\t$0\n</legend>' },
+	{input : 'link', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },		
+	{input : 'base', output : '<base href="$0" />' }, 
+	{input : 'body', output : '<body>\n\t$0\n</body>' }, 
+	{input : 'css', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
+	{input : 'div', output : '<div>\n\t$0\n</div>' },
+	{input : 'divid', output : '<div id="$0">\n\t\n</div>' },
+	{input : 'dl', output : '<dl>\n\t<dt>\n\t\t$0\n\t</dt>\n\t<dd></dd>\n</dl>' },
+	{input : 'fieldset', output : '<fieldset>\n\t$0\n</fieldset>' },
+	{input : 'form', output : '<form action="$0" method="" name="">\n\t\n</form>' },
+	{input : 'meta', output : '<meta name="$0" content="" />' },
+	{input : 'p', output : '<p>$0</p>' },
+	{input : 'b', output : '<b>$0</b>' },
+	{input : 'li', output : '<li>$0</li>' },
+	{input : 'ul', output : '<ul>$0</ul>' },
+	{input : 'ol', output : '<ol>$0</ol>' },
+	{input : 'strong', output : '<strong>$0</strong>' },
+	{input : 'br', output : '<br />' },
+	{input : 'script', output : '<script type="text/javascript" language="javascript" charset="utf-8">\n\t$0\t\n</script>' },
+	{input : 'scriptsrc', output : '<script src="$0" type="text/javascript" language="javascript" charset="utf-8"></script>' },
+	{input : 'span', output : '<span>$0</span>' },
+	{input : 'table', output : '<table border="$0" cellspacing="" cellpadding="">\n\t<tr><th></th></tr>\n\t<tr><td></td></tr>\n</table>' },
+	{input : 'style', output : '<style type="text/css" media="screen">\n\t$0\n</style>' },
+	{input : 'xsl:stylesheet', output : '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' },
+	{input : 'xsl:template', output : '<xsl:template>$0</xsl:template>' },
+	{input : 'xsl:for-each', output : '<xsl:for-each select="$0"></xsl:for-each>' },
+	{input : 'xsl:choose', output : '<xsl:choose>$0<\xsl:choose>' },
+	{input : 'xsl:param', output : '<xsl:param name="$0" />' },
+	{input : 'xsl:variable', output : '<xsl:variable name="$0"></xsl:variable>' },
+	{input : 'xsl:if', output : '<xsl:if test="$0"></xsl:if>' },
+	{input : 'xsl:when', output : '<xsl:when test="$0"></xsl:when>' },
+	{input : 'xsl:otherwise', output : '<xsl:otherwise>$0</xsl:otherwise>' },
+	{input : 'xsl:attribute', output : '<xsl:attribute name="$0"></xsl:attribute>' },
+	{input : 'xsl:value-of', output : '<xsl:value-of select="$0"/>' },
+	{input : 'xsl:with-param', output : '<xsl:with-param name="$0" select="" />' },
+	{input : 'xsl:call-template', output : '<xsl:call-template name="$0">' }
+
+];
+	
+Language.complete = [ // Auto complete only for 1 character
+	{input : '\'',output : '\'$0\'' },
+	{input : '"', output : '"$0"' },
+	{input : '(', output : '\($0\)' },
+	{input : '[', output : '\[$0\]' },
+	{input : '{', output : '{\n\t$0\n}' }		
+];
+
+Language.shortcuts = [];
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/javascript.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/javascript.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/javascript.js	(revision 838)
@@ -0,0 +1,30 @@
+/*
+ * CodePress regular expressions for JavaScript syntax highlighting
+ */
+ 
+// JavaScript
+Language.syntax = [ 
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single quote
+	{ input : /\b(break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '<b>$1</b>' }, // reserved words
+	{ input : /\b(alert|isNaN|parent|Array|parseFloat|parseInt|blur|clearTimeout|prompt|prototype|close|confirm|length|Date|location|Math|document|element|name|self|elements|setTimeout|navigator|status|String|escape|Number|submit|eval|Object|event|onblur|focus|onerror|onfocus|onclick|top|onload|toString|onunload|unescape|open|valueOf|window|onmouseover)\b/g, output : '<u>$1</u>' }, // special words
+	{ input : /([^:]|^)\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3' }, // comments //
+	{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' } // comments /* */
+]
+
+Language.snippets = [
+	{ input : 'dw', output : 'document.write(\'$0\');' },
+	{ input : 'getid', output : 'document.getElementById(\'$0\')' },
+	{ input : 'fun', output : 'function $0(){\n\t\n}' },
+	{ input : 'func', output : 'function $0(){\n\t\n}' }
+]
+
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/vbscript.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/vbscript.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/vbscript.css	(revision 838)
@@ -0,0 +1,71 @@
+/*
+ * CodePress color styles for ASP-VB syntax highlighting 
+ * By Martin D. Kirk
+ */
+
+/* tags */
+b {
+	color:#000080;
+} 
+/* comments */
+big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u {
+	color:gray;
+	font-weight:normal;
+}
+/* ASP comments */
+strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{
+	color:gray;
+	font-weight:normal;
+}
+ /* attributes */ 
+s, s b, span s u, span s cite, strong span s {
+	color:#5656fa ;
+	font-weight:normal;
+}
+ /* strings */ 
+strong s,strong s b, strong s u, strong s cite {
+	color:#009900;
+	font-weight:normal;
+}
+strong ins{
+	color:#000000;
+	font-weight:bold;
+}
+ /* Syntax */
+strong a, strong a u {
+	color:#0000FF;
+	font-weight:;
+}
+ /* Native Keywords */
+strong u {
+	color:#990099;
+	font-weight:bold;
+}
+/* Numbers */
+strong var{
+	color:#FF0000;
+}
+/* ASP Language */
+span{
+	color:#990000;
+	font-weight:bold;
+}
+strong i,strong a i, strong u i {
+	color:#009999;
+}
+/* style */
+em {
+	color:#800080;
+	font-style:normal;
+}
+ /* script */ 
+ins {
+	color:#800000;
+	font-weight:bold;
+}
+
+/* <?php and ?> */
+cite, s cite {
+	color:red;
+	font-weight:bold;
+}
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/sql.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/sql.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/sql.css	(revision 838)
@@ -0,0 +1,10 @@
+/*
+ * CodePress color styles for SQL syntax highlighting
+ * By Merlin Moncure
+ */
+ 
+b {color:#0000FF;font-style:normal;font-weight:bold;} /* reserved words */
+u {color:#FF0000;font-style:normal;} /* types */
+a {color:#CD6600;font-style:normal;font-weight:bold;} /* commands */
+i, i b, i u, i a, i s  {color:#A9A9A9;font-weight:normal;font-style:italic;} /* comments */
+s, s b, s u, s a, s i {color:#2A00FF;font-weight:normal;} /* strings */
Index: tags/2.7.0/wb/include/codepress/languages/generic.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/generic.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/generic.js	(revision 838)
@@ -0,0 +1,25 @@
+/*
+ * CodePress regular expressions for generic syntax highlighting
+ */
+ 
+// generic languages
+Language.syntax = [
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single quote
+	{ input : /\b(abstract|continue|for|new|switch|default|goto|boolean|do|if|private|this|break|double|protected|throw|byte|else|import|public|throws|case|return|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|const|float|while|function|label)\b/g, output : '<b>$1</b>' }, // reserved words
+	{ input : /([\(\){}])/g, output : '<em>$1</em>' }, // special chars;
+	{ input : /([^:]|^)\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3' }, // comments //
+	{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' } // comments /* */
+]
+
+Language.snippets = []
+
+Language.complete = [
+	{ input : '\'', output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/perl.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/perl.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/perl.css	(revision 838)
@@ -0,0 +1,11 @@
+/*
+ * CodePress color styles for Perl syntax highlighting
+ * By J. Nick Koston
+ */
+
+b {color:#7F0055;font-weight:bold;} /* reserved words */
+i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */
+s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */
+a {color:#006700;font-weight:bold;} /* variables */
+em {color:darkblue;font-weight:bold;} /* functions */
+u {font-weight:bold;} /* special chars */
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/csharp.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/csharp.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/csharp.js	(revision 838)
@@ -0,0 +1,25 @@
+/*
+ * CodePress regular expressions for C# syntax highlighting
+ * By Edwin de Jonge
+ */
+ 
+Language.syntax = [ // C#
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
+	{ input : /\'(.?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single quote 
+	{ input : /\b(abstract|as|base|break|case|catch|checked|continue|default|delegate|do|else|event|explicit|extern|false|finally|fixed|for|foreach|get|goto|if|implicit|in|interface|internal|is|lock|namespace|new|null|object|operator|out|override|params|partial|private|protected|public|readonly|ref|return|set|sealed|sizeof|static|stackalloc|switch|this|throw|true|try|typeof|unchecked|unsafe|using|value|virtual|while)\b/g, output : '<b>$1</b>' }, // reserved words
+	{ input : /\b(bool|byte|char|class|double|float|int|interface|long|string|struct|void)\b/g, output : '<a>$1</a>' }, // types
+	{ input : /([^:]|^)\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3' }, // comments //	
+	{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' } // comments /* */
+];
+
+Language.snippets = [];
+
+Language.complete = [ // Auto complete only for 1 character
+	{input : '\'',output : '\'$0\'' },
+	{input : '"', output : '"$0"' },
+	{input : '(', output : '\($0\)' },
+	{input : '[', output : '\[$0\]' },
+	{input : '{', output : '{\n\t$0\n}' }		
+];
+
+Language.shortcuts = [];
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/html.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/html.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/html.css	(revision 838)
@@ -0,0 +1,13 @@
+/*
+ * CodePress color styles for HTML syntax highlighting
+ */
+
+b {color:#000080;} /* tags */
+ins, ins b, ins s, ins em {color:gray;} /* comments */
+s, s b {color:#7777e4;} /* attribute values */
+a {color:green;} /* links */
+u {color:#E67300;} /* forms */
+big {color:#db0000;} /* images */
+em, em b {color:#800080;} /* style */
+strong {color:#800000;} /* script */
+tt i {color:darkblue;font-weight:bold;} /* script reserved words */
Index: tags/2.7.0/wb/include/codepress/languages/ruby.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/ruby.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/ruby.js	(revision 838)
@@ -0,0 +1,26 @@
+/*
+ * CodePress regular expressions for Perl syntax highlighting
+ */
+
+// Ruby
+Language.syntax = [
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote 
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single quote
+	{ input : /([\$\@\%]+)([\w\.]*)/g, output : '<a>$1$2</a>' }, // vars
+	{ input : /(def\s+)([\w\.]*)/g, output : '$1<em>$2</em>' }, // functions
+	{ input : /\b(alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\b/g, output : '<b>$1</b>' }, // reserved words
+	{ input  : /([\(\){}])/g, output : '<u>$1</u>' }, // special chars
+	{ input  : /#(.*?)(<br>|<\/P>)/g, output : '<i>#$1</i>$2' } // comments
+];
+
+Language.snippets = []
+
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/autoit.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/autoit.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/autoit.css	(revision 838)
@@ -0,0 +1,13 @@
+/**
+ * CodePress color styles for AutoIt syntax highlighting
+ */
+
+u {font-style:normal;color:#000090;font-weight:bold;font-family:Monospace;}
+var {color:#AA0000;font-weight:bold;font-style:normal;}
+em {color:#FF33FF;}
+ins {color:#AC00A9;}
+i {color:#F000FF;}
+b {color:#FF0000;}
+a {color:#0080FF;font-weight:bold;}
+s, s u, s b {color:#9999CC;font-weight:normal;}
+cite, cite *{color:#009933;font-weight:normal;}
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/java.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/java.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/java.js	(revision 838)
@@ -0,0 +1,24 @@
+/*
+ * CodePress regular expressions for Java syntax highlighting
+ */
+ 
+// Java
+Language.syntax = [
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>'}, // strings double quote
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>'}, // strings single quote
+	{ input : /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/g, output : '<b>$1</b>'}, // reserved words
+	{ input : /([^:]|^)\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3'}, // comments //	
+	{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' }// comments /* */
+]
+
+Language.snippets = []
+
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/xsl.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/xsl.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/xsl.css	(revision 838)
@@ -0,0 +1,15 @@
+/*
+ * CodePress color styles for HTML syntax highlighting
+ * By RJ Bruneel
+ */
+ 
+b {color:#000080;} /* tags */
+ins, ins b, ins s, ins em {color:gray;} /* comments */
+s, s b {color:#7777e4;} /* attribute values */
+a {color:#E67300;} /* links */
+u {color:#CC66CC;} /* forms */
+big {color:#db0000;} /* images */
+em, em b {color:#800080;} /* style */
+strong {color:#800000;} /* script */
+tt i {color:darkblue;font-weight:bold;} /* script reserved words */
+xsl {color:green;} /* xsl */
Index: tags/2.7.0/wb/include/codepress/languages/javascript.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/javascript.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/javascript.css	(revision 838)
@@ -0,0 +1,8 @@
+/*
+ * CodePress color styles for JavaScript syntax highlighting
+ */
+
+b {color:#7F0055;font-weight:bold;} /* reserved words */
+u {color:darkblue;font-weight:bold;} /* special words */
+i, i b, i s, i u {color:green;font-weight:normal;} /* comments */
+s, s b, s u {color:#2A00FF;font-weight:normal;} /* strings */
Index: tags/2.7.0/wb/include/codepress/languages/asp.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/asp.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/asp.js	(revision 838)
@@ -0,0 +1,117 @@
+/*
+ * CodePress regular expressions for ASP-vbscript syntax highlighting
+ */
+
+// ASP VBScript
+Language.syntax = [
+// all tags
+	{ input : /(&lt;[^!%|!%@]*?&gt;)/g, output : '<b>$1</b>' }, 
+// style tags	
+	{ input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, 
+// script tags	
+	{ input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g, output : '<ins>$1</ins><ins>$2</ins><ins>$3</ins>' }, 
+// strings "" and attributes
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, 
+// ASP Comment
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<dfn>\'$1$2</dfn>'}, 
+// <%.*
+	{ input : /(&lt;%)/g, output : '<strong>$1' }, 
+// .*%>	
+	{ input : /(%&gt;)/g, output : '$1</strong>' }, 
+// <%@...%>	
+	{ input : /(&lt;%@)(.+?)(%&gt;)/gi, output : '$1<span>$2</span>$3' }, 
+//Numbers	
+	{ input : /\b([\d]+)\b/g, output : '<var>$1</var>' }, 
+// Reserved Words 1 (Blue)
+	{ input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '<a>$1</a>' }, 
+	{ input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '<a>$1</a>' }, 
+	{ input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '<a>$1</a>' }, 
+// Reserved Words 2 (Purple)	
+	{ input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '<u>$1</u>' },
+	{ input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '<u>$1</u>' }, 
+// Reserved Words 3 (Turquis)
+	{ input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '<i>$1</i>' }, 
+  	{ input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '<i>$1</i>' },
+// html comments
+	{ input : /(&lt;!--.*?--&gt.)/g, output : '<big>$1</big>' } 
+]
+
+Language.Functions = [ 
+  	// Output at index 0, must be the desired tagname surrounding a $1
+	// Name is the index from the regex that marks the functionname
+	{input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '<ins>$1</ins>', name : '$3'}
+]
+
+Language.snippets = [
+//Conditional
+	{ input : 'if', output : 'If $0 Then\n\t\nEnd If' },
+	{ input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' },
+	{ input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'},
+//Response
+	{ input : 'rw', output : 'Response.Write( $0 )' },
+	{ input : 'resc', output : 'Response.Cookies( $0 )' },
+	{ input : 'resb', output : 'Response.Buffer'},
+	{ input : 'resflu', output : 'Response.Flush()'},
+	{ input : 'resend', output : 'Response.End'},
+//Request
+	{ input : 'reqc', output : 'Request.Cookies( $0 )' },
+	{ input : 'rq', output : 'Request.Querystring("$0")' },
+	{ input : 'rf', output : 'Request.Form("$0")' },
+//FSO
+	{ input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' },
+	{ input : 'setfo', output : 'Set fo = fso.getFolder($0)' },
+	{ input : 'setfi', output : 'Set fi = fso.getFile($0)' },
+	{ input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'},
+	{ input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'},
+//Server
+	{ input : 'mapp', output : 'Server.Mappath($0)' },
+//Loops
+	{ input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' },
+	{ input : 'for', output : 'For $0 to ? step ?\n\t\nNext' },
+	{ input : 'do', output : 'Do While($0)\n\t\nLoop' },
+	{ input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' },
+//ADO
+	{ input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' },
+	{ input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' },
+	{ input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' },
+//Http Request
+	{ input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' },
+	{ input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'},
+//Functions
+	{ input : 'func', output : 'Function $0()\n\t\n\nEnd Function'},
+	{ input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'}
+
+]
+
+Language.complete = [
+	//{ input : '\'', output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = [
+	{ input : '[space]', output : '&nbsp;' },
+	{ input : '[enter]', output : '<br />' } ,
+	{ input : '[j]', output : 'testing' },
+	{ input : '[7]', output : '&amp;' }
+]
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/text.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/text.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/text.js	(revision 838)
@@ -0,0 +1,9 @@
+/*
+ * CodePress regular expressions for Text syntax highlighting
+ */
+
+// plain text
+Language.syntax = []
+Language.snippets = []
+Language.complete = []
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/php.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/php.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/php.js	(revision 838)
@@ -0,0 +1,61 @@
+/*
+ * CodePress regular expressions for PHP syntax highlighting
+ */
+
+// PHP
+Language.syntax = [
+	{ input : /(&lt;[^!\?]*?&gt;)/g, output : '<b>$1</b>' }, // all tags
+	{ input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, // style tags
+	{ input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g, output : '<ins>$1</ins><ins>$2</ins><ins>$3</ins>' }, // script tags
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>'}, // strings single quote
+	{ input : /(&lt;\?)/g, output : '<strong>$1' }, // <?.*
+	{ input : /(\?&gt;)/g, output : '$1</strong>' }, // .*?>
+	{ input : /(&lt;\?php|&lt;\?=|&lt;\?|\?&gt;)/g, output : '<cite>$1</cite>' }, // php tags
+	{ input : /(\$[\w\.]*)/g, output : '<a>$1</a>' }, // vars
+	{ input : /\b(false|true|and|or|xor|__FILE__|exception|__LINE__|array|as|break|case|class|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|include|include_once|isset|list|new|print|require|require_once|return|static|switch|unset|use|while|__FUNCTION__|__CLASS__|__METHOD__|final|php_user_filter|interface|implements|extends|public|private|protected|abstract|clone|try|catch|throw|this)\b/g, output : '<u>$1</u>' }, // reserved words
+	{ input : /([^:])\/\/(.*?)(<br|<\/P)/g, output : '$1<i>//$2</i>$3' }, // php comments //
+	{ input : /([^:])#(.*?)(<br|<\/P)/g, output : '$1<i>#$2</i>$3' }, // php comments #
+	{ input : /\/\*(.*?)\*\//g, output : '<i>/*$1*/</i>' }, // php comments /* */
+	{ input : /(&lt;!--.*?--&gt.)/g, output : '<big>$1</big>' } // html comments
+]
+
+Language.snippets = [
+	{ input : 'if', output : 'if($0){\n\t\n}' },
+	{ input : 'ifelse', output : 'if($0){\n\t\n}\nelse{\n\t\n}' },
+	{ input : 'else', output : '}\nelse {\n\t' },
+	{ input : 'elseif', output : '}\nelseif($0) {\n\t' },
+	{ input : 'do', output : 'do{\n\t$0\n}\nwhile();' },
+	{ input : 'inc', output : 'include_once("$0");' },
+	{ input : 'fun', output : 'function $0(){\n\t\n}' },	
+	{ input : 'func', output : 'function $0(){\n\t\n}' },	
+	{ input : 'while', output : 'while($0){\n\t\n}' },
+	{ input : 'for', output : 'for($0,,){\n\t\n}' },
+	{ input : 'fore', output : 'foreach($0 as ){\n\t\n}' },
+	{ input : 'foreach', output : 'foreach($0 as ){\n\t\n}' },
+	{ input : 'echo', output : 'echo \'$0\';' },
+	{ input : 'switch', output : 'switch($0) {\n\tcase "": break;\n\tdefault: ;\n}' },
+	{ input : 'case', output : 'case "$0" : break;' },
+	{ input : 'ret0', output : 'return false;' },
+	{ input : 'retf', output : 'return false;' },
+	{ input : 'ret1', output : 'return true;' },
+	{ input : 'rett', output : 'return true;' },
+	{ input : 'ret', output : 'return $0;' },
+	{ input : 'def', output : 'define(\'$0\',\'\');' },
+	{ input : '<?', output : 'php\n$0\n?>' }
+]
+
+Language.complete = [
+	{ input : '\'', output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = [
+	{ input : '[space]', output : '&nbsp;' },
+	{ input : '[enter]', output : '<br />' } ,
+	{ input : '[j]', output : 'testing' },
+	{ input : '[7]', output : '&amp;' }
+]
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/generic.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/generic.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/generic.css	(revision 838)
@@ -0,0 +1,9 @@
+/*
+ * CodePress color styles for generic syntax highlighting
+ */
+
+b {color:#7F0055;font-weight:bold;} /* reserved words */
+u {color:darkblue;font-weight:bold;} /* special words */
+i, i b, i s, i u, i em {color:green;font-weight:normal;} /* comments */
+s, s b, s em {color:#2A00FF;font-weight:normal;} /* strings */
+em {font-weight:bold;} /* special chars */
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/css.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/css.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/css.js	(revision 838)
@@ -0,0 +1,23 @@
+/*
+ * CodePress regular expressions for CSS syntax highlighting
+ */
+
+// CSS
+Language.syntax = [
+	{ input : /(.*?){(.*?)}/g,output : '<b>$1</b>{<u>$2</u>}' }, // tags, ids, classes, values
+	{ input : /([\w-]*?):([^\/])/g,output : '<a>$1</a>:$2' }, // keys
+	{ input : /\((.*?)\)/g,output : '(<s>$1</s>)' }, // parameters
+	{ input : /\/\*(.*?)\*\//g,output : '<i>/*$1*/</i>'} // comments
+]
+
+Language.snippets = []
+
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/csharp.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/csharp.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/csharp.css	(revision 838)
@@ -0,0 +1,9 @@
+/*
+ * CodePress color styles for Java syntax highlighting
+ * By Edwin de Jonge
+ */
+
+b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */
+a {color:#2A0088;font-weight:bold;font-style:normal;} /* types */
+i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */
+s, s b {color:#2A00FF;font-weight:normal;} /* strings */
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/vbscript.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/vbscript.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/vbscript.js	(revision 838)
@@ -0,0 +1,117 @@
+/*
+ * CodePress regular expressions for ASP-vbscript syntax highlighting
+ */
+
+// ASP VBScript
+Language.syntax = [
+// all tags
+	{ input : /(&lt;[^!%|!%@]*?&gt;)/g, output : '<b>$1</b>' }, 
+// style tags	
+	{ input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, 
+// script tags	
+	{ input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g, output : '<ins>$1</ins><ins>$2</ins><ins>$3</ins>' }, 
+// strings "" and attributes
+	{ input : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, 
+// ASP Comment
+	{ input : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<dfn>\'$1$2</dfn>'}, 
+// <%.*
+	{ input : /(&lt;%)/g, output : '<strong>$1' }, 
+// .*%>	
+	{ input : /(%&gt;)/g, output : '$1</strong>' }, 
+// <%@...%>	
+	{ input : /(&lt;%@)(.+?)(%&gt;)/gi, output : '$1<span>$2</span>$3' }, 
+//Numbers	
+	{ input : /\b([\d]+)\b/g, output : '<var>$1</var>' }, 
+// Reserved Words 1 (Blue)
+	{ input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '<a>$1</a>' }, 
+	{ input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '<a>$1</a>' }, 
+	{ input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '<a>$1</a>' }, 
+// Reserved Words 2 (Purple)	
+	{ input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '<u>$1</u>' },
+	{ input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '<u>$1</u>' }, 
+	{ input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '<u>$1</u>' }, 
+// Reserved Words 3 (Turquis)
+	{ input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '<i>$1</i>' }, 
+  	{ input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '<i>$1</i>' }, 
+	{ input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '<i>$1</i>' },
+// html comments
+	{ input : /(&lt;!--.*?--&gt.)/g, output : '<big>$1</big>' } 
+]
+
+Language.Functions = [ 
+  	// Output at index 0, must be the desired tagname surrounding a $1
+	// Name is the index from the regex that marks the functionname
+	{input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '<ins>$1</ins>', name : '$3'}
+]
+
+Language.snippets = [
+//Conditional
+	{ input : 'if', output : 'If $0 Then\n\t\nEnd If' },
+	{ input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' },
+	{ input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'},
+//Response
+	{ input : 'rw', output : 'Response.Write( $0 )' },
+	{ input : 'resc', output : 'Response.Cookies( $0 )' },
+	{ input : 'resb', output : 'Response.Buffer'},
+	{ input : 'resflu', output : 'Response.Flush()'},
+	{ input : 'resend', output : 'Response.End'},
+//Request
+	{ input : 'reqc', output : 'Request.Cookies( $0 )' },
+	{ input : 'rq', output : 'Request.Querystring("$0")' },
+	{ input : 'rf', output : 'Request.Form("$0")' },
+//FSO
+	{ input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' },
+	{ input : 'setfo', output : 'Set fo = fso.getFolder($0)' },
+	{ input : 'setfi', output : 'Set fi = fso.getFile($0)' },
+	{ input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'},
+	{ input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'},
+//Server
+	{ input : 'mapp', output : 'Server.Mappath($0)' },
+//Loops
+	{ input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' },
+	{ input : 'for', output : 'For $0 to ? step ?\n\t\nNext' },
+	{ input : 'do', output : 'Do While($0)\n\t\nLoop' },
+	{ input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' },
+//ADO
+	{ input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' },
+	{ input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' },
+	{ input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' },
+//Http Request
+	{ input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' },
+	{ input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'},
+//Functions
+	{ input : 'func', output : 'Function $0()\n\t\n\nEnd Function'},
+	{ input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'}
+
+]
+
+Language.complete = [
+	//{ input : '\'', output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = [
+	{ input : '[space]', output : '&nbsp;' },
+	{ input : '[enter]', output : '<br />' } ,
+	{ input : '[j]', output : 'testing' },
+	{ input : '[7]', output : '&amp;' }
+]
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/java.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/java.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/java.css	(revision 838)
@@ -0,0 +1,7 @@
+/*
+ * CodePress color styles for Java syntax highlighting
+ */
+
+b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */
+i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */
+s, s b {color:#2A00FF;font-weight:normal;} /* strings */
Index: tags/2.7.0/wb/include/codepress/languages/ruby.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/ruby.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/ruby.css	(revision 838)
@@ -0,0 +1,10 @@
+/*
+ * CodePress color styles for Ruby syntax highlighting
+ */
+
+b {color:#7F0055;font-weight:bold;} /* reserved words */
+i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */
+s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */
+a {color:#006700;font-weight:bold;} /* variables */
+em {color:darkblue;font-weight:bold;} /* functions */
+u {font-weight:bold;} /* special chars */
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/asp.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/asp.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/asp.css	(revision 838)
@@ -0,0 +1,71 @@
+/*
+ * CodePress color styles for ASP-VB syntax highlighting
+ * By Martin D. Kirk
+ */
+/* tags */
+
+b {
+	color:#000080;
+} 
+/* comments */
+big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u {
+	color:gray;
+	font-weight:normal;
+}
+/* ASP comments */
+strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{
+	color:gray;
+	font-weight:normal;
+}
+ /* attributes */ 
+s, s b, span s u, span s cite, strong span s {
+	color:#5656fa ;
+	font-weight:normal;
+}
+ /* strings */ 
+strong s,strong s b, strong s u, strong s cite {
+	color:#009900;
+	font-weight:normal;
+}
+strong ins{
+	color:#000000;
+	font-weight:bold;
+}
+ /* Syntax */
+strong a, strong a u {
+	color:#0000FF;
+	font-weight:;
+}
+ /* Native Keywords */
+strong u {
+	color:#990099;
+	font-weight:bold;
+}
+/* Numbers */
+strong var{
+	color:#FF0000;
+}
+/* ASP Language */
+span{
+	color:#990000;
+	font-weight:bold;
+}
+strong i,strong a i, strong u i {
+	color:#009999;
+}
+/* style */
+em {
+	color:#800080;
+	font-style:normal;
+}
+ /* script */ 
+ins {
+	color:#800000;
+	font-weight:bold;
+}
+
+/* <?php and ?> */
+cite, s cite {
+	color:red;
+	font-weight:bold;
+}
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/languages/sql.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/sql.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/sql.js	(revision 838)
@@ -0,0 +1,30 @@
+/*
+ * CodePress regular expressions for SQL syntax highlighting
+ * By Merlin Moncure
+ */
+ 
+// SQL
+Language.syntax = [
+	{ input : /\'(.*?)(\')/g, output : '<s>\'$1$2</s>' }, // strings single quote
+	{ input : /\b(add|after|aggregate|alias|all|and|as|authorization|between|by|cascade|cache|cache|called|case|check|column|comment|constraint|createdb|createuser|cycle|database|default|deferrable|deferred|diagnostics|distinct|domain|each|else|elseif|elsif|encrypted|except|exception|for|foreign|from|from|full|function|get|group|having|if|immediate|immutable|in|increment|initially|increment|index|inherits|inner|input|intersect|into|invoker|is|join|key|language|left|like|limit|local|loop|match|maxvalue|minvalue|natural|nextval|no|nocreatedb|nocreateuser|not|null|of|offset|oids|on|only|operator|or|order|outer|owner|partial|password|perform|plpgsql|primary|record|references|replace|restrict|return|returns|right|row|rule|schema|security|sequence|session|sql|stable|statistics|table|temp|temporary|then|time|to|transaction|trigger|type|unencrypted|union|unique|user|using|valid|value|values|view|volatile|when|where|with|without|zone)\b/gi, output : '<b>$1</b>' }, // reserved words
+	{ input : /\b(bigint|bigserial|bit|boolean|box|bytea|char|character|cidr|circle|date|decimal|double|float4|float8|inet|int2|int4|int8|integer|interval|line|lseg|macaddr|money|numeric|oid|path|point|polygon|precision|real|refcursor|serial|serial4|serial8|smallint|text|timestamp|varbit|varchar)\b/gi, output : '<u>$1</u>' }, // types
+	{ input : /\b(abort|alter|analyze|begin|checkpoint|close|cluster|comment|commit|copy|create|deallocate|declare|delete|drop|end|execute|explain|fetch|grant|insert|listen|load|lock|move|notify|prepare|reindex|reset|restart|revoke|rollback|select|set|show|start|truncate|unlisten|update)\b/gi, output : '<a>$1</a>' }, // commands
+	{ input : /([^:]|^)\-\-(.*?)(<br|<\/P)/g, output: '$1<i>--$2</i>$3' } // comments //	
+]
+
+Language.snippets = [
+	{ input : 'select', output : 'select $0 from  where ' }
+]
+
+Language.complete = [
+	{ input : '\'', output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
+
+
+
Index: tags/2.7.0/wb/include/codepress/languages/text.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/text.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/text.css	(revision 838)
@@ -0,0 +1,5 @@
+/*
+ * CodePress color styles for Text syntax highlighting
+ */
+
+/* do nothing as expected */
Index: tags/2.7.0/wb/include/codepress/languages/perl.js
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/perl.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/perl.js	(revision 838)
@@ -0,0 +1,27 @@
+/*
+ * CodePress regular expressions for Perl syntax highlighting
+ * By J. Nick Koston
+ */
+
+// Perl
+Language.syntax = [ 
+	{ input  : /\"(.*?)(\"|<br>|<\/P>)/g, output : '<s>"$1$2</s>' }, // strings double quote
+	{ input  : /\'(.*?)(\'|<br>|<\/P>)/g, output : '<s>\'$1$2</s>' }, // strings single quote
+	{ input  : /([\$\@\%][\w\.]*)/g, output : '<a>$1</a>' }, // vars
+	{ input  : /(sub\s+)([\w\.]*)/g, output : '$1<em>$2</em>' }, // functions
+	{ input  : /\b(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|else|elsif|endgrent|endhostent|endnetent|endprotoent|endpwent|eof|eval|exec|exists|exit|fcntl|fileno|find|flock|for|foreach|fork|format|formlinegetc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyaddr|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|hostname|if|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|LoadExternals|local|localtime|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ordpack|package|pipe|pop|pos|print|printf|push|pwd|qq|quotemeta|qw|rand|read|readdir|readlink|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|stty|study|sub|substr|symlink|syscall|sysopen|sysread|system|syswritetell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unless|unlink|until|unpack|unshift|untie|use|utime|values|vec|waitpid|wantarray|warn|while|write)\b/g, output : '<b>$1</b>' }, // reserved words
+	{ input  : /([\(\){}])/g, output : '<u>$1</u>' }, // special chars
+	{ input  : /#(.*?)(<br>|<\/P>)/g, output : '<i>#$1</i>$2' } // comments
+]
+
+Language.snippets = []
+
+Language.complete = [
+	{ input : '\'',output : '\'$0\'' },
+	{ input : '"', output : '"$0"' },
+	{ input : '(', output : '\($0\)' },
+	{ input : '[', output : '\[$0\]' },
+	{ input : '{', output : '{\n\t$0\n}' }		
+]
+
+Language.shortcuts = []
Index: tags/2.7.0/wb/include/codepress/languages/php.css
===================================================================
--- tags/2.7.0/wb/include/codepress/languages/php.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/languages/php.css	(revision 838)
@@ -0,0 +1,12 @@
+/*
+ * CodePress color styles for PHP syntax highlighting
+ */
+
+b {color:#000080;} /* tags */
+big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u {color:gray;font-weight:normal;} /* comments */
+s, s b, strong s u, strong s cite {color:#5656fa;font-weight:normal;} /* attributes and strings */
+strong a, strong a u {color:#006700;font-weight:bold;} /* variables */
+em {color:#800080;font-style:normal;} /* style */
+ins {color:#800000;} /* script */
+strong u {color:#7F0055;font-weight:bold;} /* reserved words */
+cite, s cite {color:red;font-weight:bold;} /* <?php and ?> */
Index: tags/2.7.0/wb/include/codepress/engines/index.php
===================================================================
--- tags/2.7.0/wb/include/codepress/engines/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/engines/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/codepress/engines/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/engines/older.js
===================================================================
Index: tags/2.7.0/wb/include/codepress/engines/opera.js
===================================================================
--- tags/2.7.0/wb/include/codepress/engines/opera.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/engines/opera.js	(revision 838)
@@ -0,0 +1,260 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ * 
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Contributors :
+ *
+ * 	Michael Hurni <michael.hurni@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the 
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ * 
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+
+CodePress = {
+	scrolling : false,
+	autocomplete : true,
+
+	// set initial vars and start sh
+	initialize : function() {
+		if(typeof(editor)=='undefined' && !arguments[0]) return;
+		chars = '|32|46|62|'; // charcodes that trigger syntax highlighting
+		cc = '\u2009'; // control char
+		editor = document.getElementsByTagName('body')[0];
+		document.designMode = 'on';
+		document.addEventListener('keyup', this.keyHandler, true);
+		window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false);
+		completeChars = this.getCompleteChars();
+//		CodePress.syntaxHighlight('init');
+	},
+
+	// treat key bindings
+	keyHandler : function(evt) {
+    	keyCode = evt.keyCode;	
+		charCode = evt.charCode;
+
+		if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90)  { // shortcuts = ctrl||appleKey+shift+key!=z(undo) 
+			CodePress.shortcuts(charCode?charCode:keyCode);
+		}
+		else if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete
+			CodePress.complete(String.fromCharCode(charCode));
+		}
+	    else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting
+		 	CodePress.syntaxHighlight('generic');
+		}
+		else if(keyCode==9 || evt.tabKey) {  // snippets activation (tab)
+			CodePress.snippets(evt);
+		}
+		else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+		 	CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+		}
+		else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo
+			(charCode==121||evt.shiftKey) ? CodePress.actions.redo() :  CodePress.actions.undo(); 
+			evt.preventDefault();
+		}
+		else if(keyCode==86 && evt.ctrlKey)  { // paste
+			// TODO: pasted text should be parsed and highlighted
+		}
+	},
+
+	// put cursor back to its original position after every parsing
+	findString : function() {
+		var sel = window.getSelection();
+		var range = window.document.createRange();
+		var span = window.document.getElementsByTagName('span')[0];
+			
+		range.selectNode(span);
+		sel.removeAllRanges();
+		sel.addRange(range);
+		span.parentNode.removeChild(span);
+		//if(self.find(cc))
+		//window.getSelection().getRangeAt(0).deleteContents();
+	},
+	
+	// split big files, highlighting parts of it
+	split : function(code,flag) {
+		if(flag=='scroll') {
+			this.scrolling = true;
+			return code;
+		}
+		else {
+			this.scrolling = false;
+			mid = code.indexOf('<SPAN>');
+			if(mid-2000<0) {ini=0;end=4000;}
+			else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+			else {ini=mid-2000;end=mid+2000;}
+			code = code.substring(ini,end);
+			return code;
+		}
+	},
+	
+	// syntax highlighting parser
+	syntaxHighlight : function(flag) {
+		//if(document.designMode=='off') document.designMode='on'
+		if(flag!='init') {
+			var span = document.createElement('span');
+			window.getSelection().getRangeAt(0).insertNode(span);
+		}
+
+		o = editor.innerHTML;
+//		o = o.replace(/<br>/g,'\r\n');
+//		o = o.replace(/<(b|i|s|u|a|em|tt|ins|big|cite|strong)?>/g,'');
+		//alert(o)
+		o = o.replace(/<(?!span|\/span|br).*?>/gi,'');
+//		alert(o)
+//		x = o;
+		x = z = this.split(o,flag);
+		//alert(z)
+//		x = x.replace(/\r\n/g,'<br>');
+		x = x.replace(/\t/g, '        ');
+
+
+		if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+	
+		for(i=0;i<Language.syntax.length;i++) 
+			x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+
+		editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.split(z).join(x); 
+
+		if(flag!='init') this.findString();
+	},
+	
+	getLastWord : function() {
+		var rangeAndCaret = CodePress.getRangeAndCaret();
+		words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+		words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+		return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+	}, 
+	
+	snippets : function(evt) {
+		var snippets = Language.snippets;	
+		var trigger = this.getLastWord();
+		for (var i=0; i<snippets.length; i++) {
+			if(snippets[i].input == trigger) {
+				var content = snippets[i].output.replace(/</g,'&lt;');
+				content = content.replace(/>/g,'&gt;');
+				if(content.indexOf('$0')<0) content += cc;
+				else content = content.replace(/\$0/,cc);
+				content = content.replace(/\n/g,'<br>');
+				var pattern = new RegExp(trigger+cc,'gi');
+				evt.preventDefault(); // prevent the tab key from being added
+				this.syntaxHighlight('snippets',pattern,content);
+			}
+		}
+	},
+	
+	readOnly : function() {
+		document.designMode = (arguments[0]) ? 'off' : 'on';
+	},
+
+	complete : function(trigger) {
+		window.getSelection().getRangeAt(0).deleteContents();
+		var complete = Language.complete;
+		for (var i=0; i<complete.length; i++) {
+			if(complete[i].input == trigger) {
+				var pattern = new RegExp('\\'+trigger+cc);
+				var content = complete[i].output.replace(/\$0/g,cc);
+				parent.setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+			}
+		}
+	},
+
+	getCompleteChars : function() {
+		var cChars = '';
+		for(var i=0;i<Language.complete.length;i++)
+			cChars += '|'+Language.complete[i].input;
+		return cChars+'|';
+	},
+
+	shortcuts : function() {
+		var cCode = arguments[0];
+		if(cCode==13) cCode = '[enter]';
+		else if(cCode==32) cCode = '[space]';
+		else cCode = '['+String.fromCharCode(charCode).toLowerCase()+']';
+		for(var i=0;i<Language.shortcuts.length;i++)
+			if(Language.shortcuts[i].input == cCode)
+				this.insertCode(Language.shortcuts[i].output,false);
+	},
+	
+	getRangeAndCaret : function() {	
+		var range = window.getSelection().getRangeAt(0);
+		var range2 = range.cloneRange();
+		var node = range.endContainer;			
+		var caret = range.endOffset;
+		range2.selectNode(node);	
+		return [range2.toString(),caret];
+	},
+	
+	insertCode : function(code,replaceCursorBefore) {
+		var range = window.getSelection().getRangeAt(0);
+		var node = window.document.createTextNode(code);
+		var selct = window.getSelection();
+		var range2 = range.cloneRange();
+		// Insert text at cursor position
+		selct.removeAllRanges();
+		range.deleteContents();
+		range.insertNode(node);
+		// Move the cursor to the end of text
+		range2.selectNode(node);		
+		range2.collapse(replaceCursorBefore);
+		selct.removeAllRanges();
+		selct.addRange(range2);
+	},
+	
+	// get code from editor
+	getCode : function() {
+		var code = editor.innerHTML;
+		code = code.replace(/<br>/g,'\n');
+		code = code.replace(/\u2009/g,'');
+		code = code.replace(/<.*?>/g,'');
+		code = code.replace(/&lt;/g,'<');
+		code = code.replace(/&gt;/g,'>');
+		code = code.replace(/&amp;/gi,'&');
+		return code;
+	},
+
+	// put code inside editor
+	setCode : function() {
+		var code = arguments[0];
+		code = code.replace(/\u2009/gi,'');
+		code = code.replace(/&/gi,'&amp;');
+       	code = code.replace(/</g,'&lt;');
+        code = code.replace(/>/g,'&gt;');
+		editor.innerHTML = code;
+	},
+
+	// undo and redo methods
+	actions : {
+		pos : -1, // actual history position
+		history : [], // history vector
+		
+		undo : function() {
+			if(editor.innerHTML.indexOf(cc)==-1){
+				window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));
+			 	this.history[this.pos] = editor.innerHTML;
+			}
+			this.pos--;
+			if(typeof(this.history[this.pos])=='undefined') this.pos++;
+			editor.innerHTML = this.history[this.pos];
+			CodePress.findString();
+		},
+		
+		redo : function() {
+			this.pos++;
+			if(typeof(this.history[this.pos])=='undefined') this.pos--;
+			editor.innerHTML = this.history[this.pos];
+			CodePress.findString();
+		},
+		
+		next : function() { // get next vector position and clean old ones
+			if(this.pos>20) this.history[this.pos-21] = undefined;
+			return ++this.pos;
+		}
+	}
+}
+
+Language={};
+window.addEventListener('load', function() { CodePress.initialize('new'); }, true);
Index: tags/2.7.0/wb/include/codepress/engines/gecko.js
===================================================================
--- tags/2.7.0/wb/include/codepress/engines/gecko.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/engines/gecko.js	(revision 838)
@@ -0,0 +1,293 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ * 
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Developers:
+ *		Fernando M.A.d.S. <fermads@gmail.com>
+ *		Michael Hurni <michael.hurni@gmail.com>
+ * Contributors: 	
+ *		Martin D. Kirk
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the 
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ * 
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = {
+	scrolling : false,
+	autocomplete : true,
+
+	// set initial vars and start sh
+	initialize : function() {
+		if(typeof(editor)=='undefined' && !arguments[0]) return;
+		body = document.getElementsByTagName('body')[0];
+		body.innerHTML = body.innerHTML.replace(/\n/g,"");
+		chars = '|32|46|62|8|'; // charcodes that trigger syntax highlighting
+		cc = '\u2009'; // carret char
+		editor = document.getElementsByTagName('pre')[0];
+		document.designMode = 'on';
+		document.addEventListener('keypress', this.keyHandler, true);
+		window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false);
+		completeChars = this.getCompleteChars();
+		completeEndingChars =  this.getCompleteEndingChars();
+	},
+
+	// treat key bindings
+	keyHandler : function(evt) {
+    	keyCode = evt.keyCode;	
+		charCode = evt.charCode;
+		fromChar = String.fromCharCode(charCode);
+
+		if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90)  { // shortcuts = ctrl||appleKey+shift+key!=z(undo) 
+			CodePress.shortcuts(charCode?charCode:keyCode);
+		}
+		else if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1) && CodePress.autocomplete) { // auto complete
+			if(!CodePress.completeEnding(fromChar))
+			     CodePress.complete(fromChar);
+		}
+	    else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting
+			top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100);
+		}
+		else if(keyCode==9 || evt.tabKey) {  // snippets activation (tab)
+			CodePress.snippets(evt);
+		}
+		else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+		 	CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+		}
+		else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo
+			(charCode==121||evt.shiftKey) ? CodePress.actions.redo() :  CodePress.actions.undo(); 
+			evt.preventDefault();
+		}
+		else if(charCode==118 && evt.ctrlKey)  { // handle paste
+		 	top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100);
+		}
+		else if(charCode==99 && evt.ctrlKey)  { // handle cut
+		 	//alert(window.getSelection().getRangeAt(0).toString().replace(/\t/g,'FFF'));
+		}
+
+	},
+
+	// put cursor back to its original position after every parsing
+	findString : function() {
+		if(self.find(cc))
+			window.getSelection().getRangeAt(0).deleteContents();
+	},
+	
+	// split big files, highlighting parts of it
+	split : function(code,flag) {
+		if(flag=='scroll') {
+			this.scrolling = true;
+			return code;
+		}
+		else {
+			this.scrolling = false;
+			mid = code.indexOf(cc);
+			if(mid-2000<0) {ini=0;end=4000;}
+			else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+			else {ini=mid-2000;end=mid+2000;}
+			code = code.substring(ini,end);
+			return code;
+		}
+	},
+	
+	getEditor : function() {
+		if(!document.getElementsByTagName('pre')[0]) {
+			body = document.getElementsByTagName('body')[0];
+			if(!body.innerHTML) return body;
+			if(body.innerHTML=="<br>") body.innerHTML = "<pre> </pre>";
+			else body.innerHTML = "<pre>"+body.innerHTML+"</pre>";
+		}
+		return document.getElementsByTagName('pre')[0];
+	},
+	
+	// syntax highlighting parser
+	syntaxHighlight : function(flag) {
+		//if(document.designMode=='off') document.designMode='on'
+		if(flag != 'init') { window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));}
+		editor = CodePress.getEditor();
+		o = editor.innerHTML;
+		o = o.replace(/<br>/g,'\n');
+		o = o.replace(/<.*?>/g,'');
+		x = z = this.split(o,flag);
+		x = x.replace(/\n/g,'<br>');
+
+		if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+	
+		for(i=0;i<Language.syntax.length;i++) 
+			x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+
+		editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.split(z).join(x);
+		if(flag!='init') this.findString();
+	},
+	
+	getLastWord : function() {
+		var rangeAndCaret = CodePress.getRangeAndCaret();
+		words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+		words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+		return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+	},
+	
+	snippets : function(evt) {
+		var snippets = Language.snippets;	
+		var trigger = this.getLastWord();
+		for (var i=0; i<snippets.length; i++) {
+			if(snippets[i].input == trigger) {
+				var content = snippets[i].output.replace(/</g,'&lt;');
+				content = content.replace(/>/g,'&gt;');
+				if(content.indexOf('$0')<0) content += cc;
+				else content = content.replace(/\$0/,cc);
+				content = content.replace(/\n/g,'<br>');
+				var pattern = new RegExp(trigger+cc,'gi');
+				evt.preventDefault(); // prevent the tab key from being added
+				this.syntaxHighlight('snippets',pattern,content);
+			}
+		}
+	},
+	
+	readOnly : function() {
+		document.designMode = (arguments[0]) ? 'off' : 'on';
+	},
+
+	complete : function(trigger) {
+		window.getSelection().getRangeAt(0).deleteContents();
+		var complete = Language.complete;
+		for (var i=0; i<complete.length; i++) {
+			if(complete[i].input == trigger) {
+				var pattern = new RegExp('\\'+trigger+cc);
+				var content = complete[i].output.replace(/\$0/g,cc);
+				parent.setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+			}
+		}
+	},
+
+	getCompleteChars : function() {
+		var cChars = '';
+		for(var i=0;i<Language.complete.length;i++)
+			cChars += '|'+Language.complete[i].input;
+		return cChars+'|';
+	},
+	
+	getCompleteEndingChars : function() {
+		var cChars = '';
+		for(var i=0;i<Language.complete.length;i++)
+			cChars += '|'+Language.complete[i].output.charAt(Language.complete[i].output.length-1);
+		return cChars+'|';
+	},
+	
+	completeEnding : function(trigger) {
+		var range = window.getSelection().getRangeAt(0);
+		try {
+			range.setEnd(range.endContainer, range.endOffset+1)
+		}
+		catch(e) {
+			return false;
+		}
+		var next_character = range.toString()
+		range.setEnd(range.endContainer, range.endOffset-1)
+		if(next_character != trigger) return false;
+		else {
+			range.setEnd(range.endContainer, range.endOffset+1)
+			range.deleteContents();
+			return true;
+		}
+	},
+	
+	shortcuts : function() {
+		var cCode = arguments[0];
+		if(cCode==13) cCode = '[enter]';
+		else if(cCode==32) cCode = '[space]';
+		else cCode = '['+String.fromCharCode(charCode).toLowerCase()+']';
+		for(var i=0;i<Language.shortcuts.length;i++)
+			if(Language.shortcuts[i].input == cCode)
+				this.insertCode(Language.shortcuts[i].output,false);
+	},
+	
+	getRangeAndCaret : function() {	
+		var range = window.getSelection().getRangeAt(0);
+		var range2 = range.cloneRange();
+		var node = range.endContainer;			
+		var caret = range.endOffset;
+		range2.selectNode(node);	
+		return [range2.toString(),caret];
+	},
+	
+	insertCode : function(code,replaceCursorBefore) {
+		var range = window.getSelection().getRangeAt(0);
+		var node = window.document.createTextNode(code);
+		var selct = window.getSelection();
+		var range2 = range.cloneRange();
+		// Insert text at cursor position
+		selct.removeAllRanges();
+		range.deleteContents();
+		range.insertNode(node);
+		// Move the cursor to the end of text
+		range2.selectNode(node);		
+		range2.collapse(replaceCursorBefore);
+		selct.removeAllRanges();
+		selct.addRange(range2);
+	},
+	
+	// get code from editor
+	getCode : function() {
+		if(!document.getElementsByTagName('pre')[0] || editor.innerHTML == '')
+			editor = CodePress.getEditor();
+		var code = editor.innerHTML;
+		code = code.replace(/<br>/g,'\n');
+		code = code.replace(/\u2009/g,'');
+		code = code.replace(/<.*?>/g,'');
+		code = code.replace(/&lt;/g,'<');
+		code = code.replace(/&gt;/g,'>');
+		code = code.replace(/&amp;/gi,'&');
+		return code;
+	},
+
+	// put code inside editor
+	setCode : function() {
+		var code = arguments[0];
+		code = code.replace(/\u2009/gi,'');
+		code = code.replace(/&/gi,'&amp;');
+		code = code.replace(/</g,'&lt;');
+		code = code.replace(/>/g,'&gt;');
+		editor.innerHTML = code;
+		if (code == '')
+			document.getElementsByTagName('body')[0].innerHTML = '';
+	},
+
+	// undo and redo methods
+	actions : {
+		pos : -1, // actual history position
+		history : [], // history vector
+		
+		undo : function() {
+			editor = CodePress.getEditor();
+			if(editor.innerHTML.indexOf(cc)==-1){
+				if(editor.innerHTML != " ")
+					window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));
+				this.history[this.pos] = editor.innerHTML;
+			}
+			this.pos --;
+			if(typeof(this.history[this.pos])=='undefined') this.pos ++;
+			editor.innerHTML = this.history[this.pos];
+			if(editor.innerHTML.indexOf(cc)>-1) editor.innerHTML+=cc;
+			CodePress.findString();
+		},
+		
+		redo : function() {
+			// editor = CodePress.getEditor();
+			this.pos++;
+			if(typeof(this.history[this.pos])=='undefined') this.pos--;
+			editor.innerHTML = this.history[this.pos];
+			CodePress.findString();
+		},
+		
+		next : function() { // get next vector position and clean old ones
+			if(this.pos>20) this.history[this.pos-21] = undefined;
+			return ++this.pos;
+		}
+	}
+}
+
+Language={};
+window.addEventListener('load', function() { CodePress.initialize('new'); }, true);
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/engines/msie.js
===================================================================
--- tags/2.7.0/wb/include/codepress/engines/msie.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/engines/msie.js	(revision 838)
@@ -0,0 +1,304 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ * 
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Developers:
+ *		Fernando M.A.d.S. <fermads@gmail.com>
+ *		Michael Hurni <michael.hurni@gmail.com>
+ * Contributors: 	
+ *		Martin D. Kirk
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the 
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ * 
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = {
+	scrolling : false,
+	autocomplete : true,
+	
+	// set initial vars and start sh
+	initialize : function() {
+		if(typeof(editor)=='undefined' && !arguments[0]) return;
+		chars = '|32|46|62|'; // charcodes that trigger syntax highlighting
+		cc = '\u2009'; // carret char
+		editor = document.getElementsByTagName('pre')[0];
+		editor.contentEditable = 'true';
+		document.getElementsByTagName('body')[0].onfocus = function() {editor.focus();}
+		document.attachEvent('onkeydown', this.metaHandler);
+		document.attachEvent('onkeypress', this.keyHandler);
+		window.attachEvent('onscroll', function() { if(!CodePress.scrolling) setTimeout(function(){CodePress.syntaxHighlight('scroll')},1)});
+		completeChars = this.getCompleteChars();
+		completeEndingChars =  this.getCompleteEndingChars();
+		setTimeout(function() { window.scroll(0,0) },50); // scroll IE to top
+	},
+	
+	// treat key bindings
+	keyHandler : function(evt) {
+		charCode = evt.keyCode;
+		fromChar = String.fromCharCode(charCode);
+		
+		if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1  )&& CodePress.autocomplete) { // auto complete
+			if(!CodePress.completeEnding(fromChar))
+			     CodePress.complete(fromChar);
+		}
+	    else if(chars.indexOf('|'+charCode+'|')!=-1||charCode==13) { // syntax highlighting
+		 	CodePress.syntaxHighlight('generic');
+		}
+	},
+
+	metaHandler : function(evt) {
+		keyCode = evt.keyCode;
+		
+		if(keyCode==9 || evt.tabKey) { 
+			CodePress.snippets();
+		}
+		else if((keyCode==122||keyCode==121||keyCode==90) && evt.ctrlKey) { // undo and redo
+			(keyCode==121||evt.shiftKey) ? CodePress.actions.redo() :  CodePress.actions.undo(); 
+			evt.returnValue = false;
+		}
+		else if(keyCode==34||keyCode==33) { // handle page up/down for IE
+			self.scrollBy(0, (keyCode==34) ? 200 : -200); 
+			evt.returnValue = false;
+		}
+		else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+		 	CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+		}
+		else if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && keyCode!=90)  { // shortcuts = ctrl||appleKey+shift+key!=z(undo) 
+			CodePress.shortcuts(keyCode);
+			evt.returnValue = false;
+		}
+		else if(keyCode==86 && evt.ctrlKey)  { // handle paste
+			window.clipboardData.setData('Text',window.clipboardData.getData('Text').replace(/\t/g,'\u2008'));
+		 	top.setTimeout(function(){CodePress.syntaxHighlight('paste');},10);
+		}
+		else if(keyCode==67 && evt.ctrlKey)  { // handle cut
+			// window.clipboardData.setData('Text',x[0]);
+			// code = window.clipboardData.getData('Text');
+		}
+	},
+
+	// put cursor back to its original position after every parsing
+	
+	
+	findString : function() {
+		range = self.document.body.createTextRange();
+		if(range.findText(cc)){
+			range.select();
+			range.text = '';
+		}
+	},
+	
+	// split big files, highlighting parts of it
+	split : function(code,flag) {
+		if(flag=='scroll') {
+			this.scrolling = true;
+			return code;
+		}
+		else {
+			this.scrolling = false;
+			mid = code.indexOf(cc);
+			if(mid-2000<0) {ini=0;end=4000;}
+			else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+			else {ini=mid-2000;end=mid+2000;}
+			code = code.substring(ini,end);
+			return code.substring(code.indexOf('<P>'),code.lastIndexOf('</P>')+4);
+		}
+	},
+	
+	// syntax highlighting parser
+	syntaxHighlight : function(flag) {
+		if(flag!='init') document.selection.createRange().text = cc;
+		o = editor.innerHTML;
+		if(flag=='paste') { // fix pasted text
+			o = o.replace(/<BR>/g,'\r\n'); 
+			o = o.replace(/\u2008/g,'\t');
+		}
+		o = o.replace(/<P>/g,'\n');
+		o = o.replace(/<\/P>/g,'\r');
+		o = o.replace(/<.*?>/g,'');
+		o = o.replace(/&nbsp;/g,'');			
+		o = '<PRE><P>'+o+'</P></PRE>';
+		o = o.replace(/\n\r/g,'<P></P>');
+		o = o.replace(/\n/g,'<P>');
+		o = o.replace(/\r/g,'<\/P>');
+		o = o.replace(/<P>(<P>)+/,'<P>');
+		o = o.replace(/<\/P>(<\/P>)+/,'</P>');
+		o = o.replace(/<P><\/P>/g,'<P><BR/></P>');
+		x = z = this.split(o,flag);
+
+		if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+	
+		for(i=0;i<Language.syntax.length;i++) 
+			x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+			
+		editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.replace(z,x);
+		if(flag!='init') this.findString();
+	},
+
+	snippets : function(evt) {
+		var snippets = Language.snippets;
+		var trigger = this.getLastWord();
+		for (var i=0; i<snippets.length; i++) {
+			if(snippets[i].input == trigger) {
+				var content = snippets[i].output.replace(/</g,'&lt;');
+				content = content.replace(/>/g,'&gt;');
+				if(content.indexOf('$0')<0) content += cc;
+				else content = content.replace(/\$0/,cc);
+				content = content.replace(/\n/g,'</P><P>');
+				var pattern = new RegExp(trigger+cc,"gi");
+				this.syntaxHighlight('snippets',pattern,content);
+			}
+		}
+	},
+	
+	readOnly : function() {
+		editor.contentEditable = (arguments[0]) ? 'false' : 'true';
+	},
+	
+	complete : function(trigger) {
+		var complete = Language.complete;
+		for (var i=0; i<complete.length; i++) {
+			if(complete[i].input == trigger) {
+				var pattern = new RegExp('\\'+trigger+cc);
+				var content = complete[i].output.replace(/\$0/g,cc);
+				setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+			}
+		}
+	},
+	
+	getCompleteChars : function() {
+		var cChars = '';
+		for(var i=0;i<Language.complete.length;i++)
+			cChars += '|'+Language.complete[i].input;
+		return cChars+'|';
+	},
+
+	getCompleteEndingChars : function() {
+		var cChars = '';
+		for(var i=0;i<Language.complete.length;i++)
+			cChars += '|'+Language.complete[i].output.charAt(Language.complete[i].output.length-1);
+		return cChars+'|';
+	},
+
+	completeEnding : function(trigger) {
+		var range = document.selection.createRange();
+		try {
+			range.moveEnd('character', 1)
+		}
+		catch(e) {
+			return false;
+		}
+		var next_character = range.text
+		range.moveEnd('character', -1)
+		if(next_character != trigger )  return false;
+		else {
+			range.moveEnd('character', 1)
+			range.text=''
+			return true;
+		}
+	},	
+
+	shortcuts : function() {
+		var cCode = arguments[0];
+		if(cCode==13) cCode = '[enter]';
+		else if(cCode==32) cCode = '[space]';
+		else cCode = '['+String.fromCharCode(keyCode).toLowerCase()+']';
+		for(var i=0;i<Language.shortcuts.length;i++)
+			if(Language.shortcuts[i].input == cCode)
+				this.insertCode(Language.shortcuts[i].output,false);
+	},
+	
+	getLastWord : function() {
+		var rangeAndCaret = CodePress.getRangeAndCaret();
+		words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+		words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+		return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+	}, 
+
+	getRangeAndCaret : function() {	
+		var range = document.selection.createRange();
+		var caret = Math.abs(range.moveStart('character', -1000000)+1);
+		range = this.getCode();
+		range = range.replace(/\n\r/gi,'  ');
+		range = range.replace(/\n/gi,'');
+		return [range.toString(),caret];
+	},
+	
+	insertCode : function(code,replaceCursorBefore) {
+		var repdeb = '';
+		var repfin = '';
+		
+		if(replaceCursorBefore) { repfin = code; }
+		else { repdeb = code; }
+		
+		if(typeof document.selection != 'undefined') {
+			var range = document.selection.createRange();
+			range.text = repdeb + repfin;
+			range = document.selection.createRange();
+			range.move('character', -repfin.length);
+			range.select();	
+		}	
+	},
+
+	// get code from editor	
+	getCode : function() {
+		var code = editor.innerHTML;
+		code = code.replace(/<br>/g,'\n');
+		code = code.replace(/<\/p>/gi,'\r');
+		code = code.replace(/<p>/i,''); // IE first line fix
+		code = code.replace(/<p>/gi,'\n');
+		code = code.replace(/&nbsp;/gi,'');
+		code = code.replace(/\u2009/g,'');
+		code = code.replace(/<.*?>/g,'');
+		code = code.replace(/&lt;/g,'<');
+		code = code.replace(/&gt;/g,'>');
+		code = code.replace(/&amp;/gi,'&');
+		return code;
+	},
+
+	// put code inside editor
+	setCode : function() {
+		var code = arguments[0];
+		code = code.replace(/\u2009/gi,'');
+		code = code.replace(/&/gi,'&amp;');		
+       	code = code.replace(/</g,'&lt;');
+        code = code.replace(/>/g,'&gt;');
+		editor.innerHTML = '<pre>'+code+'</pre>';
+	},
+
+	
+	// undo and redo methods
+	actions : {
+		pos : -1, // actual history position
+		history : [], // history vector
+		
+		undo : function() {
+			if(editor.innerHTML.indexOf(cc)==-1){
+				document.selection.createRange().text = cc;
+			 	this.history[this.pos] = editor.innerHTML;
+			}
+			this.pos--;
+			if(typeof(this.history[this.pos])=='undefined') this.pos++;
+			editor.innerHTML = this.history[this.pos];
+			CodePress.findString();
+		},
+		
+		redo : function() {
+			this.pos++;
+			if(typeof(this.history[this.pos])=='undefined') this.pos--;
+			editor.innerHTML = this.history[this.pos];
+			CodePress.findString();
+		},
+		
+		next : function() { // get next vector position and clean old ones
+			if(this.pos>20) this.history[this.pos-21] = undefined;
+			return ++this.pos;
+		}
+	}
+}
+
+Language={};
+window.attachEvent('onload', function() { CodePress.initialize('new');});
\ No newline at end of file
Index: tags/2.7.0/wb/include/codepress/engines/khtml.js
===================================================================
Index: tags/2.7.0/wb/include/codepress/index.php
===================================================================
--- tags/2.7.0/wb/include/codepress/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/codepress/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/codepress/license.txt
===================================================================
--- tags/2.7.0/wb/include/codepress/license.txt	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/license.txt	(revision 838)
@@ -0,0 +1,458 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
Index: tags/2.7.0/wb/include/codepress/codepress.js
===================================================================
--- tags/2.7.0/wb/include/codepress/codepress.js	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/codepress.js	(revision 838)
@@ -0,0 +1,138 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ * 
+ * Copyright (C) 2006 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the 
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ * 
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = function(obj) {
+	var self = document.createElement('iframe');
+	self.textarea = obj;
+	self.textarea.disabled = true;
+	self.textarea.style.overflow = 'hidden';
+	self.style.height = self.textarea.clientHeight +'px';
+	self.style.width = self.textarea.clientWidth +'px';
+	self.textarea.style.overflow = 'auto';
+	self.style.border = '1px solid gray';
+	self.frameBorder = 0; // remove IE internal iframe border
+	self.style.visibility = 'hidden';
+	self.style.position = 'absolute';
+	self.options = self.textarea.className;
+	
+	self.initialize = function() {
+		self.editor = self.contentWindow.CodePress;
+		self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0];
+		self.editor.setCode(self.textarea.value);
+		self.setOptions();
+		self.editor.syntaxHighlight('init');
+		self.textarea.style.display = 'none';
+		self.style.position = 'static';
+		self.style.visibility = 'visible';
+		self.style.display = 'inline';
+	}
+	
+	// obj can by a textarea id or a string (code)
+	self.edit = function(obj,language) {
+		if(obj) self.textarea.value = document.getElementById(obj) ? document.getElementById(obj).value : obj;
+		if(!self.textarea.disabled) return;
+		self.language = language ? language : self.getLanguage();
+		self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime();
+		if(self.attachEvent) self.attachEvent('onload',self.initialize);
+		else self.addEventListener('load',self.initialize,false);
+	}
+
+	self.getLanguage = function() {
+		for (language in CodePress.languages) 
+			if(self.options.match('\\b'+language+'\\b')) 
+				return CodePress.languages[language] ? language : 'generic';
+	}
+	
+	self.setOptions = function() {
+		if(self.options.match('autocomplete-off')) self.toggleAutoComplete();
+		if(self.options.match('readonly-on')) self.toggleReadOnly();
+		if(self.options.match('linenumbers-off')) self.toggleLineNumbers();
+	}
+	
+	self.getCode = function() {
+		return self.textarea.disabled ? self.editor.getCode() : self.textarea.value;
+	}
+
+	self.setCode = function(code) {
+		self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code;
+	}
+
+	self.toggleAutoComplete = function() {
+		self.editor.autocomplete = (self.editor.autocomplete) ? false : true;
+	}
+	
+	self.toggleReadOnly = function() {
+		self.textarea.readOnly = (self.textarea.readOnly) ? false : true;
+		if(self.style.display != 'none') // prevent exception on FF + iframe with display:none
+			self.editor.readOnly(self.textarea.readOnly ? true : false);
+	}
+	
+	self.toggleLineNumbers = function() {
+		var cn = self.editor.body.className;
+		self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers';
+	}
+	
+	self.toggleEditor = function() {
+		if(self.textarea.disabled) {
+			self.textarea.value = self.getCode();
+			self.textarea.disabled = false;
+			self.style.display = 'none';
+			self.textarea.style.display = 'inline';
+		}
+		else {
+			self.textarea.disabled = true;
+			self.setCode(self.textarea.value);
+			self.editor.syntaxHighlight('init');
+			self.style.display = 'inline';
+			self.textarea.style.display = 'none';
+		}
+	}
+
+	self.edit();
+	return self;
+}
+
+CodePress.languages = {	
+	csharp : 'C#', 
+	css : 'CSS', 
+	generic : 'Generic',
+	html : 'HTML',
+	java : 'Java', 
+	javascript : 'JavaScript', 
+	perl : 'Perl', 
+	ruby : 'Ruby',	
+	php : 'PHP', 
+	text : 'Text', 
+	sql : 'SQL',
+	vbscript : 'VBScript'
+}
+
+
+CodePress.run = function() {
+	s = document.getElementsByTagName('script');
+	for(var i=0,n=s.length;i<n;i++) {
+		if(s[i].src.match('codepress.js')) {
+			CodePress.path = s[i].src.replace('codepress.js','');
+		}
+	}
+	t = document.getElementsByTagName('textarea');
+	for(var i=0,n=t.length;i<n;i++) {
+		if(t[i].className.match('codepress')) {
+			id = t[i].id;
+			t[i].id = id+'_cp';
+			eval(id+' = new CodePress(t[i])');
+			t[i].parentNode.insertBefore(eval(id), t[i]);
+		} 
+	}
+}
+
+if(window.attachEvent) window.attachEvent('onload',CodePress.run);
+else window.addEventListener('DOMContentLoaded',CodePress.run,false);
Index: tags/2.7.0/wb/include/codepress/codepress.html
===================================================================
--- tags/2.7.0/wb/include/codepress/codepress.html	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/codepress.html	(revision 838)
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+	<title>CodePress - Real Time Syntax Highlighting Editor written in JavaScript</title>
+	<meta name="description" content="CodePress - source code editor window" />
+
+	<script type="text/javascript">
+	var language = 'generic';
+	var engine = 'older';
+	var ua = navigator.userAgent;
+	var ts = (new Date).getTime(); // timestamp to avoid cache
+	var lh = location.href;
+	
+	if(ua.match('MSIE')) engine = 'msie';
+	else if(ua.match('KHTML')) engine = 'khtml'; 
+	else if(ua.match('Opera')) engine = 'opera'; 
+	else if(ua.match('Gecko')) engine = 'gecko';
+
+	if(lh.match('language=')) language = lh.replace(/.*language=(.*?)(&.*)?$/,'$1');
+
+	document.write('<link type="text/css" href="codepress.css?ts='+ts+'" rel="stylesheet" />');
+	document.write('<link type="text/css" href="languages/'+language+'.css?ts='+ts+'" rel="stylesheet" id="cp-lang-style" />');
+	document.write('<scr'+'ipt type="text/javascript" src="engines/'+engine+'.js?ts='+ts+'"></scr'+'ipt>');
+	document.write('<scr'+'ipt type="text/javascript" src="languages/'+language+'.js?ts='+ts+'"></scr'+'ipt>');
+	</script>
+
+</head>
+
+<script type="text/javascript">
+if(engine == "msie" || engine == "gecko") document.write('<body><pre> </pre></body>');
+else if(engine == "opera") document.write('<body></body>');
+// else if(engine == "khtml") document.write('<body> </body>');
+</script>
+
+</html>
Index: tags/2.7.0/wb/include/codepress/codepress.css
===================================================================
--- tags/2.7.0/wb/include/codepress/codepress.css	(nonexistent)
+++ tags/2.7.0/wb/include/codepress/codepress.css	(revision 838)
@@ -0,0 +1,21 @@
+body {
+	margin-top:13px;
+	_margin-top:14px;
+	background:white;
+	margin-left:32px;
+	font-family:monospace;
+	font-size:13px;
+	white-space:pre;
+	background-image:url("images/line-numbers.png");
+	background-repeat:repeat-y;
+	background-position:0 3px;
+	line-height:16px;
+	height:100%;
+}
+pre {margin:0;}
+html>body{background-position:0 2px;}
+P {margin:0;padding:0;border:0;outline:0;display:block;white-space:pre;}
+b, i, s, u, a, em, tt, ins, big, cite, strong, var, dfn {text-decoration:none;font-weight:normal;font-style:normal;font-size:13px;}
+
+body.hide-line-numbers {background:white;margin-left:16px;}
+body.show-line-numbers {background-image:url("images/line-numbers.png");margin-left:32px;}
\ No newline at end of file
Index: tags/2.7.0/wb/include/captcha.php
===================================================================
--- tags/2.7.0/wb/include/captcha.php	(nonexistent)
+++ tags/2.7.0/wb/include/captcha.php	(revision 838)
@@ -0,0 +1,83 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Captcha generator
+
+This file generates a captcha image.
+Credits to http://php.webmaster-kit.com/ for the original code.
+
+*/
+
+require_once("../config.php");
+
+if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg') AND isset($_SESSION['captcha'])) {
+	
+	$image = imagecreate(120, 30);
+	
+	$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+	$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
+	$darkgray = imagecolorallocate($image, 0x50, 0x50, 0x50);
+	
+	srand((double)microtime()*1000000);
+	
+	for($i = 0; $i < 30; $i++) {
+		$x1 = rand(0,120);
+		$y1 = rand(0,30);
+		$x2 = rand(0,120);
+		$y2 = rand(0,30);
+		imageline($image, $x1, $y1, $x2, $y2 , $gray);  
+	}
+	
+	$x = 0;
+	for($i = 0; $i < 5; $i++) {
+		$fnt = rand(3,5);
+		$x = $x + rand(12 , 20);
+		$y = rand(7 , 12); 
+		imagestring($image, $fnt, $x, $y, substr($_SESSION['captcha'], $i, 1), $darkgray); 
+	}
+	
+	// start buffering for size determination
+	ob_start();
+	// add no cache headers
+	header("Expires: Mon, 1 Jan 1990 05:00:00 GMT");
+	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+	header("Cache-Control: no-store, no-cache, must-revalidate");
+	header("Cache-Control: post-check=0, pre-check=0", false);
+	header("Pragma: no-cache");
+	header("Content-type: image/png");
+	// Make image
+	imagepng($image);
+	// Fetch length
+	header("Content-Length: " . ob_get_length());
+	// send image and turn off buffering
+	ob_end_flush();
+	// clear memory
+	imagedestroy($image);
+
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/captcha.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/include/index.php
===================================================================
--- tags/2.7.0/wb/include/index.php	(nonexistent)
+++ tags/2.7.0/wb/include/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/include/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/module.functions.php
===================================================================
--- tags/2.7.0/wb/framework/module.functions.php	(nonexistent)
+++ tags/2.7.0/wb/framework/module.functions.php	(revision 838)
@@ -0,0 +1,218 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/**
+	This file contains routines to edit the optional module files: frontend.css and backend.css
+	Mechanism was introduced with WB 2.7 to provide a global solution for all modules
+	To use this function, include this file from your module (e.g. from modify.php)
+	Then simply call the function edit_css('your_module_directory') - that´s it
+	NOTE: Some functions were added for module developers to make the creation of own module easier
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: index.php'));  
+
+/*
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+ FUNCTIONS REQUIRED TO EDIT THE OPTIONAL MODULE CSS FILES
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+*/ 
+
+// this function checks the validity of the specified module directory
+if(!function_exists('check_module_dir')) {
+	function check_module_dir($mod_dir) {
+		// check if module directory is formal correct (only characters: "a-z,0-9,_,-")
+		if(!preg_match('/^[a-z0-9_-]+$/iD', $mod_dir)) return '';
+		// check if the module folder contains the required info.php file
+		return (file_exists(WB_PATH .'/modules/' .$mod_dir .'/info.php')) ? $mod_dir : '';
+	}
+}
+
+// this function checks if the specified optional module file exists
+if (!function_exists('mod_file_exists')) {
+	function mod_file_exists($mod_dir, $mod_file='frontend.css') {
+  	// check if the module file exists
+		return file_exists(WB_PATH .'/modules/' .$mod_dir .'/' .$mod_file);
+	}
+}
+
+// this function displays the "Edit CSS" button in modify.php 
+if (!function_exists('edit_module_css')) {
+	function edit_module_css($mod_dir) {
+		global $page_id, $section_id;
+				
+		// check if the required edit_module_css.php file exists
+		if(!file_exists(WB_PATH .'/modules/edit_module_files.php')) return;
+		
+		// check if specified module directory is valid
+		if(check_module_dir($mod_dir) == '') return;
+		
+		// check if frontend.css or backend.css exist
+		$frontend_css = mod_file_exists($mod_dir, 'frontend.css');
+		$backend_css = mod_file_exists($mod_dir, 'backend.css');
+		
+		// output the edit CSS submtin button if required
+		if($frontend_css || $backend_css) {
+			// default text used for the edit CSS routines if not defined in the WB core language files
+			$edit_css_caption = (isset($GLOBALS['TEXT']['CAP_EDIT_CSS'])) ?$GLOBALS['TEXT']['CAP_EDIT_CSS'] :'Edit CSS';
+			?>
+			<form name="edit_module_file" action="<?php echo WB_URL .'/modules/edit_module_files.php?page_id='.$page_id;?>" 
+				method="post" style="margin: 0; align:right;">
+				<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+				<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+				<input type="hidden" name="mod_dir" value="<?php echo $mod_dir; ?>">
+				<input type="hidden" name="edit_file" value="<?php echo ($frontend_css) ?'frontend.css' : 'backend.css';?>">
+				<input type="hidden" name="action" value="edit">
+				<input type="submit" value="<?php echo $edit_css_caption;?>" class="mod_<?php echo $mod_dir;?>_edit_css">
+			</form>
+			<?php
+    }
+  }
+}
+
+// this function displays a button to toggle between CSS files (invoked from edit_css.php)
+if (!function_exists('toggle_css_file')) {
+	function toggle_css_file($mod_dir, $base_css_file = 'frontend.css') {
+		global $page_id, $section_id;
+		// check if the required edit_module_css.php file exists
+		if(!file_exists(WB_PATH .'/modules/edit_module_files.php')) return;
+
+		// check if specified module directory is valid
+		if(check_module_dir($mod_dir) == '') return;
+
+		// do sanity check of specified css file
+		if(!in_array($base_css_file, array('frontend.css', 'backend.css'))) return;
+		
+		// display button to toggle between the two CSS files: frontend.css, backend.css
+		$toggle_file = ($base_css_file == 'frontend.css') ? 'backend.css' : 'frontend.css';
+		if(mod_file_exists($mod_dir, $toggle_file)) {
+			?>
+			<form name="toggle_module_file" action="<?php echo WB_URL .'/modules/edit_module_files.php?page_id='.$page_id;?>" method="post" style="margin: 0; align:right;">
+				<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+				<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+				<input type="hidden" name="mod_dir" value="<?php echo $mod_dir; ?>">
+				<input type="hidden" name="edit_file" value="<?php echo $toggle_file; ?>">
+				<input type="hidden" name="action" value="edit">
+				<input type="submit" value="<?php echo ucwords($toggle_file);?>" class="mod_<?php echo $mod_dir;?>_edit_css">
+			</form>
+			<?php
+		}
+  }
+}
+
+/*
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+ FUNCTIONS WHICH CAN BE USED BY MODULE DEVELOPERS FOR OWN MODULES (E.G. VIEW.PHP, MODIFY.PHP)
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+*/ 
+
+// function to obtain the module language file depending on the backend language of the current user
+if (!function_exists('get_module_language_file')) {
+	function get_module_language_file($mymod_dir) {
+		$mymod_dir = strip_tags($mymod_dir);
+		if(file_exists(WB_PATH .'/modules/' .$mymod_dir .'/languages/' .LANGUAGE .'.php')) {
+			// a module language file exists for the users backend language
+			return (WB_PATH .'/modules/' .$mymod_dir .'/languages/' .LANGUAGE .'.php');
+		} else {
+			// an English module language file must exist in all multi-lingual modules
+			if(file_exists(WB_PATH .'/modules/' .$mymod_dir .'/languages/EN.php')) {
+				return (WB_PATH .'/modules/' .$mymod_dir .'/languages/EN.php');
+			} else {
+				echo '<p><strong>Error: </strong>';
+				echo 'Default language file (EN.php) of module "' .htmlentities($mymod_dir) .'" does not exist.</p><br />';
+				return false;
+			}
+		}
+	}
+}
+
+// function to include module CSS files in <body> (only if WB < 2.6.7 or register_frontend_modfiles('css') not invoked in template)
+if (!function_exists('include_module_css')) {
+	function include_module_css($mymod_dir, $css_file) {
+		if(!in_array(strtolower($css_file), array('frontend.css', 'backend.css'))) return;
+		
+		if($css_file == 'frontend.css') {
+			// check if frontend.css needs to be included into the <body> section
+			if(!((!function_exists('register_frontend_modfiles') || !defined('MOD_FRONTEND_CSS_REGISTERED')) && 
+					file_exists(WB_PATH .'/modules/' .$mymod_dir .'/frontend.css'))) {
+				return false;
+			} 
+		} else {
+			// check if backend.css needs to be included into the <body> section
+			global $admin;
+			if(!(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH .'/modules/' .$mymod_dir .'/backend.css'))) {
+				return false;
+			}
+		}
+		// include frontend.css or backend.css into the <body> section
+		echo "\n".'<style type="text/css">'."\n";
+  	include(WB_PATH .'/modules/' .$mymod_dir .'/' .$css_file);
+  	echo "\n</style>\n";
+		return true;
+	}
+}
+
+// function to check if the optional module Javascript files are loaded into the <head> section
+if (!function_exists('requires_module_js')) {
+	function requires_module_js($mymod_dir, $js_file) {
+		if(!in_array(strtolower($js_file), array('frontend.js', 'backend.js'))) {
+			echo '<strong>Note: </strong>Javascript file "' .htmlentities($js_file) .'" 
+			specified in module "' .htmlentities($mymod_dir) .'" not valid.'; 
+			return false;
+		}
+		
+		if($js_file == 'frontend.js') {
+			// check if frontend.js is included to the <head> section
+			if(!defined('MOD_FRONTEND_JAVASCRIPT_REGISTERED')) {
+				echo '<p><strong>Note:</strong> The module: "' .htmlentities($mymod_dir) .'" requires WB 2.6.7 or higher</p>
+				<p>This module uses Javascript functions contained in frontend.js of the module.<br />
+				Add the code below to the &lt;head&gt; section in the index.php of your template
+				to ensure that module frontend.js files are automatically loaded if required.</p>
+				<code style="color: #800000;">&lt;?php<br />if(function_exists(\'register_frontend_modfiles\')) { <br />
+				&nbsp;&nbsp;register_frontend_modfiles(\'js\');<br />?&gt;</code><br />
+				<p><strong>Tip:</strong> For WB 2.6.7 copy the code above to the index.php of your template. 
+				Then open the view.php of the "' .htmlentities($mymod_dir) .'" module and set the variable 
+				<code>$requires_frontend_js</code> to false. This may do the trick.</p><p>All WB versions below 2.6.7 needs 
+				to be upgraded to work with this module.</p>
+				';
+				return false;
+			}
+		} else {
+			// check if backend.js is included to the <head> section
+			global $admin;
+				if(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH .'/modules/' .$mymod_dir .'/backend.js')) {
+				echo '<p><strong>Note:</strong> The module: "' .htmlentities($mymod_dir) .'" requires WB 2.6.7 or higher</p>
+				<p>This module uses Javascript functions contained in backend.js of the module.<br />
+				You need WB 2.6.7 or higher to ensure that module backend.js files are automatically loaded if required.</p>
+				<p>Sorry, you can not use this tool with your WB installation, please upgrade to the latest WB version available.</p><br />
+				';
+				return false;
+			}
+		}
+		return true;
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/module.functions.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/functions-utf8.php
===================================================================
--- tags/2.7.0/wb/framework/functions-utf8.php	(nonexistent)
+++ tags/2.7.0/wb/framework/functions-utf8.php	(revision 838)
@@ -0,0 +1,443 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+ * A part of this file is based on 'utf8.php' from the DokuWiki-project.
+ * (http://www.splitbrain.org/projects/dokuwiki):
+ **
+ * UTF8 helper functions
+ * @license    LGPL (http://www.gnu.org/copyleft/lesser.html)
+ * @author     Andreas Gohr <andi@splitbrain.org>
+ **
+ * modified for use with Website Baker
+ * from thorn, Jan. 2008
+ *
+ * most of the original functions appeared to be to slow with large strings, so i replaced them with my own ones
+ * thorn, Mar. 2008
+ */
+
+// Functions we use in Website Baker:
+//   entities_to_7bit()
+//   entities_to_umlauts2()
+//   umlauts_to_entities2()
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+/*
+ * check for mb_string support
+ */
+//define('UTF8_NOMBSTRING',1); // uncomment this to forbid use of mb_string-functions
+if(!defined('UTF8_MBSTRING')){
+  if(function_exists('mb_substr') && !defined('UTF8_NOMBSTRING')){
+    define('UTF8_MBSTRING',1);
+  }else{
+    define('UTF8_MBSTRING',0);
+  }
+}
+
+if(UTF8_MBSTRING){ mb_internal_encoding('UTF-8'); }
+
+require_once(WB_PATH.'/framework/charsets_table.php');
+
+/*
+ * Checks if a string contains 7bit ASCII only
+ *
+ * @author thorn
+ */
+function utf8_isASCII($str){
+	if(preg_match('/[\x80-\xFF]/', $str))
+		return false;
+	else
+		return true;
+}
+
+/*
+ * Tries to detect if a string is in Unicode encoding
+ *
+ * @author <bmorel@ssi.fr>
+ * @link   http://www.php.net/manual/en/function.utf8-encode.php
+ */
+function utf8_check($Str) {
+ for ($i=0; $i<strlen($Str); $i++) {
+  $b = ord($Str[$i]);
+  if ($b < 0x80) continue; # 0bbbbbbb
+  elseif (($b & 0xE0) == 0xC0) $n=1; # 110bbbbb
+  elseif (($b & 0xF0) == 0xE0) $n=2; # 1110bbbb
+  elseif (($b & 0xF8) == 0xF0) $n=3; # 11110bbb
+  elseif (($b & 0xFC) == 0xF8) $n=4; # 111110bb
+  elseif (($b & 0xFE) == 0xFC) $n=5; # 1111110b
+  else return false; # Does not match any model
+  for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
+   if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
+   return false;
+  }
+ }
+ return true;
+}
+
+/*
+ * Romanize a non-latin string
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+function utf8_romanize($string){
+  if(utf8_isASCII($string)) return $string; //nothing to do
+
+  global $UTF8_ROMANIZATION;
+  return strtr($string,$UTF8_ROMANIZATION);
+}
+
+/*
+ * Removes special characters (nonalphanumeric) from a UTF-8 string
+ *
+ * This function adds the controlchars 0x00 to 0x19 to the array of
+ * stripped chars (they are not included in $UTF8_SPECIAL_CHARS2)
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @param  string $string     The UTF8 string to strip of special chars
+ * @param  string $repl       Replace special with this string
+ * @param  string $additional Additional chars to strip (used in regexp char class)
+ */
+function utf8_stripspecials($string,$repl='',$additional=''){
+  global $UTF8_SPECIAL_CHARS2;
+
+  static $specials = null;
+  if(is_null($specials)){
+    $specials = preg_quote($UTF8_SPECIAL_CHARS2, '/');
+  }
+
+  return preg_replace('/['.$additional.'\x00-\x19'.$specials.']/u',$repl,$string);
+}
+
+/*
+ * added functions - thorn
+ */
+
+/*
+ * faster replacement for utf8_entities_to_umlauts()
+ * not all features of utf8_entities_to_umlauts() --> utf8_unhtml() are supported!
+ * @author thorn
+ */
+function utf8_fast_entities_to_umlauts($str) {
+	if(UTF8_MBSTRING) {
+		// we need this for use with mb_convert_encoding
+		$str = str_replace(array('&amp;','&gt;','&lt;','&quot;','&#39;','&nbsp;'), array('&amp;amp;','&amp;gt;','&amp;lt;','&amp;quot;','&amp;#39;','&amp;nbsp;'), $str);
+		// we need two mb_convert_encoding()-calls - is this a bug?
+		// mb_convert_encoding("Ã¶&ouml;", 'UTF-8', 'HTML-ENTITIES'); // with string in utf-8-encoding doesn't work. Result: "ÃƒÂ¶Ã¶"
+		// Work-around: convert all umlauts to entities first ("Ã¶&ouml;"->"&ouml;&ouml;"), then all entities to umlauts ("&ouml;&ouml;"->"Ã¶Ã¶")
+		return(mb_convert_encoding(mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8'),'UTF-8', 'HTML-ENTITIES'));
+	} else {
+		global $named_entities;global $numbered_entities;
+		$str = str_replace($named_entities, $numbered_entities, $str);
+		$str = preg_replace("/&#([0-9]+);/e", "code_to_utf8($1)", $str);
+	}
+	return($str);
+}
+// support-function for utf8_fast_entities_to_umlauts()
+function code_to_utf8($num) {
+	if ($num <= 0x7F) {
+		return chr($num);
+	} elseif ($num <= 0x7FF) {
+		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
+	} elseif ($num <= 0xFFFF) {
+		 return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
+	} elseif ($num <= 0x1FFFFF) {
+		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
+	}
+	return "?";
+}
+
+/*
+ * faster replacement for utf8_umlauts_to_entities()
+ * not all features of utf8_umlauts_to_entities() --> utf8_tohtml() are supported!
+ * @author thorn
+ */
+function utf8_fast_umlauts_to_entities($string, $named_entities=true) {
+	if(UTF8_MBSTRING)
+		return(mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8'));
+	else {
+		global $named_entities;global $numbered_entities;
+		$new = "";
+		$i=0;
+		$len=strlen($string);
+		if($len==0) return $string;
+		do {
+			if(ord($string{$i}) <= 127) $ud = $string{$i++};
+			elseif(ord($string{$i}) <= 223) $ud = (ord($string{$i++})-192)*64 + (ord($string{$i++})-128);
+			elseif(ord($string{$i}) <= 239) $ud = (ord($string{$i++})-224)*4096 + (ord($string{$i++})-128)*64 + (ord($string{$i++})-128);
+			elseif(ord($string{$i}) <= 247) $ud = (ord($string{$i++})-240)*262144 + (ord($string{$i++})-128)*4096 + (ord($string{$i++})-128)*64 + (ord($string{$i++})-128);
+			else $ud = ord($string{$i++}); // error!
+			if($ud > 127) {
+				$new .= "&#$ud;";
+			} else {
+				$new .= $ud;
+			}
+		} while($i < $len);
+		$string = $new;
+		if($named_entities)
+			$string = str_replace($numbered_entities, $named_entities, $string);
+	}
+	return($string);
+}
+
+/*
+ * Converts from various charsets to UTF-8
+ *
+ * Will convert a string from various charsets to UTF-8.
+ * HTML-entities may be converted, too.
+ * In case of error the returned string is unchanged, and a message is emitted.
+ * Supported charsets are:
+ * direct: iso_8859_1 iso_8859_2 iso_8859_3 iso_8859_4 iso_8859_5
+ *         iso_8859_6 iso_8859_7 iso_8859_8 iso_8859_9 iso_8859_10 iso_8859_11
+ * mb_convert_encoding: all wb charsets (except those from 'direct'); but not GB2312
+ * iconv:  all wb charsets (except those from 'direct')
+ *
+ * @param  string  A string in supported encoding
+ * @param  string  The charset to convert from, defaults to DEFAULT_CHARSET
+ * @return string  A string in UTF-8-encoding, with all entities decoded, too.
+ *                 String is unchanged in case of error.
+ * @author thorn
+ */
+function charset_to_utf8($str, $charset_in=DEFAULT_CHARSET, $decode_entities=true) {
+	global $iso_8859_2_to_utf8, $iso_8859_3_to_utf8, $iso_8859_4_to_utf8, $iso_8859_5_to_utf8, $iso_8859_6_to_utf8, $iso_8859_7_to_utf8, $iso_8859_8_to_utf8, $iso_8859_9_to_utf8, $iso_8859_10_to_utf8, $iso_8859_11_to_utf8;
+	$charset_in = strtoupper($charset_in);
+	if ($charset_in == "") { $charset_in = 'UTF-8'; }
+	$wrong_ISO8859 = false;
+	$converted = false;
+
+	if((!function_exists('iconv') && !UTF8_MBSTRING && ($charset_in=='BIG5' || $charset_in=='ISO-2022-JP' || $charset_in=='ISO-2022-KR')) || (!function_exists('iconv') && $charset_in=='GB2312')) {
+		// Nothing we can do here :-(
+		// Charset is one of those obscure ISO-2022... or BIG5, GB2312 or something
+		// and we can't use mb_convert_encoding() or iconv();
+		// Emit an error-message.
+		trigger_error("Can't convert from $charset_in without mb_convert_encoding() or iconv(). Use UTF-8 instead.", E_USER_WARNING);
+		return($str);
+	}
+
+	// check if we have UTF-8 or a plain ASCII string
+	if($charset_in == 'UTF-8' || utf8_isASCII($str)) {
+		// we have utf-8. Just replace HTML-entities and return
+		if($decode_entities && preg_match('/&[#0-9a-zA-Z]+;/',$str))
+			return(utf8_fast_entities_to_umlauts($str));
+		else // nothing to do
+			return($str);
+	}
+	
+	// Convert $str to utf8
+	if(substr($charset_in,0,8) == 'ISO-8859') {
+		switch($charset_in) {
+			case 'ISO-8859-1': $str=utf8_encode($str); break;
+			case 'ISO-8859-2': $str=strtr($str, $iso_8859_2_to_utf8); break;
+			case 'ISO-8859-3': $str=strtr($str, $iso_8859_3_to_utf8); break;
+			case 'ISO-8859-4': $str=strtr($str, $iso_8859_4_to_utf8); break;
+			case 'ISO-8859-5': $str=strtr($str, $iso_8859_5_to_utf8); break;
+			case 'ISO-8859-6': $str=strtr($str, $iso_8859_6_to_utf8); break;
+			case 'ISO-8859-7': $str=strtr($str, $iso_8859_7_to_utf8); break;
+			case 'ISO-8859-8': $str=strtr($str, $iso_8859_8_to_utf8); break;
+			case 'ISO-8859-9': $str=strtr($str, $iso_8859_9_to_utf8); break;
+			case 'ISO-8859-10': $str=strtr($str, $iso_8859_10_to_utf8); break;
+			case 'ISO-8859-11': $str=strtr($str, $iso_8859_11_to_utf8); break;
+			default: $wrong_ISO8859 = true;
+		}
+		if(!$wrong_ISO8859)
+			$converted = true;
+	}
+	if(!$converted && UTF8_MBSTRING && $charset_in != 'GB2312') {
+		// $charset is neither UTF-8 nor a known ISO-8859...
+		// Try mb_convert_encoding() - but there's no GB2312 encoding in php's mb_* functions
+		$str = mb_convert_encoding($str, 'UTF-8', $charset_in);
+		$converted = true;
+	} elseif(!$converted) { // Try iconv
+		if(function_exists('iconv')) {
+			$str = iconv($charset_in, 'UTF-8', $str);
+			$converted = true;
+		}
+	}
+	if($converted) {
+		// we have utf-8, now replace HTML-entities and return
+		if($decode_entities && preg_match('/&[#0-9a-zA-Z]+;/',$str))
+			$str = utf8_fast_entities_to_umlauts($str);
+		return($str);
+	}
+	
+	// Nothing we can do here :-(
+	// Charset is one of those obscure ISO-2022... or BIG5, GB2312 or something
+	// and we can't use mb_convert_encoding() or iconv();
+	// Emit an error-message.
+	trigger_error("Can't convert from $charset_in without mb_convert_encoding() or iconv(). Use UTF-8 instead.", E_USER_WARNING);
+	
+	return $str;
+}
+
+/*
+ * Converts from UTF-8 to various charsets
+ *
+ * Will convert a string from UTF-8 to various charsets.
+ * HTML-entities will not! be converted.
+ * In case of error the returned string is unchanged, and a message is emitted.
+ * Supported charsets are:
+ * direct: iso_8859_1 iso_8859_2 iso_8859_3 iso_8859_4 iso_8859_5
+ *         iso_8859_6 iso_8859_7 iso_8859_8 iso_8859_9 iso_8859_10 iso_8859_11
+ * mb_convert_encoding: all wb charsets (except those from 'direct'); but not GB2312
+ * iconv:  all wb charsets (except those from 'direct')
+ *
+ * @param  string  An UTF-8 encoded string
+ * @param  string  The charset to convert to, defaults to DEFAULT_CHARSET
+ * @return string  A string in a supported encoding, with all entities decoded, too.
+ *                 String is unchanged in case of error.
+ * @author thorn
+ */
+function utf8_to_charset($str, $charset_out=DEFAULT_CHARSET) {
+	global $utf8_to_iso_8859_2, $utf8_to_iso_8859_3, $utf8_to_iso_8859_4, $utf8_to_iso_8859_5, $utf8_to_iso_8859_6, $utf8_to_iso_8859_7, $utf8_to_iso_8859_8, $utf8_to_iso_8859_9, $utf8_to_iso_8859_10, $utf8_to_iso_8859_11;
+	$charset_out = strtoupper($charset_out);
+	$wrong_ISO8859 = false;
+	$converted = false;
+
+	if((!function_exists('iconv') && !UTF8_MBSTRING && ($charset_out=='BIG5' || $charset_out=='ISO-2022-JP' || $charset_out=='ISO-2022-KR')) || (!function_exists('iconv') && $charset_out=='GB2312')) {
+		// Nothing we can do here :-(
+		// Charset is one of those obscure ISO-2022... or BIG5, GB2312 or something
+		// and we can't use mb_convert_encoding() or iconv();
+		// Emit an error-message.
+		trigger_error("Can't convert into $charset_out without mb_convert_encoding() or iconv(). Use UTF-8 instead.", E_USER_WARNING);
+		return($str);
+	}
+	
+	// the string comes from charset_to_utf8(), so we can skip this
+	// replace HTML-entities first
+	//if(preg_match('/&[#0-9a-zA-Z]+;/',$str))
+	//	$str = utf8_entities_to_umlauts($str);
+	
+	// check if we need to convert
+	if($charset_out == 'UTF-8' || utf8_isASCII($str)) {
+		// Nothing to do. Just return
+			return($str);
+	}
+	
+	// Convert $str to $charset_out
+	if(substr($charset_out,0,8) == 'ISO-8859') {
+		switch($charset_out) {
+			case 'ISO-8859-1': $str=utf8_decode($str); break;
+			case 'ISO-8859-2': $str=strtr($str, $utf8_to_iso_8859_2); break;
+			case 'ISO-8859-3': $str=strtr($str, $utf8_to_iso_8859_3); break;
+			case 'ISO-8859-4': $str=strtr($str, $utf8_to_iso_8859_4); break;
+			case 'ISO-8859-5': $str=strtr($str, $utf8_to_iso_8859_5); break;
+			case 'ISO-8859-6': $str=strtr($str, $utf8_to_iso_8859_6); break;
+			case 'ISO-8859-7': $str=strtr($str, $utf8_to_iso_8859_7); break;
+			case 'ISO-8859-8': $str=strtr($str, $utf8_to_iso_8859_8); break;
+			case 'ISO-8859-9': $str=strtr($str, $utf8_to_iso_8859_9); break;
+			case 'ISO-8859-10': $str=strtr($str, $utf8_to_iso_8859_10); break;
+			case 'ISO-8859-11': $str=strtr($str, $utf8_to_iso_8859_11); break;
+			default: $wrong_ISO8859 = true;
+		}
+		if(!$wrong_ISO8859)
+			$converted = true;
+	}
+	if(!$converted && UTF8_MBSTRING && $charset_out != 'GB2312') {
+		// $charset is neither UTF-8 nor a known ISO-8859...
+		// Try mb_convert_encoding() - but there's no GB2312 encoding in php's mb_* functions
+		$str = mb_convert_encoding($str, $charset_out, 'UTF-8');
+		$converted = true;
+	} elseif(!$converted) { // Try iconv
+		if(function_exists('iconv')) {
+			$str = iconv('UTF-8', $charset_out, $str);
+			$converted = true;
+		}
+	}
+	if($converted) {
+		return($str);
+	}
+	
+	// Nothing we can do here :-(
+	// Charset is one of those obscure ISO-2022... or BIG5, GB2312 or something
+	// and we can't use mb_convert_encoding() or iconv();
+	// Emit an error-message.
+	trigger_error("Can't convert into $charset_out without mb_convert_encoding() or iconv(). Use UTF-8 instead.", E_USER_WARNING);
+	
+	return $str;
+}
+
+/*
+ * convert Filenames to ASCII
+ *
+ * Convert all non-ASCII characters and all HTML-entities to their plain 7bit equivalents
+ * Characters without an equivalent will be converted to hex-values.
+ * The name entities_to_7bit() is somewhat misleading, but kept for compatibility-reasons.
+ *
+ * @param  string  Filename to convert (all encodings from charset_to_utf8() are allowed)
+ * @return string  ASCII encoded string, to use as filename in wb's page_filename() and media_filename
+ * @author thorn
+ */
+function entities_to_7bit($str) {
+	// convert to UTF-8
+	$str = charset_to_utf8($str);
+	if(!utf8_check($str))
+		return($str);
+	// replace some specials
+	$str = utf8_stripspecials($str, '_');
+	// translate non-ASCII characters to ASCII
+	$str = utf8_romanize($str);
+	// missed some? - Many UTF-8-chars can't be romanized
+	// convert to HTML-entities, and replace entites by hex-numbers
+	$str = utf8_fast_umlauts_to_entities($str, false);
+	$str = str_replace('&#39;', '&apos;', $str);
+	$str = preg_replace('/&#([0-9]+);/e', "dechex('$1')",  $str);
+	// maybe there are some &gt; &lt; &apos; &quot; &amp; &nbsp; left, replace them too
+	$entities = array('&gt;'=>'','&lt;'=>'','&apos;'=>'','\''=>'','&quot;'=>'','&amp;'=>'','&nbsp;'=>' ');
+	$str = strtr($str, $entities);
+	
+	return($str);
+}
+
+/*
+ * Convert a string from mixed html-entities/umlauts to pure $charset_out-umlauts
+ * 
+ * Will replace all numeric and named entities except
+ * &gt; &lt; &apos; &quot; &#39; &nbsp;
+ * @author thorn
+ */
+function entities_to_umlauts2($string, $charset_out=DEFAULT_CHARSET) {
+	$string = charset_to_utf8($string, DEFAULT_CHARSET, true);
+	//if(utf8_check($string)) // this check is to much time-consuming (this may fail only if AddDefaultCharset is set)
+		$string = utf8_to_charset($string, $charset_out);
+	return ($string);
+}
+
+/*
+ * Convert a string from mixed html-entities/umlauts to pure ASCII with HTML-entities
+ * 
+ * Will convert a string in $charset_in encoding to a pure ASCII string with HTML-entities.
+ * @author thorn
+ */
+function umlauts_to_entities2($string, $charset_in=DEFAULT_CHARSET) {
+	$string = charset_to_utf8($string, $charset_in, false);
+	//if(utf8_check($string)) // this check is to much time-consuming (this may fail only if AddDefaultCharset is set)
+		$string = utf8_fast_umlauts_to_entities($string, false);
+	return($string);
+}
+
+?>

Property changes on: tags/2.7.0/wb/framework/functions-utf8.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.frontend.php
===================================================================
--- tags/2.7.0/wb/framework/class.frontend.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.frontend.php	(revision 838)
@@ -0,0 +1,417 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Frontend class
+
+*/
+
+if(!defined('WB_PATH')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+
+require_once(WB_PATH.'/framework/class.wb.php');
+
+class frontend extends wb {
+	// defaults
+	var $default_link,$default_page_id;
+	// when multiple blocks are used, show home page blocks on 
+	// pages where no content is defined (search, login, ...)
+	var $default_block_content=true;
+
+	// page details
+	// page database row
+	var $page;
+	var $page_id,$page_title,$menu_title,$parent,$root_parent,$level,$visibility;
+	var $page_description,$page_keywords,$page_link;
+	var $page_trail=array();
+	
+	var $page_access_denied;
+	var $page_no_active_sections;
+	
+	// website settings
+	var $website_title,$website_description,$website_keywords,$website_header,$website_footer;
+
+	// ugly database stuff
+	var $extra_where_sql, $sql_where_language;
+
+	function page_select() {
+		global $page_id,$no_intro;
+		global $database;
+		// We have no page id and are supposed to show the intro page
+		if((INTRO_PAGE AND !isset($no_intro)) AND (!isset($page_id) OR !is_numeric($page_id))) {
+			// Since we have no page id check if we should go to intro page or default page
+			// Get intro page content
+			$filename = WB_PATH.PAGES_DIRECTORY.'/intro'.PAGE_EXTENSION;
+			if(file_exists($filename)) {
+				$handle = @fopen($filename, "r");
+				$content = @fread($handle, filesize($filename));
+				@fclose($handle);
+				$this->preprocess($content);
+				header("Location: ".WB_URL.PAGES_DIRECTORY."/intro".PAGE_EXTENSION."");   // send intro.php as header to allow parsing of php statements
+				echo ($content);
+				return false;
+			}
+		}
+		// Check if we should add page language sql code
+		if(PAGE_LANGUAGES) {
+			$this->sql_where_language = " AND language = '".LANGUAGE."'";
+		}
+		// Get default page
+		// Check for a page id
+		$table_p = TABLE_PREFIX.'pages';
+		$table_s = TABLE_PREFIX.'sections';
+		$now = time();
+		$query_default = "
+			SELECT p.page_id, p.link
+			FROM $table_p AS p, $table_s AS s
+			WHERE p.page_id=s.page_id
+			AND p.parent = '0' AND p.visibility = 'public'
+			AND (($now>=s.publ_start OR s.publ_start=0) AND ($now<=s.publ_end OR s.publ_end=0))
+			$this->sql_where_language
+			ORDER BY p.position ASC LIMIT 1";
+		$get_default = $database->query($query_default);
+		$default_num_rows = $get_default->numRows();
+		if(!isset($page_id) OR !is_numeric($page_id)){
+			// Go to or show default page
+			if($default_num_rows > 0) {
+				$fetch_default = $get_default->fetchRow();
+				$this->default_link = $fetch_default['link'];
+				$this->default_page_id = $fetch_default['page_id'];
+				// Check if we should redirect or include page inline
+				if(HOMEPAGE_REDIRECTION) {
+					// Redirect to page
+					header("Location: ".$this->page_link($this->default_link));
+					exit();
+				} else {
+					// Include page inline
+					$this->page_id = $this->default_page_id;
+				}
+			} else {
+		   		// No pages have been added, so print under construction page
+				$this->print_under_construction();
+				exit();
+			}
+		} else {
+			$this->page_id=$page_id;
+		}
+		// Get default page link
+		if(!isset($fetch_default)) {
+		  	$fetch_default = $get_default->fetchRow();
+	 		$this->default_link = $fetch_default['link'];
+			$this->default_page_id = $fetch_default['page_id'];
+		}
+		return true;
+	}
+
+	function get_page_details() {
+		global $database;
+	    if($this->page_id != 0) {
+			// Query page details
+			$query_page = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '{$this->page_id}'";
+			$get_page = $database->query($query_page);
+			// Make sure page was found in database
+			if($get_page->numRows() == 0) {
+				// Print page not found message
+				exit("Page not found");
+			}
+			// Fetch page details
+			$this->page = $get_page->fetchRow();
+			// Check if the page language is also the selected language. If not, send headers again.
+			if ($this->page['language']!=LANGUAGE) {
+				if(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') { // check if there is an query-string
+					header('Location: '.$this->page_link($this->page['link']).'?lang='.$this->page['language'].'&'.$_SERVER['QUERY_STRING']);
+				} else {
+					header('Location: '.$this->page_link($this->page['link']).'?lang='.$this->page['language']);
+				}
+				exit();
+			}
+			// Begin code to set details as either variables of constants
+			// Page ID
+			define('PAGE_ID', $this->page['page_id']);
+			// Page Title
+			define('PAGE_TITLE', $this->page['page_title']);
+			$this->page_title=PAGE_TITLE;
+			// Menu Title
+			$menu_title = $this->page['menu_title'];
+			if($menu_title != '') {
+				define('MENU_TITLE', $menu_title);
+			} else {
+				define('MENU_TITLE', PAGE_TITLE);
+			}
+			$this->menu_title=MENU_TITLE;
+			// Page parent
+			define('PARENT', $this->page['parent']);
+			$this->parent=$this->page['parent'];
+			// Page root parent
+			define('ROOT_PARENT', $this->page['root_parent']);
+			$this->root_parent=$this->page['root_parent'];
+			// Page level
+			define('LEVEL', $this->page['level']);
+			$this->level=$this->page['level'];
+			// Page visibility
+			define('VISIBILITY', $this->page['visibility']);
+			$this->visibility=$this->page['visibility'];
+			// Page trail
+			foreach(explode(',', $this->page['page_trail']) AS $pid) {
+				$this->page_trail[$pid]=$pid;
+			}
+			// Page description
+			$this->page_description=$this->page['description'];
+			if($this->page_description != '') {
+				define('PAGE_DESCRIPTION', $this->page_description);
+			} else {
+				define('PAGE_DESCRIPTION', WEBSITE_DESCRIPTION);
+			}
+			// Page keywords
+			$this->page_keywords=$this->page['keywords'];
+			// Page link
+			$this->link=$this->page_link($this->page['link']);
+
+		// End code to set details as either variables of constants
+		}
+
+		// Figure out what template to use
+		if(!defined('TEMPLATE')) {
+			if(isset($this->page['template']) AND $this->page['template'] != '') {
+				if(file_exists(WB_PATH.'/templates/'.$this->page['template'].'/index.php')) {
+					define('TEMPLATE', $this->page['template']);
+				} else {
+					define('TEMPLATE', DEFAULT_TEMPLATE);
+				}
+			} else {
+				define('TEMPLATE', DEFAULT_TEMPLATE);
+			}
+		}
+		// Set the template dir
+		define('TEMPLATE_DIR', WB_URL.'/templates/'.TEMPLATE);
+
+		// Check if user is allowed to view this page
+		if($this->page && $this->page_is_visible($this->page) == false) {
+			if(VISIBILITY == 'deleted' OR VISIBILITY == 'none') {
+				// User isnt allowed on this page so tell them
+				$this->page_access_denied=true;
+			} elseif(VISIBILITY == 'private' OR VISIBILITY == 'registered') {
+				// Check if the user is authenticated
+				if($this->is_authenticated() == false) {
+					// User needs to login first
+					header("Location: ".WB_URL."/account/login.php?redirect=".$this->link);
+					exit(0);
+				} else {
+					// User isnt allowed on this page so tell them
+					$this->page_access_denied=true;
+				}
+				
+			}
+		}
+		// check if there is at least one active section
+		if($this->page && $this->page_is_active($this->page) == false) {
+			$this->page_no_active_sections=true;
+		}
+	}
+
+	function get_website_settings() {
+		global $database;
+
+		// set visibility SQL code
+		// never show no-vis, hidden or deleted pages
+		$this->extra_where_sql = "visibility != 'none' AND visibility != 'hidden' AND visibility != 'deleted'";
+		// Set extra private sql code
+		if($this->is_authenticated()==false) {
+			// if user is not authenticated, don't show private pages either
+			$this->extra_where_sql .= " AND visibility != 'private'";
+			// and 'registered' without frontend login doesn't make much sense!
+			if (FRONTEND_LOGIN==false) {
+				$this->extra_where_sql .= " AND visibility != 'registered'";
+			}
+		}
+		$this->extra_where_sql .= $this->sql_where_language;
+
+		// Work-out if any possible in-line search boxes should be shown
+		if(SEARCH == 'public') {
+			define('SHOW_SEARCH', true);
+		} elseif(SEARCH == 'private' AND VISIBILITY == 'private') {
+			define('SHOW_SEARCH', true);
+		} elseif(SEARCH == 'private' AND $this->is_authenticated() == true) {
+			define('SHOW_SEARCH', true);
+		} elseif(SEARCH == 'registered' AND $this->is_authenticated() == true) {
+			define('SHOW_SEARCH', true);	
+		} else {
+			define('SHOW_SEARCH', false);
+		}
+		// Work-out if menu should be shown
+		if(!defined('SHOW_MENU')) {
+			define('SHOW_MENU', true);
+		}
+		// Work-out if login menu constants should be set
+		if(FRONTEND_LOGIN) {
+			// Set login menu constants
+			define('LOGIN_URL', WB_URL.'/account/login.php');
+			define('LOGOUT_URL', WB_URL.'/account/logout.php');
+			define('FORGOT_URL', WB_URL.'/account/forgot.php');
+			define('PREFERENCES_URL', WB_URL.'/account/preferences.php');
+			define('SIGNUP_URL', WB_URL.'/account/signup.php');
+		}
+	}
+	
+	function preprocess(&$content) {
+		global $database;
+		// Replace [wblink--PAGE_ID--] with real link
+		$pattern = '/\[wblink(.+?)\]/s';
+		preg_match_all($pattern,$content,$ids);
+		foreach($ids[1] AS $page_id) {
+			$pattern = '/\[wblink'.$page_id.'\]/s';
+			// Get page link
+			$get_link = $database->query("SELECT link FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id' LIMIT 1");
+			$fetch_link = $get_link->fetchRow();
+			$link = $this->page_link($fetch_link['link']);
+			$content = preg_replace($pattern,$link,$content);
+		}
+	}
+	
+	function menu() {
+		global $wb;
+	   if (!isset($wb->menu_number)) {
+	   	$wb->menu_number = 1;
+	   }
+	   if (!isset($wb->menu_start_level)) {
+	   	$wb->menu_start_level = 0;
+	   }
+	   if (!isset($wb->menu_recurse)) {
+	   	$wb->menu_recurse = -1;
+	   }
+	   if (!isset($wb->menu_collapse)) {
+	   	$wb->menu_collapse = true;
+	   }
+	   if (!isset($wb->menu_item_template)) {
+	   	$wb->menu_item_template = '<li><span[class]>[a] [menu_title] [/a]</span>';
+	   }
+	   if (!isset($wb->menu_item_footer)) {
+	   	$wb->menu_item_footer = '</li>';
+	   }
+	   if (!isset($wb->menu_header)) {
+	   	$wb->menu_header = '<ul>';
+	   }
+	   if (!isset($wb->menu_footer)) {
+	   	$wb->menu_footer = '</ul>';
+	   }
+	   if (!isset($wb->menu_default_class)) {
+	   	$wb->menu_default_class = ' class="menu_default"';
+	   }
+	   if (!isset($wb->menu_current_class)) {
+	   	$wb->menu_current_class = ' class="menu_current"';
+	   }
+	   if (!isset($wb->menu_parent)) {
+	   	$wb->menu_parent = 0;
+	   }
+	   $wb->show_menu();
+	}
+	
+	function show_menu() {
+		global $database;
+		if ($this->menu_start_level>0) {
+			$key_array=array_keys($this->page_trail);
+			if (isset($key_array[$this->menu_start_level-1])) {
+				$real_start=$key_array[$this->menu_start_level-1];
+				$this->menu_parent=$real_start;
+				$this->menu_start_level=0;
+			} else {
+				return;
+			}
+		}
+		if ($this->menu_recurse==0)
+	       return;
+		// Check if we should add menu number check to query
+		if($this->menu_parent == 0) {
+			$menu_number = "menu = '$this->menu_number'";
+		} else {
+			$menu_number = '1';
+		}
+		// Query pages
+		$query_menu = $database->query("SELECT page_id,menu_title,page_title,link,target,level,visibility,viewing_groups,viewing_users FROM ".TABLE_PREFIX."pages WHERE parent = '$this->menu_parent' AND $menu_number AND $this->extra_where_sql ORDER BY position ASC");
+		// Check if there are any pages to show
+		if($query_menu->numRows() > 0) {
+			// Print menu header
+			echo "\n".$this->menu_header;
+			// Loop through pages
+			while($page = $query_menu->fetchRow()) {
+				// check whether to show this menu-link
+				if($this->page_is_active($page)==false && $page['link']!=$this->default_link && !INTRO_PAGE) {
+					continue; // no active sections
+				}
+				if($this->page_is_visible($page)==false) {
+					if($page['visibility'] != 'registered') // special case: page_to_visible() check wheter to show the page contents, but the menu should be visible allways
+						continue;
+				}
+				// Create vars
+				$vars = array('[class]','[a]', '[/a]', '[menu_title]', '[page_title]');
+				// Work-out class
+				if($page['page_id'] == PAGE_ID) {
+					$class = $this->menu_current_class;
+				} else {
+					$class = $this->menu_default_class;
+				}
+				// Check if link is same as first page link, and if so change to WB URL
+				if($page['link'] == $this->default_link AND !INTRO_PAGE) {
+					$link = WB_URL;
+				} else {
+					$link = $this->page_link($page['link']);
+				}
+				// Create values
+				$values = array($class,'<a href="'.$link.'" target="'.$page['target'].'" '.$class.'>', '</a>', $page['menu_title'], $page['page_title']);
+				// Replace vars with value and print
+				echo "\n".str_replace($vars, $values, $this->menu_item_template);
+				// Generate sub-menu
+				if($this->menu_collapse==false OR ($this->menu_collapse==true AND isset($this->page_trail[$page['page_id']]))) {
+					$this->menu_recurse--;
+					$this->menu_parent=$page['page_id'];
+					$this->show_menu();
+				}
+				echo "\n".$this->menu_item_footer;
+			}
+			// Print menu footer
+			echo "\n".$this->menu_footer;
+		}
+	}
+
+
+	// Function to show the "Under Construction" page
+	function print_under_construction() {
+		global $MESSAGE;
+		require_once(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php');
+		echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+		<head><title>'.$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'].'</title>
+		<style type="text/css"><!-- body{ font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px; background-image: url("'.ADMIN_URL.'/interface/background.png");background-repeat: repeat-x; background-color: #A8BCCB; text-align: center; }
+		h1 { margin: 0; padding: 0; font-size: 18px; color: #000; text-transform: uppercase;
+}--></style></head><body>
+		<br /><h1>'.$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'].'</h1><br />
+		'.$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'].'</body></html>';
+	}
+}
+
+?>

Property changes on: tags/2.7.0/wb/framework/class.frontend.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.admin.php
===================================================================
--- tags/2.7.0/wb/framework/class.admin.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.admin.php	(revision 838)
@@ -0,0 +1,368 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Admin class
+
+This class will be used for every program that will be included
+in the administration section of Website Baker.
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+require_once(WB_PATH.'/framework/class.wb.php');
+
+// Include PHPLIB template class
+require_once(WB_PATH."/include/phplib/template.inc");
+
+
+// Get WB version
+require_once(ADMIN_PATH.'/interface/version.php');
+
+/*
+Begin user changeable settings
+*/
+
+
+class admin extends wb {
+	// Authenticate user then auto print the header
+	function admin($section_name, $section_permission = 'start', $auto_header = true, $auto_auth = true) {
+		$this->wb();
+		global $MESSAGE;
+		// Specify the current applications name
+		$this->section_name = $section_name;
+		$this->section_permission = $section_permission;
+		// Authenticate the user for this application
+		if($auto_auth == true) {
+			// First check if the user is logged-in
+			if($this->is_authenticated() == false) {
+				header('Location: '.ADMIN_URL.'/login/index.php');
+				exit(0);
+			}
+			// Now check if they are allowed in this section
+			if($this->get_permission($section_permission) == false) {
+				die($MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES']);
+			}
+		}
+		
+		// Check if the backend language is also the selected language. If not, send headers again.
+		global $database;
+		$get_user_language = @$database->query("SELECT language FROM ".TABLE_PREFIX.
+			"users WHERE user_id = '" .(int) $this->get_user_id() ."'");
+		$user_language = ($get_user_language) ? $get_user_language->fetchRow() : '';
+		// prevent infinite loop if language file is not XX.php (e.g. DE_du.php)
+		$user_language = substr($user_language[0],0,2);
+		// obtain the admin folder (e.g. /admin)
+		$admin_folder = str_replace(WB_PATH, '', ADMIN_PATH);
+		if((LANGUAGE != $user_language) && file_exists(WB_PATH .'/languages/' .$user_language .'.php')
+			&& strpos($_SERVER['PHP_SELF'],$admin_folder.'/') !== false) {
+			// check if page_id is set
+			$page_id_url = (isset($_GET['page_id'])) ? '&page_id=' .(int) $_GET['page_id'] : '';
+			$section_id_url = (isset($_GET['section_id'])) ? '&section_id=' .(int) $_GET['section_id'] : '';
+			header('Location: '.$_SERVER['PHP_SELF'] .'?lang='.$user_language .$page_id_url .$section_id_url);
+			exit();
+		}
+
+		// Auto header code
+		if($auto_header == true) {
+			$this->print_header();
+		}
+	}
+	
+	// Print the admin header
+	function print_header($body_tags = '') {
+		// Get vars from the language file
+		global $MENU;
+		global $MESSAGE;
+		global $TEXT;
+		// Connect to database and get website title
+		global $database;
+		$get_title = $database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name = 'website_title'");
+		$title = $get_title->fetchRow();
+		$header_template = new Template(ADMIN_PATH."/interface");
+		$header_template->set_file('page', 'header.html');
+		$header_template->set_block('page', 'header_block', 'header');
+		if(defined('DEFAULT_CHARSET')) {
+			$charset=DEFAULT_CHARSET;
+		} else {
+			$charset='utf-8';
+		}
+
+		// work out the URL for the 'View menu' link in the WB backend
+		// if the page_id is set, show this page otherwise show the root directory of WB
+		$view_url = WB_URL;
+		if(isset($_GET['page_id'])) {
+			// extract page link from the database
+			$result = @$database->query("SELECT link FROM " .TABLE_PREFIX ."pages WHERE page_id = '" .(int) addslashes($_GET['page_id']) ."'");
+			$row = @$result->fetchRow();
+			if($row) $view_url .= PAGES_DIRECTORY .$row['link']. PAGE_EXTENSION;
+		}
+
+		$header_template->set_var(	array(
+													'SECTION_NAME' => $MENU[strtoupper($this->section_name)],
+													'BODY_TAGS' => $body_tags,
+													'WEBSITE_TITLE' => ($title['value']),
+													'TEXT_ADMINISTRATION' => $TEXT['ADMINISTRATION'],
+													'CHARSET' => $charset,
+													'VERSION' => VERSION,
+													'WB_URL' => WB_URL,
+													'ADMIN_URL' => ADMIN_URL,
+													'TITLE_START' => $MENU['START'],
+													'TITLE_VIEW' => $MENU['VIEW'],
+													'TITLE_HELP' => $MENU['HELP'],
+													'TITLE_LOGOUT' =>  $MENU['LOGOUT'],
+													'URL_VIEW' => $view_url,
+													'URL_HELP' => 'http://www.websitebaker.org/help/'.WB_VERSION,
+													'BACKEND_MODULE_CSS' => $this->register_backend_modfiles('css'),	// adds backend.css
+													'BACKEND_MODULE_JS'  => $this->register_backend_modfiles('js')		// adds backend.js
+													)
+											);
+
+		// Create the menu
+		$menu = array(
+					array(ADMIN_URL.'/pages/index.php', '', $MENU['PAGES'], 'pages', 1),
+					array(ADMIN_URL.'/media/index.php', '', $MENU['MEDIA'], 'media', 1),
+					array(ADMIN_URL.'/addons/index.php', '', $MENU['ADDONS'], 'addons', 1),
+					array(ADMIN_URL.'/preferences/index.php', '', $MENU['PREFERENCES'], 'preferences', 0),
+					array(ADMIN_URL.'/settings/index.php', '', $MENU['SETTINGS'], 'settings', 1),
+					array(ADMIN_URL.'/admintools/index.php', '', $MENU['ADMINTOOLS'], 'admintools', 1),
+					array(ADMIN_URL.'/access/index.php', '', $MENU['ACCESS'], 'access', 1)
+					);
+		$header_template->set_block('header_block', 'linkBlock', 'link');
+		foreach($menu AS $menu_item) {
+			$link = $menu_item[0];
+			$target = $menu_item[1];
+			$title = $menu_item[2];
+			$permission_title = $menu_item[3];
+			$required = $menu_item[4];
+			$replace_old = array(ADMIN_URL, WB_URL, '/', 'index.php');
+			if($required == false OR $this->get_link_permission($permission_title)) {
+				$header_template->set_var('LINK', $link);
+				$header_template->set_var('TARGET', $target);
+				// If link is the current section apply a class name
+				if($permission_title == strtolower($this->section_name)) {
+					$header_template->set_var('CLASS', 'current');
+				} else {
+					$header_template->set_var('CLASS', '');
+				}
+				$header_template->set_var('TITLE', $title);
+				// Print link
+				$header_template->parse('link', 'linkBlock', true);
+			}
+		}
+		$header_template->parse('header', 'header_block', false);
+		$header_template->pparse('output', 'page');
+	}
+	
+	// Print the admin footer
+	function print_footer() {
+		// include the required file for Javascript admin
+    	if(file_exists(WB_PATH.'/modules/jsadmin/jsadmin_backend_include.php')){
+      	@include(WB_PATH.'/modules/jsadmin/jsadmin_backend_include.php');
+    	}
+		$footer_template = new Template(ADMIN_PATH."/interface");
+		$footer_template->set_file('page', 'footer.html');
+		$footer_template->set_block('page', 'footer_block', 'header');
+		$footer_template->parse('header', 'footer_block', false);
+		$footer_template->pparse('output', 'page');
+	}
+	
+	// Return a system permission
+	function get_permission($name, $type = 'system') {
+		// Append to permission type
+		$type .= '_permissions';
+		// Check if we have a section to check for
+		if($name == 'start') {
+			return true;
+		} else {
+			// Set system permissions var
+			$system_permissions = $this->get_session('SYSTEM_PERMISSIONS');
+			// Set module permissions var
+			$module_permissions = $this->get_session('MODULE_PERMISSIONS');
+			// Set template permissions var
+			$template_permissions = $this->get_session('TEMPLATE_PERMISSIONS');
+			// Return true if system perm = 1
+			if(is_numeric(array_search($name, $$type))) {
+				if($type == 'system_permissions') {
+					return true;
+				} else {
+					return false;
+				}
+			} else {
+				if($type == 'system_permissions') {
+					return false;
+				} else {
+					return true;
+				}
+			}
+		}
+	}
+		
+	function get_user_details($user_id) {
+		global $database;
+		$query_user = "SELECT username,display_name FROM ".TABLE_PREFIX."users WHERE user_id = '$user_id'";
+		$get_user = $database->query($query_user);
+		if($get_user->numRows() != 0) {
+			$user = $get_user->fetchRow();
+		} else {
+			$user['display_name'] = 'Unknown';
+			$user['username'] = 'unknown';
+		}
+		return $user;
+	}	
+	
+	function get_page_details($page_id) {
+		global $database;
+		$query = "SELECT page_id,page_title,modified_by,modified_when FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+		$results = $database->query($query);
+		if($database->is_error()) {
+			$this->print_header();
+			$this->print_error($database->get_error());
+		}
+		if($results->numRows() == 0) {
+			$this->print_header();
+			$this->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+		}
+		$results_array = $results->fetchRow();
+		return $results_array;
+	}	
+	
+	/** Function get_page_permission takes either a numerical page_id,
+	 * upon which it looks up the permissions in the database,
+	 * or an array with keys admin_groups and admin_users  
+	 */
+	function get_page_permission($page,$action='admin') {
+		if ($action!='viewing') $action='admin';
+		$action_groups=$action.'_groups';
+		$action_users=$action.'_users';
+		if (is_array($page)) {
+				$groups=$page[$action_groups];
+				$users=$page[$action_users];
+		} else {				
+			global $database;
+			$results = $database->query("SELECT $action_groups,$action_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page'");
+			$result = $results->fetchRow();
+			$groups = explode(',', str_replace('_', '', $result[$action_groups]));
+			$users = explode(',', str_replace('_', '', $result[$action_users]));
+		}
+
+		$in_group = FALSE;
+		foreach($this->get_groups_id() as $cur_gid){
+		    if (in_array($cur_gid, $groups)) {
+		        $in_group = TRUE;
+		    }
+		}
+		if((!$in_group) AND !is_numeric(array_search($this->get_user_id(), $users))) {
+			return false;
+		}
+		return true;
+	}
+		
+
+	// Returns a system permission for a menu link
+	function get_link_permission($title) {
+		$title = str_replace('_blank', '', $title);
+		$title = strtolower($title);
+		// Set system permissions var
+		$system_permissions = $this->get_session('SYSTEM_PERMISSIONS');
+		// Set module permissions var
+		$module_permissions = $this->get_session('MODULE_PERMISSIONS');
+		if($title == 'start') {
+			return true;
+		} else {
+			// Return true if system perm = 1
+			if(is_numeric(array_search($title, $system_permissions))) {
+				return true;
+			} else {
+				return false;
+			}
+		}
+	}
+
+	// Function to add optional module Javascript or CSS stylesheets into the <head> section of the backend
+	function register_backend_modfiles($file_id="css") {
+		// sanity check of parameter passed to the function
+		$file_id = strtolower($file_id);
+		if($file_id !== "css" && $file_id !== "javascript" && $file_id !== "js") { 
+			return;
+		}
+
+		global $database;
+		// define default baselink and filename for optional module javascript and stylesheet files
+		$head_links = "";
+		if($file_id == "css") {
+      	$base_link = '<link href="'.WB_URL.'/modules/{MODULE_DIRECTORY}/backend.css"'; 
+			$base_link.= ' rel="stylesheet" type="text/css" media="screen" />';
+			$base_file = "backend.css";
+		} else {
+			$base_link = '<script type="text/javascript" src="'.WB_URL.'/modules/{MODULE_DIRECTORY}/backend.js"></script>';
+			$base_file = "backend.js";
+		}
+
+		// check if backend.js or backend.css files needs to be included to the <head></head> section of the backend
+		if(isset($_GET['tool'])) {
+			// check if displayed page contains a installed admin tool
+			$result = $database->query("SELECT * FROM " .TABLE_PREFIX ."addons 
+				WHERE type = 'module' AND function = 'tool' AND directory = '".addslashes($_GET['tool'])."'");
+
+			if($result->numRows()) {
+				// check if admin tool directory contains a backend.js or backend.css file to include
+				$tool = $result->fetchRow();
+				if(file_exists(WB_PATH ."/modules/" .$tool['directory'] ."/$base_file")) {
+        			// return link to the backend.js or backend.css file
+					return str_replace("{MODULE_DIRECTORY}", $tool['directory'], $base_link);
+				}
+			}
+		} elseif(isset($_GET['page_id'])) {
+			// check if displayed page in the backend contains a page module
+			$page_id = (int) addslashes($_GET['page_id']);
+
+    		// gather information for all models embedded on actual page
+			$query_modules = $database->query("SELECT module FROM " .TABLE_PREFIX ."sections 
+				WHERE page_id=$page_id AND module<>'wysiwyg'");
+
+    		while($row = $query_modules->fetchRow()) {
+				// check if page module directory contains a backend.js or backend.css file
+      		if(file_exists(WB_PATH ."/modules/" .$row['module'] ."/$base_file")) {
+					// create link with backend.js or backend.css source for the current module
+					$tmp_link = str_replace("{MODULE_DIRECTORY}", $row['module'], $base_link);
+        			// ensure that backend.js or backend.css is only added once per module type
+        			if(strpos($head_links, $tmp_link) === false) {
+						$head_links .= $tmp_link ."\n";
+					}
+				}
+    		}
+    		// write out links with all external module javascript/CSS files, remove last line feed
+			return rtrim($head_links);
+		}
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/class.admin.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/frontend.functions.php
===================================================================
--- tags/2.7.0/wb/framework/frontend.functions.php	(nonexistent)
+++ tags/2.7.0/wb/framework/frontend.functions.php	(revision 838)
@@ -0,0 +1,399 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+	This file is purely for ensuring compatibility with 3rd party
+	contributions made for WB version 2.5.2 or below
+*/
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// references to objects and variables that changed their names
+
+$admin = &$wb;
+
+$default_link=&$wb->default_link;
+
+$page_trail=&$wb->page_trail;
+$page_description=&$wb->page_description;
+$page_keywords=&$wb->page_keywords;
+$page_link=&$wb->link;
+
+// extra_sql is not used anymore - this is basically a register_globals exploit prevention...
+$extra_sql=&$wb->extra_sql;
+$extra_where_sql=&$wb->extra_where_sql;
+
+$query="SELECT directory FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND function = 'snippet'";
+$query_result=$database->query($query);
+if ($query_result->numRows()>0) {
+	while ($row = $query_result->fetchRow()) {
+		$module_dir = $row['directory'];
+		if (file_exists(WB_PATH.'/modules/'.$module_dir.'/include.php')) {
+			include(WB_PATH.'/modules/'.$module_dir.'/include.php');
+		}
+	}
+}
+
+// Frontend functions
+if (!function_exists('page_link')) {
+	function page_link($link) {
+		global $wb;
+		return $wb->page_link($link);
+	}
+}
+
+//function to highlight search results
+if (!function_exists('search_highlight')) {
+function search_highlight($foo='', $arr_string=array()) {
+	require_once(WB_PATH.'/framework/functions.php');
+	static $string_ul_umlauts=array();
+	if($string_ul_umlauts == array())
+		require(WB_PATH.'/search/search_convert.php');
+	$foo = entities_to_umlauts($foo, 'UTF-8');
+	array_walk($arr_string, create_function('&$v,$k','$v = preg_quote($v, \'/\');'));
+	$search_string = implode("|", $arr_string);
+	$string = strtr($search_string, $string_ul_umlauts);
+	// special-feature: '|' means word-boundary (\b). Searching for 'the|' will find 'the', but not 'thema'.
+	$string = strtr($string, array('\\|'=>'\b'));
+	// the highlighting
+	// match $string, but not inside <style>...</style>, <script>...</script>, <!--...--> or HTML-Tags
+	// split $string into pieces - "cut away" styles, scripts, comments, HTML-tags and eMail-addresses
+	// for HTML-Tags use <(?:[^<]|<.*>)*> which will match strings like <input ... value="<b>value</b>" >
+	$matches = preg_split("/(<style.*<\/style>|<script.*<\/script>|<!--.*-->|<(?:[^<]|<.*>)*>|\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,8}\b)/iUs",$foo,-1,(PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY));
+	if(is_array($matches) && $matches != array()) {
+		$foo = "";
+		foreach($matches as $match) {
+			if($match{0}!="<" && !preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,8}$/i', $match)) {
+				$match = strtr($match, array('&lt;'=>'<', '&gt;'=>'>', '&amp;'=>'&', '&quot;'=>'"', '&#39;'=>'\'', '&nbsp;'=>"\xC2\xA0"));
+				$match = preg_replace('/('.$string.')/iS', '_span class=_highlight__$1_/span_',$match);
+				$match = strtr($match, array('<'=>'&lt;', '>'=>'&gt;', '&'=>'&amp;', '"'=>'&quot;', '\''=>'&#39;', "\xC2\xA0"=>'&nbsp;'));
+				$match = str_replace(array('_span class=_highlight__', '_/span_'), array('<span class="highlight">', '</span>'), $match);
+			}
+			$foo .= $match;
+		}
+	}
+	
+	if(DEFAULT_CHARSET != 'utf-8') {
+		$foo = umlauts_to_entities($foo, 'UTF-8');
+	}
+	return $foo;
+}
+}
+
+// Old menu call invokes new menu function
+if (!function_exists('page_menu')) {
+	function page_menu($parent = 0, $menu_number = 1, $item_template = '<li[class]>[a] [menu_title] [/a]</li>', $menu_header = '<ul>', $menu_footer = '</ul>', $default_class = ' class="menu_default"', $current_class = ' class="menu_current"', $recurse = LEVEL) {
+		global $wb;
+		$wb->menu_number=$menu_number;
+		$wb->menu_item_template=$item_template;
+		$wb->menu_item_footer='';
+		$wb->menu_parent = $parent;
+		$wb->menu_header = $menu_header; 
+		$wb->menu_footer = $menu_footer;
+		$wb->menu_default_class = $default_class;
+		$wb->menu_current_class = $current_class;
+		$wb->menu_recurse = $recurse+2; 	
+		$wb->menu();
+		unset($wb->menu_parent);
+		unset($wb->menu_number);
+		unset($wb->menu_item_template);
+		unset($wb->menu_item_footer);
+		unset($wb->menu_header);
+		unset($wb->menu_footer);
+		unset($wb->menu_default_class);
+		unset($wb->menu_current_class);
+		unset($wb->menu_start_level);
+		unset($wb->menu_collapse);
+		unset($wb->menu_recurse);
+	}
+}
+
+if (!function_exists('show_menu')) {
+	function show_menu($menu_number = NULL, $start_level=NULL, $recurse = NULL, $collapse = NULL, $item_template = NULL, $item_footer = NULL, $menu_header = NULL, $menu_footer = NULL, $default_class = NULL, $current_class = NULL, $parent = NULL) {
+		global $wb;
+		if (isset($menu_number))
+			$wb->menu_number=$menu_number;
+		if (isset($start_level))
+			$wb->menu_start_level=$start_level;
+		if (isset($recurse))
+			$wb->menu_recurse=$recurse;
+		if (isset($collapse))
+			$wb->menu_collapse=$collapse;
+		if (isset($item_template))
+			$wb->menu_item_template=$item_template;
+		if (isset($item_footer))
+			$wb->menu_item_footer=$item_footer;
+		if (isset($menu_header))
+			$wb->menu_header=$menu_header;
+		if (isset($menu_footer))
+			$wb->menu_footer=$menu_footer;
+		if (isset($default_class))
+			$wb->menu_default_class=$default_class;
+		if (isset($current_class))
+			$wb->menu_current_class=$current_class;
+		if (isset($parent))
+			$wb->menu_parent=$parent;
+		$wb->menu();
+		unset($wb->menu_recurse);
+		unset($wb->menu_parent);
+		unset($wb->menu_start_level);
+	}
+}
+
+if (!function_exists('page_content')) {
+	function page_content($block = 1) {
+		// Get outside objects
+		global $TEXT,$MENU,$HEADING,$MESSAGE;
+		global $globals;
+		global $database;
+		global $wb;
+		$admin = & $wb;
+		if ($wb->page_access_denied==true) {
+	        echo $MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'];
+			exit();
+		}
+		if ($wb->page_no_active_sections==true) {
+	        echo $MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'];
+			exit();
+		}
+		if(isset($globals) AND is_array($globals)) { foreach($globals AS $global_name) { global $$global_name; } }
+		// Make sure block is numeric
+		if(!is_numeric($block)) { $block = 1; }
+		// Include page content
+		if(!defined('PAGE_CONTENT') OR $block!=1) {
+			$page_id=$wb->page_id;
+			// First get all sections for this page
+			$query_sections = $database->query("SELECT section_id,module,publ_start,publ_end FROM ".TABLE_PREFIX."sections WHERE page_id = '".$page_id."' AND block = '$block' ORDER BY position");
+			// If none were found, check if default content is supposed to be shown
+			if($query_sections->numRows() == 0) {
+				if ($wb->default_block_content=='none') {
+					return;
+				}
+				if (is_numeric($wb->default_block_content)) {
+					$page_id=$wb->default_block_content;
+				} else {
+					$page_id=$wb->default_page_id;
+				}				
+				$query_sections = $database->query("SELECT section_id,module,publ_start,publ_end FROM ".TABLE_PREFIX."sections WHERE page_id = '".$page_id."' AND block = '$block' ORDER BY position");
+				// Still no cotent found? Give it up, there's just nothing to show!
+				if($query_sections->numRows() == 0) {
+					return;
+				}
+			}
+			// Loop through them and include their module file
+			while($section = $query_sections->fetchRow()) {
+				// skip this section if it is out of publication-date
+				$now = time();
+				if( !(($now<=$section['publ_end'] || $section['publ_end']==0) && ($now>=$section['publ_start'] || $section['publ_start']==0)) ) {
+					continue;
+				}
+				$section_id = $section['section_id'];
+				$module = $section['module'];
+				// make a anchor for every section. This is for the search_extension
+				echo "<a id=\"wb_section_$section_id\" name=\"wb_section_$section_id\"></a>";
+				// highlights searchresults
+				if (isset($_GET['searchresult']) AND is_numeric($_GET['searchresult']) AND !isset($_GET['nohighlight'])) {
+					if (isset($_GET['sstring']) AND !empty($_GET['sstring']) ){
+						$arr_string = explode(" ", $_GET['sstring']);
+						if($_GET['searchresult'] == 2) {
+							// exact match
+							$arr_string[0] = strtr($arr_string[0], "_"," ");
+						}
+						ob_start(); //start output buffer
+						require(WB_PATH.'/modules/'.$module.'/view.php');
+						$foo = ob_get_contents();    // put outputbuffer in $foo
+						ob_end_clean();             // clear outputbuffer
+						echo search_highlight($foo, $arr_string);
+					}
+				} else {
+					require(WB_PATH.'/modules/'.$module.'/view.php');
+				}
+			}
+		} else {
+			require(PAGE_CONTENT);
+		}
+	}
+}
+
+if (!function_exists('show_content')) {
+	function show_content($block=1) {
+		page_content($block);
+	}
+}
+
+if (!function_exists('show_breadcrumbs')) {
+	function show_breadcrumbs($sep=' > ',$tier=1,$links=true,$depth=-1) {
+		global $wb;
+		$page_id=$wb->page_id;
+		if ($page_id!=0)
+		{
+	 		global $database;
+			$bca=$wb->page_trail;
+			$counter=0;
+			foreach ($bca as $temp)
+			{
+		        if ($counter>=($tier-1) AND ($depth<0 OR $tier+$depth>$counter))
+		        {
+					if ($counter>=$tier) echo $sep;
+					$query_menu=$database->query("SELECT menu_title,link FROM ".TABLE_PREFIX."pages WHERE page_id=$temp");
+					$page=$query_menu->fetchRow();
+					if ($links==true AND $temp!=$page_id)
+						echo '<a href="'.page_link($page['link']).'">'.$page['menu_title'].'</a>';
+					else
+					    echo $page['menu_title'];
+		        }
+	            $counter++;
+			}
+		}
+	}
+}
+
+// Function for page title
+if (!function_exists('page_title')) {
+	function page_title($spacer = ' - ', $template = '[WEBSITE_TITLE][SPACER][PAGE_TITLE]') {
+		$vars = array('[WEBSITE_TITLE]', '[PAGE_TITLE]', '[MENU_TITLE]', '[SPACER]');
+		$values = array(WEBSITE_TITLE, PAGE_TITLE, MENU_TITLE, $spacer);
+		echo str_replace($vars, $values, $template);
+	}
+}
+
+// Function for page description
+if (!function_exists('page_description')) {
+	function page_description() {
+		global $wb;
+		if ($wb->page_description!='') {
+			echo $wb->page_description;
+		} else {
+			echo WEBSITE_DESCRIPTION;
+		}
+	}
+}
+
+// Function for page keywords
+if (!function_exists('page_keywords')) {
+	function page_keywords() {
+		global $wb;
+		if ($wb->page_keywords!='') {
+			echo $wb->page_keywords;
+		} else {
+			echo WEBSITE_KEYWORDS;
+		}
+	}
+}
+
+// Function for page header
+if (!function_exists('page_header')) {
+	function page_header($date_format = 'Y') {
+		echo WEBSITE_HEADER;
+	}
+}
+
+// Function for page footer
+if (!function_exists('page_footer')) {
+	function page_footer($date_format = 'Y') {
+		global $starttime;
+		$vars = array('[YEAR]', '[PROCESS_TIME]');
+		$processtime=array_sum(explode(" ",microtime()))-$starttime;
+		$values = array(date($date_format),$processtime);
+		echo str_replace($vars, $values, WEBSITE_FOOTER);
+	}
+}
+
+// Function to add optional module Javascript or CSS stylesheets into the <head> section of the frontend
+if(!function_exists('register_frontend_modfiles')) {
+	function register_frontend_modfiles($file_id="css") {
+		// sanity check of parameter passed to the function
+		$file_id = strtolower($file_id);
+		if($file_id !== "css" && $file_id !== "javascript" && $file_id !== "js") { 
+			return;
+		}
+
+		global $wb, $database;
+		// define default baselink and filename for optional module javascript and stylesheet files
+		$head_links = "";
+		if($file_id == "css") {
+      $base_link = '<link href="'.WB_URL.'/modules/{MODULE_DIRECTORY}/frontend.css"'; 
+			$base_link.= ' rel="stylesheet" type="text/css" media="screen" />';
+			$base_file = "frontend.css";
+		} else {
+			$base_link = '<script type="text/javascript" src="'.WB_URL.'/modules/{MODULE_DIRECTORY}/frontend.js"></script>';
+			$base_file = "frontend.js";
+		}
+
+  	// gather information for all models embedded on actual page
+		$page_id = $wb->page_id;
+    $query_modules = $database->query("SELECT module FROM " .TABLE_PREFIX ."sections 
+			WHERE page_id=$page_id AND module<>'wysiwyg'");
+
+    while($row = $query_modules->fetchRow()) {
+		// check if page module directory contains a frontend.js or frontend.css file
+    	if(file_exists(WB_PATH ."/modules/" .$row['module'] ."/$base_file")) {
+				// create link with frontend.js or frontend.css source for the current module
+				$tmp_link = str_replace("{MODULE_DIRECTORY}", $row['module'], $base_link);
+
+        // define constant indicating that the register_frontent_files was invoked
+				if($file_id == 'css') {
+					if(!defined('MOD_FRONTEND_CSS_REGISTERED')) define('MOD_FRONTEND_CSS_REGISTERED', true);
+				} else {
+					if(!defined('MOD_FRONTEND_JAVASCRIPT_REGISTERED')) define('MOD_FRONTEND_JAVASCRIPT_REGISTERED', true);
+				}
+
+        // ensure that frontend.js or frontend.css is only added once per module type
+        if(strpos($head_links, $tmp_link) === false) {
+					$head_links .= $tmp_link ."\n";
+				}
+			}
+    }
+  	// include the Javascript email protection function
+  	if($file_id != 'css' && file_exists(WB_PATH .'/modules/output_filter/js/mdcr.js')) {
+			$head_links .= '<script type="text/javascript" src="'.WB_URL.'/modules/output_filter/js/mdcr.js"></script>' ."\n";
+		}
+  		
+		// write out links with all external module javascript/CSS files, remove last line feed
+		echo $head_links;
+	}
+}
+
+// Begin WB < 2.4.x template compatibility code
+	// Make extra_sql accessable through private_sql
+	$private_sql = $extra_sql;
+	$private_where_sql = $extra_where_sql;
+	// Query pages for menu
+	$menu1 = $database->query("SELECT page_id,menu_title,page_title,link,target,visibility$extra_sql FROM ".TABLE_PREFIX."pages WHERE parent = '0' AND $extra_where_sql ORDER BY position ASC");
+	// Check if current pages is a parent page and if we need its submenu
+	if(PARENT == 0) {
+		// Get the pages submenu
+		$menu2 = $database->query("SELECT page_id,menu_title,page_title,link,target,visibility$extra_sql FROM ".TABLE_PREFIX."pages WHERE parent = '".PAGE_ID."' AND $extra_where_sql ORDER BY position ASC");
+	} else {
+		// Get the pages submenu
+		$menu2 = $database->query("SELECT page_id,menu_title,page_title,link,target,visibility$extra_sql FROM ".TABLE_PREFIX."pages WHERE parent = '".PARENT."' AND $extra_where_sql ORDER BY position ASC");
+	}
+// End WB < 2.4.x template compatibility code
+// Include template file
+
+
+?>

Property changes on: tags/2.7.0/wb/framework/frontend.functions.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/charsets_table.php
===================================================================
--- tags/2.7.0/wb/framework/charsets_table.php	(nonexistent)
+++ tags/2.7.0/wb/framework/charsets_table.php	(revision 838)
@@ -0,0 +1,1019 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+global $iso_8859_2_to_utf8;
+$iso_8859_2_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xc4\x84","\xa2"=>"\xcb\x98","\xa3"=>"\xc5\x81","\xa4"=>"\xc2\xa4","\xa5"=>"\xc4\xbd","\xa6"=>"\xc5\x9a","\xa7"=>"\xc2\xa7",
+	"\xa8"=>"\xc2\xa8","\xa9"=>"\xc5\xa0","\xaa"=>"\xc5\x9e","\xab"=>"\xc5\xa4","\xac"=>"\xc5\xb9","\xad"=>"\xc2\xad","\xae"=>"\xc5\xbd","\xaf"=>"\xc5\xbb",
+	"\xb0"=>"\xc2\xb0","\xb1"=>"\xc4\x85","\xb2"=>"\xcb\x9b","\xb3"=>"\xc5\x82","\xb4"=>"\xc2\xb4","\xb5"=>"\xc4\xbe","\xb6"=>"\xc5\x9b","\xb7"=>"\xcb\x87",
+	"\xb8"=>"\xc2\xb8","\xb9"=>"\xc5\xa1","\xba"=>"\xc5\x9f","\xbb"=>"\xc5\xa5","\xbc"=>"\xc5\xba","\xbd"=>"\xcb\x9d","\xbe"=>"\xc5\xbe","\xbf"=>"\xc5\xbc",
+	"\xc0"=>"\xc5\x94","\xc1"=>"\xc3\x81","\xc2"=>"\xc3\x82","\xc3"=>"\xc4\x82","\xc4"=>"\xc3\x84","\xc5"=>"\xc4\xb9","\xc6"=>"\xc4\x86","\xc7"=>"\xc3\x87",
+	"\xc8"=>"\xc4\x8c","\xc9"=>"\xc3\x89","\xca"=>"\xc4\x98","\xcb"=>"\xc3\x8b","\xcc"=>"\xc4\x9a","\xcd"=>"\xc3\x8d","\xce"=>"\xc3\x8e","\xcf"=>"\xc4\x8e",
+	"\xd0"=>"\xc4\x90","\xd1"=>"\xc5\x83","\xd2"=>"\xc5\x87","\xd3"=>"\xc3\x93","\xd4"=>"\xc3\x94","\xd5"=>"\xc5\x90","\xd6"=>"\xc3\x96","\xd7"=>"\xc3\x97",
+	"\xd8"=>"\xc5\x98","\xd9"=>"\xc5\xae","\xda"=>"\xc3\x9a","\xdb"=>"\xc5\xb0","\xdc"=>"\xc3\x9c","\xdd"=>"\xc3\x9d","\xde"=>"\xc5\xa2","\xdf"=>"\xc3\x9f",
+	"\xe0"=>"\xc5\x95","\xe1"=>"\xc3\xa1","\xe2"=>"\xc3\xa2","\xe3"=>"\xc4\x83","\xe4"=>"\xc3\xa4","\xe5"=>"\xc4\xba","\xe6"=>"\xc4\x87","\xe7"=>"\xc3\xa7",
+	"\xe8"=>"\xc4\x8d","\xe9"=>"\xc3\xa9","\xea"=>"\xc4\x99","\xeb"=>"\xc3\xab","\xec"=>"\xc4\x9b","\xed"=>"\xc3\xad","\xee"=>"\xc3\xae","\xef"=>"\xc4\x8f",
+	"\xf0"=>"\xc4\x91","\xf1"=>"\xc5\x84","\xf2"=>"\xc5\x88","\xf3"=>"\xc3\xb3","\xf4"=>"\xc3\xb4","\xf5"=>"\xc5\x91","\xf6"=>"\xc3\xb6","\xf7"=>"\xc3\xb7",
+	"\xf8"=>"\xc5\x99","\xf9"=>"\xc5\xaf","\xfa"=>"\xc3\xba","\xfb"=>"\xc5\xb1","\xfc"=>"\xc3\xbc","\xfd"=>"\xc3\xbd","\xfe"=>"\xc5\xa3","\xff"=>"\xcb\x99"
+);
+global $utf8_to_iso_8859_2;
+$utf8_to_iso_8859_2 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc4\x84"=>"\xa1","\xcb\x98"=>"\xa2","\xc5\x81"=>"\xa3","\xc2\xa4"=>"\xa4","\xc4\xbd"=>"\xa5","\xc5\x9a"=>"\xa6","\xc2\xa7"=>"\xa7",
+	"\xc2\xa8"=>"\xa8","\xc5\xa0"=>"\xa9","\xc5\x9e"=>"\xaa","\xc5\xa4"=>"\xab","\xc5\xb9"=>"\xac","\xc2\xad"=>"\xad","\xc5\xbd"=>"\xae","\xc5\xbb"=>"\xaf",
+	"\xc2\xb0"=>"\xb0","\xc4\x85"=>"\xb1","\xcb\x9b"=>"\xb2","\xc5\x82"=>"\xb3","\xc2\xb4"=>"\xb4","\xc4\xbe"=>"\xb5","\xc5\x9b"=>"\xb6","\xcb\x87"=>"\xb7",
+	"\xc2\xb8"=>"\xb8","\xc5\xa1"=>"\xb9","\xc5\x9f"=>"\xba","\xc5\xa5"=>"\xbb","\xc5\xba"=>"\xbc","\xcb\x9d"=>"\xbd","\xc5\xbe"=>"\xbe","\xc5\xbc"=>"\xbf",
+	"\xc5\x94"=>"\xc0","\xc3\x81"=>"\xc1","\xc3\x82"=>"\xc2","\xc4\x82"=>"\xc3","\xc3\x84"=>"\xc4","\xc4\xb9"=>"\xc5","\xc4\x86"=>"\xc6","\xc3\x87"=>"\xc7",
+	"\xc4\x8c"=>"\xc8","\xc3\x89"=>"\xc9","\xc4\x98"=>"\xca","\xc3\x8b"=>"\xcb","\xc4\x9a"=>"\xcc","\xc3\x8d"=>"\xcd","\xc3\x8e"=>"\xce","\xc4\x8e"=>"\xcf",
+	"\xc4\x90"=>"\xd0","\xc5\x83"=>"\xd1","\xc5\x87"=>"\xd2","\xc3\x93"=>"\xd3","\xc3\x94"=>"\xd4","\xc5\x90"=>"\xd5","\xc3\x96"=>"\xd6","\xc3\x97"=>"\xd7",
+	"\xc5\x98"=>"\xd8","\xc5\xae"=>"\xd9","\xc3\x9a"=>"\xda","\xc5\xb0"=>"\xdb","\xc3\x9c"=>"\xdc","\xc3\x9d"=>"\xdd","\xc5\xa2"=>"\xde","\xc3\x9f"=>"\xdf",
+	"\xc5\x95"=>"\xe0","\xc3\xa1"=>"\xe1","\xc3\xa2"=>"\xe2","\xc4\x83"=>"\xe3","\xc3\xa4"=>"\xe4","\xc4\xba"=>"\xe5","\xc4\x87"=>"\xe6","\xc3\xa7"=>"\xe7",
+	"\xc4\x8d"=>"\xe8","\xc3\xa9"=>"\xe9","\xc4\x99"=>"\xea","\xc3\xab"=>"\xeb","\xc4\x9b"=>"\xec","\xc3\xad"=>"\xed","\xc3\xae"=>"\xee","\xc4\x8f"=>"\xef",
+	"\xc4\x91"=>"\xf0","\xc5\x84"=>"\xf1","\xc5\x88"=>"\xf2","\xc3\xb3"=>"\xf3","\xc3\xb4"=>"\xf4","\xc5\x91"=>"\xf5","\xc3\xb6"=>"\xf6","\xc3\xb7"=>"\xf7",
+	"\xc5\x99"=>"\xf8","\xc5\xaf"=>"\xf9","\xc3\xba"=>"\xfa","\xc5\xb1"=>"\xfb","\xc3\xbc"=>"\xfc","\xc3\xbd"=>"\xfd","\xc5\xa3"=>"\xfe","\xcb\x99"=>"\xff"
+);
+global $iso_8859_3_to_utf8;
+$iso_8859_3_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xc4\xa6","\xa2"=>"\xcb\x98","\xa3"=>"\xc2\xa3","\xa4"=>"\xc2\xa4","\xa5"=>"\xc4\xa8","\xa6"=>"\xc4\xa4","\xa7"=>"\xc2\xa7",
+	"\xa8"=>"\xc2\xa8","\xa9"=>"\xc4\xb0","\xaa"=>"\xc5\x9e","\xab"=>"\xc4\x9e","\xac"=>"\xc4\xb4","\xad"=>"\xc2\xad","\xaf"=>"\xc5\xbb","\xb0"=>"\xc2\xb0",
+	"\xb1"=>"\xc4\xa7","\xb2"=>"\xc2\xb2","\xb3"=>"\xc2\xb3","\xb4"=>"\xc2\xb4","\xb5"=>"\xc2\xb5","\xb6"=>"\xc4\xa5","\xb7"=>"\xc2\xb7","\xb8"=>"\xc2\xb8",
+	"\xb9"=>"\xc4\xb1","\xba"=>"\xc5\x9f","\xbb"=>"\xc4\x9f","\xbc"=>"\xc4\xb5","\xbd"=>"\xc2\xbd","\xbf"=>"\xc5\xbc","\xc0"=>"\xc3\x80","\xc1"=>"\xc3\x81",
+	"\xc2"=>"\xc3\x82","\xc4"=>"\xc3\x84","\xc5"=>"\xc4\x8a","\xc6"=>"\xc4\x88","\xc7"=>"\xc3\x87","\xc8"=>"\xc3\x88","\xc9"=>"\xc3\x89","\xca"=>"\xc3\x8a",
+	"\xcb"=>"\xc3\x8b","\xcc"=>"\xc3\x8c","\xcd"=>"\xc3\x8d","\xce"=>"\xc3\x8e","\xcf"=>"\xc3\x8f","\xd1"=>"\xc3\x91","\xd2"=>"\xc3\x92","\xd3"=>"\xc3\x93",
+	"\xd4"=>"\xc3\x94","\xd5"=>"\xc4\xa0","\xd6"=>"\xc3\x96","\xd7"=>"\xc3\x97","\xd8"=>"\xc4\x9c","\xd9"=>"\xc3\x99","\xda"=>"\xc3\x9a","\xdb"=>"\xc3\x9b",
+	"\xdc"=>"\xc3\x9c","\xdd"=>"\xc5\xac","\xde"=>"\xc5\x9c","\xdf"=>"\xc3\x9f","\xe0"=>"\xc3\xa0","\xe1"=>"\xc3\xa1","\xe2"=>"\xc3\xa2","\xe4"=>"\xc3\xa4",
+	"\xe5"=>"\xc4\x8b","\xe6"=>"\xc4\x89","\xe7"=>"\xc3\xa7","\xe8"=>"\xc3\xa8","\xe9"=>"\xc3\xa9","\xea"=>"\xc3\xaa","\xeb"=>"\xc3\xab","\xec"=>"\xc3\xac",
+	"\xed"=>"\xc3\xad","\xee"=>"\xc3\xae","\xef"=>"\xc3\xaf","\xf1"=>"\xc3\xb1","\xf2"=>"\xc3\xb2","\xf3"=>"\xc3\xb3","\xf4"=>"\xc3\xb4","\xf5"=>"\xc4\xa1",
+	"\xf6"=>"\xc3\xb6","\xf7"=>"\xc3\xb7","\xf8"=>"\xc4\x9d","\xf9"=>"\xc3\xb9","\xfa"=>"\xc3\xba","\xfb"=>"\xc3\xbb","\xfc"=>"\xc3\xbc","\xfd"=>"\xc5\xad",
+	"\xfe"=>"\xc5\x9d","\xff"=>"\xcb\x99"
+);
+global $utf8_to_iso_8859_3;
+$utf8_to_iso_8859_3 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc4\xa6"=>"\xa1","\xcb\x98"=>"\xa2","\xc2\xa3"=>"\xa3","\xc2\xa4"=>"\xa4","\xc4\xa8"=>"\xa5","\xc4\xa4"=>"\xa6","\xc2\xa7"=>"\xa7",
+	"\xc2\xa8"=>"\xa8","\xc4\xb0"=>"\xa9","\xc5\x9e"=>"\xaa","\xc4\x9e"=>"\xab","\xc4\xb4"=>"\xac","\xc2\xad"=>"\xad","\xc5\xbb"=>"\xaf","\xc2\xb0"=>"\xb0",
+	"\xc4\xa7"=>"\xb1","\xc2\xb2"=>"\xb2","\xc2\xb3"=>"\xb3","\xc2\xb4"=>"\xb4","\xc2\xb5"=>"\xb5","\xc4\xa5"=>"\xb6","\xc2\xb7"=>"\xb7","\xc2\xb8"=>"\xb8",
+	"\xc4\xb1"=>"\xb9","\xc5\x9f"=>"\xba","\xc4\x9f"=>"\xbb","\xc4\xb5"=>"\xbc","\xc2\xbd"=>"\xbd","\xc5\xbc"=>"\xbf","\xc3\x80"=>"\xc0","\xc3\x81"=>"\xc1",
+	"\xc3\x82"=>"\xc2","\xc3\x84"=>"\xc4","\xc4\x8a"=>"\xc5","\xc4\x88"=>"\xc6","\xc3\x87"=>"\xc7","\xc3\x88"=>"\xc8","\xc3\x89"=>"\xc9","\xc3\x8a"=>"\xca",
+	"\xc3\x8b"=>"\xcb","\xc3\x8c"=>"\xcc","\xc3\x8d"=>"\xcd","\xc3\x8e"=>"\xce","\xc3\x8f"=>"\xcf","\xc3\x91"=>"\xd1","\xc3\x92"=>"\xd2","\xc3\x93"=>"\xd3",
+	"\xc3\x94"=>"\xd4","\xc4\xa0"=>"\xd5","\xc3\x96"=>"\xd6","\xc3\x97"=>"\xd7","\xc4\x9c"=>"\xd8","\xc3\x99"=>"\xd9","\xc3\x9a"=>"\xda","\xc3\x9b"=>"\xdb",
+	"\xc3\x9c"=>"\xdc","\xc5\xac"=>"\xdd","\xc5\x9c"=>"\xde","\xc3\x9f"=>"\xdf","\xc3\xa0"=>"\xe0","\xc3\xa1"=>"\xe1","\xc3\xa2"=>"\xe2","\xc3\xa4"=>"\xe4",
+	"\xc4\x8b"=>"\xe5","\xc4\x89"=>"\xe6","\xc3\xa7"=>"\xe7","\xc3\xa8"=>"\xe8","\xc3\xa9"=>"\xe9","\xc3\xaa"=>"\xea","\xc3\xab"=>"\xeb","\xc3\xac"=>"\xec",
+	"\xc3\xad"=>"\xed","\xc3\xae"=>"\xee","\xc3\xaf"=>"\xef","\xc3\xb1"=>"\xf1","\xc3\xb2"=>"\xf2","\xc3\xb3"=>"\xf3","\xc3\xb4"=>"\xf4","\xc4\xa1"=>"\xf5",
+	"\xc3\xb6"=>"\xf6","\xc3\xb7"=>"\xf7","\xc4\x9d"=>"\xf8","\xc3\xb9"=>"\xf9","\xc3\xba"=>"\xfa","\xc3\xbb"=>"\xfb","\xc3\xbc"=>"\xfc","\xc5\xad"=>"\xfd",
+	"\xc5\x9d"=>"\xfe","\xcb\x99"=>"\xff"
+);
+global $iso_8859_4_to_utf8;
+$iso_8859_4_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xc4\x84","\xa2"=>"\xc4\xb8","\xa3"=>"\xc5\x96","\xa4"=>"\xc2\xa4","\xa5"=>"\xc4\xa8","\xa6"=>"\xc4\xbb","\xa7"=>"\xc2\xa7",
+	"\xa8"=>"\xc2\xa8","\xa9"=>"\xc5\xa0","\xaa"=>"\xc4\x92","\xab"=>"\xc4\xa2","\xac"=>"\xc5\xa6","\xad"=>"\xc2\xad","\xae"=>"\xc5\xbd","\xaf"=>"\xc2\xaf",
+	"\xb0"=>"\xc2\xb0","\xb1"=>"\xc4\x85","\xb2"=>"\xcb\x9b","\xb3"=>"\xc5\x97","\xb4"=>"\xc2\xb4","\xb5"=>"\xc4\xa9","\xb6"=>"\xc4\xbc","\xb7"=>"\xcb\x87",
+	"\xb8"=>"\xc2\xb8","\xb9"=>"\xc5\xa1","\xba"=>"\xc4\x93","\xbb"=>"\xc4\xa3","\xbc"=>"\xc5\xa7","\xbd"=>"\xc5\x8a","\xbe"=>"\xc5\xbe","\xbf"=>"\xc5\x8b",
+	"\xc0"=>"\xc4\x80","\xc1"=>"\xc3\x81","\xc2"=>"\xc3\x82","\xc3"=>"\xc3\x83","\xc4"=>"\xc3\x84","\xc5"=>"\xc3\x85","\xc6"=>"\xc3\x86","\xc7"=>"\xc4\xae",
+	"\xc8"=>"\xc4\x8c","\xc9"=>"\xc3\x89","\xca"=>"\xc4\x98","\xcb"=>"\xc3\x8b","\xcc"=>"\xc4\x96","\xcd"=>"\xc3\x8d","\xce"=>"\xc3\x8e","\xcf"=>"\xc4\xaa",
+	"\xd0"=>"\xc4\x90","\xd1"=>"\xc5\x85","\xd2"=>"\xc5\x8c","\xd3"=>"\xc4\xb6","\xd4"=>"\xc3\x94","\xd5"=>"\xc3\x95","\xd6"=>"\xc3\x96","\xd7"=>"\xc3\x97",
+	"\xd8"=>"\xc3\x98","\xd9"=>"\xc5\xb2","\xda"=>"\xc3\x9a","\xdb"=>"\xc3\x9b","\xdc"=>"\xc3\x9c","\xdd"=>"\xc5\xa8","\xde"=>"\xc5\xaa","\xdf"=>"\xc3\x9f",
+	"\xe0"=>"\xc4\x81","\xe1"=>"\xc3\xa1","\xe2"=>"\xc3\xa2","\xe3"=>"\xc3\xa3","\xe4"=>"\xc3\xa4","\xe5"=>"\xc3\xa5","\xe6"=>"\xc3\xa6","\xe7"=>"\xc4\xaf",
+	"\xe8"=>"\xc4\x8d","\xe9"=>"\xc3\xa9","\xea"=>"\xc4\x99","\xeb"=>"\xc3\xab","\xec"=>"\xc4\x97","\xed"=>"\xc3\xad","\xee"=>"\xc3\xae","\xef"=>"\xc4\xab",
+	"\xf0"=>"\xc4\x91","\xf1"=>"\xc5\x86","\xf2"=>"\xc5\x8d","\xf3"=>"\xc4\xb7","\xf4"=>"\xc3\xb4","\xf5"=>"\xc3\xb5","\xf6"=>"\xc3\xb6","\xf7"=>"\xc3\xb7",
+	"\xf8"=>"\xc3\xb8","\xf9"=>"\xc5\xb3","\xfa"=>"\xc3\xba","\xfb"=>"\xc3\xbb","\xfc"=>"\xc3\xbc","\xfd"=>"\xc5\xa9","\xfe"=>"\xc5\xab","\xff"=>"\xcb\x99"
+);
+global $utf8_to_iso_8859_4;
+$utf8_to_iso_8859_4 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc4\x84"=>"\xa1","\xc4\xb8"=>"\xa2","\xc5\x96"=>"\xa3","\xc2\xa4"=>"\xa4","\xc4\xa8"=>"\xa5","\xc4\xbb"=>"\xa6","\xc2\xa7"=>"\xa7",
+	"\xc2\xa8"=>"\xa8","\xc5\xa0"=>"\xa9","\xc4\x92"=>"\xaa","\xc4\xa2"=>"\xab","\xc5\xa6"=>"\xac","\xc2\xad"=>"\xad","\xc5\xbd"=>"\xae","\xc2\xaf"=>"\xaf",
+	"\xc2\xb0"=>"\xb0","\xc4\x85"=>"\xb1","\xcb\x9b"=>"\xb2","\xc5\x97"=>"\xb3","\xc2\xb4"=>"\xb4","\xc4\xa9"=>"\xb5","\xc4\xbc"=>"\xb6","\xcb\x87"=>"\xb7",
+	"\xc2\xb8"=>"\xb8","\xc5\xa1"=>"\xb9","\xc4\x93"=>"\xba","\xc4\xa3"=>"\xbb","\xc5\xa7"=>"\xbc","\xc5\x8a"=>"\xbd","\xc5\xbe"=>"\xbe","\xc5\x8b"=>"\xbf",
+	"\xc4\x80"=>"\xc0","\xc3\x81"=>"\xc1","\xc3\x82"=>"\xc2","\xc3\x83"=>"\xc3","\xc3\x84"=>"\xc4","\xc3\x85"=>"\xc5","\xc3\x86"=>"\xc6","\xc4\xae"=>"\xc7",
+	"\xc4\x8c"=>"\xc8","\xc3\x89"=>"\xc9","\xc4\x98"=>"\xca","\xc3\x8b"=>"\xcb","\xc4\x96"=>"\xcc","\xc3\x8d"=>"\xcd","\xc3\x8e"=>"\xce","\xc4\xaa"=>"\xcf",
+	"\xc4\x90"=>"\xd0","\xc5\x85"=>"\xd1","\xc5\x8c"=>"\xd2","\xc4\xb6"=>"\xd3","\xc3\x94"=>"\xd4","\xc3\x95"=>"\xd5","\xc3\x96"=>"\xd6","\xc3\x97"=>"\xd7",
+	"\xc3\x98"=>"\xd8","\xc5\xb2"=>"\xd9","\xc3\x9a"=>"\xda","\xc3\x9b"=>"\xdb","\xc3\x9c"=>"\xdc","\xc5\xa8"=>"\xdd","\xc5\xaa"=>"\xde","\xc3\x9f"=>"\xdf",
+	"\xc4\x81"=>"\xe0","\xc3\xa1"=>"\xe1","\xc3\xa2"=>"\xe2","\xc3\xa3"=>"\xe3","\xc3\xa4"=>"\xe4","\xc3\xa5"=>"\xe5","\xc3\xa6"=>"\xe6","\xc4\xaf"=>"\xe7",
+	"\xc4\x8d"=>"\xe8","\xc3\xa9"=>"\xe9","\xc4\x99"=>"\xea","\xc3\xab"=>"\xeb","\xc4\x97"=>"\xec","\xc3\xad"=>"\xed","\xc3\xae"=>"\xee","\xc4\xab"=>"\xef",
+	"\xc4\x91"=>"\xf0","\xc5\x86"=>"\xf1","\xc5\x8d"=>"\xf2","\xc4\xb7"=>"\xf3","\xc3\xb4"=>"\xf4","\xc3\xb5"=>"\xf5","\xc3\xb6"=>"\xf6","\xc3\xb7"=>"\xf7",
+	"\xc3\xb8"=>"\xf8","\xc5\xb3"=>"\xf9","\xc3\xba"=>"\xfa","\xc3\xbb"=>"\xfb","\xc3\xbc"=>"\xfc","\xc5\xa9"=>"\xfd","\xc5\xab"=>"\xfe","\xcb\x99"=>"\xff"
+);
+
+global $iso_8859_5_to_utf8;
+$iso_8859_5_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xd0\x81","\xa2"=>"\xd0\x82","\xa3"=>"\xd0\x83","\xa4"=>"\xd0\x84","\xa5"=>"\xd0\x85","\xa6"=>"\xd0\x86","\xa7"=>"\xd0\x87",
+	"\xa8"=>"\xd0\x88","\xa9"=>"\xd0\x89","\xaa"=>"\xd0\x8a","\xab"=>"\xd0\x8b","\xac"=>"\xd0\x8c","\xad"=>"\xc2\xad","\xae"=>"\xd0\x8e","\xaf"=>"\xd0\x8f",
+	"\xb0"=>"\xd0\x90","\xb1"=>"\xd0\x91","\xb2"=>"\xd0\x92","\xb3"=>"\xd0\x93","\xb4"=>"\xd0\x94","\xb5"=>"\xd0\x95","\xb6"=>"\xd0\x96","\xb7"=>"\xd0\x97",
+	"\xb8"=>"\xd0\x98","\xb9"=>"\xd0\x99","\xba"=>"\xd0\x9a","\xbb"=>"\xd0\x9b","\xbc"=>"\xd0\x9c","\xbd"=>"\xd0\x9d","\xbe"=>"\xd0\x9e","\xbf"=>"\xd0\x9f",
+	"\xc0"=>"\xd0\xa0","\xc1"=>"\xd0\xa1","\xc2"=>"\xd0\xa2","\xc3"=>"\xd0\xa3","\xc4"=>"\xd0\xa4","\xc5"=>"\xd0\xa5","\xc6"=>"\xd0\xa6","\xc7"=>"\xd0\xa7",
+	"\xc8"=>"\xd0\xa8","\xc9"=>"\xd0\xa9","\xca"=>"\xd0\xaa","\xcb"=>"\xd0\xab","\xcc"=>"\xd0\xac","\xcd"=>"\xd0\xad","\xce"=>"\xd0\xae","\xcf"=>"\xd0\xaf",
+	"\xd0"=>"\xd0\xb0","\xd1"=>"\xd0\xb1","\xd2"=>"\xd0\xb2","\xd3"=>"\xd0\xb3","\xd4"=>"\xd0\xb4","\xd5"=>"\xd0\xb5","\xd6"=>"\xd0\xb6","\xd7"=>"\xd0\xb7",
+	"\xd8"=>"\xd0\xb8","\xd9"=>"\xd0\xb9","\xda"=>"\xd0\xba","\xdb"=>"\xd0\xbb","\xdc"=>"\xd0\xbc","\xdd"=>"\xd0\xbd","\xde"=>"\xd0\xbe","\xdf"=>"\xd0\xbf",
+	"\xe0"=>"\xd1\x80","\xe1"=>"\xd1\x81","\xe2"=>"\xd1\x82","\xe3"=>"\xd1\x83","\xe4"=>"\xd1\x84","\xe5"=>"\xd1\x85","\xe6"=>"\xd1\x86","\xe7"=>"\xd1\x87",
+	"\xe8"=>"\xd1\x88","\xe9"=>"\xd1\x89","\xea"=>"\xd1\x8a","\xeb"=>"\xd1\x8b","\xec"=>"\xd1\x8c","\xed"=>"\xd1\x8d","\xee"=>"\xd1\x8e","\xef"=>"\xd1\x8f",
+	"\xf0"=>"\xe2\x84\x96","\xf1"=>"\xd1\x91","\xf2"=>"\xd1\x92","\xf3"=>"\xd1\x93","\xf4"=>"\xd1\x94","\xf5"=>"\xd1\x95","\xf6"=>"\xd1\x96","\xf7"=>"\xd1\x97",
+	"\xf8"=>"\xd1\x98","\xf9"=>"\xd1\x99","\xfa"=>"\xd1\x9a","\xfb"=>"\xd1\x9b","\xfc"=>"\xd1\x9c","\xfd"=>"\xc2\xa7","\xfe"=>"\xd1\x9e","\xff"=>"\xd1\x9f"
+);
+
+global $utf8_to_iso_8859_5;
+$utf8_to_iso_8859_5 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xd0\x81"=>"\xa1","\xd0\x82"=>"\xa2","\xd0\x83"=>"\xa3","\xd0\x84"=>"\xa4","\xd0\x85"=>"\xa5","\xd0\x86"=>"\xa6","\xd0\x87"=>"\xa7",
+	"\xd0\x88"=>"\xa8","\xd0\x89"=>"\xa9","\xd0\x8a"=>"\xaa","\xd0\x8b"=>"\xab","\xd0\x8c"=>"\xac","\xc2\xad"=>"\xad","\xd0\x8e"=>"\xae","\xd0\x8f"=>"\xaf",
+	"\xd0\x90"=>"\xb0","\xd0\x91"=>"\xb1","\xd0\x92"=>"\xb2","\xd0\x93"=>"\xb3","\xd0\x94"=>"\xb4","\xd0\x95"=>"\xb5","\xd0\x96"=>"\xb6","\xd0\x97"=>"\xb7",
+	"\xd0\x98"=>"\xb8","\xd0\x99"=>"\xb9","\xd0\x9a"=>"\xba","\xd0\x9b"=>"\xbb","\xd0\x9c"=>"\xbc","\xd0\x9d"=>"\xbd","\xd0\x9e"=>"\xbe","\xd0\x9f"=>"\xbf",
+	"\xd0\xa0"=>"\xc0","\xd0\xa1"=>"\xc1","\xd0\xa2"=>"\xc2","\xd0\xa3"=>"\xc3","\xd0\xa4"=>"\xc4","\xd0\xa5"=>"\xc5","\xd0\xa6"=>"\xc6","\xd0\xa7"=>"\xc7",
+	"\xd0\xa8"=>"\xc8","\xd0\xa9"=>"\xc9","\xd0\xaa"=>"\xca","\xd0\xab"=>"\xcb","\xd0\xac"=>"\xcc","\xd0\xad"=>"\xcd","\xd0\xae"=>"\xce","\xd0\xaf"=>"\xcf",
+	"\xd0\xb0"=>"\xd0","\xd0\xb1"=>"\xd1","\xd0\xb2"=>"\xd2","\xd0\xb3"=>"\xd3","\xd0\xb4"=>"\xd4","\xd0\xb5"=>"\xd5","\xd0\xb6"=>"\xd6","\xd0\xb7"=>"\xd7",
+	"\xd0\xb8"=>"\xd8","\xd0\xb9"=>"\xd9","\xd0\xba"=>"\xda","\xd0\xbb"=>"\xdb","\xd0\xbc"=>"\xdc","\xd0\xbd"=>"\xdd","\xd0\xbe"=>"\xde","\xd0\xbf"=>"\xdf",
+	"\xd1\x80"=>"\xe0","\xd1\x81"=>"\xe1","\xd1\x82"=>"\xe2","\xd1\x83"=>"\xe3","\xd1\x84"=>"\xe4","\xd1\x85"=>"\xe5","\xd1\x86"=>"\xe6","\xd1\x87"=>"\xe7",
+	"\xd1\x88"=>"\xe8","\xd1\x89"=>"\xe9","\xd1\x8a"=>"\xea","\xd1\x8b"=>"\xeb","\xd1\x8c"=>"\xec","\xd1\x8d"=>"\xed","\xd1\x8e"=>"\xee","\xd1\x8f"=>"\xef",
+	"\xe2\x84\x96"=>"\xf0","\xd1\x91"=>"\xf1","\xd1\x92"=>"\xf2","\xd1\x93"=>"\xf3","\xd1\x94"=>"\xf4","\xd1\x95"=>"\xf5","\xd1\x96"=>"\xf6","\xd1\x97"=>"\xf7",
+	"\xd1\x98"=>"\xf8","\xd1\x99"=>"\xf9","\xd1\x9a"=>"\xfa","\xd1\x9b"=>"\xfb","\xd1\x9c"=>"\xfc","\xc2\xa7"=>"\xfd","\xd1\x9e"=>"\xfe","\xd1\x9f"=>"\xff"
+);
+global $iso_8859_6_to_utf8;
+$iso_8859_6_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa4"=>"\xc2\xa4","\xac"=>"\xd8\x8c","\xad"=>"\xc2\xad","\xbb"=>"\xd8\x9b","\xbf"=>"\xd8\x9f","\xc1"=>"\xd8\xa1","\xc2"=>"\xd8\xa2",
+	"\xc3"=>"\xd8\xa3","\xc4"=>"\xd8\xa4","\xc5"=>"\xd8\xa5","\xc6"=>"\xd8\xa6","\xc7"=>"\xd8\xa7","\xc8"=>"\xd8\xa8","\xc9"=>"\xd8\xa9","\xca"=>"\xd8\xaa",
+	"\xcb"=>"\xd8\xab","\xcc"=>"\xd8\xac","\xcd"=>"\xd8\xad","\xce"=>"\xd8\xae","\xcf"=>"\xd8\xaf","\xd0"=>"\xd8\xb0","\xd1"=>"\xd8\xb1","\xd2"=>"\xd8\xb2",
+	"\xd3"=>"\xd8\xb3","\xd4"=>"\xd8\xb4","\xd5"=>"\xd8\xb5","\xd6"=>"\xd8\xb6","\xd7"=>"\xd8\xb7","\xd8"=>"\xd8\xb8","\xd9"=>"\xd8\xb9","\xda"=>"\xd8\xba",
+	"\xe0"=>"\xd9\x80","\xe1"=>"\xd9\x81","\xe2"=>"\xd9\x82","\xe3"=>"\xd9\x83","\xe4"=>"\xd9\x84","\xe5"=>"\xd9\x85","\xe6"=>"\xd9\x86","\xe7"=>"\xd9\x87",
+	"\xe8"=>"\xd9\x88","\xe9"=>"\xd9\x89","\xea"=>"\xd9\x8a","\xeb"=>"\xd9\x8b","\xec"=>"\xd9\x8c","\xed"=>"\xd9\x8d","\xee"=>"\xd9\x8e","\xef"=>"\xd9\x8f",
+	"\xf0"=>"\xd9\x90","\xf1"=>"\xd9\x91","\xf2"=>"\xd9\x92"
+);
+global $utf8_to_iso_8859_6;
+$utf8_to_iso_8859_6 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc2\xa4"=>"\xa4","\xd8\x8c"=>"\xac","\xc2\xad"=>"\xad","\xd8\x9b"=>"\xbb","\xd8\x9f"=>"\xbf","\xd8\xa1"=>"\xc1","\xd8\xa2"=>"\xc2",
+	"\xd8\xa3"=>"\xc3","\xd8\xa4"=>"\xc4","\xd8\xa5"=>"\xc5","\xd8\xa6"=>"\xc6","\xd8\xa7"=>"\xc7","\xd8\xa8"=>"\xc8","\xd8\xa9"=>"\xc9","\xd8\xaa"=>"\xca",
+	"\xd8\xab"=>"\xcb","\xd8\xac"=>"\xcc","\xd8\xad"=>"\xcd","\xd8\xae"=>"\xce","\xd8\xaf"=>"\xcf","\xd8\xb0"=>"\xd0","\xd8\xb1"=>"\xd1","\xd8\xb2"=>"\xd2",
+	"\xd8\xb3"=>"\xd3","\xd8\xb4"=>"\xd4","\xd8\xb5"=>"\xd5","\xd8\xb6"=>"\xd6","\xd8\xb7"=>"\xd7","\xd8\xb8"=>"\xd8","\xd8\xb9"=>"\xd9","\xd8\xba"=>"\xda",
+	"\xd9\x80"=>"\xe0","\xd9\x81"=>"\xe1","\xd9\x82"=>"\xe2","\xd9\x83"=>"\xe3","\xd9\x84"=>"\xe4","\xd9\x85"=>"\xe5","\xd9\x86"=>"\xe6","\xd9\x87"=>"\xe7",
+	"\xd9\x88"=>"\xe8","\xd9\x89"=>"\xe9","\xd9\x8a"=>"\xea","\xd9\x8b"=>"\xeb","\xd9\x8c"=>"\xec","\xd9\x8d"=>"\xed","\xd9\x8e"=>"\xee","\xd9\x8f"=>"\xef",
+	"\xd9\x90"=>"\xf0","\xd9\x91"=>"\xf1","\xd9\x92"=>"\xf2"
+);
+global $iso_8859_7_to_utf8;
+$iso_8859_7_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xe2\x80\x98","\xa2"=>"\xe2\x80\x99","\xa3"=>"\xc2\xa3","\xa6"=>"\xc2\xa6","\xa7"=>"\xc2\xa7","\xa8"=>"\xc2\xa8","\xa9"=>"\xc2\xa9",
+	"\xab"=>"\xc2\xab","\xac"=>"\xc2\xac","\xad"=>"\xc2\xad","\xaf"=>"\xe2\x80\x95","\xb0"=>"\xc2\xb0","\xb1"=>"\xc2\xb1","\xb2"=>"\xc2\xb2","\xb3"=>"\xc2\xb3",
+	"\xb4"=>"\xce\x84","\xb5"=>"\xce\x85","\xb6"=>"\xce\x86","\xb7"=>"\xc2\xb7","\xb8"=>"\xce\x88","\xb9"=>"\xce\x89","\xba"=>"\xce\x8a","\xbb"=>"\xc2\xbb",
+	"\xbc"=>"\xce\x8c","\xbd"=>"\xc2\xbd","\xbe"=>"\xce\x8e","\xbf"=>"\xce\x8f","\xc0"=>"\xce\x90","\xc1"=>"\xce\x91","\xc2"=>"\xce\x92","\xc3"=>"\xce\x93",
+	"\xc4"=>"\xce\x94","\xc5"=>"\xce\x95","\xc6"=>"\xce\x96","\xc7"=>"\xce\x97","\xc8"=>"\xce\x98","\xc9"=>"\xce\x99","\xca"=>"\xce\x9a","\xcb"=>"\xce\x9b",
+	"\xcc"=>"\xce\x9c","\xcd"=>"\xce\x9d","\xce"=>"\xce\x9e","\xcf"=>"\xce\x9f","\xd0"=>"\xce\xa0","\xd1"=>"\xce\xa1","\xd3"=>"\xce\xa3","\xd4"=>"\xce\xa4",
+	"\xd5"=>"\xce\xa5","\xd6"=>"\xce\xa6","\xd7"=>"\xce\xa7","\xd8"=>"\xce\xa8","\xd9"=>"\xce\xa9","\xda"=>"\xce\xaa","\xdb"=>"\xce\xab","\xdc"=>"\xce\xac",
+	"\xdd"=>"\xce\xad","\xde"=>"\xce\xae","\xdf"=>"\xce\xaf","\xe0"=>"\xce\xb0","\xe1"=>"\xce\xb1","\xe2"=>"\xce\xb2","\xe3"=>"\xce\xb3","\xe4"=>"\xce\xb4",
+	"\xe5"=>"\xce\xb5","\xe6"=>"\xce\xb6","\xe7"=>"\xce\xb7","\xe8"=>"\xce\xb8","\xe9"=>"\xce\xb9","\xea"=>"\xce\xba","\xeb"=>"\xce\xbb","\xec"=>"\xce\xbc",
+	"\xed"=>"\xce\xbd","\xee"=>"\xce\xbe","\xef"=>"\xce\xbf","\xf0"=>"\xcf\x80","\xf1"=>"\xcf\x81","\xf2"=>"\xcf\x82","\xf3"=>"\xcf\x83","\xf4"=>"\xcf\x84",
+	"\xf5"=>"\xcf\x85","\xf6"=>"\xcf\x86","\xf7"=>"\xcf\x87","\xf8"=>"\xcf\x88","\xf9"=>"\xcf\x89","\xfa"=>"\xcf\x8a","\xfb"=>"\xcf\x8b","\xfc"=>"\xcf\x8c",
+	"\xfd"=>"\xcf\x8d","\xfe"=>"\xcf\x8e"
+);
+global $utf8_to_iso_8859_7;
+$utf8_to_iso_8859_7 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xe2\x80\x98"=>"\xa1","\xe2\x80\x99"=>"\xa2","\xc2\xa3"=>"\xa3","\xc2\xa6"=>"\xa6","\xc2\xa7"=>"\xa7","\xc2\xa8"=>"\xa8","\xc2\xa9"=>"\xa9",
+	"\xc2\xab"=>"\xab","\xc2\xac"=>"\xac","\xc2\xad"=>"\xad","\xe2\x80\x95"=>"\xaf","\xc2\xb0"=>"\xb0","\xc2\xb1"=>"\xb1","\xc2\xb2"=>"\xb2","\xc2\xb3"=>"\xb3",
+	"\xce\x84"=>"\xb4","\xce\x85"=>"\xb5","\xce\x86"=>"\xb6","\xc2\xb7"=>"\xb7","\xce\x88"=>"\xb8","\xce\x89"=>"\xb9","\xce\x8a"=>"\xba","\xc2\xbb"=>"\xbb",
+	"\xce\x8c"=>"\xbc","\xc2\xbd"=>"\xbd","\xce\x8e"=>"\xbe","\xce\x8f"=>"\xbf","\xce\x90"=>"\xc0","\xce\x91"=>"\xc1","\xce\x92"=>"\xc2","\xce\x93"=>"\xc3",
+	"\xce\x94"=>"\xc4","\xce\x95"=>"\xc5","\xce\x96"=>"\xc6","\xce\x97"=>"\xc7","\xce\x98"=>"\xc8","\xce\x99"=>"\xc9","\xce\x9a"=>"\xca","\xce\x9b"=>"\xcb",
+	"\xce\x9c"=>"\xcc","\xce\x9d"=>"\xcd","\xce\x9e"=>"\xce","\xce\x9f"=>"\xcf","\xce\xa0"=>"\xd0","\xce\xa1"=>"\xd1","\xce\xa3"=>"\xd3","\xce\xa4"=>"\xd4",
+	"\xce\xa5"=>"\xd5","\xce\xa6"=>"\xd6","\xce\xa7"=>"\xd7","\xce\xa8"=>"\xd8","\xce\xa9"=>"\xd9","\xce\xaa"=>"\xda","\xce\xab"=>"\xdb","\xce\xac"=>"\xdc",
+	"\xce\xad"=>"\xdd","\xce\xae"=>"\xde","\xce\xaf"=>"\xdf","\xce\xb0"=>"\xe0","\xce\xb1"=>"\xe1","\xce\xb2"=>"\xe2","\xce\xb3"=>"\xe3","\xce\xb4"=>"\xe4",
+	"\xce\xb5"=>"\xe5","\xce\xb6"=>"\xe6","\xce\xb7"=>"\xe7","\xce\xb8"=>"\xe8","\xce\xb9"=>"\xe9","\xce\xba"=>"\xea","\xce\xbb"=>"\xeb","\xce\xbc"=>"\xec",
+	"\xce\xbd"=>"\xed","\xce\xbe"=>"\xee","\xce\xbf"=>"\xef","\xcf\x80"=>"\xf0","\xcf\x81"=>"\xf1","\xcf\x82"=>"\xf2","\xcf\x83"=>"\xf3","\xcf\x84"=>"\xf4",
+	"\xcf\x85"=>"\xf5","\xcf\x86"=>"\xf6","\xcf\x87"=>"\xf7","\xcf\x88"=>"\xf8","\xcf\x89"=>"\xf9","\xcf\x8a"=>"\xfa","\xcf\x8b"=>"\xfb","\xcf\x8c"=>"\xfc",
+	"\xcf\x8d"=>"\xfd","\xcf\x8e"=>"\xfe"
+);
+global $iso_8859_8_to_utf8;
+$iso_8859_8_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa2"=>"\xc2\xa2","\xa3"=>"\xc2\xa3","\xa4"=>"\xc2\xa4","\xa5"=>"\xc2\xa5","\xa6"=>"\xc2\xa6","\xa7"=>"\xc2\xa7","\xa8"=>"\xc2\xa8",
+	"\xa9"=>"\xc2\xa9","\xaa"=>"\xc3\x97","\xab"=>"\xc2\xab","\xac"=>"\xc2\xac","\xad"=>"\xc2\xad","\xae"=>"\xc2\xae","\xaf"=>"\xc2\xaf","\xb0"=>"\xc2\xb0",
+	"\xb1"=>"\xc2\xb1","\xb2"=>"\xc2\xb2","\xb3"=>"\xc2\xb3","\xb4"=>"\xc2\xb4","\xb5"=>"\xc2\xb5","\xb6"=>"\xc2\xb6","\xb7"=>"\xc2\xb7","\xb8"=>"\xc2\xb8",
+	"\xb9"=>"\xc2\xb9","\xba"=>"\xc3\xb7","\xbb"=>"\xc2\xbb","\xbc"=>"\xc2\xbc","\xbd"=>"\xc2\xbd","\xbe"=>"\xc2\xbe","\xdf"=>"\xe2\x80\x97","\xe0"=>"\xd7\x90",
+	"\xe1"=>"\xd7\x91","\xe2"=>"\xd7\x92","\xe3"=>"\xd7\x93","\xe4"=>"\xd7\x94","\xe5"=>"\xd7\x95","\xe6"=>"\xd7\x96","\xe7"=>"\xd7\x97","\xe8"=>"\xd7\x98",
+	"\xe9"=>"\xd7\x99","\xea"=>"\xd7\x9a","\xeb"=>"\xd7\x9b","\xec"=>"\xd7\x9c","\xed"=>"\xd7\x9d","\xee"=>"\xd7\x9e","\xef"=>"\xd7\x9f","\xf0"=>"\xd7\xa0",
+	"\xf1"=>"\xd7\xa1","\xf2"=>"\xd7\xa2","\xf3"=>"\xd7\xa3","\xf4"=>"\xd7\xa4","\xf5"=>"\xd7\xa5","\xf6"=>"\xd7\xa6","\xf7"=>"\xd7\xa7","\xf8"=>"\xd7\xa8",
+	"\xf9"=>"\xd7\xa9","\xfa"=>"\xd7\xaa","\xfd"=>"\xe2\x80\x8e","\xfe"=>"\xe2\x80\x8f"
+);
+global $utf8_to_iso_8859_8;
+$utf8_to_iso_8859_8 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc2\xa2"=>"\xa2","\xc2\xa3"=>"\xa3","\xc2\xa4"=>"\xa4","\xc2\xa5"=>"\xa5","\xc2\xa6"=>"\xa6","\xc2\xa7"=>"\xa7","\xc2\xa8"=>"\xa8",
+	"\xc2\xa9"=>"\xa9","\xc3\x97"=>"\xaa","\xc2\xab"=>"\xab","\xc2\xac"=>"\xac","\xc2\xad"=>"\xad","\xc2\xae"=>"\xae","\xc2\xaf"=>"\xaf","\xc2\xb0"=>"\xb0",
+	"\xc2\xb1"=>"\xb1","\xc2\xb2"=>"\xb2","\xc2\xb3"=>"\xb3","\xc2\xb4"=>"\xb4","\xc2\xb5"=>"\xb5","\xc2\xb6"=>"\xb6","\xc2\xb7"=>"\xb7","\xc2\xb8"=>"\xb8",
+	"\xc2\xb9"=>"\xb9","\xc3\xb7"=>"\xba","\xc2\xbb"=>"\xbb","\xc2\xbc"=>"\xbc","\xc2\xbd"=>"\xbd","\xc2\xbe"=>"\xbe","\xe2\x80\x97"=>"\xdf","\xd7\x90"=>"\xe0",
+	"\xd7\x91"=>"\xe1","\xd7\x92"=>"\xe2","\xd7\x93"=>"\xe3","\xd7\x94"=>"\xe4","\xd7\x95"=>"\xe5","\xd7\x96"=>"\xe6","\xd7\x97"=>"\xe7","\xd7\x98"=>"\xe8",
+	"\xd7\x99"=>"\xe9","\xd7\x9a"=>"\xea","\xd7\x9b"=>"\xeb","\xd7\x9c"=>"\xec","\xd7\x9d"=>"\xed","\xd7\x9e"=>"\xee","\xd7\x9f"=>"\xef","\xd7\xa0"=>"\xf0",
+	"\xd7\xa1"=>"\xf1","\xd7\xa2"=>"\xf2","\xd7\xa3"=>"\xf3","\xd7\xa4"=>"\xf4","\xd7\xa5"=>"\xf5","\xd7\xa6"=>"\xf6","\xd7\xa7"=>"\xf7","\xd7\xa8"=>"\xf8",
+	"\xd7\xa9"=>"\xf9","\xd7\xaa"=>"\xfa","\xe2\x80\x8e"=>"\xfd","\xe2\x80\x8f"=>"\xfe"
+);
+global $iso_8859_9_to_utf8;
+$iso_8859_9_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xc2\xa1","\xa2"=>"\xc2\xa2","\xa3"=>"\xc2\xa3","\xa4"=>"\xc2\xa4","\xa5"=>"\xc2\xa5","\xa6"=>"\xc2\xa6","\xa7"=>"\xc2\xa7",
+	"\xa8"=>"\xc2\xa8","\xa9"=>"\xc2\xa9","\xaa"=>"\xc2\xaa","\xab"=>"\xc2\xab","\xac"=>"\xc2\xac","\xad"=>"\xc2\xad","\xae"=>"\xc2\xae","\xaf"=>"\xc2\xaf",
+	"\xb0"=>"\xc2\xb0","\xb1"=>"\xc2\xb1","\xb2"=>"\xc2\xb2","\xb3"=>"\xc2\xb3","\xb4"=>"\xc2\xb4","\xb5"=>"\xc2\xb5","\xb6"=>"\xc2\xb6","\xb7"=>"\xc2\xb7",
+	"\xb8"=>"\xc2\xb8","\xb9"=>"\xc2\xb9","\xba"=>"\xc2\xba","\xbb"=>"\xc2\xbb","\xbc"=>"\xc2\xbc","\xbd"=>"\xc2\xbd","\xbe"=>"\xc2\xbe","\xbf"=>"\xc2\xbf",
+	"\xc0"=>"\xc3\x80","\xc1"=>"\xc3\x81","\xc2"=>"\xc3\x82","\xc3"=>"\xc3\x83","\xc4"=>"\xc3\x84","\xc5"=>"\xc3\x85","\xc6"=>"\xc3\x86","\xc7"=>"\xc3\x87",
+	"\xc8"=>"\xc3\x88","\xc9"=>"\xc3\x89","\xca"=>"\xc3\x8a","\xcb"=>"\xc3\x8b","\xcc"=>"\xc3\x8c","\xcd"=>"\xc3\x8d","\xce"=>"\xc3\x8e","\xcf"=>"\xc3\x8f",
+	"\xd0"=>"\xc4\x9e","\xd1"=>"\xc3\x91","\xd2"=>"\xc3\x92","\xd3"=>"\xc3\x93","\xd4"=>"\xc3\x94","\xd5"=>"\xc3\x95","\xd6"=>"\xc3\x96","\xd7"=>"\xc3\x97",
+	"\xd8"=>"\xc3\x98","\xd9"=>"\xc3\x99","\xda"=>"\xc3\x9a","\xdb"=>"\xc3\x9b","\xdc"=>"\xc3\x9c","\xdd"=>"\xc4\xb0","\xde"=>"\xc5\x9e","\xdf"=>"\xc3\x9f",
+	"\xe0"=>"\xc3\xa0","\xe1"=>"\xc3\xa1","\xe2"=>"\xc3\xa2","\xe3"=>"\xc3\xa3","\xe4"=>"\xc3\xa4","\xe5"=>"\xc3\xa5","\xe6"=>"\xc3\xa6","\xe7"=>"\xc3\xa7",
+	"\xe8"=>"\xc3\xa8","\xe9"=>"\xc3\xa9","\xea"=>"\xc3\xaa","\xeb"=>"\xc3\xab","\xec"=>"\xc3\xac","\xed"=>"\xc3\xad","\xee"=>"\xc3\xae","\xef"=>"\xc3\xaf",
+	"\xf0"=>"\xc4\x9f","\xf1"=>"\xc3\xb1","\xf2"=>"\xc3\xb2","\xf3"=>"\xc3\xb3","\xf4"=>"\xc3\xb4","\xf5"=>"\xc3\xb5","\xf6"=>"\xc3\xb6","\xf7"=>"\xc3\xb7",
+	"\xf8"=>"\xc3\xb8","\xf9"=>"\xc3\xb9","\xfa"=>"\xc3\xba","\xfb"=>"\xc3\xbb","\xfc"=>"\xc3\xbc","\xfd"=>"\xc4\xb1","\xfe"=>"\xc5\x9f","\xff"=>"\xc3\xbf"
+);
+global $utf8_to_iso_8859_9;
+$utf8_to_iso_8859_9 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc2\xa1"=>"\xa1","\xc2\xa2"=>"\xa2","\xc2\xa3"=>"\xa3","\xc2\xa4"=>"\xa4","\xc2\xa5"=>"\xa5","\xc2\xa6"=>"\xa6","\xc2\xa7"=>"\xa7",
+	"\xc2\xa8"=>"\xa8","\xc2\xa9"=>"\xa9","\xc2\xaa"=>"\xaa","\xc2\xab"=>"\xab","\xc2\xac"=>"\xac","\xc2\xad"=>"\xad","\xc2\xae"=>"\xae","\xc2\xaf"=>"\xaf",
+	"\xc2\xb0"=>"\xb0","\xc2\xb1"=>"\xb1","\xc2\xb2"=>"\xb2","\xc2\xb3"=>"\xb3","\xc2\xb4"=>"\xb4","\xc2\xb5"=>"\xb5","\xc2\xb6"=>"\xb6","\xc2\xb7"=>"\xb7",
+	"\xc2\xb8"=>"\xb8","\xc2\xb9"=>"\xb9","\xc2\xba"=>"\xba","\xc2\xbb"=>"\xbb","\xc2\xbc"=>"\xbc","\xc2\xbd"=>"\xbd","\xc2\xbe"=>"\xbe","\xc2\xbf"=>"\xbf",
+	"\xc3\x80"=>"\xc0","\xc3\x81"=>"\xc1","\xc3\x82"=>"\xc2","\xc3\x83"=>"\xc3","\xc3\x84"=>"\xc4","\xc3\x85"=>"\xc5","\xc3\x86"=>"\xc6","\xc3\x87"=>"\xc7",
+	"\xc3\x88"=>"\xc8","\xc3\x89"=>"\xc9","\xc3\x8a"=>"\xca","\xc3\x8b"=>"\xcb","\xc3\x8c"=>"\xcc","\xc3\x8d"=>"\xcd","\xc3\x8e"=>"\xce","\xc3\x8f"=>"\xcf",
+	"\xc4\x9e"=>"\xd0","\xc3\x91"=>"\xd1","\xc3\x92"=>"\xd2","\xc3\x93"=>"\xd3","\xc3\x94"=>"\xd4","\xc3\x95"=>"\xd5","\xc3\x96"=>"\xd6","\xc3\x97"=>"\xd7",
+	"\xc3\x98"=>"\xd8","\xc3\x99"=>"\xd9","\xc3\x9a"=>"\xda","\xc3\x9b"=>"\xdb","\xc3\x9c"=>"\xdc","\xc4\xb0"=>"\xdd","\xc5\x9e"=>"\xde","\xc3\x9f"=>"\xdf",
+	"\xc3\xa0"=>"\xe0","\xc3\xa1"=>"\xe1","\xc3\xa2"=>"\xe2","\xc3\xa3"=>"\xe3","\xc3\xa4"=>"\xe4","\xc3\xa5"=>"\xe5","\xc3\xa6"=>"\xe6","\xc3\xa7"=>"\xe7",
+	"\xc3\xa8"=>"\xe8","\xc3\xa9"=>"\xe9","\xc3\xaa"=>"\xea","\xc3\xab"=>"\xeb","\xc3\xac"=>"\xec","\xc3\xad"=>"\xed","\xc3\xae"=>"\xee","\xc3\xaf"=>"\xef",
+	"\xc4\x9f"=>"\xf0","\xc3\xb1"=>"\xf1","\xc3\xb2"=>"\xf2","\xc3\xb3"=>"\xf3","\xc3\xb4"=>"\xf4","\xc3\xb5"=>"\xf5","\xc3\xb6"=>"\xf6","\xc3\xb7"=>"\xf7",
+	"\xc3\xb8"=>"\xf8","\xc3\xb9"=>"\xf9","\xc3\xba"=>"\xfa","\xc3\xbb"=>"\xfb","\xc3\xbc"=>"\xfc","\xc4\xb1"=>"\xfd","\xc5\x9f"=>"\xfe","\xc3\xbf"=>"\xff"
+);
+global $iso_8859_10_to_utf8;
+$iso_8859_10_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xc4\x84","\xa2"=>"\xc4\x92","\xa3"=>"\xc4\xa2","\xa4"=>"\xc4\xaa","\xa5"=>"\xc4\xa8","\xa6"=>"\xc4\xb6","\xa7"=>"\xc2\xa7",
+	"\xa8"=>"\xc4\xbb","\xa9"=>"\xc4\x90","\xaa"=>"\xc5\xa0","\xab"=>"\xc5\xa6","\xac"=>"\xc5\xbd","\xad"=>"\xc2\xad","\xae"=>"\xc5\xaa","\xaf"=>"\xc5\x8a",
+	"\xb0"=>"\xc2\xb0","\xb1"=>"\xc4\x85","\xb2"=>"\xc4\x93","\xb3"=>"\xc4\xa3","\xb4"=>"\xc4\xab","\xb5"=>"\xc4\xa9","\xb6"=>"\xc4\xb7","\xb7"=>"\xc2\xb7",
+	"\xb8"=>"\xc4\xbc","\xb9"=>"\xc4\x91","\xba"=>"\xc5\xa1","\xbb"=>"\xc5\xa7","\xbc"=>"\xc5\xbe","\xbd"=>"\xe2\x80\x95","\xbe"=>"\xc5\xab","\xbf"=>"\xc5\x8b",
+	"\xc0"=>"\xc4\x80","\xc1"=>"\xc3\x81","\xc2"=>"\xc3\x82","\xc3"=>"\xc3\x83","\xc4"=>"\xc3\x84","\xc5"=>"\xc3\x85","\xc6"=>"\xc3\x86","\xc7"=>"\xc4\xae",
+	"\xc8"=>"\xc4\x8c","\xc9"=>"\xc3\x89","\xca"=>"\xc4\x98","\xcb"=>"\xc3\x8b","\xcc"=>"\xc4\x96","\xcd"=>"\xc3\x8d","\xce"=>"\xc3\x8e","\xcf"=>"\xc3\x8f",
+	"\xd0"=>"\xc3\x90","\xd1"=>"\xc5\x85","\xd2"=>"\xc5\x8c","\xd3"=>"\xc3\x93","\xd4"=>"\xc3\x94","\xd5"=>"\xc3\x95","\xd6"=>"\xc3\x96","\xd7"=>"\xc5\xa8",
+	"\xd8"=>"\xc3\x98","\xd9"=>"\xc5\xb2","\xda"=>"\xc3\x9a","\xdb"=>"\xc3\x9b","\xdc"=>"\xc3\x9c","\xdd"=>"\xc3\x9d","\xde"=>"\xc3\x9e","\xdf"=>"\xc3\x9f",
+	"\xe0"=>"\xc4\x81","\xe1"=>"\xc3\xa1","\xe2"=>"\xc3\xa2","\xe3"=>"\xc3\xa3","\xe4"=>"\xc3\xa4","\xe5"=>"\xc3\xa5","\xe6"=>"\xc3\xa6","\xe7"=>"\xc4\xaf",
+	"\xe8"=>"\xc4\x8d","\xe9"=>"\xc3\xa9","\xea"=>"\xc4\x99","\xeb"=>"\xc3\xab","\xec"=>"\xc4\x97","\xed"=>"\xc3\xad","\xee"=>"\xc3\xae","\xef"=>"\xc3\xaf",
+	"\xf0"=>"\xc3\xb0","\xf1"=>"\xc5\x86","\xf2"=>"\xc5\x8d","\xf3"=>"\xc3\xb3","\xf4"=>"\xc3\xb4","\xf5"=>"\xc3\xb5","\xf6"=>"\xc3\xb6","\xf7"=>"\xc5\xa9",
+	"\xf8"=>"\xc3\xb8","\xf9"=>"\xc5\xb3","\xfa"=>"\xc3\xba","\xfb"=>"\xc3\xbb","\xfc"=>"\xc3\xbc","\xfd"=>"\xc3\xbd","\xfe"=>"\xc3\xbe","\xff"=>"\xc4\xb8"
+);
+global $utf8_to_iso_8859_10;
+$utf8_to_iso_8859_10 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xc4\x84"=>"\xa1","\xc4\x92"=>"\xa2","\xc4\xa2"=>"\xa3","\xc4\xaa"=>"\xa4","\xc4\xa8"=>"\xa5","\xc4\xb6"=>"\xa6","\xc2\xa7"=>"\xa7",
+	"\xc4\xbb"=>"\xa8","\xc4\x90"=>"\xa9","\xc5\xa0"=>"\xaa","\xc5\xa6"=>"\xab","\xc5\xbd"=>"\xac","\xc2\xad"=>"\xad","\xc5\xaa"=>"\xae","\xc5\x8a"=>"\xaf",
+	"\xc2\xb0"=>"\xb0","\xc4\x85"=>"\xb1","\xc4\x93"=>"\xb2","\xc4\xa3"=>"\xb3","\xc4\xab"=>"\xb4","\xc4\xa9"=>"\xb5","\xc4\xb7"=>"\xb6","\xc2\xb7"=>"\xb7",
+	"\xc4\xbc"=>"\xb8","\xc4\x91"=>"\xb9","\xc5\xa1"=>"\xba","\xc5\xa7"=>"\xbb","\xc5\xbe"=>"\xbc","\xe2\x80\x95"=>"\xbd","\xc5\xab"=>"\xbe","\xc5\x8b"=>"\xbf",
+	"\xc4\x80"=>"\xc0","\xc3\x81"=>"\xc1","\xc3\x82"=>"\xc2","\xc3\x83"=>"\xc3","\xc3\x84"=>"\xc4","\xc3\x85"=>"\xc5","\xc3\x86"=>"\xc6","\xc4\xae"=>"\xc7",
+	"\xc4\x8c"=>"\xc8","\xc3\x89"=>"\xc9","\xc4\x98"=>"\xca","\xc3\x8b"=>"\xcb","\xc4\x96"=>"\xcc","\xc3\x8d"=>"\xcd","\xc3\x8e"=>"\xce","\xc3\x8f"=>"\xcf",
+	"\xc3\x90"=>"\xd0","\xc5\x85"=>"\xd1","\xc5\x8c"=>"\xd2","\xc3\x93"=>"\xd3","\xc3\x94"=>"\xd4","\xc3\x95"=>"\xd5","\xc3\x96"=>"\xd6","\xc5\xa8"=>"\xd7",
+	"\xc3\x98"=>"\xd8","\xc5\xb2"=>"\xd9","\xc3\x9a"=>"\xda","\xc3\x9b"=>"\xdb","\xc3\x9c"=>"\xdc","\xc3\x9d"=>"\xdd","\xc3\x9e"=>"\xde","\xc3\x9f"=>"\xdf",
+	"\xc4\x81"=>"\xe0","\xc3\xa1"=>"\xe1","\xc3\xa2"=>"\xe2","\xc3\xa3"=>"\xe3","\xc3\xa4"=>"\xe4","\xc3\xa5"=>"\xe5","\xc3\xa6"=>"\xe6","\xc4\xaf"=>"\xe7",
+	"\xc4\x8d"=>"\xe8","\xc3\xa9"=>"\xe9","\xc4\x99"=>"\xea","\xc3\xab"=>"\xeb","\xc4\x97"=>"\xec","\xc3\xad"=>"\xed","\xc3\xae"=>"\xee","\xc3\xaf"=>"\xef",
+	"\xc3\xb0"=>"\xf0","\xc5\x86"=>"\xf1","\xc5\x8d"=>"\xf2","\xc3\xb3"=>"\xf3","\xc3\xb4"=>"\xf4","\xc3\xb5"=>"\xf5","\xc3\xb6"=>"\xf6","\xc5\xa9"=>"\xf7",
+	"\xc3\xb8"=>"\xf8","\xc5\xb3"=>"\xf9","\xc3\xba"=>"\xfa","\xc3\xbb"=>"\xfb","\xc3\xbc"=>"\xfc","\xc3\xbd"=>"\xfd","\xc3\xbe"=>"\xfe","\xc4\xb8"=>"\xff"
+);
+global $iso_8859_11_to_utf8;
+$iso_8859_11_to_utf8 = array(
+	"\x80"=>"\xc2\x80","\x81"=>"\xc2\x81","\x82"=>"\xc2\x82","\x83"=>"\xc2\x83","\x84"=>"\xc2\x84","\x85"=>"\xc2\x85","\x86"=>"\xc2\x86","\x87"=>"\xc2\x87",
+	"\x88"=>"\xc2\x88","\x89"=>"\xc2\x89","\x8a"=>"\xc2\x8a","\x8b"=>"\xc2\x8b","\x8c"=>"\xc2\x8c","\x8d"=>"\xc2\x8d","\x8e"=>"\xc2\x8e","\x8f"=>"\xc2\x8f",
+	"\x90"=>"\xc2\x90","\x91"=>"\xc2\x91","\x92"=>"\xc2\x92","\x93"=>"\xc2\x93","\x94"=>"\xc2\x94","\x95"=>"\xc2\x95","\x96"=>"\xc2\x96","\x97"=>"\xc2\x97",
+	"\x98"=>"\xc2\x98","\x99"=>"\xc2\x99","\x9a"=>"\xc2\x9a","\x9b"=>"\xc2\x9b","\x9c"=>"\xc2\x9c","\x9d"=>"\xc2\x9d","\x9e"=>"\xc2\x9e","\x9f"=>"\xc2\x9f",
+	"\xa0"=>"\xc2\xa0","\xa1"=>"\xe0\xb8\x81","\xa2"=>"\xe0\xb8\x82","\xa3"=>"\xe0\xb8\x83","\xa4"=>"\xe0\xb8\x84","\xa5"=>"\xe0\xb8\x85","\xa6"=>"\xe0\xb8\x86","\xa7"=>"\xe0\xb8\x87",
+	"\xa8"=>"\xe0\xb8\x88","\xa9"=>"\xe0\xb8\x89","\xaa"=>"\xe0\xb8\x8a","\xab"=>"\xe0\xb8\x8b","\xac"=>"\xe0\xb8\x8c","\xad"=>"\xe0\xb8\x8d","\xae"=>"\xe0\xb8\x8e","\xaf"=>"\xe0\xb8\x8f",
+	"\xb0"=>"\xe0\xb8\x90","\xb1"=>"\xe0\xb8\x91","\xb2"=>"\xe0\xb8\x92","\xb3"=>"\xe0\xb8\x93","\xb4"=>"\xe0\xb8\x94","\xb5"=>"\xe0\xb8\x95","\xb6"=>"\xe0\xb8\x96","\xb7"=>"\xe0\xb8\x97",
+	"\xb8"=>"\xe0\xb8\x98","\xb9"=>"\xe0\xb8\x99","\xba"=>"\xe0\xb8\x9a","\xbb"=>"\xe0\xb8\x9b","\xbc"=>"\xe0\xb8\x9c","\xbd"=>"\xe0\xb8\x9d","\xbe"=>"\xe0\xb8\x9e","\xbf"=>"\xe0\xb8\x9f",
+	"\xc0"=>"\xe0\xb8\xa0","\xc1"=>"\xe0\xb8\xa1","\xc2"=>"\xe0\xb8\xa2","\xc3"=>"\xe0\xb8\xa3","\xc4"=>"\xe0\xb8\xa4","\xc5"=>"\xe0\xb8\xa5","\xc6"=>"\xe0\xb8\xa6","\xc7"=>"\xe0\xb8\xa7",
+	"\xc8"=>"\xe0\xb8\xa8","\xc9"=>"\xe0\xb8\xa9","\xca"=>"\xe0\xb8\xaa","\xcb"=>"\xe0\xb8\xab","\xcc"=>"\xe0\xb8\xac","\xcd"=>"\xe0\xb8\xad","\xce"=>"\xe0\xb8\xae","\xcf"=>"\xe0\xb8\xaf",
+	"\xd0"=>"\xe0\xb8\xb0","\xd1"=>"\xe0\xb8\xb1","\xd2"=>"\xe0\xb8\xb2","\xd3"=>"\xe0\xb8\xb3","\xd4"=>"\xe0\xb8\xb4","\xd5"=>"\xe0\xb8\xb5","\xd6"=>"\xe0\xb8\xb6","\xd7"=>"\xe0\xb8\xb7",
+	"\xd8"=>"\xe0\xb8\xb8","\xd9"=>"\xe0\xb8\xb9","\xda"=>"\xe0\xb8\xba","\xdf"=>"\xe0\xb8\xbf","\xe0"=>"\xe0\xb9\x80","\xe1"=>"\xe0\xb9\x81","\xe2"=>"\xe0\xb9\x82","\xe3"=>"\xe0\xb9\x83",
+	"\xe4"=>"\xe0\xb9\x84","\xe5"=>"\xe0\xb9\x85","\xe6"=>"\xe0\xb9\x86","\xe7"=>"\xe0\xb9\x87","\xe8"=>"\xe0\xb9\x88","\xe9"=>"\xe0\xb9\x89","\xea"=>"\xe0\xb9\x8a","\xeb"=>"\xe0\xb9\x8b",
+	"\xec"=>"\xe0\xb9\x8c","\xed"=>"\xe0\xb9\x8d","\xee"=>"\xe0\xb9\x8e","\xef"=>"\xe0\xb9\x8f","\xf0"=>"\xe0\xb9\x90","\xf1"=>"\xe0\xb9\x91","\xf2"=>"\xe0\xb9\x92","\xf3"=>"\xe0\xb9\x93",
+	"\xf4"=>"\xe0\xb9\x94","\xf5"=>"\xe0\xb9\x95","\xf6"=>"\xe0\xb9\x96","\xf7"=>"\xe0\xb9\x97","\xf8"=>"\xe0\xb9\x98","\xf9"=>"\xe0\xb9\x99","\xfa"=>"\xe0\xb9\x9a","\xfb"=>"\xe0\xb9\x9b"
+);
+global $utf8_to_iso_8859_11;
+$utf8_to_iso_8859_11 = array(
+	"\xc2\x80"=>"\x80","\xc2\x81"=>"\x81","\xc2\x82"=>"\x82","\xc2\x83"=>"\x83","\xc2\x84"=>"\x84","\xc2\x85"=>"\x85","\xc2\x86"=>"\x86","\xc2\x87"=>"\x87",
+	"\xc2\x88"=>"\x88","\xc2\x89"=>"\x89","\xc2\x8a"=>"\x8a","\xc2\x8b"=>"\x8b","\xc2\x8c"=>"\x8c","\xc2\x8d"=>"\x8d","\xc2\x8e"=>"\x8e","\xc2\x8f"=>"\x8f",
+	"\xc2\x90"=>"\x90","\xc2\x91"=>"\x91","\xc2\x92"=>"\x92","\xc2\x93"=>"\x93","\xc2\x94"=>"\x94","\xc2\x95"=>"\x95","\xc2\x96"=>"\x96","\xc2\x97"=>"\x97",
+	"\xc2\x98"=>"\x98","\xc2\x99"=>"\x99","\xc2\x9a"=>"\x9a","\xc2\x9b"=>"\x9b","\xc2\x9c"=>"\x9c","\xc2\x9d"=>"\x9d","\xc2\x9e"=>"\x9e","\xc2\x9f"=>"\x9f",
+	"\xc2\xa0"=>"\xa0","\xe0\xb8\x81"=>"\xa1","\xe0\xb8\x82"=>"\xa2","\xe0\xb8\x83"=>"\xa3","\xe0\xb8\x84"=>"\xa4","\xe0\xb8\x85"=>"\xa5","\xe0\xb8\x86"=>"\xa6","\xe0\xb8\x87"=>"\xa7",
+	"\xe0\xb8\x88"=>"\xa8","\xe0\xb8\x89"=>"\xa9","\xe0\xb8\x8a"=>"\xaa","\xe0\xb8\x8b"=>"\xab","\xe0\xb8\x8c"=>"\xac","\xe0\xb8\x8d"=>"\xad","\xe0\xb8\x8e"=>"\xae","\xe0\xb8\x8f"=>"\xaf",
+	"\xe0\xb8\x90"=>"\xb0","\xe0\xb8\x91"=>"\xb1","\xe0\xb8\x92"=>"\xb2","\xe0\xb8\x93"=>"\xb3","\xe0\xb8\x94"=>"\xb4","\xe0\xb8\x95"=>"\xb5","\xe0\xb8\x96"=>"\xb6","\xe0\xb8\x97"=>"\xb7",
+	"\xe0\xb8\x98"=>"\xb8","\xe0\xb8\x99"=>"\xb9","\xe0\xb8\x9a"=>"\xba","\xe0\xb8\x9b"=>"\xbb","\xe0\xb8\x9c"=>"\xbc","\xe0\xb8\x9d"=>"\xbd","\xe0\xb8\x9e"=>"\xbe","\xe0\xb8\x9f"=>"\xbf",
+	"\xe0\xb8\xa0"=>"\xc0","\xe0\xb8\xa1"=>"\xc1","\xe0\xb8\xa2"=>"\xc2","\xe0\xb8\xa3"=>"\xc3","\xe0\xb8\xa4"=>"\xc4","\xe0\xb8\xa5"=>"\xc5","\xe0\xb8\xa6"=>"\xc6","\xe0\xb8\xa7"=>"\xc7",
+	"\xe0\xb8\xa8"=>"\xc8","\xe0\xb8\xa9"=>"\xc9","\xe0\xb8\xaa"=>"\xca","\xe0\xb8\xab"=>"\xcb","\xe0\xb8\xac"=>"\xcc","\xe0\xb8\xad"=>"\xcd","\xe0\xb8\xae"=>"\xce","\xe0\xb8\xaf"=>"\xcf",
+	"\xe0\xb8\xb0"=>"\xd0","\xe0\xb8\xb1"=>"\xd1","\xe0\xb8\xb2"=>"\xd2","\xe0\xb8\xb3"=>"\xd3","\xe0\xb8\xb4"=>"\xd4","\xe0\xb8\xb5"=>"\xd5","\xe0\xb8\xb6"=>"\xd6","\xe0\xb8\xb7"=>"\xd7",
+	"\xe0\xb8\xb8"=>"\xd8","\xe0\xb8\xb9"=>"\xd9","\xe0\xb8\xba"=>"\xda","\xe0\xb8\xbf"=>"\xdf","\xe0\xb9\x80"=>"\xe0","\xe0\xb9\x81"=>"\xe1","\xe0\xb9\x82"=>"\xe2","\xe0\xb9\x83"=>"\xe3",
+	"\xe0\xb9\x84"=>"\xe4","\xe0\xb9\x85"=>"\xe5","\xe0\xb9\x86"=>"\xe6","\xe0\xb9\x87"=>"\xe7","\xe0\xb9\x88"=>"\xe8","\xe0\xb9\x89"=>"\xe9","\xe0\xb9\x8a"=>"\xea","\xe0\xb9\x8b"=>"\xeb",
+	"\xe0\xb9\x8c"=>"\xec","\xe0\xb9\x8d"=>"\xed","\xe0\xb9\x8e"=>"\xee","\xe0\xb9\x8f"=>"\xef","\xe0\xb9\x90"=>"\xf0","\xe0\xb9\x91"=>"\xf1","\xe0\xb9\x92"=>"\xf2","\xe0\xb9\x93"=>"\xf3",
+	"\xe0\xb9\x94"=>"\xf4","\xe0\xb9\x95"=>"\xf5","\xe0\xb9\x96"=>"\xf6","\xe0\xb9\x97"=>"\xf7","\xe0\xb9\x98"=>"\xf8","\xe0\xb9\x99"=>"\xf9","\xe0\xb9\x9a"=>"\xfa","\xe0\xb9\x9b"=>"\xfb"
+);
+
+// nicht enthalten &gt; &lt; &apos; &#39; &quot; &amp; &nbsp;
+global $named_entities;
+$named_entities=array(
+'&Aacute;','&aacute;','&Acirc;','&acirc;','&acute;','&AElig;','&aelig;','&Agrave;','&agrave;','&alefsym;',
+'&Alpha;','&alpha;','&and;','&ang;','&Aring;','&aring;','&asymp;','&Atilde;','&atilde;','&Auml;',
+'&auml;','&bdquo;','&Beta;','&beta;','&brvbar;','&bull;','&cap;','&Ccedil;','&ccedil;','&cedil;',
+'&cent;','&Chi;','&chi;','&circ;','&clubs;','&cong;','&copy;','&crarr;','&cup;','&curren;',
+'&Dagger;','&dagger;','&dArr;','&darr;','&deg;','&Delta;','&delta;','&diams;','&divide;','&Eacute;',
+'&eacute;','&Ecirc;','&ecirc;','&Egrave;','&egrave;','&empty;','&emsp;','&ensp;','&Epsilon;','&epsilon;',
+'&equiv;','&Eta;','&eta;','&ETH;','&eth;','&Euml;','&euml;','&euro;','&exist;','&fnof;',
+'&forall;','&frac12;','&frac14;','&frac34;','&frasl;','&Gamma;','&gamma;','&ge;','&hArr;','&harr;',
+'&hearts;','&hellip;','&Iacute;','&iacute;','&Icirc;','&icirc;','&iexcl;','&Igrave;','&igrave;','&image;',
+'&infin;','&int;','&Iota;','&iota;','&iquest;','&isin;','&Iuml;','&iuml;','&Kappa;','&kappa;',
+'&Lambda;','&lambda;','&lang;','&laquo;','&lArr;','&larr;','&lceil;','&ldquo;','&le;','&lfloor;',
+'&lowast;','&loz;','&lrm;','&lsaquo;','&lsquo;','&macr;','&mdash;','&micro;','&middot;','&minus;',
+'&Mu;','&mu;','&nabla;','&ndash;','&ne;','&ni;','&not;','&notin;','&nsub;','&Ntilde;',
+'&ntilde;','&Nu;','&nu;','&Oacute;','&oacute;','&Ocirc;','&ocirc;','&OElig;','&oelig;','&Ograve;',
+'&ograve;','&oline;','&Omega;','&omega;','&Omicron;','&omicron;','&oplus;','&or;','&ordf;','&ordm;',
+'&Oslash;','&oslash;','&Otilde;','&otilde;','&otimes;','&Ouml;','&ouml;','&para;','&part;','&permil;',
+'&perp;','&Phi;','&phi;','&Pi;','&pi;','&piv;','&plusmn;','&pound;','&Prime;','&prime;',
+'&prod;','&prop;','&Psi;','&psi;','&radic;','&rang;','&raquo;','&rArr;','&rarr;','&rceil;',
+'&rdquo;','&real;','&reg;','&rfloor;','&Rho;','&rho;','&rlm;','&rsaquo;','&rsquo;','&sbquo;',
+'&Scaron;','&scaron;','&sdot;','&sect;','&shy;','&Sigma;','&sigma;','&sigmaf;','&sim;','&spades;',
+'&sub;','&sube;','&sum;','&sup;','&sup1;','&sup2;','&sup3;','&supe;','&szlig;','&Tau;',
+'&tau;','&there4;','&Theta;','&theta;','&thetasym;','&thinsp;','&THORN;','&thorn;','&tilde;','&times;',
+'&trade;','&Uacute;','&uacute;','&uArr;','&uarr;','&Ucirc;','&ucirc;','&Ugrave;','&ugrave;','&uml;',
+'&upsih;','&Upsilon;','&upsilon;','&Uuml;','&uuml;','&weierp;','&Xi;','&xi;','&Yacute;','&yacute;',
+'&yen;','&Yuml;','&yuml;','&Zeta;','&zeta;','&zwj;','&zwnj;'
+);
+
+// nicht enthalten &gt; &lt; &apos; &#39; &quot; &amp; &nbsp;
+global $numbered_entities;
+$numbered_entities=array(
+'&#193;','&#225;','&#194;','&#226;','&#180;','&#198;','&#230;','&#192;','&#224;','&#8501;',
+'&#913;','&#945;','&#8743;','&#8736;','&#197;','&#229;','&#8776;','&#195;','&#227;','&#196;',
+'&#228;','&#8222;','&#914;','&#946;','&#166;','&#8226;','&#8745;','&#199;','&#231;','&#184;',
+'&#162;','&#935;','&#967;','&#710;','&#9827;','&#8773;','&#169;','&#8629;','&#8746;','&#164;',
+'&#8225;','&#8224;','&#8659;','&#8595;','&#176;','&#916;','&#948;','&#9830;','&#247;','&#201;',
+'&#233;','&#202;','&#234;','&#200;','&#232;','&#8709;','&#8195;','&#8194;','&#917;','&#949;',
+'&#8801;','&#919;','&#951;','&#208;','&#240;','&#203;','&#235;','&#8364;','&#8707;','&#402;',
+'&#8704;','&#189;','&#188;','&#190;','&#8260;','&#915;','&#947;','&#8805;','&#8660;','&#8596;',
+'&#9829;','&#8230;','&#205;','&#237;','&#206;','&#238;','&#161;','&#204;','&#236;','&#8465;',
+'&#8734;','&#8747;','&#921;','&#953;','&#191;','&#8712;','&#207;','&#239;','&#922;','&#954;',
+'&#923;','&#955;','&#9001;','&#171;','&#8656;','&#8592;','&#8968;','&#8220;','&#8804;','&#8970;',
+'&#8727;','&#9674;','&#8206;','&#8249;','&#8216;','&#175;','&#8212;','&#181;','&#183;','&#8722;',
+'&#924;','&#956;','&#8711;','&#8211;','&#8800;','&#8715;','&#172;','&#8713;','&#8836;','&#209;',
+'&#241;','&#925;','&#957;','&#211;','&#243;','&#212;','&#244;','&#338;','&#339;','&#210;','&#242;',
+'&#8254;','&#937;','&#969;','&#927;','&#959;','&#8853;','&#8744;','&#170;','&#186;','&#216;','&#248;',
+'&#213;','&#245;','&#8855;','&#214;','&#246;','&#182;','&#8706;','&#8240;','&#8869;','&#934;','&#966;',
+'&#928;','&#960;','&#982;','&#177;','&#163;','&#8243;','&#8242;','&#8719;','&#8733;','&#936;','&#968;',
+'&#8730;','&#9002;','&#187;','&#8658;','&#8594;','&#8969;','&#8221;','&#8476;','&#174;','&#8971;','&#929;',
+'&#961;','&#8207;','&#8250;','&#8217;','&#8218;','&#352;','&#353;','&#8901;','&#167;','&#173;','&#931;',
+'&#963;','&#962;','&#8764;','&#9824;','&#8834;','&#8838;','&#8721;','&#8835;','&#185;','&#178;','&#179;',
+'&#8839;','&#223;','&#932;','&#964;','&#8756;','&#920;','&#952;','&#977;','&#8201;','&#222;','&#254;',
+'&#732;','&#215;','&#8482;','&#218;','&#250;','&#8657;','&#8593;','&#219;','&#251;','&#217;','&#249;',
+'&#168;','&#978;','&#933;','&#965;','&#220;','&#252;','&#8472;','&#926;','&#958;','&#221;','&#253;',
+'&#165;','&#376;','&#255;','&#918;','&#950;','&#8205;','&#8204;'
+);
+
+/*
+ * The following part of this file is based on 'utf8.php' from the DokuWiki-project.
+ * (http://www.splitbrain.org/projects/dokuwiki):
+ **
+ * UTF8 helper functions
+ * @license    LGPL (http://www.gnu.org/copyleft/lesser.html)
+ * @author     Andreas Gohr <andi@splitbrain.org>
+ **
+ * modified for use with Website Baker
+ * from thorn, Jan. 2008
+ */
+
+/**
+ * UTF-8 array of common special characters
+ *
+ * This array should contain all special characters (not a letter or digit)
+ * defined in the various local charsets - it's not a complete list of non-alphanum
+ * characters in UTF-8. It's not perfect but should match most cases of special
+ * chars.
+ *
+ * The controlchars 0x00 to 0x19 are _not_ included in this array. The space 0x20 is!
+ * These chars are _not_ in the array either:  _ (0x5f), : 0x3a, . 0x2e, - 0x2d, * 0x2a
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @see    utf8_stripspecials()
+ */
+$UTF8_SPECIAL_CHARS2="\x1A\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2b\x2c\x2f\x3b".
+	"\x3c\x3d\x3e\x3f\x40\x5b\x5c\x5d\x5e\x60\x7b\x7c\x7d\x7e\x7f\xc2\x80\xc2\x81\xc2".
+	"\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2".
+	"\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xef".
+	"\xbf\xbd\xef\xbf\xbd\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2".
+	"\x9e\xc2\x9f\x20\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8".
+	"\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2".
+	"\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc".
+	"\xc2\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbf\xc3\x97\xc3\xb7\xcb\x87\xcb\x98\xcb\x99".
+	"\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcc\x80\xcc\x81\xcc\x83\xcc\x89\xcc\xa3\xce\x84".
+	"\xce\x85\xce\x87\xce\xb2\xcf\x86\xcf\x91\xcf\x92\xcf\x95\xcf\x96\xd6\xb0\xd6\xb1".
+	"\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xbb\xd6\xbc".
+	"\xd6\xbd\xd6\xbe\xd6\xbf\xef\xbf\xbd\xef\xbf\xbd\xd7\x81\xd7\x82\xd7\x83\xd7\xb3".
+	"\xd7\xb4\xd8\x8c\xd8\x9b\xd8\x9f\xd9\x80\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f".
+	"\xd9\x90\xd9\x91\xd9\x92\xd9\xaa\xe0\xb8\xbf\xe2\x80\x8c\xe2\x80\x8d\xe2\x80\x8e".
+	"\xe2\x80\x8f\xe2\x80\x93\xe2\x80\x94\xe2\x80\x95\xe2\x80\x97\xe2\x80\x98\xe2\x80".
+	"\x99\xe2\x80\x9a\xe2\x80\x9c\xe2\x80\x9d\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xe2".
+	"\x80\xa0\xe2\x80\xa1\xe2\x80\xa2\xe2\x80\xa6\xe2\x80\xb0\xe2\x80\xb2\xe2\x80\xb3".
+	"\xe2\x80\xb9\xe2\x80\xba\xe2\x81\x84\xe2\x82\xa7\xe2\x82\xaa\xe2\x82\xab\xe2\x82".
+	"\xac\xe2\x84\x96\xe2\x84\x98\xe2\x84\xa2\xe2\x84\xa6\xe2\x84\xb5\xe2\x86\x90\xe2".
+	"\x86\x91\xe2\x86\x92\xe2\x86\x93\xe2\x86\x94\xe2\x86\x95\xe2\x86\xb5\xe2\x87\x90".
+	"\xe2\x87\x91\xe2\x87\x92\xe2\x87\x93\xe2\x87\x94\xe2\x88\x80\xe2\x88\x82\xe2\x88".
+	"\x83\xe2\x88\x85\xe2\x88\x86\xe2\x88\x87\xe2\x88\x88\xe2\x88\x89\xe2\x88\x8b\xe2".
+	"\x88\x8f\xe2\x88\x91\xe2\x88\x92\xe2\x88\x95\xe2\x88\x97\xe2\x88\x99\xe2\x88\x9a".
+	"\xe2\x88\x9d\xe2\x88\x9e\xe2\x88\xa0\xe2\x88\xa7\xe2\x88\xa8\xef\xbf\xbd\xef\xbf".
+	"\xbd\xe2\x88\xaa\xe2\x88\xab\xe2\x88\xb4\xe2\x88\xbc\xe2\x89\x85\xe2\x89\x88\xe2".
+	"\x89\xa0\xe2\x89\xa1\xe2\x89\xa4\xe2\x89\xa5\xe2\x8a\x82\xe2\x8a\x83\xe2\x8a\x84".
+	"\xe2\x8a\x86\xe2\x8a\x87\xe2\x8a\x95\xe2\x8a\x97\xe2\x8a\xa5\xe2\x8b\x85\xe2\x8c".
+	"\x90\xe2\x8c\xa0\xe2\x8c\xa1\xe2\x8c\xa9\xe2\x8c\xaa\xe2\x91\xa9\xe2\x94\x80\xef".
+	"\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xe2\x94\x8c\xe2\x94\x90\xe2\x94\x94\xe2\x94\x98".
+	"\xe2\x94\x9c\xe2\x94\xa4\xe2\x94\xac\xe2\x94\xb4\xe2\x94\xbc\xe2\x95\x90\xe2\x95".
+	"\x91\xe2\x95\x92\xe2\x95\x93\xe2\x95\x94\xe2\x95\x95\xe2\x95\x96\xe2\x95\x97\xe2".
+	"\x95\x98\xe2\x95\x99\xe2\x95\x9a\xe2\x95\x9b\xe2\x95\x9c\xe2\x95\x9d\xe2\x95\x9e".
+	"\xe2\x95\x9f\xe2\x95\xa0\xe2\x95\xa1\xe2\x95\xa2\xe2\x95\xa3\xe2\x95\xa4\xe2\x95".
+	"\xa5\xe2\x95\xa6\xe2\x95\xa7\xe2\x95\xa8\xe2\x95\xa9\xe2\x95\xaa\xe2\x95\xab\xe2".
+	"\x95\xac\xe2\x96\x80\xe2\x96\x84\xe2\x96\x88\xe2\x96\x8c\xe2\x96\x90\xe2\x96\x91".
+	"\xe2\x96\x92\xe2\x96\x93\xe2\x96\xa0\xe2\x96\xb2\xe2\x96\xbc\xe2\x97\x86\xe2\x97".
+	"\x8a\xe2\x97\x8f\xef\xbf\xbd\xef\xbf\xbd\xe2\x98\x85\xe2\x98\x8e\xe2\x98\x9b\xe2".
+	"\x98\x9e\xe2\x99\xa0\xe2\x99\xa3\xe2\x99\xa5\xe2\x99\xa6\xe2\x9c\x81\xe2\x9c\x82".
+	"\xe2\x9c\x83\xe2\x9c\x84\xe2\x9c\x86\xe2\x9c\x87\xe2\x9c\x88\xe2\x9c\x89\xe2\x9c".
+	"\x8c\xe2\x9c\x8d\xe2\x9c\x8e\xe2\x9c\x8f\xe2\x9c\x90\xe2\x9c\x91\xe2\x9c\x92\xe2".
+	"\x9c\x93\xe2\x9c\x94\xe2\x9c\x95\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xe2\x9c\x97".
+	"\xe2\x9c\x98\xe2\x9c\x99\xe2\x9c\x9a\xe2\x9c\x9b\xe2\x9c\x9c\xe2\x9c\x9d\xe2\x9c".
+	"\x9e\xe2\x9c\x9f\xe2\x9c\xa0\xe2\x9c\xa1\xe2\x9c\xa2\xe2\x9c\xa3\xe2\x9c\xa4\xe2".
+	"\x9c\xa5\xe2\x9c\xa6\xe2\x9c\xa7\xe2\x9c\xa9\xe2\x9c\xaa\xe2\x9c\xab\xe2\x9c\xac".
+	"\xe2\x9c\xad\xe2\x9c\xae\xe2\x9c\xaf\xe2\x9c\xb0\xe2\x9c\xb1\xe2\x9c\xb2\xe2\x9c".
+	"\xb3\xe2\x9c\xb4\xe2\x9c\xb5\xe2\x9c\xb6\xe2\x9c\xb7\xe2\x9c\xb8\xe2\x9c\xb9\xe2".
+	"\x9c\xba\xe2\x9c\xbb\xe2\x9c\xbc\xe2\x9c\xbd\xe2\x9c\xbe\xe2\x9c\xbf\xe2\x9d\x80".
+	"\xe2\x9d\x81\xe2\x9d\x82\xe2\x9d\x83\xe2\x9d\x84\xe2\x9d\x85\xe2\x9d\x86\xe2\x9d".
+	"\x87\xe2\x9d\x88\xe2\x9d\x89\xe2\x9d\x8a\xe2\x9d\x8b\xef\xbf\xbd\xef\xbf\xbd\xe2".
+	"\x9d\x8f\xe2\x9d\x90\xe2\x9d\x91\xe2\x9d\x92\xe2\x9d\x96\xe2\x9d\x98\xe2\x9d\x99".
+	"\xe2\x9d\x9a\xe2\x9d\x9b\xe2\x9d\x9c\xe2\x9d\x9d\xe2\x9d\x9e\xe2\x9d\xa1\xe2\x9d".
+	"\xa2\xe2\x9d\xa3\xe2\x9d\xa4\xe2\x9d\xa5\xe2\x9d\xa6\xe2\x9d\xa7\xe2\x9d\xbf\xe2".
+	"\x9e\x89\xe2\x9e\x93\xe2\x9e\x94\xe2\x9e\x98\xe2\x9e\x99\xe2\x9e\x9a\xef\xbf\xbd".
+	"\xef\xbf\xbd\xef\xbf\xbd\xe2\x9e\x9c\xe2\x9e\x9d\xe2\x9e\x9e\xe2\x9e\x9f\xe2\x9e".
+	"\xa0\xe2\x9e\xa1\xe2\x9e\xa2\xe2\x9e\xa3\xe2\x9e\xa4\xe2\x9e\xa5\xe2\x9e\xa6\xe2".
+	"\x9e\xa7\xe2\x9e\xa8\xe2\x9e\xa9\xe2\x9e\xaa\xe2\x9e\xab\xe2\x9e\xac\xe2\x9e\xad".
+	"\xe2\x9e\xae\xe2\x9e\xaf\xe2\x9e\xb1\xe2\x9e\xb2\xe2\x9e\xb3\xe2\x9e\xb4\xe2\x9e".
+	"\xb5\xe2\x9e\xb6\xe2\x9e\xb7\xe2\x9e\xb8\xe2\x9e\xb9\xe2\x9e\xba\xe2\x9e\xbb\xe2".
+	"\x9e\xbc\xe2\x9e\xbd\xe2\x9e\xbe\xe3\x80\x80\xe3\x80\x81\xe3\x80\x82\xe3\x80\x83".
+	"\xe3\x80\x88\xe3\x80\x89\xe3\x80\x8a\xe3\x80\x8b\xe3\x80\x8c\xe3\x80\x8d\xe3\x80".
+	"\x8e\xe3\x80\x8f\xe3\x80\x90\xe3\x80\x91\xe3\x80\x92\xe3\x80\x94\xe3\x80\x95\xe3".
+	"\x80\x96\xe3\x80\x97\xe3\x80\x98\xe3\x80\x99\xe3\x80\x9a\xe3\x80\x9b\xe3\x80\xb6".
+	"\xef\x9b\x99\xef\x9b\x9a\xef\x9b\x9b\xef\xa3\x97\xef\xa3\x98\xef\xa3\x99\xef\xa3".
+	"\x9a\xef\xa3\x9b\xef\xa3\x9c\xef\xa3\x9d\xef\xa3\x9e\xef\xa3\x9f\xef\xa3\xa0\xef".
+	"\xa3\xa1\xef\xa3\xa2\xef\xa3\xa3\xef\xa3\xa4\xef\xa3\xa5\xef\xbf\xbd\xef\xbf\xbd".
+	"\xef\xa3\xa7\xef\xa3\xa8\xef\xa3\xa9\xef\xa3\xaa\xef\xa3\xab\xef\xa3\xac\xef\xa3".
+	"\xad\xef\xa3\xae\xef\xa3\xaf\xef\xa3\xb0\xef\xa3\xb1\xef\xa3\xb2\xef\xa3\xb3\xef".
+	"\xa3\xb4\xef\xa3\xb5\xef\xa3\xb6\xef\xa3\xb7\xef\xa3\xb8\xef\xa3\xb9\xef\xa3\xba".
+	"\xef\xa3\xbb\xef\xa3\xbc\xef\xa3\xbd\xef\xa3\xbe\xef\xb9\xbc\xef\xb9\xbd\xef\xbc".
+	"\x81\xef\xbc\x82\xef\xbc\x83\xef\xbc\x84\xef\xbc\x85\xef\xbc\x86\xef\xbc\x87\xef".
+	"\xbc\x88\xef\xbc\x89\xef\xbc\x8a\xef\xbc\x8b\xef\xbc\x8c\xef\xbc\x8d\xef\xbc\x8e".
+	"\xef\xbc\x8f\xef\xbc\x9a\xef\xbc\x9b\xef\xbc\x9c\xef\xbc\x9d\xef\xbc\x9e\xef\xbc".
+	"\x9f\xef\xbc\xa0\xef\xbc\xbb\xef\xbc\xbc\xef\xbc\xbd\xef\xbc\xbe\xef\xbd\x80\xef".
+	"\xbd\x9b\xef\xbd\x9c\xef\xbd\x9d\xef\xbd\x9e\xef\xbd\x9f\xef\xbd\xa0\xef\xbd\xa1".
+	"\xef\xbd\xa2\xef\xbd\xa3\xef\xbd\xa4\xef\xbd\xa5\xef\xbf\xa0\xef\xbf\xa1\xef\xbf".
+	"\xa2\xef\xbf\xa3\xef\xbf\xa4\xef\xbf\xa5\xef\xbf\xa6\xef\xbf\xa8\xef\xbf\xa9\xef".
+	"\xbf\xaa\xef\xbf\xab\xef\xbf\xac\xef\xbf\xad\xef\xbf\xae";
+
+/**
+ * Romanization lookup table
+ *
+ * This lookup tables provides a way to transform strings written in a language
+ * different from the ones based upon latin letters into plain ASCII.
+ *
+ * Please note: this is not a scientific transliteration table. It only works
+ * oneway from nonlatin to ASCII and it works by simple character replacement
+ * only. Specialities of each language are not supported.
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @author Vitaly Blokhin <vitinfo@vitn.com>
+ * @link   http://www.uconv.com/translit.htm
+ * @author Bisqwit <bisqwit@iki.fi>
+ * @link   http://kanjidict.stc.cx/hiragana.php?src=2
+ * @link   http://www.translatum.gr/converter/greek-transliteration.htm
+ * @link   http://en.wikipedia.org/wiki/Royal_Thai_General_System_of_Transcription
+ * @link   http://www.btranslations.com/resources/romanization/korean.asp
+ * @author Arthit Suriyawongkul <arthit@gmail.com>
+ * @author thorn <thorn@nettest.thekk.de>
+ */
+global $UTF8_ROMANIZATION;
+$UTF8_ROMANIZATION = array(
+	// Latin
+	"\xc3\x81"=>"A","\xc3\xa1"=>"a","\xc3\x82"=>"A",
+	"\xc3\xa2"=>"a","\xc3\x86"=>"Ae","\xc3\xa6"=>"ae","\xc3\x80"=>"A",
+	"\xc3\xa0"=>"a","\xc3\x85"=>"A","\xc3\xa5"=>"a","\xc3\x83"=>"A",
+	"\xc3\xa3"=>"a","\xc3\x84"=>"Ae","\xc3\xa4"=>"ae","\xc3\x87"=>"C",
+	"\xc3\xa7"=>"c","\xc3\x89"=>"E","\xc3\xa9"=>"e","\xc3\x8a"=>"E",
+	"\xc3\xaa"=>"e","\xc3\x88"=>"E","\xc3\xa8"=>"e","\xc3\x8b"=>"E",
+	"\xc3\xab"=>"e","\xc3\x8d"=>"I","\xc3\xad"=>"i","\xc3\x8e"=>"I",
+	"\xc3\xae"=>"i","\xc3\x8c"=>"I","\xc3\xac"=>"i","\xc3\x8f"=>"I",
+	"\xc3\xaf"=>"i","\xc3\x91"=>"N","\xc3\xb1"=>"n","\xc3\x93"=>"O",
+	"\xc3\xb3"=>"o","\xc3\x94"=>"O","\xc3\xb4"=>"o","\xc5\x92"=>"Oe",
+	"\xc5\x93"=>"oe","\xc3\x92"=>"O","\xc3\xb2"=>"o","\xc3\x95"=>"O",
+	"\xc3\xb5"=>"o","\xc3\x96"=>"Oe","\xc3\xb6"=>"oe","\xc5\xa0"=>"S",
+	"\xc5\xa1"=>"s","\xc3\x9f"=>"ss","\xc3\x9a"=>"U","\xc3\xba"=>"u",
+	"\xc3\x9b"=>"U","\xc3\xbb"=>"u","\xc3\x99"=>"U","\xc3\xb9"=>"u",
+	"\xc3\x9c"=>"Ue","\xc3\xbc"=>"ue","\xc3\x9d"=>"Y","\xc3\xbd"=>"y",
+	"\xc5\xb8"=>"Y","\xc3\xbf"=>"y","\xc2\xa9"=>"(c)","\xc2\xae"=>"(r)",
+	"\xc3\x90"=>"D","\xc3\x97"=>"x","\xc3\x98"=>"O","\xc3\x9e"=>"Th",
+	"\xc3\xb0"=>"d","\xc3\xb8"=>"o","\xc3\xbe"=>"th","\x27"=>"-",
+	"\x22"=>"-","\xc4\x80"=>"A","\xc4\x81"=>"a","\xc4\x82"=>"A",
+	"\xc4\x83"=>"a","\xc4\x84"=>"A","\xc4\x85"=>"a","\xc4\x86"=>"C",
+	"\xc4\x87"=>"c","\xc4\x88"=>"C","\xc4\x89"=>"c","\xc4\x8d"=>"c",
+	"\xc4\x8c"=>"C","\xc4\x8b"=>"c","\xc4\x8a"=>"C","\xc4\x91"=>"d",
+	"\xc4\x90"=>"D","\xc4\x8f"=>"d","\xc4\x8e"=>"D","\xc4\x93"=>"e",
+	"\xc4\x92"=>"E","\xc4\x94"=>"E","\xc4\x95"=>"e","\xc4\x96"=>"E",
+	"\xc4\x97"=>"e","\xc4\x98"=>"E","\xc4\x99"=>"e","\xc4\x9a"=>"E",
+	"\xc4\x9b"=>"e","\xc4\x9c"=>"G","\xc4\x9d"=>"g","\xc4\x9e"=>"G",
+	"\xc4\x9f"=>"g","\xc4\xa0"=>"G","\xc4\xa1"=>"g","\xc4\xa2"=>"G",
+	"\xc4\xa3"=>"g","\xc4\xa4"=>"H","\xc4\xa5"=>"h","\xc4\xa6"=>"H",
+	"\xc4\xa7"=>"h","\xc4\xa8"=>"I","\xc4\xa9"=>"i","\xc4\xaa"=>"I",
+	"\xc4\xab"=>"i","\xc4\xac"=>"I","\xc4\xad"=>"i","\xc4\xae"=>"I",
+	"\xc4\xaf"=>"i","\xc4\xb0"=>"I","\xc4\xb1"=>"i","\xc4\xb2"=>"IJ",
+	"\xc4\xb3"=>"ij","\xc4\xb4"=>"J","\xc4\xb5"=>"j","\xc4\xb6"=>"K",
+	"\xc4\xb7"=>"k","\xc4\xb8"=>"k","\xc4\xb9"=>"L","\xc4\xba"=>"l",
+	"\xc4\xbb"=>"L","\xc4\xbc"=>"l","\xc4\xbd"=>"L","\xc4\xbe"=>"l",
+	"\xc4\xbf"=>"L","\xc5\x80"=>"l","\xc5\x81"=>"L","\xc5\x82"=>"l",
+	"\xc5\x83"=>"N","\xc5\x84"=>"n","\xc5\x85"=>"N","\xc5\x86"=>"n",
+	"\xc5\x87"=>"N","\xc5\x88"=>"n","\xc5\x89"=>"n","\xc5\x8a"=>"N",
+	"\xc5\x8b"=>"n","\xc5\x8c"=>"O","\xc5\x8d"=>"o","\xc5\x8e"=>"O",
+	"\xc5\x8f"=>"o","\xc5\x90"=>"O","\xc5\x91"=>"o","\xc5\x94"=>"R",
+	"\xc5\x95"=>"r","\xc5\x96"=>"R","\xc5\x97"=>"r","\xc5\x98"=>"R",
+	"\xc5\x99"=>"r","\xc5\x9a"=>"S","\xc5\x9b"=>"s","\xc5\x9c"=>"S",
+	"\xc5\x9d"=>"s","\xc5\x9e"=>"S","\xc5\x9f"=>"s","\xc5\xa2"=>"T",
+	"\xc5\xa3"=>"t","\xc5\xa4"=>"T","\xc5\xa5"=>"t","\xc5\xa6"=>"T",
+	"\xc5\xa7"=>"t","\xc5\xa8"=>"U","\xc5\xa9"=>"u","\xc5\xaa"=>"U",
+	"\xc5\xab"=>"u","\xc5\xac"=>"U","\xc5\xad"=>"u","\xc5\xae"=>"U",
+	"\xc5\xaf"=>"u","\xc5\xb0"=>"U","\xc5\xb1"=>"u","\xc5\xb2"=>"U",
+	"\xc5\xb3"=>"u","\xc5\xb4"=>"W","\xc5\xb5"=>"w","\xc5\xb6"=>"Y",
+	"\xc5\xb7"=>"y","\xc5\xb9"=>"Z","\xc5\xba"=>"z","\xc5\xbb"=>"Z",
+	"\xc5\xbc"=>"z","\xc5\xbd"=>"Z","\xc5\xbe"=>"z","\xc5\xbf"=>"s",
+	"\xef\xac\x80"=>"ff","\xef\xac\x81"=>"fi","\xef\xac\x82"=>"fl","\xef\xac\x83"=>"ffi",
+	"\xef\xac\x84"=>"ffl","\xef\xac\x85"=>"st","\xef\xac\x86"=>"st","\xc6\x80"=>"b",
+	"\xc6\x81"=>"B","\xc6\x82"=>"B","\xc6\x83"=>"b","\xc6\x84"=>"6",
+	"\xc6\x85"=>"6","\xc6\x86"=>"O","\xc6\x87"=>"C","\xc6\x88"=>"c",
+	"\xc6\x89"=>"D","\xc6\x8a"=>"D","\xc6\x8b"=>"D","\xc6\x8c"=>"d",
+	"\xc6\x8d"=>"d","\xc6\x8e"=>"E","\xc6\x8f"=>"e","\xc6\x90"=>"E",
+	"\xc6\x91"=>"F","\xc6\x92"=>"f","\xc6\x93"=>"G","\xc6\x94"=>"G",
+	"\xc6\x95"=>"hw","\xc6\x96"=>"I","\xc6\x97"=>"I","\xc6\x98"=>"K",
+	"\xc6\x99"=>"k","\xc6\x9a"=>"l","\xc6\x9b"=>"l","\xc6\x9c"=>"M",
+	"\xc6\x9d"=>"N","\xc6\x9e"=>"n","\xc6\x9f"=>"O","\xc6\xa0"=>"O",
+	"\xc6\xa1"=>"o","\xc6\xa2"=>"OI","\xc6\xa3"=>"oi","\xc6\xa4"=>"P",
+	"\xc6\xa5"=>"p","\xc6\xa6"=>"YR","\xc6\xa7"=>"2","\xc6\xa8"=>"2",
+	"\xc6\xa9"=>"ESH","\xc6\xaa"=>"esh","\xc6\xab"=>"t","\xc6\xac"=>"T",
+	"\xc6\xad"=>"t","\xc6\xae"=>"T","\xc6\xaf"=>"U","\xc6\xb0"=>"u",
+	"\xc6\xb1"=>"V","\xc6\xb2"=>"v","\xc6\xb3"=>"Y","\xc6\xb4"=>"y",
+	"\xc6\xb5"=>"Z","\xc6\xb6"=>"z","\xc6\xb7"=>"EZH","\xc6\xb8"=>"EZH",
+	"\xc6\xb9"=>"ezh","\xc6\xba"=>"ezh","\xc6\xbb"=>"2","\xc6\xbc"=>"5",
+	"\xc6\xbd"=>"5","\xc6\xbe"=>"-","\xc6\xbf"=>"w","\xc7\x80"=>"-",
+	"\xc7\x81"=>"-","\xc7\x82"=>"-","\xc7\x83"=>"-","\xc7\x84"=>"DZ",
+	"\xc7\x85"=>"DZ","\xc7\x86"=>"dz","\xc7\x87"=>"LJ","\xc7\x88"=>"Lj",
+	"\xc7\x89"=>"lj","\xc7\x8a"=>"NJ","\xc7\x8b"=>"Nj","\xc7\x8c"=>"nj",
+	"\xc7\x8d"=>"A","\xc7\x8e"=>"a","\xc7\x8f"=>"I","\xc7\x90"=>"i",
+	"\xc7\x91"=>"O","\xc7\x92"=>"o","\xc7\x93"=>"U","\xc7\x94"=>"u",
+	"\xc7\x95"=>"U","\xc7\x96"=>"u","\xc7\x97"=>"U","\xc7\x98"=>"u",
+	"\xc7\x99"=>"U","\xc7\x9a"=>"u","\xc7\x9b"=>"U","\xc7\x9c"=>"u",
+	"\xc7\x9d"=>"e","\xc7\x9e"=>"A","\xc7\x9f"=>"a","\xc7\xa0"=>"A",
+	"\xc7\xa1"=>"a","\xc7\xa2"=>"AE","\xc7\xa3"=>"ae","\xc7\xa4"=>"G",
+	"\xc7\xa5"=>"g","\xc7\xa6"=>"G","\xc7\xa7"=>"g","\xc7\xa8"=>"K",
+	"\xc7\xa9"=>"k","\xc7\xaa"=>"O","\xc7\xab"=>"o","\xc7\xac"=>"O",
+	"\xc7\xad"=>"o","\xc7\xae"=>"EZH","\xc7\xaf"=>"ezh","\xc7\xb0"=>"j",
+	"\xc7\xb1"=>"DZ","\xc7\xb2"=>"Dz","\xc7\xb3"=>"dz","\xc7\xb4"=>"G",
+	"\xc7\xb5"=>"g","\xc7\xb6"=>"HW","\xc7\xb7"=>"W","\xc7\xb8"=>"N",
+	"\xc7\xb9"=>"n","\xc7\xba"=>"A","\xc7\xbb"=>"a","\xc7\xbc"=>"AE",
+	"\xc7\xbd"=>"ae","\xc7\xbe"=>"O","\xc7\xbf"=>"o","\xc8\x80"=>"A",
+	"\xc8\x81"=>"a","\xc8\x82"=>"A","\xc8\x83"=>"a","\xc8\x84"=>"E",
+	"\xc8\x85"=>"e","\xc8\x86"=>"E","\xc8\x87"=>"e","\xc8\x88"=>"I",
+	"\xc8\x89"=>"i","\xc8\x8a"=>"I","\xc8\x8b"=>"i","\xc8\x8c"=>"O",
+	"\xc8\x8d"=>"o","\xc8\x8e"=>"O","\xc8\x8f"=>"o","\xc8\x90"=>"R",
+	"\xc8\x91"=>"r","\xc8\x92"=>"R","\xc8\x93"=>"r","\xc8\x94"=>"U",
+	"\xc8\x95"=>"u","\xc8\x96"=>"U","\xc8\x97"=>"u","\xc8\x98"=>"S",
+	"\xc8\x99"=>"s","\xc8\x9a"=>"T","\xc8\x9b"=>"t","\xc8\x9c"=>"Y",
+	"\xc8\x9d"=>"y","\xc8\x9e"=>"H","\xc8\x9f"=>"h","\xc8\xa0"=>"n",
+	"\xc8\xa1"=>"d","\xc8\xa2"=>"OU","\xc8\xa3"=>"ou","\xc8\xa4"=>"Z",
+	"\xc8\xa5"=>"z","\xc8\xa6"=>"A","\xc8\xa7"=>"a","\xc8\xa8"=>"E",
+	"\xc8\xa9"=>"e","\xc8\xaa"=>"O","\xc8\xab"=>"o","\xc8\xac"=>"O",
+	"\xc8\xad"=>"o","\xc8\xae"=>"O","\xc8\xaf"=>"o","\xc8\xb0"=>"O",
+	"\xc8\xb1"=>"o","\xc8\xb2"=>"Y","\xc8\xb3"=>"y","\xc8\xb4"=>"l",
+	"\xc8\xb5"=>"n","\xc8\xb6"=>"t","\xc8\xb7"=>"j","\xc8\xb8"=>"db",
+	"\xc8\xb9"=>"qp","\xc8\xba"=>"A","\xc8\xbb"=>"C","\xc8\xbc"=>"c",
+	"\xc8\xbd"=>"L","\xc8\xbe"=>"T","\xc8\xbf"=>"s","\xc9\x80"=>"z",
+	"\xc9\x81"=>"-","\xe1\xb8\x80"=>"A","\xe1\xb8\x81"=>"a","\xe1\xb8\x82"=>"B",
+	"\xe1\xb8\x83"=>"b","\xe1\xb8\x84"=>"B","\xe1\xb8\x85"=>"b","\xe1\xb8\x86"=>"B",
+	"\xe1\xb8\x87"=>"b","\xe1\xb8\x88"=>"C","\xe1\xb8\x89"=>"c","\xe1\xb8\x8a"=>"D",
+	"\xe1\xb8\x8b"=>"d","\xe1\xb8\x8c"=>"D","\xe1\xb8\x8d"=>"d","\xe1\xb8\x8e"=>"D",
+	"\xe1\xb8\x8f"=>"d","\xe1\xb8\x90"=>"D","\xe1\xb8\x91"=>"d","\xe1\xb8\x92"=>"D",
+	"\xe1\xb8\x93"=>"d","\xe1\xb8\x94"=>"E","\xe1\xb8\x95"=>"e","\xe1\xb8\x96"=>"E",
+	"\xe1\xb8\x97"=>"e","\xe1\xb8\x98"=>"E","\xe1\xb8\x99"=>"e","\xe1\xb8\x9a"=>"E",
+	"\xe1\xb8\x9b"=>"e","\xe1\xb8\x9c"=>"E","\xe1\xb8\x9d"=>"e","\xe1\xb8\x9e"=>"F",
+	"\xe1\xb8\x9f"=>"f","\xe1\xb8\xa0"=>"G","\xe1\xb8\xa1"=>"g","\xe1\xb8\xa2"=>"H",
+	"\xe1\xb8\xa3"=>"h","\xe1\xb8\xa4"=>"H","\xe1\xb8\xa5"=>"h","\xe1\xb8\xa6"=>"H",
+	"\xe1\xb8\xa7"=>"h","\xe1\xb8\xa8"=>"H","\xe1\xb8\xa9"=>"h","\xe1\xb8\xaa"=>"H",
+	"\xe1\xb8\xab"=>"h","\xe1\xb8\xac"=>"I","\xe1\xb8\xad"=>"i","\xe1\xb8\xae"=>"I",
+	"\xe1\xb8\xaf"=>"i","\xe1\xb8\xb0"=>"K","\xe1\xb8\xb1"=>"k","\xe1\xb8\xb2"=>"K",
+	"\xe1\xb8\xb3"=>"k","\xe1\xb8\xb4"=>"K","\xe1\xb8\xb5"=>"k","\xe1\xb8\xb6"=>"L",
+	"\xe1\xb8\xb7"=>"l","\xe1\xb8\xb8"=>"L","\xe1\xb8\xb9"=>"l","\xe1\xb8\xba"=>"L",
+	"\xe1\xb8\xbb"=>"l","\xe1\xb8\xbc"=>"L","\xe1\xb8\xbd"=>"l","\xe1\xb8\xbe"=>"M",
+	"\xe1\xb8\xbf"=>"m","\xe1\xb9\x80"=>"M","\xe1\xb9\x81"=>"m","\xe1\xb9\x82"=>"M",
+	"\xe1\xb9\x83"=>"m","\xe1\xb9\x84"=>"N","\xe1\xb9\x85"=>"n","\xe1\xb9\x86"=>"N",
+	"\xe1\xb9\x87"=>"n","\xe1\xb9\x88"=>"N","\xe1\xb9\x89"=>"n","\xe1\xb9\x8a"=>"N",
+	"\xe1\xb9\x8b"=>"n","\xe1\xb9\x8c"=>"O","\xe1\xb9\x8d"=>"o","\xe1\xb9\x8e"=>"O",
+	"\xe1\xb9\x8f"=>"o","\xe1\xb9\x90"=>"O","\xe1\xb9\x91"=>"o","\xe1\xb9\x92"=>"O",
+	"\xe1\xb9\x93"=>"o","\xe1\xb9\x94"=>"P","\xe1\xb9\x95"=>"p","\xe1\xb9\x96"=>"P",
+	"\xe1\xb9\x97"=>"p","\xe1\xb9\x98"=>"R","\xe1\xb9\x99"=>"r","\xe1\xb9\x9a"=>"R",
+	"\xe1\xb9\x9b"=>"r","\xe1\xb9\x9c"=>"R","\xe1\xb9\x9d"=>"r","\xe1\xb9\x9e"=>"R",
+	"\xe1\xb9\x9f"=>"r","\xe1\xb9\xa0"=>"S","\xe1\xb9\xa1"=>"s","\xe1\xb9\xa2"=>"S",
+	"\xe1\xb9\xa3"=>"s","\xe1\xb9\xa4"=>"S","\xe1\xb9\xa5"=>"s","\xe1\xb9\xa6"=>"S",
+	"\xe1\xb9\xa7"=>"s","\xe1\xb9\xa8"=>"S","\xe1\xb9\xa9"=>"s","\xe1\xb9\xaa"=>"T",
+	"\xe1\xb9\xab"=>"t","\xe1\xb9\xac"=>"T","\xe1\xb9\xad"=>"t","\xe1\xb9\xae"=>"T",
+	"\xe1\xb9\xaf"=>"t","\xe1\xb9\xb0"=>"T","\xe1\xb9\xb1"=>"t","\xe1\xb9\xb2"=>"U",
+	"\xe1\xb9\xb3"=>"u","\xe1\xb9\xb4"=>"U","\xe1\xb9\xb5"=>"u","\xe1\xb9\xb6"=>"U",
+	"\xe1\xb9\xb7"=>"u","\xe1\xb9\xb8"=>"U","\xe1\xb9\xb9"=>"u","\xe1\xb9\xba"=>"U",
+	"\xe1\xb9\xbb"=>"u","\xe1\xb9\xbc"=>"V","\xe1\xb9\xbd"=>"v","\xe1\xb9\xbe"=>"V",
+	"\xe1\xb9\xbf"=>"v","\xe1\xba\x80"=>"W","\xe1\xba\x81"=>"w","\xe1\xba\x82"=>"W",
+	"\xe1\xba\x83"=>"w","\xe1\xba\x84"=>"W","\xe1\xba\x85"=>"w","\xe1\xba\x86"=>"W",
+	"\xe1\xba\x87"=>"w","\xe1\xba\x88"=>"W","\xe1\xba\x89"=>"w","\xe1\xba\x8a"=>"X",
+	"\xe1\xba\x8b"=>"x","\xe1\xba\x8c"=>"X","\xe1\xba\x8d"=>"x","\xe1\xba\x8e"=>"Y",
+	"\xe1\xba\x8f"=>"y","\xe1\xba\x90"=>"Z","\xe1\xba\x91"=>"z","\xe1\xba\x92"=>"Z",
+	"\xe1\xba\x93"=>"z","\xe1\xba\x94"=>"Z","\xe1\xba\x95"=>"z","\xe1\xba\x96"=>"h",
+	"\xe1\xba\x97"=>"t","\xe1\xba\x98"=>"w","\xe1\xba\x99"=>"y","\xe1\xba\x9a"=>"a",
+	"\xe1\xba\x9b"=>"s","\xe1\xba\xa0"=>"A","\xe1\xba\xa1"=>"a","\xe1\xba\xa2"=>"A",
+	"\xe1\xba\xa3"=>"a","\xe1\xba\xa4"=>"A","\xe1\xba\xa5"=>"a","\xe1\xba\xa6"=>"A",
+	"\xe1\xba\xa7"=>"a","\xe1\xba\xa8"=>"A","\xe1\xba\xa9"=>"a","\xe1\xba\xaa"=>"A",
+	"\xe1\xba\xab"=>"a","\xe1\xba\xac"=>"A","\xe1\xba\xad"=>"a","\xe1\xba\xae"=>"A",
+	"\xe1\xba\xaf"=>"a","\xe1\xba\xb0"=>"A","\xe1\xba\xb1"=>"a","\xe1\xba\xb2"=>"A",
+	"\xe1\xba\xb3"=>"a","\xe1\xba\xb4"=>"A","\xe1\xba\xb5"=>"a","\xe1\xba\xb6"=>"A",
+	"\xe1\xba\xb7"=>"a","\xe1\xba\xb8"=>"E","\xe1\xba\xb9"=>"e","\xe1\xba\xba"=>"E",
+	"\xe1\xba\xbb"=>"e","\xe1\xba\xbc"=>"E","\xe1\xba\xbd"=>"e","\xe1\xba\xbe"=>"E",
+	"\xe1\xba\xbf"=>"e","\xe1\xbb\x80"=>"E","\xe1\xbb\x81"=>"e","\xe1\xbb\x82"=>"E",
+	"\xe1\xbb\x83"=>"e","\xe1\xbb\x84"=>"E","\xe1\xbb\x85"=>"e","\xe1\xbb\x86"=>"E",
+	"\xe1\xbb\x87"=>"e","\xe1\xbb\x88"=>"I","\xe1\xbb\x89"=>"i","\xe1\xbb\x8a"=>"I",
+	"\xe1\xbb\x8b"=>"i","\xe1\xbb\x8c"=>"O","\xe1\xbb\x8d"=>"o","\xe1\xbb\x8e"=>"O",
+	"\xe1\xbb\x8f"=>"o","\xe1\xbb\x90"=>"O","\xe1\xbb\x91"=>"o","\xe1\xbb\x92"=>"O",
+	"\xe1\xbb\x93"=>"o","\xe1\xbb\x94"=>"O","\xe1\xbb\x95"=>"o","\xe1\xbb\x96"=>"O",
+	"\xe1\xbb\x97"=>"o","\xe1\xbb\x98"=>"O","\xe1\xbb\x99"=>"o","\xe1\xbb\x9a"=>"O",
+	"\xe1\xbb\x9b"=>"o","\xe1\xbb\x9c"=>"O","\xe1\xbb\x9d"=>"o","\xe1\xbb\x9e"=>"O",
+	"\xe1\xbb\x9f"=>"o","\xe1\xbb\xa0"=>"O","\xe1\xbb\xa1"=>"o","\xe1\xbb\xa2"=>"O",
+	"\xe1\xbb\xa3"=>"o","\xe1\xbb\xa4"=>"U","\xe1\xbb\xa5"=>"u","\xe1\xbb\xa6"=>"U",
+	"\xe1\xbb\xa7"=>"u","\xe1\xbb\xa8"=>"U","\xe1\xbb\xa9"=>"u","\xe1\xbb\xaa"=>"U",
+	"\xe1\xbb\xab"=>"u","\xe1\xbb\xac"=>"U","\xe1\xbb\xad"=>"u","\xe1\xbb\xae"=>"U",
+	"\xe1\xbb\xaf"=>"u","\xe1\xbb\xb0"=>"U","\xe1\xbb\xb1"=>"u","\xe1\xbb\xb2"=>"Y",
+	"\xe1\xbb\xb3"=>"y","\xe1\xbb\xb4"=>"Y","\xe1\xbb\xb5"=>"y","\xe1\xbb\xb6"=>"Y",
+	"\xe1\xbb\xb7"=>"y","\xe1\xbb\xb8"=>"Y","\xe1\xbb\xb9"=>"y",
+	// Cyrilic
+	"\xd0\x90"=>"A","\xd0\xb0"=>"a","\xd3\x90"=>"A","\xd3\x91"=>"a",
+	"\xd3\x92"=>"A","\xd3\x93"=>"a","\xd3\x94"=>"A","\xd3\x95"=>"a",
+	"\xd3\x98"=>"A","\xd3\x99"=>"a","\xd3\x9a"=>"A","\xd3\x9b"=>"a",
+	"\xd0\x91"=>"B","\xd0\xb1"=>"b","\xd0\x92"=>"V","\xd0\xb2"=>"v",
+	"\xd0\x93"=>"G","\xd0\xb3"=>"g","\xd2\x90"=>"Gh","\xd2\x91"=>"gh",
+	"\xd2\x94"=>"G","\xd2\x95"=>"g","\xd2\x92"=>"G","\xd2\x93"=>"g",
+	"\xd3\xb6"=>"G","\xd3\xb7"=>"g","\xd0\x94"=>"D","\xd0\xb4"=>"d",
+	"\xd0\x82"=>"D","\xd1\x92"=>"d","\xd0\x83"=>"G","\xd1\x93"=>"g",
+	"\xd0\x80"=>"E","\xd1\x90"=>"e","\xd0\x95"=>"E","\xd0\xb5"=>"e",
+	"\xd0\x81"=>"Jo","\xd1\x91"=>"jo","\xd3\x96"=>"E","\xd3\x97"=>"e",
+	"\xd0\x84"=>"Je","\xd1\x94"=>"je","\xd2\xbc"=>"C","\xd2\xbd"=>"c",
+	"\xd2\xbe"=>"C","\xd2\xbf"=>"c","\xd0\x96"=>"Zh","\xd0\xb6"=>"zh",
+	"\xd3\x81"=>"Z","\xd3\x82"=>"z","\xd3\x9c"=>"Z","\xd3\x9d"=>"z",
+	"\xd2\x96"=>"Z","\xd2\x97"=>"z","\xd0\x97"=>"Z","\xd0\xb7"=>"z",
+	"\xd3\x9e"=>"Z","\xd3\x9f"=>"z","\xd0\x85"=>"Z","\xd1\x95"=>"z",
+	"\xd3\xa0"=>"Z","\xd3\xa1"=>"z","\xd0\x8d"=>"I","\xd1\x9d"=>"i",
+	"\xd0\x98"=>"I","\xd0\xb8"=>"i","\xd3\xa2"=>"I","\xd3\xa3"=>"i",
+	"\xd3\xa4"=>"I","\xd3\xa5"=>"i","\xd0\x86"=>"I","\xd1\x96"=>"i",
+	"\xd0\x87"=>"Ji","\xd1\x97"=>"ji","\xd0\x99"=>"J","\xd0\xb9"=>"j",
+	"\xd0\x88"=>"J","\xd1\x98"=>"j","\xd0\x9a"=>"K","\xd0\xba"=>"k",
+	"\xd2\x9a"=>"K","\xd2\x9b"=>"k","\xd2\x9c"=>"K","\xd2\x9d"=>"k",
+	"\xd2\x9e"=>"K","\xd2\x9f"=>"k","\xd2\xa0"=>"K","\xd2\xa1"=>"k",
+	"\xd0\x9b"=>"L","\xd0\xbb"=>"l","\xd0\x89"=>"L","\xd1\x99"=>"l",
+	"\xd0\x9c"=>"M","\xd0\xbc"=>"m","\xd0\x9d"=>"N","\xd0\xbd"=>"n",
+	"\xd0\x8a"=>"N","\xd1\x9a"=>"n","\xd2\xa4"=>"N","\xd2\xa5"=>"n",
+	"\xd2\xa2"=>"N","\xd2\xa3"=>"n","\xd0\x9e"=>"O","\xd0\xbe"=>"o",
+	"\xd3\xa6"=>"O","\xd3\xa7"=>"o","\xd3\xa8"=>"O","\xd3\xa9"=>"o",
+	"\xd3\xaa"=>"O","\xd3\xab"=>"o","\xd0\x9f"=>"P","\xd0\xbf"=>"p",
+	"\xd2\xa6"=>"P","\xd2\xa7"=>"p","\xd0\xa0"=>"R","\xd1\x80"=>"r",
+	"\xd0\xa1"=>"S","\xd1\x81"=>"s","\xd2\xaa"=>"C","\xd2\xab"=>"c",
+	"\xd0\xa2"=>"T","\xd1\x82"=>"t","\xd2\xac"=>"T","\xd2\xad"=>"t",
+	"\xd0\x8b"=>"C","\xd1\x9b"=>"c","\xd0\x8c"=>"K","\xd1\x9c"=>"k",
+	"\xd0\xa3"=>"U","\xd1\x83"=>"u","\xd0\x8e"=>"U","\xd1\x9e"=>"u",
+	"\xd3\xae"=>"U","\xd3\xaf"=>"u","\xd3\xb0"=>"U","\xd3\xb1"=>"u",
+	"\xd3\xb2"=>"U","\xd3\xb3"=>"u","\xd2\xae"=>"U","\xd2\xaf"=>"u",
+	"\xd2\xb0"=>"U","\xd2\xb1"=>"u","\xd0\xa4"=>"F","\xd1\x84"=>"f",
+	"\xd0\xa5"=>"X","\xd1\x85"=>"x","\xd2\xb2"=>"H","\xd2\xb3"=>"h",
+	"\xd2\xba"=>"H","\xd2\xbb"=>"h","\xd0\xa6"=>"C","\xd1\x86"=>"c",
+	"\xd2\xb4"=>"C","\xd2\xb5"=>"c","\xd0\xa7"=>"Ch","\xd1\x87"=>"ch",
+	"\xd3\xb4"=>"C","\xd3\xb5"=>"c","\xd2\xb6"=>"C","\xd2\xb7"=>"c",
+	"\xd2\xb8"=>"C","\xd2\xb9"=>"c","\xd0\x8f"=>"D","\xd1\x9f"=>"d",
+	"\xd0\xa8"=>"Sh","\xd1\x88"=>"sh","\xd0\xa9"=>"Sch","\xd1\x89"=>"sch",
+	"\xd0\xab"=>"Y","\xd1\x8b"=>"y","\xd3\xb8"=>"Y","\xd3\xb9"=>"y",
+	"\xd0\xad"=>"Eh","\xd1\x8d"=>"eh","\xd3\xac"=>"E","\xd3\xad"=>"e",
+	"\xd0\xae"=>"Ju","\xd1\x8e"=>"ju","\xd0\xaf"=>"Ja","\xd1\x8f"=>"ja",
+	"\xd1\xa2"=>"E","\xd1\xa3"=>"e","\xd1\xaa"=>"A","\xd1\xab"=>"a",
+	"\xd1\xb2"=>"F","\xd1\xb3"=>"f","\xd1\xb4"=>"Y","\xd1\xb5"=>"y",
+	"\xd1\xb6"=>"Y","\xd1\xb7"=>"y","\xd2\xa8"=>"O","\xd2\xa9"=>"o",
+	"\xd1\xa0"=>"O","\xd1\xa1"=>"o","\xd1\xa4"=>"E","\xd1\xa5"=>"e",
+	"\xd1\xa6"=>"U","\xd1\xa7"=>"u","\xd1\xa8"=>"U","\xd1\xa9"=>"u",
+	"\xd1\xac"=>"U","\xd1\xad"=>"u","\xd1\xae"=>"K","\xd1\xaf"=>"k",
+	"\xd1\xb0"=>"P","\xd1\xb1"=>"p","\xd1\xb8"=>"U","\xd1\xb9"=>"u",
+	"\xd1\xba"=>"O","\xd1\xbb"=>"o","\xd1\xbc"=>"O","\xd1\xbd"=>"o",
+	"\xd1\xbe"=>"O","\xd1\xbf"=>"o","\xd2\x80"=>"K","\xd2\x81"=>"k",
+	"\xd2\x8a"=>"J","\xd2\x8b"=>"j","\xd2\x8e"=>"r","\xd2\x98"=>"Z",
+	"\xd2\x99"=>"z","\xd3\x83"=>"K","\xd3\x84"=>"k","\xd3\x85"=>"L",
+	"\xd3\x86"=>"l","\xd3\x87"=>"N","\xd3\x88"=>"n","\xd3\x89"=>"N",
+	"\xd3\x8a"=>"n","\xd3\x8b"=>"C","\xd3\x8c"=>"c","\xd3\x8d"=>"M",
+	"\xd3\x8e"=>"m","\xd1\x8a"=>"","\xd0\xaa"=>"","\xd0\xac"=>"",
+	"\xd1\x8c"=>"","\xd2\x8c"=>"-","\xd3\x80"=>"-","\xcc\x81"=>"",
+	// Greek
+	"\xce\xb1\xce\xb9"=>"e","\xce\x91\xce\xb9"=>"E","\xce\xb5\xce\xb9"=>"i",
+	"\xce\x95\xce\xb9"=>"I","\xce\xbf\xce\xb9"=>"i","\xce\x9f\xce\xb9"=>"I","\xce\xbf\xcf\x85"=>"ou",
+	"\xce\x9f\xcf\x85"=>"Ou","\xce\xb1\xcf\x85"=>"av","\xce\x91\xcf\x85"=>"Av","\xce\xb5\xcf\x85"=>"ev",
+	"\xce\x95\xcf\x85"=>"Ev","\xce\xb7\xcf\x85"=>"iv","\xce\x97\xcf\x85"=>"Iv","\xce\xbc\xcf\x80"=>"mp",
+	"\xce\x9c\xcf\x80"=>"B","\xce\xbd\xcf\x84"=>"nt","\xce\x9d\xcf\x84"=>"D","\xcf\x84\xce\xb6"=>"tz",
+	"\xce\xa4\xce\xb6"=>"Tz","\xce\xb3\xce\xba"=>"ng","\xce\x93\xce\xba"=>"G","\xce\xb3\xce\xb3"=>"ng",
+	"\xce\x93\xce\xb3"=>"Ng","\xce\x86"=>"A","\xce\x88"=>"E","\xce\x89"=>"I",
+	"\xce\x8a"=>"I","\xce\x8c"=>"O","\xce\x8e"=>"Y","\xce\x8f"=>"O",
+	"\xce\x90"=>"i","\xce\x91"=>"A","\xce\x92"=>"V","\xce\x93"=>"G",
+	"\xce\x94"=>"D","\xce\x95"=>"E","\xce\x96"=>"Z","\xce\x97"=>"I",
+	"\xce\x98"=>"Th","\xce\x99"=>"I","\xce\x9a"=>"K","\xce\x9b"=>"L",
+	"\xce\x9c"=>"M","\xce\x9d"=>"N","\xce\x9e"=>"X","\xce\x9f"=>"O",
+	"\xce\xa0"=>"P","\xce\xa1"=>"R","\xce\xa3"=>"S","\xce\xa4"=>"T",
+	"\xce\xa5"=>"Y","\xce\xa6"=>"F","\xce\xa7"=>"Ch","\xce\xa8"=>"Ps",
+	"\xce\xa9"=>"O","\xce\xaa"=>"I","\xce\xab"=>"Y","\xce\xac"=>"a",
+	"\xce\xad"=>"e","\xce\xae"=>"i","\xce\xaf"=>"i","\xce\xb0"=>"y",
+	"\xce\xb1"=>"a","\xce\xb2"=>"v","\xce\xb3"=>"g","\xce\xb4"=>"d",
+	"\xce\xb5"=>"e","\xce\xb6"=>"z","\xce\xb7"=>"i","\xce\xb8"=>"th",
+	"\xce\xb9"=>"i","\xce\xba"=>"k","\xce\xbb"=>"l","\xce\xbc"=>"m",
+	"\xce\xbd"=>"n","\xce\xbe"=>"x","\xce\xbf"=>"o","\xcf\x80"=>"p",
+	"\xcf\x81"=>"r","\xcf\x82"=>"s","\xcf\x83"=>"s","\xcf\x84"=>"t",
+	"\xcf\x85"=>"y","\xcf\x86"=>"f","\xcf\x87"=>"ch","\xcf\x88"=>"ps",
+	"\xcf\x89"=>"o","\xcf\x8a"=>"i","\xcf\x8b"=>"y","\xcf\x8c"=>"o",
+	"\xcf\x8d"=>"y","\xcf\x8e"=>"o","\xcf\x90"=>"b","\xcf\x91"=>"th",
+	"\xcf\x92"=>"y","\xcf\x93"=>"y","\xcf\x94"=>"y",
+	// Georgian
+	"\xe1\x83\x90"=>"a","\xe1\x83\x91"=>"b","\xe1\x83\x92"=>"g","\xe1\x83\x93"=>"d",
+	"\xe1\x83\x94"=>"e","\xe1\x83\x95"=>"v","\xe1\x83\x96"=>"z","\xe1\x83\x97"=>"th",
+	"\xe1\x83\x98"=>"i","\xe1\x83\x99"=>"p","\xe1\x83\x9a"=>"l","\xe1\x83\x9b"=>"m",
+	"\xe1\x83\x9c"=>"n","\xe1\x83\x9d"=>"o","\xe1\x83\x9e"=>"p","\xe1\x83\x9f"=>"zh",
+	"\xe1\x83\xa0"=>"r","\xe1\x83\xa1"=>"s","\xe1\x83\xa2"=>"t","\xe1\x83\xa3"=>"u",
+	"\xe1\x83\xa4"=>"ph","\xe1\x83\xa5"=>"kh","\xe1\x83\xa6"=>"gh","\xe1\x83\xa7"=>"q",
+	"\xe1\x83\xa8"=>"sh","\xe1\x83\xa9"=>"ch","\xe1\x83\xaa"=>"c","\xe1\x83\xab"=>"dh",
+	"\xe1\x83\xac"=>"w","\xe1\x83\xad"=>"j","\xe1\x83\xae"=>"x","\xe1\x83\xaf"=>"jh",
+	"\xe1\x83\xb0"=>"xh",
+	// Sanskrit
+	"\xe0\xa4\x85\xe0\xa4\x82"=>"amh","\xe0\xa4\x85\xe0\xa4\x83"=>"aq","\xe0\xa4\x95"=>"k","\xe0\xa4\x96"=>"kh",
+	"\xe0\xa4\x85"=>"a","\xe0\xa4\x86"=>"ah",
+	"\xe0\xa4\x87"=>"i","\xe0\xa4\x88"=>"ih","\xe0\xa4\x89"=>"u","\xe0\xa4\x8a"=>"uh",
+	"\xe0\xa4\x8b"=>"ry","\xe0\xa5\xa0"=>"ryh","\xe0\xa4\x8c"=>"ly","\xe0\xa5\xa1"=>"lyh",
+	"\xe0\xa4\x8f"=>"e","\xe0\xa4\x90"=>"ay","\xe0\xa4\x93"=>"o","\xe0\xa4\x94"=>"aw",
+	"\xe0\xa4\x97"=>"g","\xe0\xa4\x98"=>"gh","\xe0\xa4\x99"=>"nh","\xe0\xa4\x9a"=>"c",
+	"\xe0\xa4\x9b"=>"ch","\xe0\xa4\x9c"=>"j","\xe0\xa4\x9d"=>"jh","\xe0\xa4\x9e"=>"ny",
+	"\xe0\xa4\x9f"=>"tq","\xe0\xa4\xa0"=>"tqh","\xe0\xa4\xa1"=>"dq","\xe0\xa4\xa2"=>"dqh",
+	"\xe0\xa4\xa3"=>"nq","\xe0\xa4\xa4"=>"t","\xe0\xa4\xa5"=>"th","\xe0\xa4\xa6"=>"d",
+	"\xe0\xa4\xa7"=>"dh","\xe0\xa4\xa8"=>"n","\xe0\xa4\xaa"=>"p","\xe0\xa4\xab"=>"ph",
+	"\xe0\xa4\xac"=>"b","\xe0\xa4\xad"=>"bh","\xe0\xa4\xae"=>"m","\xe0\xa4\xaf"=>"z",
+	"\xe0\xa4\xb0"=>"r","\xe0\xa4\xb2"=>"l","\xe0\xa4\xb5"=>"v","\xe0\xa4\xb6"=>"sh",
+	"\xe0\xa4\xb7"=>"sqh","\xe0\xa4\xb8"=>"s","\xe0\xa4\xb9"=>"x",
+	// Hebrew - thanks to forum-member iti
+	"\xd7\x95\xd7\x90"=>"va","\xd7\x95\xd7\x91"=>"vb","\xd7\x95\xd7\x92"=>"vg",
+	"\xd7\x95\xd7\x93"=>"vd","\xd7\x95\xd7\x94"=>"vh","\xd7\x95\xd7\x95"=>"vo",
+	"\xd7\x95\xd7\x96"=>"vz","\xd7\x95\xd7\x97"=>"vch","\xd7\x95\xd7\x98"=>"vt",
+	"\xd7\x95\xd7\x99\xd7\x99"=>"vyi","\xd7\x95\xd7\x99"=>"vi","\xd7\x95\xd7\x9a"=>"vkh",
+	"\xd7\x95\xd7\x9b"=>"vk","\xd7\x95\xd7\x9c"=>"vl","\xd7\x95\xd7\x9e"=>"vm",
+	"\xd7\x95\xd7\xa0"=>"vn","\xd7\x95\xd7\xa1"=>"vs","\xd7\x95\xd7\xa2"=>"va",
+	"\xd7\x95\xd7\xa4"=>"vp","\xd7\x95\xd7\xa6"=>"vtz","\xd7\x95\xd7\xa7"=>"vq",
+	"\xd7\x95\xd7\xa8"=>"vr","\xd7\x95\xd7\xa9"=>"vsh","\xd7\x95\xd7\xaa"=>"vt",
+	"\xd7\x99\xd7\x99"=>"yi",
+	"\xd7\x90"=>"a","\xd7\x91"=>"b","\xd7\x92"=>"g","\xd7\x93"=>"d",
+	"\xd7\x94"=>"h","\xd7\x95"=>"o","\xd7\x96"=>"z","\xd7\x97"=>"ch",
+	"\xd7\x98"=>"t","\xd7\x99"=>"i","\xd7\x9a"=>"kh",
+	"\xd7\x9b"=>"k","\xd7\x9c"=>"l","\xd7\x9d"=>"m","\xd7\x9e"=>"m",
+	"\xd7\x9f"=>"n","\xd7\xa0"=>"n","\xd7\xa1"=>"s","\xd7\xa2"=>"a",
+	"\xd7\xa3"=>"f","\xd7\xa4"=>"p","\xd7\xa5"=>"tz","\xd7\xa6"=>"tz",
+	"\xd7\xa7"=>"q","\xd7\xa8"=>"r","\xd7\xa9"=>"sh","\xd7\xaa"=>"t",
+	// Arabic
+	"\xd8\xa7"=>"a","\xd8\xa8"=>"b","\xd8\xaa"=>"t","\xd8\xab"=>"th",
+	"\xd8\xac"=>"g","\xd8\xad"=>"xh","\xd8\xae"=>"x","\xd8\xaf"=>"d",
+	"\xd8\xb0"=>"dh","\xd8\xb1"=>"r","\xd8\xb2"=>"z","\xd8\xb3"=>"s",
+	"\xd8\xb4"=>"sh","\xd8\xb5"=>"s_","\xd8\xb6"=>"d_","\xd8\xb7"=>"t_",
+	"\xd8\xb8"=>"z_","\xd8\xb9"=>"y","\xd8\xba"=>"gh","\xd9\x81"=>"f",
+	"\xd9\x82"=>"q","\xd9\x83"=>"k","\xd9\x84"=>"l","\xd9\x85"=>"m",
+	"\xd9\x86"=>"n","\xd9\x87"=>"x_","\xd9\x88"=>"u","\xd9\x8a"=>"i",
+	// Japanese hiragana
+	"\xe3\x81\xb3\xe3\x82\x83"=>"bya","\xe3\x81\xb3\xe3\x81\x87"=>"bye","\xe3\x81\xb3\xe3\x81\x83"=>"byi",
+	"\xe3\x81\xb3\xe3\x82\x87"=>"byo","\xe3\x81\xb3\xe3\x82\x85"=>"byu","\xe3\x81\xa1\xe3\x82\x83"=>"tya","\xe3\x81\xa1\xe3\x81\x87"=>"tye",
+	"\xe3\x81\xa1\xe3\x82\x87"=>"tyo","\xe3\x81\xa1\xe3\x82\x85"=>"tyu","\xe3\x81\xa1\xe3\x81\x83"=>"tyi",
+	"\xe3\x81\xa7\xe3\x82\x83"=>"dha","\xe3\x81\xa7\xe3\x81\x87"=>"dhe","\xe3\x81\xa7\xe3\x81\x83"=>"dhi","\xe3\x81\xa7\xe3\x82\x87"=>"dho",
+	"\xe3\x81\xa7\xe3\x82\x85"=>"dhu","\xe3\x81\xa9\xe3\x81\x81"=>"dwa","\xe3\x81\xa9\xe3\x81\x87"=>"dwe","\xe3\x81\xa9\xe3\x81\x83"=>"dwi",
+	"\xe3\x81\xa9\xe3\x81\x89"=>"dwo","\xe3\x81\xa9\xe3\x81\x85"=>"dwu","\xe3\x81\xa2\xe3\x82\x83"=>"dya","\xe3\x81\xa2\xe3\x81\x87"=>"dye",
+	"\xe3\x81\xa2\xe3\x81\x83"=>"dyi","\xe3\x81\xa2\xe3\x82\x87"=>"dyo","\xe3\x81\xa2\xe3\x82\x85"=>"dyu","\xe3\x81\xa2"=>"di",
+	"\xe3\x81\xb5\xe3\x81\x81"=>"fa","\xe3\x81\xb5\xe3\x81\x87"=>"fe","\xe3\x81\xb5\xe3\x81\x83"=>"fi","\xe3\x81\xb5\xe3\x81\x89"=>"fo",
+	"\xe3\x81\xb5\xe3\x81\x85"=>"fwu","\xe3\x81\xb5\xe3\x82\x83"=>"fya","\xe3\x81\xb5\xe3\x82\x87"=>"fyo","\xe3\x81\xb5\xe3\x82\x85"=>"fyu",
+	"\xe3\x81\x8e\xe3\x82\x83"=>"gya","\xe3\x81\x8e\xe3\x81\x87"=>"gye","\xe3\x81\x8e\xe3\x81\x83"=>"gyi","\xe3\x81\x8e\xe3\x82\x87"=>"gyo",
+	"\xe3\x81\x8e\xe3\x82\x85"=>"gyu","\xe3\x81\xb2\xe3\x82\x83"=>"hya","\xe3\x81\xb2\xe3\x81\x87"=>"hye","\xe3\x81\xb2\xe3\x81\x83"=>"hyi",
+	"\xe3\x81\xb2\xe3\x82\x87"=>"hyo","\xe3\x81\xb2\xe3\x82\x85"=>"hyu","\xe3\x81\x98\xe3\x82\x83"=>"ja","\xe3\x81\x98\xe3\x81\x87"=>"je",
+	"\xe3\x81\x98\xe3\x81\x83"=>"zyi","\xe3\x81\x98\xe3\x82\x87"=>"jo","\xe3\x81\x98\xe3\x82\x85"=>"ju","\xe3\x81\x8d\xe3\x82\x83"=>"kya",
+	"\xe3\x81\x8d\xe3\x81\x87"=>"kye","\xe3\x81\x8d\xe3\x81\x83"=>"kyi","\xe3\x81\x8d\xe3\x82\x87"=>"kyo","\xe3\x81\x8d\xe3\x82\x85"=>"kyu",
+	"\xe3\x82\x8a\xe3\x82\x83"=>"rya","\xe3\x82\x8a\xe3\x81\x87"=>"rye","\xe3\x82\x8a\xe3\x81\x83"=>"ryi","\xe3\x82\x8a\xe3\x82\x87"=>"ryo",
+	"\xe3\x82\x8a\xe3\x82\x85"=>"ryu","\xe3\x81\xbf\xe3\x82\x83"=>"mya","\xe3\x81\xbf\xe3\x81\x87"=>"mye","\xe3\x81\xbf\xe3\x81\x83"=>"myi",
+	"\xe3\x81\xbf\xe3\x82\x87"=>"myo","\xe3\x81\xbf\xe3\x82\x85"=>"myu","\xe3\x81\xab\xe3\x82\x83"=>"nya",
+	"\xe3\x81\xab\xe3\x81\x87"=>"nye","\xe3\x81\xab\xe3\x81\x83"=>"nyi","\xe3\x81\xab\xe3\x82\x87"=>"nyo","\xe3\x81\xab\xe3\x82\x85"=>"nyu",
+	"\xe3\x81\xb4\xe3\x82\x83"=>"pya","\xe3\x81\xb4\xe3\x81\x87"=>"pye","\xe3\x81\xb4\xe3\x81\x83"=>"pyi","\xe3\x81\xb4\xe3\x82\x87"=>"pyo",
+	"\xe3\x81\xb4\xe3\x82\x85"=>"pyu","\xe3\x81\x97\xe3\x82\x83"=>"sya","\xe3\x81\x97\xe3\x81\x87"=>"sye","\xe3\x81\x97"=>"si",
+	"\xe3\x81\x97\xe3\x82\x87"=>"syo","\xe3\x81\x97\xe3\x82\x85"=>"syu","\xe3\x81\x99\xe3\x81\x81"=>"swa","\xe3\x81\x99\xe3\x81\x87"=>"swe",
+	"\xe3\x81\x99\xe3\x81\x83"=>"swi","\xe3\x81\x99\xe3\x81\x89"=>"swo","\xe3\x81\x99\xe3\x81\x85"=>"swu","\xe3\x81\x97\xe3\x81\x83"=>"syi",
+	"\xe3\x81\xa6\xe3\x82\x83"=>"tha","\xe3\x81\xa6\xe3\x81\x87"=>"the","\xe3\x81\xa6\xe3\x81\x83"=>"thi","\xe3\x81\xa6\xe3\x82\x87"=>"tho",
+	"\xe3\x81\xa6\xe3\x82\x85"=>"thu","\xe3\x81\xa4\xe3\x82\x83"=>"tsa","\xe3\x81\xa4\xe3\x81\x87"=>"tse","\xe3\x81\xa4\xe3\x81\x83"=>"tsi",
+	"\xe3\x81\xa4\xe3\x82\x87"=>"tso","\xe3\x81\xa4"=>"tu","\xe3\x81\xa8\xe3\x81\x81"=>"twa","\xe3\x81\xa8\xe3\x81\x87"=>"twe",
+	"\xe3\x81\xa8\xe3\x81\x83"=>"twi","\xe3\x81\xa8\xe3\x81\x89"=>"two","\xe3\x81\xa8\xe3\x81\x85"=>"twu","\xe3\x83\xb4\xe3\x82\x83"=>"vya",
+	"\xe3\x83\xb4\xe3\x81\x87"=>"ve","\xe3\x83\xb4\xe3\x81\x83"=>"vi","\xe3\x83\xb4\xe3\x82\x87"=>"vyo","\xe3\x83\xb4\xe3\x82\x85"=>"vyu",
+	"\xe3\x81\x86\xe3\x81\x81"=>"wha","\xe3\x81\x86\xe3\x81\x87"=>"we","\xe3\x81\x86\xe3\x81\x83"=>"wi","\xe3\x81\x86\xe3\x81\x89"=>"who",
+	"\xe3\x81\x86\xe3\x81\x85"=>"whu","\xe3\x82\x91"=>"wye","\xe3\x82\x90"=>"wyi","\xe3\x81\x84\xe3\x81\x87"=>"ye",
+	"\xe3\x82\x93"=>"n","\xe3\x81\x82"=>"a",
+	"\xe3\x81\x88"=>"e","\xe3\x81\x84"=>"yi","\xe3\x81\x8a"=>"o","\xe3\x81\x86"=>"u",
+	"\xe3\x81\xb0"=>"ba","\xe3\x81\xb9"=>"be","\xe3\x81\xb3"=>"bi","\xe3\x81\xbc"=>"bo",
+	"\xe3\x81\xb6"=>"bu","\xe3\x81\xa0"=>"da","\xe3\x81\xa7"=>"de","\xe3\x81\xa9"=>"do",
+	"\xe3\x81\xa5"=>"du","\xe3\x81\xb5"=>"hu","\xe3\x81\x8c"=>"ga","\xe3\x81\x92"=>"ge",
+	"\xe3\x81\x8e"=>"gi","\xe3\x81\x94"=>"go","\xe3\x81\x90"=>"gu","\xe3\x81\xaf"=>"ha",
+	"\xe3\x81\xb8"=>"he","\xe3\x81\xb2"=>"hi","\xe3\x81\xbb"=>"ho","\xe3\x81\x98"=>"zi",
+	"\xe3\x81\x8b"=>"ka","\xe3\x81\x91"=>"ke","\xe3\x81\x8d"=>"ki","\xe3\x81\x93"=>"ko",
+	"\xe3\x81\x8f"=>"ku","\xe3\x82\x89"=>"ra","\xe3\x82\x8c"=>"re","\xe3\x82\x8a"=>"ri",
+	"\xe3\x82\x8d"=>"ro","\xe3\x82\x8b"=>"ru","\xe3\x81\xbe"=>"ma","\xe3\x82\x81"=>"me",
+	"\xe3\x81\xbf"=>"mi","\xe3\x82\x82"=>"mo","\xe3\x82\x80"=>"mu","\xe3\x81\xaa"=>"na",
+	"\xe3\x81\xad"=>"ne","\xe3\x81\xab"=>"ni","\xe3\x81\xae"=>"no","\xe3\x81\xac"=>"nu",
+	"\xe3\x81\xb1"=>"pa","\xe3\x81\xba"=>"pe","\xe3\x81\xb4"=>"pi","\xe3\x81\xbd"=>"po",
+	"\xe3\x81\xb7"=>"pu","\xe3\x81\x95"=>"sa","\xe3\x81\x9b"=>"se","\xe3\x81\x9d"=>"so",
+	"\xe3\x81\x99"=>"su","\xe3\x81\x9f"=>"ta","\xe3\x81\xa6"=>"te","\xe3\x81\xa8"=>"to","\xe3\x81\xa1"=>"ti",
+	"\xe3\x83\xb4\xe3\x81\x81"=>"va","\xe3\x83\xb4\xe3\x81\x89"=>"vo","\xe3\x83\xb4"=>"vu","\xe3\x82\x8f"=>"wa",
+	"\xe3\x82\x92"=>"wo","\xe3\x82\x84"=>"ya","\xe3\x82\x88"=>"yo",
+	"\xe3\x82\x86"=>"yu","\xe3\x81\x96"=>"za","\xe3\x81\x9c"=>"ze","\xe3\x81\x9e"=>"zo",
+	"\xe3\x81\x9a"=>"zu",
+	// Japanese katakana
+	"\xe3\x83\x93\xe3\x83\xa3"=>"bya","\xe3\x83\x93\xe3\x82\xa7"=>"bye",
+	"\xe3\x83\x93\xe3\x82\xa3"=>"byi","\xe3\x83\x93\xe3\x83\xa7"=>"byo","\xe3\x83\x93\xe3\x83\xa5"=>"byu","\xe3\x83\x81\xe3\x83\xa3"=>"tya",
+	"\xe3\x83\x81\xe3\x82\xa7"=>"tye","\xe3\x83\x81"=>"ti","\xe3\x83\x81\xe3\x83\xa7"=>"tyo","\xe3\x83\x81\xe3\x83\xa5"=>"tyu",
+	"\xe3\x83\x81\xe3\x82\xa3"=>"tyi","\xe3\x83\x87\xe3\x83\xa3"=>"dha","\xe3\x83\x87\xe3\x82\xa7"=>"dhe","\xe3\x83\x87\xe3\x82\xa3"=>"dhi",
+	"\xe3\x83\x87\xe3\x83\xa7"=>"dho","\xe3\x83\x87\xe3\x83\xa5"=>"dhu","\xe3\x83\x89\xe3\x82\xa1"=>"dwa","\xe3\x83\x89\xe3\x82\xa7"=>"dwe",
+	"\xe3\x83\x89\xe3\x82\xa3"=>"dwi","\xe3\x83\x89\xe3\x82\xa9"=>"dwo","\xe3\x83\x89\xe3\x82\xa5"=>"dwu","\xe3\x83\x82\xe3\x83\xa3"=>"dya",
+	"\xe3\x83\x82\xe3\x82\xa7"=>"dye","\xe3\x83\x82\xe3\x82\xa3"=>"dyi","\xe3\x83\x82\xe3\x83\xa7"=>"dyo","\xe3\x83\x82\xe3\x83\xa5"=>"dyu",
+	"\xe3\x83\x95\xe3\x82\xa1"=>"fa","\xe3\x83\x95\xe3\x82\xa7"=>"fe","\xe3\x83\x95\xe3\x82\xa3"=>"fi",
+	"\xe3\x83\x95\xe3\x82\xa9"=>"fo","\xe3\x83\x95\xe3\x82\xa5"=>"fwu","\xe3\x83\x95\xe3\x83\xa3"=>"fya","\xe3\x83\x95\xe3\x83\xa7"=>"fyo",
+	"\xe3\x83\x95\xe3\x83\xa5"=>"fyu","\xe3\x82\xae\xe3\x83\xa3"=>"gya","\xe3\x82\xae\xe3\x82\xa7"=>"gye","\xe3\x82\xae\xe3\x82\xa3"=>"gyi",
+	"\xe3\x82\xae\xe3\x83\xa7"=>"gyo","\xe3\x82\xae\xe3\x83\xa5"=>"gyu","\xe3\x83\x92\xe3\x83\xa3"=>"hya","\xe3\x83\x92\xe3\x82\xa7"=>"hye",
+	"\xe3\x83\x92\xe3\x82\xa3"=>"hyi","\xe3\x83\x92\xe3\x83\xa7"=>"hyo","\xe3\x83\x92\xe3\x83\xa5"=>"hyu","\xe3\x82\xb8\xe3\x83\xa3"=>"ja",
+	"\xe3\x82\xb8\xe3\x82\xa7"=>"je","\xe3\x82\xb8\xe3\x82\xa3"=>"zyi","\xe3\x82\xb8\xe3\x83\xa7"=>"jo","\xe3\x82\xb8\xe3\x83\xa5"=>"ju",
+	"\xe3\x82\xad\xe3\x83\xa3"=>"kya","\xe3\x82\xad\xe3\x82\xa7"=>"kye","\xe3\x82\xad\xe3\x82\xa3"=>"kyi","\xe3\x82\xad\xe3\x83\xa7"=>"kyo",
+	"\xe3\x82\xad\xe3\x83\xa5"=>"kyu","\xe3\x83\xaa\xe3\x83\xa3"=>"rya","\xe3\x83\xaa\xe3\x82\xa7"=>"rye","\xe3\x83\xaa\xe3\x82\xa3"=>"ryi",
+	"\xe3\x83\xaa\xe3\x83\xa7"=>"ryo","\xe3\x83\xaa\xe3\x83\xa5"=>"ryu","\xe3\x83\x9f\xe3\x83\xa3"=>"mya","\xe3\x83\x9f\xe3\x82\xa7"=>"mye",
+	"\xe3\x83\x9f\xe3\x82\xa3"=>"myi","\xe3\x83\x9f\xe3\x83\xa7"=>"myo","\xe3\x83\x9f\xe3\x83\xa5"=>"myu","\xe3\x83\xb3"=>"n",
+	"\xe3\x83\x8b\xe3\x83\xa3"=>"nya","\xe3\x83\x8b\xe3\x82\xa7"=>"nye","\xe3\x83\x8b\xe3\x82\xa3"=>"nyi","\xe3\x83\x8b\xe3\x83\xa7"=>"nyo",
+	"\xe3\x83\x8b\xe3\x83\xa5"=>"nyu","\xe3\x83\x94\xe3\x83\xa3"=>"pya","\xe3\x83\x94\xe3\x82\xa7"=>"pye","\xe3\x83\x94\xe3\x82\xa3"=>"pyi",
+	"\xe3\x83\x94\xe3\x83\xa7"=>"pyo","\xe3\x83\x94\xe3\x83\xa5"=>"pyu","\xe3\x82\xb7\xe3\x83\xa3"=>"sya","\xe3\x82\xb7\xe3\x82\xa7"=>"sye",
+	"\xe3\x82\xb7\xe3\x83\xa7"=>"syo","\xe3\x82\xb7\xe3\x83\xa5"=>"syu","\xe3\x82\xb9\xe3\x82\xa1"=>"swa",
+	"\xe3\x82\xb9\xe3\x82\xa7"=>"swe","\xe3\x82\xb9\xe3\x82\xa3"=>"swi","\xe3\x82\xb9\xe3\x82\xa9"=>"swo","\xe3\x82\xb9\xe3\x82\xa5"=>"swu",
+	"\xe3\x82\xb7\xe3\x82\xa3"=>"syi","\xe3\x83\x86\xe3\x83\xa3"=>"tha","\xe3\x83\x86\xe3\x82\xa7"=>"the","\xe3\x83\x86\xe3\x82\xa3"=>"thi",
+	"\xe3\x83\x86\xe3\x83\xa7"=>"tho","\xe3\x83\x86\xe3\x83\xa5"=>"thu","\xe3\x83\x84\xe3\x83\xa3"=>"tsa","\xe3\x83\x84\xe3\x82\xa7"=>"tse",
+	"\xe3\x83\x84\xe3\x82\xa3"=>"tsi","\xe3\x83\x84\xe3\x83\xa7"=>"tso","\xe3\x83\x84"=>"tu","\xe3\x83\x88\xe3\x82\xa1"=>"twa",
+	"\xe3\x83\x88\xe3\x82\xa7"=>"twe","\xe3\x83\x88\xe3\x82\xa3"=>"twi","\xe3\x83\x88\xe3\x82\xa9"=>"two","\xe3\x83\x88\xe3\x82\xa5"=>"twu",
+	"\xe3\x83\xb4\xe3\x83\xa3"=>"vya","\xe3\x83\xb4\xe3\x82\xa7"=>"ve","\xe3\x83\xb4\xe3\x82\xa3"=>"vi","\xe3\x83\xb4\xe3\x83\xa7"=>"vyo",
+	"\xe3\x83\xb4\xe3\x83\xa5"=>"vyu","\xe3\x82\xa6\xe3\x82\xa1"=>"wha","\xe3\x82\xa6\xe3\x82\xa7"=>"we","\xe3\x82\xa6\xe3\x82\xa3"=>"wi",
+	"\xe3\x82\xa6\xe3\x82\xa9"=>"who","\xe3\x82\xa6\xe3\x82\xa5"=>"whu","\xe3\x83\xb1"=>"wye","\xe3\x83\xb0"=>"wyi",
+	"\xe3\x83\x82"=>"di","\xe3\x82\xb7"=>"si",
+	"\xe3\x82\xa2"=>"a","\xe3\x82\xa8"=>"e","\xe3\x82\xa4"=>"yi","\xe3\x82\xaa"=>"o",
+	"\xe3\x82\xa6"=>"u","\xe3\x83\x90"=>"ba","\xe3\x83\x99"=>"be","\xe3\x83\x93"=>"bi",
+	"\xe3\x83\x9c"=>"bo","\xe3\x83\x96"=>"bu","\xe3\x83\x80"=>"da","\xe3\x83\x87"=>"de",
+	"\xe3\x83\x89"=>"do","\xe3\x83\x85"=>"du","\xe3\x83\x95"=>"hu","\xe3\x82\xac"=>"ga",
+	"\xe3\x82\xb2"=>"ge","\xe3\x82\xae"=>"gi","\xe3\x82\xb4"=>"go","\xe3\x82\xb0"=>"gu",
+	"\xe3\x83\x8f"=>"ha","\xe3\x83\x98"=>"he","\xe3\x83\x92"=>"hi","\xe3\x83\x9b"=>"ho",
+	"\xe3\x82\xb8"=>"zi","\xe3\x82\xab"=>"ka","\xe3\x82\xb1"=>"ke","\xe3\x82\xad"=>"ki",
+	"\xe3\x82\xb3"=>"ko","\xe3\x82\xaf"=>"ku","\xe3\x83\xa9"=>"ra","\xe3\x83\xac"=>"re",
+	"\xe3\x83\xaa"=>"ri","\xe3\x83\xad"=>"ro","\xe3\x83\xab"=>"ru","\xe3\x83\x9e"=>"ma",
+	"\xe3\x83\xa1"=>"me","\xe3\x83\x9f"=>"mi","\xe3\x83\xa2"=>"mo","\xe3\x83\xa0"=>"mu",
+	"\xe3\x83\x8a"=>"na","\xe3\x83\x8d"=>"ne","\xe3\x83\x8b"=>"ni","\xe3\x83\x8e"=>"no",
+	"\xe3\x83\x8c"=>"nu","\xe3\x83\x91"=>"pa","\xe3\x83\x9a"=>"pe","\xe3\x83\x94"=>"pi",
+	"\xe3\x83\x9d"=>"po","\xe3\x83\x97"=>"pu","\xe3\x82\xb5"=>"sa","\xe3\x82\xbb"=>"se",
+	"\xe3\x82\xbd"=>"so","\xe3\x82\xb9"=>"su","\xe3\x82\xbf"=>"ta","\xe3\x83\x86"=>"te",
+	"\xe3\x83\x88"=>"to","\xe3\x83\xb4\xe3\x82\xa1"=>"va","\xe3\x83\xb4\xe3\x82\xa9"=>"vo","\xe3\x83\xaf"=>"wa",
+	"\xe3\x83\xb2"=>"wo","\xe3\x83\xa4"=>"ya","\xe3\x82\xa4\xe3\x82\xa7"=>"ye","\xe3\x83\xa8"=>"yo",
+	"\xe3\x83\xa6"=>"yu","\xe3\x82\xb6"=>"za","\xe3\x82\xbc"=>"ze","\xe3\x82\xbe"=>"zo",
+	"\xe3\x82\xba"=>"zu","\xe3\x83\xbc"=>"-",
+	// Thai
+	"\xe0\xb8\xb5\xe0\xb8\xa2\xe0\xb8\xb0"=>"ia",
+	"\xe0\xb8\xb5\xe0\xb8\xa2"=>"ia","\xe0\xb8\xb7\xe0\xb8\xad\xe0\xb8\xb0"=>"uea","\xe0\xb8\xb7\xe0\xb8\xad"=>"uea","\xe0\xb8\xb1\xe0\xb8\xa7\xe0\xb8\xb0"=>"ua",
+	"\xe0\xb8\xb1\xe0\xb8\xa7"=>"ua","\xe0\xb8\xa3\xe0\xb8\xa3"=>"a","\xe0\xb8\xa6\xe0\xb9\x85"=>"lue","\xe0\xb9\x83"=>"ai",
+	"\xe0\xb9\x84"=>"ai","\xe0\xb8\xb1\xe0\xb8\xa2"=>"ai","\xe0\xb8\xb2\xe0\xb8\xa2"=>"ai","\xe0\xb8\xb2\xe0\xb8\xa7"=>"ao",
+	"\xe0\xb8\xb8\xe0\xb8\xa2"=>"ui","\xe0\xb8\xad\xe0\xb8\xa2"=>"oi","\xe0\xb8\xb7\xe0\xb8\xad\xe0\xb8\xa2"=>"ueai","\xe0\xb8\xa7\xe0\xb8\xa2"=>"uai",
+	"\xe0\xb8\x81"=>"k","\xe0\xb8\x82"=>"kh","\xe0\xb8\x83"=>"kh","\xe0\xb8\x84"=>"kh",
+	"\xe0\xb8\x85"=>"kh","\xe0\xb8\x86"=>"kh","\xe0\xb8\x87"=>"ng","\xe0\xb8\x88"=>"ch",
+	"\xe0\xb8\x89"=>"ch","\xe0\xb8\x8a"=>"ch","\xe0\xb8\x8b"=>"s","\xe0\xb8\x8c"=>"ch",
+	"\xe0\xb8\x8d"=>"y","\xe0\xb8\x8e"=>"d","\xe0\xb8\x8f"=>"t","\xe0\xb8\x90"=>"th",
+	"\xe0\xb8\x91"=>"d","\xe0\xb8\x92"=>"th","\xe0\xb8\x93"=>"n","\xe0\xb8\x94"=>"d",
+	"\xe0\xb8\x95"=>"t","\xe0\xb8\x96"=>"th","\xe0\xb8\x97"=>"th","\xe0\xb8\x98"=>"th",
+	"\xe0\xb8\x99"=>"n","\xe0\xb8\x9a"=>"b","\xe0\xb8\x9b"=>"p","\xe0\xb8\x9c"=>"ph",
+	"\xe0\xb8\x9d"=>"f","\xe0\xb8\x9e"=>"ph","\xe0\xb8\x9f"=>"f","\xe0\xb8\xa0"=>"ph",
+	"\xe0\xb8\xa1"=>"m","\xe0\xb8\xa2"=>"y","\xe0\xb8\xa3"=>"r","\xe0\xb8\xa4"=>"rue",
+	"\xe0\xb8\xa4\xe0\xb9\x85"=>"rue","\xe0\xb8\xa5"=>"l","\xe0\xb8\xa6"=>"lue","\xe0\xb8\xa7"=>"w",
+	"\xe0\xb8\xa8"=>"s","\xe0\xb8\xa9"=>"s","\xe0\xb8\xaa"=>"s","\xe0\xb8\xab"=>"h",
+	"\xe0\xb8\xac"=>"l","\xe0\xb8\xae"=>"h","\xe0\xb8\xb0"=>"a","\xe0\xb8\xb1"=>"a",
+	"\xe0\xb8\xb2"=>"a","\xe0\xb9\x85"=>"a","\xe0\xb8\xb3"=>"am","\xe0\xb9\x8d\xe0\xb8\xb2"=>"am",
+	"\xe0\xb8\xb4"=>"i","\xe0\xb8\xb5"=>"ue","\xe0\xb8\xb6"=>"ue","\xe0\xb8\xb8"=>"u",
+	"\xe0\xb8\xb9"=>"u","\xe0\xb9\x80"=>"e","\xe0\xb9\x81"=>"ae","\xe0\xb9\x82"=>"o",
+	"\xe0\xb8\xad"=>"o","\xe0\xb8\xb4\xe0\xb8\xa7"=>"io","\xe0\xb9\x87\xe0\xb8\xa7"=>"eo","\xe0\xb8\xb5\xe0\xb8\xa2\xe0\xb8\xa7"=>"iao",
+	"\xe0\xb9\x88"=>"","\xe0\xb9\x89"=>"","\xe0\xb9\x8a"=>"","\xe0\xb9\x8b"=>"",
+	"\xe0\xb9\x87"=>"","\xe0\xb9\x8c"=>"","\xe0\xb9\x8e"=>"","\xe0\xb9\x8d"=>"",
+	"\xe0\xb8\xba"=>"","\xe0\xb9\x86"=>"2","\xe0\xb9\x8f"=>"o","\xe0\xb8\xaf"=>"-",
+	"\xe0\xb9\x9a"=>"-","\xe0\xb9\x9b"=>"-","\xe0\xb9\x90"=>"0","\xe0\xb9\x91"=>"1",
+	"\xe0\xb9\x92"=>"2","\xe0\xb9\x93"=>"3","\xe0\xb9\x94"=>"4","\xe0\xb9\x95"=>"5",
+	"\xe0\xb9\x96"=>"6","\xe0\xb9\x97"=>"7","\xe0\xb9\x98"=>"8","\xe0\xb9\x99"=>"9",
+	// Korean
+	"\xe3\x84\xb1"=>"k","\xe3\x85\x8b"=>"kh","\xe3\x84\xb2"=>"kk",
+	"\xe3\x84\xb7"=>"t","\xe3\x85\x8c"=>"th","\xe3\x84\xb8"=>"tt","\xe3\x85\x82"=>"p",
+	"\xe3\x85\x8d"=>"ph","\xe3\x85\x83"=>"pp","\xe3\x85\x88"=>"c","\xe3\x85\x8a"=>"ch",
+	"\xe3\x85\x89"=>"cc","\xe3\x85\x85"=>"s","\xe3\x85\x86"=>"ss","\xe3\x85\x8e"=>"h",
+	"\xe3\x85\x87"=>"ng","\xe3\x84\xb4"=>"n","\xe3\x84\xb9"=>"l","\xe3\x85\x81"=>"m",
+	"\xe3\x85\x8f"=>"a","\xe3\x85\x93"=>"e","\xe3\x85\x97"=>"o","\xe3\x85\x9c"=>"wu",
+	"\xe3\x85\xa1"=>"u","\xe3\x85\xa3"=>"i","\xe3\x85\x90"=>"ay","\xe3\x85\x94"=>"ey",
+	"\xe3\x85\x9a"=>"oy","\xe3\x85\x98"=>"wa","\xe3\x85\x9d"=>"we","\xe3\x85\x9f"=>"wi",
+	"\xe3\x85\x99"=>"way","\xe3\x85\x9e"=>"wey","\xe3\x85\xa2"=>"uy","\xe3\x85\x91"=>"ya",
+	"\xe3\x85\x95"=>"ye","\xe3\x85\x9b"=>"oy","\xe3\x85\xa0"=>"yu","\xe3\x85\x92"=>"yay",
+	"\xe3\x85\x96"=>"yey"
+);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/charsets_table.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.login.php
===================================================================
--- tags/2.7.0/wb/framework/class.login.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.login.php	(revision 838)
@@ -0,0 +1,424 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Login class
+
+This class will be used to with the login application
+
+*/
+
+// Stop this file from being accessed directly
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+define('LOGIN_CLASS_LOADED', true);
+
+// Load the other required class files if they are not already loaded
+require_once(WB_PATH."/framework/class.admin.php");
+
+class login extends admin {
+	function login($config_array) {
+		// Get language vars
+		global $MESSAGE;
+		$this->wb();
+		// Get configuration values
+		$this->USERS_TABLE = $config_array['USERS_TABLE'];
+		$this->GROUPS_TABLE = $config_array['GROUPS_TABLE'];
+		$this->username_fieldname = $config_array['USERNAME_FIELDNAME'];
+		$this->password_fieldname = $config_array['PASSWORD_FIELDNAME'];
+		$this->remember_me_option = $config_array['REMEMBER_ME_OPTION'];
+		$this->max_attemps = $config_array['MAX_ATTEMPS'];
+		$this->warning_url = $config_array['WARNING_URL'];
+		$this->login_url = $config_array['LOGIN_URL'];
+		$this->template_dir = $config_array['TEMPLATE_DIR'];
+		$this->template_file = $config_array['TEMPLATE_FILE'];
+		$this->frontend = $config_array['FRONTEND'];
+		$this->forgotten_details_app = $config_array['FORGOTTEN_DETAILS_APP'];
+		$this->max_username_len = $config_array['MAX_USERNAME_LEN'];
+		$this->max_password_len = $config_array['MAX_PASSWORD_LEN'];
+		if (array_key_exists('REDIRECT_URL',$config_array))
+			$this->redirect_url = $config_array['REDIRECT_URL'];
+		else
+			$this->redirect_url = '';
+		// Get the supplied username and password
+		if ($this->get_post('username_fieldname') != ''){
+			$username_fieldname = $this->get_post('username_fieldname');
+			$password_fieldname = $this->get_post('password_fieldname');
+		} else {
+			$username_fieldname = 'username';
+			$password_fieldname = 'password';
+		}
+		$this->username = $this->add_slashes(strtolower($this->get_post($username_fieldname)));
+		$this->password = $this->get_post($password_fieldname);
+		// Figure out if the "remember me" option has been checked
+		if($this->get_post('remember') == 'true') {
+			$this->remember = $this->get_post('remember');
+		} else {
+			$this->remember = false;
+		}
+		// Get the length of the supplied username and password
+		if($this->get_post($username_fieldname) != '') {
+			$this->username_len = strlen($this->username);
+			$this->password_len = strlen($this->password);
+		}
+		// If the url is blank, set it to the default url
+		$this->url = $this->get_post('url');
+		if ($this->redirect_url!='') {
+			$this->url = $this->redirect_url;
+		}		
+		if(strlen($this->url) < 2) {
+			$this->url = $config_array['DEFAULT_URL'];
+		}
+		if($this->is_authenticated() == true) {
+			// User already logged-in, so redirect to default url
+			header('Location: '.$this->url);
+			exit();
+		} elseif($this->is_remembered() == true) {
+			// User has been "remembered"
+			// Get the users password
+			$database = new database();
+			$query_details = $database->query("SELECT * FROM ".$this->USERS_TABLE." WHERE user_id = '".$this->get_safe_remember_key()."' LIMIT 1");
+			$fetch_details = $query_details->fetchRow();
+			$this->username = $fetch_details['username'];
+			$this->password = $fetch_details['password'];
+			// Check if the user exists (authenticate them)
+			if($this->authenticate()) {
+				// Authentication successful
+				header("Location: ".$this->url);
+				exit(0);
+			} else {
+				$this->message = $MESSAGE['LOGIN']['AUTHENTICATION_FAILED'];
+				$this->increase_attemps();
+			}
+		} elseif($this->username == '' AND $this->password == '') {
+			$this->message = $MESSAGE['LOGIN']['BOTH_BLANK'];
+			$this->increase_attemps();
+		} elseif($this->username == '') {
+			$this->message = $MESSAGE['LOGIN']['USERNAME_BLANK'];
+			$this->increase_attemps();
+		} elseif($this->password == '') {
+			$this->message = $MESSAGE['LOGIN']['PASSWORD_BLANK'];
+			$this->increase_attemps();
+		} elseif($this->username_len < $config_array['MIN_USERNAME_LEN']) {
+			$this->message = $MESSAGE['LOGIN']['USERNAME_TOO_SHORT'];
+			$this->increase_attemps();
+		} elseif($this->password_len < $config_array['MIN_PASSWORD_LEN']) {
+			$this->message = $MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'];
+			$this->increase_attemps();
+		} elseif($this->username_len > $config_array['MAX_USERNAME_LEN']) {
+			$this->message = $MESSAGE['LOGIN']['USERNAME_TOO_LONG'];
+			$this->increase_attemps();
+		} elseif($this->password_len > $config_array['MAX_PASSWORD_LEN']) {
+			$this->message = $MESSAGE['LOGIN']['PASSWORD_TOO_LONG'];
+			$this->increase_attemps();
+		} else {
+			// Check if the user exists (authenticate them)
+			$this->password = md5($this->password);
+			if($this->authenticate()) {
+				// Authentication successful
+				//echo $this->url;exit();
+				header("Location: ".$this->url);
+				exit(0);
+			} else {
+				$this->message = $MESSAGE['LOGIN']['AUTHENTICATION_FAILED'];
+				$this->increase_attemps();
+			}
+		}
+	}
+	
+	// Authenticate the user (check if they exist in the database)
+	function authenticate() {
+		// Get user information
+		$database = new database();
+		$query = "SELECT * FROM ".$this->USERS_TABLE." WHERE username = '".$this->username."' AND password = '".$this->password."' AND active = '1'";
+		$results = $database->query($query);
+		$results_array = $results->fetchRow();
+		$num_rows = $results->numRows();
+		if($num_rows) {
+			$user_id = $results_array['user_id'];
+			$this->user_id = $user_id;
+			$_SESSION['USER_ID'] = $user_id;
+			$_SESSION['GROUP_ID'] = $results_array['group_id'];
+			$_SESSION['GROUPS_ID'] = $results_array['groups_id'];
+			$_SESSION['USERNAME'] = $results_array['username'];
+			$_SESSION['DISPLAY_NAME'] = $results_array['display_name'];
+			$_SESSION['EMAIL'] = $results_array['email'];
+			$_SESSION['HOME_FOLDER'] = $results_array['home_folder'];
+			// Run remember function if needed
+			if($this->remember == true) {
+				$this->remember($this->user_id);
+			}
+			// Set language
+			if($results_array['language'] != '') {
+				$_SESSION['LANGUAGE'] = $results_array['language'];
+			}
+			// Set timezone
+			if($results_array['timezone'] != '-72000') {
+				$_SESSION['TIMEZONE'] = $results_array['timezone'];
+			} else {
+				// Set a session var so apps can tell user is using default tz
+				$_SESSION['USE_DEFAULT_TIMEZONE'] = true;
+			}
+			// Set date format
+			if($results_array['date_format'] != '') {
+				$_SESSION['DATE_FORMAT'] = $results_array['date_format'];
+			} else {
+				// Set a session var so apps can tell user is using default date format
+				$_SESSION['USE_DEFAULT_DATE_FORMAT'] = true;
+			}
+			// Set time format
+			if($results_array['time_format'] != '') {
+				$_SESSION['TIME_FORMAT'] = $results_array['time_format'];
+			} else {
+				// Set a session var so apps can tell user is using default time format
+				$_SESSION['USE_DEFAULT_TIME_FORMAT'] = true;
+			}
+			// Get group information
+//			$query = "SELECT * FROM ".$this->GROUPS_TABLE." WHERE group_id = '".$this->get_session('GROUP_ID')."'";
+//			$results = $database->query($query);
+//			$results_array = $results->fetchRow();
+//			$_SESSION['GROUP_NAME'] = $results_array['name'];
+//			// Set system permissions
+//			if($results_array['system_permissions'] != '') {
+//				$_SESSION['SYSTEM_PERMISSIONS'] = explode(',', $results_array['system_permissions']);
+//			} else {
+//				$_SESSION['SYSTEM_PERMISSIONS'] = array();
+//			}
+//			// Set module permissions
+//			if($results_array['module_permissions'] != '') {
+//				$_SESSION['MODULE_PERMISSIONS'] = explode(',', $results_array['module_permissions']);
+//			} else {
+//				$_SESSION['MODULE_PERMISSIONS'] = array();
+//			}
+//			// Set template permissions
+//			if($results_array['template_permissions'] != '') {
+//				$_SESSION['TEMPLATE_PERMISSIONS'] = explode(',', $results_array['template_permissions']);
+//			} else {
+//				$_SESSION['TEMPLATE_PERMISSIONS'] = array();
+//			}
+
+			$_SESSION['SYSTEM_PERMISSIONS'] = array();
+			$_SESSION['MODULE_PERMISSIONS'] = array();
+			$_SESSION['TEMPLATE_PERMISSIONS'] = array();
+			$_SESSION['GROUP_NAME'] = array();
+
+			$first_group = true;
+			foreach (split(",", $this->get_session('GROUPS_ID')) as $cur_group_id) {
+				$query = "SELECT * FROM ".$this->GROUPS_TABLE." WHERE group_id = '".$cur_group_id."'";
+				$results = $database->query($query);
+				$results_array = $results->fetchRow();
+				$_SESSION['GROUP_NAME'][$cur_group_id] = $results_array['name'];
+				// Set system permissions
+				if($results_array['system_permissions'] != '') {
+					$_SESSION['SYSTEM_PERMISSIONS'] = array_merge($_SESSION['SYSTEM_PERMISSIONS'], explode(',', $results_array['system_permissions']));
+				}
+				// Set module permissions
+				if($results_array['module_permissions'] != '') {
+					if ($first_group) {
+          	$_SESSION['MODULE_PERMISSIONS'] = explode(',', $results_array['module_permissions']);
+          } else {
+          	$_SESSION['MODULE_PERMISSIONS'] = array_intersect($_SESSION['MODULE_PERMISSIONS'], explode(',', $results_array['module_permissions']));
+					}
+				}
+				// Set template permissions
+				if($results_array['template_permissions'] != '') {
+					if ($first_group) {
+          	$_SESSION['TEMPLATE_PERMISSIONS'] = explode(',', $results_array['template_permissions']);
+          } else {
+          	$_SESSION['TEMPLATE_PERMISSIONS'] = array_intersect($_SESSION['TEMPLATE_PERMISSIONS'], explode(',', $results_array['template_permissions']));
+					}
+				}
+				$first_group = false;
+			}	
+
+			// Update the users table with current ip and timestamp
+			$get_ts = mktime();
+			$get_ip = $_SERVER['REMOTE_ADDR'];
+			$query = "UPDATE ".$this->USERS_TABLE." SET login_when = '$get_ts', login_ip = '$get_ip' WHERE user_id = '$user_id'";
+			$database->query($query);
+		}
+		// Return if the user exists or not
+		return $num_rows;
+	}
+	
+	// Increase the count for login attemps
+	function increase_attemps() {
+		if(!isset($_SESSION['ATTEMPS'])) {
+			$_SESSION['ATTEMPS'] = 0;
+		} else {
+			$_SESSION['ATTEMPS'] = $this->get_session('ATTEMPS')+1;
+		}
+		$this->display_login();
+	}
+	
+	// Function to set a "remembering" cookie for the user
+	function remember($user_id) {
+		$remember_key = '';
+		// Generate user id to append to the remember key
+		$length = 11-strlen($user_id);
+		if($length > 0) {
+			for($i = 1; $i <= $length; $i++) {
+				$remember_key .= '0';
+			}
+		}
+		// Generate remember key
+		$remember_key .= $user_id.'_';
+		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+		srand((double)microtime()*1000000);
+		$i = 0;
+		while ($i <= 10) {
+			$num = rand() % 33;
+			$tmp = substr($salt, $num, 1);
+			$remember_key = $remember_key . $tmp;
+			$i++;
+		}
+		$remember_key = $remember_key;
+		// Update the remember key in the db
+		$database = new database();
+		$database->query("UPDATE ".$this->USERS_TABLE." SET remember_key = '$remember_key' WHERE user_id = '$user_id' LIMIT 1");
+		if($database->is_error()) {
+			return false;
+		} else {
+			// Workout options for the cookie
+			$cookie_name = 'REMEMBER_KEY';
+			$cookie_value = $remember_key;
+			$cookie_expire = time()+60*60*24*30;
+			// Set the cookie
+			if(setcookie($cookie_name, $cookie_value, $cookie_expire, '/')) {
+				return true;
+			} else {
+				return false;
+			}
+		}
+	}
+	
+	// Function to check if a user has been remembered
+	function is_remembered() {
+		if(isset($_COOKIE['REMEMBER_KEY']) AND $_COOKIE['REMEMBER_KEY'] != '') {
+			// Check if the remember key is correct
+			$database = new database();
+			$check_query = $database->query("SELECT user_id FROM ".$this->USERS_TABLE." WHERE remember_key = '".$this->get_safe_remember_key()."' LIMIT 1");
+			if($check_query->numRows() > 0) {
+				$check_fetch = $check_query->fetchRow();
+				$user_id = $check_fetch['user_id'];
+				// Check the remember key prefix
+				$remember_key_prefix = '';
+				$length = 11-strlen($user_id);
+				if($length > 0) {
+					for($i = 1; $i <= $length; $i++) {
+						$remember_key_prefix .= '0';
+					}
+				}
+				$remember_key_prefix .= $user_id.'_';
+				$length = strlen($remember_key_prefix);
+				if(substr($_COOKIE['REMEMBER_KEY'], 0, $length) == $remember_key_prefix) {
+					return true;
+				} else {
+					return false;
+				}
+			} else {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+	
+	// Display the login screen
+	function display_login() {
+		// Get language vars
+		global $MESSAGE;
+		global $MENU;
+		global $TEXT;
+		// If attemps more than allowed, warn the user
+		if($this->get_session('ATTEMPS') > $this->max_attemps) {
+			$this->warn();
+		}
+		// Show the login form
+		if($this->frontend != true) {
+			require_once(WB_PATH.'/include/phplib/template.inc');
+			$template = new Template($this->template_dir);
+			$template->set_file('page', $this->template_file);
+			$template->set_block('page', 'mainBlock', 'main');
+			if($this->remember_me_option != true) {
+				$template->set_var('DISPLAY_REMEMBER_ME', 'none');
+			} else {
+				$template->set_var('DISPLAY_REMEMBER_ME', '');
+			}
+			$template->set_var(array(
+											'ACTION_URL' => $this->login_url,
+											'ATTEMPS' => $this->get_session('ATTEMPS'),
+											'USERNAME' => $this->username,
+											'USERNAME_FIELDNAME' => $this->username_fieldname,
+											'PASSWORD_FIELDNAME' => $this->password_fieldname,
+											'MESSAGE' => $this->message,
+											'INTERFACE_DIR_URL' =>  ADMIN_URL.'/interface',
+											'MAX_USERNAME_LEN' => $this->max_username_len,
+											'MAX_PASSWORD_LEN' => $this->max_password_len,
+											'WB_URL' => WB_URL,
+											'FORGOTTEN_DETAILS_APP' => $this->forgotten_details_app,
+											'TEXT_FORGOTTEN_DETAILS' => $TEXT['FORGOTTEN_DETAILS'],
+											'TEXT_USERNAME' => $TEXT['USERNAME'],
+											'TEXT_PASSWORD' => $TEXT['PASSWORD'],
+											'TEXT_REMEMBER_ME' => $TEXT['REMEMBER_ME'],
+											'TEXT_LOGIN' => $TEXT['LOGIN'],
+											'TEXT_HOME' => $TEXT['HOME'],
+											'PAGES_DIRECTORY' => PAGES_DIRECTORY,
+											'SECTION_LOGIN' => $MENU['LOGIN']
+											)
+									);
+			if(defined('DEFAULT_CHARSET')) {
+				$charset=DEFAULT_CHARSET;
+			} else {
+				$charset='utf-8';
+			}
+			
+			$template->set_var('CHARSET', $charset);	
+									
+									
+			$template->parse('main', 'mainBlock', false);
+			$template->pparse('output', 'page');
+		}
+	}
+
+	// convert "REMEMBER_KEY" to a number and then repad
+	// any non numeric character will cause intval to return null thus returning 11 0's
+	function get_safe_remember_key() {
+		return str_pad(intval(substr($_COOKIE['REMEMBER_KEY'],0,11)),11,"0",STR_PAD_LEFT); // SQL Injection prevention
+	}
+	
+	// Warn user that they have had to many login attemps
+	function warn() {
+		header('Location: '.$this->warning_url);
+		exit(0);
+	}
+	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/class.login.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/initialize.php
===================================================================
--- tags/2.7.0/wb/framework/initialize.php	(nonexistent)
+++ tags/2.7.0/wb/framework/initialize.php	(revision 838)
@@ -0,0 +1,125 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+ 
+if (file_exists(WB_PATH.'/framework/class.database.php')) {
+	
+	require_once(WB_PATH.'/framework/class.database.php');
+		
+	// Create database class
+	$database = new database();
+	
+	set_magic_quotes_runtime(0);
+	
+	// Get website settings (title, keywords, description, header, and footer)
+	$query_settings = "SELECT name,value FROM ".TABLE_PREFIX."settings";
+	$get_settings = $database->query($query_settings);
+	if($database->is_error()) { die($database->get_error()); }
+	if($get_settings->numRows() == 0) { die("Settings not found"); }
+	while($setting = $get_settings->fetchRow()) {
+		$setting_name=strtoupper($setting['name']);
+		$setting_value=$setting['value'];
+		if ($setting_value=='false')
+			$setting_value=false;
+		if ($setting_value=='true')
+			$setting_value=true;
+		@define($setting_name,$setting_value);
+	}
+	$string_file_mode = STRING_FILE_MODE;
+	define('OCTAL_FILE_MODE',(int) octdec($string_file_mode));
+	$string_dir_mode = STRING_DIR_MODE;
+	define('OCTAL_DIR_MODE',(int) octdec($string_dir_mode));
+	
+	// get CAPTCHA and ASP settings
+	$table = TABLE_PREFIX.'mod_captcha_control';
+	if($get_settings = $database->query("SELECT * FROM $table LIMIT 1")) {
+		if($get_settings->numRows() == 0) { die("CAPTCHA-Settings not found"); }
+		$setting = $get_settings->fetchRow();
+		if($setting['enabled_captcha'] == '1') define('ENABLED_CAPTCHA', true);
+		else define('ENABLED_CAPTCHA', false);
+		if($setting['enabled_asp'] == '1') define('ENABLED_ASP', true);
+		else define('ENABLED_ASP', false);
+		define('CAPTCHA_TYPE', $setting['captcha_type']);
+		define('ASP_SESSION_MIN_AGE', (int)$setting['asp_session_min_age']);
+		define('ASP_VIEW_MIN_AGE', (int)$setting['asp_view_min_age']);
+		define('ASP_INPUT_MIN_AGE', (int)$setting['asp_input_min_age']);
+	}
+
+	// set error-reporting
+	if(is_numeric(ER_LEVEL)) {
+		error_reporting(ER_LEVEL);
+	}
+
+	// Start a session
+	if(!defined('SESSION_STARTED')) {
+		session_name(APP_NAME.'_session_id');
+		@session_start();
+		define('SESSION_STARTED', true);
+	}
+	if(defined('ENABLED_ASP') && ENABLED_ASP && !isset($_SESSION['session_started']))
+		$_SESSION['session_started'] = time();
+
+	// Get users language
+	if(isset($_GET['lang']) AND $_GET['lang'] != '' AND !is_numeric($_GET['lang']) AND strlen($_GET['lang']) == 2) {
+	  	define('LANGUAGE', strtoupper($_GET['lang']));
+		$_SESSION['LANGUAGE']=LANGUAGE;
+	} else {
+		if(isset($_SESSION['LANGUAGE']) AND $_SESSION['LANGUAGE'] != '') {
+			define('LANGUAGE', $_SESSION['LANGUAGE']);
+		} else {
+			define('LANGUAGE', DEFAULT_LANGUAGE);
+		}
+	}
+	
+	// Load Language file
+	if(!defined('LANGUAGE_LOADED')) {
+		if(!file_exists(WB_PATH.'/languages/'.LANGUAGE.'.php')) {
+			exit('Error loading language file '.LANGUAGE.', please check configuration');
+		} else {
+			require_once(WB_PATH.'/languages/'.LANGUAGE.'.php');
+		}
+	}
+	
+	// Get users timezone
+	if(isset($_SESSION['TIMEZONE'])) {
+		define('TIMEZONE', $_SESSION['TIMEZONE']);
+	} else {
+		define('TIMEZONE', DEFAULT_TIMEZONE);
+	}
+	// Get users date format
+	if(isset($_SESSION['DATE_FORMAT'])) {
+		define('DATE_FORMAT', $_SESSION['DATE_FORMAT']);
+	} else {
+		define('DATE_FORMAT', DEFAULT_DATE_FORMAT);
+	}
+	// Get users time format
+	if(isset($_SESSION['TIME_FORMAT'])) {
+		define('TIME_FORMAT', $_SESSION['TIME_FORMAT']);
+	} else {
+		define('TIME_FORMAT', DEFAULT_TIME_FORMAT);
+	}
+		
+}
+
+?>

Property changes on: tags/2.7.0/wb/framework/initialize.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/functions.php
===================================================================
--- tags/2.7.0/wb/framework/functions.php	(nonexistent)
+++ tags/2.7.0/wb/framework/functions.php	(revision 838)
@@ -0,0 +1,843 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Website Baker functions file
+This file contains general functions used in Website Baker
+
+*/
+
+// Stop this file from being accessed directly
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Define that this file has been loaded
+define('FUNCTIONS_FILE_LOADED', true);
+
+// Function to remove a non-empty directory
+function rm_full_dir($directory)
+{
+    // If suplied dirname is a file then unlink it
+    if (is_file($directory)) {
+        return unlink($directory);
+    }
+
+    // Empty the folder
+    $dir = dir($directory);
+    while (false !== $entry = $dir->read()) {
+        // Skip pointers
+        if ($entry == '.' || $entry == '..') {
+            continue;
+        }
+
+        // Deep delete directories      
+        if (is_dir("$directory/$entry")) {
+            rm_full_dir("$directory/$entry");
+        } else {
+            unlink("$directory/$entry");
+        }
+    }
+
+    // Now delete the folder
+    $dir->close();
+    return rmdir($directory);
+}
+
+// Function to open a directory and add to a dir list
+function directory_list($directory) {
+	
+	$list = array();
+
+	// Open the directory then loop through its contents
+	$dir = dir($directory);
+	while (false !== $entry = $dir->read()) {
+		// Skip pointers
+		if(substr($entry, 0, 1) == '.' || $entry == '.svn') {
+			continue;
+		}
+		// Add dir and contents to list
+		if (is_dir("$directory/$entry")) {
+			$list = array_merge($list, directory_list("$directory/$entry"));
+			$list[] = "$directory/$entry";
+		}
+	}
+
+	// Now return the list
+	return $list;
+}
+
+// Function to open a directory and add to a dir list
+function chmod_directory_contents($directory, $file_mode) {
+	
+	// Set the umask to 0
+	$umask = umask(0);
+	
+	// Open the directory then loop through its contents
+	$dir = dir($directory);
+	while (false !== $entry = $dir->read()) {
+		// Skip pointers
+		if(substr($entry, 0, 1) == '.' || $entry == '.svn') {
+			continue;
+		}
+		// Chmod the sub-dirs contents
+		if(is_dir("$directory/$entry")) {
+			chmod_directory_contents("$directory/$entry", $file_mode);
+		}
+		change_mode($directory.'/'.$entry);
+	}
+	
+	// Restore the umask
+	umask($umask);
+
+}
+
+// Function to open a directory and add to a file list
+function file_list($directory, $skip = array()) {
+	
+	$list = array();
+	$skip_file = false;
+	
+	// Open the directory then loop through its contents
+	$dir = dir($directory);
+	while (false !== $entry = $dir->read()) {
+		// Skip pointers
+		if($entry == '.' || $entry == '..') {
+			$skip_file = true;
+		}
+		// Check if we to skip anything else
+		if($skip != array()) {
+			foreach($skip AS $skip_name) {
+				if($entry == $skip_name) {
+					$skip_file = true;
+				}
+			}
+		}
+		// Add dir and contents to list
+		if($skip_file != true AND is_file("$directory/$entry")) {
+			$list[] = "$directory/$entry";
+		}
+		
+		// Reset the skip file var
+		$skip_file = false;
+	}
+
+	// Now delete the folder
+	return $list;
+}
+
+// Function to get a list of home folders not to show
+function get_home_folders() {
+	global $database, $admin;
+	$home_folders = array();
+	// Only return home folders is this feature is enabled
+	// and user is not admin
+//	if(HOME_FOLDERS AND ($_SESSION['GROUP_ID']!='1')) {
+	if(HOME_FOLDERS AND (!in_array('1',split(",",$_SESSION['GROUPS_ID'])))) {
+
+		$query_home_folders = $database->query("SELECT home_folder FROM ".TABLE_PREFIX."users WHERE home_folder != '".$admin->get_home_folder()."'");
+		if($query_home_folders->numRows() > 0) {
+			while($folder = $query_home_folders->fetchRow()) {
+				$home_folders[$folder['home_folder']] = $folder['home_folder'];
+			}
+		}
+		function remove_home_subs($directory = '/', $home_folders) {
+			if($handle = opendir(WB_PATH.MEDIA_DIRECTORY.$directory)) {
+				// Loop through the dirs to check the home folders sub-dirs are not shown
+			   while(false !== ($file = readdir($handle))) {
+					if(substr($file, 0, 1) != '.' AND $file != '.svn' AND $file != 'index.php') {
+						if(is_dir(WB_PATH.MEDIA_DIRECTORY.$directory.'/'.$file)) {
+							if($directory != '/') { $file = $directory.'/'.$file; } else { $file = '/'.$file; }
+							foreach($home_folders AS $hf) {
+								$hf_length = strlen($hf);
+								if($hf_length > 0) {
+									if(substr($file, 0, $hf_length+1) == $hf) {
+										$home_folders[$file] = $file;
+									}
+								}
+							}
+							$home_folders = remove_home_subs($file, $home_folders);
+						}
+					}
+				}
+			}
+			return $home_folders;
+		}
+		$home_folders = remove_home_subs('/', $home_folders);
+	}
+	return $home_folders;
+}
+
+// Function to create directories
+function make_dir($dir_name, $dir_mode = OCTAL_DIR_MODE) {
+	if(!file_exists($dir_name)) {
+		$umask = umask(0);
+		mkdir($dir_name, $dir_mode);
+		umask($umask);
+		return true;
+	} else {
+		return false;	
+	}
+}
+
+// Function to chmod files and directories
+function change_mode($name) {
+	if(OPERATING_SYSTEM != 'windows') {
+		// Only chmod if os is not windows
+		if(is_dir($name)) {
+			$mode = OCTAL_DIR_MODE;
+		} else {
+			$mode = OCTAL_FILE_MODE;
+		}
+		if(file_exists($name)) {
+			$umask = umask(0);
+			chmod($name, $mode);
+			umask($umask);
+			return true;
+		} else {
+			return false;	
+		}
+	} else {
+		return true;
+	}
+}
+
+// Function to figure out if a parent exists
+function is_parent($page_id) {
+	global $database;
+	// Get parent
+	$query = $database->query("SELECT parent FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+	$fetch = $query->fetchRow();
+	// If parent isnt 0 return its ID
+	if($fetch['parent'] == '0') {
+		return false;
+	} else {
+		return $fetch['parent'];
+	}
+}
+
+// Function to work out level
+function level_count($page_id) {
+	global $database;
+	// Get page parent
+	$query_page = $database->query("SELECT parent FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id' LIMIT 1");
+	$fetch_page = $query_page->fetchRow();
+	$parent = $fetch_page['parent'];
+	if($parent > 0) {
+		// Get the level of the parent
+		$query_parent = $database->query("SELECT level FROM ".TABLE_PREFIX."pages WHERE page_id = '$parent' LIMIT 1");
+		$fetch_parent = $query_parent->fetchRow();
+		$level = $fetch_parent['level'];
+		return $level+1;
+	} else {
+		return 0;
+	}
+}
+
+// Function to work out root parent
+function root_parent($page_id) {
+	global $database;
+	// Get page details
+	$query_page = $database->query("SELECT parent,level FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id' LIMIT 1");
+	$fetch_page = $query_page->fetchRow();
+	$parent = $fetch_page['parent'];
+	$level = $fetch_page['level'];	
+	if($level == 1) {
+		return $parent;
+	} elseif($parent == 0) {
+		return $page_id;
+	} else {
+		// Figure out what the root parents id is
+		$parent_ids = array_reverse(get_parent_ids($page_id));
+		return $parent_ids[0];
+	}
+}
+
+// Function to get page title
+function get_page_title($id) {
+	global $database;
+	// Get title
+	$query = $database->query("SELECT page_title FROM ".TABLE_PREFIX."pages WHERE page_id = '$id'");
+	$fetch = $query->fetchRow();
+	// Return title
+	return $fetch['page_title'];
+}
+
+// Function to get a pages menu title
+function get_menu_title($id) {
+	// Connect to the database
+	$database = new database();
+	// Get title
+	$query = $database->query("SELECT menu_title FROM ".TABLE_PREFIX."pages WHERE page_id = '$id'");
+	$fetch = $query->fetchRow();
+	// Return title
+	return $fetch['menu_title'];
+}
+
+// Function to get all parent page titles
+function get_parent_titles($parent_id) {
+	$titles[] = get_menu_title($parent_id);
+	if(is_parent($parent_id) != false) {
+		$parent_titles = get_parent_titles(is_parent($parent_id));
+		$titles = array_merge($titles, $parent_titles);
+	}
+	return $titles;
+}
+
+// Function to get all parent page id's
+function get_parent_ids($parent_id) {
+	$ids[] = $parent_id;
+	if(is_parent($parent_id) != false) {
+		$parent_ids = get_parent_ids(is_parent($parent_id));
+		$ids = array_merge($ids, $parent_ids);
+	}
+	return $ids;
+}
+
+// Function to genereate page trail
+function get_page_trail($page_id) {
+	return implode(',', array_reverse(get_parent_ids($page_id)));
+}
+
+// Function to get all sub pages id's
+function get_subs($parent, $subs) {
+	// Connect to the database
+	$database = new database();
+	// Get id's
+	$query = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent = '$parent'");
+	if($query->numRows() > 0) {
+		while($fetch = $query->fetchRow()) {
+			$subs[] = $fetch['page_id'];
+			// Get subs of this sub
+			$subs = get_subs($fetch['page_id'], $subs);
+		}
+	}
+	// Return subs array
+	return $subs;
+}
+
+// Function as replacement for php's htmlspecialchars()
+// Will not mangle HTML-entities
+function my_htmlspecialchars($string) {
+	$string = preg_replace('/&(?=[#a-z0-9]+;)/i', '__amp;_', $string);
+	$string = strtr($string, array('<'=>'&lt;', '>'=>'&gt;', '&'=>'&amp;', '"'=>'&quot;', '\''=>'&#39;'));
+	$string = preg_replace('/__amp;_(?=[#a-z0-9]+;)/i', '&', $string);
+	return($string);
+}
+
+// init utf8-functions -- workaround to prevent functions-utf8.php and charsets_table.php (~140kB) to be loaded more than once
+// functions and arrays from functions-utf8.php and charsets_table.php will be in global name-space
+function init_utf8funcs() {
+	static $utf8_ok=0;
+	if($utf8_ok == 0) {
+		++$utf8_ok;
+		require_once(WB_PATH.'/framework/functions-utf8.php');
+	}
+}
+
+// Convert a string from mixed html-entities/umlauts to pure $charset_out-umlauts
+// Will replace all numeric and named entities except &gt; &lt; &apos; &quot; &#39; &nbsp;
+// In case of error the returned string is unchanged, and a message is emitted.
+function entities_to_umlauts($string, $charset_out=DEFAULT_CHARSET) {
+	//init utf8-functions
+	init_utf8funcs();
+	return entities_to_umlauts2($string, $charset_out);
+}
+
+// Will convert a string in $charset_in encoding to a pure ASCII string with HTML-entities.
+// In case of error the returned string is unchanged, and a message is emitted.
+function umlauts_to_entities($string, $charset_in=DEFAULT_CHARSET) {
+	//init utf8-functions
+	init_utf8funcs();
+	return umlauts_to_entities2($string, $charset_in);
+}
+
+// Function to convert a page title to a page filename
+function page_filename($string) {
+	//init utf8-functions
+	init_utf8funcs();
+	$string = entities_to_7bit($string);
+	// Now replace spaces with page spcacer
+	$string = trim($string);
+	$string = preg_replace('/(\s)+/', PAGE_SPACER, $string);
+	// Now remove all bad characters
+	$bad = array(
+	'\'', /* /  */ '"', /* " */	'<', /* < */	'>', /* > */
+	'{', /* { */	'}', /* } */	'[', /* [ */	']', /* ] */	'`', /* ` */
+	'!', /* ! */	'@', /* @ */	'#', /* # */	'$', /* $ */	'%', /* % */
+	'^', /* ^ */	'&', /* & */	'*', /* * */	'(', /* ( */	')', /* ) */
+	'=', /* = */	'+', /* + */	'|', /* | */	'/', /* / */	'\\', /* \ */
+	';', /* ; */	':', /* : */	',', /* , */	'?' /* ? */
+	);
+	$string = str_replace($bad, '', $string);
+	// Now convert to lower-case
+	$string = strtolower($string);
+	// If there are any weird language characters, this will protect us against possible problems they could cause
+	$string = str_replace(array('%2F', '%'), array('/', ''), urlencode($string));
+	// Finally, return the cleaned string
+	return $string;
+}
+
+// Function to convert a desired media filename to a clean filename
+function media_filename($string) {
+	//init utf8-functions
+	init_utf8funcs();
+	$string = entities_to_7bit($string);
+	// Now remove all bad characters
+	$bad = array(
+	'\'', // '
+	'"', // "
+	'`', // `
+	'!', // !
+	'@', // @
+	'#', // #
+	'$', // $
+	'%', // %
+	'^', // ^
+	'&', // &
+	'*', // *
+	'=', // =
+	'+', // +
+	'|', // |
+	'/', // /
+	'\\', // \
+	';', // ;
+	':', // :
+	',', // ,
+	'?' // ?
+	);
+	$string = str_replace($bad, '', $string);
+	// Clean any page spacers at the end of string
+	$string = trim($string);
+	// Finally, return the cleaned string
+	return $string;
+}
+
+// Function to work out a page link
+if(!function_exists('page_link')) {
+	function page_link($link) {
+		global $admin;
+		return $admin->page_link($link);
+	}
+}
+
+// Create a new file in the pages directory
+function create_access_file($filename,$page_id,$level) {
+	global $admin, $MESSAGE;
+	if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/')) {
+		$admin->print_error($MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE']);
+	} else {
+		// First make sure parent folder exists
+		$parent_folders = explode('/',str_replace(WB_PATH.PAGES_DIRECTORY, '', dirname($filename)));
+		$parents = '';
+		foreach($parent_folders AS $parent_folder) {
+			if($parent_folder != '/' AND $parent_folder != '') {
+				$parents .= '/'.$parent_folder;
+				if(!file_exists(WB_PATH.PAGES_DIRECTORY.$parents)) {
+					make_dir(WB_PATH.PAGES_DIRECTORY.$parents);
+				}
+			}	
+		}
+		// The depth of the page directory in the directory hierarchy
+		// '/pages' is at depth 1
+		$pages_dir_depth=count(explode('/',PAGES_DIRECTORY))-1;
+		// Work-out how many ../'s we need to get to the index page
+		$index_location = '';
+		for($i = 0; $i < $level + $pages_dir_depth; $i++) {
+			$index_location .= '../';
+		}
+		$content = ''.
+'<?php
+$page_id = '.$page_id.';
+require("'.$index_location.'config.php");
+require(WB_PATH."/index.php");
+?>';
+		$handle = fopen($filename, 'w');
+		fwrite($handle, $content);
+		fclose($handle);
+		// Chmod the file
+		change_mode($filename);
+	}
+}
+
+// Function for working out a file mime type (if the in-built PHP one is not enabled)
+if(!function_exists('mime_content_type')) {
+   function mime_content_type($file) {
+       $file = escapeshellarg($file);
+       return trim(`file -bi $file`);
+   }
+}
+
+// Generate a thumbnail from an image
+function make_thumb($source, $destination, $size) {
+	// Check if GD is installed
+	if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) {
+		// First figure out the size of the thumbnail
+		list($original_x, $original_y) = getimagesize($source);
+		if ($original_x > $original_y) {
+			$thumb_w = $size;
+			$thumb_h = $original_y*($size/$original_x);
+		}
+		if ($original_x < $original_y) {
+			$thumb_w = $original_x*($size/$original_y);
+			$thumb_h = $size;
+		}
+		if ($original_x == $original_y) {
+			$thumb_w = $size;
+			$thumb_h = $size;	
+		}
+		// Now make the thumbnail
+		$source = imageCreateFromJpeg($source);
+		$dst_img = ImageCreateTrueColor($thumb_w, $thumb_h);
+		imagecopyresampled($dst_img,$source,0,0,0,0,$thumb_w,$thumb_h,$original_x,$original_y);
+		imagejpeg($dst_img, $destination);
+		// Clear memory
+		imagedestroy($dst_img);
+	   imagedestroy($source);
+	   // Return true
+	   return true;
+   } else {
+   	return false;
+   }
+}
+
+// Function to work-out a single part of an octal permission value
+function extract_permission($octal_value, $who, $action) {
+	// Make sure the octal value is 4 chars long
+	if(strlen($octal_value) == 0) {
+		$octal_value = '0000';
+	} elseif(strlen($octal_value) == 1) {
+		$octal_value = '000'.$octal_value;
+	} elseif(strlen($octal_value) == 2) {
+		$octal_value = '00'.$octal_value;
+	} elseif(strlen($octal_value) == 3) {
+		$octal_value = '0'.$octal_value;
+	} elseif(strlen($octal_value) == 4) {
+		$octal_value = ''.$octal_value;
+	} else {
+		$octal_value = '0000';
+	}
+	// Work-out what position of the octal value to look at
+	switch($who) {
+	case 'u':
+		$position = '1';
+		break;
+	case 'user':
+		$position = '1';
+		break;
+	case 'g':
+		$position = '2';
+		break;
+	case 'group':
+		$position = '2';
+		break;
+	case 'o':
+		$position = '3';
+		break;
+	case 'others':
+		$position = '3';
+		break;
+	}
+	// Work-out how long the octal value is and ajust acording
+	if(strlen($octal_value) == 4) {
+		$position = $position+1;
+	} elseif(strlen($octal_value) != 3) {
+		exit('Error');
+	}
+	// Now work-out what action the script is trying to look-up
+	switch($action) {
+	case 'r':
+		$action = 'r';
+		break;
+	case 'read':
+		$action = 'r';
+		break;
+	case 'w':
+		$action = 'w';
+		break;
+	case 'write':
+		$action = 'w';
+		break;
+	case 'e':
+		$action = 'e';
+		break;
+	case 'execute':
+		$action = 'e';
+		break;
+	}
+	// Get the value for "who"
+	$value = substr($octal_value, $position-1, 1);
+	// Now work-out the details of the value
+	switch($value) {
+	case '0':
+		$r = false;
+		$w = false;
+		$e = false;
+		break;
+	case '1':
+		$r = false;
+		$w = false;
+		$e = true;
+		break;
+	case '2':
+		$r = false;
+		$w = true;
+		$e = false;
+		break;
+	case '3':
+		$r = false;
+		$w = true;
+		$e = true;
+		break;
+	case '4':
+		$r = true;
+		$w = false;
+		$e = false;
+		break;
+	case '5':
+		$r = true;
+		$w = false;
+		$e = true;
+		break;
+	case '6':
+		$r = true;
+		$w = true;
+		$e = false;
+		break;
+	case '7':
+		$r = true;
+		$w = true;
+		$e = true;
+		break;
+	default:
+		$r = false;
+		$w = false;
+		$e = false;
+	}
+	// And finally, return either true or false
+	return $$action;
+}
+
+// Function to delete a page
+function delete_page($page_id) {
+	
+	global $admin, $database, $MESSAGE;
+	
+	// Find out more about the page
+	$database = new database();
+	$query = "SELECT page_id,menu_title,page_title,level,link,parent,modified_by,modified_when FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+	$results = $database->query($query);
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	}
+	if($results->numRows() == 0) {
+		$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+	}
+	$results_array = $results->fetchRow();
+	$parent = $results_array['parent'];
+	$level = $results_array['level'];
+	$link = $results_array['link'];
+	$page_title = ($results_array['page_title']);
+	$menu_title = ($results_array['menu_title']);
+	
+	// Get the sections that belong to the page
+	$query_sections = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id'");
+	if($query_sections->numRows() > 0) {
+		while($section = $query_sections->fetchRow()) {
+			// Set section id
+			$section_id = $section['section_id'];
+			// Include the modules delete file if it exists
+			if(file_exists(WB_PATH.'/modules/'.$section['module'].'/delete.php')) {
+				require(WB_PATH.'/modules/'.$section['module'].'/delete.php');
+			}
+		}
+	}
+	
+	// Update the pages table
+	$query = "DELETE FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+	$database->query($query);
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	}
+	
+	// Update the sections table
+	$query = "DELETE FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id'";
+	$database->query($query);
+	if($database->is_error()) {
+		$admin->print_error($database->get_error());
+	}
+	
+	// Include the ordering class or clean-up ordering
+	require_once(WB_PATH.'/framework/class.order.php');
+	$order = new order(TABLE_PREFIX.'pages', 'position', 'page_id', 'parent');
+	$order->clean($parent);
+	
+	// Unlink the page access file and directory
+	$directory = WB_PATH.PAGES_DIRECTORY.$link;
+	$filename = $directory.PAGE_EXTENSION;
+	$directory .= '/';
+	if(file_exists($filename)) {
+		if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/')) {
+			$admin->print_error($MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE']);
+		} else {
+			unlink($filename);
+			if(file_exists($directory) && rtrim($directory,'/')!=WB_PATH.PAGES_DIRECTORY && substr($link, 0, 1) != '.') {
+				rm_full_dir($directory);
+			}
+		}
+	}
+	
+}
+
+// Load module into DB
+function load_module($directory, $install = false) {
+	global $database,$admin,$MESSAGE;
+	if(file_exists($directory.'/info.php')) {
+		require($directory.'/info.php');
+		if(isset($module_name)) {
+			if(!isset($module_license)) { $module_license = 'GNU General Public License'; }
+			if(!isset($module_platform) AND isset($module_designed_for)) { $module_platform = $module_designed_for; }
+			if(!isset($module_function) AND isset($module_type)) { $module_function = $module_type; }
+			$module_function = strtolower($module_function);
+			// Check that it doesn't already exist
+			$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$module_directory."' LIMIT 0,1");
+			if($result->numRows() == 0) {
+				// Load into DB
+				$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+				"(directory,name,description,type,function,version,platform,author,license) ".
+				"VALUES ('$module_directory','$module_name','".addslashes($module_description)."','module',".
+				"'$module_function','$module_version','$module_platform','$module_author','$module_license')";
+				$database->query($query);
+				// Run installation script
+				if($install == true) {
+					if(file_exists($directory.'/install.php')) {
+						require($directory.'/install.php');
+					}
+				}
+			}
+		}
+	}
+}
+
+// Load template into DB
+function load_template($directory) {
+	global $database;
+	if(file_exists($directory.'/info.php')) {
+		require($directory.'/info.php');
+		if(isset($template_name)) {
+			if(!isset($template_license)) { $template_license = 'GNU General Public License'; }
+			if(!isset($template_platform) AND isset($template_designed_for)) { $template_platform = $template_designed_for; }
+			// Check that it doesn't already exist
+			$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$template_directory."' LIMIT 0,1");
+			if($result->numRows() == 0) {
+				// Load into DB
+				$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+				"(directory,name,description,type,version,platform,author,license) ".
+				"VALUES ('$template_directory','$template_name','".addslashes($template_description)."','template',".
+				"'$template_version','$template_platform','$template_author','$template_license')";
+				$database->query($query);
+			}
+		}
+	}
+}
+
+// Load language into DB
+function load_language($file) {
+	global $database;
+	if(file_exists($file)) {
+		require($file);
+		if(isset($language_name)) {
+			if(!isset($language_license)) { $language_license = 'GNU General Public License'; }
+			if(!isset($language_platform) AND isset($language_designed_for)) { $language_platform = $language_designed_for; }
+			// Check that it doesn't already exist
+			$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$language_code."' LIMIT 0,1");
+			if($result->numRows() == 0) {
+				// Load into DB
+				$query = "INSERT INTO ".TABLE_PREFIX."addons ".
+				"(directory,name,type,version,platform,author,license) ".
+				"VALUES ('$language_code','$language_name','language',".
+				"'$language_version','$language_platform','$language_author','$language_license')";
+	 		$database->query($query);
+			}
+		}
+	}
+}
+
+// Upgrade module info in DB, optionally start upgrade script
+function upgrade_module($directory, $upgrade = false) {
+	global $database, $admin, $MESSAGE;
+	$directory = WB_PATH . "/modules/$directory";
+	if(file_exists($directory.'/info.php')) {
+		require($directory.'/info.php');
+		if(isset($module_name)) {
+			if(!isset($module_license)) { $module_license = 'GNU General Public License'; }
+			if(!isset($module_platform) AND isset($module_designed_for)) { $module_platform = $module_designed_for; }
+			if(!isset($module_function) AND isset($module_type)) { $module_function = $module_type; }
+			$module_function = strtolower($module_function);
+			// Check that it does already exist
+			$result = $database->query("SELECT addon_id FROM ".TABLE_PREFIX."addons WHERE directory = '".$module_directory."' LIMIT 0,1");
+			if($result->numRows() > 0) {
+				// Update in DB
+				$query = "UPDATE " . TABLE_PREFIX . "addons SET " .
+					"version = '$module_version', " .
+					"description = '" . addslashes($module_description) . "', " .
+					"platform = '$module_platform', " .
+					"author = '$module_author', " .
+					"license = '$module_license'" .
+					"WHERE directory = '$module_directory'";
+				$database->query($query);
+				// Run upgrade script
+				if($upgrade == true) {
+					if(file_exists($directory.'/upgrade.php')) {
+						require($directory.'/upgrade.php');
+					}
+				}
+			}
+		}
+	}
+}
+
+// extracts the content of a string variable from a string (save alternative to including files)
+if(!function_exists('get_variable_content')) {
+	function get_variable_content($search, $data, $striptags=true, $convert_to_entities=true) {
+		$match = '';
+		// search for $variable followed by 0-n whitespace then by = then by 0-n whitespace
+		// then either " or ' then 0-n characters then either " or ' followed by 0-n whitespace and ;
+		// the variable name is returned in $match[1], the content in $match[3]
+		if (preg_match('/(\$' .$search .')\s*=\s*("|\')(.*)\2\s*;/', $data, $match)) {
+			if(strip_tags(trim($match[1])) == '$' .$search) {
+				// variable name matches, return it's value
+				$match[3] = ($striptags == true) ? strip_tags($match[3]) : $match[3];
+				$match[3] = ($convert_to_entities == true) ? htmlentities($match[3]) : $match[3];
+				return $match[3];
+			}
+		}
+		return false;
+	}
+}
+
+?>

Property changes on: tags/2.7.0/wb/framework/functions.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.wb.php
===================================================================
--- tags/2.7.0/wb/framework/class.wb.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.wb.php	(revision 838)
@@ -0,0 +1,342 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+wb class
+
+This class is the basis for admin and frontend classes.
+
+*/
+
+// Include PHPLIB template class
+require_once(WB_PATH."/include/phplib/template.inc");
+
+require_once(WB_PATH.'/framework/class.database.php');
+
+// Include new wbmailer class (subclass of PHPmailer)
+require_once(WB_PATH."/framework/class.wbmailer.php");
+
+class wb
+{
+	// General initialization function 
+	// performed when frontend or backend is loaded.
+	function wb() {
+	}
+	
+	// Check whether a page is visible or not.
+	// This will check page-visibility and user- and group-rights.
+	/* page_is_visible() returns
+		false: if page-visibility is 'none' or 'deleted', or page-vis. is 'registered' or 'private' and user isn't allowed to see the page.
+		true: if page-visibility is 'public' or 'hidden', or page-vis. is 'registered' or 'private' and user _is_ allowed to see the page.
+	*/
+	function page_is_visible($page) {
+		$show_it = false; // shall we show the page?
+		$page_id = $page['page_id'];
+		$visibility = $page['visibility'];
+		$viewing_groups = $page['viewing_groups'];
+		$viewing_users = $page['viewing_users'];
+		// First check if visibility is 'none', 'deleted'
+		if($visibility == 'none') {
+			return(false);
+		} elseif($visibility == 'deleted') {
+			return(false);
+		}
+		// Now check if visibility is 'hidden', 'private' or 'registered'
+		if($visibility == 'hidden') { // hidden: hide the menu-link, but show the page
+			$show_it = true;
+		} elseif($visibility == 'private' || $visibility == 'registered') {
+			// Check if the user is logged in
+			if($this->is_authenticated() == true) {
+				// Now check if the user has perms to view the page
+				$in_group = false;
+				foreach($this->get_groups_id() as $cur_gid){
+				    if(in_array($cur_gid, explode(',', $viewing_groups))) {
+				        $in_group = true;
+				    }
+				}
+				if($in_group || in_array($this->get_user_id(), explode(',', $viewing_users))) {
+					$show_it = true;
+				} else {
+					$show_it = false;
+				}
+			} else {
+				$show_it = false;
+			}
+		} elseif($visibility == 'public') {
+			$show_it = true;
+		} else {
+			$show_it = false;
+		}
+		return($show_it);
+	}
+	// Check if there is at least one active section on this page
+	function page_is_active($page) {
+		global $database;
+		$has_active_sections = false;
+		$page_id = $page['page_id'];
+		$now = time();
+		$query_sections = $database->query("SELECT publ_start,publ_end FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id'");
+		if($query_sections->numRows() != 0) {
+			while($section = $query_sections->fetchRow()) {
+				if($now<$section['publ_end'] && ($now>$section['publ_start'] || $section['publ_start']==0) || $now>$section['publ_start'] && $section['publ_end']==0) {
+					$has_active_sections = true;
+					break;
+				}
+			}
+		}
+		return($has_active_sections);
+	}
+
+	// Check whether we should show a page or not (for front-end)
+	function show_page($page) {
+		if($this->page_is_visible($page) && $this->page_is_active($page)) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	// Check if the user is already authenticated or not
+	function is_authenticated() {
+		if(isset($_SESSION['USER_ID']) AND $_SESSION['USER_ID'] != "" AND is_numeric($_SESSION['USER_ID'])) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+	// Modified addslashes function which takes into account magic_quotes
+	function add_slashes($input) {
+		if ( get_magic_quotes_gpc() || ( !is_string($input) ) ) {
+			return $input;
+		}
+		$output = addslashes($input);
+		return $output;
+	}
+
+	// Ditto for stripslashes
+	// Attn: this is _not_ the counterpart to $this->add_slashes() !
+	// Use stripslashes() to undo a preliminarily done $this->add_slashes()
+	// The purpose of $this->strip_slashes() is to undo the effects of magic_quotes_gpc==On
+	function strip_slashes($input) {
+		if ( !get_magic_quotes_gpc() || ( !is_string($input) ) ) {
+			return $input;
+		}
+		$output = stripslashes($input);
+		return $output;
+	}
+
+	// Escape backslashes for use with mySQL LIKE strings
+	function escape_backslashes($input) {
+		return str_replace("\\","\\\\",$input);
+	}
+
+	function page_link($link){
+		// Check for :// in the link (used in URL's) as well as mailto:
+		if(strstr($link, '://') == '' AND substr($link, 0, 7) != 'mailto:') {
+			return WB_URL.PAGES_DIRECTORY.$link.PAGE_EXTENSION;
+		} else {
+			return $link;
+		}
+	}
+	
+	// Get POST data
+	function get_post($field) {
+		if(isset($_POST[$field])) {
+			return $_POST[$field];
+		} else {
+			return null;
+		}
+	}
+
+	// Get POST data and escape it
+	function get_post_escaped($field) {
+		$result = $this->get_post($field);
+		return (is_null($result)) ? null : $this->add_slashes($result);
+	}
+	
+	// Get GET data
+	function get_get($field) {
+		if(isset($_GET[$field])) {
+			return $_GET[$field];
+		} else {
+			return null;
+		}
+	}
+
+	// Get SESSION data
+	function get_session($field) {
+		if(isset($_SESSION[$field])) {
+			return $_SESSION[$field];
+		} else {
+			return null;
+		}
+	}
+
+	// Get SERVER data
+	function get_server($field) {
+		if(isset($_SERVER[$field])) {
+			return $_SERVER[$field];
+		} else {
+			return null;
+		}
+	}
+
+	// Get the current users id
+	function get_user_id() {
+		return $_SESSION['USER_ID'];
+	}
+
+	// Get the current users group id
+	function get_group_id() {
+		return $_SESSION['GROUP_ID'];
+	}
+
+	// Get the current users group ids
+	function get_groups_id() {
+		return split(",", $_SESSION['GROUPS_ID']);
+	}
+
+	// Get the current users group name
+	function get_group_name() {
+		return implode(",", $_SESSION['GROUP_NAME']);
+	}
+
+	// Get the current users group name
+	function get_groups_name() {
+		return $_SESSION['GROUP_NAME'];
+	}
+
+	// Get the current users username
+	function get_username() {
+		return $_SESSION['USERNAME'];
+	}
+
+	// Get the current users display name
+	function get_display_name() {
+		return ($_SESSION['DISPLAY_NAME']);
+	}
+
+	// Get the current users email address
+	function get_email() {
+		return $_SESSION['EMAIL'];
+	}
+
+	// Get the current users home folder
+	function get_home_folder() {
+		return $_SESSION['HOME_FOLDER'];
+	}
+
+	// Get the current users timezone
+	function get_timezone() {
+		if(!isset($_SESSION['USE_DEFAULT_TIMEZONE'])) {
+			return $_SESSION['TIMEZONE'];
+		} else {
+			return '-72000';
+		}
+	}
+
+	// Validate supplied email address
+	function validate_email($email) {
+		if(eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $email)) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	// Print a success message which then automatically redirects the user to another page
+	function print_success($message, $redirect = 'index.php') {
+		global $TEXT;
+		$success_template = new Template(ADMIN_PATH.'/interface');
+		$success_template->set_file('page', 'success.html');
+		$success_template->set_block('page', 'main_block', 'main');
+		$success_template->set_var('MESSAGE', $message);
+		$success_template->set_var('REDIRECT', $redirect);
+		$success_template->set_var('NEXT', $TEXT['NEXT']);
+		$success_template->parse('main', 'main_block', false);
+		$success_template->pparse('output', 'page');
+	}
+	
+	// Print an error message
+	function print_error($message, $link = 'index.php', $auto_footer = true) {
+		global $TEXT;
+		$success_template = new Template(ADMIN_PATH.'/interface');
+		$success_template->set_file('page', 'error.html');
+		$success_template->set_block('page', 'main_block', 'main');
+		$success_template->set_var('MESSAGE', $message);
+		$success_template->set_var('LINK', $link);
+		$success_template->set_var('BACK', $TEXT['BACK']);
+		$success_template->parse('main', 'main_block', false);
+		$success_template->pparse('output', 'page');
+		if($auto_footer == true) {
+			$this->print_footer();
+		}
+		exit();
+	}
+
+	// Validate send email
+	function mail($fromaddress, $toaddress, $subject, $message, $fromname='') {
+		/* 
+			INTEGRATED OPEN SOURCE PHPMAILER CLASS FOR SMTP SUPPORT AND MORE
+			SOME SERVICE PROVIDERS DO NOT SUPPORT SENDING MAIL VIA PHP AS IT DOES NOT PROVIDE SMTP AUTHENTICATION
+			NEW WBMAILER CLASS IS ABLE TO SEND OUT MESSAGES USING SMTP WHICH RESOLVE THESE ISSUE (C. Sommer)
+
+			NOTE:
+			To use SMTP for sending out mails, you have to specify the SMTP host of your domain
+			via the Settings panel in the backend of Website Baker
+		*/ 
+
+		$fromaddress = preg_replace('/[\r\n]/', '', $fromaddress);
+		$toaddress = preg_replace('/[\r\n]/', '', $toaddress);
+		$subject = preg_replace('/[\r\n]/', '', $subject);
+		$message = preg_replace('/[\r\n]/', '<br \>', $message);
+		
+		// create PHPMailer object and define default settings
+		$myMail = new wbmailer();
+
+		// set user defined from address
+		if ($fromaddress!='') {
+			if($fromname!='') $myMail->FromName = $fromname;         // FROM-NAME
+			$myMail->From = $fromaddress;                            // FROM:
+			$myMail->AddReplyTo($fromaddress);                       // REPLY TO:
+		}
+		
+		// define recepient and information to send out
+		$myMail->AddAddress($toaddress);                            // TO:
+		$myMail->Subject = $subject;                                // SUBJECT
+		$myMail->Body = $message;                                   // CONTENT (HTML)
+		$myMail->AltBody = strip_tags($message);                    // CONTENT (TEXT)
+		
+		// check if there are any send mail errors, otherwise say successful
+		if (!$myMail->Send()) {
+			return false;
+		} else {
+			return true;
+		}
+	}
+
+}
+?>

Property changes on: tags/2.7.0/wb/framework/class.wb.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.wbmailer.php
===================================================================
--- tags/2.7.0/wb/framework/class.wbmailer.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.wbmailer.php	(revision 838)
@@ -0,0 +1,114 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+wbmailer class
+
+This class is a subclass of the PHPMailer class and replaces the mail() function of PHP
+
+*/
+
+// Include PHPMailer class
+require_once(WB_PATH."/include/phpmailer/class.phpmailer.php");
+
+class wbmailer extends PHPMailer 
+{
+	// new websitebaker mailer class (subset of PHPMailer class)
+	// setting default values 
+
+	function wbmailer() {
+		// set mailer defaults (PHP mail function)
+		$db_wbmailer_routine = "phpmail";
+		$db_wbmailer_smtp_host = "";
+		$db_wbmailer_default_sendername = "WB Mailer";
+		$db_server_email = SERVER_EMAIL;
+
+		// get mailer settings from database
+		$database = new database();
+		$query = "SELECT * FROM " .TABLE_PREFIX. "settings";
+		$results = $database->query($query);
+		while($setting = $results->fetchRow()) {
+			if ($setting['name'] == "wbmailer_routine") { $db_wbmailer_routine = $setting['value']; }
+			if ($setting['name'] == "wbmailer_smtp_host") { $db_wbmailer_smtp_host = $setting['value']; }
+			if ($setting['name'] == "wbmailer_smtp_auth") { $db_wbmailer_smtp_auth = (bool)$setting['value']; }
+			if ($setting['name'] == "wbmailer_smtp_username") { $db_wbmailer_smtp_username = $setting['value']; }
+			if ($setting['name'] == "wbmailer_smtp_password") { $db_wbmailer_smtp_password = $setting['value']; }
+			if ($setting['name'] == "wbmailer_default_sendername") { $db_wbmailer_default_sendername = $setting['value']; }
+			if ($setting['name'] == "server_email") { $db_server_email = $setting['value']; }
+		}
+
+		// set method to send out emails
+		if($db_wbmailer_routine == "smtp" AND strlen($db_wbmailer_smtp_host) > 5) {
+			// use SMTP for all outgoing mails send by Website Baker
+			$this->IsSMTP();                                            
+			$this->Host = $db_wbmailer_smtp_host;
+			// check if SMTP authentification is required
+			if ($db_wbmailer_smtp_auth == "true" && strlen($db_wbmailer_smtp_username) > 1 && strlen($db_wbmailer_smtp_password) > 1) {
+				// use SMTP authentification
+				$this->SMTPAuth = true;     	  								// enable SMTP authentification
+				$this->Username = $db_wbmailer_smtp_username;  	// set SMTP username
+				$this->Password = $db_wbmailer_smtp_password;	  // set SMTP password
+			}
+		} else {
+			// use PHP mail() function for outgoing mails send by Website Baker
+			$this->IsMail();
+		}
+
+		// set language file for PHPMailer error messages
+		if(defined("LANGUAGE")) {
+			$this->SetLanguage(strtolower(LANGUAGE),"language");    // english default (also used if file is missing)
+		}
+
+		// set default charset
+		if(defined('DEFAULT_CHARSET')) { 
+			$this->CharSet = DEFAULT_CHARSET; 
+		} else {
+			$this->CharSet='utf-8';
+		}
+
+		// set default sender name
+		if($this->FromName == 'Root User') {
+			if(isset($_SESSION['DISPLAY_NAME'])) {
+				$this->FromName = $_SESSION['DISPLAY_NAME'];            // FROM NAME: display name of user logged in
+			} else {
+				$this->FromName = $db_wbmailer_default_sendername;			// FROM NAME: set default name
+			}
+		}
+
+		/* 
+			some mail provider (lets say mail.com) reject mails send out by foreign mail 
+			relays but using the providers domain in the from mail address (e.g. myname@mail.com)
+		*/
+		$this->From = $db_server_email;                           // FROM MAIL: (server mail)
+
+		// set default mail formats
+		$this->IsHTML(true);                                        
+		$this->WordWrap = 80;                                       
+		$this->Timeout = 30;
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/class.wbmailer.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.order.php
===================================================================
--- tags/2.7.0/wb/framework/class.order.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.order.php	(revision 838)
@@ -0,0 +1,156 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Ordering class
+
+This class will be used to change the order of an item in a table
+which contains a special order field (type must be integer)
+
+*/
+
+// Stop this file from being accessed directly
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+define('ORDERING_CLASS_LOADED', true);
+
+// Load the other required class files if they are not already loaded
+require_once(WB_PATH."/framework/class.database.php");
+
+class order {
+	
+	// Get the db values
+	function order($table, $order_field, $id_field = 'id', $common_field) {
+		$this->table = $table;
+		$this->order_field = $order_field;
+		$this->id_field = $id_field;
+		$this->common_field = $common_field;
+	}
+	
+	// Move a row up
+	function move_up($id) {
+		global $database;
+		// Get current order
+		$query_order = "SELECT ".$this->order_field.",".$this->common_field." FROM ".$this->table." WHERE ".$this->id_field." = '$id'";
+		$get_order = $database->query($query_order);
+		$fetch_order = $get_order->fetchRow();
+		$order = $fetch_order[$this->order_field];
+		$parent = $fetch_order[$this->common_field];
+		// Find out what row is before current one
+		$query_previous = "SELECT ".$this->id_field.",".$this->order_field." FROM ".$this->table." WHERE ".$this->order_field." < '$order' AND ".$this->common_field." = '$parent' ORDER BY ".$this->order_field." DESC LIMIT 1";
+		$get_previous = $database->query($query_previous);
+		if($get_previous->numRows() > 0) {
+			// Change the previous row to the current order
+			$fetch_previous = $get_previous->fetchRow();
+			$previous_id = $fetch_previous[$this->id_field];
+			$decremented_order = $fetch_previous[$this->order_field];
+			$query = "UPDATE ".$this->table." SET ".$this->order_field." = '$order' WHERE ".$this->id_field." = '$previous_id' LIMIT 1";
+			$database->query($query);
+			// Change the row we want to the decremented order
+			$query = "UPDATE ".$this->table." SET ".$this->order_field." = '$decremented_order' WHERE ".$this->id_field." = '$id' LIMIT 1";
+			$database->query($query);
+			
+			if($database->is_error()) {
+				return false;
+			} else {
+				return true;
+			}
+		} else {
+			return false;
+		}
+	}
+	// Move a row up
+	function move_down($id) {
+		global $database;
+		// Get current order
+		$query_order = "SELECT ".$this->order_field.",".$this->common_field." FROM ".$this->table." WHERE ".$this->id_field." = '$id'";
+		$get_order = $database->query($query_order);
+		$fetch_order = $get_order->fetchRow();
+		$order = $fetch_order[$this->order_field];
+		$parent = $fetch_order[$this->common_field];
+		// Find out what row is before current one
+		$query_next = "SELECT $this->id_field,".$this->order_field." FROM ".$this->table." WHERE ".$this->order_field." > '$order' AND ".$this->common_field." = '$parent' ORDER BY ".$this->order_field." ASC LIMIT 1";
+		$get_next = $database->query($query_next);
+		if($get_next->numRows() > 0) {
+			// Change the previous row to the current order
+			$fetch_next = $get_next->fetchRow();
+			$next_id = $fetch_next[$this->id_field];
+			$incremented_order = $fetch_next[$this->order_field];
+			$query = "UPDATE ".$this->table." SET ".$this->order_field." = '$order' WHERE ".$this->id_field." = '$next_id' LIMIT 1";
+			$database->query($query);
+			// Change the row we want to the decremented order
+			$query = "UPDATE ".$this->table." SET ".$this->order_field." = '$incremented_order' WHERE ".$this->id_field." = '$id' LIMIT 1";
+			$database->query($query);
+			if($database->is_error()) {
+				return false;
+			} else {
+				return true;
+			}
+		} else {
+			return false;
+		}
+	}
+	
+	// Get new number for order
+	function get_new($cf_value) {
+		global $database;
+		$database = new database();
+		// Get last order
+		$query_last = "SELECT ".$this->order_field." FROM ".$this->table." WHERE ".$this->common_field." = '$cf_value' ORDER BY ".$this->order_field." DESC LIMIT 1";
+		$get_last = $database->query($query_last);
+		if($get_last->numRows() > 0) {
+			$fetch_last = $get_last->fetchRow();
+			$last_order = $fetch_last[$this->order_field];
+			return $last_order+1;
+		} else {
+			return 1;
+		}
+	}
+	
+	// Clean ordering (should be called if a row in the middle has been deleted)
+	function clean($cf_value) {
+		global $database;
+		// Loop through all records and give new order
+		$query_all = "SELECT * FROM ".$this->table." WHERE ".$this->common_field." = '$cf_value' ORDER BY ".$this->order_field." ASC";
+		$get_all = $database->query($query_all);
+		if($get_all->numRows() > 0) {
+			$count = 1;
+			while($row = $get_all->fetchRow()) {
+				// Update row with new order
+				$database->query("UPDATE ".$this->table." SET ".$this->order_field." = '$count' WHERE ".$this->id_field." = '".$row[$this->id_field]."'");
+				$count = $count+1;
+			}
+		} else {
+			 return true;
+		}
+	}
+	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/class.order.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/index.php
===================================================================
--- tags/2.7.0/wb/framework/index.php	(nonexistent)
+++ tags/2.7.0/wb/framework/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/framework/class.database.php
===================================================================
--- tags/2.7.0/wb/framework/class.database.php	(nonexistent)
+++ tags/2.7.0/wb/framework/class.database.php	(revision 838)
@@ -0,0 +1,163 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Database class
+
+This class will be used to interface between the database
+and the Website Baker code
+
+*/
+
+// Stop this file from being accessed directly
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+if(!defined('DB_URL')) {
+	//define('DB_URL', DB_TYPE.'://'.DB_USERNAME.':'.DB_PASSWORD.'@'.DB_HOST.'/'.DB_NAME);
+}
+
+define('DATABASE_CLASS_LOADED', true);
+
+class database {
+	
+	// Set DB_URL
+	function database($url = '') {
+		// Connect to database
+		$this->connect();
+		// Check for database connection error
+		if($this->is_error()) {
+			die($this->get_error());
+		}
+	}
+	
+	// Connect to the database
+	function connect() {
+		$status = $this->db_handle = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);
+		if(mysql_error()) {
+			$this->connected = false;
+			$this->error = mysql_error();
+		} else {
+			if(!mysql_select_db(DB_NAME)) {
+				$this->connected = false;
+				$this->error = mysql_error();
+			} else {
+				$this->connected = true;
+			}
+		}
+		return $this->connected;
+	}
+	
+	// Disconnect from the database
+	function disconnect() {
+		if($this->connected==true) {
+			mysql_close();
+			return true;
+		} else {
+			return false;
+		}
+	}
+	
+	// Run a query
+	function query($statement) {
+		$mysql = new mysql();
+		$mysql->query($statement);
+		$this->set_error($mysql->error());
+		if($mysql->error()) {
+			return null;
+		} else {
+			return $mysql;
+		}
+	}
+	
+	// Gets the first column of the first row
+	function get_one($statement) {
+		$fetch_row = mysql_fetch_row(mysql_query($statement));
+		$result = $fetch_row[0];
+		$this->set_error(mysql_error());
+		if(mysql_error()) {
+			return null;
+		} else {
+			return $result;
+		}
+	}
+	
+	// Set the DB error
+	function set_error($message = null) {
+		global $TABLE_DOES_NOT_EXIST, $TABLE_UNKNOWN;
+		$this->error = $message;
+		if(strpos($message, 'no such table')) {
+			$this->error_type = $TABLE_DOES_NOT_EXIST;
+		} else {
+			$this->error_type = $TABLE_UNKNOWN;
+		}
+	}
+	
+	// Return true if there was an error
+	function is_error() {
+		return (!empty($this->error)) ? true : false;
+	}
+	
+	// Return the error
+	function get_error() {
+		return $this->error;
+	}
+	
+}
+
+class mysql {
+
+	// Run a query
+	function query($statement) {
+		$this->result = mysql_query($statement);
+		$this->error = mysql_error();
+		return $this->result;
+	}
+	
+	// Fetch num rows
+	function numRows() {
+		return mysql_num_rows($this->result);
+	}
+	
+	// Fetch row
+	function fetchRow() {
+		return mysql_fetch_array($this->result);
+	}
+	
+	// Get error
+	function error() {
+		if(isset($this->error)) {
+			return $this->error;
+		} else {
+			return null;
+		}
+	}
+
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/framework/class.database.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/search/search_modext.php
===================================================================
--- tags/2.7.0/wb/search/search_modext.php	(nonexistent)
+++ tags/2.7.0/wb/search/search_modext.php	(revision 838)
@@ -0,0 +1,347 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// make the url-string for highlighting
+function make_url_searchstring($search_match, $search_url_array) {
+	$link = "";
+	if ($search_match != 'exact') {
+		$str = implode(" ", $search_url_array);
+		$link = "?searchresult=1&amp;sstring=".urlencode($str);
+	} else {
+		$str = str_replace(' ', '_', $search_url_array[0]);
+		$link = "?searchresult=2&amp;sstring=".urlencode($str);
+	}
+	return $link;
+}
+
+// make date and time for "last modified by... on ..."-string
+function get_page_modified($page_modified_when) {
+	global $TEXT;
+	if($page_modified_when > 0) {
+		$date = gmdate(DATE_FORMAT, $page_modified_when+TIMEZONE);
+		$time = gmdate(TIME_FORMAT, $page_modified_when+TIMEZONE);
+	} else {
+		$date = $TEXT['UNKNOWN'].' '.$TEXT['DATE'];
+		$time = $TEXT['UNKNOWN'].' '.$TEXT['TIME'];
+	}
+	return array($date, $time);
+}
+
+// make username and displayname for "last modified by... on ..."-string
+function get_page_modified_by($page_modified_by, $users) {
+	global $TEXT;
+	if($page_modified_by > 0) {
+			$username = $users[$page_modified_by]['username'];
+			$displayname = $users[$page_modified_by]['display_name'];
+		} else {
+			$username = "";
+			$displayname = $TEXT['UNKNOWN'];
+		}
+	return array($username, $displayname);
+}
+
+// checks if _all_ searchwords matches
+function is_all_matched($text, $search_words) {
+	$all_matched = true;
+	foreach ($search_words AS $word) {
+		if(!preg_match('/'.$word.'/i', $text)) {
+			$all_matched = false;
+			break;
+		}
+	}
+	return $all_matched;
+}
+
+// checks if _any_ of the searchwords matches
+function is_any_matched($text, $search_words) {
+	$any_matched = false;
+	$word = '('.implode('|', $search_words).')';
+	if(preg_match('/'.$word.'/i', $text)) {
+		$any_matched = true;
+	}
+	return $any_matched;
+}
+
+// collects the matches from text in excerpt_array
+function get_excerpts($text, $search_words, $max_excerpt_num) {
+	$match_array = array();
+	$excerpt_array = array();
+	$word = '('.implode('|', $search_words).')';
+	// Build the regex-string
+	// start-sign: .!?; + INVERTED EXCLAMATION MARK - INVERTED QUESTION MARK - DOUBLE EXCLAMATION MARK - INTERROBANG - EXCLAMATION QUESTION MARK - QUESTION EXCLAMATION MARK - DOUBLE QUESTION MARK - HALFWIDTH IDEOGRAPHIC FULL STOP - IDEOGRAPHIC FULL STOP - IDEOGRAPHIC COMMA
+	$str1=".!?;"."\xC2\xA1"."\xC2\xBF"."\xE2\x80\xBC"."\xE2\x80\xBD"."\xE2\x81\x89"."\xE2\x81\x88"."\xE2\x81\x87"."\xEF\xBD\xA1"."\xE3\x80\x82"."\xE3\x80\x81";
+	// stop-sign: .!?; + DOUBLE EXCLAMATION MARK - INTERROBANG - EXCLAMATION QUESTION MARK - QUESTION EXCLAMATION MARK - DOUBLE QUESTION MARK - HALFWIDTH IDEOGRAPHIC FULL STOP - IDEOGRAPHIC FULL STOP - IDEOGRAPHIC COMMA
+	$str2=".!?;"."\xE2\x80\xBC"."\xE2\x80\xBD"."\xE2\x81\x89"."\xE2\x81\x88"."\xE2\x81\x87"."\xEF\xBD\xA1"."\xE3\x80\x82"."\xE3\x80\x81";
+	$regex='/(?:^|\b|['.$str1.'])([^'.$str1.']{0,200}?'.$word.'[^'.$str2.']{0,200}(?:['.$str2.']|\b|$))/Sisu';
+	if(version_compare(PHP_VERSION, '4.3.3', '>=')) {
+		// jump from match to match, get excerpt, stop if $max_excerpt_num is reached
+		$last_end = 0; $offset = 0;
+		while(preg_match('/'.$word.'/Sisu', $text, $match_array, PREG_OFFSET_CAPTURE, $last_end)) {
+			$offset = ($match_array[0][1]-206 < $last_end)?$last_end:$match_array[0][1]-206;
+			if(preg_match($regex, $text, $matches, PREG_OFFSET_CAPTURE, $offset)) {
+				$last_end = $matches[1][1]+strlen($matches[1][0])-1;
+				if(!preg_match('/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\./S', $matches[1][0])) // skip excerpts with email-addresses
+					$excerpt_array[] = trim($matches[1][0]);
+				if(count($excerpt_array)>=$max_excerpt_num) {
+					$excerpt_array = array_unique($excerpt_array);
+					if(count($excerpt_array) >= $max_excerpt_num)
+						break;
+				}
+			} else { // problem - preg_match failed: can't find a start- or stop-sign
+				$last_end += 201; // jump forward and try again
+			}
+		}
+	} else { // compatile, but may be very slow with many large pages
+		if(preg_match_all($regex, $text, $match_array)) {
+			foreach($match_array[1] AS $string) {
+				if(!preg_match('/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\./S', $string)) // skip excerpts with email-addresses
+					$excerpt_array[] = trim($string);
+			}
+		}
+	}
+	return $excerpt_array;
+}
+
+// makes excerpt_array a string ready to print out
+function prepare_excerpts($excerpt_array, $search_words, $max_excerpt_num) {
+	// excerpts: text before and after a single excerpt, html-tag for markup
+	$EXCERPT_BEFORE =       '...&nbsp;';
+	$EXCERPT_AFTER =        '&nbsp;...<br />';
+	$EXCERPT_MARKUP_START = '<b>';
+	$EXCERPT_MARKUP_END =   '</b>';
+	// remove duplicate matches from $excerpt_array, if any.
+	$excerpt_array = array_unique($excerpt_array);
+	// use the first $max_excerpt_num excerpts only
+	if(count($excerpt_array) > $max_excerpt_num) {
+		$excerpt_array = array_slice($excerpt_array, 0, $max_excerpt_num);
+	}
+	// prepare search-string
+	$string = "(".implode("|", $search_words).")";
+	// we want markup on search-results page,
+	// but we need some 'magic' to prevent <br />, <b>... from being highlighted
+	$excerpt = '';
+	foreach($excerpt_array as $str) {
+		$excerpt .= '#,,#'.preg_replace("/($string)/iu","#,,,,#$1#,,,,,#",$str).'#,,,#';
+	}
+	$excerpt = str_replace(array('&','<','>','"','\'',"\xC2\xA0"), array('&amp;','&lt;','&gt;','&quot;','&#39;','&nbsp;'), $excerpt);
+	$excerpt = str_replace(array('#,,,,#','#,,,,,#'), array($EXCERPT_MARKUP_START,$EXCERPT_MARKUP_END), $excerpt);
+	$excerpt = str_replace(array('#,,#','#,,,#'), array($EXCERPT_BEFORE,$EXCERPT_AFTER), $excerpt);
+	// prepare to write out
+	if(DEFAULT_CHARSET != 'utf-8') {
+		$excerpt = umlauts_to_entities($excerpt, 'UTF-8');
+	}
+	return $excerpt;
+}
+
+// work out what the link-anchor should be
+function make_url_target($page_link_target, $text, $search_words) {
+	// 1. e.g. $page_link_target=="&monthno=5&year=2007" - module-dependent target. Do nothing.
+	// 2. $page_link_target=="#!wb_section_..." - the user wants the section-target, so do nothing.
+	// 3. $page_link_target=="#wb_section_..." - try to find a better target, use the section-target as fallback.
+	// 4. $page_link_target=="" - do nothing
+	if(version_compare(PHP_VERSION, '4.3.3', ">=") && substr($page_link_target,0,12)=='#wb_section_') {
+		$word = '('.implode('|', $search_words).')';
+		preg_match('/'.$word.'/i', $text, $match, PREG_OFFSET_CAPTURE);
+		if($match && is_array($match[0])) {
+			$x=$match[0][1]; // position of first match
+			// is there an anchor nearby?
+			if(preg_match_all('/<(?:[^>]+id|\s*a[^>]+name)\s*=\s*"(.*)"/SiU', substr($text,0,$x), $match, PREG_OFFSET_CAPTURE)) {
+				$anchor='';
+				foreach($match[1] AS $array) {
+					if($array[1] > $x) {
+						break;
+					}
+					$anchor = $array[0];
+				}
+				if($anchor != '') {
+					$page_link_target = '#'.$anchor;
+				}
+			}
+		}
+	}
+	elseif(substr($page_link_target,0,13)=='#!wb_section_') {
+		$page_link_target = '#'.substr($page_link_target, 2);
+	}
+	return $page_link_target;
+}
+
+// wrapper for compatibility with old print_excerpt()
+function print_excerpt($page_link, $page_link_target, $page_title, $page_description, $page_modified_when, $page_modified_by, $text, $max_excerpt_num, $func_vars, $pic_link="") {
+	$mod_vars = array(
+		'page_link' => $page_link,
+		'page_link_target' => $page_link_target,
+		'page_title' => $page_title,
+		'page_description' => $page_description,
+		'page_modified_when' => $page_modified_when,
+		'page_modified_by' => $page_modified_by,
+		'text' => $text,
+		'max_excerpt_num' => $max_excerpt_num,
+		'pic_link' => $pic_link
+	);
+	print_excerpt2($mod_vars, $func_vars);
+}
+
+/* These functions can be used in module-supplied search_funcs
+ * -----------------------------------------------------------
+ * print_excerpt2() - the main-function to use in all search_funcs
+ * print_excerpt() - wrapper for compatibility-reason. Use print_excerpt2() instead.
+ * list_files_dirs() - lists all files and dirs below a given directory
+ * clear_filelist() - keeps only wanted or removes unwanted entries in file-list.
+ */
+ 
+// prints the excerpts for one section
+function print_excerpt2($mod_vars, $func_vars) {
+	extract($func_vars, EXTR_PREFIX_ALL, 'func');
+	extract($mod_vars, EXTR_PREFIX_ALL, 'mod');
+	global $TEXT;
+	// check $mod_...vars
+	if(!isset($mod_page_link))          $mod_page_link = $func_page_link;
+	if(!isset($mod_page_link_target))   $mod_page_link_target = "";
+	if(!isset($mod_page_title))         $mod_page_title = $func_page_title;
+	if(!isset($mod_page_description))   $mod_page_description = $func_page_description;
+	if(!isset($mod_page_modified_when)) $mod_page_modified_when = $func_page_modified_when;
+	if(!isset($mod_page_modified_by))   $mod_page_modified_by = $func_page_modified_by;
+	if(!isset($mod_text))               $mod_text = "";
+	if(!isset($mod_max_excerpt_num))    $mod_max_excerpt_num = $func_default_max_excerpt;
+	if(!isset($mod_pic_link))           $mod_pic_link = "";
+	if(!isset($mod_no_highlight))       $mod_no_highlight = false;
+	if(!isset($func_enable_flush))      $func_enable_flush = false; // set this in db: wb_search.cfg_enable_flush [READ THE DOC BEFORE]
+	if($mod_text == "") // nothing to do
+		{ return false; }
+	if($mod_no_highlight) // no highlighting
+		{ $mod_page_link_target = "&amp;nohighlight=1".$mod_page_link_target; }
+	// clean the text:
+	$mod_text = preg_replace('/\s+/', ' ', $mod_text);
+	$mod_text = preg_replace('#<(!--.*--|style.*</style|script.*</script)>#SiU', ' ', $mod_text);
+	$mod_text = preg_replace('#<(br( /)?|dt|/dd|/?(h[1-6]|tr|table|p|li|ul|pre|code|div|hr))[^>]*>#Si', '.', $mod_text);
+	$mod_text = entities_to_umlauts($mod_text, 'UTF-8');
+	$anchor_text = $mod_text; // make an copy containing html-tags
+	$mod_text = strip_tags($mod_text);
+	$mod_text = str_replace(array('&gt;','&lt;','&amp;','&quot;','&#39;','&apos;','&nbsp;'), array('>','<','&','"','\'','\'',"\xC2\xA0"), $mod_text);
+	// Do a fast scan over $mod_text first. This will speedup things a lot.
+	if($func_search_match == 'all') {
+		if(!is_all_matched($mod_text, $func_search_words))
+			return false;
+	}
+	elseif(!is_any_matched($mod_text, $func_search_words)) {
+		return false;
+	}
+	// search for an better anchor - this have to be done before strip_tags() (may fail if search-string contains <, &, amp, gt, lt, ...)
+	$anchor =  make_url_target($mod_page_link_target, $anchor_text, $func_search_words);
+
+	// make the link from $mod_page_link, add anchor
+	$link = "";
+	$link = page_link($mod_page_link);
+	if(strpos($mod_page_link, 'http:')===FALSE)
+		$link .= make_url_searchstring($func_search_match, $func_search_url_array);
+	$link .= $anchor;
+
+	// now get the excerpt
+	$excerpt = "";
+	$excerpt_array = array();
+	if($mod_max_excerpt_num > 0) {
+		if(!$excerpt_array = get_excerpts($mod_text, $func_search_words, $mod_max_excerpt_num)) {
+			return false;
+		}
+		$excerpt = prepare_excerpts($excerpt_array, $func_search_words, $mod_max_excerpt_num);
+	}
+
+	// handle thumbs - to deactivate this look in the module's search.php: $show_thumb (or maybe in the module's settings-page)
+	if($mod_pic_link != "") {
+		$excerpt = '<table class="excerpt_thumb" width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td width="110" valign="top"><a href="'.$link.'"><img src="'.WB_URL.'/'.MEDIA_DIRECTORY.$mod_pic_link.'" alt="" /></a></td><td>'.$excerpt.'</td></tr></tbody></table>';
+	}
+
+	// print-out the excerpt
+	$vars = array();
+	$values = array();
+	list($date, $time) = get_page_modified($mod_page_modified_when);
+	list($username, $displayname) = get_page_modified_by($mod_page_modified_by, $func_users);
+	$vars = array('[LINK]', '[TITLE]', '[DESCRIPTION]', '[USERNAME]','[DISPLAY_NAME]','[DATE]','[TIME]','[TEXT_LAST_UPDATED_BY]','[TEXT_ON]','[EXCERPT]');
+	$values = array(
+		$link,
+		$mod_page_title,
+		$mod_page_description,
+		$username,
+		$displayname,
+		$date,
+		$time,
+		$TEXT['LAST_UPDATED_BY'],
+		$TEXT['ON'],
+		$excerpt
+	);
+	echo str_replace($vars, $values, $func_results_loop_string);
+	if($func_enable_flush) { // ATTN: this will bypass output-filters and may break template-layout or -filters
+		ob_flush();flush();
+	}
+	return true;
+}
+
+// list all files and dirs in $dir (recursive), omits '.', '..', and hidden files/dirs
+// returns an array of two arrays ($files[] and $dirs[]).
+// usage: list($files,$dirs) = list_files_dirs($directory);
+//        $depth: get subdirs (true/false)
+function list_files_dirs($dir, $depth=true, $files=array(), $dirs=array()) {
+	$dh=opendir($dir);
+	while(($file = readdir($dh)) !== false) {
+		if($file{0} == '.' || $file == '..') {
+			continue;
+		}
+		if(is_dir($dir.'/'.$file)) {
+			if($depth) {
+				$dirs[] = $dir.'/'.$file;
+				list($files, $dirs) = list_files_dirs($dir.'/'.$file, $depth, $files, $dirs);
+			}
+		} else {
+			$files[] = $dir.'/'.$file;
+		}
+	}
+	closedir($dh);
+	natcasesort($files);
+	natcasesort($dirs);
+	return(array($files, $dirs));
+}
+
+// keeps only wanted entries in array $files. $str have to be an eregi()-compatible regex
+function clear_filelist($files, $str, $keep=true) {
+	// options: $keep = true  : remove all non-matching entries
+	//          $keep = false : remove all matching entries
+	$c_filelist = array();
+	if($str == '')
+		return $files;
+	foreach($files as $file) {
+		if($keep) {
+			if(eregi($str, $file)) {
+				$c_filelist[] = $file;
+			}
+		} else {
+			if(!eregi($str, $file)) {
+				$c_filelist[] = $file;
+			}
+		}
+	}
+	return($c_filelist);
+}
+
+?>

Property changes on: tags/2.7.0/wb/search/search_modext.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/search/search.php
===================================================================
--- tags/2.7.0/wb/search/search.php	(nonexistent)
+++ tags/2.7.0/wb/search/search.php	(revision 838)
@@ -0,0 +1,679 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) { 
+	header('Location: index.php');
+	exit(0);
+}
+
+// Check if search is enabled
+if(SHOW_SEARCH != true) {
+	echo $TEXT['SEARCH'].' '.$TEXT['DISABLED'];
+	return;
+}
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Get search settings
+$table=TABLE_PREFIX.'search';
+$query = $database->query("SELECT value FROM $table WHERE name = 'header' LIMIT 1");
+$fetch_header = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'footer' LIMIT 1");
+$fetch_footer = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'results_header' LIMIT 1");
+$fetch_results_header = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'results_footer' LIMIT 1");
+$fetch_results_footer = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'results_loop' LIMIT 1");
+$fetch_results_loop = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'no_results' LIMIT 1");
+$fetch_no_results = $query->fetchRow();
+$query = $database->query("SELECT value FROM $table WHERE name = 'module_order' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value']='faqbaker,manual,wysiwyg'; }
+$search_module_order = $res['value'];
+$query = $database->query("SELECT value FROM $table WHERE name = 'max_excerpt' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = '15'; }
+$search_max_excerpt = (int)($res['value']);
+if(!is_numeric($search_max_excerpt)) { $search_max_excerpt = 15; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'cfg_show_description' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = 'true'; }
+if($res['value'] == 'false') { $cfg_show_description = false; } else { $cfg_show_description = true; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'cfg_search_description' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = 'true'; }
+if($res['value'] == 'false') { $cfg_search_description = false; } else { $cfg_search_description = true; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'cfg_search_keywords' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = 'true'; }
+if($res['value'] == 'false') { $cfg_search_keywords = false; } else { $cfg_search_keywords = true; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'cfg_enable_old_search' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = 'true'; }
+if($res['value'] == 'false') { $cfg_enable_old_search = false; } else { $cfg_enable_old_search = true; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'cfg_enable_flush' LIMIT 1");
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = 'false'; }
+if($res['value'] == 'false') { $cfg_enable_flush = false; } else { $cfg_enable_flush = true; }
+$query = $database->query("SELECT value FROM $table WHERE name = 'time_limit' LIMIT 1"); // time-limit per module
+if($query->numRows() > 0) { $res = $query->fetchRow(); } else { $res['value'] = '0'; }
+$search_time_limit = (int)($res['value']);
+if($search_time_limit < 1) $search_time_limit = 0;
+
+// search-module-extension: get helper-functions
+require_once(WB_PATH.'/search/search_modext.php');
+// search-module-extension: Get "search.php" for each module, if present
+// looks in modules/module/ and modules/module_searchext/
+$search_funcs = array();$search_funcs['__before'] = array();$search_funcs['__after'] = array();
+$query = $database->query("SELECT DISTINCT directory FROM ".TABLE_PREFIX."addons WHERE type = 'module' AND directory NOT LIKE '%_searchext'");
+if($query->numRows() > 0) {
+	while($module = $query->fetchRow()) {
+		$file = WB_PATH.'/modules/'.$module['directory'].'/search.php';
+		if(!file_exists($file)) {
+			$file = WB_PATH.'/modules/'.$module['directory'].'_searchext/search.php';
+			if(!file_exists($file)) {
+				$file='';
+			}
+		}
+		if($file!='') {
+			include_once($file);
+			if(function_exists($module['directory']."_search")) {
+				$search_funcs[$module['directory']] = $module['directory']."_search";
+			}
+			if(function_exists($module['directory']."_search_before")) {
+				$search_funcs['__before'][] = $module['directory']."_search_before";
+			}
+			if(function_exists($module['directory']."_search_after")) {
+				$search_funcs['__after'][] = $module['directory']."_search_after";
+			}
+		}
+	}
+}
+
+// Get list of usernames and display names
+$query = $database->query("SELECT user_id,username,display_name FROM ".TABLE_PREFIX."users");
+$users = array('0' => array('display_name' => $TEXT['UNKNOWN'], 'username' => strtolower($TEXT['UNKNOWN'])));
+if($query->numRows() > 0) {
+	while($user = $query->fetchRow()) {
+		$users[$user['user_id']] = array('display_name' => $user['display_name'], 'username' => $user['username']);
+	}
+}
+
+// Get the path to search into. Normally left blank
+/* possible values:
+ * - a single path: "/en/" - search only pages whose link contains 'path' ("/en/machinery/bender-x09")
+ * - a bunch of alternative pathes: "/en/,/machinery/,docs/" - alternatives paths, seperated by comma
+ * - a bunch of paths to exclude: "-/about,/info,/jp/,/light" - search all, exclude these.
+ * These different styles can't be mixed.
+ */
+$search_path_SQL = "";
+$search_path = "";
+if(isset($_REQUEST['search_path'])) {
+	$search_path = $wb->add_slashes($_REQUEST['search_path']);
+	if(!preg_match('~^[-a-zA-Z0-9_,/ ]+$~', $search_path))
+		$search_path = '';
+	if($search_path != '') {
+		$search_path_SQL = "AND ( ";
+		$not = "";
+		$op = "OR";
+		if($search_path[0] == '-') {
+			$not = "NOT";
+			$op = "AND";
+			$paths = explode(',', substr($search_path, 1) );
+		} else {
+			$paths = explode(',',$search_path);
+		}
+		$i=0;
+		foreach($paths as $p) {
+			if($i++ > 0) {
+				$search_path_SQL .= " $op";
+			}
+			$search_path_SQL .= " link $not LIKE '%$p%'";			
+		}
+		$search_path_SQL .= " )";
+	}
+}
+
+// Get the search type
+$match = '';
+if(isset($_REQUEST['match'])) {
+	if($_REQUEST['match']=='any') $match = 'any';
+	elseif($_REQUEST['match']=='all') $match = 'all';
+	elseif($_REQUEST['match']=='exact') $match = 'exact';
+	else $match = 'all';
+} else {
+	$match = 'all';
+}
+
+// Get search string
+$search_normal_string = 'unset';
+$search_entities_string = 'unset'; // for SQL's LIKE
+$search_display_string = ''; // for displaying
+$search_url_string = ''; // for $_GET
+$string = '';
+if(isset($_REQUEST['string'])) {
+	if($match!='exact') {
+		$string=str_replace(',', '', $_REQUEST['string']);
+	} else {
+		$string=$_REQUEST['string']; // $string will be cleaned below
+	}
+	// redo possible magic quotes
+	$string = $wb->strip_slashes($string);
+	$string = preg_replace('/\s+/', ' ', $string);
+	$string = trim($string);
+	// remove some bad chars
+	$string = preg_replace('/(^|\s+)[|.]+(?=\s+|$)/', '', $string);
+	$search_display_string = htmlspecialchars($string);
+	$search_entities_string = addslashes(umlauts_to_entities(htmlspecialchars($string)));
+	// mySQL needs four backslashes to match one in LIKE comparisons)
+	$search_entities_string = str_replace('\\\\', '\\\\\\\\', $search_entities_string);
+	// convert string to utf-8
+	$string = entities_to_umlauts($string, 'UTF-8');
+	// quote ' " and /  -we need quoted / for regex
+	$search_url_string = $string;
+	$string = preg_quote($string);
+	$search_normal_string = str_replace(array('\'','"','/'), array('\\\'','\"','\/'), $string);
+}
+// make arrays from the search_..._strings above
+$search_url_array = explode(' ', $search_url_string);
+$search_normal_array = array();
+$search_entities_array = array();
+if($match == 'exact') {
+	$search_normal_array[]=$search_normal_string;
+	$search_entities_array[]=$search_entities_string;
+} else {
+	$exploded_string = explode(' ', $search_normal_string);
+	// Make sure there is no blank values in the array
+	foreach($exploded_string AS $each_exploded_string) {
+		if($each_exploded_string != '') {
+			$search_normal_array[] = $each_exploded_string;
+		}
+	}
+	$exploded_string = explode(' ', $search_entities_string);
+	// Make sure there is no blank values in the array
+	foreach($exploded_string AS $each_exploded_string) {
+		if($each_exploded_string != '') {
+			$search_entities_array[] = $each_exploded_string;
+		}
+	}
+}
+// make an extra copy of search_normal_array for use in regex
+require_once(WB_PATH.'/search/search_convert.php');
+$search_words = array();
+foreach($search_normal_array AS $str) {
+	$str = strtr($str, $string_ul_umlauts);
+	// special-feature: '|' means word-boundary (\b). Searching for 'the|' will find the, but not thema.
+	// this doesn't(?) work correctly for unicode-chars: '|test' will work, but '|Ã¼ber' not.
+	$str = strtr($str, array('\\|'=>'\b'));
+	$search_words[] = $str;
+}
+
+// Work-out what to do (match all words, any words, or do exact match), and do relevant with query settings
+$all_checked = '';
+$any_checked = '';
+$exact_checked = '';
+if ($match == 'any') {
+	$any_checked = ' checked="checked"';
+	$logical_operator = ' OR';
+} elseif($match == 'all') {
+	$all_checked = ' checked="checked"';
+	$logical_operator = ' AND';
+} else {
+	$exact_checked = ' checked="checked"';
+}
+
+// Replace vars in search settings with values
+$vars = array('[SEARCH_STRING]', '[WB_URL]', '[PAGE_EXTENSION]', '[TEXT_RESULTS_FOR]');
+$values = array($search_display_string, WB_URL, PAGE_EXTENSION, $TEXT['RESULTS_FOR']);
+$search_footer = str_replace($vars, $values, ($fetch_footer['value']));
+$search_results_header = str_replace($vars, $values, ($fetch_results_header['value']));
+$search_results_footer = str_replace($vars, $values, ($fetch_results_footer['value']));
+
+// Do extra vars/values replacement
+$vars = array('[SEARCH_STRING]', '[WB_URL]', '[PAGE_EXTENSION]', '[TEXT_SEARCH]', '[TEXT_ALL_WORDS]', '[TEXT_ANY_WORDS]', '[TEXT_EXACT_MATCH]', '[TEXT_MATCH]', '[TEXT_MATCHING]', '[ALL_CHECKED]', '[ANY_CHECKED]', '[EXACT_CHECKED]', '[REFERRER_ID]', '[SEARCH_PATH]');
+$values = array($search_display_string, WB_URL, PAGE_EXTENSION, $TEXT['SEARCH'], $TEXT['ALL_WORDS'], $TEXT['ANY_WORDS'], $TEXT['EXACT_MATCH'], $TEXT['MATCH'], $TEXT['MATCHING'], $all_checked, $any_checked, $exact_checked, REFERRER_ID, $search_path);
+$search_header = str_replace($vars, $values, ($fetch_header['value']));
+$vars = array('[TEXT_NO_RESULTS]');
+$values = array($TEXT['NO_RESULTS']);
+$search_no_results = str_replace($vars, $values, ($fetch_no_results['value']));
+
+/*
+ * Start of output
+ */
+
+// Show search header
+echo $search_header;
+// Show search results_header
+echo $search_results_header;
+
+// Work-out if the user has already entered their details or not
+if($search_normal_string != '') {
+
+	// Get modules
+	$table = TABLE_PREFIX."sections";
+	$get_modules = $database->query("SELECT DISTINCT module FROM $table WHERE module != '' ");
+	$modules = array();
+	if($get_modules->numRows() > 0) {
+		while($module = $get_modules->fetchRow()) {
+			$modules[] = $module['module'];
+		}
+	}
+	// sort module search-order
+	// get the modules from $search_module_order first ...
+	$sorted_modules = array();
+	$m = count($modules);
+	$search_modules = explode(',', $search_module_order);
+	foreach($search_modules AS $item) {
+		$item = trim($item);
+		for($i=0; $i < $m; $i++) {
+			if(isset($modules[$i]) && $modules[$i] == $item) {
+				$sorted_modules[] = $modules[$i];
+				unset($modules[$i]);
+				break;
+			}
+		}
+	}
+	// ... then add the rest
+	foreach($modules AS $item) {
+		$sorted_modules[] = $item;
+	}
+
+
+	// Use the module's search-extensions.
+	// This is somewhat slower than the orginial method.
+	
+	// call $search_funcs['__before'] first
+	$search_func_vars = array(
+		'database' => $database, // database-handle
+		'page_id' => 0,
+		'section_id' => 0,
+		'page_title' => '',
+		'page_menu_title' => '',
+		'page_description' => '',
+		'page_keywords' => '',
+		'page_link' => '',
+		'page_modified_when' => 0,
+		'page_modified_by' => 0,
+		'users' => $users, // array of known user-id/user-name
+		'search_words' => $search_words, // array of strings, prepared for regex
+		'search_match' => $match, // match-type
+		'search_url_array' => $search_url_array, // array of strings from the original search-string. ATTN: strings are not quoted!
+		'results_loop_string' => $fetch_results_loop['value'],
+		'default_max_excerpt' => $search_max_excerpt,
+		'time_limit' => $search_time_limit, // time-limit in secs
+		'search_path' => $search_path // see docu
+	);
+	foreach($search_funcs['__before'] as $func) {
+		$uf_res = call_user_func($func, $search_func_vars);
+	}
+	// now call module-based $search_funcs[]
+	$seen_pages = array(); // seen pages per module.
+	$pages_listed = array(); // seen pages.
+	foreach($sorted_modules AS $module_name) {
+		$start_time = time();	// get start-time to check time-limit; not very accurate, but ok
+		$seen_pages[$module_name] = array();
+		if(!isset($search_funcs[$module_name])) {
+			continue; // there is no search_func for this module
+		}
+		// get each section for $module_name
+		$table_s = TABLE_PREFIX."sections";	
+		$table_p = TABLE_PREFIX."pages";
+		$sections_query = $database->query("
+			SELECT s.section_id, s.page_id, s.module, s.publ_start, s.publ_end,
+			       p.page_title, p.menu_title, p.link, p.description, p.keywords, p.modified_when, p.modified_by,
+			       p.visibility, p.viewing_groups, p.viewing_users
+			FROM $table_s AS s INNER JOIN $table_p AS p ON s.page_id = p.page_id
+			WHERE s.module = '$module_name' AND p.visibility NOT IN ('none','deleted') AND p.searching = '1' $search_path_SQL
+			ORDER BY s.section_id, s.position ASC
+		");
+		if($sections_query->numRows() > 0) {
+			while($res = $sections_query->fetchRow()) {
+				// check if time-limit is exceeded for this module
+				if($search_time_limit > 0 && (time()-$start_time > $search_time_limit)) {
+					break;
+				}
+				// Only show this section if it is not "out of publication-date"
+				$now = time();
+				if( !( $now<$res['publ_end'] && ($now>$res['publ_start'] || $res['publ_start']==0) ||
+					$now>$res['publ_start'] && $res['publ_end']==0) ) {
+					continue;
+				}
+				$search_func_vars = array(
+					'database' => $database,
+					'page_id' => $res['page_id'],
+					'section_id' => $res['section_id'],
+					'page_title' => $res['page_title'],
+					'page_menu_title' => $res['menu_title'],
+					'page_description' => ($cfg_show_description?$res['description']:""),
+					'page_keywords' => $res['keywords'],
+					'page_link' => $res['link'],
+					'page_modified_when' => $res['modified_when'],
+					'page_modified_by' => $res['modified_by'],
+					'users' => $users,
+					'search_words' => $search_words, // needed for preg_match
+					'search_match' => $match,
+					'search_url_array' => $search_url_array, // needed for url-string only
+					'results_loop_string' => $fetch_results_loop['value'],
+					'default_max_excerpt' => $search_max_excerpt,
+					'enable_flush' => $cfg_enable_flush
+				);
+				// Only show this page if we are allowed to see it
+				if($admin->page_is_visible($res) == false) {
+					if($res['visibility'] == 'registered') { // don't show excerpt
+						$search_func_vars['default_max_excerpt'] = 0;
+						$search_func_vars['page_description'] = $TEXT['REGISTERED'];
+					} else { // private
+						continue;
+					}
+				}
+				$uf_res = call_user_func($search_funcs[$module_name], $search_func_vars);
+				if($uf_res) {
+					$pages_listed[$res['page_id']] = true;
+					$seen_pages[$module_name][$res['page_id']] = true;
+				} else {
+					$seen_pages[$module_name][$res['page_id']] = true;
+				}
+			}
+		}
+	}
+	// now call $search_funcs['__after']
+	$search_func_vars = array(
+		'database' => $database, // database-handle
+		'page_id' => 0,
+		'section_id' => 0,
+		'page_title' => '',
+		'page_menu_title' => '',
+		'page_description' => '',
+		'page_keywords' => '',
+		'page_link' => '',
+		'page_modified_when' => 0,
+		'page_modified_by' => 0,
+		'users' => $users, // array of known user-id/user-name
+		'search_words' => $search_words, // array of strings, prepared for regex
+		'search_match' => $match, // match-type
+		'search_url_array' => $search_url_array, // array of strings from the original search-string. ATTN: strings are not quoted!
+		'results_loop_string' => $fetch_results_loop['value'],
+		'default_max_excerpt' => $search_max_excerpt,
+		'time_limit' => $search_time_limit, // time-limit in secs
+		'search_path' => $search_path // see docu
+	);
+	foreach($search_funcs['__after'] as $func) {
+		$uf_res = call_user_func($func, $search_func_vars);
+	}
+
+
+	// Search page details only, such as description, keywords, etc, but only of unseen pages.
+	$max_excerpt_num = 0; // we don't want excerpt here
+	$divider = ".";
+	$table = TABLE_PREFIX."pages";
+	$query_pages = $database->query("
+		SELECT page_id, page_title, menu_title, link, description, keywords, modified_when, modified_by,
+		       visibility, viewing_groups, viewing_users
+		FROM $table
+		WHERE visibility NOT IN ('none','deleted') AND searching = '1' $search_path_SQL
+	");
+	if($query_pages->numRows() > 0) {
+		while($page = $query_pages->fetchRow()) {
+			if (isset($pages_listed[$page['page_id']])) {
+				continue;
+			}
+			$func_vars = array(
+				'database' => $database,
+				'page_id' => $page['page_id'],
+				'page_title' => $page['page_title'],
+				'page_menu_title' => $page['menu_title'],
+				'page_description' => ($cfg_show_description?$page['description']:""),
+				'page_keywords' => $page['keywords'],
+				'page_link' => $page['link'],
+				'page_modified_when' => $page['modified_when'],
+				'page_modified_by' => $page['modified_by'],
+				'users' => $users,
+				'search_words' => $search_words, // needed for preg_match_all
+				'search_match' => $match,
+				'search_url_array' => $search_url_array, // needed for url-string only
+				'results_loop_string' => $fetch_results_loop['value'],
+				'default_max_excerpt' => $max_excerpt_num,
+				'enable_flush' => $cfg_enable_flush
+			);
+			// Only show this page if we are allowed to see it
+			if($admin->page_is_visible($page) == false) {
+				if($page['visibility'] != 'registered') {
+					continue;
+				} else { // page: registered, user: access denied
+					$func_vars['page_description'] = 'registered';
+				}
+			}
+			if($admin->page_is_active($page) == false) {
+				continue;
+			}
+			$text = $func_vars['page_title'].$divider
+				.$func_vars['page_menu_title'].$divider
+				.($cfg_search_description?$func_vars['page_description']:"").$divider
+				.($cfg_search_keywords?$func_vars['page_keywords']:"").$divider;
+			$mod_vars = array(
+				'page_link' => $func_vars['page_link'],
+				'page_link_target' => "",
+				'page_title' => $func_vars['page_title'],
+				'page_description' => $func_vars['page_description'],
+				'page_modified_when' => $func_vars['page_modified_when'],
+				'page_modified_by' => $func_vars['page_modified_by'],
+				'text' => $text,
+				'max_excerpt_num' => $func_vars['default_max_excerpt']
+			);
+			if(print_excerpt2($mod_vars, $func_vars)) {
+				$pages_listed[$page['page_id']] = true;
+			}
+		}
+	}
+
+	// Now use the old method for pages not displayed by the new method above
+	// in case someone has old modules without search.php.
+
+	// Get modules
+	$table_search = TABLE_PREFIX."search";
+	$table_sections = TABLE_PREFIX."sections";
+	$get_modules = $database->query("
+		SELECT DISTINCT s.value, s.extra
+		FROM $table_search AS s INNER JOIN $table_sections AS sec
+			ON s.value = sec.module
+		WHERE s.name = 'module'
+	");
+	$modules = array();
+	if($get_modules->numRows() > 0) {
+		while($module = $get_modules->fetchRow()) {
+			$modules[] = $module; // $modules in an array of arrays
+		}
+	}
+	// sort module search-order
+	// get the modules from $search_module_order first ...
+	$sorted_modules = array();
+	$m = count($modules);
+	$search_modules = explode(',', $search_module_order);
+	foreach($search_modules AS $item) {
+		$item = trim($item);
+		for($i=0; $i < $m; $i++) {
+			if(isset($modules[$i]) && $modules[$i]['value'] == $item) {
+				$sorted_modules[] = $modules[$i];
+				unset($modules[$i]);
+				break;
+			}
+		}
+	}
+	// ... then add the rest
+	foreach($modules AS $item) {
+		$sorted_modules[] = $item;
+	}
+
+	if($cfg_enable_old_search) { // this is the old (wb <= 2.6.7) search-function
+		$search_path_SQL = str_replace(' link ', ' '.TABLE_PREFIX.'pages.link ', $search_path_SQL);
+		foreach($sorted_modules AS $module) {
+			$query_start = '';
+			$query_body = '';
+			$query_end = '';
+			$prepared_query = '';
+			// Get module name
+			$module_name = $module['value'];
+			if(!isset($seen_pages[$module_name])) {
+				$seen_pages[$module_name]=array();
+			}
+			// skip module 'code' - it doesn't make sense to search in a code section
+			if($module_name=="code")
+				continue;
+			// Get fields to use for title, link, etc.
+			$fields = unserialize($module['extra']);
+			// Get query start
+			$get_query_start = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'query_start' AND extra = '$module_name' LIMIT 1");
+			if($get_query_start->numRows() > 0) {
+				// Fetch query start
+				$fetch_query_start = $get_query_start->fetchRow();
+				// Prepare query start for execution by replacing {TP} with the TABLE_PREFIX
+				$query_start = str_replace('[TP]', TABLE_PREFIX, ($fetch_query_start['value']));
+			}
+			// Get query end
+			$get_query_end = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'query_end' AND extra = '$module_name' LIMIT 1");
+			if($get_query_end->numRows() > 0) {
+				// Fetch query end
+				$fetch_query_end = $get_query_end->fetchRow();
+				// Set query end
+				$query_end = ($fetch_query_end['value']);
+			}
+			// Get query body
+			$get_query_body = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'query_body' AND extra = '$module_name' LIMIT 1");
+			if($get_query_body->numRows() > 0) {
+				// Fetch query body
+				$fetch_query_body = $get_query_body->fetchRow();
+				// Prepare query body for execution by replacing {STRING} with the correct one
+				$query_body = str_replace(array('[TP]','[O]','[W]'), array(TABLE_PREFIX,'LIKE','%'), ($fetch_query_body['value']));
+				// Loop through query body for each string, then combine with start and end
+				$prepared_query = $query_start." ( ( ( ";
+				$count = 0;
+				foreach($search_normal_array AS $string) {
+					if($count != 0) {
+						$prepared_query .= " ) ".$logical_operator." ( ";
+					}
+					$prepared_query .= str_replace('[STRING]', $string, $query_body);
+					$count = $count+1;
+				}
+				$count=0;
+				$prepared_query .= ' ) ) OR ( ( ';
+				foreach($search_entities_array AS $string) {
+					if($count != 0) {
+						$prepared_query .= " ) ".$logical_operator." ( ";
+					}
+					$prepared_query .= str_replace('[STRING]', $string, $query_body);
+					$count = $count+1;
+				}
+				$prepared_query .= " ) ) ) ".$query_end;
+				// Execute query
+				$page_query = $database->query($prepared_query." ".$search_path_SQL);
+
+				// Loop through queried items
+				if($page_query->numRows() > 0) {
+					while($page = $page_query->fetchRow()) {
+						// Only show this page if it hasn't already been listed
+						if(isset($seen_pages[$module_name][$page['page_id']]) || isset($pages_listed[$page['page_id']])) {
+							continue;
+						}
+						
+						// don't list pages with visibility == none|deleted and check if user is allowed to see the page
+						$p_table = TABLE_PREFIX."pages";
+						$viewquery = $database->query("
+							SELECT visibility, viewing_groups, viewing_users
+							FROM $p_table
+							WHERE page_id='{$page['page_id']}'
+						");
+						$visibility = 'none'; $viewing_groups="" ; $viewing_users="";
+						if($viewquery->numRows() > 0) {
+							if($res = $viewquery->fetchRow()) {
+								$visibility = $res['visibility'];
+								$viewing_groups = $res['viewing_groups'];
+								$viewing_users = $res['viewing_users'];
+								if($visibility == 'deleted' || $visibility == 'none') {
+									continue;
+								}
+								if($visibility == 'private') {
+									if($admin->page_is_visible(array(
+										'page_id'=>$page[$fields['page_id']],
+										'visibility' =>$visibility,
+										'viewing_groups'=>$viewing_groups,
+										'viewing_users'=>$viewing_users
+									)) == false) {
+										continue;
+									}
+								}
+								if($admin->page_is_active(array('page_id'=>$page[$fields['page_id']]))==false) {
+									continue;
+								}
+							}
+						}
+	
+						// Get page link
+						$link = page_link($page['link']);
+						// Add search string for highlighting
+						if ($match!='exact') {
+							$sstring = implode(" ", $search_normal_array);
+							$link = $link."?searchresult=1&amp;sstring=".urlencode($sstring);
+						} else {
+							$sstring = strtr($search_normal_array[0], " ", "_");
+							$link = $link."?searchresult=2&amp;sstring=".urlencode($sstring);
+						}
+						// Set vars to be replaced by values
+						if(!isset($page['description'])) { $page['description'] = ""; }
+						if(!isset($page['modified_when'])) { $page['modified_when'] = 0; }
+						if(!isset($page['modified_by'])) { $page['modified_by'] = 0; }
+						$vars = array('[LINK]', '[TITLE]', '[DESCRIPTION]', '[USERNAME]','[DISPLAY_NAME]','[DATE]','[TIME]','[TEXT_LAST_UPDATED_BY]','[TEXT_ON]','[EXCERPT]');
+						if($page['modified_when'] > 0) {
+							$date = gmdate(DATE_FORMAT, $page['modified_when']+TIMEZONE);
+							$time = gmdate(TIME_FORMAT, $page['modified_when']+TIMEZONE);
+						} else {
+							$date = $TEXT['UNKNOWN'].' '.$TEXT['DATE'];
+							$time = $TEXT['UNKNOWN'].' '.$TEXT['TIME'];
+						}
+						$excerpt="";
+						if($cfg_show_description == 0) {
+							$page['description'] = "";
+						}
+						$values = array($link, $page['page_title'], $page['description'], $users[$page['modified_by']]['username'], $users[$page['modified_by']]['display_name'], $date, $time, $TEXT['LAST_UPDATED_BY'], strtolower($TEXT['ON']), $excerpt);
+						// Show loop code with vars replaced by values
+						echo str_replace($vars, $values, ($fetch_results_loop['value']));
+						// Say that this page has been listed
+						$seen_pages[$module_name][$page['page_id']] = true;
+						$pages_listed[$page['page_id']] = true;
+					}
+				}
+			}
+		}
+	}
+
+	// Say no items found if we should
+	if(count($pages_listed) == 0) {
+		echo $search_no_results;
+	}
+} else {
+	echo $search_no_results;
+}
+
+// Show search results_footer
+echo $search_results_footer;
+// Show search footer
+echo $search_footer;
+
+?>

Property changes on: tags/2.7.0/wb/search/search.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/search/search_convert.php
===================================================================
--- tags/2.7.0/wb/search/search_convert.php	(nonexistent)
+++ tags/2.7.0/wb/search/search_convert.php	(revision 838)
@@ -0,0 +1,1469 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+Character Conversion file
+for search-/highlighting-related character-translations
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+//umlauts to '(upper|lower)' for preg_match()
+//this is UTF-8-encoded
+$string_ul_umlauts = array(
+	"\xc2\xb5" => "(?:\xc2\xb5|\xce\x9c)",
+	"\xc3\xa0" => "(?:\xc3\xa0|\xc3\x80)",
+	"\xc3\xa1" => "(?:\xc3\xa1|\xc3\x81)",
+	"\xc3\xa2" => "(?:\xc3\xa2|\xc3\x82)",
+	"\xc3\xa3" => "(?:\xc3\xa3|\xc3\x83)",
+	"\xc3\xa4" => "(?:\xc3\xa4|\xc3\x84)",
+	"\xc3\xa5" => "(?:\xc3\xa5|\xc3\x85|\xe2\x84\xab)",
+	"\xc3\xa6" => "(?:\xc3\xa6|\xc3\x86)",
+	"\xc3\xa7" => "(?:\xc3\xa7|\xc3\x87)",
+	"\xc3\xa8" => "(?:\xc3\xa8|\xc3\x88)",
+	"\xc3\xa9" => "(?:\xc3\xa9|\xc3\x89)",
+	"\xc3\xaa" => "(?:\xc3\xaa|\xc3\x8a)",
+	"\xc3\xab" => "(?:\xc3\xab|\xc3\x8b)",
+	"\xc3\xac" => "(?:\xc3\xac|\xc3\x8c)",
+	"\xc3\xad" => "(?:\xc3\xad|\xc3\x8d)",
+	"\xc3\xae" => "(?:\xc3\xae|\xc3\x8e)",
+	"\xc3\xaf" => "(?:\xc3\xaf|\xc3\x8f)",
+	"\xc3\xb0" => "(?:\xc3\xb0|\xc3\x90)",
+	"\xc3\xb1" => "(?:\xc3\xb1|\xc3\x91)",
+	"\xc3\xb2" => "(?:\xc3\xb2|\xc3\x92)",
+	"\xc3\xb3" => "(?:\xc3\xb3|\xc3\x93)",
+	"\xc3\xb4" => "(?:\xc3\xb4|\xc3\x94)",
+	"\xc3\xb5" => "(?:\xc3\xb5|\xc3\x95)",
+	"\xc3\xb6" => "(?:\xc3\xb6|\xc3\x96)",
+	"\xc3\xb8" => "(?:\xc3\xb8|\xc3\x98)",
+	"\xc3\xb9" => "(?:\xc3\xb9|\xc3\x99)",
+	"\xc3\xba" => "(?:\xc3\xba|\xc3\x9a)",
+	"\xc3\xbb" => "(?:\xc3\xbb|\xc3\x9b)",
+	"\xc3\xbc" => "(?:\xc3\xbc|\xc3\x9c)",
+	"\xc3\xbd" => "(?:\xc3\xbd|\xc3\x9d)",
+	"\xc3\xbe" => "(?:\xc3\xbe|\xc3\x9e)",
+	"\xc3\xbf" => "(?:\xc3\xbf|\xc5\xb8)",
+	"\xc4\x81" => "(?:\xc4\x81|\xc4\x80)",
+	"\xc4\x83" => "(?:\xc4\x83|\xc4\x82)",
+	"\xc4\x85" => "(?:\xc4\x85|\xc4\x84)",
+	"\xc4\x87" => "(?:\xc4\x87|\xc4\x86)",
+	"\xc4\x89" => "(?:\xc4\x89|\xc4\x88)",
+	"\xc4\x8b" => "(?:\xc4\x8b|\xc4\x8a)",
+	"\xc4\x8d" => "(?:\xc4\x8d|\xc4\x8c)",
+	"\xc4\x8f" => "(?:\xc4\x8f|\xc4\x8e)",
+	"\xc4\x91" => "(?:\xc4\x91|\xc4\x90)",
+	"\xc4\x93" => "(?:\xc4\x93|\xc4\x92)",
+	"\xc4\x95" => "(?:\xc4\x95|\xc4\x94)",
+	"\xc4\x97" => "(?:\xc4\x97|\xc4\x96)",
+	"\xc4\x99" => "(?:\xc4\x99|\xc4\x98)",
+	"\xc4\x9b" => "(?:\xc4\x9b|\xc4\x9a)",
+	"\xc4\x9d" => "(?:\xc4\x9d|\xc4\x9c)",
+	"\xc4\x9f" => "(?:\xc4\x9f|\xc4\x9e)",
+	"\xc4\xa1" => "(?:\xc4\xa1|\xc4\xa0)",
+	"\xc4\xa3" => "(?:\xc4\xa3|\xc4\xa2)",
+	"\xc4\xa5" => "(?:\xc4\xa5|\xc4\xa4)",
+	"\xc4\xa7" => "(?:\xc4\xa7|\xc4\xa6)",
+	"\xc4\xa9" => "(?:\xc4\xa9|\xc4\xa8)",
+	"\xc4\xab" => "(?:\xc4\xab|\xc4\xaa)",
+	"\xc4\xad" => "(?:\xc4\xad|\xc4\xac)",
+	"\xc4\xaf" => "(?:\xc4\xaf|\xc4\xae)",
+	"\xc4\xb1" => "(?:\xc4\xb1|I)",
+	"\xc4\xb3" => "(?:\xc4\xb3|\xc4\xb2)",
+	"\xc4\xb5" => "(?:\xc4\xb5|\xc4\xb4)",
+	"\xc4\xb7" => "(?:\xc4\xb7|\xc4\xb6)",
+	"\xc4\xba" => "(?:\xc4\xba|\xc4\xb9)",
+	"\xc4\xbc" => "(?:\xc4\xbc|\xc4\xbb)",
+	"\xc4\xbe" => "(?:\xc4\xbe|\xc4\xbd)",
+	"\xc5\x80" => "(?:\xc5\x80|\xc4\xbf)",
+	"\xc5\x82" => "(?:\xc5\x82|\xc5\x81)",
+	"\xc5\x84" => "(?:\xc5\x84|\xc5\x83)",
+	"\xc5\x86" => "(?:\xc5\x86|\xc5\x85)",
+	"\xc5\x88" => "(?:\xc5\x88|\xc5\x87)",
+	"\xc5\x8b" => "(?:\xc5\x8b|\xc5\x8a)",
+	"\xc5\x8d" => "(?:\xc5\x8d|\xc5\x8c)",
+	"\xc5\x8f" => "(?:\xc5\x8f|\xc5\x8e)",
+	"\xc5\x91" => "(?:\xc5\x91|\xc5\x90)",
+	"\xc5\x93" => "(?:\xc5\x93|\xc5\x92)",
+	"\xc5\x95" => "(?:\xc5\x95|\xc5\x94)",
+	"\xc5\x97" => "(?:\xc5\x97|\xc5\x96)",
+	"\xc5\x99" => "(?:\xc5\x99|\xc5\x98)",
+	"\xc5\x9b" => "(?:\xc5\x9b|\xc5\x9a)",
+	"\xc5\x9d" => "(?:\xc5\x9d|\xc5\x9c)",
+	"\xc5\x9f" => "(?:\xc5\x9f|\xc5\x9e)",
+	"\xc5\xa1" => "(?:\xc5\xa1|\xc5\xa0)",
+	"\xc5\xa3" => "(?:\xc5\xa3|\xc5\xa2)",
+	"\xc5\xa5" => "(?:\xc5\xa5|\xc5\xa4)",
+	"\xc5\xa7" => "(?:\xc5\xa7|\xc5\xa6)",
+	"\xc5\xa9" => "(?:\xc5\xa9|\xc5\xa8)",
+	"\xc5\xab" => "(?:\xc5\xab|\xc5\xaa)",
+	"\xc5\xad" => "(?:\xc5\xad|\xc5\xac)",
+	"\xc5\xaf" => "(?:\xc5\xaf|\xc5\xae)",
+	"\xc5\xb1" => "(?:\xc5\xb1|\xc5\xb0)",
+	"\xc5\xb3" => "(?:\xc5\xb3|\xc5\xb2)",
+	"\xc5\xb5" => "(?:\xc5\xb5|\xc5\xb4)",
+	"\xc5\xb7" => "(?:\xc5\xb7|\xc5\xb6)",
+	"\xc5\xba" => "(?:\xc5\xba|\xc5\xb9)",
+	"\xc5\xbc" => "(?:\xc5\xbc|\xc5\xbb)",
+	"\xc5\xbe" => "(?:\xc5\xbe|\xc5\xbd)",
+	"\xc5\xbf" => "(?:\xc5\xbf|S)",
+	"\xc6\x83" => "(?:\xc6\x83|\xc6\x82)",
+	"\xc6\x85" => "(?:\xc6\x85|\xc6\x84)",
+	"\xc6\x88" => "(?:\xc6\x88|\xc6\x87)",
+	"\xc6\x8c" => "(?:\xc6\x8c|\xc6\x8b)",
+	"\xc6\x92" => "(?:\xc6\x92|\xc6\x91)",
+	"\xc6\x95" => "(?:\xc6\x95|\xc7\xb6)",
+	"\xc6\x99" => "(?:\xc6\x99|\xc6\x98)",
+	"\xc6\xa1" => "(?:\xc6\xa1|\xc6\xa0)",
+	"\xc6\xa3" => "(?:\xc6\xa3|\xc6\xa2)",
+	"\xc6\xa5" => "(?:\xc6\xa5|\xc6\xa4)",
+	"\xc6\xa8" => "(?:\xc6\xa8|\xc6\xa7)",
+	"\xc6\xad" => "(?:\xc6\xad|\xc6\xac)",
+	"\xc6\xb0" => "(?:\xc6\xb0|\xc6\xaf)",
+	"\xc6\xb4" => "(?:\xc6\xb4|\xc6\xb3)",
+	"\xc6\xb6" => "(?:\xc6\xb6|\xc6\xb5)",
+	"\xc6\xb9" => "(?:\xc6\xb9|\xc6\xb8)",
+	"\xc6\xbd" => "(?:\xc6\xbd|\xc6\xbc)",
+	"\xc6\xbf" => "(?:\xc6\xbf|\xc7\xb7)",
+	"\xc7\x86" => "(?:\xc7\x86|\xc7\x84|\xc7\x85)",
+	"\xc7\x89" => "(?:\xc7\x89|\xc7\x87|\xc7\x88)",
+	"\xc7\x8c" => "(?:\xc7\x8c|\xc7\x8a|\xc7\x8b)",
+	"\xc7\x8e" => "(?:\xc7\x8e|\xc7\x8d)",
+	"\xc7\x90" => "(?:\xc7\x90|\xc7\x8f)",
+	"\xc7\x92" => "(?:\xc7\x92|\xc7\x91)",
+	"\xc7\x94" => "(?:\xc7\x94|\xc7\x93)",
+	"\xc7\x96" => "(?:\xc7\x96|\xc7\x95)",
+	"\xc7\x98" => "(?:\xc7\x98|\xc7\x97)",
+	"\xc7\x9a" => "(?:\xc7\x9a|\xc7\x99)",
+	"\xc7\x9c" => "(?:\xc7\x9c|\xc7\x9b)",
+	"\xc7\x9d" => "(?:\xc7\x9d|\xc6\x8e)",
+	"\xc7\x9f" => "(?:\xc7\x9f|\xc7\x9e)",
+	"\xc7\xa1" => "(?:\xc7\xa1|\xc7\xa0)",
+	"\xc7\xa3" => "(?:\xc7\xa3|\xc7\xa2)",
+	"\xc7\xa5" => "(?:\xc7\xa5|\xc7\xa4)",
+	"\xc7\xa7" => "(?:\xc7\xa7|\xc7\xa6)",
+	"\xc7\xa9" => "(?:\xc7\xa9|\xc7\xa8)",
+	"\xc7\xab" => "(?:\xc7\xab|\xc7\xaa)",
+	"\xc7\xad" => "(?:\xc7\xad|\xc7\xac)",
+	"\xc7\xaf" => "(?:\xc7\xaf|\xc7\xae)",
+	"\xc7\xb2" => "(?:\xc7\xb2|\xc7\xb1|\xc7\xb3)",
+	"\xc7\xb3" => "(?:\xc7\xb3|\xc7\xb1|\xc7\xb2)",
+	"\xc7\xb5" => "(?:\xc7\xb5|\xc7\xb4)",
+	"\xc7\xb9" => "(?:\xc7\xb9|\xc7\xb8)",
+	"\xc7\xbb" => "(?:\xc7\xbb|\xc7\xba)",
+	"\xc7\xbd" => "(?:\xc7\xbd|\xc7\xbc)",
+	"\xc7\xbf" => "(?:\xc7\xbf|\xc7\xbe)",
+	"\xc8\x81" => "(?:\xc8\x81|\xc8\x80)",
+	"\xc8\x83" => "(?:\xc8\x83|\xc8\x82)",
+	"\xc8\x85" => "(?:\xc8\x85|\xc8\x84)",
+	"\xc8\x87" => "(?:\xc8\x87|\xc8\x86)",
+	"\xc8\x89" => "(?:\xc8\x89|\xc8\x88)",
+	"\xc8\x8b" => "(?:\xc8\x8b|\xc8\x8a)",
+	"\xc8\x8d" => "(?:\xc8\x8d|\xc8\x8c)",
+	"\xc8\x8f" => "(?:\xc8\x8f|\xc8\x8e)",
+	"\xc8\x91" => "(?:\xc8\x91|\xc8\x90)",
+	"\xc8\x93" => "(?:\xc8\x93|\xc8\x92)",
+	"\xc8\x95" => "(?:\xc8\x95|\xc8\x94)",
+	"\xc8\x97" => "(?:\xc8\x97|\xc8\x96)",
+	"\xc8\x99" => "(?:\xc8\x99|\xc8\x98)",
+	"\xc8\x9b" => "(?:\xc8\x9b|\xc8\x9a)",
+	"\xc8\x9d" => "(?:\xc8\x9d|\xc8\x9c)",
+	"\xc8\x9f" => "(?:\xc8\x9f|\xc8\x9e)",
+	"\xc8\xa3" => "(?:\xc8\xa3|\xc8\xa2)",
+	"\xc8\xa5" => "(?:\xc8\xa5|\xc8\xa4)",
+	"\xc8\xa7" => "(?:\xc8\xa7|\xc8\xa6)",
+	"\xc8\xa9" => "(?:\xc8\xa9|\xc8\xa8)",
+	"\xc8\xab" => "(?:\xc8\xab|\xc8\xaa)",
+	"\xc8\xad" => "(?:\xc8\xad|\xc8\xac)",
+	"\xc8\xaf" => "(?:\xc8\xaf|\xc8\xae)",
+	"\xc8\xb1" => "(?:\xc8\xb1|\xc8\xb0)",
+	"\xc8\xb3" => "(?:\xc8\xb3|\xc8\xb2)",
+	"\xc9\x93" => "(?:\xc9\x93|\xc6\x81)",
+	"\xc9\x94" => "(?:\xc9\x94|\xc6\x86)",
+	"\xc9\x96" => "(?:\xc9\x96|\xc6\x89)",
+	"\xc9\x97" => "(?:\xc9\x97|\xc6\x8a)",
+	"\xc9\x99" => "(?:\xc9\x99|\xc6\x8f)",
+	"\xc9\x9b" => "(?:\xc9\x9b|\xc6\x90)",
+	"\xc9\xa0" => "(?:\xc9\xa0|\xc6\x93)",
+	"\xc9\xa3" => "(?:\xc9\xa3|\xc6\x94)",
+	"\xc9\xa8" => "(?:\xc9\xa8|\xc6\x97)",
+	"\xc9\xa9" => "(?:\xc9\xa9|\xc6\x96)",
+	"\xc9\xaf" => "(?:\xc9\xaf|\xc6\x9c)",
+	"\xc9\xb2" => "(?:\xc9\xb2|\xc6\x9d)",
+	"\xc9\xb5" => "(?:\xc9\xb5|\xc6\x9f)",
+	"\xca\x80" => "(?:\xca\x80|\xc6\xa6)",
+	"\xca\x83" => "(?:\xca\x83|\xc6\xa9)",
+	"\xca\x88" => "(?:\xca\x88|\xc6\xae)",
+	"\xca\x8a" => "(?:\xca\x8a|\xc6\xb1)",
+	"\xca\x8b" => "(?:\xca\x8b|\xc6\xb2)",
+	"\xca\x92" => "(?:\xca\x92|\xc6\xb7)",
+	"\xcd\x85" => "(?:\xcd\x85|\xce\x99)",
+	"\xce\xac" => "(?:\xce\xac|\xce\x86)",
+	"\xce\xad" => "(?:\xce\xad|\xce\x88)",
+	"\xce\xae" => "(?:\xce\xae|\xce\x89)",
+	"\xce\xaf" => "(?:\xce\xaf|\xce\x8a)",
+	"\xce\xb1" => "(?:\xce\xb1|\xce\x91)",
+	"\xce\xb2" => "(?:\xce\xb2|\xce\x92)",
+	"\xce\xb3" => "(?:\xce\xb3|\xce\x93)",
+	"\xce\xb4" => "(?:\xce\xb4|\xce\x94)",
+	"\xce\xb5" => "(?:\xce\xb5|\xce\x95)",
+	"\xce\xb6" => "(?:\xce\xb6|\xce\x96)",
+	"\xce\xb7" => "(?:\xce\xb7|\xce\x97)",
+	"\xce\xb8" => "(?:\xce\xb8|\xce\x98|\xcf\xb4)",
+	"\xce\xb9" => "(?:\xce\xb9|\xce\x99)",
+	"\xce\xba" => "(?:\xce\xba|\xce\x9a)",
+	"\xce\xbb" => "(?:\xce\xbb|\xce\x9b)",
+	"\xce\xbc" => "(?:\xce\xbc|\xce\x9c)",
+	"\xce\xbd" => "(?:\xce\xbd|\xce\x9d)",
+	"\xce\xbe" => "(?:\xce\xbe|\xce\x9e)",
+	"\xce\xbf" => "(?:\xce\xbf|\xce\x9f)",
+	"\xcf\x80" => "(?:\xcf\x80|\xce\xa0)",
+	"\xcf\x81" => "(?:\xcf\x81|\xce\xa1)",
+	"\xcf\x82" => "(?:\xcf\x82|\xce\xa3)",
+	"\xcf\x83" => "(?:\xcf\x83|\xce\xa3)",
+	"\xcf\x84" => "(?:\xcf\x84|\xce\xa4)",
+	"\xcf\x85" => "(?:\xcf\x85|\xce\xa5)",
+	"\xcf\x86" => "(?:\xcf\x86|\xce\xa6)",
+	"\xcf\x87" => "(?:\xcf\x87|\xce\xa7)",
+	"\xcf\x88" => "(?:\xcf\x88|\xce\xa8)",
+	"\xcf\x89" => "(?:\xcf\x89|\xce\xa9|\xe2\x84\xa6)",
+	"\xcf\x8a" => "(?:\xcf\x8a|\xce\xaa)",
+	"\xcf\x8b" => "(?:\xcf\x8b|\xce\xab)",
+	"\xcf\x8c" => "(?:\xcf\x8c|\xce\x8c)",
+	"\xcf\x8d" => "(?:\xcf\x8d|\xce\x8e)",
+	"\xcf\x8e" => "(?:\xcf\x8e|\xce\x8f)",
+	"\xcf\x90" => "(?:\xcf\x90|\xce\x92)",
+	"\xcf\x91" => "(?:\xcf\x91|\xce\x98)",
+	"\xcf\x95" => "(?:\xcf\x95|\xce\xa6)",
+	"\xcf\x96" => "(?:\xcf\x96|\xce\xa0)",
+	"\xcf\x9b" => "(?:\xcf\x9b|\xcf\x9a)",
+	"\xcf\x9d" => "(?:\xcf\x9d|\xcf\x9c)",
+	"\xcf\x9f" => "(?:\xcf\x9f|\xcf\x9e)",
+	"\xcf\xa1" => "(?:\xcf\xa1|\xcf\xa0)",
+	"\xcf\xa3" => "(?:\xcf\xa3|\xcf\xa2)",
+	"\xcf\xa5" => "(?:\xcf\xa5|\xcf\xa4)",
+	"\xcf\xa7" => "(?:\xcf\xa7|\xcf\xa6)",
+	"\xcf\xa9" => "(?:\xcf\xa9|\xcf\xa8)",
+	"\xcf\xab" => "(?:\xcf\xab|\xcf\xaa)",
+	"\xcf\xad" => "(?:\xcf\xad|\xcf\xac)",
+	"\xcf\xaf" => "(?:\xcf\xaf|\xcf\xae)",
+	"\xcf\xb0" => "(?:\xcf\xb0|\xce\x9a)",
+	"\xcf\xb1" => "(?:\xcf\xb1|\xce\xa1)",
+	"\xcf\xb2" => "(?:\xcf\xb2|\xce\xa3)",
+	"\xcf\xb5" => "(?:\xcf\xb5|\xce\x95)",
+	"\xd0\xb0" => "(?:\xd0\xb0|\xd0\x90)",
+	"\xd0\xb1" => "(?:\xd0\xb1|\xd0\x91)",
+	"\xd0\xb2" => "(?:\xd0\xb2|\xd0\x92)",
+	"\xd0\xb3" => "(?:\xd0\xb3|\xd0\x93)",
+	"\xd0\xb4" => "(?:\xd0\xb4|\xd0\x94)",
+	"\xd0\xb5" => "(?:\xd0\xb5|\xd0\x95)",
+	"\xd0\xb6" => "(?:\xd0\xb6|\xd0\x96)",
+	"\xd0\xb7" => "(?:\xd0\xb7|\xd0\x97)",
+	"\xd0\xb8" => "(?:\xd0\xb8|\xd0\x98)",
+	"\xd0\xb9" => "(?:\xd0\xb9|\xd0\x99)",
+	"\xd0\xba" => "(?:\xd0\xba|\xd0\x9a)",
+	"\xd0\xbb" => "(?:\xd0\xbb|\xd0\x9b)",
+	"\xd0\xbc" => "(?:\xd0\xbc|\xd0\x9c)",
+	"\xd0\xbd" => "(?:\xd0\xbd|\xd0\x9d)",
+	"\xd0\xbe" => "(?:\xd0\xbe|\xd0\x9e)",
+	"\xd0\xbf" => "(?:\xd0\xbf|\xd0\x9f)",
+	"\xd1\x80" => "(?:\xd1\x80|\xd0\xa0)",
+	"\xd1\x81" => "(?:\xd1\x81|\xd0\xa1)",
+	"\xd1\x82" => "(?:\xd1\x82|\xd0\xa2)",
+	"\xd1\x83" => "(?:\xd1\x83|\xd0\xa3)",
+	"\xd1\x84" => "(?:\xd1\x84|\xd0\xa4)",
+	"\xd1\x85" => "(?:\xd1\x85|\xd0\xa5)",
+	"\xd1\x86" => "(?:\xd1\x86|\xd0\xa6)",
+	"\xd1\x87" => "(?:\xd1\x87|\xd0\xa7)",
+	"\xd1\x88" => "(?:\xd1\x88|\xd0\xa8)",
+	"\xd1\x89" => "(?:\xd1\x89|\xd0\xa9)",
+	"\xd1\x8a" => "(?:\xd1\x8a|\xd0\xaa)",
+	"\xd1\x8b" => "(?:\xd1\x8b|\xd0\xab)",
+	"\xd1\x8c" => "(?:\xd1\x8c|\xd0\xac)",
+	"\xd1\x8d" => "(?:\xd1\x8d|\xd0\xad)",
+	"\xd1\x8e" => "(?:\xd1\x8e|\xd0\xae)",
+	"\xd1\x8f" => "(?:\xd1\x8f|\xd0\xaf)",
+	"\xd1\x90" => "(?:\xd1\x90|\xd0\x80)",
+	"\xd1\x91" => "(?:\xd1\x91|\xd0\x81)",
+	"\xd1\x92" => "(?:\xd1\x92|\xd0\x82)",
+	"\xd1\x93" => "(?:\xd1\x93|\xd0\x83)",
+	"\xd1\x94" => "(?:\xd1\x94|\xd0\x84)",
+	"\xd1\x95" => "(?:\xd1\x95|\xd0\x85)",
+	"\xd1\x96" => "(?:\xd1\x96|\xd0\x86)",
+	"\xd1\x97" => "(?:\xd1\x97|\xd0\x87)",
+	"\xd1\x98" => "(?:\xd1\x98|\xd0\x88)",
+	"\xd1\x99" => "(?:\xd1\x99|\xd0\x89)",
+	"\xd1\x9a" => "(?:\xd1\x9a|\xd0\x8a)",
+	"\xd1\x9b" => "(?:\xd1\x9b|\xd0\x8b)",
+	"\xd1\x9c" => "(?:\xd1\x9c|\xd0\x8c)",
+	"\xd1\x9d" => "(?:\xd1\x9d|\xd0\x8d)",
+	"\xd1\x9e" => "(?:\xd1\x9e|\xd0\x8e)",
+	"\xd1\x9f" => "(?:\xd1\x9f|\xd0\x8f)",
+	"\xd1\xa1" => "(?:\xd1\xa1|\xd1\xa0)",
+	"\xd1\xa3" => "(?:\xd1\xa3|\xd1\xa2)",
+	"\xd1\xa5" => "(?:\xd1\xa5|\xd1\xa4)",
+	"\xd1\xa7" => "(?:\xd1\xa7|\xd1\xa6)",
+	"\xd1\xa9" => "(?:\xd1\xa9|\xd1\xa8)",
+	"\xd1\xab" => "(?:\xd1\xab|\xd1\xaa)",
+	"\xd1\xad" => "(?:\xd1\xad|\xd1\xac)",
+	"\xd1\xaf" => "(?:\xd1\xaf|\xd1\xae)",
+	"\xd1\xb1" => "(?:\xd1\xb1|\xd1\xb0)",
+	"\xd1\xb3" => "(?:\xd1\xb3|\xd1\xb2)",
+	"\xd1\xb5" => "(?:\xd1\xb5|\xd1\xb4)",
+	"\xd1\xb7" => "(?:\xd1\xb7|\xd1\xb6)",
+	"\xd1\xb9" => "(?:\xd1\xb9|\xd1\xb8)",
+	"\xd1\xbb" => "(?:\xd1\xbb|\xd1\xba)",
+	"\xd1\xbd" => "(?:\xd1\xbd|\xd1\xbc)",
+	"\xd1\xbf" => "(?:\xd1\xbf|\xd1\xbe)",
+	"\xd2\x81" => "(?:\xd2\x81|\xd2\x80)",
+	"\xd2\x8d" => "(?:\xd2\x8d|\xd2\x8c)",
+	"\xd2\x8f" => "(?:\xd2\x8f|\xd2\x8e)",
+	"\xd2\x91" => "(?:\xd2\x91|\xd2\x90)",
+	"\xd2\x93" => "(?:\xd2\x93|\xd2\x92)",
+	"\xd2\x95" => "(?:\xd2\x95|\xd2\x94)",
+	"\xd2\x97" => "(?:\xd2\x97|\xd2\x96)",
+	"\xd2\x99" => "(?:\xd2\x99|\xd2\x98)",
+	"\xd2\x9b" => "(?:\xd2\x9b|\xd2\x9a)",
+	"\xd2\x9d" => "(?:\xd2\x9d|\xd2\x9c)",
+	"\xd2\x9f" => "(?:\xd2\x9f|\xd2\x9e)",
+	"\xd2\xa1" => "(?:\xd2\xa1|\xd2\xa0)",
+	"\xd2\xa3" => "(?:\xd2\xa3|\xd2\xa2)",
+	"\xd2\xa5" => "(?:\xd2\xa5|\xd2\xa4)",
+	"\xd2\xa7" => "(?:\xd2\xa7|\xd2\xa6)",
+	"\xd2\xa9" => "(?:\xd2\xa9|\xd2\xa8)",
+	"\xd2\xab" => "(?:\xd2\xab|\xd2\xaa)",
+	"\xd2\xad" => "(?:\xd2\xad|\xd2\xac)",
+	"\xd2\xaf" => "(?:\xd2\xaf|\xd2\xae)",
+	"\xd2\xb1" => "(?:\xd2\xb1|\xd2\xb0)",
+	"\xd2\xb3" => "(?:\xd2\xb3|\xd2\xb2)",
+	"\xd2\xb5" => "(?:\xd2\xb5|\xd2\xb4)",
+	"\xd2\xb7" => "(?:\xd2\xb7|\xd2\xb6)",
+	"\xd2\xb9" => "(?:\xd2\xb9|\xd2\xb8)",
+	"\xd2\xbb" => "(?:\xd2\xbb|\xd2\xba)",
+	"\xd2\xbd" => "(?:\xd2\xbd|\xd2\xbc)",
+	"\xd2\xbf" => "(?:\xd2\xbf|\xd2\xbe)",
+	"\xd3\x82" => "(?:\xd3\x82|\xd3\x81)",
+	"\xd3\x84" => "(?:\xd3\x84|\xd3\x83)",
+	"\xd3\x88" => "(?:\xd3\x88|\xd3\x87)",
+	"\xd3\x8c" => "(?:\xd3\x8c|\xd3\x8b)",
+	"\xd3\x91" => "(?:\xd3\x91|\xd3\x90)",
+	"\xd3\x93" => "(?:\xd3\x93|\xd3\x92)",
+	"\xd3\x95" => "(?:\xd3\x95|\xd3\x94)",
+	"\xd3\x97" => "(?:\xd3\x97|\xd3\x96)",
+	"\xd3\x99" => "(?:\xd3\x99|\xd3\x98)",
+	"\xd3\x9b" => "(?:\xd3\x9b|\xd3\x9a)",
+	"\xd3\x9d" => "(?:\xd3\x9d|\xd3\x9c)",
+	"\xd3\x9f" => "(?:\xd3\x9f|\xd3\x9e)",
+	"\xd3\xa1" => "(?:\xd3\xa1|\xd3\xa0)",
+	"\xd3\xa3" => "(?:\xd3\xa3|\xd3\xa2)",
+	"\xd3\xa5" => "(?:\xd3\xa5|\xd3\xa4)",
+	"\xd3\xa7" => "(?:\xd3\xa7|\xd3\xa6)",
+	"\xd3\xa9" => "(?:\xd3\xa9|\xd3\xa8)",
+	"\xd3\xab" => "(?:\xd3\xab|\xd3\xaa)",
+	"\xd3\xad" => "(?:\xd3\xad|\xd3\xac)",
+	"\xd3\xaf" => "(?:\xd3\xaf|\xd3\xae)",
+	"\xd3\xb1" => "(?:\xd3\xb1|\xd3\xb0)",
+	"\xd3\xb3" => "(?:\xd3\xb3|\xd3\xb2)",
+	"\xd3\xb5" => "(?:\xd3\xb5|\xd3\xb4)",
+	"\xd3\xb9" => "(?:\xd3\xb9|\xd3\xb8)",
+	"\xd5\xa1" => "(?:\xd5\xa1|\xd4\xb1)",
+	"\xd5\xa2" => "(?:\xd5\xa2|\xd4\xb2)",
+	"\xd5\xa3" => "(?:\xd5\xa3|\xd4\xb3)",
+	"\xd5\xa4" => "(?:\xd5\xa4|\xd4\xb4)",
+	"\xd5\xa5" => "(?:\xd5\xa5|\xd4\xb5)",
+	"\xd5\xa6" => "(?:\xd5\xa6|\xd4\xb6)",
+	"\xd5\xa7" => "(?:\xd5\xa7|\xd4\xb7)",
+	"\xd5\xa8" => "(?:\xd5\xa8|\xd4\xb8)",
+	"\xd5\xa9" => "(?:\xd5\xa9|\xd4\xb9)",
+	"\xd5\xaa" => "(?:\xd5\xaa|\xd4\xba)",
+	"\xd5\xab" => "(?:\xd5\xab|\xd4\xbb)",
+	"\xd5\xac" => "(?:\xd5\xac|\xd4\xbc)",
+	"\xd5\xad" => "(?:\xd5\xad|\xd4\xbd)",
+	"\xd5\xae" => "(?:\xd5\xae|\xd4\xbe)",
+	"\xd5\xaf" => "(?:\xd5\xaf|\xd4\xbf)",
+	"\xd5\xb0" => "(?:\xd5\xb0|\xd5\x80)",
+	"\xd5\xb1" => "(?:\xd5\xb1|\xd5\x81)",
+	"\xd5\xb2" => "(?:\xd5\xb2|\xd5\x82)",
+	"\xd5\xb3" => "(?:\xd5\xb3|\xd5\x83)",
+	"\xd5\xb4" => "(?:\xd5\xb4|\xd5\x84)",
+	"\xd5\xb5" => "(?:\xd5\xb5|\xd5\x85)",
+	"\xd5\xb6" => "(?:\xd5\xb6|\xd5\x86)",
+	"\xd5\xb7" => "(?:\xd5\xb7|\xd5\x87)",
+	"\xd5\xb8" => "(?:\xd5\xb8|\xd5\x88)",
+	"\xd5\xb9" => "(?:\xd5\xb9|\xd5\x89)",
+	"\xd5\xba" => "(?:\xd5\xba|\xd5\x8a)",
+	"\xd5\xbb" => "(?:\xd5\xbb|\xd5\x8b)",
+	"\xd5\xbc" => "(?:\xd5\xbc|\xd5\x8c)",
+	"\xd5\xbd" => "(?:\xd5\xbd|\xd5\x8d)",
+	"\xd5\xbe" => "(?:\xd5\xbe|\xd5\x8e)",
+	"\xd5\xbf" => "(?:\xd5\xbf|\xd5\x8f)",
+	"\xd6\x80" => "(?:\xd6\x80|\xd5\x90)",
+	"\xd6\x81" => "(?:\xd6\x81|\xd5\x91)",
+	"\xd6\x82" => "(?:\xd6\x82|\xd5\x92)",
+	"\xd6\x83" => "(?:\xd6\x83|\xd5\x93)",
+	"\xd6\x84" => "(?:\xd6\x84|\xd5\x94)",
+	"\xd6\x85" => "(?:\xd6\x85|\xd5\x95)",
+	"\xd6\x86" => "(?:\xd6\x86|\xd5\x96)",
+	"\xe1\xb8\x81" => "(?:\xe1\xb8\x81|\xe1\xb8\x80)",
+	"\xe1\xb8\x83" => "(?:\xe1\xb8\x83|\xe1\xb8\x82)",
+	"\xe1\xb8\x85" => "(?:\xe1\xb8\x85|\xe1\xb8\x84)",
+	"\xe1\xb8\x87" => "(?:\xe1\xb8\x87|\xe1\xb8\x86)",
+	"\xe1\xb8\x89" => "(?:\xe1\xb8\x89|\xe1\xb8\x88)",
+	"\xe1\xb8\x8b" => "(?:\xe1\xb8\x8b|\xe1\xb8\x8a)",
+	"\xe1\xb8\x8d" => "(?:\xe1\xb8\x8d|\xe1\xb8\x8c)",
+	"\xe1\xb8\x8f" => "(?:\xe1\xb8\x8f|\xe1\xb8\x8e)",
+	"\xe1\xb8\x91" => "(?:\xe1\xb8\x91|\xe1\xb8\x90)",
+	"\xe1\xb8\x93" => "(?:\xe1\xb8\x93|\xe1\xb8\x92)",
+	"\xe1\xb8\x95" => "(?:\xe1\xb8\x95|\xe1\xb8\x94)",
+	"\xe1\xb8\x97" => "(?:\xe1\xb8\x97|\xe1\xb8\x96)",
+	"\xe1\xb8\x99" => "(?:\xe1\xb8\x99|\xe1\xb8\x98)",
+	"\xe1\xb8\x9b" => "(?:\xe1\xb8\x9b|\xe1\xb8\x9a)",
+	"\xe1\xb8\x9d" => "(?:\xe1\xb8\x9d|\xe1\xb8\x9c)",
+	"\xe1\xb8\x9f" => "(?:\xe1\xb8\x9f|\xe1\xb8\x9e)",
+	"\xe1\xb8\xa1" => "(?:\xe1\xb8\xa1|\xe1\xb8\xa0)",
+	"\xe1\xb8\xa3" => "(?:\xe1\xb8\xa3|\xe1\xb8\xa2)",
+	"\xe1\xb8\xa5" => "(?:\xe1\xb8\xa5|\xe1\xb8\xa4)",
+	"\xe1\xb8\xa7" => "(?:\xe1\xb8\xa7|\xe1\xb8\xa6)",
+	"\xe1\xb8\xa9" => "(?:\xe1\xb8\xa9|\xe1\xb8\xa8)",
+	"\xe1\xb8\xab" => "(?:\xe1\xb8\xab|\xe1\xb8\xaa)",
+	"\xe1\xb8\xad" => "(?:\xe1\xb8\xad|\xe1\xb8\xac)",
+	"\xe1\xb8\xaf" => "(?:\xe1\xb8\xaf|\xe1\xb8\xae)",
+	"\xe1\xb8\xb1" => "(?:\xe1\xb8\xb1|\xe1\xb8\xb0)",
+	"\xe1\xb8\xb3" => "(?:\xe1\xb8\xb3|\xe1\xb8\xb2)",
+	"\xe1\xb8\xb5" => "(?:\xe1\xb8\xb5|\xe1\xb8\xb4)",
+	"\xe1\xb8\xb7" => "(?:\xe1\xb8\xb7|\xe1\xb8\xb6)",
+	"\xe1\xb8\xb9" => "(?:\xe1\xb8\xb9|\xe1\xb8\xb8)",
+	"\xe1\xb8\xbb" => "(?:\xe1\xb8\xbb|\xe1\xb8\xba)",
+	"\xe1\xb8\xbd" => "(?:\xe1\xb8\xbd|\xe1\xb8\xbc)",
+	"\xe1\xb8\xbf" => "(?:\xe1\xb8\xbf|\xe1\xb8\xbe)",
+	"\xe1\xb9\x81" => "(?:\xe1\xb9\x81|\xe1\xb9\x80)",
+	"\xe1\xb9\x83" => "(?:\xe1\xb9\x83|\xe1\xb9\x82)",
+	"\xe1\xb9\x85" => "(?:\xe1\xb9\x85|\xe1\xb9\x84)",
+	"\xe1\xb9\x87" => "(?:\xe1\xb9\x87|\xe1\xb9\x86)",
+	"\xe1\xb9\x89" => "(?:\xe1\xb9\x89|\xe1\xb9\x88)",
+	"\xe1\xb9\x8b" => "(?:\xe1\xb9\x8b|\xe1\xb9\x8a)",
+	"\xe1\xb9\x8d" => "(?:\xe1\xb9\x8d|\xe1\xb9\x8c)",
+	"\xe1\xb9\x8f" => "(?:\xe1\xb9\x8f|\xe1\xb9\x8e)",
+	"\xe1\xb9\x91" => "(?:\xe1\xb9\x91|\xe1\xb9\x90)",
+	"\xe1\xb9\x93" => "(?:\xe1\xb9\x93|\xe1\xb9\x92)",
+	"\xe1\xb9\x95" => "(?:\xe1\xb9\x95|\xe1\xb9\x94)",
+	"\xe1\xb9\x97" => "(?:\xe1\xb9\x97|\xe1\xb9\x96)",
+	"\xe1\xb9\x99" => "(?:\xe1\xb9\x99|\xe1\xb9\x98)",
+	"\xe1\xb9\x9b" => "(?:\xe1\xb9\x9b|\xe1\xb9\x9a)",
+	"\xe1\xb9\x9d" => "(?:\xe1\xb9\x9d|\xe1\xb9\x9c)",
+	"\xe1\xb9\x9f" => "(?:\xe1\xb9\x9f|\xe1\xb9\x9e)",
+	"\xe1\xb9\xa1" => "(?:\xe1\xb9\xa1|\xe1\xb9\xa0)",
+	"\xe1\xb9\xa3" => "(?:\xe1\xb9\xa3|\xe1\xb9\xa2)",
+	"\xe1\xb9\xa5" => "(?:\xe1\xb9\xa5|\xe1\xb9\xa4)",
+	"\xe1\xb9\xa7" => "(?:\xe1\xb9\xa7|\xe1\xb9\xa6)",
+	"\xe1\xb9\xa9" => "(?:\xe1\xb9\xa9|\xe1\xb9\xa8)",
+	"\xe1\xb9\xab" => "(?:\xe1\xb9\xab|\xe1\xb9\xaa)",
+	"\xe1\xb9\xad" => "(?:\xe1\xb9\xad|\xe1\xb9\xac)",
+	"\xe1\xb9\xaf" => "(?:\xe1\xb9\xaf|\xe1\xb9\xae)",
+	"\xe1\xb9\xb1" => "(?:\xe1\xb9\xb1|\xe1\xb9\xb0)",
+	"\xe1\xb9\xb3" => "(?:\xe1\xb9\xb3|\xe1\xb9\xb2)",
+	"\xe1\xb9\xb5" => "(?:\xe1\xb9\xb5|\xe1\xb9\xb4)",
+	"\xe1\xb9\xb7" => "(?:\xe1\xb9\xb7|\xe1\xb9\xb6)",
+	"\xe1\xb9\xb9" => "(?:\xe1\xb9\xb9|\xe1\xb9\xb8)",
+	"\xe1\xb9\xbb" => "(?:\xe1\xb9\xbb|\xe1\xb9\xba)",
+	"\xe1\xb9\xbd" => "(?:\xe1\xb9\xbd|\xe1\xb9\xbc)",
+	"\xe1\xb9\xbf" => "(?:\xe1\xb9\xbf|\xe1\xb9\xbe)",
+	"\xe1\xba\x81" => "(?:\xe1\xba\x81|\xe1\xba\x80)",
+	"\xe1\xba\x83" => "(?:\xe1\xba\x83|\xe1\xba\x82)",
+	"\xe1\xba\x85" => "(?:\xe1\xba\x85|\xe1\xba\x84)",
+	"\xe1\xba\x87" => "(?:\xe1\xba\x87|\xe1\xba\x86)",
+	"\xe1\xba\x89" => "(?:\xe1\xba\x89|\xe1\xba\x88)",
+	"\xe1\xba\x8b" => "(?:\xe1\xba\x8b|\xe1\xba\x8a)",
+	"\xe1\xba\x8d" => "(?:\xe1\xba\x8d|\xe1\xba\x8c)",
+	"\xe1\xba\x8f" => "(?:\xe1\xba\x8f|\xe1\xba\x8e)",
+	"\xe1\xba\x91" => "(?:\xe1\xba\x91|\xe1\xba\x90)",
+	"\xe1\xba\x93" => "(?:\xe1\xba\x93|\xe1\xba\x92)",
+	"\xe1\xba\x95" => "(?:\xe1\xba\x95|\xe1\xba\x94)",
+	"\xe1\xba\x9b" => "(?:\xe1\xba\x9b|\xe1\xb9\xa0)",
+	"\xe1\xba\xa1" => "(?:\xe1\xba\xa1|\xe1\xba\xa0)",
+	"\xe1\xba\xa3" => "(?:\xe1\xba\xa3|\xe1\xba\xa2)",
+	"\xe1\xba\xa5" => "(?:\xe1\xba\xa5|\xe1\xba\xa4)",
+	"\xe1\xba\xa7" => "(?:\xe1\xba\xa7|\xe1\xba\xa6)",
+	"\xe1\xba\xa9" => "(?:\xe1\xba\xa9|\xe1\xba\xa8)",
+	"\xe1\xba\xab" => "(?:\xe1\xba\xab|\xe1\xba\xaa)",
+	"\xe1\xba\xad" => "(?:\xe1\xba\xad|\xe1\xba\xac)",
+	"\xe1\xba\xaf" => "(?:\xe1\xba\xaf|\xe1\xba\xae)",
+	"\xe1\xba\xb1" => "(?:\xe1\xba\xb1|\xe1\xba\xb0)",
+	"\xe1\xba\xb3" => "(?:\xe1\xba\xb3|\xe1\xba\xb2)",
+	"\xe1\xba\xb5" => "(?:\xe1\xba\xb5|\xe1\xba\xb4)",
+	"\xe1\xba\xb7" => "(?:\xe1\xba\xb7|\xe1\xba\xb6)",
+	"\xe1\xba\xb9" => "(?:\xe1\xba\xb9|\xe1\xba\xb8)",
+	"\xe1\xba\xbb" => "(?:\xe1\xba\xbb|\xe1\xba\xba)",
+	"\xe1\xba\xbd" => "(?:\xe1\xba\xbd|\xe1\xba\xbc)",
+	"\xe1\xba\xbf" => "(?:\xe1\xba\xbf|\xe1\xba\xbe)",
+	"\xe1\xbb\x81" => "(?:\xe1\xbb\x81|\xe1\xbb\x80)",
+	"\xe1\xbb\x83" => "(?:\xe1\xbb\x83|\xe1\xbb\x82)",
+	"\xe1\xbb\x85" => "(?:\xe1\xbb\x85|\xe1\xbb\x84)",
+	"\xe1\xbb\x87" => "(?:\xe1\xbb\x87|\xe1\xbb\x86)",
+	"\xe1\xbb\x89" => "(?:\xe1\xbb\x89|\xe1\xbb\x88)",
+	"\xe1\xbb\x8b" => "(?:\xe1\xbb\x8b|\xe1\xbb\x8a)",
+	"\xe1\xbb\x8d" => "(?:\xe1\xbb\x8d|\xe1\xbb\x8c)",
+	"\xe1\xbb\x8f" => "(?:\xe1\xbb\x8f|\xe1\xbb\x8e)",
+	"\xe1\xbb\x91" => "(?:\xe1\xbb\x91|\xe1\xbb\x90)",
+	"\xe1\xbb\x93" => "(?:\xe1\xbb\x93|\xe1\xbb\x92)",
+	"\xe1\xbb\x95" => "(?:\xe1\xbb\x95|\xe1\xbb\x94)",
+	"\xe1\xbb\x97" => "(?:\xe1\xbb\x97|\xe1\xbb\x96)",
+	"\xe1\xbb\x99" => "(?:\xe1\xbb\x99|\xe1\xbb\x98)",
+	"\xe1\xbb\x9b" => "(?:\xe1\xbb\x9b|\xe1\xbb\x9a)",
+	"\xe1\xbb\x9d" => "(?:\xe1\xbb\x9d|\xe1\xbb\x9c)",
+	"\xe1\xbb\x9f" => "(?:\xe1\xbb\x9f|\xe1\xbb\x9e)",
+	"\xe1\xbb\xa1" => "(?:\xe1\xbb\xa1|\xe1\xbb\xa0)",
+	"\xe1\xbb\xa3" => "(?:\xe1\xbb\xa3|\xe1\xbb\xa2)",
+	"\xe1\xbb\xa5" => "(?:\xe1\xbb\xa5|\xe1\xbb\xa4)",
+	"\xe1\xbb\xa7" => "(?:\xe1\xbb\xa7|\xe1\xbb\xa6)",
+	"\xe1\xbb\xa9" => "(?:\xe1\xbb\xa9|\xe1\xbb\xa8)",
+	"\xe1\xbb\xab" => "(?:\xe1\xbb\xab|\xe1\xbb\xaa)",
+	"\xe1\xbb\xad" => "(?:\xe1\xbb\xad|\xe1\xbb\xac)",
+	"\xe1\xbb\xaf" => "(?:\xe1\xbb\xaf|\xe1\xbb\xae)",
+	"\xe1\xbb\xb1" => "(?:\xe1\xbb\xb1|\xe1\xbb\xb0)",
+	"\xe1\xbb\xb3" => "(?:\xe1\xbb\xb3|\xe1\xbb\xb2)",
+	"\xe1\xbb\xb5" => "(?:\xe1\xbb\xb5|\xe1\xbb\xb4)",
+	"\xe1\xbb\xb7" => "(?:\xe1\xbb\xb7|\xe1\xbb\xb6)",
+	"\xe1\xbb\xb9" => "(?:\xe1\xbb\xb9|\xe1\xbb\xb8)",
+	"\xe1\xbc\x80" => "(?:\xe1\xbc\x80|\xe1\xbc\x88)",
+	"\xe1\xbc\x81" => "(?:\xe1\xbc\x81|\xe1\xbc\x89)",
+	"\xe1\xbc\x82" => "(?:\xe1\xbc\x82|\xe1\xbc\x8a)",
+	"\xe1\xbc\x83" => "(?:\xe1\xbc\x83|\xe1\xbc\x8b)",
+	"\xe1\xbc\x84" => "(?:\xe1\xbc\x84|\xe1\xbc\x8c)",
+	"\xe1\xbc\x85" => "(?:\xe1\xbc\x85|\xe1\xbc\x8d)",
+	"\xe1\xbc\x86" => "(?:\xe1\xbc\x86|\xe1\xbc\x8e)",
+	"\xe1\xbc\x87" => "(?:\xe1\xbc\x87|\xe1\xbc\x8f)",
+	"\xe1\xbc\x90" => "(?:\xe1\xbc\x90|\xe1\xbc\x98)",
+	"\xe1\xbc\x91" => "(?:\xe1\xbc\x91|\xe1\xbc\x99)",
+	"\xe1\xbc\x92" => "(?:\xe1\xbc\x92|\xe1\xbc\x9a)",
+	"\xe1\xbc\x93" => "(?:\xe1\xbc\x93|\xe1\xbc\x9b)",
+	"\xe1\xbc\x94" => "(?:\xe1\xbc\x94|\xe1\xbc\x9c)",
+	"\xe1\xbc\x95" => "(?:\xe1\xbc\x95|\xe1\xbc\x9d)",
+	"\xe1\xbc\xa0" => "(?:\xe1\xbc\xa0|\xe1\xbc\xa8)",
+	"\xe1\xbc\xa1" => "(?:\xe1\xbc\xa1|\xe1\xbc\xa9)",
+	"\xe1\xbc\xa2" => "(?:\xe1\xbc\xa2|\xe1\xbc\xaa)",
+	"\xe1\xbc\xa3" => "(?:\xe1\xbc\xa3|\xe1\xbc\xab)",
+	"\xe1\xbc\xa4" => "(?:\xe1\xbc\xa4|\xe1\xbc\xac)",
+	"\xe1\xbc\xa5" => "(?:\xe1\xbc\xa5|\xe1\xbc\xad)",
+	"\xe1\xbc\xa6" => "(?:\xe1\xbc\xa6|\xe1\xbc\xae)",
+	"\xe1\xbc\xa7" => "(?:\xe1\xbc\xa7|\xe1\xbc\xaf)",
+	"\xe1\xbc\xb0" => "(?:\xe1\xbc\xb0|\xe1\xbc\xb8)",
+	"\xe1\xbc\xb1" => "(?:\xe1\xbc\xb1|\xe1\xbc\xb9)",
+	"\xe1\xbc\xb2" => "(?:\xe1\xbc\xb2|\xe1\xbc\xba)",
+	"\xe1\xbc\xb3" => "(?:\xe1\xbc\xb3|\xe1\xbc\xbb)",
+	"\xe1\xbc\xb4" => "(?:\xe1\xbc\xb4|\xe1\xbc\xbc)",
+	"\xe1\xbc\xb5" => "(?:\xe1\xbc\xb5|\xe1\xbc\xbd)",
+	"\xe1\xbc\xb6" => "(?:\xe1\xbc\xb6|\xe1\xbc\xbe)",
+	"\xe1\xbc\xb7" => "(?:\xe1\xbc\xb7|\xe1\xbc\xbf)",
+	"\xe1\xbd\x80" => "(?:\xe1\xbd\x80|\xe1\xbd\x88)",
+	"\xe1\xbd\x81" => "(?:\xe1\xbd\x81|\xe1\xbd\x89)",
+	"\xe1\xbd\x82" => "(?:\xe1\xbd\x82|\xe1\xbd\x8a)",
+	"\xe1\xbd\x83" => "(?:\xe1\xbd\x83|\xe1\xbd\x8b)",
+	"\xe1\xbd\x84" => "(?:\xe1\xbd\x84|\xe1\xbd\x8c)",
+	"\xe1\xbd\x85" => "(?:\xe1\xbd\x85|\xe1\xbd\x8d)",
+	"\xe1\xbd\x91" => "(?:\xe1\xbd\x91|\xe1\xbd\x99)",
+	"\xe1\xbd\x93" => "(?:\xe1\xbd\x93|\xe1\xbd\x9b)",
+	"\xe1\xbd\x95" => "(?:\xe1\xbd\x95|\xe1\xbd\x9d)",
+	"\xe1\xbd\x97" => "(?:\xe1\xbd\x97|\xe1\xbd\x9f)",
+	"\xe1\xbd\xa0" => "(?:\xe1\xbd\xa0|\xe1\xbd\xa8)",
+	"\xe1\xbd\xa1" => "(?:\xe1\xbd\xa1|\xe1\xbd\xa9)",
+	"\xe1\xbd\xa2" => "(?:\xe1\xbd\xa2|\xe1\xbd\xaa)",
+	"\xe1\xbd\xa3" => "(?:\xe1\xbd\xa3|\xe1\xbd\xab)",
+	"\xe1\xbd\xa4" => "(?:\xe1\xbd\xa4|\xe1\xbd\xac)",
+	"\xe1\xbd\xa5" => "(?:\xe1\xbd\xa5|\xe1\xbd\xad)",
+	"\xe1\xbd\xa6" => "(?:\xe1\xbd\xa6|\xe1\xbd\xae)",
+	"\xe1\xbd\xa7" => "(?:\xe1\xbd\xa7|\xe1\xbd\xaf)",
+	"\xe1\xbd\xb0" => "(?:\xe1\xbd\xb0|\xe1\xbe\xba)",
+	"\xe1\xbd\xb1" => "(?:\xe1\xbd\xb1|\xe1\xbe\xbb)",
+	"\xe1\xbd\xb2" => "(?:\xe1\xbd\xb2|\xe1\xbf\x88)",
+	"\xe1\xbd\xb3" => "(?:\xe1\xbd\xb3|\xe1\xbf\x89)",
+	"\xe1\xbd\xb4" => "(?:\xe1\xbd\xb4|\xe1\xbf\x8a)",
+	"\xe1\xbd\xb5" => "(?:\xe1\xbd\xb5|\xe1\xbf\x8b)",
+	"\xe1\xbd\xb6" => "(?:\xe1\xbd\xb6|\xe1\xbf\x9a)",
+	"\xe1\xbd\xb7" => "(?:\xe1\xbd\xb7|\xe1\xbf\x9b)",
+	"\xe1\xbd\xb8" => "(?:\xe1\xbd\xb8|\xe1\xbf\xb8)",
+	"\xe1\xbd\xb9" => "(?:\xe1\xbd\xb9|\xe1\xbf\xb9)",
+	"\xe1\xbd\xba" => "(?:\xe1\xbd\xba|\xe1\xbf\xaa)",
+	"\xe1\xbd\xbb" => "(?:\xe1\xbd\xbb|\xe1\xbf\xab)",
+	"\xe1\xbd\xbc" => "(?:\xe1\xbd\xbc|\xe1\xbf\xba)",
+	"\xe1\xbd\xbd" => "(?:\xe1\xbd\xbd|\xe1\xbf\xbb)",
+	"\xe1\xbe\x80" => "(?:\xe1\xbe\x80|\xe1\xbe\x88)",
+	"\xe1\xbe\x81" => "(?:\xe1\xbe\x81|\xe1\xbe\x89)",
+	"\xe1\xbe\x82" => "(?:\xe1\xbe\x82|\xe1\xbe\x8a)",
+	"\xe1\xbe\x83" => "(?:\xe1\xbe\x83|\xe1\xbe\x8b)",
+	"\xe1\xbe\x84" => "(?:\xe1\xbe\x84|\xe1\xbe\x8c)",
+	"\xe1\xbe\x85" => "(?:\xe1\xbe\x85|\xe1\xbe\x8d)",
+	"\xe1\xbe\x86" => "(?:\xe1\xbe\x86|\xe1\xbe\x8e)",
+	"\xe1\xbe\x87" => "(?:\xe1\xbe\x87|\xe1\xbe\x8f)",
+	"\xe1\xbe\x90" => "(?:\xe1\xbe\x90|\xe1\xbe\x98)",
+	"\xe1\xbe\x91" => "(?:\xe1\xbe\x91|\xe1\xbe\x99)",
+	"\xe1\xbe\x92" => "(?:\xe1\xbe\x92|\xe1\xbe\x9a)",
+	"\xe1\xbe\x93" => "(?:\xe1\xbe\x93|\xe1\xbe\x9b)",
+	"\xe1\xbe\x94" => "(?:\xe1\xbe\x94|\xe1\xbe\x9c)",
+	"\xe1\xbe\x95" => "(?:\xe1\xbe\x95|\xe1\xbe\x9d)",
+	"\xe1\xbe\x96" => "(?:\xe1\xbe\x96|\xe1\xbe\x9e)",
+	"\xe1\xbe\x97" => "(?:\xe1\xbe\x97|\xe1\xbe\x9f)",
+	"\xe1\xbe\xa0" => "(?:\xe1\xbe\xa0|\xe1\xbe\xa8)",
+	"\xe1\xbe\xa1" => "(?:\xe1\xbe\xa1|\xe1\xbe\xa9)",
+	"\xe1\xbe\xa2" => "(?:\xe1\xbe\xa2|\xe1\xbe\xaa)",
+	"\xe1\xbe\xa3" => "(?:\xe1\xbe\xa3|\xe1\xbe\xab)",
+	"\xe1\xbe\xa4" => "(?:\xe1\xbe\xa4|\xe1\xbe\xac)",
+	"\xe1\xbe\xa5" => "(?:\xe1\xbe\xa5|\xe1\xbe\xad)",
+	"\xe1\xbe\xa6" => "(?:\xe1\xbe\xa6|\xe1\xbe\xae)",
+	"\xe1\xbe\xa7" => "(?:\xe1\xbe\xa7|\xe1\xbe\xaf)",
+	"\xe1\xbe\xb0" => "(?:\xe1\xbe\xb0|\xe1\xbe\xb8)",
+	"\xe1\xbe\xb1" => "(?:\xe1\xbe\xb1|\xe1\xbe\xb9)",
+	"\xe1\xbe\xb3" => "(?:\xe1\xbe\xb3|\xe1\xbe\xbc)",
+	"\xe1\xbe\xbe" => "(?:\xe1\xbe\xbe|\xce\x99)",
+	"\xe1\xbf\x83" => "(?:\xe1\xbf\x83|\xe1\xbf\x8c)",
+	"\xe1\xbf\x90" => "(?:\xe1\xbf\x90|\xe1\xbf\x98)",
+	"\xe1\xbf\x91" => "(?:\xe1\xbf\x91|\xe1\xbf\x99)",
+	"\xe1\xbf\xa0" => "(?:\xe1\xbf\xa0|\xe1\xbf\xa8)",
+	"\xe1\xbf\xa1" => "(?:\xe1\xbf\xa1|\xe1\xbf\xa9)",
+	"\xe1\xbf\xa5" => "(?:\xe1\xbf\xa5|\xe1\xbf\xac)",
+	"\xe1\xbf\xb3" => "(?:\xe1\xbf\xb3|\xe1\xbf\xbc)",
+	"\xe2\x85\xb0" => "(?:\xe2\x85\xb0|\xe2\x85\xa0)",
+	"\xe2\x85\xb1" => "(?:\xe2\x85\xb1|\xe2\x85\xa1)",
+	"\xe2\x85\xb2" => "(?:\xe2\x85\xb2|\xe2\x85\xa2)",
+	"\xe2\x85\xb3" => "(?:\xe2\x85\xb3|\xe2\x85\xa3)",
+	"\xe2\x85\xb4" => "(?:\xe2\x85\xb4|\xe2\x85\xa4)",
+	"\xe2\x85\xb5" => "(?:\xe2\x85\xb5|\xe2\x85\xa5)",
+	"\xe2\x85\xb6" => "(?:\xe2\x85\xb6|\xe2\x85\xa6)",
+	"\xe2\x85\xb7" => "(?:\xe2\x85\xb7|\xe2\x85\xa7)",
+	"\xe2\x85\xb8" => "(?:\xe2\x85\xb8|\xe2\x85\xa8)",
+	"\xe2\x85\xb9" => "(?:\xe2\x85\xb9|\xe2\x85\xa9)",
+	"\xe2\x85\xba" => "(?:\xe2\x85\xba|\xe2\x85\xaa)",
+	"\xe2\x85\xbb" => "(?:\xe2\x85\xbb|\xe2\x85\xab)",
+	"\xe2\x85\xbc" => "(?:\xe2\x85\xbc|\xe2\x85\xac)",
+	"\xe2\x85\xbd" => "(?:\xe2\x85\xbd|\xe2\x85\xad)",
+	"\xe2\x85\xbe" => "(?:\xe2\x85\xbe|\xe2\x85\xae)",
+	"\xe2\x85\xbf" => "(?:\xe2\x85\xbf|\xe2\x85\xaf)",
+	"\xe2\x93\x90" => "(?:\xe2\x93\x90|\xe2\x92\xb6)",
+	"\xe2\x93\x91" => "(?:\xe2\x93\x91|\xe2\x92\xb7)",
+	"\xe2\x93\x92" => "(?:\xe2\x93\x92|\xe2\x92\xb8)",
+	"\xe2\x93\x93" => "(?:\xe2\x93\x93|\xe2\x92\xb9)",
+	"\xe2\x93\x94" => "(?:\xe2\x93\x94|\xe2\x92\xba)",
+	"\xe2\x93\x95" => "(?:\xe2\x93\x95|\xe2\x92\xbb)",
+	"\xe2\x93\x96" => "(?:\xe2\x93\x96|\xe2\x92\xbc)",
+	"\xe2\x93\x97" => "(?:\xe2\x93\x97|\xe2\x92\xbd)",
+	"\xe2\x93\x98" => "(?:\xe2\x93\x98|\xe2\x92\xbe)",
+	"\xe2\x93\x99" => "(?:\xe2\x93\x99|\xe2\x92\xbf)",
+	"\xe2\x93\x9a" => "(?:\xe2\x93\x9a|\xe2\x93\x80)",
+	"\xe2\x93\x9b" => "(?:\xe2\x93\x9b|\xe2\x93\x81)",
+	"\xe2\x93\x9c" => "(?:\xe2\x93\x9c|\xe2\x93\x82)",
+	"\xe2\x93\x9d" => "(?:\xe2\x93\x9d|\xe2\x93\x83)",
+	"\xe2\x93\x9e" => "(?:\xe2\x93\x9e|\xe2\x93\x84)",
+	"\xe2\x93\x9f" => "(?:\xe2\x93\x9f|\xe2\x93\x85)",
+	"\xe2\x93\xa0" => "(?:\xe2\x93\xa0|\xe2\x93\x86)",
+	"\xe2\x93\xa1" => "(?:\xe2\x93\xa1|\xe2\x93\x87)",
+	"\xe2\x93\xa2" => "(?:\xe2\x93\xa2|\xe2\x93\x88)",
+	"\xe2\x93\xa3" => "(?:\xe2\x93\xa3|\xe2\x93\x89)",
+	"\xe2\x93\xa4" => "(?:\xe2\x93\xa4|\xe2\x93\x8a)",
+	"\xe2\x93\xa5" => "(?:\xe2\x93\xa5|\xe2\x93\x8b)",
+	"\xe2\x93\xa6" => "(?:\xe2\x93\xa6|\xe2\x93\x8c)",
+	"\xe2\x93\xa7" => "(?:\xe2\x93\xa7|\xe2\x93\x8d)",
+	"\xe2\x93\xa8" => "(?:\xe2\x93\xa8|\xe2\x93\x8e)",
+	"\xe2\x93\xa9" => "(?:\xe2\x93\xa9|\xe2\x93\x8f)",
+	"\xef\xbd\x81" => "(?:\xef\xbd\x81|\xef\xbc\xa1)",
+	"\xef\xbd\x82" => "(?:\xef\xbd\x82|\xef\xbc\xa2)",
+	"\xef\xbd\x83" => "(?:\xef\xbd\x83|\xef\xbc\xa3)",
+	"\xef\xbd\x84" => "(?:\xef\xbd\x84|\xef\xbc\xa4)",
+	"\xef\xbd\x85" => "(?:\xef\xbd\x85|\xef\xbc\xa5)",
+	"\xef\xbd\x86" => "(?:\xef\xbd\x86|\xef\xbc\xa6)",
+	"\xef\xbd\x87" => "(?:\xef\xbd\x87|\xef\xbc\xa7)",
+	"\xef\xbd\x88" => "(?:\xef\xbd\x88|\xef\xbc\xa8)",
+	"\xef\xbd\x89" => "(?:\xef\xbd\x89|\xef\xbc\xa9)",
+	"\xef\xbd\x8a" => "(?:\xef\xbd\x8a|\xef\xbc\xaa)",
+	"\xef\xbd\x8b" => "(?:\xef\xbd\x8b|\xef\xbc\xab)",
+	"\xef\xbd\x8c" => "(?:\xef\xbd\x8c|\xef\xbc\xac)",
+	"\xef\xbd\x8d" => "(?:\xef\xbd\x8d|\xef\xbc\xad)",
+	"\xef\xbd\x8e" => "(?:\xef\xbd\x8e|\xef\xbc\xae)",
+	"\xef\xbd\x8f" => "(?:\xef\xbd\x8f|\xef\xbc\xaf)",
+	"\xef\xbd\x90" => "(?:\xef\xbd\x90|\xef\xbc\xb0)",
+	"\xef\xbd\x91" => "(?:\xef\xbd\x91|\xef\xbc\xb1)",
+	"\xef\xbd\x92" => "(?:\xef\xbd\x92|\xef\xbc\xb2)",
+	"\xef\xbd\x93" => "(?:\xef\xbd\x93|\xef\xbc\xb3)",
+	"\xef\xbd\x94" => "(?:\xef\xbd\x94|\xef\xbc\xb4)",
+	"\xef\xbd\x95" => "(?:\xef\xbd\x95|\xef\xbc\xb5)",
+	"\xef\xbd\x96" => "(?:\xef\xbd\x96|\xef\xbc\xb6)",
+	"\xef\xbd\x97" => "(?:\xef\xbd\x97|\xef\xbc\xb7)",
+	"\xef\xbd\x98" => "(?:\xef\xbd\x98|\xef\xbc\xb8)",
+	"\xef\xbd\x99" => "(?:\xef\xbd\x99|\xef\xbc\xb9)",
+	"\xef\xbd\x9a" => "(?:\xef\xbd\x9a|\xef\xbc\xba)",
+	"\xf0\x90\x90\xa8" => "(?:\xf0\x90\x90\xa8|\xf0\x90\x90\x80)",
+	"\xf0\x90\x90\xa9" => "(?:\xf0\x90\x90\xa9|\xf0\x90\x90\x81)",
+	"\xf0\x90\x90\xaa" => "(?:\xf0\x90\x90\xaa|\xf0\x90\x90\x82)",
+	"\xf0\x90\x90\xab" => "(?:\xf0\x90\x90\xab|\xf0\x90\x90\x83)",
+	"\xf0\x90\x90\xac" => "(?:\xf0\x90\x90\xac|\xf0\x90\x90\x84)",
+	"\xf0\x90\x90\xad" => "(?:\xf0\x90\x90\xad|\xf0\x90\x90\x85)",
+	"\xf0\x90\x90\xae" => "(?:\xf0\x90\x90\xae|\xf0\x90\x90\x86)",
+	"\xf0\x90\x90\xaf" => "(?:\xf0\x90\x90\xaf|\xf0\x90\x90\x87)",
+	"\xf0\x90\x90\xb0" => "(?:\xf0\x90\x90\xb0|\xf0\x90\x90\x88)",
+	"\xf0\x90\x90\xb1" => "(?:\xf0\x90\x90\xb1|\xf0\x90\x90\x89)",
+	"\xf0\x90\x90\xb2" => "(?:\xf0\x90\x90\xb2|\xf0\x90\x90\x8a)",
+	"\xf0\x90\x90\xb3" => "(?:\xf0\x90\x90\xb3|\xf0\x90\x90\x8b)",
+	"\xf0\x90\x90\xb4" => "(?:\xf0\x90\x90\xb4|\xf0\x90\x90\x8c)",
+	"\xf0\x90\x90\xb5" => "(?:\xf0\x90\x90\xb5|\xf0\x90\x90\x8d)",
+	"\xf0\x90\x90\xb6" => "(?:\xf0\x90\x90\xb6|\xf0\x90\x90\x8e)",
+	"\xf0\x90\x90\xb7" => "(?:\xf0\x90\x90\xb7|\xf0\x90\x90\x8f)",
+	"\xf0\x90\x90\xb8" => "(?:\xf0\x90\x90\xb8|\xf0\x90\x90\x90)",
+	"\xf0\x90\x90\xb9" => "(?:\xf0\x90\x90\xb9|\xf0\x90\x90\x91)",
+	"\xf0\x90\x90\xba" => "(?:\xf0\x90\x90\xba|\xf0\x90\x90\x92)",
+	"\xf0\x90\x90\xbb" => "(?:\xf0\x90\x90\xbb|\xf0\x90\x90\x93)",
+	"\xf0\x90\x90\xbc" => "(?:\xf0\x90\x90\xbc|\xf0\x90\x90\x94)",
+	"\xf0\x90\x90\xbd" => "(?:\xf0\x90\x90\xbd|\xf0\x90\x90\x95)",
+	"\xf0\x90\x90\xbe" => "(?:\xf0\x90\x90\xbe|\xf0\x90\x90\x96)",
+	"\xf0\x90\x90\xbf" => "(?:\xf0\x90\x90\xbf|\xf0\x90\x90\x97)",
+	"\xf0\x90\x91\x80" => "(?:\xf0\x90\x91\x80|\xf0\x90\x90\x98)",
+	"\xf0\x90\x91\x81" => "(?:\xf0\x90\x91\x81|\xf0\x90\x90\x99)",
+	"\xf0\x90\x91\x82" => "(?:\xf0\x90\x91\x82|\xf0\x90\x90\x9a)",
+	"\xf0\x90\x91\x83" => "(?:\xf0\x90\x91\x83|\xf0\x90\x90\x9b)",
+	"\xf0\x90\x91\x84" => "(?:\xf0\x90\x91\x84|\xf0\x90\x90\x9c)",
+	"\xf0\x90\x91\x85" => "(?:\xf0\x90\x91\x85|\xf0\x90\x90\x9d)",
+	"\xf0\x90\x91\x86" => "(?:\xf0\x90\x91\x86|\xf0\x90\x90\x9e)",
+	"\xf0\x90\x91\x87" => "(?:\xf0\x90\x91\x87|\xf0\x90\x90\x9f)",
+	"\xf0\x90\x91\x88" => "(?:\xf0\x90\x91\x88|\xf0\x90\x90\xa0)",
+	"\xf0\x90\x91\x89" => "(?:\xf0\x90\x91\x89|\xf0\x90\x90\xa1)",
+	"\xf0\x90\x91\x8a" => "(?:\xf0\x90\x91\x8a|\xf0\x90\x90\xa2)",
+	"\xf0\x90\x91\x8b" => "(?:\xf0\x90\x91\x8b|\xf0\x90\x90\xa3)",
+	"\xf0\x90\x91\x8c" => "(?:\xf0\x90\x91\x8c|\xf0\x90\x90\xa4)",
+	"\xf0\x90\x91\x8d" => "(?:\xf0\x90\x91\x8d|\xf0\x90\x90\xa5)",
+	"\xc3\x80" => "(?:\xc3\x80|\xc3\xa0)",
+	"\xc3\x81" => "(?:\xc3\x81|\xc3\xa1)",
+	"\xc3\x82" => "(?:\xc3\x82|\xc3\xa2)",
+	"\xc3\x83" => "(?:\xc3\x83|\xc3\xa3)",
+	"\xc3\x84" => "(?:\xc3\x84|\xc3\xa4)",
+	"\xc3\x85" => "(?:\xc3\x85|\xc3\xa5)",
+	"\xc3\x86" => "(?:\xc3\x86|\xc3\xa6)",
+	"\xc3\x87" => "(?:\xc3\x87|\xc3\xa7)",
+	"\xc3\x88" => "(?:\xc3\x88|\xc3\xa8)",
+	"\xc3\x89" => "(?:\xc3\x89|\xc3\xa9)",
+	"\xc3\x8a" => "(?:\xc3\x8a|\xc3\xaa)",
+	"\xc3\x8b" => "(?:\xc3\x8b|\xc3\xab)",
+	"\xc3\x8c" => "(?:\xc3\x8c|\xc3\xac)",
+	"\xc3\x8d" => "(?:\xc3\x8d|\xc3\xad)",
+	"\xc3\x8e" => "(?:\xc3\x8e|\xc3\xae)",
+	"\xc3\x8f" => "(?:\xc3\x8f|\xc3\xaf)",
+	"\xc3\x90" => "(?:\xc3\x90|\xc3\xb0)",
+	"\xc3\x91" => "(?:\xc3\x91|\xc3\xb1)",
+	"\xc3\x92" => "(?:\xc3\x92|\xc3\xb2)",
+	"\xc3\x93" => "(?:\xc3\x93|\xc3\xb3)",
+	"\xc3\x94" => "(?:\xc3\x94|\xc3\xb4)",
+	"\xc3\x95" => "(?:\xc3\x95|\xc3\xb5)",
+	"\xc3\x96" => "(?:\xc3\x96|\xc3\xb6)",
+	"\xc3\x98" => "(?:\xc3\x98|\xc3\xb8)",
+	"\xc3\x99" => "(?:\xc3\x99|\xc3\xb9)",
+	"\xc3\x9a" => "(?:\xc3\x9a|\xc3\xba)",
+	"\xc3\x9b" => "(?:\xc3\x9b|\xc3\xbb)",
+	"\xc3\x9c" => "(?:\xc3\x9c|\xc3\xbc)",
+	"\xc3\x9d" => "(?:\xc3\x9d|\xc3\xbd)",
+	"\xc3\x9e" => "(?:\xc3\x9e|\xc3\xbe)",
+	"\xc4\x80" => "(?:\xc4\x80|\xc4\x81)",
+	"\xc4\x82" => "(?:\xc4\x82|\xc4\x83)",
+	"\xc4\x84" => "(?:\xc4\x84|\xc4\x85)",
+	"\xc4\x86" => "(?:\xc4\x86|\xc4\x87)",
+	"\xc4\x88" => "(?:\xc4\x88|\xc4\x89)",
+	"\xc4\x8a" => "(?:\xc4\x8a|\xc4\x8b)",
+	"\xc4\x8c" => "(?:\xc4\x8c|\xc4\x8d)",
+	"\xc4\x8e" => "(?:\xc4\x8e|\xc4\x8f)",
+	"\xc4\x90" => "(?:\xc4\x90|\xc4\x91)",
+	"\xc4\x92" => "(?:\xc4\x92|\xc4\x93)",
+	"\xc4\x94" => "(?:\xc4\x94|\xc4\x95)",
+	"\xc4\x96" => "(?:\xc4\x96|\xc4\x97)",
+	"\xc4\x98" => "(?:\xc4\x98|\xc4\x99)",
+	"\xc4\x9a" => "(?:\xc4\x9a|\xc4\x9b)",
+	"\xc4\x9c" => "(?:\xc4\x9c|\xc4\x9d)",
+	"\xc4\x9e" => "(?:\xc4\x9e|\xc4\x9f)",
+	"\xc4\xa0" => "(?:\xc4\xa0|\xc4\xa1)",
+	"\xc4\xa2" => "(?:\xc4\xa2|\xc4\xa3)",
+	"\xc4\xa4" => "(?:\xc4\xa4|\xc4\xa5)",
+	"\xc4\xa6" => "(?:\xc4\xa6|\xc4\xa7)",
+	"\xc4\xa8" => "(?:\xc4\xa8|\xc4\xa9)",
+	"\xc4\xaa" => "(?:\xc4\xaa|\xc4\xab)",
+	"\xc4\xac" => "(?:\xc4\xac|\xc4\xad)",
+	"\xc4\xae" => "(?:\xc4\xae|\xc4\xaf)",
+	"\xc4\xb0" => "(?:\xc4\xb0|i)",
+	"\xc4\xb2" => "(?:\xc4\xb2|\xc4\xb3)",
+	"\xc4\xb4" => "(?:\xc4\xb4|\xc4\xb5)",
+	"\xc4\xb6" => "(?:\xc4\xb6|\xc4\xb7)",
+	"\xc4\xb9" => "(?:\xc4\xb9|\xc4\xba)",
+	"\xc4\xbb" => "(?:\xc4\xbb|\xc4\xbc)",
+	"\xc4\xbd" => "(?:\xc4\xbd|\xc4\xbe)",
+	"\xc4\xbf" => "(?:\xc4\xbf|\xc5\x80)",
+	"\xc5\x81" => "(?:\xc5\x81|\xc5\x82)",
+	"\xc5\x83" => "(?:\xc5\x83|\xc5\x84)",
+	"\xc5\x85" => "(?:\xc5\x85|\xc5\x86)",
+	"\xc5\x87" => "(?:\xc5\x87|\xc5\x88)",
+	"\xc5\x8a" => "(?:\xc5\x8a|\xc5\x8b)",
+	"\xc5\x8c" => "(?:\xc5\x8c|\xc5\x8d)",
+	"\xc5\x8e" => "(?:\xc5\x8e|\xc5\x8f)",
+	"\xc5\x90" => "(?:\xc5\x90|\xc5\x91)",
+	"\xc5\x92" => "(?:\xc5\x92|\xc5\x93)",
+	"\xc5\x94" => "(?:\xc5\x94|\xc5\x95)",
+	"\xc5\x96" => "(?:\xc5\x96|\xc5\x97)",
+	"\xc5\x98" => "(?:\xc5\x98|\xc5\x99)",
+	"\xc5\x9a" => "(?:\xc5\x9a|\xc5\x9b)",
+	"\xc5\x9c" => "(?:\xc5\x9c|\xc5\x9d)",
+	"\xc5\x9e" => "(?:\xc5\x9e|\xc5\x9f)",
+	"\xc5\xa0" => "(?:\xc5\xa0|\xc5\xa1)",
+	"\xc5\xa2" => "(?:\xc5\xa2|\xc5\xa3)",
+	"\xc5\xa4" => "(?:\xc5\xa4|\xc5\xa5)",
+	"\xc5\xa6" => "(?:\xc5\xa6|\xc5\xa7)",
+	"\xc5\xa8" => "(?:\xc5\xa8|\xc5\xa9)",
+	"\xc5\xaa" => "(?:\xc5\xaa|\xc5\xab)",
+	"\xc5\xac" => "(?:\xc5\xac|\xc5\xad)",
+	"\xc5\xae" => "(?:\xc5\xae|\xc5\xaf)",
+	"\xc5\xb0" => "(?:\xc5\xb0|\xc5\xb1)",
+	"\xc5\xb2" => "(?:\xc5\xb2|\xc5\xb3)",
+	"\xc5\xb4" => "(?:\xc5\xb4|\xc5\xb5)",
+	"\xc5\xb6" => "(?:\xc5\xb6|\xc5\xb7)",
+	"\xc5\xb8" => "(?:\xc5\xb8|\xc3\xbf)",
+	"\xc5\xb9" => "(?:\xc5\xb9|\xc5\xba)",
+	"\xc5\xbb" => "(?:\xc5\xbb|\xc5\xbc)",
+	"\xc5\xbd" => "(?:\xc5\xbd|\xc5\xbe)",
+	"\xc6\x81" => "(?:\xc6\x81|\xc9\x93)",
+	"\xc6\x82" => "(?:\xc6\x82|\xc6\x83)",
+	"\xc6\x84" => "(?:\xc6\x84|\xc6\x85)",
+	"\xc6\x86" => "(?:\xc6\x86|\xc9\x94)",
+	"\xc6\x87" => "(?:\xc6\x87|\xc6\x88)",
+	"\xc6\x89" => "(?:\xc6\x89|\xc9\x96)",
+	"\xc6\x8a" => "(?:\xc6\x8a|\xc9\x97)",
+	"\xc6\x8b" => "(?:\xc6\x8b|\xc6\x8c)",
+	"\xc6\x8e" => "(?:\xc6\x8e|\xc7\x9d)",
+	"\xc6\x8f" => "(?:\xc6\x8f|\xc9\x99)",
+	"\xc6\x90" => "(?:\xc6\x90|\xc9\x9b)",
+	"\xc6\x91" => "(?:\xc6\x91|\xc6\x92)",
+	"\xc6\x93" => "(?:\xc6\x93|\xc9\xa0)",
+	"\xc6\x94" => "(?:\xc6\x94|\xc9\xa3)",
+	"\xc6\x96" => "(?:\xc6\x96|\xc9\xa9)",
+	"\xc6\x97" => "(?:\xc6\x97|\xc9\xa8)",
+	"\xc6\x98" => "(?:\xc6\x98|\xc6\x99)",
+	"\xc6\x9c" => "(?:\xc6\x9c|\xc9\xaf)",
+	"\xc6\x9d" => "(?:\xc6\x9d|\xc9\xb2)",
+	"\xc6\x9f" => "(?:\xc6\x9f|\xc9\xb5)",
+	"\xc6\xa0" => "(?:\xc6\xa0|\xc6\xa1)",
+	"\xc6\xa2" => "(?:\xc6\xa2|\xc6\xa3)",
+	"\xc6\xa4" => "(?:\xc6\xa4|\xc6\xa5)",
+	"\xc6\xa6" => "(?:\xc6\xa6|\xca\x80)",
+	"\xc6\xa7" => "(?:\xc6\xa7|\xc6\xa8)",
+	"\xc6\xa9" => "(?:\xc6\xa9|\xca\x83)",
+	"\xc6\xac" => "(?:\xc6\xac|\xc6\xad)",
+	"\xc6\xae" => "(?:\xc6\xae|\xca\x88)",
+	"\xc6\xaf" => "(?:\xc6\xaf|\xc6\xb0)",
+	"\xc6\xb1" => "(?:\xc6\xb1|\xca\x8a)",
+	"\xc6\xb2" => "(?:\xc6\xb2|\xca\x8b)",
+	"\xc6\xb3" => "(?:\xc6\xb3|\xc6\xb4)",
+	"\xc6\xb5" => "(?:\xc6\xb5|\xc6\xb6)",
+	"\xc6\xb7" => "(?:\xc6\xb7|\xca\x92)",
+	"\xc6\xb8" => "(?:\xc6\xb8|\xc6\xb9)",
+	"\xc6\xbc" => "(?:\xc6\xbc|\xc6\xbd)",
+	"\xc7\x84" => "(?:\xc7\x84|\xc7\x86|\xc7\x85)",
+	"\xc7\x85" => "(?:\xc7\x85|\xc7\x84|\xc7\x86)",
+	"\xc7\x87" => "(?:\xc7\x87|\xc7\x89|\xc7\x88)",
+	"\xc7\x88" => "(?:\xc7\x88|\xc7\x87|\xc7\x89)",
+	"\xc7\x8a" => "(?:\xc7\x8a|\xc7\x8c|\xc7\x8b)",
+	"\xc7\x8b" => "(?:\xc7\x8b|\xc7\x8a|\xc7\x8c)",
+	"\xc7\x8d" => "(?:\xc7\x8d|\xc7\x8e)",
+	"\xc7\x8f" => "(?:\xc7\x8f|\xc7\x90)",
+	"\xc7\x91" => "(?:\xc7\x91|\xc7\x92)",
+	"\xc7\x93" => "(?:\xc7\x93|\xc7\x94)",
+	"\xc7\x95" => "(?:\xc7\x95|\xc7\x96)",
+	"\xc7\x97" => "(?:\xc7\x97|\xc7\x98)",
+	"\xc7\x99" => "(?:\xc7\x99|\xc7\x9a)",
+	"\xc7\x9b" => "(?:\xc7\x9b|\xc7\x9c)",
+	"\xc7\x9e" => "(?:\xc7\x9e|\xc7\x9f)",
+	"\xc7\xa0" => "(?:\xc7\xa0|\xc7\xa1)",
+	"\xc7\xa2" => "(?:\xc7\xa2|\xc7\xa3)",
+	"\xc7\xa4" => "(?:\xc7\xa4|\xc7\xa5)",
+	"\xc7\xa6" => "(?:\xc7\xa6|\xc7\xa7)",
+	"\xc7\xa8" => "(?:\xc7\xa8|\xc7\xa9)",
+	"\xc7\xaa" => "(?:\xc7\xaa|\xc7\xab)",
+	"\xc7\xac" => "(?:\xc7\xac|\xc7\xad)",
+	"\xc7\xae" => "(?:\xc7\xae|\xc7\xaf)",
+	"\xc7\xb1" => "(?:\xc7\xb1|\xc7\xb3|\xc7\xb2)",
+	"\xc7\xb4" => "(?:\xc7\xb4|\xc7\xb5)",
+	"\xc7\xb6" => "(?:\xc7\xb6|\xc6\x95)",
+	"\xc7\xb7" => "(?:\xc7\xb7|\xc6\xbf)",
+	"\xc7\xb8" => "(?:\xc7\xb8|\xc7\xb9)",
+	"\xc7\xba" => "(?:\xc7\xba|\xc7\xbb)",
+	"\xc7\xbc" => "(?:\xc7\xbc|\xc7\xbd)",
+	"\xc7\xbe" => "(?:\xc7\xbe|\xc7\xbf)",
+	"\xc8\x80" => "(?:\xc8\x80|\xc8\x81)",
+	"\xc8\x82" => "(?:\xc8\x82|\xc8\x83)",
+	"\xc8\x84" => "(?:\xc8\x84|\xc8\x85)",
+	"\xc8\x86" => "(?:\xc8\x86|\xc8\x87)",
+	"\xc8\x88" => "(?:\xc8\x88|\xc8\x89)",
+	"\xc8\x8a" => "(?:\xc8\x8a|\xc8\x8b)",
+	"\xc8\x8c" => "(?:\xc8\x8c|\xc8\x8d)",
+	"\xc8\x8e" => "(?:\xc8\x8e|\xc8\x8f)",
+	"\xc8\x90" => "(?:\xc8\x90|\xc8\x91)",
+	"\xc8\x92" => "(?:\xc8\x92|\xc8\x93)",
+	"\xc8\x94" => "(?:\xc8\x94|\xc8\x95)",
+	"\xc8\x96" => "(?:\xc8\x96|\xc8\x97)",
+	"\xc8\x98" => "(?:\xc8\x98|\xc8\x99)",
+	"\xc8\x9a" => "(?:\xc8\x9a|\xc8\x9b)",
+	"\xc8\x9c" => "(?:\xc8\x9c|\xc8\x9d)",
+	"\xc8\x9e" => "(?:\xc8\x9e|\xc8\x9f)",
+	"\xc8\xa2" => "(?:\xc8\xa2|\xc8\xa3)",
+	"\xc8\xa4" => "(?:\xc8\xa4|\xc8\xa5)",
+	"\xc8\xa6" => "(?:\xc8\xa6|\xc8\xa7)",
+	"\xc8\xa8" => "(?:\xc8\xa8|\xc8\xa9)",
+	"\xc8\xaa" => "(?:\xc8\xaa|\xc8\xab)",
+	"\xc8\xac" => "(?:\xc8\xac|\xc8\xad)",
+	"\xc8\xae" => "(?:\xc8\xae|\xc8\xaf)",
+	"\xc8\xb0" => "(?:\xc8\xb0|\xc8\xb1)",
+	"\xc8\xb2" => "(?:\xc8\xb2|\xc8\xb3)",
+	"\xce\x86" => "(?:\xce\x86|\xce\xac)",
+	"\xce\x88" => "(?:\xce\x88|\xce\xad)",
+	"\xce\x89" => "(?:\xce\x89|\xce\xae)",
+	"\xce\x8a" => "(?:\xce\x8a|\xce\xaf)",
+	"\xce\x8c" => "(?:\xce\x8c|\xcf\x8c)",
+	"\xce\x8e" => "(?:\xce\x8e|\xcf\x8d)",
+	"\xce\x8f" => "(?:\xce\x8f|\xcf\x8e)",
+	"\xce\x91" => "(?:\xce\x91|\xce\xb1)",
+	"\xce\x92" => "(?:\xce\x92|\xce\xb2|\xcf\x90)",
+	"\xce\x93" => "(?:\xce\x93|\xce\xb3)",
+	"\xce\x94" => "(?:\xce\x94|\xce\xb4)",
+	"\xce\x95" => "(?:\xce\x95|\xce\xb5|\xcf\xb5)",
+	"\xce\x96" => "(?:\xce\x96|\xce\xb6)",
+	"\xce\x97" => "(?:\xce\x97|\xce\xb7)",
+	"\xce\x98" => "(?:\xce\x98|\xce\xb8|\xcf\x91)",
+	"\xce\x99" => "(?:\xce\x99|\xce\xb9|\xcd\x85|\xe1\xbe\xbe)",
+	"\xce\x9a" => "(?:\xce\x9a|\xce\xba|\xcf\xb0)",
+	"\xce\x9b" => "(?:\xce\x9b|\xce\xbb)",
+	"\xce\x9c" => "(?:\xce\x9c|\xce\xbc|\xc2\xb5)",
+	"\xce\x9d" => "(?:\xce\x9d|\xce\xbd)",
+	"\xce\x9e" => "(?:\xce\x9e|\xce\xbe)",
+	"\xce\x9f" => "(?:\xce\x9f|\xce\xbf)",
+	"\xce\xa0" => "(?:\xce\xa0|\xcf\x80|\xcf\x96)",
+	"\xce\xa1" => "(?:\xce\xa1|\xcf\x81|\xcf\xb1)",
+	"\xce\xa3" => "(?:\xce\xa3|\xcf\x83|\xcf\x82|\xcf\xb2)",
+	"\xce\xa4" => "(?:\xce\xa4|\xcf\x84)",
+	"\xce\xa5" => "(?:\xce\xa5|\xcf\x85)",
+	"\xce\xa6" => "(?:\xce\xa6|\xcf\x86|\xcf\x95)",
+	"\xce\xa7" => "(?:\xce\xa7|\xcf\x87)",
+	"\xce\xa8" => "(?:\xce\xa8|\xcf\x88)",
+	"\xce\xa9" => "(?:\xce\xa9|\xcf\x89)",
+	"\xce\xaa" => "(?:\xce\xaa|\xcf\x8a)",
+	"\xce\xab" => "(?:\xce\xab|\xcf\x8b)",
+	"\xcf\x9a" => "(?:\xcf\x9a|\xcf\x9b)",
+	"\xcf\x9c" => "(?:\xcf\x9c|\xcf\x9d)",
+	"\xcf\x9e" => "(?:\xcf\x9e|\xcf\x9f)",
+	"\xcf\xa0" => "(?:\xcf\xa0|\xcf\xa1)",
+	"\xcf\xa2" => "(?:\xcf\xa2|\xcf\xa3)",
+	"\xcf\xa4" => "(?:\xcf\xa4|\xcf\xa5)",
+	"\xcf\xa6" => "(?:\xcf\xa6|\xcf\xa7)",
+	"\xcf\xa8" => "(?:\xcf\xa8|\xcf\xa9)",
+	"\xcf\xaa" => "(?:\xcf\xaa|\xcf\xab)",
+	"\xcf\xac" => "(?:\xcf\xac|\xcf\xad)",
+	"\xcf\xae" => "(?:\xcf\xae|\xcf\xaf)",
+	"\xcf\xb4" => "(?:\xcf\xb4|\xce\xb8)",
+	"\xd0\x80" => "(?:\xd0\x80|\xd1\x90)",
+	"\xd0\x81" => "(?:\xd0\x81|\xd1\x91)",
+	"\xd0\x82" => "(?:\xd0\x82|\xd1\x92)",
+	"\xd0\x83" => "(?:\xd0\x83|\xd1\x93)",
+	"\xd0\x84" => "(?:\xd0\x84|\xd1\x94)",
+	"\xd0\x85" => "(?:\xd0\x85|\xd1\x95)",
+	"\xd0\x86" => "(?:\xd0\x86|\xd1\x96)",
+	"\xd0\x87" => "(?:\xd0\x87|\xd1\x97)",
+	"\xd0\x88" => "(?:\xd0\x88|\xd1\x98)",
+	"\xd0\x89" => "(?:\xd0\x89|\xd1\x99)",
+	"\xd0\x8a" => "(?:\xd0\x8a|\xd1\x9a)",
+	"\xd0\x8b" => "(?:\xd0\x8b|\xd1\x9b)",
+	"\xd0\x8c" => "(?:\xd0\x8c|\xd1\x9c)",
+	"\xd0\x8d" => "(?:\xd0\x8d|\xd1\x9d)",
+	"\xd0\x8e" => "(?:\xd0\x8e|\xd1\x9e)",
+	"\xd0\x8f" => "(?:\xd0\x8f|\xd1\x9f)",
+	"\xd0\x90" => "(?:\xd0\x90|\xd0\xb0)",
+	"\xd0\x91" => "(?:\xd0\x91|\xd0\xb1)",
+	"\xd0\x92" => "(?:\xd0\x92|\xd0\xb2)",
+	"\xd0\x93" => "(?:\xd0\x93|\xd0\xb3)",
+	"\xd0\x94" => "(?:\xd0\x94|\xd0\xb4)",
+	"\xd0\x95" => "(?:\xd0\x95|\xd0\xb5)",
+	"\xd0\x96" => "(?:\xd0\x96|\xd0\xb6)",
+	"\xd0\x97" => "(?:\xd0\x97|\xd0\xb7)",
+	"\xd0\x98" => "(?:\xd0\x98|\xd0\xb8)",
+	"\xd0\x99" => "(?:\xd0\x99|\xd0\xb9)",
+	"\xd0\x9a" => "(?:\xd0\x9a|\xd0\xba)",
+	"\xd0\x9b" => "(?:\xd0\x9b|\xd0\xbb)",
+	"\xd0\x9c" => "(?:\xd0\x9c|\xd0\xbc)",
+	"\xd0\x9d" => "(?:\xd0\x9d|\xd0\xbd)",
+	"\xd0\x9e" => "(?:\xd0\x9e|\xd0\xbe)",
+	"\xd0\x9f" => "(?:\xd0\x9f|\xd0\xbf)",
+	"\xd0\xa0" => "(?:\xd0\xa0|\xd1\x80)",
+	"\xd0\xa1" => "(?:\xd0\xa1|\xd1\x81)",
+	"\xd0\xa2" => "(?:\xd0\xa2|\xd1\x82)",
+	"\xd0\xa3" => "(?:\xd0\xa3|\xd1\x83)",
+	"\xd0\xa4" => "(?:\xd0\xa4|\xd1\x84)",
+	"\xd0\xa5" => "(?:\xd0\xa5|\xd1\x85)",
+	"\xd0\xa6" => "(?:\xd0\xa6|\xd1\x86)",
+	"\xd0\xa7" => "(?:\xd0\xa7|\xd1\x87)",
+	"\xd0\xa8" => "(?:\xd0\xa8|\xd1\x88)",
+	"\xd0\xa9" => "(?:\xd0\xa9|\xd1\x89)",
+	"\xd0\xaa" => "(?:\xd0\xaa|\xd1\x8a)",
+	"\xd0\xab" => "(?:\xd0\xab|\xd1\x8b)",
+	"\xd0\xac" => "(?:\xd0\xac|\xd1\x8c)",
+	"\xd0\xad" => "(?:\xd0\xad|\xd1\x8d)",
+	"\xd0\xae" => "(?:\xd0\xae|\xd1\x8e)",
+	"\xd0\xaf" => "(?:\xd0\xaf|\xd1\x8f)",
+	"\xd1\xa0" => "(?:\xd1\xa0|\xd1\xa1)",
+	"\xd1\xa2" => "(?:\xd1\xa2|\xd1\xa3)",
+	"\xd1\xa4" => "(?:\xd1\xa4|\xd1\xa5)",
+	"\xd1\xa6" => "(?:\xd1\xa6|\xd1\xa7)",
+	"\xd1\xa8" => "(?:\xd1\xa8|\xd1\xa9)",
+	"\xd1\xaa" => "(?:\xd1\xaa|\xd1\xab)",
+	"\xd1\xac" => "(?:\xd1\xac|\xd1\xad)",
+	"\xd1\xae" => "(?:\xd1\xae|\xd1\xaf)",
+	"\xd1\xb0" => "(?:\xd1\xb0|\xd1\xb1)",
+	"\xd1\xb2" => "(?:\xd1\xb2|\xd1\xb3)",
+	"\xd1\xb4" => "(?:\xd1\xb4|\xd1\xb5)",
+	"\xd1\xb6" => "(?:\xd1\xb6|\xd1\xb7)",
+	"\xd1\xb8" => "(?:\xd1\xb8|\xd1\xb9)",
+	"\xd1\xba" => "(?:\xd1\xba|\xd1\xbb)",
+	"\xd1\xbc" => "(?:\xd1\xbc|\xd1\xbd)",
+	"\xd1\xbe" => "(?:\xd1\xbe|\xd1\xbf)",
+	"\xd2\x80" => "(?:\xd2\x80|\xd2\x81)",
+	"\xd2\x8c" => "(?:\xd2\x8c|\xd2\x8d)",
+	"\xd2\x8e" => "(?:\xd2\x8e|\xd2\x8f)",
+	"\xd2\x90" => "(?:\xd2\x90|\xd2\x91)",
+	"\xd2\x92" => "(?:\xd2\x92|\xd2\x93)",
+	"\xd2\x94" => "(?:\xd2\x94|\xd2\x95)",
+	"\xd2\x96" => "(?:\xd2\x96|\xd2\x97)",
+	"\xd2\x98" => "(?:\xd2\x98|\xd2\x99)",
+	"\xd2\x9a" => "(?:\xd2\x9a|\xd2\x9b)",
+	"\xd2\x9c" => "(?:\xd2\x9c|\xd2\x9d)",
+	"\xd2\x9e" => "(?:\xd2\x9e|\xd2\x9f)",
+	"\xd2\xa0" => "(?:\xd2\xa0|\xd2\xa1)",
+	"\xd2\xa2" => "(?:\xd2\xa2|\xd2\xa3)",
+	"\xd2\xa4" => "(?:\xd2\xa4|\xd2\xa5)",
+	"\xd2\xa6" => "(?:\xd2\xa6|\xd2\xa7)",
+	"\xd2\xa8" => "(?:\xd2\xa8|\xd2\xa9)",
+	"\xd2\xaa" => "(?:\xd2\xaa|\xd2\xab)",
+	"\xd2\xac" => "(?:\xd2\xac|\xd2\xad)",
+	"\xd2\xae" => "(?:\xd2\xae|\xd2\xaf)",
+	"\xd2\xb0" => "(?:\xd2\xb0|\xd2\xb1)",
+	"\xd2\xb2" => "(?:\xd2\xb2|\xd2\xb3)",
+	"\xd2\xb4" => "(?:\xd2\xb4|\xd2\xb5)",
+	"\xd2\xb6" => "(?:\xd2\xb6|\xd2\xb7)",
+	"\xd2\xb8" => "(?:\xd2\xb8|\xd2\xb9)",
+	"\xd2\xba" => "(?:\xd2\xba|\xd2\xbb)",
+	"\xd2\xbc" => "(?:\xd2\xbc|\xd2\xbd)",
+	"\xd2\xbe" => "(?:\xd2\xbe|\xd2\xbf)",
+	"\xd3\x81" => "(?:\xd3\x81|\xd3\x82)",
+	"\xd3\x83" => "(?:\xd3\x83|\xd3\x84)",
+	"\xd3\x87" => "(?:\xd3\x87|\xd3\x88)",
+	"\xd3\x8b" => "(?:\xd3\x8b|\xd3\x8c)",
+	"\xd3\x90" => "(?:\xd3\x90|\xd3\x91)",
+	"\xd3\x92" => "(?:\xd3\x92|\xd3\x93)",
+	"\xd3\x94" => "(?:\xd3\x94|\xd3\x95)",
+	"\xd3\x96" => "(?:\xd3\x96|\xd3\x97)",
+	"\xd3\x98" => "(?:\xd3\x98|\xd3\x99)",
+	"\xd3\x9a" => "(?:\xd3\x9a|\xd3\x9b)",
+	"\xd3\x9c" => "(?:\xd3\x9c|\xd3\x9d)",
+	"\xd3\x9e" => "(?:\xd3\x9e|\xd3\x9f)",
+	"\xd3\xa0" => "(?:\xd3\xa0|\xd3\xa1)",
+	"\xd3\xa2" => "(?:\xd3\xa2|\xd3\xa3)",
+	"\xd3\xa4" => "(?:\xd3\xa4|\xd3\xa5)",
+	"\xd3\xa6" => "(?:\xd3\xa6|\xd3\xa7)",
+	"\xd3\xa8" => "(?:\xd3\xa8|\xd3\xa9)",
+	"\xd3\xaa" => "(?:\xd3\xaa|\xd3\xab)",
+	"\xd3\xac" => "(?:\xd3\xac|\xd3\xad)",
+	"\xd3\xae" => "(?:\xd3\xae|\xd3\xaf)",
+	"\xd3\xb0" => "(?:\xd3\xb0|\xd3\xb1)",
+	"\xd3\xb2" => "(?:\xd3\xb2|\xd3\xb3)",
+	"\xd3\xb4" => "(?:\xd3\xb4|\xd3\xb5)",
+	"\xd3\xb8" => "(?:\xd3\xb8|\xd3\xb9)",
+	"\xd4\xb1" => "(?:\xd4\xb1|\xd5\xa1)",
+	"\xd4\xb2" => "(?:\xd4\xb2|\xd5\xa2)",
+	"\xd4\xb3" => "(?:\xd4\xb3|\xd5\xa3)",
+	"\xd4\xb4" => "(?:\xd4\xb4|\xd5\xa4)",
+	"\xd4\xb5" => "(?:\xd4\xb5|\xd5\xa5)",
+	"\xd4\xb6" => "(?:\xd4\xb6|\xd5\xa6)",
+	"\xd4\xb7" => "(?:\xd4\xb7|\xd5\xa7)",
+	"\xd4\xb8" => "(?:\xd4\xb8|\xd5\xa8)",
+	"\xd4\xb9" => "(?:\xd4\xb9|\xd5\xa9)",
+	"\xd4\xba" => "(?:\xd4\xba|\xd5\xaa)",
+	"\xd4\xbb" => "(?:\xd4\xbb|\xd5\xab)",
+	"\xd4\xbc" => "(?:\xd4\xbc|\xd5\xac)",
+	"\xd4\xbd" => "(?:\xd4\xbd|\xd5\xad)",
+	"\xd4\xbe" => "(?:\xd4\xbe|\xd5\xae)",
+	"\xd4\xbf" => "(?:\xd4\xbf|\xd5\xaf)",
+	"\xd5\x80" => "(?:\xd5\x80|\xd5\xb0)",
+	"\xd5\x81" => "(?:\xd5\x81|\xd5\xb1)",
+	"\xd5\x82" => "(?:\xd5\x82|\xd5\xb2)",
+	"\xd5\x83" => "(?:\xd5\x83|\xd5\xb3)",
+	"\xd5\x84" => "(?:\xd5\x84|\xd5\xb4)",
+	"\xd5\x85" => "(?:\xd5\x85|\xd5\xb5)",
+	"\xd5\x86" => "(?:\xd5\x86|\xd5\xb6)",
+	"\xd5\x87" => "(?:\xd5\x87|\xd5\xb7)",
+	"\xd5\x88" => "(?:\xd5\x88|\xd5\xb8)",
+	"\xd5\x89" => "(?:\xd5\x89|\xd5\xb9)",
+	"\xd5\x8a" => "(?:\xd5\x8a|\xd5\xba)",
+	"\xd5\x8b" => "(?:\xd5\x8b|\xd5\xbb)",
+	"\xd5\x8c" => "(?:\xd5\x8c|\xd5\xbc)",
+	"\xd5\x8d" => "(?:\xd5\x8d|\xd5\xbd)",
+	"\xd5\x8e" => "(?:\xd5\x8e|\xd5\xbe)",
+	"\xd5\x8f" => "(?:\xd5\x8f|\xd5\xbf)",
+	"\xd5\x90" => "(?:\xd5\x90|\xd6\x80)",
+	"\xd5\x91" => "(?:\xd5\x91|\xd6\x81)",
+	"\xd5\x92" => "(?:\xd5\x92|\xd6\x82)",
+	"\xd5\x93" => "(?:\xd5\x93|\xd6\x83)",
+	"\xd5\x94" => "(?:\xd5\x94|\xd6\x84)",
+	"\xd5\x95" => "(?:\xd5\x95|\xd6\x85)",
+	"\xd5\x96" => "(?:\xd5\x96|\xd6\x86)",
+	"\xe1\xb8\x80" => "(?:\xe1\xb8\x80|\xe1\xb8\x81)",
+	"\xe1\xb8\x82" => "(?:\xe1\xb8\x82|\xe1\xb8\x83)",
+	"\xe1\xb8\x84" => "(?:\xe1\xb8\x84|\xe1\xb8\x85)",
+	"\xe1\xb8\x86" => "(?:\xe1\xb8\x86|\xe1\xb8\x87)",
+	"\xe1\xb8\x88" => "(?:\xe1\xb8\x88|\xe1\xb8\x89)",
+	"\xe1\xb8\x8a" => "(?:\xe1\xb8\x8a|\xe1\xb8\x8b)",
+	"\xe1\xb8\x8c" => "(?:\xe1\xb8\x8c|\xe1\xb8\x8d)",
+	"\xe1\xb8\x8e" => "(?:\xe1\xb8\x8e|\xe1\xb8\x8f)",
+	"\xe1\xb8\x90" => "(?:\xe1\xb8\x90|\xe1\xb8\x91)",
+	"\xe1\xb8\x92" => "(?:\xe1\xb8\x92|\xe1\xb8\x93)",
+	"\xe1\xb8\x94" => "(?:\xe1\xb8\x94|\xe1\xb8\x95)",
+	"\xe1\xb8\x96" => "(?:\xe1\xb8\x96|\xe1\xb8\x97)",
+	"\xe1\xb8\x98" => "(?:\xe1\xb8\x98|\xe1\xb8\x99)",
+	"\xe1\xb8\x9a" => "(?:\xe1\xb8\x9a|\xe1\xb8\x9b)",
+	"\xe1\xb8\x9c" => "(?:\xe1\xb8\x9c|\xe1\xb8\x9d)",
+	"\xe1\xb8\x9e" => "(?:\xe1\xb8\x9e|\xe1\xb8\x9f)",
+	"\xe1\xb8\xa0" => "(?:\xe1\xb8\xa0|\xe1\xb8\xa1)",
+	"\xe1\xb8\xa2" => "(?:\xe1\xb8\xa2|\xe1\xb8\xa3)",
+	"\xe1\xb8\xa4" => "(?:\xe1\xb8\xa4|\xe1\xb8\xa5)",
+	"\xe1\xb8\xa6" => "(?:\xe1\xb8\xa6|\xe1\xb8\xa7)",
+	"\xe1\xb8\xa8" => "(?:\xe1\xb8\xa8|\xe1\xb8\xa9)",
+	"\xe1\xb8\xaa" => "(?:\xe1\xb8\xaa|\xe1\xb8\xab)",
+	"\xe1\xb8\xac" => "(?:\xe1\xb8\xac|\xe1\xb8\xad)",
+	"\xe1\xb8\xae" => "(?:\xe1\xb8\xae|\xe1\xb8\xaf)",
+	"\xe1\xb8\xb0" => "(?:\xe1\xb8\xb0|\xe1\xb8\xb1)",
+	"\xe1\xb8\xb2" => "(?:\xe1\xb8\xb2|\xe1\xb8\xb3)",
+	"\xe1\xb8\xb4" => "(?:\xe1\xb8\xb4|\xe1\xb8\xb5)",
+	"\xe1\xb8\xb6" => "(?:\xe1\xb8\xb6|\xe1\xb8\xb7)",
+	"\xe1\xb8\xb8" => "(?:\xe1\xb8\xb8|\xe1\xb8\xb9)",
+	"\xe1\xb8\xba" => "(?:\xe1\xb8\xba|\xe1\xb8\xbb)",
+	"\xe1\xb8\xbc" => "(?:\xe1\xb8\xbc|\xe1\xb8\xbd)",
+	"\xe1\xb8\xbe" => "(?:\xe1\xb8\xbe|\xe1\xb8\xbf)",
+	"\xe1\xb9\x80" => "(?:\xe1\xb9\x80|\xe1\xb9\x81)",
+	"\xe1\xb9\x82" => "(?:\xe1\xb9\x82|\xe1\xb9\x83)",
+	"\xe1\xb9\x84" => "(?:\xe1\xb9\x84|\xe1\xb9\x85)",
+	"\xe1\xb9\x86" => "(?:\xe1\xb9\x86|\xe1\xb9\x87)",
+	"\xe1\xb9\x88" => "(?:\xe1\xb9\x88|\xe1\xb9\x89)",
+	"\xe1\xb9\x8a" => "(?:\xe1\xb9\x8a|\xe1\xb9\x8b)",
+	"\xe1\xb9\x8c" => "(?:\xe1\xb9\x8c|\xe1\xb9\x8d)",
+	"\xe1\xb9\x8e" => "(?:\xe1\xb9\x8e|\xe1\xb9\x8f)",
+	"\xe1\xb9\x90" => "(?:\xe1\xb9\x90|\xe1\xb9\x91)",
+	"\xe1\xb9\x92" => "(?:\xe1\xb9\x92|\xe1\xb9\x93)",
+	"\xe1\xb9\x94" => "(?:\xe1\xb9\x94|\xe1\xb9\x95)",
+	"\xe1\xb9\x96" => "(?:\xe1\xb9\x96|\xe1\xb9\x97)",
+	"\xe1\xb9\x98" => "(?:\xe1\xb9\x98|\xe1\xb9\x99)",
+	"\xe1\xb9\x9a" => "(?:\xe1\xb9\x9a|\xe1\xb9\x9b)",
+	"\xe1\xb9\x9c" => "(?:\xe1\xb9\x9c|\xe1\xb9\x9d)",
+	"\xe1\xb9\x9e" => "(?:\xe1\xb9\x9e|\xe1\xb9\x9f)",
+	"\xe1\xb9\xa0" => "(?:\xe1\xb9\xa0|\xe1\xb9\xa1|\xe1\xba\x9b)",
+	"\xe1\xb9\xa2" => "(?:\xe1\xb9\xa2|\xe1\xb9\xa3)",
+	"\xe1\xb9\xa4" => "(?:\xe1\xb9\xa4|\xe1\xb9\xa5)",
+	"\xe1\xb9\xa6" => "(?:\xe1\xb9\xa6|\xe1\xb9\xa7)",
+	"\xe1\xb9\xa8" => "(?:\xe1\xb9\xa8|\xe1\xb9\xa9)",
+	"\xe1\xb9\xaa" => "(?:\xe1\xb9\xaa|\xe1\xb9\xab)",
+	"\xe1\xb9\xac" => "(?:\xe1\xb9\xac|\xe1\xb9\xad)",
+	"\xe1\xb9\xae" => "(?:\xe1\xb9\xae|\xe1\xb9\xaf)",
+	"\xe1\xb9\xb0" => "(?:\xe1\xb9\xb0|\xe1\xb9\xb1)",
+	"\xe1\xb9\xb2" => "(?:\xe1\xb9\xb2|\xe1\xb9\xb3)",
+	"\xe1\xb9\xb4" => "(?:\xe1\xb9\xb4|\xe1\xb9\xb5)",
+	"\xe1\xb9\xb6" => "(?:\xe1\xb9\xb6|\xe1\xb9\xb7)",
+	"\xe1\xb9\xb8" => "(?:\xe1\xb9\xb8|\xe1\xb9\xb9)",
+	"\xe1\xb9\xba" => "(?:\xe1\xb9\xba|\xe1\xb9\xbb)",
+	"\xe1\xb9\xbc" => "(?:\xe1\xb9\xbc|\xe1\xb9\xbd)",
+	"\xe1\xb9\xbe" => "(?:\xe1\xb9\xbe|\xe1\xb9\xbf)",
+	"\xe1\xba\x80" => "(?:\xe1\xba\x80|\xe1\xba\x81)",
+	"\xe1\xba\x82" => "(?:\xe1\xba\x82|\xe1\xba\x83)",
+	"\xe1\xba\x84" => "(?:\xe1\xba\x84|\xe1\xba\x85)",
+	"\xe1\xba\x86" => "(?:\xe1\xba\x86|\xe1\xba\x87)",
+	"\xe1\xba\x88" => "(?:\xe1\xba\x88|\xe1\xba\x89)",
+	"\xe1\xba\x8a" => "(?:\xe1\xba\x8a|\xe1\xba\x8b)",
+	"\xe1\xba\x8c" => "(?:\xe1\xba\x8c|\xe1\xba\x8d)",
+	"\xe1\xba\x8e" => "(?:\xe1\xba\x8e|\xe1\xba\x8f)",
+	"\xe1\xba\x90" => "(?:\xe1\xba\x90|\xe1\xba\x91)",
+	"\xe1\xba\x92" => "(?:\xe1\xba\x92|\xe1\xba\x93)",
+	"\xe1\xba\x94" => "(?:\xe1\xba\x94|\xe1\xba\x95)",
+	"\xe1\xba\xa0" => "(?:\xe1\xba\xa0|\xe1\xba\xa1)",
+	"\xe1\xba\xa2" => "(?:\xe1\xba\xa2|\xe1\xba\xa3)",
+	"\xe1\xba\xa4" => "(?:\xe1\xba\xa4|\xe1\xba\xa5)",
+	"\xe1\xba\xa6" => "(?:\xe1\xba\xa6|\xe1\xba\xa7)",
+	"\xe1\xba\xa8" => "(?:\xe1\xba\xa8|\xe1\xba\xa9)",
+	"\xe1\xba\xaa" => "(?:\xe1\xba\xaa|\xe1\xba\xab)",
+	"\xe1\xba\xac" => "(?:\xe1\xba\xac|\xe1\xba\xad)",
+	"\xe1\xba\xae" => "(?:\xe1\xba\xae|\xe1\xba\xaf)",
+	"\xe1\xba\xb0" => "(?:\xe1\xba\xb0|\xe1\xba\xb1)",
+	"\xe1\xba\xb2" => "(?:\xe1\xba\xb2|\xe1\xba\xb3)",
+	"\xe1\xba\xb4" => "(?:\xe1\xba\xb4|\xe1\xba\xb5)",
+	"\xe1\xba\xb6" => "(?:\xe1\xba\xb6|\xe1\xba\xb7)",
+	"\xe1\xba\xb8" => "(?:\xe1\xba\xb8|\xe1\xba\xb9)",
+	"\xe1\xba\xba" => "(?:\xe1\xba\xba|\xe1\xba\xbb)",
+	"\xe1\xba\xbc" => "(?:\xe1\xba\xbc|\xe1\xba\xbd)",
+	"\xe1\xba\xbe" => "(?:\xe1\xba\xbe|\xe1\xba\xbf)",
+	"\xe1\xbb\x80" => "(?:\xe1\xbb\x80|\xe1\xbb\x81)",
+	"\xe1\xbb\x82" => "(?:\xe1\xbb\x82|\xe1\xbb\x83)",
+	"\xe1\xbb\x84" => "(?:\xe1\xbb\x84|\xe1\xbb\x85)",
+	"\xe1\xbb\x86" => "(?:\xe1\xbb\x86|\xe1\xbb\x87)",
+	"\xe1\xbb\x88" => "(?:\xe1\xbb\x88|\xe1\xbb\x89)",
+	"\xe1\xbb\x8a" => "(?:\xe1\xbb\x8a|\xe1\xbb\x8b)",
+	"\xe1\xbb\x8c" => "(?:\xe1\xbb\x8c|\xe1\xbb\x8d)",
+	"\xe1\xbb\x8e" => "(?:\xe1\xbb\x8e|\xe1\xbb\x8f)",
+	"\xe1\xbb\x90" => "(?:\xe1\xbb\x90|\xe1\xbb\x91)",
+	"\xe1\xbb\x92" => "(?:\xe1\xbb\x92|\xe1\xbb\x93)",
+	"\xe1\xbb\x94" => "(?:\xe1\xbb\x94|\xe1\xbb\x95)",
+	"\xe1\xbb\x96" => "(?:\xe1\xbb\x96|\xe1\xbb\x97)",
+	"\xe1\xbb\x98" => "(?:\xe1\xbb\x98|\xe1\xbb\x99)",
+	"\xe1\xbb\x9a" => "(?:\xe1\xbb\x9a|\xe1\xbb\x9b)",
+	"\xe1\xbb\x9c" => "(?:\xe1\xbb\x9c|\xe1\xbb\x9d)",
+	"\xe1\xbb\x9e" => "(?:\xe1\xbb\x9e|\xe1\xbb\x9f)",
+	"\xe1\xbb\xa0" => "(?:\xe1\xbb\xa0|\xe1\xbb\xa1)",
+	"\xe1\xbb\xa2" => "(?:\xe1\xbb\xa2|\xe1\xbb\xa3)",
+	"\xe1\xbb\xa4" => "(?:\xe1\xbb\xa4|\xe1\xbb\xa5)",
+	"\xe1\xbb\xa6" => "(?:\xe1\xbb\xa6|\xe1\xbb\xa7)",
+	"\xe1\xbb\xa8" => "(?:\xe1\xbb\xa8|\xe1\xbb\xa9)",
+	"\xe1\xbb\xaa" => "(?:\xe1\xbb\xaa|\xe1\xbb\xab)",
+	"\xe1\xbb\xac" => "(?:\xe1\xbb\xac|\xe1\xbb\xad)",
+	"\xe1\xbb\xae" => "(?:\xe1\xbb\xae|\xe1\xbb\xaf)",
+	"\xe1\xbb\xb0" => "(?:\xe1\xbb\xb0|\xe1\xbb\xb1)",
+	"\xe1\xbb\xb2" => "(?:\xe1\xbb\xb2|\xe1\xbb\xb3)",
+	"\xe1\xbb\xb4" => "(?:\xe1\xbb\xb4|\xe1\xbb\xb5)",
+	"\xe1\xbb\xb6" => "(?:\xe1\xbb\xb6|\xe1\xbb\xb7)",
+	"\xe1\xbb\xb8" => "(?:\xe1\xbb\xb8|\xe1\xbb\xb9)",
+	"\xe1\xbc\x88" => "(?:\xe1\xbc\x88|\xe1\xbc\x80)",
+	"\xe1\xbc\x89" => "(?:\xe1\xbc\x89|\xe1\xbc\x81)",
+	"\xe1\xbc\x8a" => "(?:\xe1\xbc\x8a|\xe1\xbc\x82)",
+	"\xe1\xbc\x8b" => "(?:\xe1\xbc\x8b|\xe1\xbc\x83)",
+	"\xe1\xbc\x8c" => "(?:\xe1\xbc\x8c|\xe1\xbc\x84)",
+	"\xe1\xbc\x8d" => "(?:\xe1\xbc\x8d|\xe1\xbc\x85)",
+	"\xe1\xbc\x8e" => "(?:\xe1\xbc\x8e|\xe1\xbc\x86)",
+	"\xe1\xbc\x8f" => "(?:\xe1\xbc\x8f|\xe1\xbc\x87)",
+	"\xe1\xbc\x98" => "(?:\xe1\xbc\x98|\xe1\xbc\x90)",
+	"\xe1\xbc\x99" => "(?:\xe1\xbc\x99|\xe1\xbc\x91)",
+	"\xe1\xbc\x9a" => "(?:\xe1\xbc\x9a|\xe1\xbc\x92)",
+	"\xe1\xbc\x9b" => "(?:\xe1\xbc\x9b|\xe1\xbc\x93)",
+	"\xe1\xbc\x9c" => "(?:\xe1\xbc\x9c|\xe1\xbc\x94)",
+	"\xe1\xbc\x9d" => "(?:\xe1\xbc\x9d|\xe1\xbc\x95)",
+	"\xe1\xbc\xa8" => "(?:\xe1\xbc\xa8|\xe1\xbc\xa0)",
+	"\xe1\xbc\xa9" => "(?:\xe1\xbc\xa9|\xe1\xbc\xa1)",
+	"\xe1\xbc\xaa" => "(?:\xe1\xbc\xaa|\xe1\xbc\xa2)",
+	"\xe1\xbc\xab" => "(?:\xe1\xbc\xab|\xe1\xbc\xa3)",
+	"\xe1\xbc\xac" => "(?:\xe1\xbc\xac|\xe1\xbc\xa4)",
+	"\xe1\xbc\xad" => "(?:\xe1\xbc\xad|\xe1\xbc\xa5)",
+	"\xe1\xbc\xae" => "(?:\xe1\xbc\xae|\xe1\xbc\xa6)",
+	"\xe1\xbc\xaf" => "(?:\xe1\xbc\xaf|\xe1\xbc\xa7)",
+	"\xe1\xbc\xb8" => "(?:\xe1\xbc\xb8|\xe1\xbc\xb0)",
+	"\xe1\xbc\xb9" => "(?:\xe1\xbc\xb9|\xe1\xbc\xb1)",
+	"\xe1\xbc\xba" => "(?:\xe1\xbc\xba|\xe1\xbc\xb2)",
+	"\xe1\xbc\xbb" => "(?:\xe1\xbc\xbb|\xe1\xbc\xb3)",
+	"\xe1\xbc\xbc" => "(?:\xe1\xbc\xbc|\xe1\xbc\xb4)",
+	"\xe1\xbc\xbd" => "(?:\xe1\xbc\xbd|\xe1\xbc\xb5)",
+	"\xe1\xbc\xbe" => "(?:\xe1\xbc\xbe|\xe1\xbc\xb6)",
+	"\xe1\xbc\xbf" => "(?:\xe1\xbc\xbf|\xe1\xbc\xb7)",
+	"\xe1\xbd\x88" => "(?:\xe1\xbd\x88|\xe1\xbd\x80)",
+	"\xe1\xbd\x89" => "(?:\xe1\xbd\x89|\xe1\xbd\x81)",
+	"\xe1\xbd\x8a" => "(?:\xe1\xbd\x8a|\xe1\xbd\x82)",
+	"\xe1\xbd\x8b" => "(?:\xe1\xbd\x8b|\xe1\xbd\x83)",
+	"\xe1\xbd\x8c" => "(?:\xe1\xbd\x8c|\xe1\xbd\x84)",
+	"\xe1\xbd\x8d" => "(?:\xe1\xbd\x8d|\xe1\xbd\x85)",
+	"\xe1\xbd\x99" => "(?:\xe1\xbd\x99|\xe1\xbd\x91)",
+	"\xe1\xbd\x9b" => "(?:\xe1\xbd\x9b|\xe1\xbd\x93)",
+	"\xe1\xbd\x9d" => "(?:\xe1\xbd\x9d|\xe1\xbd\x95)",
+	"\xe1\xbd\x9f" => "(?:\xe1\xbd\x9f|\xe1\xbd\x97)",
+	"\xe1\xbd\xa8" => "(?:\xe1\xbd\xa8|\xe1\xbd\xa0)",
+	"\xe1\xbd\xa9" => "(?:\xe1\xbd\xa9|\xe1\xbd\xa1)",
+	"\xe1\xbd\xaa" => "(?:\xe1\xbd\xaa|\xe1\xbd\xa2)",
+	"\xe1\xbd\xab" => "(?:\xe1\xbd\xab|\xe1\xbd\xa3)",
+	"\xe1\xbd\xac" => "(?:\xe1\xbd\xac|\xe1\xbd\xa4)",
+	"\xe1\xbd\xad" => "(?:\xe1\xbd\xad|\xe1\xbd\xa5)",
+	"\xe1\xbd\xae" => "(?:\xe1\xbd\xae|\xe1\xbd\xa6)",
+	"\xe1\xbd\xaf" => "(?:\xe1\xbd\xaf|\xe1\xbd\xa7)",
+	"\xe1\xbe\x88" => "(?:\xe1\xbe\x88|\xe1\xbe\x80)",
+	"\xe1\xbe\x89" => "(?:\xe1\xbe\x89|\xe1\xbe\x81)",
+	"\xe1\xbe\x8a" => "(?:\xe1\xbe\x8a|\xe1\xbe\x82)",
+	"\xe1\xbe\x8b" => "(?:\xe1\xbe\x8b|\xe1\xbe\x83)",
+	"\xe1\xbe\x8c" => "(?:\xe1\xbe\x8c|\xe1\xbe\x84)",
+	"\xe1\xbe\x8d" => "(?:\xe1\xbe\x8d|\xe1\xbe\x85)",
+	"\xe1\xbe\x8e" => "(?:\xe1\xbe\x8e|\xe1\xbe\x86)",
+	"\xe1\xbe\x8f" => "(?:\xe1\xbe\x8f|\xe1\xbe\x87)",
+	"\xe1\xbe\x98" => "(?:\xe1\xbe\x98|\xe1\xbe\x90)",
+	"\xe1\xbe\x99" => "(?:\xe1\xbe\x99|\xe1\xbe\x91)",
+	"\xe1\xbe\x9a" => "(?:\xe1\xbe\x9a|\xe1\xbe\x92)",
+	"\xe1\xbe\x9b" => "(?:\xe1\xbe\x9b|\xe1\xbe\x93)",
+	"\xe1\xbe\x9c" => "(?:\xe1\xbe\x9c|\xe1\xbe\x94)",
+	"\xe1\xbe\x9d" => "(?:\xe1\xbe\x9d|\xe1\xbe\x95)",
+	"\xe1\xbe\x9e" => "(?:\xe1\xbe\x9e|\xe1\xbe\x96)",
+	"\xe1\xbe\x9f" => "(?:\xe1\xbe\x9f|\xe1\xbe\x97)",
+	"\xe1\xbe\xa8" => "(?:\xe1\xbe\xa8|\xe1\xbe\xa0)",
+	"\xe1\xbe\xa9" => "(?:\xe1\xbe\xa9|\xe1\xbe\xa1)",
+	"\xe1\xbe\xaa" => "(?:\xe1\xbe\xaa|\xe1\xbe\xa2)",
+	"\xe1\xbe\xab" => "(?:\xe1\xbe\xab|\xe1\xbe\xa3)",
+	"\xe1\xbe\xac" => "(?:\xe1\xbe\xac|\xe1\xbe\xa4)",
+	"\xe1\xbe\xad" => "(?:\xe1\xbe\xad|\xe1\xbe\xa5)",
+	"\xe1\xbe\xae" => "(?:\xe1\xbe\xae|\xe1\xbe\xa6)",
+	"\xe1\xbe\xaf" => "(?:\xe1\xbe\xaf|\xe1\xbe\xa7)",
+	"\xe1\xbe\xb8" => "(?:\xe1\xbe\xb8|\xe1\xbe\xb0)",
+	"\xe1\xbe\xb9" => "(?:\xe1\xbe\xb9|\xe1\xbe\xb1)",
+	"\xe1\xbe\xba" => "(?:\xe1\xbe\xba|\xe1\xbd\xb0)",
+	"\xe1\xbe\xbb" => "(?:\xe1\xbe\xbb|\xe1\xbd\xb1)",
+	"\xe1\xbe\xbc" => "(?:\xe1\xbe\xbc|\xe1\xbe\xb3)",
+	"\xe1\xbf\x88" => "(?:\xe1\xbf\x88|\xe1\xbd\xb2)",
+	"\xe1\xbf\x89" => "(?:\xe1\xbf\x89|\xe1\xbd\xb3)",
+	"\xe1\xbf\x8a" => "(?:\xe1\xbf\x8a|\xe1\xbd\xb4)",
+	"\xe1\xbf\x8b" => "(?:\xe1\xbf\x8b|\xe1\xbd\xb5)",
+	"\xe1\xbf\x8c" => "(?:\xe1\xbf\x8c|\xe1\xbf\x83)",
+	"\xe1\xbf\x98" => "(?:\xe1\xbf\x98|\xe1\xbf\x90)",
+	"\xe1\xbf\x99" => "(?:\xe1\xbf\x99|\xe1\xbf\x91)",
+	"\xe1\xbf\x9a" => "(?:\xe1\xbf\x9a|\xe1\xbd\xb6)",
+	"\xe1\xbf\x9b" => "(?:\xe1\xbf\x9b|\xe1\xbd\xb7)",
+	"\xe1\xbf\xa8" => "(?:\xe1\xbf\xa8|\xe1\xbf\xa0)",
+	"\xe1\xbf\xa9" => "(?:\xe1\xbf\xa9|\xe1\xbf\xa1)",
+	"\xe1\xbf\xaa" => "(?:\xe1\xbf\xaa|\xe1\xbd\xba)",
+	"\xe1\xbf\xab" => "(?:\xe1\xbf\xab|\xe1\xbd\xbb)",
+	"\xe1\xbf\xac" => "(?:\xe1\xbf\xac|\xe1\xbf\xa5)",
+	"\xe1\xbf\xb8" => "(?:\xe1\xbf\xb8|\xe1\xbd\xb8)",
+	"\xe1\xbf\xb9" => "(?:\xe1\xbf\xb9|\xe1\xbd\xb9)",
+	"\xe1\xbf\xba" => "(?:\xe1\xbf\xba|\xe1\xbd\xbc)",
+	"\xe1\xbf\xbb" => "(?:\xe1\xbf\xbb|\xe1\xbd\xbd)",
+	"\xe1\xbf\xbc" => "(?:\xe1\xbf\xbc|\xe1\xbf\xb3)",
+	"\xe2\x84\xa6" => "(?:\xe2\x84\xa6|\xcf\x89)",
+	"\xe2\x84\xaa" => "(?:\xe2\x84\xaa|k)",
+	"\xe2\x84\xab" => "(?:\xe2\x84\xab|\xc3\xa5)",
+	"\xe2\x85\xa0" => "(?:\xe2\x85\xa0|\xe2\x85\xb0)",
+	"\xe2\x85\xa1" => "(?:\xe2\x85\xa1|\xe2\x85\xb1)",
+	"\xe2\x85\xa2" => "(?:\xe2\x85\xa2|\xe2\x85\xb2)",
+	"\xe2\x85\xa3" => "(?:\xe2\x85\xa3|\xe2\x85\xb3)",
+	"\xe2\x85\xa4" => "(?:\xe2\x85\xa4|\xe2\x85\xb4)",
+	"\xe2\x85\xa5" => "(?:\xe2\x85\xa5|\xe2\x85\xb5)",
+	"\xe2\x85\xa6" => "(?:\xe2\x85\xa6|\xe2\x85\xb6)",
+	"\xe2\x85\xa7" => "(?:\xe2\x85\xa7|\xe2\x85\xb7)",
+	"\xe2\x85\xa8" => "(?:\xe2\x85\xa8|\xe2\x85\xb8)",
+	"\xe2\x85\xa9" => "(?:\xe2\x85\xa9|\xe2\x85\xb9)",
+	"\xe2\x85\xaa" => "(?:\xe2\x85\xaa|\xe2\x85\xba)",
+	"\xe2\x85\xab" => "(?:\xe2\x85\xab|\xe2\x85\xbb)",
+	"\xe2\x85\xac" => "(?:\xe2\x85\xac|\xe2\x85\xbc)",
+	"\xe2\x85\xad" => "(?:\xe2\x85\xad|\xe2\x85\xbd)",
+	"\xe2\x85\xae" => "(?:\xe2\x85\xae|\xe2\x85\xbe)",
+	"\xe2\x85\xaf" => "(?:\xe2\x85\xaf|\xe2\x85\xbf)",
+	"\xe2\x92\xb6" => "(?:\xe2\x92\xb6|\xe2\x93\x90)",
+	"\xe2\x92\xb7" => "(?:\xe2\x92\xb7|\xe2\x93\x91)",
+	"\xe2\x92\xb8" => "(?:\xe2\x92\xb8|\xe2\x93\x92)",
+	"\xe2\x92\xb9" => "(?:\xe2\x92\xb9|\xe2\x93\x93)",
+	"\xe2\x92\xba" => "(?:\xe2\x92\xba|\xe2\x93\x94)",
+	"\xe2\x92\xbb" => "(?:\xe2\x92\xbb|\xe2\x93\x95)",
+	"\xe2\x92\xbc" => "(?:\xe2\x92\xbc|\xe2\x93\x96)",
+	"\xe2\x92\xbd" => "(?:\xe2\x92\xbd|\xe2\x93\x97)",
+	"\xe2\x92\xbe" => "(?:\xe2\x92\xbe|\xe2\x93\x98)",
+	"\xe2\x92\xbf" => "(?:\xe2\x92\xbf|\xe2\x93\x99)",
+	"\xe2\x93\x80" => "(?:\xe2\x93\x80|\xe2\x93\x9a)",
+	"\xe2\x93\x81" => "(?:\xe2\x93\x81|\xe2\x93\x9b)",
+	"\xe2\x93\x82" => "(?:\xe2\x93\x82|\xe2\x93\x9c)",
+	"\xe2\x93\x83" => "(?:\xe2\x93\x83|\xe2\x93\x9d)",
+	"\xe2\x93\x84" => "(?:\xe2\x93\x84|\xe2\x93\x9e)",
+	"\xe2\x93\x85" => "(?:\xe2\x93\x85|\xe2\x93\x9f)",
+	"\xe2\x93\x86" => "(?:\xe2\x93\x86|\xe2\x93\xa0)",
+	"\xe2\x93\x87" => "(?:\xe2\x93\x87|\xe2\x93\xa1)",
+	"\xe2\x93\x88" => "(?:\xe2\x93\x88|\xe2\x93\xa2)",
+	"\xe2\x93\x89" => "(?:\xe2\x93\x89|\xe2\x93\xa3)",
+	"\xe2\x93\x8a" => "(?:\xe2\x93\x8a|\xe2\x93\xa4)",
+	"\xe2\x93\x8b" => "(?:\xe2\x93\x8b|\xe2\x93\xa5)",
+	"\xe2\x93\x8c" => "(?:\xe2\x93\x8c|\xe2\x93\xa6)",
+	"\xe2\x93\x8d" => "(?:\xe2\x93\x8d|\xe2\x93\xa7)",
+	"\xe2\x93\x8e" => "(?:\xe2\x93\x8e|\xe2\x93\xa8)",
+	"\xe2\x93\x8f" => "(?:\xe2\x93\x8f|\xe2\x93\xa9)",
+	"\xef\xbc\xa1" => "(?:\xef\xbc\xa1|\xef\xbd\x81)",
+	"\xef\xbc\xa2" => "(?:\xef\xbc\xa2|\xef\xbd\x82)",
+	"\xef\xbc\xa3" => "(?:\xef\xbc\xa3|\xef\xbd\x83)",
+	"\xef\xbc\xa4" => "(?:\xef\xbc\xa4|\xef\xbd\x84)",
+	"\xef\xbc\xa5" => "(?:\xef\xbc\xa5|\xef\xbd\x85)",
+	"\xef\xbc\xa6" => "(?:\xef\xbc\xa6|\xef\xbd\x86)",
+	"\xef\xbc\xa7" => "(?:\xef\xbc\xa7|\xef\xbd\x87)",
+	"\xef\xbc\xa8" => "(?:\xef\xbc\xa8|\xef\xbd\x88)",
+	"\xef\xbc\xa9" => "(?:\xef\xbc\xa9|\xef\xbd\x89)",
+	"\xef\xbc\xaa" => "(?:\xef\xbc\xaa|\xef\xbd\x8a)",
+	"\xef\xbc\xab" => "(?:\xef\xbc\xab|\xef\xbd\x8b)",
+	"\xef\xbc\xac" => "(?:\xef\xbc\xac|\xef\xbd\x8c)",
+	"\xef\xbc\xad" => "(?:\xef\xbc\xad|\xef\xbd\x8d)",
+	"\xef\xbc\xae" => "(?:\xef\xbc\xae|\xef\xbd\x8e)",
+	"\xef\xbc\xaf" => "(?:\xef\xbc\xaf|\xef\xbd\x8f)",
+	"\xef\xbc\xb0" => "(?:\xef\xbc\xb0|\xef\xbd\x90)",
+	"\xef\xbc\xb1" => "(?:\xef\xbc\xb1|\xef\xbd\x91)",
+	"\xef\xbc\xb2" => "(?:\xef\xbc\xb2|\xef\xbd\x92)",
+	"\xef\xbc\xb3" => "(?:\xef\xbc\xb3|\xef\xbd\x93)",
+	"\xef\xbc\xb4" => "(?:\xef\xbc\xb4|\xef\xbd\x94)",
+	"\xef\xbc\xb5" => "(?:\xef\xbc\xb5|\xef\xbd\x95)",
+	"\xef\xbc\xb6" => "(?:\xef\xbc\xb6|\xef\xbd\x96)",
+	"\xef\xbc\xb7" => "(?:\xef\xbc\xb7|\xef\xbd\x97)",
+	"\xef\xbc\xb8" => "(?:\xef\xbc\xb8|\xef\xbd\x98)",
+	"\xef\xbc\xb9" => "(?:\xef\xbc\xb9|\xef\xbd\x99)",
+	"\xef\xbc\xba" => "(?:\xef\xbc\xba|\xef\xbd\x9a)",
+	"\xf0\x90\x90\x80" => "(?:\xf0\x90\x90\x80|\xf0\x90\x90\xa8)",
+	"\xf0\x90\x90\x81" => "(?:\xf0\x90\x90\x81|\xf0\x90\x90\xa9)",
+	"\xf0\x90\x90\x82" => "(?:\xf0\x90\x90\x82|\xf0\x90\x90\xaa)",
+	"\xf0\x90\x90\x83" => "(?:\xf0\x90\x90\x83|\xf0\x90\x90\xab)",
+	"\xf0\x90\x90\x84" => "(?:\xf0\x90\x90\x84|\xf0\x90\x90\xac)",
+	"\xf0\x90\x90\x85" => "(?:\xf0\x90\x90\x85|\xf0\x90\x90\xad)",
+	"\xf0\x90\x90\x86" => "(?:\xf0\x90\x90\x86|\xf0\x90\x90\xae)",
+	"\xf0\x90\x90\x87" => "(?:\xf0\x90\x90\x87|\xf0\x90\x90\xaf)",
+	"\xf0\x90\x90\x88" => "(?:\xf0\x90\x90\x88|\xf0\x90\x90\xb0)",
+	"\xf0\x90\x90\x89" => "(?:\xf0\x90\x90\x89|\xf0\x90\x90\xb1)",
+	"\xf0\x90\x90\x8a" => "(?:\xf0\x90\x90\x8a|\xf0\x90\x90\xb2)",
+	"\xf0\x90\x90\x8b" => "(?:\xf0\x90\x90\x8b|\xf0\x90\x90\xb3)",
+	"\xf0\x90\x90\x8c" => "(?:\xf0\x90\x90\x8c|\xf0\x90\x90\xb4)",
+	"\xf0\x90\x90\x8d" => "(?:\xf0\x90\x90\x8d|\xf0\x90\x90\xb5)",
+	"\xf0\x90\x90\x8e" => "(?:\xf0\x90\x90\x8e|\xf0\x90\x90\xb6)",
+	"\xf0\x90\x90\x8f" => "(?:\xf0\x90\x90\x8f|\xf0\x90\x90\xb7)",
+	"\xf0\x90\x90\x90" => "(?:\xf0\x90\x90\x90|\xf0\x90\x90\xb8)",
+	"\xf0\x90\x90\x91" => "(?:\xf0\x90\x90\x91|\xf0\x90\x90\xb9)",
+	"\xf0\x90\x90\x92" => "(?:\xf0\x90\x90\x92|\xf0\x90\x90\xba)",
+	"\xf0\x90\x90\x93" => "(?:\xf0\x90\x90\x93|\xf0\x90\x90\xbb)",
+	"\xf0\x90\x90\x94" => "(?:\xf0\x90\x90\x94|\xf0\x90\x90\xbc)",
+	"\xf0\x90\x90\x95" => "(?:\xf0\x90\x90\x95|\xf0\x90\x90\xbd)",
+	"\xf0\x90\x90\x96" => "(?:\xf0\x90\x90\x96|\xf0\x90\x90\xbe)",
+	"\xf0\x90\x90\x97" => "(?:\xf0\x90\x90\x97|\xf0\x90\x90\xbf)",
+	"\xf0\x90\x90\x98" => "(?:\xf0\x90\x90\x98|\xf0\x90\x91\x80)",
+	"\xf0\x90\x90\x99" => "(?:\xf0\x90\x90\x99|\xf0\x90\x91\x81)",
+	"\xf0\x90\x90\x9a" => "(?:\xf0\x90\x90\x9a|\xf0\x90\x91\x82)",
+	"\xf0\x90\x90\x9b" => "(?:\xf0\x90\x90\x9b|\xf0\x90\x91\x83)",
+	"\xf0\x90\x90\x9c" => "(?:\xf0\x90\x90\x9c|\xf0\x90\x91\x84)",
+	"\xf0\x90\x90\x9d" => "(?:\xf0\x90\x90\x9d|\xf0\x90\x91\x85)",
+	"\xf0\x90\x90\x9e" => "(?:\xf0\x90\x90\x9e|\xf0\x90\x91\x86)",
+	"\xf0\x90\x90\x9f" => "(?:\xf0\x90\x90\x9f|\xf0\x90\x91\x87)",
+	"\xf0\x90\x90\xa0" => "(?:\xf0\x90\x90\xa0|\xf0\x90\x91\x88)",
+	"\xf0\x90\x90\xa1" => "(?:\xf0\x90\x90\xa1|\xf0\x90\x91\x89)",
+	"\xf0\x90\x90\xa2" => "(?:\xf0\x90\x90\xa2|\xf0\x90\x91\x8a)",
+	"\xf0\x90\x90\xa3" => "(?:\xf0\x90\x90\xa3|\xf0\x90\x91\x8b)",
+	"\xf0\x90\x90\xa4" => "(?:\xf0\x90\x90\xa4|\xf0\x90\x91\x8c)",
+	"\xf0\x90\x90\xa5" => "(?:\xf0\x90\x90\xa5|\xf0\x90\x91\x8d)"
+	//"i" => "(?:i|\xc4\xb0|I)",
+	//"I" => "(?:I|\xc4\xb1|i)",
+	//"k" => "(?:k|\xe2\x84\xaa|K)",
+	//"S" => "(?:S|\xc5\xbf|s)"
+);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/search/search_convert.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/search/index.php
===================================================================
--- tags/2.7.0/wb/search/index.php	(nonexistent)
+++ tags/2.7.0/wb/search/index.php	(revision 838)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the config file
+require('../config.php');
+
+// Required page details
+$page_id = 0;
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', 0);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $TEXT['SEARCH']);
+define('MENU_TITLE', $TEXT['SEARCH']);
+define('MODULE', '');
+define('VISIBILITY', 'public');
+define('PAGE_CONTENT', 'search.php');
+
+// Find out what the search template is
+$database = new database();
+$query_template = $database->query("SELECT value FROM ".TABLE_PREFIX."search WHERE name = 'template' LIMIT 1");
+$fetch_template = $query_template->fetchRow();
+$template = $fetch_template['value'];
+if($template != '') {
+	define('TEMPLATE', $template);
+}
+unset($template);
+
+//Get the referrer page ID if it exists
+if(isset($_REQUEST['referrer']) && is_numeric($_REQUEST['referrer']) && intval($_REQUEST['referrer']) > 0) {
+	define('REFERRER_ID', intval($_REQUEST['referrer']));
+} else {
+	define('REFERRER_ID', 0);
+}
+
+// Include index (wrapper) file
+require(WB_PATH.'/index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/search/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/modify.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/modify.php	(revision 838)
@@ -0,0 +1,200 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/menu_link/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/menu_link/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/menu_link/languages/'.LANGUAGE .'.php');
+}
+
+// get target page_id
+$table = TABLE_PREFIX.'mod_menu_link';
+$sql_result = $database->query("SELECT * FROM $table WHERE section_id = '$section_id'");
+$sql_row = $sql_result->fetchRow();
+$target_page_id = $sql_row['target_page_id'];
+$extern = $sql_row['extern'];
+$anchor = $sql_row['anchor'];
+$sel = ' selected';
+
+// Get list of all visible pages, except actual one
+$links = array();
+$table_p = TABLE_PREFIX."pages";
+if($query_page = $database->query("SELECT * FROM $table_p WHERE parent = '0' ORDER BY position")) {
+	while($page = $query_page->fetchRow()) {
+		$all_links[$page['page_id']]='/'.$page['menu_title'];
+		if($admin->page_is_visible($page) && $page['page_id']!=$page_id) {
+			$links[$page['page_id']]='/'.$page['menu_title'];
+		}
+		if($query_subpage = $database->query("SELECT * FROM $table_p WHERE page_id != '$page_id' AND root_parent = '{$page['page_id']}' ORDER BY level")) {
+			while($sub = $query_subpage->fetchRow()) {
+				if($admin->page_is_visible($sub)) {
+					$parent_link = (array_key_exists($sub['parent'],$all_links))?$all_links[$sub['parent']]:"";
+					$links[$sub['page_id']]=$parent_link.'/'.$sub['menu_title'];
+				}
+			}
+		}
+	}
+}
+// Get list of targets (id=... or <a name ...>) from pages in $links
+$targets = array();
+$table_mw = TABLE_PREFIX."mod_wysiwyg";
+$table_s = TABLE_PREFIX."sections";
+foreach($links as $pid=>$l) {
+	if($query_section = $database->query("SELECT section_id, module FROM $table_s WHERE page_id = '$pid' ORDER BY position")) {
+		while($section = $query_section->fetchRow()) {
+			// get section-anchor
+			$targets[$pid][] = "wb_section_{$section['section_id']}";
+			if($section['module'] == 'wysiwyg') {
+				if($query_page = $database->query("SELECT content FROM $table_mw WHERE section_id = '{$section['section_id']}' LIMIT 1")) {
+					$page = $query_page->fetchRow();
+					if(preg_match_all('/<(?:[^>]+id|\s*a[^>]+name)\s*=\s*"(.*)"/iuU',$page['content'], $match)) {
+						foreach($match[1] AS $t) {
+							$targets[$pid][] = $t;
+						}
+					}
+				}
+			}
+		}
+	}
+}
+// get target-window for actual page
+$table = TABLE_PREFIX."pages";
+$query_page = $database->query("SELECT target FROM $table WHERE page_id = '$page_id'");
+$page = $query_page->fetchRow();
+$target = $page['target'];
+
+
+// script for target-select-box
+?>
+<script type="text/javascript">
+	function populate() {
+		o=document.getElementById('page_link');
+		d=document.getElementById('page_target');
+		e=document.getElementById('extern');
+		if(!d){return;}			
+		var mitems=new Array();
+		mitems['0']=[' ','0'];
+		mitems['-1']=[' ','0'];
+		<?php
+		foreach($links AS $pid=>$link) {
+			$str="mitems['$pid']=[";
+			$str.="' ',";
+			$str.="'0',";
+			if(is_array($targets) && is_array($targets[$pid])) {
+				foreach($targets[$pid] AS $value) {
+					$str.="'#$value',";
+					$str.="'$value',";
+				}
+				$str=rtrim($str, ',');
+				$str.="];\n";
+			}
+			echo $str;
+		}
+		?>
+		d.options.length=0;
+		cur=mitems[o.options[o.selectedIndex].value];
+		if(!cur){return;}
+		d.options.length=cur.length/2;
+		j=0;
+		for(var i=0;i<cur.length;i=i+2)
+		{
+			d.options[j].text=cur[i];
+			d.options[j++].value=cur[i+1];
+		}
+		
+		if(o.value=='-1') {
+			e.disabled = false;
+		} else {
+			e.disabled = true;
+		}
+	}
+</script>
+
+<form name="menulink" action="<?php echo WB_URL ?>/modules/menu_link/save.php" method="post">
+<input type="hidden" name="page_id" value="<?php echo $page_id ?>" />
+<input type="hidden" name="section_id" value="<?php echo $section_id ?>" />
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td>
+		<?php echo $TEXT['LINK'].':' ?>
+	</td>
+	<td>
+		<select name="page_link" id="page_link" onchange="populate()" style="width:250px;" />
+			<option value="0"<?php echo $target_page_id=='0'?$sel:''?>><?php echo $TEXT['PLEASE_SELECT']; ?></option>
+			<option value="-1"<?php echo $target_page_id=='-1'?$sel:''?>><?php echo $MOD_MENU_LINK['EXTERNAL_LINK']; ?></option>
+			<?php foreach($links AS $pid=>$link) {
+				echo "<option value=\"$pid\" ".($target_page_id==$pid?$sel:'').">$link</option>";
+			} ?>
+		</select>
+		&nbsp;
+		<input type="text" name="extern" id="extern" value="<?php echo $extern; ?>" style="width:250px;" <?php if($target_page_id!='-1') echo 'disabled="disabled"'; ?> />
+	</td>
+</tr>
+<tr>
+	<td>
+		<?php echo $TEXT['ANCHOR'].':' ?>
+	</td>
+	<td>
+		<select name="page_target" id="page_target" onfocus="populate()" style="width:250px;" />
+			<option value="<?php echo $anchor ?>" selected><?php echo $anchor=='0'?' ':'#'.$anchor ?></option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>
+		<?php echo $TEXT['TARGET'].':' ?>
+	</td>
+	<td>
+		<select name="target" style="width:250px;" />
+			<option value="_blank"<?php if($target=='_blank') echo ' selected'; ?>><?php echo $TEXT['NEW_WINDOW'] ?></option>
+			<option value="_self"<?php if($target=='_self') echo ' selected'; ?>><?php echo $TEXT['SAME_WINDOW'] ?></option>
+			<option value="_top"<?php if($target=='_top') echo ' selected'; ?>><?php echo $TEXT['TOP_FRAME'] ?></option>
+		</select>
+	</td>
+</tr>
+</table>
+
+<br />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input type="submit" value="<?php echo $TEXT['SAVE'] ?>" style="width: 100px; margin-top: 5px;" />
+	</td>
+	<td align="right">
+		</form>
+		<input type="button" value="<?php echo $TEXT['CANCEL'] ?>" onclick="javascript: window.location = 'index.php';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+

Property changes on: tags/2.7.0/wb/modules/menu_link/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/NO.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  NORWEGIAN LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT']			= 'Klikk HER for &aring; komme til hovedsiden';
+$MOD_MENU_LINK['EXTERNAL_LINK']	= 'Ekstern lenke';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/RU.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT']				= '&#1053;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1079;&#1076;&#1077;&#1089;&#1100; &#1076;&#1083;&#1103; &#1087;&#1077;&#1088;&#1077;&#1093;&#1086;&#1076;&#1072; &#1085;&#1072; &#1075;&#1083;&#1072;&#1074;&#1085;&#1091;&#1102;';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = '&#1042;&#1085;&#1077;&#1096;&#1085;&#1103;&#1103; &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/NL.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT']				= 'Klik HIER om naar de hoofdpagina te gaan';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = 'Externe Link';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/EN.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MENU_LINK['TEXT']				= 'Click HERE to go to the main page';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = 'External Link';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/DE.php	(revision 838)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: MENU_LINK
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description 	= 'Dieses Modul erm&ouml;glicht die Anzeige eines Links im Seitenmen&uuml;.';
+
+// Ueberschriften und Textausgaben
+$MOD_MENU_LINK['TEXT']				= 'Klicken Sie HIER um zur Startseite zu gelangen';
+$MOD_MENU_LINK['EXTERNAL_LINK'] = 'Entfernte Adresse';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/add.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/add.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accesses directly
+if(defined('WB_PATH') == false) {
+	exit("Cannot access this file directly"); 
+}
+
+$table = TABLE_PREFIX ."mod_menu_link";
+$database->query("INSERT INTO `$table` (`page_id`, `section_id`, `target_page_id`, `anchor`, `extern`) VALUES ('$page_id', '$section_id', '0', '0', '')");
+
+?>

Property changes on: tags/2.7.0/wb/modules/menu_link/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/save.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/save.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/save.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Update id, anchor and target
+if(isset($_POST['page_link'])) {
+	$foreign_page_id = $admin->add_slashes($_POST['page_link']);
+	$page_target = $admin->add_slashes($_POST['page_target']);
+	$url_target = $admin->add_slashes($_POST['target']);
+	if(isset($_POST['extern']))
+		$extern = $admin->add_slashes($_POST['extern']);
+	else
+		$extern='';
+
+	$table_pages = TABLE_PREFIX.'pages';
+	$table_mod = TABLE_PREFIX.'mod_menu_link';
+	$database->query("UPDATE $table_pages SET target = '$url_target' WHERE page_id = '$page_id'");
+	$database->query("UPDATE $table_mod SET target_page_id = '$foreign_page_id', anchor = '$page_target', extern = '$extern' WHERE page_id = '$page_id'");
+}
+
+// Check if there is a database error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), $js_back);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/install.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/install.php	(revision 838)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(defined('WB_PATH') == false) {
+	exit("Cannot access this file directly"); 
+}
+
+$table = TABLE_PREFIX ."mod_menu_link";
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("
+	CREATE TABLE `$table` (
+		`section_id` INT(11) NOT NULL DEFAULT '0',
+		`page_id` INT(11) NOT NULL DEFAULT '0',
+		`target_page_id` INT(11) NOT NULL DEFAULT '0',
+		`anchor` VARCHAR(255) NOT NULL DEFAULT '0' ,
+		`extern` VARCHAR(255) NOT NULL DEFAULT '' ,
+		PRIMARY KEY (`section_id`)
+	)
+");
+
+?>

Property changes on: tags/2.7.0/wb/modules/menu_link/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/view.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/view.php	(revision 838)
@@ -0,0 +1,43 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+Since there is nothing to show and users shouldn't really know this
+page exists, we might as well give them a link to the home page.
+*/
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/menu_link/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/menu_link/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/menu_link/languages/'.LANGUAGE .'.php');
+}
+
+?>
+<a href="<?php echo WB_URL; ?>">
+<?php echo $MOD_MENU_LINK['TEXT']; ?>
+</a>

Property changes on: tags/2.7.0/wb/modules/menu_link/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/info.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/info.php	(revision 838)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/* History:
+2.7 - 24. Jan. 2008 - doc
+- added language support, changed platform to 2.7
+
+2.6.1.1 - 16. Jan. 2008 - thorn
+- added table mod_menu_link
+- added install.php, delete.php, add.php
+- changed wb/index.php: redirect if page is menu_link
+- removed special-handling of menu_link in: admin/pages/settings2.php
+
+*/
+
+$module_directory = 'menu_link';
+$module_name = 'Menu Link';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich, thorn';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to insert a link into the menu.';
+
+?>

Property changes on: tags/2.7.0/wb/modules/menu_link/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/uninstall.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accesses directly
+if(defined('WB_PATH') == false) {
+	exit("Cannot access this file directly"); 
+}
+
+$table = TABLE_PREFIX ."mod_menu_link";
+$database->query("DROP TABLE `$table`");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/delete.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/delete.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accesses directly
+if(defined('WB_PATH') == false) {
+	exit("Cannot access this file directly"); 
+}
+
+$table = TABLE_PREFIX ."mod_menu_link";
+$database->query("DELETE FROM `$table` WHERE section_id = '$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/menu_link/index.php
===================================================================
--- tags/2.7.0/wb/modules/menu_link/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/menu_link/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/menu_link/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/info.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/info.php	(revision 838)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+    
+    THANKS
+    ======
+    Thanks to the following people:
+
+        Stuart Fraser
+          * Original request for a better menu system
+
+        Ezra Peisach
+          * Bug fixes
+
+        Thorn
+          * Added support for WB 2.7 multiple groups and publish by date
+    
+*/
+
+$module_directory = 'show_menu2';
+$module_name = 'show_menu2';
+$module_function = 'snippet';
+$module_version = '4.5';
+$module_platform = '2.6.x | 2.7.x';
+$module_author = 'Brodie Thiesfield';
+$module_license = 'GNU General Public License';
+$module_description = 'A code snippet for the Website Baker CMS providing a complete replacement for the builtin menu functions. See <a href="http://code.jellycan.com/show_menu2/" target="_blank">http://code.jellycan.com/show_menu2/</a> for details or view the <a href="' .WB_URL .'/modules/show_menu2/README" target="_blank">README</a> file.';
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/LICENCE
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/LICENCE	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/LICENCE	(revision 838)
@@ -0,0 +1,278 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
Index: tags/2.7.0/wb/modules/show_menu2/README_DE
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/README_DE	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/README_DE	(revision 838)
@@ -0,0 +1,478 @@
+// $Id$
+
+show_menu2, version 4.5
+=======================
+Ist ein Code-Snippet für das CMS Website Baker. Es stellt einen kompletten Ersatz für die eingebaute Menüfuntionalität zur Verfügung. Alle für die Erzeugung des Menüs erforderlichen Daten werden durch eine einzige Datenbankabfrage erzeugt. Durch umfangreiche Anpassungsmöglichkeiten des erzeugten HTML-Code können alle möglichen Menüarten (Listen, Breadcrumbs, Sitemaps, usw.) erzeugt werden.
+
+---
+Deutsche Übersetzung von BerndJM. Dies ist eine weitgehend direkte Übersetzung des englischen Originals. Bei Übersetzungs- oder Interpretationsfehlern, bitte eine Email an bjm@wwnw.de.
+---
+
+INSTALLATION
+============
+1. Die aktuelle Version von http://code.jellycan.com/show_menu2/ herunterladen.
+2. In das Admin-Backend der Website Baker Installation einlogen.
+3. Erweiterungen -> Module aufrufen.
+4. Wenn bereits eine frühere Version von show_menu2 installiert ist, diese über "Modul deinstallieren" auswählen und deinstallieren.
+5. Im Abschnitt "Modul installieren" das im Schritt 1 heruntergeladene zip-File auswählen und installieren.
+
+   
+BENUTZUNG VON SHOW_MENU2
+========================
+Um show_menu2 zu benutzen muss das verwendete Template an den Stellen modifiziert werden, an denen das Menü erscheinen soll. Bitte beachten: Wenn alte Menüaufrufe ersetzt werden, müssen unbedingt auch die entsprechenden neuen Parameter verwendet werden die show_menu2 benötigt.
+
+In den meisten Fällen genügt bereits der Standardaufruf ohne weitere Parameter von show_menu2. In diesem Fall werden die Vorgabewerte verwendet, dies erzeugt ein Menü das die aktuelle Seite und die Unterseiten der aktuellen Seite anzeigt:
+    
+	show_menu2();
+    
+Bitte beachten: der Aufruf von show_menu2 ist PHP und muss normalerweise in PHP-Codezeichen eingeschlossen werden (ausser der Aufruf erfolgt bereits innerhalb von PHP Code):
+
+    <?php show_menu2(); ?>
+
+Dieses Vorgabe Menü erzeugt bereits ein komplettes Menü auf Listenbasis mit etlichen Klassen, die eine leichte Formatierung mittels CSS ermöglichen. Es wird z.B. die Klasse "menu-current" zu dem <li> Tag des aktuellen Menüpunktes hinzugefügt, zusätzlich erhält jeder Menüpunkt der Unterpunkte enthält die Klasse "menu-expand". Dies erlaubt es sehr differenzierte CSS Regeln für die einzelnen Menüpunkte aufzustellen.
+Zum Beispiel:
+
+    li.menu-expand  { font-weight: bold; }
+    li.menu-current { background: red; }
+
+Im Abschnitt "HTML-Ausgabe" findet sich eine detaillierte Beschreibung welche Klassen welchem Element zugeordnet werden. Durch die Verwendung von verschiedenen Parametern bei dem show_menu2 Funktionsaufruf lassen sich auch recht umfangreiche und unterschiedliche Menüstrukturen erzeugen. Um beispielsweise nur Menüpunkte aus der obersten Ebene der Menüstruktur darzustellen, könnte man folgenden Aufruf verwenden:
+
+    show_menu2(0, SM2_ROOT, SM2_START);
+    
+Oder um beispielsweise bis zu zwei Unterebenen der aktuellen Seite anzuzeigen:
+
+    show_menu2(0, SM2_CURR+1, SM2_CURR+2);
+
+Es gibt jede Menge Möglichkeiten, um die unterschiedlichten Menüstrukturen zu erzeugen, zahlreiche Beispiele dazu findet man auf der Demo-Website: http://code.jellycan.com/sm2test/
+
+
+FUNKTION
+========
+Der komplette Aufruf und die Vorgabe Parameterwerte für show_menu2 sind wie folgt:
+
+    show_menu2(
+        $aMenu          = 0,
+        $aStart         = SM2_ROOT,
+        $aMaxLevel      = SM2_CURR+1,
+        $aFlags         = SM2_TRIM,
+        $aItemOpen      = '[li][a][menu_title]</a>',
+        $aItemClose     = '</li>',
+        $aMenuOpen      = '[ul]',
+        $aMenuClose     = '</ul>',
+        $aTopItemOpen   = false,
+        $aTopMenuOpen   = false
+        )
+
+Im Abschnitt "Parameter" findet sich eine detaillierte Beschreibung jedes einzelnen Parameters.
+Ab $aItemOpen kann jedem Parameter der Wert false übergeben werden um den jeweiligen Vorgabewert zu erhalten.
+Dies kann beispielsweise verwendet werden um eine nummerierte Liste zu erzeugen, während für die einzelnen Menüpunkte trotzdem die Vorgabewerte Verwendung finden:
+
+show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, false, false, '<ol>', '</ol>');
+
+Bitte beachten: bis einschliessich $aFlags müssen alle Parameter explizit übergeben werden!
+
+
+HTML-AUSGABE
+============
+Die HTML-Ausgabe hängt wesentlich davon ab, welche Parameter an die Funktion übergeben werden. Unabhängig davon werden nachfolgende Klassen grundsätzlich für jedes Menü verwendet, wobei einzelne Menüpunkte, wenn erforderlich, auch mehrere Klassen erhalten können.
+
+    KLAssE          ZUORDNUNG
+    ------------    -------------------------------------------------------
+    menu-top        Nur der erste Menüpunkt
+    menu-parent     Jeder Hauptmenüpunkt.
+    menu-current    Nur der Menüpunkt der aktuellen Seite.
+    menu-sibling    Alle "Geschwister" der aktuellen Seite.
+    menu-child      Jedes Untermenü der aktuellen Seite.
+    menu-expand     Jedes Menü das Untermenüs hat.
+    menu-first      Der erste Punkt eines jeden Menüs oder Untermenüs.
+    menu-last       Der letzte Punkt eines jeden Menüs oder Untermenüs.
+
+    Folgende Klassen werden nur hinzugefügt, wenn das SM2_NUMCLAss flag gesetzt ist:
+
+    menu-N          Jeder Menüpunkt, wobei das N für die ABSOLUTE Menütiefe, 
+		    beginnend bei 0, des jeweiligen Menüpunktes steht.
+                    Die oberste Ebene ist also immer menu-0, die nächste
+                    Ebene menu-1 usw.
+    menu-child-N    Jedes Untermenü der aktuellen Seiten, wobei das N für die
+                    RELATIVE Tiefe des Untermenüs, beginnend bei 0, steht.
+        
+Beispiel einer HTML-Ausgabe:
+
+<ul class="menu-top menu-0">
+  <li class="menu-0 menu-first">  ... </li>
+  <li class="menu-0 menu-expand menu-parent">  ...
+  <ul class="menu-1">
+    <li class="menu-1 menu-expand menu-first">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-first">  ...
+      <li class="menu-2 menu-last">  ...
+    </ul>
+    </li>
+    <li class="menu-1 menu-expand menu-parent">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-expand menu-current menu-first">  ...      ** CURRENT PAGE **
+      <ul class="menu-3">
+        <li class="menu-3 menu-child menu-child-0 menu-first">  ...
+        <ul class="menu-4">
+          <li class="menu-4 menu-child menu-child-1 menu-first">  ... </li>
+          <li class="menu-4 menu-child menu-child-1 menu-last">  ... </li>
+        </ul>
+        </li>
+        <li class="menu-3 menu-child menu-child-0 menu-last">  ... </li>
+      </ul>
+      </li>
+      <li class="menu-2 menu-sibling menu-last">  ... </li>
+    </ul>
+    </li>
+    <li class="menu-1">  ... </li>
+    <li class="menu-1 menu-expand menu-last">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-first menu-last">  ... </li>
+    </ul>
+    </li>
+  </ul>
+  </li>
+  <li class="menu-0 menu-last">  ... </li>
+</ul>
+
+
+PARAMETER
+=========
+$aMenu      
+    Nummer des Menüs. Dies ist nützlich um mehrere Menüs auf einer Seite zu verwenden.
+    Menü Nummer 0 ist das Vorgabemenü der aktuellen Seite, SM2_ALLMENU gibt alle
+    im System verwendeten Menüs zurück.
+
+$aStart  
+    Gibt an, ab welcher Ebene die Erzeugung des Menüs beginnen soll. In den meisten
+    Fällen wird dies die oberste Ebene des anzuzeigenden Menüs sein. Es kann einer
+    der folgenden Werte verwendet werden:
+
+        SM2_ROOT+N  Beginnt N Ebenen unterhalb der obersten Ebene, z.B.:
+                      SM2_ROOT      Beginnt auf der obersten Ebene
+                      SM2_ROOT+1    Beginnt eine Ebene unterhalbe der obersten Ebene
+                      SM2_ROOT+2    Beginnt zwei Ebenen unterhalbe der obersten Ebene
+
+        SM2_CURR+N  Beginnt N Ebenen unterhalb der aktuellen Ebene, z.B.:
+                      SM2_CURR      Beginnt auf der aktuellen Ebene. Alle Geschwister
+                                    der aktuellen Ebene
+                      SM2_CURR+1    Beginnt eine Ebene unterhalb der aktuellen Ebene
+                                    mit allen Unterebenen
+
+        page_id     Verwendet die Seite mit der angegebenen page id als Elternelement.
+                    Alle Untermenüs dieser Seite werden angezeigt. (Die page id kann
+                    ermittelt werden, wenn man die Seite im Admin-Backend editiert,
+		    sie steht dann in der Adresszeile des Browsers:
+		    http://SITE/admin/pages/modify.php?page_id=35
+
+$aMaxLevel   
+    Die maximale Anzahl der Ebenen die angezeigt werden, die Anzeige
+    beginnt ab der in $aStart festgelegten Ebene bis hin zu der hier 
+    festgelegten Ebene.
+        
+	SM2_ALL      Keine Beschränkung, alle Ebenen werden angezeigt
+
+        SM2_CURR+N   Zeigt immer die aktuelle Seite + N Ebenen. 
+                        SM2_CURR      Aktuelle Ebene (keine Unterebene)
+                        SM2_CURR+3    Alle übergeordneten + aktuelle + 3 Unterebenen
+
+        SM2_START+N  Beginnt immer auf der Startebene + N Ebenen.
+                     Die Ebenen werden unabhängig davon angezeigt 
+                     auf welcher Ebene sich die aktuelle Seite befindet.
+		        SM2_START     Eine einzelne Ebene ab der Startebene
+                        SM2_START+1   Startebene + eine Ebene darunter
+
+        SM2_MAX+N    Zeigt höchstens N Ebenen ab der Startebene.
+                     Ebenen unterhalb der aktuellen Ebene werden nicht angezeigt.
+			SM2_MAX       Starting level only (same as SM2_START)
+                        SM2_MAX+1     Maximum of starting level and 1 level.
+
+$aFlags   
+    Spezielle Flags für verschiedene Menügenerierungs Optionen. Sie können mittels
+    einer ODER Verknüpfung (|) miteinander kombiniert werden. Um beispielsweise
+    sowohl TRIM als auch PRETTY zu definieren, verwendet man: SM2_TRIM|SM2_PRETTY.
+
+    GROUP 1
+    -------
+    Aus dieser Gruppe muss stets genau ein Flag angegeben werden. Diese Flags
+    bestimmen auf welche Weise die Geschwisterelemente im Menübaum in der
+    Ausgabe unterdrückt werden.
+    
+    SM2_ALL         Zeigt alle Zweige des Menübaums
+                        A-1 -> B-1 
+                            -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+                        A-2 -> B-3
+                            -> B-4
+
+    SM2_TRIM        Zeigt alle Geschwistermenüs der Seite im aktuellen Pfad.
+                    Alle Untermenüs von Elemnten die sich nicht im Pfad befinden
+                    werden entfernt.
+                        A-1 -> B-1 
+                            -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+                        A-2 
+
+    SM2_CRUMB       Zeigt den Breadcrumb Pfad des Menüs an, also den aktuellen
+                    Menüpunkt sowie alle Menüpunkte die dorthin führen.
+                        A-1 -> B-2 -> C-2 (CURRENT)
+
+    SM2_SIBLING     Wie SM2_TRIM, es werden aber nur Geschwistermenüs der aktuellen
+                    Seite angezeigt. Alle anderen Punkte werden unterdrückt.
+                        A-1 -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+
+    GROUP 2
+    -------
+    Diese Flags sind optional, sie können in beliebiger Anzahl kombiniert werden.
+
+    SM2_NUMCLAss    Fügt die nummerierten Menüklassen "menu-N" und 
+                    "menu-child-N hinzu.
+        
+    SM2_ALLINFO     Lädt alle Felder aus der Seitentabelle der Datenbank.
+                    Dies verursacht einen ziemlich hohen Speicherverbauch und sollte
+                    deshalb nur mit Bedacht verwendet werden.
+                    Dadurch werden z.B. die Keywords, die Seitenbeschreibung sowie
+                    all die anderen Informationen verfügbar, die normalerweise nicht
+                    geladen werden.
+                    Bitte beachten: dieses Flag muss beim ERSTEN Aufruf von schow_menu2
+                    für die jeweilige Menü ID verwendet werden, oder in Verbindung
+                    mit SM2_NOCACHE, sonst zeigt es keine Wirkung.
+    
+    SM2_NOCACHE     Die aus der Datenbank gelesenen Daten werden bei erneutem Aufruf von
+                    show_menu2 nicht wiederverwendet sondern erneut aus der Datenbank gelesen.
+    
+    SM2_PRETTY      Bringt die HTML-Ausgabe des Menüs mittels Leerzeichen und
+                    Zeilenumbrüchen in eine gut lesbare Form. Dies ist besonders nützlich
+                    beim Debuggen der Menüausgabe.
+    
+    SM2_BUFFER      Gibt den HTML-Code nicht direkt aus, sondern speichert ihn intern
+                    zwischen und gibt ihn al kompletten String aus.
+    
+    SM2_CURRTREE    Schliesst alle anderen Toplevelmenüs von der Betrachtung aus.
+                    Es werden nur Menüpunkte des aktuellen Menüzweiges dargestellt.
+                    Dieses Flag kann bei Bedarf mit jedem flag aus der Gruppe 1
+                    kombiniert werden.
+    
+    SM2_ESCAPE      Wendet htmlspecialchars auf den Menüstring an.
+                    Dies kann bei älteren Websitebaker Installationen erforderlich
+                    sein um eine valide HTML Ausgabe zu erzeugen.
+                        
+    SM2_NOESCAPE    Dies ist das Standarverhalten und existiert nur aus Gründen der 
+                    Abwärtskompatibiltät.                   
+
+$aItemOpen
+    Dies legt den Formatstring fest, mit dem jeder einzelne Menüeintrag begonnen
+    wird. Für den allerersten Menüeintrag kann mittels $aTopItemOpen ein anderer
+    Formatstring definiert werden.
+    Wenn dieser Parameter auf false gesetzt wird, wird der Vorgabe Formatstring
+    '[li][a][menu_title]</a>' verwendet um die Kompatibiltät zur Website Baker
+    Standardfunktion show_menu() zu gewährleiten.
+    Da die Formatierung mittels CSS-Klassen oftmals einfacher ist, wenn sie auf den 
+    <a> Tag angewendet werden, empfiehlt es sich hier folgenden Formatstring zu
+    verwenden: '<li>[ac][menu_title]</a>'.
+    
+    Dieser Parameter kann auch als Instanz eine Formatierungklasse für das Menü
+    verwendet werden. Im Abschnitt "Formatter" findet sich dazu eine detailierte 
+    Beschreibung. Wenn hier ein Formatter angegeben wird, werden alle Argumente
+    nach $aItenOpen ignoriert.
+
+$aItemClose
+    Dieser String schliesst jeden Menüpunkt ab. 
+    Bitte beachten: dies ist kein Formatstring und es werden keine Schlüsselworte
+    ersetzt!
+    Wenn dieser Parameter auf false gesetzt ist, wird die Vorgabe '</li>' verwendet.
+    
+$aMenuOpen
+    Mit diesem Formatstring wird eine Liste von Menüeinträgen geöffnet. Für das erste
+    Menü kann mittels $aTopMenuOpen ein davon abweichender Formatstring definiert
+    werden.
+    Wenn dieser Parameter auf false gesetzt ist wird der Vorgabewert '[ul]'
+    verwendet.
+    
+$aMenuClose
+    Dieser String schliesst jedes Menü ab. 
+    Bitte beachten: dies ist kein Formatstring und es werden keine Schlüsselworte
+    ersetzt!
+    Wenn dieser Parameter auf false gesetzt ist, wird die Vorgabe '</ul>' verwendet.
+
+$aTopItemOpen
+    Der Formatstring für den allerersten Menüpunkt. Wenn dieser Parameter auf false
+    gesetzt wird, wird der selbe Formatstring wie bei $aItemOpen verwendet.
+
+$aTopMenuOpen 
+    Der Formatstring für das erste Menü. Wenn dieser Parameter auf false
+    gesetzt wird, wird der selbe Formatstring wie bei $aMenuOpen verwendet.
+
+
+FORMAT STRINGS
+==============
+Die folgenden Tags können in den Formatstrings für $aItemOpen und $aMenuOpen
+verwendet werden und werden durch den entsprechenden Text ersetzt.
+
+[a]             <a> tag ohne Klasse:   '<a href="[url]" target="[target]">'
+[ac]            <a> tag mit Klasse:    '<a href="[url]" target="[target]" class="[class]">'
+[li]            <li> tag mit Klasse:   '<li class="[class]">'
+[ul]            <ul> tag mit Klasse:   '<ul class="[class]">'
+[class]         Liste der Klassen für diese Seite
+[menu_title]    Text des Menütitel (HTML entity escaped ausser das SM2_NOESCAPE Flag ist gesetzt)
+[page_title]    text des Seitentitel (HTML entity escaped ausser das SM2_NOESCAPE Flag ist gesetzt)
+[url]           die URL der Seiten für den <a> tag
+[target]        das Seitenziel für den <a> tag
+[page_id]       die Page ID des aktuellen Menüpunktes
+[parent]        die Page ID des übergeorneten Menüpunktes
+[level]         die Seitenebene, dies ist die gleiche Zahl die im "menu-N" CSS tag verwendet wird.
+[sib]           Anzahl der Geschwister des aktuellen Menüpunktes
+[sibCount]      Anzahl aller Geschwister in diesem Menü
+[if]            Bedingung (Details hierzu im Abschnitt "Bedingte Formatierung')
+
+Folgende tags sind nur verfügbar, wenn das SM2_ALLINFO flag gesetzt ist.
+
+[description]   Seitenbeschreibung
+[keywords]      Schlüsselworte der Seite
+
+
+BEDINGTE FORMATIERUNG
+=====================
+Die Anweisung für eine bedingte Formatierung kann eine der folgenden Formen haben:
+
+    [if(A){B}]
+    [if(A){B}else{C}]
+    
+    A   Die Bedingung. Details dazu, siehe unten.
+    
+    B   Der Ausdruck der verwendet wird, wenn die Bedingung erfüllt ist.
+        Dies kann ein beliebiger String sein, der jedoch nicht das Zeichen '}'
+        enthalten darf. Er kann jeden beliebigen Formatstring aus dem Abschnitt
+        'Format Strings' enthalten, jedoch keinen weiteren Bedingungstest (da das 
+        Zeichen '}' nicht erlaubt ist).
+    
+    C   Der Ausdruck der verwendet wird, wenn die Bedingung nicht erfüllt ist.
+        Dies kann ein beliebiger String sein, der jedoch nicht das zeichen '}'
+        enthalten darf. Er kann jeden beliebigen Formatstring aus dem Abschnitt
+        'Format Strings' enthalten, jedoch keinen weiteren Bedingungstest (da das 
+        Zeichen '}' nicht erlaubt ist).
+
+Die Bedingung ist eine Kombination von einem oder mehreren boolschen Vergleichen.
+Wenn mehr als ein Vergleich erforderlich ist, so muss dieser mit den anderen Vergleichen
+mittels || (boolsches oder - OR) oder && (boolsches und - AND) vernüpft werden.    
+
+Ein einzelner Vergleich besteht aus dem linken Operanden, dem Operator und dem rechten Operanden.
+z.B. X == Y  - hierbei ist X der linke Operand, == der Operator und Y der rechte Operand.
+    
+    Linker Operand. Muss eines der folgende Schlüsselworte sein:
+        class       Überprüfung ob diese Klasse existiert. Es sind nur die
+                    "==" and "!=" Operatoren erlaubt. In diesem Fall haben die Operatoren
+                    die Bedeutung von "enthält" bzw. "enthält nicht" an Stelle von
+                    "ist gleich" bzw. "ist nicht gleich"
+        level       Überprüfung der Seitenebene.
+        sib         Überprüfung der Geschwisteranzahl der aktuellen Seite.
+        sibCount    Überprüfung der Geamtanzahl der Geschwister im aktuellen Menü.
+        id          Überprüfung der page id.
+    
+    Operator. Muss einer der folgenden sein:
+        <           Kleiner als
+        <=          Kleiner oder gleich als
+        ==          Gleich
+        !=          Nicht gleich
+        >=          Grössr oder gleich als
+        >           grösser als
+    
+    Rechter Operand. Die Art dieses Operanden hängt von dem, für den linken Operanden
+                     verwendeten Schlüsselwort ab.
+        class       einer der "menu-*" Klassennamen wie sie im Abschnitt "Ausgabe"
+                    spezifiziert sind.
+        level       Überprüfung der Seitenebene gegen folgende Werte:
+                      <number>  die absolute Seitenebene
+                      root      die oberste Seitenebene
+                      granny    die Seitenebene über der übergeordneten Seitenebene
+                      parent    die übergeordnete Seitenebene
+                      current   die aktuelle Seitenebene
+                      child     die untergeornete Seitenebene
+        id          Überprüfung der page id gegen folgende Werte:
+                      <number>  die absolute page id
+                      parent    die übergeordnete page id
+                      current   die aktuelle page id
+        sib         Eine positive Integerzahl, oder "sibCount" um die Anzahl der
+                    Geschwister in diesem Menü zu überprüfen
+        sibCount    Eine positive Integerzahl
+        
+Folgende Beispiele ergeben "wahr" und der Ausdruck {exp} wird ausgeführt, wenn zutrifft:
+    
+    [if(class==menu-expand){exp}]   hat ein Untermenü
+    [if(class==menu-first){exp}]    ist der erste Eintrag in einem Menü
+    [if(class!=menu-first){exp}]    ist NICHT der erste Eintrag in einem Menü
+    [if(class==menu-last){exp}]     ist der letzte Eintrag in einem Menü
+    [if(level==0){exp}]             befindet sich auf der obersten Ebene
+    [if(level>0){exp}]              befindet sich NICHT auf der obersten Ebene
+    [if(sib==2){exp}]               ist der zweite Eintrag in einem Menü
+    [if(sibCount>1){exp}]           ist in einem Menü mit mehr als einem Eintrag
+    [if(sibCount!=2){exp}]          ist in einem Menü, das nicht genau 2 Einträge hat
+    [if(level>parent){exp}]         ist ine eine Geschwistermenü oder dem Untermenü eines Geschwistermenüs
+    [if(id==parent){exp}]           ist der übergeordnete Punkt der aktuellen id
+
+Wenn eine sonst-Klausel (else) hinzugefügt wird, so wird diese in allen anderen Fällen ausgeführt.
+Zum Beispiel wird "foo" immer dann ausgeführt, wenn die if Überprüfung falsch ergibt, also:
+
+    [if(sib==2){exp}else{foo}]      ist NICHT der zweite Eintrag im Menü
+    [if(sibCount>2){exp}else{foo}]  ist NICHT in einem Menü mit mehr als zwei Einträgen
+
+Bei mehrfach Vergleichen wird der Ausdruck "exp" nur ausgeführt, wenn:
+
+    [if(sib == 1 || sib > 3){exp}]  ist der erste Eintrag ODER ist der vierte oder höhere Eintrag im Menü    
+               
+    [if(id == current && class == menu-expand){exp}  ist der aktuelle Eintrag UND hat Untermenüs
+        
+Bitte beachten:
+Alle Überprüfungen werden in der Reihenfolge ausgeführt, in der sie notiert sind, denn:
+* es findet keine Überprüfung auf evtl. Schleifen statt (alle Überprüfungen werden immer ausgeführt)
+* Überprüfungen werden nicht gruppiert (eine Klammerung von Überprüfungen wird nicht unterstützt)
+* sowohl || als auch && haben die gleiche Wertigkeit
+
+FORMATTER
+=========
+Achtung: dies ist ein fortgeschrittenes und äusserst selten benötigtes Feature!
+
+Mit umfangreichen Kenntnissen in der PHP Programmierung ist es möglich den vordefinierten
+Formatierer von show_menu2 mit einem eigenen zu ersetzen.
+In der include.php von show_menu2 sieht man wie der Formatierer geschreiben werden muss.
+Die API die verwendet werden muss sieht wie folgt aus:
+
+(Anmerkung des Übersetzers: Kommentare nicht übersetzt, wer sich so weit vorwagt, sollte
+damit keine Probleme haben ;-)
+
+class SM2_Formatter
+{
+    // called once before any menu is processed to allow object initialization
+    function initialize() { }
+    
+    // called to open the menu list
+    function startList($aPage, $aUrl) { }
+    
+    // called to open the menu item
+    function startItem($aPage, $aUrl, $aCurrSib, $aSibCount) { }
+    
+    // called to close the menu item
+    function finishItem() { }
+    
+    // called to close the menu list
+    function finishList() { }
+    
+    // called once after all menu has been processed to allow object finalization
+    function finalize() { }
+    
+    // called once after finalize() if the SM2_NOOUTPUT flag is used
+    function getOutput() { }
+};
+
+
+

Property changes on: tags/2.7.0/wb/modules/show_menu2/README_DE
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/languages/index.php	(revision 838)
@@ -0,0 +1,27 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/languages/DE.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul integriert die erweiterte Men&uuml;funktion <code>show_menu2()</code> in Website Baker. Detailierte Informationen gibt es auf <a href="http://code.jellycan.com/show_menu2/" target="_blank">http://code.jellycan.com/show_menu2/</a> oder in der <a href="{WB_URL}/modules/show_menu2/README_DE" target="_blank">README</a> Datei.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/include.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/include.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/include.php	(revision 838)
@@ -0,0 +1,770 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+
+    ***********************************************
+    ** Version 4.5: see README for documentation **
+    ***********************************************
+*/
+
+define('SM2_ROOT',       -1000);
+define('SM2_CURR',       -2000);
+define('SM2_ALLMENU',       -1);
+define('SM2_START',       1000);
+define('SM2_MAX',         2000);
+define('SM2_ALL',       0x0001); // bit 0 (group 1) (Note: also used for max level!)
+define('SM2_TRIM',      0x0002); // bit 1 (group 1)
+define('SM2_CRUMB',     0x0004); // bit 2 (group 1)
+define('SM2_SIBLING',   0x0008); // bit 3 (group 1)
+define('SM2_NUMCLASS',  0x0010); // bit 4
+define('SM2_ALLINFO',   0x0020); // bit 5
+define('SM2_NOCACHE',   0x0040); // bit 6
+define('SM2_PRETTY',    0x0080); // bit 7
+define('SM2_ESCAPE',    0x0100); // bit 8
+define('SM2_NOESCAPE',       0); // NOOP, unnecessary with WB 2.6.7+
+define('SM2_BUFFER',    0x0200); // bit 9
+define('SM2_CURRTREE',  0x0400); // bit 10
+
+define('_SM2_GROUP_1',  0x000F); // exactly one flag from group 1 is required
+
+
+// Implement support for page_menu and show_menu using show_menu2. If you remove
+// the comments characters from the beginning of the following include, all menu
+// functions in Website Baker will be implemented using show_menu2. While it is
+// commented out, the original WB functions will be used.
+//include('legacy.php');
+
+// This class is the default menu formatter for sm2. If desired, you can 
+// create your own formatter class and pass the object into show_menu2 
+// as $aItemFormat.
+define('SM2_CONDITIONAL','if\s*\(([^\)]+)\)\s*{([^}]*)}\s*(?:else\s*{([^}]*)}\s*)?');
+define('SM2_COND_TERM','\s*(\w+)\s*(<|<=|==|=|=>|>|!=)\s*([\w\-]+)\s*');
+class SM2_Formatter
+{
+    var $output;
+    var $flags;
+    var $itemOpen;
+    var $itemClose;
+    var $menuOpen;
+    var $menuClose;
+    var $topItemOpen;
+    var $topMenuOpen;
+    
+    var $isFirst;
+    var $page;
+    var $url;
+    var $currSib;
+    var $sibCount;
+    var $currClass;
+    var $prettyLevel;
+
+    // output the data
+    function output($aString) {
+        if ($this->flags & SM2_BUFFER) {
+            $this->output .= $aString;
+        }
+        else {
+            echo $aString;
+        }
+    }
+    
+    // set the default values for all of our formatting items
+    function set($aFlags, $aItemOpen, $aItemClose, $aMenuOpen, $aMenuClose, $aTopItemOpen, $aTopMenuOpen) {
+        $this->flags        = $aFlags;
+        $this->itemOpen     = is_string($aItemOpen)    ? $aItemOpen    : '[li][a][menu_title]</a>';
+        $this->itemClose    = is_string($aItemClose)   ? $aItemClose   : '</li>';
+        $this->menuOpen     = is_string($aMenuOpen)    ? $aMenuOpen    : '[ul]';
+        $this->menuClose    = is_string($aMenuClose)   ? $aMenuClose   : '</ul>';
+        $this->topItemOpen  = is_string($aTopItemOpen) ? $aTopItemOpen : $this->itemOpen;
+        $this->topMenuOpen  = is_string($aTopMenuOpen) ? $aTopMenuOpen : $this->menuOpen;
+    }
+
+    // initialize the state of the formatter before anything is output
+    function initialize() {
+        $this->output = '';
+        $this->prettyLevel = 0;
+        if ($this->flags & SM2_PRETTY) {
+            $this->output("\n<!-- show_menu2 -->");
+        }
+    }
+
+    // start a menu     
+    function startList(&$aPage, &$aUrl) {
+        $currClass = '';
+        $currItem = $this->menuOpen;
+        
+        // use the top level menu open if this is the first menu
+        if ($this->topMenuOpen) {
+            $currItem = $this->topMenuOpen;
+            $currClass .= ' menu-top';
+            $this->topMenuOpen = false;
+        }
+        
+        // add the numbered menu class only if requested
+        if (($this->flags & SM2_NUMCLASS) == SM2_NUMCLASS) {
+            $currClass .= ' menu-'.$aPage['level'];
+        }
+        
+        $this->prettyLevel += 1;
+        
+        // replace all keywords in the output
+        if ($this->flags & SM2_PRETTY) {
+            $this->output("\n".str_repeat(' ',$this->prettyLevel).
+                $this->format($aPage, $aUrl, $currItem, $currClass));
+        }
+        else {
+            $this->output($this->format($aPage, $aUrl, $currItem, $currClass));
+        }
+        
+        $this->prettyLevel += 3;
+    }
+    
+    // start an item within the menu
+    function startItem(&$aPage, &$aUrl, $aCurrSib, $aSibCount) {
+        // generate our class list
+        $currClass = '';
+        if (($this->flags & SM2_NUMCLASS) == SM2_NUMCLASS) {
+            $currClass .= ' menu-'.$aPage['level'];
+        }
+        if (array_key_exists('sm2_has_child', $aPage)) {
+            // not set if false, so existence = true
+            $currClass .= ' menu-expand';
+        }
+        if ($aPage['page_id'] == PAGE_ID) {
+            $currClass .= ' menu-current';
+        }
+        elseif (array_key_exists('sm2_is_parent', $aPage)) { 
+            // not set if false, so existence = true
+            $currClass .= ' menu-parent';
+        }
+        elseif (array_key_exists('sm2_is_sibling', $aPage)) {
+            // not set if false, so existence = true
+            $currClass .= ' menu-sibling';
+        }
+        elseif (array_key_exists('sm2_child_level',$aPage)) {
+            // not set if not a child
+            $currClass .= ' menu-child';
+            if (($this->flags & SM2_NUMCLASS) == SM2_NUMCLASS) {
+                $currClass .= ' menu-child-'.($aPage['sm2_child_level']-1);
+            }
+        }
+        if ($aCurrSib == 1) {
+            $currClass .= ' menu-first';
+        }
+        if ($aCurrSib == $aSibCount) {
+            $currClass .= ' menu-last';
+        }
+
+        // use the top level item if this is the first item
+        $currItem = $this->itemOpen;
+        if ($this->topItemOpen) {
+            $currItem = $this->topItemOpen;
+            $this->topItemOpen = false;
+        }
+
+        // replace all keywords in the output
+        if ($this->flags & SM2_PRETTY) {
+            $this->output("\n".str_repeat(' ',$this->prettyLevel));
+        }
+        $this->output($this->format($aPage, $aUrl, $currItem, $currClass, $aCurrSib, $aSibCount));
+    }
+    
+    // find and replace all keywords, setting the state variables first
+    function format(&$aPage, &$aUrl, &$aCurrItem, &$aCurrClass, 
+        $aCurrSib = 0, $aSibCount = 0) 
+    {
+        $this->page      = &$aPage;
+        $this->url       = &$aUrl;
+        $this->currClass = trim($aCurrClass);
+        $this->currSib   = $aCurrSib;
+        $this->sibCount  = $aSibCount;
+        
+        $item = $this->format2($aCurrItem);
+        
+        unset($this->page);
+        unset($this->url);
+        unset($this->currClass);
+        
+        return $item;
+    }
+    
+    // find and replace all keywords
+    function format2(&$aCurrItem) {
+        if (!is_string($aCurrItem)) return '';
+        return preg_replace(
+            '@\[('.
+                'a|ac|/a|li|/li|ul|/ul|menu_title|page_title|url|target|page_id|'.
+                'parent|level|sib|sibCount|class|description|keywords|'.
+                SM2_CONDITIONAL.
+            ')\]@e', 
+            '$this->replace("\1")', $aCurrItem);
+    }
+    
+    // replace the keywords
+    function replace($aMatch) {
+        switch ($aMatch) {
+        case 'a':
+            return '<a href="'.$this->url.'" target="'.$this->page['target'].'">';
+        case 'ac':
+            return '<a href="'.$this->url.'" target="'.$this->page['target'].'" class="'.$this->currClass.'">';
+        case '/a':
+            return '</a>';
+        case 'li':
+            return '<li class="'.$this->currClass.'">';
+        case '/li':
+            return '</li>';
+        case 'ul':
+            return '<ul class="'.$this->currClass.'">';
+        case '/ul':
+            return '</ul>';
+        case 'url':
+            return $this->url;
+        case 'sib':
+            return $this->currSib;
+        case 'sibCount':
+            return $this->sibCount;
+        case 'class':
+            return $this->currClass;
+        default:
+            if (array_key_exists($aMatch, $this->page)) {
+                if ($this->flags & SM2_ESCAPE) {
+                    return htmlspecialchars($this->page[$aMatch], ENT_QUOTES);
+                }
+                else {
+                    return $this->page[$aMatch];
+                }
+            }
+            if (preg_match('/'.SM2_CONDITIONAL.'/', $aMatch, $rgMatches)) {
+                return $this->replaceIf($rgMatches[1], $rgMatches[2], $rgMatches[3]);
+            }
+        }
+        return "[$aMatch=UNKNOWN]";
+    }
+    
+    // conditional replacement
+    function replaceIf(&$aExpression, &$aIfValue, &$aElseValue) {
+        // evaluate all of the tests in the conditional (we don't do short-circuit
+        // evaluation) and replace the string test with the boolean result
+        $rgTests = preg_split('/(\|\||\&\&)/', $aExpression, -1, PREG_SPLIT_DELIM_CAPTURE);
+        for ($n = 0; $n < count($rgTests); $n += 2) {
+            if (preg_match('/'.SM2_COND_TERM.'/', $rgTests[$n], $rgMatches)) {
+                $rgTests[$n] = $this->ifTest($rgMatches[1], $rgMatches[2], $rgMatches[3]);
+            }
+            else {
+                error_log("show_menu2 error: conditional expression is invalid!");
+                $rgTests[$n] = false;
+            }
+        }
+
+        // combine all test results for a final result
+        $ok = $rgTests[0];
+        for ($n = 1; $n+1 < count($rgTests); $n += 2) {
+            if ($rgTests[$n] == '||') {
+                $ok = $ok || $rgTests[$n+1];
+            }
+            else {
+                $ok = $ok && $rgTests[$n+1];
+            }
+        }
+        
+        // return the formatted expression if the test succeeded
+        return $ok ? $this->format2($aIfValue) : $this->format2($aElseValue);
+    }
+
+    // conditional test
+    function ifTest(&$aKey, &$aOperator, &$aValue) {
+        global $wb;
+        
+        // find the correct operand
+        $operand = false;
+        switch($aKey) {
+        case 'class':
+            // we need to wrap the class names in spaces so we can test for a unique
+            // class name that will not match prefixes or suffixes. Same must be done
+            // for the value we are testing.
+            $operand = " $this->currClass "; 
+            break;
+        case 'sib':
+            $operand = $this->currSib;
+            if ($aValue == 'sibCount') {
+                $aValue = $this->sibCount;
+            }
+            break;
+        case 'sibCount':
+            $operand = $this->sibCount;
+            break;
+        case 'level':
+            $operand = $this->page['level'];
+            switch ($aValue) {
+            case 'root':    $aValue = 0; break;
+            case 'granny':  $aValue = $wb->page['level']-2; break;
+            case 'parent':  $aValue = $wb->page['level']-1; break;
+            case 'current': $aValue = $wb->page['level'];   break;
+            case 'child':   $aValue = $wb->page['level']+1; break;
+            }
+            if ($aValue < 0) $aValue = 0;
+            break;
+        case 'id':
+            $operand = $this->page['page_id'];
+            switch ($aValue) {
+            case 'parent':  $aValue = $wb->page['parent'];  break;
+            case 'current': $aValue = $wb->page['page_id']; break;
+            }
+            break;
+        default:
+            return '';
+        }
+
+        // do the test        
+        $ok = false;
+        switch ($aOperator) { 
+        case '<':
+            $ok = ($operand < $aValue); 
+            break;
+        case '<=':
+            $ok = ($operand <= $aValue); 
+            break;
+        case '=':
+        case '==':
+        case '!=':
+            if ($aKey == 'class') {
+                $ok = strstr($operand, " $aValue ") !== FALSE;
+            }
+            else {
+                $ok = ($operand == $aValue); 
+            }
+            if ($aOperator == '!=') {
+                $ok = !$ok;
+            }
+            break;
+        case '>=':
+            $ok = ($operand >= $aValue); 
+        case '>':
+            $ok = ($operand > $aValue); 
+        }
+        
+        return $ok;
+    }
+    
+    // finish the current menu item
+    function finishItem() {
+        if ($this->flags & SM2_PRETTY) {
+            $this->output(str_repeat(' ',$this->prettyLevel).$this->itemClose);
+        }
+        else {
+            $this->output($this->itemClose);
+        }
+    }
+    
+    // finish the current menu
+    function finishList() {
+        $this->prettyLevel -= 3;
+        
+        if ($this->flags & SM2_PRETTY) {
+            $this->output("\n".str_repeat(' ',$this->prettyLevel).$this->menuClose."\n");
+        }
+        else {
+            $this->output($this->menuClose);
+        }
+        
+        $this->prettyLevel -= 1;
+    }
+    
+    // cleanup the state of the formatter after everything has been output
+    function finalize() {
+        if ($this->flags & SM2_PRETTY) {
+            $this->output("\n");
+        }
+    }
+
+    // return the output
+    function getOutput() {
+        return $this->output;
+    }
+};
+
+function show_menu2(
+    $aMenu          = 0,
+    $aStart         = SM2_ROOT,
+    $aMaxLevel      = -1999, // SM2_CURR+1
+    $aFlags         = SM2_TRIM,
+    $aItemOpen      = false,
+    $aItemClose     = false,
+    $aMenuOpen      = false,
+    $aMenuClose     = false,
+    $aTopItemOpen   = false,
+    $aTopMenuOpen   = false
+    )
+{
+    global $wb;
+
+    // ensure we have our group 1 flag, we don't check for the "exactly 1" part, but 
+    // we do ensure that they provide at least one.
+    if (0 == ($aFlags & _SM2_GROUP_1)) {
+        error_log("show_menu2 error: no flags from group 1 supplied! Exactly one flag is required!");
+        $aFlags |= SM2_TRIM; // default to TRIM
+    }
+    
+    // fix up the menu number to default to the menu number
+    // of the current page if no menu has been supplied
+    if ($aMenu == 0) {
+        $aMenu = $wb->page['menu'] == '' ? 1 : $wb->page['menu'];
+    } 
+
+    // Set some of the $wb->page[] settings to defaults if not set
+    $pageLevel = $wb->page['level'] == '' ? 0 : $wb->page['level'];
+    $pageParent = $wb->page['parent'] == '' ? 0 : $wb->page['parent'];
+    
+    // adjust the start level and start page ID as necessary to
+    // handle the special values that can be passed in as $aStart
+    $aStartLevel = 0;
+    if ($aStart < SM2_ROOT) {   // SM2_CURR+N
+        if ($aStart == SM2_CURR) {
+            $aStartLevel = $pageLevel;
+            $aStart =  $pageParent;
+        }
+        else {
+            $aStartLevel = $pageLevel + $aStart - SM2_CURR;
+            $aStart = PAGE_ID; 
+        }
+    }
+    elseif ($aStart < 0) {   // SM2_ROOT+N
+        $aStartLevel = $aStart - SM2_ROOT;
+        $aStart = 0;
+    }
+
+    // we get the menu data once and store it in a global variable. This allows 
+    // multiple calls to show_menu2 in a single page with only a single call to 
+    // the database. If this variable exists, then we have already retrieved all
+    // of the information and processed it, so we don't need to do it again.
+    if (($aFlags & SM2_NOCACHE) != 0
+        || !array_key_exists('show_menu2_data', $GLOBALS) 
+        || !array_key_exists($aMenu, $GLOBALS['show_menu2_data'])) 
+    {
+        global $database;
+
+        // create an array of all parents of the current page. As the page_trail
+        // doesn't include the theoretical root element 0, we add it ourselves.
+        $rgCurrParents = split(',', '0,'.$wb->page['page_trail']);
+        array_pop($rgCurrParents); // remove the current page
+        $rgParent = array();
+
+        // if the caller wants all menus gathered together (e.g. for a sitemap)
+        // then we don't limit our SQL query
+        $menuLimitSql = ' AND menu = ' .$aMenu;
+        if ($aMenu == SM2_ALLMENU) {
+            $menuLimitSql = '';
+        }
+
+        // we only load the description and keywords if we have been told to,
+        // this cuts the memory load for pages that don't use them. Note that if
+        // we haven't been told to load these fields the *FIRST TIME* show_menu2
+        // is called (i.e. where the database is loaded) then the info won't
+        // exist anyhow.
+        $fields = 'parent,page_id,menu_title,page_title,link,target,level,visibility,viewing_groups';
+        if(version_compare(WB_VERSION, '2.7', '>=')) { // WB 2.7+
+            $fields .= ',viewing_users';
+        }
+        if ($aFlags & SM2_ALLINFO) {
+            $fields = '*';
+        }
+        
+        // get this once for performance. We really should be calling only need to
+        // call $wb->get_group_id() but that outputs a warning notice if the 
+        // groupid isn't set in the session, so we check it first here.
+        $currGroup = array_key_exists('GROUP_ID', $_SESSION) ? 
+            ','.$wb->get_group_id().',' : 'NOGROUP';
+        
+        // we request all matching rows from the database for the menu that we 
+        // are about to create it is cheaper for us to get everything we need 
+        // from the database once and create the menu from memory then make 
+        // multiple calls to the database. 
+        $sql = "SELECT $fields FROM ".TABLE_PREFIX.
+               "pages WHERE $wb->extra_where_sql $menuLimitSql ".
+               'ORDER BY level ASC, position ASC';
+        $oRowset = $database->query($sql);
+        if (is_object($oRowset) && $oRowset->numRows() > 0) {
+            // create an in memory array of the database data based on the item's parent. 
+            // The array stores all elements in the correct display order.
+            while ($page = $oRowset->fetchRow()) {
+				// ignore all pages that the current user is not permitted to view
+                if(version_compare(WB_VERSION, '2.7', '>=')) { // WB >= 2.7
+                    // 1. all pages with no active sections (unless it is the top page) are ignored
+                    if(!$wb->page_is_active($page) && $page['link'] != $wb->default_link && !INTRO_PAGE) {
+                      continue; 
+                    }
+                    // 2. all pages not visible to this user (unless always visible to registered users) are ignored
+                    if(!$wb->page_is_visible($page) && $page['visibility'] != 'registered') {
+                        continue;
+                    }
+
+                }
+                else {  // WB < 2.7
+                    // We can't do this in SQL as the viewing_groups column contains multiple 
+                    // values which are hard to process correctly in SQL. Essentially we add the
+                    // following limit to the SQL query above:
+                    //  (visibility <> "private" OR $wb->get_group_id() IN viewing_groups)
+                    if ($page['visibility'] == 'private' 
+                        && false === strstr(",{$page['viewing_groups']},", $currGroup)) 
+                    {
+                        continue;
+                    }
+                }
+
+                // ensure that we have an array entry in the table to add this to
+                $idx = $page['parent'];
+                if (!array_key_exists($idx, $rgParent)) {
+                    $rgParent[$idx] = array();
+                }
+
+                // mark our current page as being on the current path
+                if ($page['page_id'] == PAGE_ID) {
+                    $page['sm2_on_curr_path'] = true;
+                }
+
+                // mark parents of the current page as such
+                if (in_array($page['page_id'], $rgCurrParents)) {
+                    $page['sm2_is_parent'] = true;
+                    $page['sm2_on_curr_path'] = true;
+                }
+                
+                // add the entry to the array                
+                $rgParent[$idx][] = $page;
+            }
+        }    
+        unset($oRowset);
+
+        // mark all elements that are siblings of any element on the current path
+        foreach ($rgCurrParents as $x) {
+            if (array_key_exists($x, $rgParent)) {
+                foreach (array_keys($rgParent[$x]) as $y) {
+                    $mark =& $rgParent[$x][$y];
+                    $mark['sm2_path_sibling'] = true;
+                    unset($mark);
+                }
+            }
+        }
+
+        // mark all elements that have children and are siblings of the current page
+        $parentId = $pageParent;
+        foreach (array_keys($rgParent) as $x) {
+            $childSet =& $rgParent[$x];
+            foreach (array_keys($childSet) as $y) {
+                $mark =& $childSet[$y];
+                if (array_key_exists($mark['page_id'], $rgParent)) {
+                    $mark['sm2_has_child'] = true;
+                }
+                if ($mark['parent'] == $parentId && $mark['page_id'] != PAGE_ID) {
+                    $mark['sm2_is_sibling'] = true;
+                }
+                unset($mark);
+            }
+            unset($childSet);
+        }
+        
+        // mark all children of the current page. We don't do this when 
+        // PAGE_ID is 0, as 0 is the parent of everything. PAGE_ID == 0 
+        // occurs on special pages like search results.
+        if (PAGE_ID != 0) {
+            sm2_mark_children($rgParent, PAGE_ID, 1);
+        }
+        
+        // store the complete processed menu data as a global. We don't 
+        // need to read this from the database anymore regardless of how 
+        // many menus are displayed on the same page.
+        if (!array_key_exists('show_menu2_data', $GLOBALS)) {
+            $GLOBALS['show_menu2_data'] = array();
+        }
+        $GLOBALS['show_menu2_data'][$aMenu] =& $rgParent;
+        unset($rgParent);
+    }
+
+    // adjust $aMaxLevel to the level number of the final level that 
+    // will be displayed. That is, we display all levels <= aMaxLevel.
+    if ($aMaxLevel == SM2_ALL) {
+        $aMaxLevel = 1000;
+    }
+    elseif ($aMaxLevel < 0) {   // SM2_CURR+N
+        $aMaxLevel += $pageLevel - SM2_CURR;
+    }
+    elseif ($aMaxLevel >= SM2_MAX) { // SM2_MAX+N
+        $aMaxLevel += $aStartLevel - SM2_MAX;
+        if ($aMaxLevel > $pageLevel) {
+            $aMaxLevel = $pageLevel;
+        }
+    }
+    else {  // SM2_START+N
+        $aMaxLevel += $aStartLevel - SM2_START;
+    }
+
+    // generate the menu
+    $retval = false;
+    if (array_key_exists($aStart, $GLOBALS['show_menu2_data'][$aMenu])) {
+        $formatter = $aItemOpen;
+        if (!is_object($aItemOpen)) {
+            static $sm2formatter;
+            if (!isset($sm2formatter)) {
+                $sm2formatter = new SM2_Formatter;
+            }
+            $formatter = $sm2formatter;
+            $formatter->set($aFlags, $aItemOpen, $aItemClose, 
+                $aMenuOpen, $aMenuClose, $aTopItemOpen, $aTopMenuOpen);
+        }
+        
+        // display the menu
+        $formatter->initialize();
+        sm2_recurse(
+            $GLOBALS['show_menu2_data'][$aMenu],
+            $aStart,    // parent id to start displaying sub-menus
+            $aStartLevel, $aMaxLevel, $aFlags, 
+            $formatter);
+        $formatter->finalize();
+        
+        // if we are returning something, get the data
+        if (($aFlags & SM2_BUFFER) != 0) {
+            $retval = $formatter->getOutput();
+        }
+    }
+
+    // clear the data if we aren't caching it
+    if (($aFlags & SM2_NOCACHE) != 0) {
+        unset($GLOBALS['show_menu2_data'][$aMenu]);
+    }
+    
+    return $retval;
+}
+
+function sm2_mark_children(&$rgParent, $aStart, $aChildLevel)
+{
+    if (array_key_exists($aStart, $rgParent)) {
+        foreach (array_keys($rgParent[$aStart]) as $y) {
+            $mark =& $rgParent[$aStart][$y];
+            $mark['sm2_child_level'] = $aChildLevel;
+            $mark['sm2_on_curr_path'] = true;
+            sm2_mark_children($rgParent, $mark['page_id'], $aChildLevel+1);
+        }
+    }
+}
+
+function sm2_recurse(
+    &$rgParent, $aStart, 
+    $aStartLevel, $aMaxLevel, $aFlags, 
+    &$aFormatter
+    )
+{
+    global $wb;
+
+    // on entry to this function we know that there are entries for this 
+    // parent and all entries for that parent are being displayed. We also 
+    // need to check if any of the children need to be displayed too.
+    $isListOpen = false;
+    $currentLevel = $wb->page['level'] == '' ? 0 : $wb->page['level'];
+    
+    // get the number of siblings so we can check pass this and check if the 
+    // item is first or last
+    $sibCount = count($rgParent[$aStart]);
+    $currSib = 0;
+    foreach ($rgParent[$aStart] as $page) {
+        $currSib++;
+
+        // skip any elements that are lower than the maximum level
+        $pageLevel = $page['level'];
+        if ($pageLevel > $aMaxLevel) {
+            continue;
+        }
+        
+        // this affects ONLY the top level
+        if ($aStart == 0 && ($aFlags & SM2_CURRTREE)) {
+            if (!array_key_exists('sm2_on_curr_path', $page)) { // not set if false, so existence = true
+                continue;
+            }
+            $sibCount = 1;
+        }
+        
+        // trim the tree as appropriate
+        if ($aFlags & SM2_SIBLING) {
+            // parents, and siblings and children of current only
+            if (!array_key_exists('sm2_on_curr_path', $page)      // not set if false, so existence = true
+                && !array_key_exists('sm2_is_sibling', $page)     // not set if false, so existence = true
+                && !array_key_exists('sm2_child_level', $page)) { // not set if false, so existence = true
+                continue;
+            }
+        }
+        else if ($aFlags & SM2_TRIM) {
+            // parents and siblings of parents
+            if (!array_key_exists('sm2_on_curr_path', $page)    // not set if false, so existence = true
+                && !array_key_exists('sm2_path_sibling', $page)) {  // not set if false, so existence = true
+                continue;
+            }
+        }
+        elseif ($aFlags & SM2_CRUMB) {
+            // parents only
+            if (!array_key_exists('sm2_on_curr_path', $page)    // not set if false, so existence = true
+                || array_key_exists('sm2_child_level', $page)) {  // not set if false, so existence = true
+                continue;
+            }
+        }
+
+        // depth first traverse
+        $nextParent = $page['page_id'];
+
+        // display the current element if we have reached the start level
+        if ($pageLevel >= $aStartLevel) {
+            // massage the link into the correct form
+            if(!INTRO_PAGE && $page['link'] == $wb->default_link) {
+                $url = WB_URL;
+            }
+            else {
+                $url = $wb->page_link($page['link']);
+            }
+                    
+            // we open the list only when we absolutely need to
+            if (!$isListOpen) {
+                $aFormatter->startList($page, $url);
+                $isListOpen = true;
+            }
+
+            $aFormatter->startItem($page, $url, $currSib, $sibCount);
+        }
+        
+        // display children as appropriate
+        if ($pageLevel + 1 <= $aMaxLevel 
+            && array_key_exists('sm2_has_child', $page)) {  // not set if false, so existence = true
+            sm2_recurse(
+                $rgParent, $nextParent, // parent id to start displaying sub-menus
+                $aStartLevel, $aMaxLevel, $aFlags, 
+                $aFormatter);
+        }
+        
+        // close the current element if appropriate
+        if ($pageLevel >= $aStartLevel) {
+            $aFormatter->finishItem($pageLevel, $page);
+        }
+    }
+
+    // close the list if we opened one
+    if ($isListOpen) {
+        $aFormatter->finishList();
+    }
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/include.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/legacy.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/legacy.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/legacy.php	(revision 838)
@@ -0,0 +1,196 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+*/
+
+/*
+    This file provides backward compatibility between show_menu2 and the
+    old functions show_menu() and menu(). Note that it is highly recommended 
+    for you to update your templates to use show_menu2 directly.
+ */    
+
+/* ----------------------------------------------------------------------------
+   show_menu
+   
+ From: http://forum.websitebaker.org/index.php/topic,2251.msg13978.html#msg13978  
+ 
+ * By calling it multiple times, you can have one menu just
+ * showing the root level, one for the sub-pages, and so on
+ * The order of the arguments has been changed compared
+ * to the page_menu() function, so read carefully the list
+ * of arguments!
+ * To just display the standard menu, use
+ * <?php show_menu(); ?> within your template's html code.
+ * You don't normally need anymore than the first four arguments.
+ * Usual calls would be (inside php code!)
+ * show_menu(1,0,-1,false); - displays the complete page tree
+ * show_menu(1,1,1); - show only first sub level
+ * show_menu(1,1,-1); -    show an expanding/collapsing menu tree starting at level 1
+ * Have fun experimenting!
+ *
+ * Full list of arguments:
+ * 1. $menu_number:   With activitated "multiple menu" feature
+ *                  you can choose which menu will be displayed
+ *                  default: 1
+ * 2. $start_level: The depth level of the root of the displayed
+ *               menu tree. Defaults to '0', which is the top level.
+ *                  '1' will show all pages starting from the first sub level.
+ * 3. $recurse:     Gives the maximum number of levels to be displayed. Default
+ *                  is '-1' which means 'all'.
+ * 4. $collapse:    Specifies, whether the menu tree shall be
+ *               expandable/collapsible (if set to 'true')
+ *               or complete (all pages being displayed) if set to 'false'
+ * 5. $item_template: Gives the possibility to specify the html code that is
+ *                  displayed before displaying sub-pages
+ * 6. $item_footer: The html code to appear after sub-pages were displayed.
+ * 7. $menu_header: The html code to appear before the entire menu code and each
+ *               sub tree.
+ * 8. $menu_footer: The html code to appear after the entire menu code and each
+ *               sub tree.
+ * 9. $default_class: The (CSS) class of every menu item except the currently viewed page
+ * 10. $current_class: The class of the currently viewed page
+ * 11. $parent:    (used internally) The page_id of the menu's root node, defaults is '0' (root level)
+ */
+ 
+class SM2_ShowMenuFormatter
+{
+    var $output;
+    var $itemTemplate;
+    var $itemFooter;
+    var $menuHeader;
+    var $menuFooter;
+    var $defaultClass;
+    var $currentClass;
+    
+    function output($aString) {
+        if ($this->flags & SM2_BUFFER) {
+            $this->output .= $aString;
+        }
+        else {
+            echo $aString;
+        }
+    }
+    function initialize() { $this->output = ''; }
+    function startList($aPage, $aUrl) { 
+        echo $this->menuHeader;
+    }
+    function startItem($aPage, $aUrl, $aCurrSib, $aSibCount) { 
+        // determine the class string to use
+        $thisClass = $this->defaultClass;
+        if ($aPage['page_id'] == PAGE_ID) {
+            $thisClass = $this->currentClass;
+        }
+        
+        // format and display this item
+        $item = str_replace( 
+                array(
+                    '[a]','[/a]','[menu_title]','[page_title]','[url]',
+                    '[target]','[class]'
+                    ),
+                array(
+                    "<a href='$aUrl' target='".$aPage['target']."'>", '</a>',
+                    $aPage['menu_title'], $aPage['page_title'], $aUrl, 
+                    $aPage['target'], $thisClass
+                    ),
+                $this->itemTemplate);
+        echo $item;
+    }
+    function finishItem() { 
+        echo $this->itemFooter;
+    }
+    function finishList() { 
+        echo $this->menuFooter;
+    }
+    function finalize() { }
+    function getOutput() {
+        return $this->output;
+    }
+}
+
+function show_menu(
+    $aMenu          = 1, 
+    $aStartLevel    = 0, 
+    $aRecurse       = -1, 
+    $aCollapse      = true,
+    $aItemTemplate  = '<li><span[class]>[a][menu_title][/a]</span>',
+    $aItemFooter    = '</li>',
+    $aMenuHeader    = '<ul>',
+    $aMenuFooter    = '</ul>',
+    $aDefaultClass  = ' class="menu_default"',
+    $aCurrentClass  = ' class="menu_current"',
+    $aParent        = 0
+    )
+{
+    static $formatter;
+    if (!isset($formatter)) {
+        $formatter = new SM2_ShowMenuFormatter;
+    }
+    
+    $formatter->itemTemplate  = $aItemTemplate;
+    $formatter->itemFooter    = $aItemFooter;  
+    $formatter->menuHeader    = $aMenuHeader;  
+    $formatter->menuFooter    = $aMenuFooter;  
+    $formatter->defaultClass  = $aDefaultClass;
+    $formatter->currentClass  = $aCurrentClass;
+    
+    $start = SM2_ROOT + $aStartLevel;
+    if ($aParent != 0) {
+        $start = $aParent;
+    }
+
+    $maxLevel = 0;
+    if ($aRecurse == 0) {
+        return;
+    }
+    if ($aRecurse < 0) {
+        $maxLevel = SM2_ALL;
+    }
+    else {
+        $maxLevel = SM2_START + $aRecurse - 1;
+    }
+    
+    $flags = $aCollapse ? SM2_TRIM : SM2_ALL;
+    
+    // special case for default case
+    if ($aStartLevel == 0 && $aRecurse == -1 && $aCollapse) {
+        $maxLevel = SM2_CURR + 1;
+    }
+
+    show_menu2($aMenu, $start, $maxLevel, $flags, $formatter);
+}
+
+function page_menu(
+    $aParent = 0, 
+    $menu_number = 1, 
+    $item_template = '<li[class]>[a][menu_title][/a]</li>', 
+    $menu_header = '<ul>', 
+    $menu_footer = '</ul>', 
+    $default_class = ' class="menu_default"', 
+    $current_class = ' class="menu_current"', 
+    $recurse = LEVEL    // page['level']
+    ) 
+{
+    show_menu($menu_number, 0, $recurse+2, true, $item_template, '', 
+        $menu_header, $menu_footer, $default_class, $current_class, $aParent);
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/legacy.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/README
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/README	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/README	(revision 838)
@@ -0,0 +1,474 @@
+// $Id$
+
+show_menu2, version 4.5
+=======================
+A code snippet for the Website Baker CMS software. It provides a complete 
+replacement for the builtin menu functions. All menu data is retrieved using 
+a single database query, all types of menu styles (lists, breadcrums, sitemaps) 
+can be generated with extensive customisation of the resulting HTML.
+
+
+INSTALLATION
+============
+1. Download the latest version from http://code.jellycan.com/show_menu2/
+2. Log into your WebsiteBaker installation
+3. Go to Addons -> Modules
+4. If a previous version of show_menu2 is already installed, select it from
+   the "Uninstall Module" list and choose the "Uninstall" button.
+5. In the "Install Module" section, enter the path to the show_menu2 zip file
+   that you downloaded in step 1, and choose the "Install" button.
+   
+   
+USING SHOW_MENU2
+================
+You need to modify the PHP files of your template to call show_menu2 where you 
+wish to have the menu displayed. Remember when you replace calls to the old
+menu functions to use the new parameters that show_menu2 requires. 
+
+Often times the default menu generated by show_menu2 is all that you need.
+This menu shows the current page and children of the current page. It is
+generated by just calling show_menu2 with no parameters. For example:
+
+    show_menu2();
+    
+Note that the call to show_menu2 is PHP, so you usually need to wrap it in the
+PHP code brackets so that it will execute. Like this:
+
+    <?php show_menu2(); ?>
+
+This default menu generates a complete list based menu with many classes that
+allow easy CSS styling. For example, the current menu item will have the
+"menu-current" class added to the <li> tag. Additionally, every menu item with
+a sub-menu will have the "menu-expand" class added to the <li> tag. This allows 
+you to create CSS rules to style those menu items differently. For example:
+
+    li.menu-expand  { font-weight: bold; }
+    li.menu-current { background: red; }
+
+See the "Output" section for details of exactly what classes are added to each 
+element. More elaborate and different menu structures are able to be created by 
+supplying parameters to the show_menu2 function call. For example, to show only 
+menu items from the top level of the menu you use:
+
+    show_menu2(0, SM2_ROOT, SM2_START);
+    
+Alternatively, to show up to two levels of the child menus of the current page:
+
+    show_menu2(0, SM2_CURR+1, SM2_CURR+2);
+
+There are many more possible menus that can be generated by show_menu2. See the
+demonstration website at http://code.jellycan.com/sm2test/ for more examples. 
+
+
+FUNCTION
+========
+
+The complete call signature and default parameter value for show_menu2 is:
+
+    show_menu2(
+        $aMenu          = 0,
+        $aStart         = SM2_ROOT,
+        $aMaxLevel      = SM2_CURR+1,
+        $aFlags         = SM2_TRIM,
+        $aItemOpen      = '[li][a][menu_title]</a>',
+        $aItemClose     = '</li>',
+        $aMenuOpen      = '[ul]',
+        $aMenuClose     = '</ul>',
+        $aTopItemOpen   = false,
+        $aTopMenuOpen   = false
+        )
+
+See the "Parameters" section for detailed descriptions of each parameter.
+Note that every parameter from $aItemOpen onwards can be supplied as false
+in order to get the default value, this allows (for example) a numbered list
+to be used while still using the the default menu parameters for the items.
+Note that all parameters up to $aFlags need to be explicitly supplied.
+For example:
+
+show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, false, false, '<ol>', '</ol>');
+
+
+OUTPUT
+======
+The menu is output differently depending on what parameters have been 
+supplied to the function, however in general the following classes are used 
+for each menu. Note that items will have multiple classes when relevant.
+
+    CLASS           ATTACHED TO
+    ------------    -------------------------------------------------------
+    menu-top        First menu tag only
+    menu-parent     Every parent menu item of the current page.
+    menu-current    Only the menu item for the current page.
+    menu-sibling    Every sibling of the current page.
+    menu-child      Every sub-menu of the current page.
+    menu-expand     Every menu item with children.
+    menu-first      First item in any menu or sub-menu.
+    menu-last       Last item in any menu or sub-menu.
+
+    The following classes are added only if SM2_NUMCLASS flag has been used.
+
+    menu-N          Every menu item. The N is replaced with the ABSOLUTE 
+                    menu depth of the item starting with 0. The root level 
+                    menu is always menu-0, the next level is menu-1, etc.
+    menu-child-N    Every sub-menu of the current page, the N is replaced 
+                    with the relative depth of the submenu starting at 0.
+
+
+<ul class="menu-top menu-0">
+  <li class="menu-0 menu-first">  ... </li>
+  <li class="menu-0 menu-expand menu-parent">  ...
+  <ul class="menu-1">
+    <li class="menu-1 menu-expand menu-first">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-first">  ...
+      <li class="menu-2 menu-last">  ...
+    </ul>
+    </li>
+    <li class="menu-1 menu-expand menu-parent">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-expand menu-current menu-first">  ...      ** CURRENT PAGE **
+      <ul class="menu-3">
+        <li class="menu-3 menu-child menu-child-0 menu-first">  ...
+        <ul class="menu-4">
+          <li class="menu-4 menu-child menu-child-1 menu-first">  ... </li>
+          <li class="menu-4 menu-child menu-child-1 menu-last">  ... </li>
+        </ul>
+        </li>
+        <li class="menu-3 menu-child menu-child-0 menu-last">  ... </li>
+      </ul>
+      </li>
+      <li class="menu-2 menu-sibling menu-last">  ... </li>
+    </ul>
+    </li>
+    <li class="menu-1">  ... </li>
+    <li class="menu-1 menu-expand menu-last">  ...
+    <ul class="menu-2">
+      <li class="menu-2 menu-first menu-last">  ... </li>
+    </ul>
+    </li>
+  </ul>
+  </li>
+  <li class="menu-0 menu-last">  ... </li>
+</ul>
+
+
+
+PARAMETERS
+==========
+$aMenu      
+    Menu number to use. This is useful when you are using multiple menus. 
+    Supplying a menu number of 0 will use the default menu for the current 
+    page. Supplying SM2_ALLMENU will return all menus in the system.
+
+$aStart  
+    Specify where the menu generation should start from. This is most
+    times the parent item of the menu to display. It must be one of the 
+    following values:
+        SM2_ROOT+N  Start N levels down from the root. e.g.
+                      SM2_ROOT      Starting at the root menu 
+                      SM2_ROOT+1    Start 1 level below the root
+                      SM2_ROOT+2    Start 2 levels below the root
+        SM2_CURR+N  Start N levels down from the current page level. e.g.
+                      SM2_CURR      Starts at the current page level. All
+                                    sibling menus to the current page.
+                      SM2_CURR+1    Starts 1 level down from the current
+                                    page with the children menus.
+        page_id     Display using the specific page as the parent. All
+                    child menus of that page will be displayed. The 
+                    page_id can be found by editing the page in WB admin 
+                    interface. The page_id is included in the URL like: 
+                        http://SITE/admin/pages/modify.php?page_id=35
+
+$aMaxLevel   
+    Maximum menu level to display. Menus are displayed from the start
+    level down to this level.
+        SM2_ALL     No limit, all levels are displayed
+        SM2_CURR+N  Always show to the current page + N levels. 
+                      SM2_CURR      Current (no children)
+                      SM2_CURR+3    All parents + current + 3 children
+        SM2_START+N Always show from the starting level + N levels. The
+                    levels of menu will always be displayed regardless of
+                    what level the current page is.
+                      SM2_START     Single level of menus from starting level
+                      SM2_START+1   Starting level and 1 level down
+        SM2_MAX+N   Show at most N levels from the starting level. Levels 
+                    won't be shown if they are below the current level.
+                      SM2_MAX       Starting level only (same as SM2_START)
+                      SM2_MAX+1     Maximum of starting level and 1 level.
+
+$aFlags   
+    Specify flags for different generation options for the menu. The flags
+    may be combined together using bitwise OR (|). For example, to specify
+    both TRIM and PRETTY you should use, SM2_TRIM|SM2_PRETTY.
+
+    GROUP 1
+    -------
+    Exactly one flag from this group must always be supplied. These flags 
+    affect how the siblings in the tree are removed from the output. 
+
+    SM2_ALL         Show all branches of the menu tree
+                        A-1 -> B-1 
+                            -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+                        A-2 -> B-3
+                            -> B-4
+    SM2_TRIM        Show all sibling menus of pages on the current path. 
+                    All sub-menus of elements that are not on the path 
+                    are removed.
+                        A-1 -> B-1 
+                            -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+                        A-2 
+    SM2_CRUMB       Show only the breadcrumb trail, i.e. the current
+                    menu and all of it's ancestor menus.
+                        A-1 -> B-2 -> C-2 (CURRENT)
+    SM2_SIBLING     The same as SM2_TRIM however only sibling menus of 
+                    the current page are displayed. All other menus are 
+                    trimmed to show only the path.
+                        A-1 -> B-2 -> C-1
+                                   -> C-2 (CURRENT)
+                                          -> D-1
+                                          -> D-2
+                                   -> C-3
+
+    GROUP 2
+    -------
+    All of these flags are optional. Any number of them may be combined.
+
+    SM2_NUMCLASS    Add the numbered menu classes to the menu. If this 
+                    flag is supplied, the "menu-N" and "menu-child-N" 
+                    classes will be added.
+    SM2_ALLINFO     Load all fields from the page table of the database.
+                    This will result in quite a lot of memory being used
+                    and is not recommended, however it will make keywords,
+                    descriptions, and other fields available. This data
+                    is not loaded by default.
+                    NOTE: This flag must be used on the *FIRST* call to
+                    show_menu2 *for this menu ID*, or in combination with
+                    SM2_NOCACHE otherwise it will have no effect.
+    SM2_NOCACHE     Do not reuse or store the data read from the database
+                    between calls to show_menu2. 
+    SM2_PRETTY      Pretty print the menu HTML with spacing and newlines
+                    for debugging purposes.
+    SM2_BUFFER      Do not output the menu HTML but instead buffer it 
+                    internally and return it as a string from show_menu2.
+    SM2_CURRTREE    Exclude all other top level menus from being considered. 
+                    Only items in the current menu tree will be output.
+                    This can be combined with any of the Group 1 flags as
+                    necessary.
+    SM2_ESCAPE      Call htmlspecialchars on the menu strings. This may be
+                    required with older installations of WB. By escaping the
+                    raw database strings, it permits menus to have HTML 
+                    formatting in them that would cause otherwise cause
+                    pages to fail validation. 
+    SM2_NOESCAPE    Default behaviour. Exists only for backwards compatibility.                    
+
+
+$aItemOpen
+    Format string to use for creating each individual menu item entry.
+    A different format string may be used for the very first entry by 
+    supplying a different format string for $aTopItemOpen. When set to 
+    false, it uses the default of '[li][a][menu_title]</a>' to maintain
+    compatibility with show_menu(). Note however that CSS formatting is
+    often easier if the classes are added to the <a> tag. Use the format
+    string of '<li>[ac][menu_title]</a>' for this style of tag.
+
+    This parameter may also be specified as an instance of a formatting 
+    class for the menu. See the section "Formatter" below for details of
+    the API this class must expose. When a formatter is supplied, all 
+    arguments after $aItemOpen are ignored.
+
+$aItemClose
+    String used to close each item. Note that this is not a format
+    string and no keywords will be replaced. When set to false, it uses 
+    the default of '</li>'.
+
+$aMenuOpen
+    Format string to use for opening a list of menu item entries. A 
+    different format string may be used for the very first menu by 
+    supplying a different format string for $aTopMenuOpen. When set to 
+    false, it uses the default of '[ul]'.
+
+$aMenuClose
+    String used to close each menu. Note that this is not a format
+    string and no keywords will be replaced. When set to false, it uses 
+    the default of '</ul>'.
+
+$aTopItemOpen
+    Format string for the first item. When set to false, it uses the same 
+    format as $aItemOpen.
+
+$aTopMenuOpen 
+    Format string for the first menu. When set to false, it uses the same 
+    format as $aMenuOpen.
+        
+
+
+FORMAT STRINGS
+==============
+The following tags may be included in the format strings for $aItemOpen and 
+$aMenuOpen and will be replaced with the appropriate text.
+
+[a]             <a> tag (no class):         '<a href="[url]" target="[target]">'
+[ac]            <a> tag including class:    '<a href="[url]" target="[target]" class="[class]">'
+[li]            <li> tag including class:   '<li class="[class]">'
+[ul]            <ul> tag including class:   '<ul class="[class]">'
+[class]         List of classes for that page
+[menu_title]    Menu title text (HTML entity escaped unless SM2_NOESCAPE flag is used)
+[page_title]    Page title text (HTML entity escaped unless SM2_NOESCAPE flag is used)
+[url]           Page URL for the <a> tag
+[target]        Page target for the <a> tag
+[page_id]       Page ID of the current menu item
+[parent]        Page ID of the parent menu item
+[level]         Page level, the same number as is used for the "menu-N" CSS tag.
+[sib]           Current menu sibling number
+[sibCount]      Total number of siblings in this menu
+[if]            Conditional test (see section CONDITIONAL FORMATTING)
+
+The following tags are only available when the SM2_ALLINFO flag is used.
+
+[description]   Page description
+[keywords]      Page keywords
+
+
+CONDITIONAL FORMATTING
+======================
+The conditional formatting directive takes one of the following forms:
+
+    [if(A){B}]
+    [if(A){B}else{C}]
+    
+    A   Conditional test. See below for more details.
+    
+    B   Expression emitted when the if-test is true. This may be any string 
+        that does NOT include the '}' character. It may include any of the 
+        format strings described in the section FORMAT STRINGS with the 
+        exception of the conditional test (because '}' is not permitted).
+        
+    C   Expression emitted when the if-test is false. This may be any string 
+        that does NOT include the '}' character. It may include any of the 
+        format strings described in the section FORMAT STRINGS with the 
+        exception of the conditional test (because '}' is not permitted).
+    
+The conditional test is a combination of one or more boolean tests.
+If more than one test is supplied, it must be combined with other tests
+using either || (boolean OR) or && (boolean AND). 
+
+A single test is made up of the left operand, operator and right operand.
+e.g. X == Y where X is the left operand, == is the operator and Y is the
+right operand.
+    
+    Left operand. It must be one of the following keywords:
+        class       Test for existence of one of the classes. Only the
+                    "==" and "!=" operators are permitted. In this case
+                    these operators have the meaning of "includes" 
+                    instead of "equals".
+        level       Test against the page level.
+        sib         Test against the current page sibling number.
+        sibCount    Test against the number of siblings in the menu.
+        id          Test against the page id.
+    
+    Operator. It must be one of the following:
+        <           Less Than
+        <=          Less Than Equals
+        ==          Equals
+        !=          Not Equal
+        >=          Greater Than Equals
+        >           Greater Than
+    
+    Right operand. The type of this operand depends on the keyword used
+    for the left operand:
+        class       One of the "menu-*" class names as listed in the 
+                    section "OUTPUT".
+        level       Test the page level against the following values:
+                      <number>  absolute page level
+                      root      the root page level
+                      granny    the grand-parent page level
+                      parent    the parent page level
+                      current   the current page level
+                      child     the child page level
+        id          Test the page id against the following values:
+                      <number>  absolute page id
+                      parent    the parent page id
+                      current   the current page id
+        sib         A positive integer, or "sibCount" to test against
+                    the count of siblings in this menu.
+        sibCount    A positive integer.
+        
+For example, valid tests are expression "exp" is emitted only when the menu item:
+    
+    [if(class==menu-expand){exp}]   has a sub-menu
+    [if(class==menu-first){exp}]    is first item in a menu
+    [if(class!=menu-first){exp}]    is NOT first item in a menu
+    [if(class==menu-last){exp}]     is last item in a menu
+    [if(level==0){exp}]             is at the root
+    [if(level>0){exp}]              is not at the root
+    [if(sib==2){exp}]               is the second item in a menu
+    [if(sibCount>1){exp}]           is in a menu with more than 1 entry
+    [if(sibCount!=2){exp}]          is in a menu which doesn't have exactly
+    [if(level>parent){exp}]         is in a sibling menu or child of a sibling
+    [if(id==parent){exp}]           is the parent of the current page
+
+If an else-clause was added, then the expression for the else would be 
+emitted in all other cases. For example the expression "foo" is emitted
+whenever the if-test is false, so therefore:
+
+    [if(sib==2){exp}else{foo}]          is NOT the second item in a menu
+    [if(sibCount>2){exp}else{foo}]      is NOT in a menu with more than 2 entries
+
+For multiple tests, the expression "exp" is emitted only when the menu item:
+
+    [if(sib == 1 || sib > 3){exp}]      
+        [is the first item] OR [is the 4th or larger item] in the menu
+        
+    [if(id == current && class == menu-expand){exp}
+        [is the current item] AND [it has children]
+
+Note that all tests are evaluated in the order listed because:
+ * there is no short-circuit evaluation (all individual tests are always evaluated)
+ * there is no grouping of tests (i.e. no support for parenthesis)
+ * both || and && are considered the same level 
+
+
+
+FORMATTER
+=========
+Note: This is an advanced and rarely needed feature!
+
+If you are capable of extensive PHP programming, it is possible to replace the 
+predefined menu formatter that show_menu2 is uses with a custom module. See the
+include.php file of show_menu2 for an example of how the menu formatter must be 
+written. The API it must use is:
+
+class SM2_Formatter
+{
+    // called once before any menu is processed to allow object initialization
+    function initialize() { }
+    
+    // called to open the menu list
+    function startList($aPage, $aUrl) { }
+    
+    // called to open the menu item
+    function startItem($aPage, $aUrl, $aCurrSib, $aSibCount) { }
+    
+    // called to close the menu item
+    function finishItem() { }
+    
+    // called to close the menu list
+    function finishList() { }
+    
+    // called once after all menu has been processed to allow object finalization
+    function finalize() { }
+    
+    // called once after finalize() if the SM2_NOOUTPUT flag is used
+    function getOutput() { }
+};
+
+
+

Property changes on: tags/2.7.0/wb/modules/show_menu2/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/show_menu2/index.php
===================================================================
--- tags/2.7.0/wb/modules/show_menu2/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/show_menu2/index.php	(revision 838)
@@ -0,0 +1,27 @@
+<?php
+
+// $Id$
+
+/*
+    show_menu2: show_menu replacement for Website Baker 
+    Copyright (C) 2006-2008, Brodie Thiesfield
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 2
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
+    02110-1301, USA.
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/show_menu2/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/NL.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING']           = 'Captcha en ASP control';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = 'Hier kan je het gedrag van "CAPTCHA" en "Advanced Spam Protection" (ASP) beheren. Om ASP te laten werken met een bepaalde module, deze speciale module moet aangepast worden om gebruik te kunnen maken van ASP.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = 'CAPTCHA Configuratie';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = 'Type van CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = 'CAPTCHA settings for modules are located in the respective module settings';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= 'Activeer CAPTCHA om aan te melden';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = 'Aan';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = 'Uit';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = 'Advanced Spam Protection Configuratie';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = 'Activeer ASP (indien beschikbaar)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP zal proberen te detecteren of de invoer van een formulier ingegeven werd via een mens of een spam-bot.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = 'Rekensom als tekst';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = 'Rekensom als figuur';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = 'Rekensom als figuur met verschillende lettertypen en achtergronden';
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Figuur met verschillende lettertypen en achtergronden';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = 'Oude stijl (niet aan te raden)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = 'Tekst-CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= 'Vragen en antwoorden';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Wis dit om uw lijst in te geven'."\n".'of de wijzigingen zullen niet bewaard worden!'."\n".'### voorbeeld ###'."\n".'Hier kan je vragen en antwoorden ingeven.'."\n".'Gebruik:'."\n".'?Wat is de <b>voornaam</b> van <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".'?Vraag 2'."\n".'!Antwoord 2'."\n".' ... '."\n".'indien de taal geen rol speelt.'."\n".''."\n".'Of, indien taal wel een rol speelt, gebruik:'."\n".'?EN:What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'?DE:Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".' ... '."\n".'### voorbeeld ###'."\n".'';
+
+$MOD_CAPTCHA['VERIFICATION']           = 'Verificatie';
+$MOD_CAPTCHA['ADDITION']               = 'plus';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'min';
+$MOD_CAPTCHA['MULTIPLIKATION']         = 'maal';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = 'Geef het resultaat in';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Geef de tekst in';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'Beantwoord de vraag';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Verificatie mislukt';
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/NO.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+-----------------------------------------------------------------------------------------
+NORWEGIAN LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+-----------------------------------------------------------------------------------------
+  */
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING']           = 'Captcha og ASP kontroll';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = 'Her kan du kontrolere hvordan du vil at "CAPTCHA" og "Avansert Spam Beskyttelse" (ASP) skal virke. For &aring; f&aring; ASP til &aring; fungere med en sesifik modul, m&aring; denne tilpasses for bruk sammen med ASP. ASP vil ellers ikke fungere med moduler hvor denne endringen ikker er gjort.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = 'CAPTCHA Konfigurasjon';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = 'Type CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = 'CAPTCHA instillinger for modulene, finner du under innstillinger i de respektive modulenen.';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= 'Aktiver CAPTCHA for brukerregistreringen';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = 'Aktivert';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = 'Deaktivert';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = 'Konfigrering av Avansert Spam Beskyttelse';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = 'Aktiver ASP (om tilgjengelig)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP vil pr&oslash;ve &aring; fastsl&aring; hvor hvidt innfyllingen i et skjema ble gjort av et meneske eller en spam-robot.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = 'Kalkuler som tekst';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = 'Kalkuler som bilde';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = 'Kalkulering som bilde med varierende fonter og bakgrunder'; 
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Bilde med varierende fonter og bakgrunder';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = 'Gammel Type (Anbefales ikke!)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = 'Tekst-CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= 'Sp&oslash;rsm&aring;l og svar';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Slett atlt dette for &aring; legge til dine egne innleggellers vil ikke endringene bli lagret!'."\n".'### eksempel ###'."\n".'Her kan du legge inn Sp&oslash;rsm&aring;l og Svar.'."\n".'Bruk:'."\n".'?Hva er <b>Claudia</b> Schiffer\'s <b>fornavn</b>?'."\n".'!Claudia'."\n".'?Sp&oslash;rsm&aring;l 2'."\n".'!Svar 2'."\n".''."\n".'om type spr&aring;k ikke er av betydning.'."\n".' ... '."\n".'Eller, om spr&aring;k er av betydning, bruk:'."\n".'?NO:Hva er <b>Claudia</b> Schiffer\'s <b>fornavn</b>?'."\n".'!Claudia'."\n".'?NO:Sp&oslash;rsm&aring;l 2'."\n".'!Svar 2'."\n".'?EN:What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'?DE:Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".' ... '."\n".'### Eksempel ###'."\n".'';
+
+$MOD_CAPTCHA['VERIFICATION']           = 'Verifikasjon';
+$MOD_CAPTCHA['ADDITION']               = 'legg til';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'trekk fra';
+$MOD_CAPTCHA['MULTIPLIKATION']         = 'ganger';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = 'Skriv inn ressultatet';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Skriv inn teksten';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'Svar p&aring; sp&oslash;rsm&aring;let';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Feil ved verifiseringen';
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/EN.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING']           = 'Captcha and ASP control';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = 'Here you can control the behavior of "CAPTCHA" and "Advanced Spam Protection" (ASP). To get ASP work with a given module, this special module has to be adapted to make use of ASP.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = 'CAPTCHA Configuration';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = 'Type of CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = 'CAPTCHA settings for modules are located in the respective module settings';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= 'Activate CAPTCHA for signup';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = 'Enabled';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = 'Disabled';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = 'Advanced Spam Protection Configuration';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = 'Activate ASP (if available)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP tries to determine if a form-input was originated from a human or a spam-bot.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = 'Calculation as text';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = 'Calculation as image';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = 'Calculation as image with varying fonts and backgrounds'; 
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Image with varying fonts and backgrounds';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = 'Old style (not recommended)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = 'Text-CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= 'Questions and Answers';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Delete this all to add your own entries'."\n".'or your changes won\'t be saved!'."\n".'### example ###'."\n".'Here you can enter Questions and Answers.'."\n".'Use:'."\n".'?What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?Question 2'."\n".'!Answer 2'."\n".''."\n".'if language doesn\'t matter.'."\n".' ... '."\n".'Or, if language do matter, use:'."\n".'?EN:What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'?DE:Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".' ... '."\n".'### example ###'."\n".'';
+
+$MOD_CAPTCHA['VERIFICATION']           = 'Verification';
+$MOD_CAPTCHA['ADDITION']               = 'add';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'subtract';
+$MOD_CAPTCHA['MULTIPLIKATION']         = 'multiply';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = 'Fill in the result';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Fill in the text';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'Answer the question';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Verification failed';
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/RU.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE CAPTCHA-CONTROL ADMIN TOOL
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_CAPTCHA_CONTROL['HEADING']           = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; Captcha &#1080; ASP';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = '&#1047;&#1076;&#1077;&#1089;&#1100; &#1074;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1091;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1090;&#1100; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1072;&#1084;&#1080; "CAPTCHA" &#1080; "Advanced Spam Protection" (ASP). &#1044;&#1083;&#1103; &#1090;&#1086;&#1075;&#1086; &#1095;&#1090;&#1086;&#1073;&#1099;  ASP &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1083; &#1074; &#1084;&#1086;&#1076;&#1091;&#1083;&#1103;&#1093;, &#1074;&#1072;&#1084; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1086; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1080;&#1090;&#1100; &#1077;&#1075;&#1086; &#1087;&#1086;&#1074;&#1077;&#1076;&#1077;&#1085;&#1080;&#1077; &#1079;&#1076;&#1077;&#1089;&#1100;.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = '&#1058;&#1080;&#1087; CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; CAPTCHA &#1076;&#1083;&#1103; &#1084;&#1086;&#1076;&#1091;&#1083;&#1077;&#1081; &#1085;&#1072;&#1093;&#1086;&#1076;&#1103;&#1090;&#1089;&#1103; &#1074; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1072;&#1093; &#1089;&#1086;&#1086;&#1090;&#1074;&#1077;&#1090;&#1089;&#1090;&#1074;&#1091;&#1102;&#1097;&#1077;&#1075;&#1086; &#1084;&#1086;&#1076;&#1091;&#1083;&#1103;';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= '&#1048;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; CAPTCHA &#1076;&#1083;&#1103; &#1092;&#1086;&#1088;&#1084;&#1099; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = '&#1042;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1086;';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = '&#1042;&#1099;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1086;';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; Advanced Spam Protection';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = '&#1048;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; ASP (&#1077;&#1089;&#1083;&#1080; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP &#1087;&#1099;&#1090;&#1072;&#1077;&#1090;&#1089;&#1103; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100;, &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1072; &#1092;&#1086;&#1088;&#1084;&#1072; &#1095;&#1077;&#1083;&#1086;&#1074;&#1077;&#1082;&#1086;&#1084; &#1080;&#1083;&#1080; spam-&#1088;&#1086;&#1073;&#1086;&#1090;&#1086;&#1084;.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = '&#1042;&#1099;&#1095;&#1080;&#1089;&#1083;&#1077;&#1085;&#1080;&#1103; (&#1090;&#1077;&#1082;&#1089;&#1090;)';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = '&#1042;&#1099;&#1095;&#1080;&#1089;&#1083;&#1077;&#1085;&#1080;&#1103; (&#1082;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1072;)';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = '&#1042;&#1099;&#1095;&#1080;&#1089;&#1083;&#1077;&#1085;&#1080;&#1103; (&#1082;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1072; &#1089; &#1088;&#1072;&#1079;&#1083;&#1080;&#1095;&#1085;&#1099;&#1084;&#1080; &#1096;&#1088;&#1080;&#1092;&#1090;&#1072;&#1084;&#1080; &#1080; &#1092;&#1086;&#1085;&#1086;&#1084;)'; 
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = '&#1050;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1072; &#1089; &#1088;&#1072;&#1079;&#1083;&#1080;&#1095;&#1085;&#1099;&#1084;&#1080; &#1096;&#1088;&#1080;&#1092;&#1090;&#1072;&#1084;&#1080; &#1080; &#1092;&#1086;&#1085;&#1086;&#1084;';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = '&#1057;&#1090;&#1072;&#1088;&#1099;&#1081; &#1089;&#1090;&#1080;&#1083;&#1100; (&#1085;&#1077; &#1088;&#1077;&#1082;&#1086;&#1084;&#1085;&#1076;&#1091;&#1077;&#1090;&#1100;&#1089;&#1103;)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = '&#1058;&#1077;&#1082;&#1089;&#1090;&#1086;&#1074;&#1072;&#1103; CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= '&#1042;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099; &#1080; &#1054;&#1090;&#1074;&#1077;&#1090;&#1099;';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Delete this all to add your own entries'."\n".'or your changes won\'t be saved!'."\n".'### example ###'."\n".'Here you can enter Questions and Answers.'."\n".'Use:'."\n".'?What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?Question 2'."\n".'!Answer 2'."\n".' ... '."\n".'if language doesn\'t matter.'."\n".''."\n".'Or, if language do matter, use:'."\n".'?EN:What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'?DE:Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".' ... '."\n".'### example ###'."\n".'';
+
+$MOD_CAPTCHA['VERIFICATION']           = '&#1055;&#1088;&#1086;&#1074;&#1077;&#1088;&#1082;&#1072;';
+$MOD_CAPTCHA['ADDITION']               = '&#1087;&#1083;&#1102;&#1089;';
+$MOD_CAPTCHA['SUBTRAKTION']            = '&#1084;&#1080;&#1085;&#1091;&#1089;';
+$MOD_CAPTCHA['MULTIPLIKATION']         = '&#1091;&#1084;&#1085;&#1086;&#1078;&#1080;&#1090;&#1100; &#1085;&#1072;';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = '&#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = '&#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1090;&#1077;&#1082;&#1089;&#1090;';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = '&#1054;&#1090;&#1074;&#1077;&#1090;&#1100;&#1090;&#1077; &#1085;&#1072; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1074;&#1077;&#1088;&#1080;&#1092;&#1080;&#1082;&#1072;&#1094;&#1080;&#1080;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/DE.php	(revision 838)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS CAPTCHA-CONTROL ADMINISTRATIONS TOOL
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description 	= 'Admin-Tool um das Verhalten von CAPTCHA und ASP zu kontrollieren';
+
+// Ueberschriften und Textausgaben
+$MOD_CAPTCHA_CONTROL['HEADING']           = 'Captcha- und ASP Steuerung';
+$MOD_CAPTCHA_CONTROL['HOWTO']             = 'Hiermit kann das Verhalten von "CAPTCHA" und "Advanced Spam Protection" (ASP) gesteuert werden. Damit ASP in einem Modul wirken kann, muss das verwendete Modul entsprechend angepasst sein.';
+
+// Text and captions of form elements
+$MOD_CAPTCHA_CONTROL['CAPTCHA_CONF']      = 'CAPTCHA-Einstellungen';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE']      = 'CAPTCHA-Typ';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_EXP']       = 'Die CAPTCHA-Einstellungen f&uuml;r die Module befinden sich in den jeweiligen Modul-Optionen';
+$MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA']= 'CAPTCHA f&uuml;r Registrierung aktivieren';
+$MOD_CAPTCHA_CONTROL['ENABLED']           = 'Aktiviert';
+$MOD_CAPTCHA_CONTROL['DISABLED']          = 'Ausgeschaltet';
+$MOD_CAPTCHA_CONTROL['ASP_CONF']          = 'Erweiterter-Spam-Schutz (ASP) Einstellungen';
+$MOD_CAPTCHA_CONTROL['ASP_TEXT']          = 'ASP benutzen (wenn im Modul vorhanden)';
+$MOD_CAPTCHA_CONTROL['ASP_EXP']           = 'ASP versucht anhand der verschiedenen Verhaltensweisen zu erkennen, ob eine Formular-Eingabe von einem Menschen oder einem Spam-Bot kommt.';
+$MOD_CAPTCHA_CONTROL['CALC_TEXT']         = 'Rechnung als Text';
+$MOD_CAPTCHA_CONTROL['CALC_IMAGE']        = 'Rechnung als Bild';
+$MOD_CAPTCHA_CONTROL['CALC_TTF_IMAGE']    = 'Rechnung als Bild mit wechselnden Schriften und Hintergr&uuml;nden';
+$MOD_CAPTCHA_CONTROL['TTF_IMAGE']         = 'Bild mit wechselnden Schriften und Hintergr&uuml;nden';
+$MOD_CAPTCHA_CONTROL['OLD_IMAGE']         = 'Alter Stil (nicht empfohlen)';
+$MOD_CAPTCHA_CONTROL['TEXT']              = 'Text-CAPTCHA';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT']= 'Fragen und Antworten';
+$MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'] = 'Bitte hier alles l&ouml;schen'."\n".'sonst werden Ihre &Auml;nderungen nicht gespeichert!'."\n".'### Beispiel ###'."\n".'Hier k&ouml;nnen sie Fragen und Antworten eingeben.'."\n".'Entweder:'."\n".'?Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".'?Frage 2'."\n".'!Antwort 2'."\n".' ... '."\n".'wenn nur eine Sprache benutzt wird.'."\n".''."\n".'Oder, wenn die Sprache relevant ist:'."\n".'?EN:What\'s <b>Claudia</b> Schiffer\'s <b>first name</b>?'."\n".'!Claudia'."\n".'?EN:Question 2'."\n".'!Answer 2'."\n".'?DE:Wie ist der <b>Vorname</b> von <b>Claudia</b> Schiffer?'."\n".'!Claudia'."\n".' ... '."\n".'### Beispiel ###'."\n".'';
+$MOD_CAPTCHA['VERIFICATION']           = 'Pr&uuml;fziffer';
+$MOD_CAPTCHA['ADDITION']               = 'plus';
+$MOD_CAPTCHA['SUBTRAKTION']            = 'minus';
+$MOD_CAPTCHA['MULTIPLIKATION']         = 'mal';
+$MOD_CAPTCHA['VERIFICATION_INFO_RES']  = 'Bitte Ergebnis eintragen';
+$MOD_CAPTCHA['VERIFICATION_INFO_TEXT'] = 'Bitte Text eintragen';
+$MOD_CAPTCHA['VERIFICATION_INFO_QUEST'] = 'Bitte Frage beantworten';
+$MOD_CAPTCHA['INCORRECT_VERIFICATION'] = 'Das Ergebnis ist falsch. Bitte tragen Sie es erneut ein';
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/captcha_control/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/install.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/install.php	(revision 838)
@@ -0,0 +1,51 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) { exit('Cannot access this file directly'); }
+
+$table = TABLE_PREFIX.'mod_captcha_control';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("CREATE TABLE `$table` (
+	`enabled_captcha` VARCHAR(1) NOT NULL DEFAULT '1',
+	`enabled_asp` VARCHAR(1) NOT NULL DEFAULT '0',
+	`captcha_type` VARCHAR(255) NOT NULL DEFAULT 'calc_text',
+	`asp_session_min_age` INT(11) NOT NULL DEFAULT '20',
+	`asp_view_min_age` INT(11) NOT NULL DEFAULT '10',
+	`asp_input_min_age` INT(11) NOT NULL DEFAULT '5',
+	`ct_text` LONGTEXT NOT NULL DEFAULT ''
+	)"
+);
+
+// add new row using the table default values defined above
+$database->query("
+	INSERT INTO `$table`
+		(`enabled_captcha`, `enabled_asp`, `captcha_type`)
+	VALUES
+		('1', '1', 'calc_text')
+");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/captcha_control/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/tool.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/tool.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/tool.php	(revision 838)
@@ -0,0 +1,191 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/captcha_control/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/captcha_control/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/captcha_control/languages/'.LANGUAGE .'.php');
+}
+
+$table = TABLE_PREFIX.'mod_captcha_control';
+
+// check if data was submitted
+if(isset($_POST['save_settings'])) {
+	// get configuration settings
+	$enabled_captcha = ($_POST['enabled_captcha'] == '1') ? '1' : '0';
+	$enabled_asp = ($_POST['enabled_asp'] == '1') ? '1' : '0';
+	$captcha_type = $admin->add_slashes($_POST['captcha_type']);
+	
+	// update database settings
+	$database->query("UPDATE $table SET
+		enabled_captcha = '$enabled_captcha',
+		enabled_asp = '$enabled_asp',
+		captcha_type = '$captcha_type'
+	");
+
+	// save text-captchas
+	if($captcha_type == 'text') { // ct_text
+		$text_qa=$admin->add_slashes($_POST['text_qa']);
+		if(!preg_match('/### .*? ###/', $text_qa)) {
+			$database->query("UPDATE $table SET ct_text = '$text_qa'");
+		}
+	}
+	
+	// check if there is a database error, otherwise say successful
+	if($database->is_error()) {
+		$admin->print_error($database->get_error(), $js_back);
+	} else {
+		$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/admintools/tool.php?tool=captcha_control');
+	}
+
+} else {
+	
+	// include captcha-file
+	require_once(WB_PATH .'/include/captcha/captcha.php');
+
+	// load text-captchas
+	$text_qa='';
+	if($query = $database->query("SELECT ct_text FROM $table")) {
+		$data = $query->fetchRow();
+		$text_qa = $data['ct_text'];
+	}
+	if($text_qa == '')
+		$text_qa = $MOD_CAPTCHA_CONTROL['CAPTCHA_TEXT_DESC'];
+
+// script to load image
+?>
+<script type="text/javascript">
+	var pics = new Array();
+
+	pics["ttf_image"] = new Image();
+	pics["ttf_image"].src = "<?php echo WB_URL.'/include/captcha/captchas/ttf_image.png'?>";
+
+	pics["calc_image"] = new Image();
+	pics["calc_image"].src = "<?php echo WB_URL.'/include/captcha/captchas/calc_image.png'?>";
+	
+	pics["calc_ttf_image"] = new Image();
+	pics["calc_ttf_image"].src = "<?php echo WB_URL.'/include/captcha/captchas/calc_ttf_image.png'?>";
+
+	pics["old_image"] = new Image();
+	pics["old_image"].src = "<?php echo WB_URL.'/include/captcha/captchas/old_image.png'?>";
+	
+	pics["calc_text"] = new Image();
+	pics["calc_text"].src = "<?php echo WB_URL.'/include/captcha/captchas/calc_text.png'?>";
+	
+	pics["text"] = new Image();
+	pics["text"].src = "<?php echo WB_URL.'/include/captcha/captchas/text.png'?>";
+
+	function load_captcha_image() {
+		document.captcha_example.src = pics[document.store_settings.captcha_type.value].src;
+		toggle_text_qa();
+	}
+	
+	function toggle_text_qa() {
+		if(document.store_settings.captcha_type.value == 'text' ) {
+			document.getElementById('text_qa').style.display = '';
+		} else {
+			document.getElementById('text_qa').style.display = 'none';
+		}
+	}
+
+</script>
+<?php
+
+	// connect to database and read out captcha settings
+	if($query = $database->query("SELECT * FROM $table")) {
+		$data = $query->fetchRow();
+		$enabled_captcha = $data['enabled_captcha'];
+		$enabled_asp = $data['enabled_asp'];
+		$captcha_type = $data['captcha_type'];
+	} else {
+		// something went wrong, use dummy value
+		$enabled_captcha = '1';
+		$enabled_asp = '1';
+		$captcha_type = 'calc_text';
+	}
+		
+	// write out heading
+	echo '<h2>' .$MOD_CAPTCHA_CONTROL['HEADING'] .'</h2>';
+
+	// output the form with values from the database
+	echo '<p>' .$MOD_CAPTCHA_CONTROL['HOWTO'] .'</p>';
+?>
+<form name="store_settings" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
+	<table width="98%" cellspacing="0" border="0" cellpadding="5px" class="row_a">
+	<tr><td colspan="2"><strong><?php echo $MOD_CAPTCHA_CONTROL['CAPTCHA_CONF'];?>:</strong></td></tr>
+	<tr>
+		<td width="30%"><?php echo $MOD_CAPTCHA_CONTROL['CAPTCHA_TYPE'];?>:</td>
+		<td>
+		<select name="captcha_type" id="captcha_type" onchange="load_captcha_image()" style="width: 98%;">
+			<?php foreach($useable_captchas AS $key=>$text) {
+			echo "<option value=\"$key\" ".($captcha_type==$key?'selected':'').">$text</option>";
+			} ?>
+		</select>
+		</td>
+	</tr>
+	<tr height="55px">
+		<td>&nbsp;</td>
+		<td align="left" width="150px"><img name="captcha_example" id="captcha_example" src="<?php echo WB_URL.'/include/captcha/captchas/'.$captcha_type.'.png'?>" ></td>
+	</tr>
+	<tr id="text_qa" style="display:<?php if($captcha_type=='text') echo ''; else echo 'none'; ;?>;">
+		<td valign="top" class="setting_name"><?php echo $MOD_CAPTCHA_CONTROL['CAPTCHA_ENTER_TEXT'];?>:</td>
+		<td class="setting_value" colspan="2">
+			<textarea name="text_qa" wrap="off" cols="60" rows="10"><?php echo $text_qa; ?></textarea>
+		</td>
+	</tr>
+	<tr>
+		<td><?php echo $MOD_CAPTCHA_CONTROL['USE_SIGNUP_CAPTCHA'];?>:</td>
+		<td>
+			<input type="radio" <?php echo ($enabled_captcha=='1') ?'checked="checked"' :'';?>
+				name="enabled_captcha" value="1"><?php echo $MOD_CAPTCHA_CONTROL['ENABLED'];?>
+			<input type="radio" <?php echo ($enabled_captcha=='0') ?'checked="checked"' :'';?>
+				name="enabled_captcha" value="0"><?php echo $MOD_CAPTCHA_CONTROL['DISABLED'];?>
+		</td>
+	</tr>
+	<tr><td>&nbsp;</td><td style="font-size:smaller;"><?php echo $MOD_CAPTCHA_CONTROL['CAPTCHA_EXP'];?></td></tr>
+	<tr><td colspan="2"><br /><strong><?php echo $MOD_CAPTCHA_CONTROL['ASP_CONF'];?>:</strong></td></tr>
+	<tr>
+		<td><?php echo $MOD_CAPTCHA_CONTROL['ASP_TEXT'];?>:</td>
+		<td>
+			<input type="radio" <?php echo ($enabled_asp=='1') ?'checked="checked"' :'';?>
+				name="enabled_asp" value="1"><?php echo $MOD_CAPTCHA_CONTROL['ENABLED'];?>
+			<input type="radio" <?php echo ($enabled_asp=='0') ?'checked="checked"' :'';?>
+				name="enabled_asp" value="0"><?php echo $MOD_CAPTCHA_CONTROL['DISABLED'];?>
+		</td>
+	</tr>
+	<tr><td>&nbsp;</td><td style="font-size:smaller;"><?php echo $MOD_CAPTCHA_CONTROL['ASP_EXP'];?></td></tr>
+	</table>
+	<input type="submit" name="save_settings" style="margin-top:10px; width:140px;" value="<?php echo $TEXT['SAVE']; ?>" />
+</form>
+<?php
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/captcha_control/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/uninstall.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) { exit('Cannot access this file directly'); }
+
+$table = TABLE_PREFIX .'mod_captcha_control';
+$database->query("DROP TABLE `$table`");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/captcha_control/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/info.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/info.php	(revision 838)
@@ -0,0 +1,40 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  This is a control-tool for captcha and ASP
+ -----------------------------------------------------------------------------------------
+V1.0 - inital version
+
+*/
+
+$module_directory 	= 'captcha_control';
+$module_name 			= 'Captcha and Advanced-Spam-Protection (ASP) Control';
+$module_function 		= 'tool';
+$module_version 		= '1.0';
+$module_platform 		= '2.7';
+$module_author 		= 'Thomas Hornik (thorn)';
+$module_license 		= 'GNU General Public License';
+$module_description 	= 'Admin-Tool to control CAPTCHA and ASP';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/captcha_control/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/captcha_control/index.php
===================================================================
--- tags/2.7.0/wb/modules/captcha_control/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/captcha_control/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/captcha_control/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/NO.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'Med denne modulen kan du lage d&iacute;ne egne spesialtilpassede elektroniske skjemaer, som for eksempe et tilbakemeldings skjema. En stor takk til Rudolph Lartey for hjelpen med &aring; videreutvikkle denne modulen, og for bidrag med koding av ekstra felt typer , osv.';
+  
+//Variables for the  backend
+$MOD_FORM['SETTINGS'] = 'Skjema Innstillinger';
+  
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/EN.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'This module allows you to create customised online forms, such as a feedback form. Thank-you to Rudolph Lartey who help enhance this module, providing code for extra field types, etc.';
+
+//Variables for the  backend
+$MOD_FORM['SETTINGS'] = 'Form Settings';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/NL.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'Deze module makt het mogelijk om aangepaste online formulieren te maken zoals een feedback formulier. Met dank aan Rudolph Lartey voor het aanpassen van deze module.';
+
+//Variables for the  backend
+$MOD_FORM['SETTINGS'] = 'Formulier instellingen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/RU.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; &#1087;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1077;&#1090; &#1089;&#1086;&#1079;&#1076;&#1072;&#1074;&#1072;&#1090;&#1100; &#1088;&#1072;&#1079;&#1083;&#1080;&#1095;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1072;&#1080;&#1074;&#1072;&#1077;&#1084;&#1099;&#1077; &#1092;&#1086;&#1088;&#1084;&#1099;, &#1085;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088; &#1092;&#1086;&#1088;&#1084;&#1099; &#1086;&#1073;&#1088;&#1072;&#1090;&#1085;&#1086;&#1081; &#1089;&#1074;&#1103;&#1079;&#1080;. Rudolph Lartey &#1087;&#1086;&#1084;&#1086;&#1075; &#1091;&#1083;&#1091;&#1095;&#1096;&#1080;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1084;&#1086;&#1076;&#1091;&#1083;&#1100;.';
+
+//Variables for the  backend
+$MOD_FORM['SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1092;&#1086;&#1088;&#1084;&#1099;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/form/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/DE.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modulbeschreibung
+$module_description = 'Mit diesem Modul k&ouml;nnen sie ein beliebiges Formular f&uuml;r ihre Seite erzeugen';
+
+//Variablen fuer backend Texte
+$MOD_FORM['SETTINGS'] = 'Formular Einstellungen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/form/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/modify_settings.php
===================================================================
--- tags/2.7.0/wb/modules/form/modify_settings.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/modify_settings.php	(revision 838)
@@ -0,0 +1,262 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// include core functions of WB 2.7 to edit the optional module CSS files (frontend.css, backend.css)
+@include_once(WB_PATH .'/framework/module.functions.php');
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/form/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/form/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/form/languages/'.LANGUAGE .'.php');
+}
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_settings WHERE section_id = '$section_id'");
+$setting = $query_content->fetchRow();
+
+// Set raw html <'s and >'s to be replace by friendly html code
+$raw = array('<', '>');
+$friendly = array('&lt;', '&gt;');
+
+// check if backend.css file needs to be included into the <body></body> of modify.php
+if(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH ."/modules/form/backend.css")) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/form/backend.css');
+	echo "\n</style>\n";
+}
+
+?>
+<h2><?php echo $MOD_FORM['SETTINGS']; ?></h2>
+<?php
+// include the button to edit the optional module CSS files
+// Note: CSS styles for the button are defined in backend.css (div class="mod_moduledirectory_edit_css")
+// Place this call outside of any <form></form> construct!!!
+if(function_exists('edit_module_css')) {
+	edit_module_css('form');
+}
+?>
+
+<form name="edit" action="<?php echo WB_URL; ?>/modules/form/save_settings.php" method="post" style="margin: 0;">
+
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+	<tr>
+		<td colspan="2"><strong><?php echo $HEADING['GENERAL_SETTINGS']; ?></strong></td>
+	</tr>
+	<tr>
+		<td class="setting_name" width="30%"><?php echo $TEXT['CAPTCHA_VERIFICATION']; ?>:</td>
+		<td>
+			<input type="radio" name="use_captcha" id="use_captcha_true" value="1"<?php if($setting['use_captcha'] == true) { echo ' checked'; } ?> />
+			<label for="use_captcha_true"><?php echo $TEXT['ENABLED']; ?></label>
+			<input type="radio" name="use_captcha" id="use_captcha_false" value="0"<?php if($setting['use_captcha'] == false) { echo ' checked'; } ?> />
+			<label for="use_captcha_false"><?php echo $TEXT['DISABLED']; ?></label>
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name" width="30%"><?php echo $TEXT['MAX_SUBMISSIONS_PER_HOUR']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="max_submissions" style="width: 30px;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['max_submissions'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['SUBMISSIONS_STORED_IN_DATABASE']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="stored_submissions" style="width: 30px;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['stored_submissions'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['HEADER']; ?>:</td>
+		<td class="setting_name">
+			<textarea name="header" style="width: 98%; height: 80px;"><?php echo ($setting['header']); ?></textarea>
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['FIELD'].' '.$TEXT['LOOP']; ?>:</td>
+		<td class="setting_name">
+			<textarea name="field_loop" style="width: 98%; height: 80px;"><?php echo ($setting['field_loop']); ?></textarea>
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['FOOTER']; ?>:</td>
+		<td class="setting_name">
+			<textarea name="footer" style="width: 98%; height: 80px;"><?php echo str_replace($raw, $friendly, ($setting['footer'])); ?></textarea>
+		</td>
+	</tr>
+</table>	
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%" style="margin-top: 3px;">
+	<tr>
+		<td colspan="2"><strong><?php echo $TEXT['EMAIL'].' '.$TEXT['SETTINGS']; ?></strong></td>
+	</tr>
+	<tr>
+		<td class="setting_name" width="30%"><?php echo $TEXT['EMAIL'].' '.$TEXT['TO']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="email_to" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['email_to'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['FROM']; ?>:</td>
+		<td class="setting_name">
+			<select name="email_from_field" style="width: 98%;">
+			<option value="" onclick="javascript: document.getElementById('email_from').style.display = 'block';"><?php echo $TEXT['CUSTOM']; ?>:</option>
+			<?php
+			$email_from_value = str_replace($raw, $friendly, ($setting['email_from']));
+			$query_email_fields = $database->query("SELECT field_id,title FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' AND ( type = 'textfield' OR  type = 'email' ) ORDER BY position ASC");
+			if($query_email_fields->numRows() > 0) {
+				while($field = $query_email_fields->fetchRow()) {
+					?>
+					<option value="field<?php echo $field['field_id']; ?>"<?php if($email_from_value == 'field'.$field['field_id']) { echo ' selected'; $selected = true; } ?> onclick="javascript: document.getElementById('email_from').style.display = 'none';">
+						<?php echo $TEXT['FIELD'].': '.$field['title']; ?>
+					</option>
+					<?php
+				}
+			}
+			?>
+			</select>
+			<input type="text" name="email_from" id="email_from" style="width: 98%; display: <?php if(isset($selected) AND $selected == true) { echo 'none'; } else { echo 'block'; } ?>;" maxlength="255" value="<?php if(substr($email_from_value, 0, 5) != 'field') { echo $email_from_value; } ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['NAME']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="email_fromname" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['email_fromname'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['SUBJECT']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="email_subject" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['email_subject'])); ?>" />
+		</td>
+	</tr>
+</table>	
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%" style="margin-top: 3px;">
+	<tr>
+		<td colspan="2"><strong><?php echo $TEXT['SUCCESS'].' '.$TEXT['SETTINGS']; ?></strong></td>
+	</tr>
+	<tr>
+		<td class="setting_name" width="30%"><?php echo $TEXT['EMAIL'].' '.$TEXT['TO']; ?>:</td>
+		<td class="setting_name">
+			<select name="success_email_to" style="width: 98%;">
+			<option value="" onclick="javascript: document.getElementById('success_email_to').style.display = 'block';"><?php echo $TEXT['NONE']; ?></option>
+			<?php
+			$success_email_to = str_replace($raw, $friendly, ($setting['success_email_to']));
+			$query_email_fields = $database->query("SELECT field_id,title FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' AND ( type = 'textfield' OR  type = 'email' ) ORDER BY position ASC");
+			if($query_email_fields->numRows() > 0) {
+				while($field = $query_email_fields->fetchRow()) {
+					?>
+					<option value="field<?php echo $field['field_id']; ?>"<?php if($success_email_to == 'field'.$field['field_id']) { echo ' selected'; $selected = true; } ?> onclick="javascript: document.getElementById('email_from').style.display = 'none';">
+						<?php echo $TEXT['FIELD'].': '.$field['title']; ?>
+					</option>
+					<?php
+				}
+			}
+			?>
+			</select>
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['FROM']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="success_email_from" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['success_email_from'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['NAME']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="success_email_fromname" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['success_email_fromname'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['SUBJECT']; ?>:</td>
+		<td class="setting_name">
+			<input type="text" name="success_email_subject" style="width: 98%;" maxlength="255" value="<?php echo str_replace($raw, $friendly, ($setting['success_email_subject'])); ?>" />
+		</td>
+	</tr>
+	<tr>
+		<td class="setting_name"><?php echo $TEXT['EMAIL'].' '.$TEXT['TEXT']; ?>:</td>
+		<td class="setting_name">
+			<textarea name="success_email_text" style="width: 98%; height: 80px;"><?php echo str_replace($raw, $friendly, ($setting['success_email_text'])); ?></textarea>
+		</td>
+	</tr>
+	<tr>
+		<td class="newsection"><?php echo $TEXT['SUCCESS'].' '.$TEXT['PAGE']; ?>:</td>
+		<td class="newsection">
+			<select name="success_page">
+			<option value="none"><?php echo $TEXT['NONE']; ?></option>
+			<?php 
+			// Get exisiting pages and show the pagenames
+			$query = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE visibility <> 'deleted'");
+			while($mail_page = $query->fetchRow()) {
+				if(!$admin->page_is_visible($mail_page))
+					continue;
+				$mail_pagename = $mail_page['menu_title'];		
+				$success_page = $mail_page['page_id'];
+				echo $success_page.':'.$setting['success_page'].':';
+				if($setting['success_page'] == $success_page) {
+					$selected = ' selected';
+				} else { 
+					$selected = '';
+				}
+				echo '<option value="'.$success_page.'"'.$selected.'>'.$mail_pagename.'</option>';
+		 	}
+			?>
+			</select>
+		</td>
+	</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+	<tr>
+		<td align="left">
+			<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+		</td>
+		<td align="right">
+			<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
+		</td>
+	</tr>
+</table>
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/modify_settings.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/view.php
===================================================================
--- tags/2.7.0/wb/modules/form/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/view.php	(revision 838)
@@ -0,0 +1,471 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+// check if frontend.css file needs to be included into the <body></body> of view.php
+if((!function_exists('register_frontend_modfiles') || !defined('MOD_FRONTEND_CSS_REGISTERED')) &&  
+	file_exists(WB_PATH .'/modules/form/frontend.css')) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/form/frontend.css');
+	echo "\n</style>\n";
+} 
+
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+// obtain the settings of the output filter module
+if(file_exists(WB_PATH.'/modules/output_filter/filter-routines.php')) {
+	include_once(WB_PATH.'/modules/output_filter/filter-routines.php');
+	$filter_settings = get_output_filter_settings();
+} else {
+	// no output filter used, define default settings
+	$filter_settings['email_filter'] = 0;
+}
+
+// Function for generating an optionsfor a select field
+if (!function_exists('make_option')) {
+function make_option(&$n, $k, $values) {
+	// start option group if it exists
+	if (substr($n,0,2) == '[=') {
+	 	$n = '<optgroup label="'.substr($n,2,strlen($n)).'">';
+	} elseif ($n == ']') {
+		$n = '</optgroup>';
+	} else {
+		if(in_array($n, $values)) {
+			$n = '<option selected="selected" value="'.$n.'">'.$n.'</option>';
+		} else {
+			$n = '<option value="'.$n.'">'.$n.'</option>';
+		}
+	}
+}
+}
+// Function for generating a checkbox
+if (!function_exists('make_checkbox')) {
+function make_checkbox(&$n, $idx, $params) {
+	$field_id = $params[0][0];
+	$seperator = $params[0][1];
+	$label_id = 'wb_'.str_replace(" ", "_", $n);
+	if(in_array($n, $params[1])) {
+		$n = '<input class="field_checkbox" type="checkbox" id="'.$label_id.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'" checked="checked" />'.'<label for="'.$label_id.'" class="checkbox_label">'.$n.'</lable>'.$seperator;
+	} else {
+		$n = '<input class="field_checkbox" type="checkbox" id="'.$label_id.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'" />'.'<label for="'.$label_id.'" class="checkbox_label">'.$n.'</label>'.$seperator;
+	}	
+}
+}
+// Function for generating a radio button
+if (!function_exists('make_radio')) {
+function make_radio(&$n, $idx, $params) {
+	$field_id = $params[0];
+	$group = $params[1];
+	$seperator = $params[2];
+	$label_id = 'wb_'.str_replace(" ", "_", $n);
+	if($n == $params[3]) { 
+		$n = '<input class="field_radio" type="radio" id="'.$label_id.'" name="field'.$field_id.'" value="'.$n.'" checked="checked" />'.'<label for="'.$label_id.'" class="radio_label">'.$n.'</label>'.$seperator;
+	} else {
+		$n = '<input class="field_radio" type="radio" id="'.$label_id.'" name="field'.$field_id.'" value="'.$n.'" />'.'<label for="'.$label_id.'" class="radio_label">'.$n.'</label>'.$seperator;
+	}
+}
+}
+// Generate temp submission id
+function new_submission_id() {
+	$submission_id = '';
+	$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+	srand((double)microtime()*1000000);
+	$i = 0;
+	while ($i <= 7) {
+		$num = rand() % 33;
+		$tmp = substr($salt, $num, 1);
+		$submission_id = $submission_id . $tmp;
+		$i++;
+	}
+	return $submission_id;
+}
+
+// Work-out if the form has been submitted or not
+if($_POST == array()) {
+
+// Set new submission ID in session
+$_SESSION['form_submission_id'] = new_submission_id();
+
+// Get settings
+$query_settings = $database->query("SELECT header,field_loop,footer,use_captcha FROM ".TABLE_PREFIX."mod_form_settings WHERE section_id = '$section_id'");
+if($query_settings->numRows() > 0) {
+	$fetch_settings = $query_settings->fetchRow();
+	$header = str_replace('{WB_URL}',WB_URL,$fetch_settings['header']);
+	$field_loop = $fetch_settings['field_loop'];
+	$footer = str_replace('{WB_URL}',WB_URL,$fetch_settings['footer']);
+	$use_captcha = $fetch_settings['use_captcha'];
+} else {
+	$header = '';
+	$field_loop = '';
+	$footer = '';
+}
+
+?>
+<form name="form" action="<?php echo htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])); ?>" method="post">
+<input type="hidden" name="submission_id" value="<?php echo $_SESSION['form_submission_id']; ?>" />
+<?php
+if(ENABLED_ASP) { // first add some honeypot-fields
+?>
+<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
+<p class="nixhier">
+email address:
+<label for="email">Leave this field email-address blank:</label>
+<input id="email" name="email" size="56" value="" /><br />
+Homepage:
+<label for="homepage">Leave this field homepage blank:</label>
+<input id="homepage" name="homepage" size="55" value="" /><br />
+URL:
+<label for="url">Leave this field url blank:</label>
+<input id="url" name="url" size="61" value="" /><br />
+Comment:
+<label for="comment">Leave this field comment blank:</label>
+<textarea id="comment" name="comment" cols="50" rows="10"></textarea><br />
+</p>
+
+<?php }
+
+// Print header
+echo $header;
+
+// Get list of fields
+$query_fields = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' ORDER BY position ASC");
+
+if($query_fields->numRows() > 0) {
+	while($field = $query_fields->fetchRow()) {
+		// Set field values
+		$field_id = $field['field_id'];
+		$value = $field['value'];
+		// Print field_loop after replacing vars with values
+		$vars = array('{TITLE}', '{REQUIRED}');
+		if (($field['type'] == "radio") || ($field['type'] == "checkbox")) {
+			$field_title = $field['title'];
+		} else {
+			$field_title = '<label for="field'.$field_id.'">'.$field['title'].'</label>';
+		}
+		$values = array($field_title);
+		if ($field['required'] == 1) {
+			$values[] = '<span class="required">*</span>';
+		} else {
+			$values[] = '';
+		}
+		if($field['type'] == 'textfield') {
+			$vars[] = '{FIELD}';
+			$values[] = '<input type="text" name="field'.$field_id.'" id="field'.$field_id.'" maxlength="'.$field['extra'].'" value="'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:$value).'" class="textfield" />';
+		} elseif($field['type'] == 'textarea') {
+			$vars[] = '{FIELD}';
+			$values[] = '<textarea name="field'.$field_id.'" id="field'.$field_id.'" class="textarea" cols="25" rows="5">'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:$value).'</textarea>';
+		} elseif($field['type'] == 'select') {
+			$vars[] = '{FIELD}';
+			$options = explode(',', $value);
+			array_walk($options, 'make_option', (isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:array()));
+			$field['extra'] = explode(',',$field['extra']);
+			$values[] = '<select name="field'.$field_id.'[]" id="field'.$field_id.'" size="'.$field['extra'][0].'" '.$field['extra'][1].'="'.$field['extra'][1].'" class="select">'.implode($options).'</select>';
+		} elseif($field['type'] == 'heading') {
+			$vars[] = '{FIELD}';
+			$values[] = '<input type="hidden" name="field'.$field_id.'" id="field'.$field_id.'" value="===['.$field['title'].']===" />';
+			$tmp_field_loop = $field_loop;		// temporarily modify the field loop template
+			$field_loop = $field['extra'];
+		} elseif($field['type'] == 'checkbox') {
+			$vars[] = '{FIELD}';
+			$options = explode(',', $value);
+			array_walk($options, 'make_checkbox', array(array($field_id,$field['extra']),(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:array())));
+			$options[count($options)-1]=substr($options[count($options)-1],0,strlen($options[count($options)-1])-strlen($field['extra']));
+			$values[] = implode($options);
+		} elseif($field['type'] == 'radio') {
+			$vars[] = '{FIELD}';
+			$options = explode(',', $value);
+			array_walk($options, 'make_radio', array($field_id,$field['title'],$field['extra'], (isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:'')));
+			$options[count($options)-1]=substr($options[count($options)-1],0,strlen($options[count($options)-1])-strlen($field['extra']));
+			$values[] = implode($options);
+		} elseif($field['type'] == 'email') {
+			$vars[] = '{FIELD}';
+			$values[] = '<input type="text" name="field'.$field_id.'" id="field'.$field_id.'" value="'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:'').'" maxlength="'.$field['extra'].'" class="email" />';
+		}
+		if(isset($_SESSION['field'.$field_id])) unset($_SESSION['field'.$field_id]);
+		if($field['type'] != '') {
+			echo str_replace($vars, $values, $field_loop);
+		}
+		if (isset($tmp_field_loop)) $field_loop = $tmp_field_loop;
+	}
+}
+
+// Captcha
+if($use_captcha) { ?>
+	<tr>
+	<td class="field_title"><?php echo $TEXT['VERIFICATION']; ?>:</td>
+	<td><?php call_captcha(); ?></td>
+	</tr>
+	<?php
+}
+
+// Print footer
+echo $footer;
+
+/**
+	NOTE: comment out the line ob_end_flush() if you indicate problems (e.g. when using ob_start in the index.php of your template)
+	With ob_end_flush(): output filter will be disabled for this page (and all sections embedded on this page)
+	Without ob_end_flush(): emails are rewritten (e.g. name@domain.com --> name(at)domain(dot)com) if output filter is enabled
+	All replacements made by the Output-Filter module will be reverted before the email is send out
+*/
+if($filter_settings['email_filter'] && !($filter_settings['at_replacement']=='@' && $filter_settings['dot_replacement']=='.')) { 
+	ob_end_flush();
+}
+
+// Add form end code
+?>
+</form>
+<?php
+
+} else {
+	
+	// Check that submission ID matches
+	if(isset($_SESSION['form_submission_id']) AND isset($_POST['submission_id']) AND $_SESSION['form_submission_id'] == $_POST['submission_id']) {
+		
+		// Set new submission ID in session
+		$_SESSION['form_submission_id'] = new_submission_id();
+		
+		if(ENABLED_ASP && ( // form faked? Check the honeypot-fields.
+			(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when'])) OR 
+			($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
+			(!isset($_POST['email']) OR $_POST['email']) OR
+			(!isset($_POST['homepage']) OR $_POST['homepage']) OR
+			(!isset($_POST['comment']) OR $_POST['comment']) OR
+			(!isset($_POST['url']) OR $_POST['url'])
+		)) {
+			exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+		}
+
+		// Submit form data
+		// First start message settings
+		$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_settings WHERE section_id = '$section_id'");
+		if($query_settings->numRows() > 0) {
+			$fetch_settings = $query_settings->fetchRow();
+			$email_to = $fetch_settings['email_to'];
+			$email_from = $fetch_settings['email_from'];
+			if(substr($email_from, 0, 5) == 'field') {
+				// Set the email from field to what the user entered in the specified field
+				$email_from = htmlspecialchars($wb->add_slashes($_POST[$email_from]));
+			}
+			$email_fromname = $fetch_settings['email_fromname'];
+			$email_subject = $fetch_settings['email_subject'];
+			$success_page = $fetch_settings['success_page'];
+			$success_email_to = $fetch_settings['success_email_to'];
+			if(substr($success_email_to, 0, 5) == 'field') {
+				// Set the success_email to field to what the user entered in the specified field
+				$success_email_to = htmlspecialchars($wb->add_slashes($_POST[$success_email_to]));
+			}
+			$success_email_from = $fetch_settings['success_email_from'];
+			$success_email_fromname = $fetch_settings['success_email_fromname'];
+			$success_email_text = $fetch_settings['success_email_text'];
+			$success_email_subject = $fetch_settings['success_email_subject'];		
+			$max_submissions = $fetch_settings['max_submissions'];
+			$stored_submissions = $fetch_settings['stored_submissions'];
+			$use_captcha = $fetch_settings['use_captcha'];
+		} else {
+			exit($TEXT['UNDER_CONSTRUCTION']);
+		}
+		$email_body = '';
+		
+		// Create blank "required" array
+		$required = array();
+		
+		// Captcha
+		if($use_captcha) {
+			if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
+				// Check for a mismatch
+				if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
+					$captcha_error = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
+				}
+			} else {
+				$captcha_error = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
+			}
+		}
+		if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
+
+		// Loop through fields and add to message body
+		// Get list of fields
+		$query_fields = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' ORDER BY position ASC");
+		if($query_fields->numRows() > 0) {
+			while($field = $query_fields->fetchRow()) {
+				// Add to message body
+				if($field['type'] != '') {
+					if(!empty($_POST['field'.$field['field_id']])) {
+						if (is_array($_POST['field'.$field['field_id']])) {
+							$_SESSION['field'.$field['field_id']] = $_POST['field'.$field['field_id']];
+						} else {
+							$_SESSION['field'.$field['field_id']] = htmlspecialchars($_POST['field'.$field['field_id']]);
+						}
+						// if the output filter is active, we need to revert (dot) to . and (at) to @ (using current filter settings)
+						// otherwise the entered mail will not be accepted and the recipient would see (dot), (at) etc.
+						if ($filter_settings['email_filter']) {
+							$field_value = $_POST['field'.$field['field_id']];
+							$field_value = str_replace($filter_settings['at_replacement'], '@', $field_value);
+							$field_value = str_replace($filter_settings['dot_replacement'], '.', $field_value);
+							$_POST['field'.$field['field_id']] = $field_value;
+						}
+						if($field['type'] == 'email' AND $admin->validate_email($_POST['field'.$field['field_id']]) == false) {
+							$email_error = $MESSAGE['USERS']['INVALID_EMAIL'];
+						}
+						if($field['type'] == 'heading') {
+							$email_body .= $_POST['field'.$field['field_id']]."\n\n";
+						} elseif (!is_array($_POST['field'.$field['field_id']])) {
+							$email_body .= $field['title'].': '.$_POST['field'.$field['field_id']]."\n\n";
+						} else {
+							$email_body .= $field['title'].": \n";
+							foreach ($_POST['field'.$field['field_id']] as $k=>$v) {
+								$email_body .= $v."\n";
+							}
+							$email_body .= "\n";
+						}
+					} elseif($field['required'] == 1) {
+						$required[] = $field['title'];
+					}
+				}
+			}
+		}
+	
+		// Check if the user forgot to enter values into all the required fields
+		if($required != array()) {
+			if(!isset($MESSAGE['MOD_FORM']['REQUIRED_FIELDS'])) {
+				echo 'You must enter details for the following fields';
+			} else {
+				echo $MESSAGE['MOD_FORM']['REQUIRED_FIELDS'];
+			}
+			echo ':<br /><ul>';
+			foreach($required AS $field_title) {
+				echo '<li>'.$field_title;
+			}
+			if(isset($email_error)) {
+				echo '<li>'.$email_error.'</li>';
+			}
+			if(isset($captcha_error)) {
+				echo '<li>'.$captcha_error.'</li>';
+			}
+			echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
+		} else {
+			if(isset($email_error)) {
+				echo '<br /><ul>';
+				echo '<li>'.$email_error.'</li>';
+				echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
+			} elseif(isset($captcha_error)) {
+				echo '<br /><ul>';
+				echo '<li>'.$captcha_error.'</li>';
+				echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
+			} else {
+				// Check how many times form has been submitted in last hour
+				$last_hour = time()-3600;
+				$query_submissions = $database->query("SELECT submission_id FROM ".TABLE_PREFIX."mod_form_submissions WHERE submitted_when >= '$last_hour'");
+				if($query_submissions->numRows() > $max_submissions) {
+					// Too many submissions so far this hour
+					echo $MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'];
+					$success = false;
+				} else {
+					// Now send the email
+					if($email_to != '') {
+						if($email_from != '') {
+							if($wb->mail($email_from,$email_to,$email_subject,$email_body,$email_fromname)) {
+								$success = true;
+							}
+						} else {
+							if($wb->mail('',$email_to,$email_subject,$email_body,$email_fromname)) { 
+								$success = true; 
+							}
+						}
+					}				
+					if($success_email_to != '') {
+						if($success_email_from != '') {
+							if($wb->mail($success_email_from,$success_email_to,$success_email_subject,$success_email_text,$success_email_fromname)) {
+								$success = true;
+							}
+						} else {
+							if($wb->mail('',$success_email_to,$success_email_subject,$success_email_text,$success_email_fromname)) {
+								$success = true;
+							}
+						}
+					}				
+			
+					// Write submission to database
+					if(isset($admin) AND $admin->is_authenticated() AND $admin->get_user_id() > 0) {
+						$submitted_by = $admin->get_user_id();
+					} else {
+						$submitted_by = 0;
+					}
+					$email_body = $wb->add_slashes($email_body);
+					$database->query("INSERT INTO ".TABLE_PREFIX."mod_form_submissions (page_id,section_id,submitted_when,submitted_by,body) VALUES ('".PAGE_ID."','$section_id','".mktime()."','$submitted_by','$email_body')");
+					// Make sure submissions table isn't too full
+					$query_submissions = $database->query("SELECT submission_id FROM ".TABLE_PREFIX."mod_form_submissions ORDER BY submitted_when");
+					$num_submissions = $query_submissions->numRows();
+					if($num_submissions > $stored_submissions) {
+						// Remove excess submission
+						$num_to_remove = $num_submissions-$stored_submissions;
+						while($submission = $query_submissions->fetchRow()) {
+							if($num_to_remove > 0) {
+								$submission_id = $submission['submission_id'];
+								$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_submissions WHERE submission_id = '$submission_id'");
+								$num_to_remove = $num_to_remove-1;
+							}
+						}
+					}
+					if(!$database->is_error()) {
+						$success = true;
+					}
+				}
+			}	
+		}
+	}
+	
+	// Now check if the email was sent successfully
+	if(isset($success) AND $success == true) {
+	   if ($success_page=='none') {
+			echo str_replace("\n","<br />",$success_email_text);
+  		} else {
+			$query_menu = $database->query("SELECT link,target FROM ".TABLE_PREFIX."pages WHERE `page_id` = '$success_page'");
+			if($query_menu->numRows() > 0) {
+  	        	$fetch_settings = $query_menu->fetchRow();
+			   $link = WB_URL.PAGES_DIRECTORY.$fetch_settings['link'].PAGE_EXTENSION;
+			   echo "<script type='text/javascript'>location.href='".$link."';</script>";
+			}    
+		}
+		// clearing session on success
+		$query_fields = $database->query("SELECT field_id FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' AND required = 1");
+		while($field = $query_fields->fetchRow()) {
+			$field_id = $field[0];
+			if(isset($_SESSION['field'.$field_id])) unset($_SESSION['field'.$field_id]);
+		}
+	} else {
+		if(isset($success) AND $success == false) {
+			echo $TEXT['ERROR'];
+		}
+	}	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/backend.css
===================================================================
--- tags/2.7.0/wb/modules/form/backend.css	(nonexistent)
+++ tags/2.7.0/wb/modules/form/backend.css	(revision 838)
@@ -0,0 +1,22 @@
+.setting_name {
+	vertical-align: top;
+}
+.newsection {
+	border-top: 1px dashed #fff;
+}
+
+/* 
+  The definitions below provide the style for the edit CSS button 
+  Required CSS class name: input.mod_moduledirectory_edit_css
+*/
+input.mod_form_edit_css {
+  color: #000;
+  background-color: #F0F0F0;
+  border: 1px solid gray;
+  padding: 2px;
+  margin: 0;
+  margin-left: 625px;
+  margin-top: -20px;
+  margin-bottom: 5px;
+  width: 110px;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/backend.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/frontend.css
===================================================================
--- tags/2.7.0/wb/modules/form/frontend.css	(nonexistent)
+++ tags/2.7.0/wb/modules/form/frontend.css	(revision 838)
@@ -0,0 +1,46 @@
+.required {
+	color: #FF0000;
+}
+.field_title {
+	font-size: 12px;
+	width: 100px;
+	vertical-align: top;
+	text-align:right;
+}
+.textfield {
+	font-size: 12px;
+	width: 200px;
+}
+.textarea {
+	font-size: 12px;
+	width: 90%;
+	height: 100px;
+}
+.field_heading {
+	font-size: 12px;
+	font-weight: bold;
+	border-bottom-width: 2px;
+	border-bottom-style: solid;
+	border-bottom-color: #666666;
+	padding-top: 10px;
+	color: #666666;
+}
+.select {
+	font-size: 12px;
+}
+.checkbox_label {
+	font-size: 11px;
+	cursor: pointer;
+}
+.radio_label {
+	font-size: 11px;
+	cursor: pointer;
+}
+.email {
+	font-size: 12px;
+	width: 200px;
+}
+/*** Don't remove the class nixhier, this is required for ASP ***/
+.nixhier {
+	display:none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/frontend.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/modify.php
===================================================================
--- tags/2.7.0/wb/modules/form/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/modify.php	(revision 838)
@@ -0,0 +1,194 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+// Must include code to stop this file being access directly
+if(!defined('WB_PATH')) { exit("Cannot access this file directly"); }
+
+//Delete all form fields with no title
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_fields  WHERE page_id = '$page_id' and section_id = '$section_id' and title=''");
+
+?>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left" width="33%">
+		<input type="button" value="<?php echo $TEXT['ADD'].' '.$TEXT['FIELD']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/form/add_field.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
+	</td>
+	<td align="right" width="33%">
+		<input type="button" value="<?php echo $TEXT['SETTINGS']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/form/modify_settings.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['FIELD']; ?></h2>
+<?php
+
+// Loop through existing fields
+$query_fields = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_form_fields` WHERE section_id = '$section_id' ORDER BY position ASC");
+if($query_fields->numRows() > 0) {
+	$num_fields = $query_fields->numRows();
+	$row = 'a';
+	?>
+	<table cellpadding="2" cellspacing="0" border="0" width="100%">
+	<?php
+	while($field = $query_fields->fetchRow()) {
+		?>
+		<tr class="row_<?php echo $row; ?>" height="20">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/form/modify_field.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&field_id=<?php echo $field['field_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="^" />
+				</a>
+			</td>		
+			<td>
+				<a href="<?php echo WB_URL; ?>/modules/form/modify_field.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&field_id=<?php echo $field['field_id']; ?>">
+					<?php echo $field['title']; ?>
+				</a>
+			</td>
+			<td width="175">
+				<?php
+				echo $TEXT['TYPE'].':';
+				if($field['type'] == 'textfield') {
+					echo $TEXT['SHORT_TEXT'];
+				} elseif($field['type'] == 'textarea') {
+					echo $TEXT['LONG_TEXT'];
+				} elseif($field['type'] == 'heading') {
+					echo $TEXT['HEADING'];
+				} elseif($field['type'] == 'select') {
+					echo $TEXT['SELECT_BOX'];
+				} elseif($field['type'] == 'checkbox') {
+					echo $TEXT['CHECKBOX_GROUP'];
+				} elseif($field['type'] == 'radio') {
+					echo $TEXT['RADIO_BUTTON_GROUP'];
+				} elseif($field['type'] == 'email') {
+					echo $TEXT['EMAIL_ADDRESS'];
+				}
+				?>
+			</td>
+			<td width="95">		
+			<?php 
+			if ($field['type'] != 'group_begin') {
+				echo $TEXT['REQUIRED'].': '; if($field['required'] == 1) { echo $TEXT['YES']; } else { echo $TEXT['NO']; }
+			}
+			?>
+			</td>
+			<td width="110">
+			<?php
+			if ($field['type'] == 'select') {
+				$field['extra'] = explode(',',$field['extra']);
+				echo $TEXT['MULTISELECT'].': '; if($field['extra'][1] == 'multiple') { echo $TEXT['YES']; } else { echo $TEXT['NO']; }
+			}
+			?>
+			</td>
+			<td width="20">
+			<?php if($field['position'] != 1) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/form/move_up.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&field_id=<?php echo $field['field_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" border="0" alt="^" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+			<?php if($field['position'] != $num_fields) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/form/move_down.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&field_id=<?php echo $field['field_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" border="0" alt="v" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/form/delete_field.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&field_id=<?php echo $field['field_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+				</a>
+			</td>
+		</tr>
+		<?php
+		// Alternate row color
+		if($row == 'a') {
+			$row = 'b';
+		} else {
+			$row = 'a';
+		}
+	}
+	?>
+	</table>
+	<?php
+} else {
+	echo $TEXT['NONE_FOUND'];
+}
+
+?>
+
+<br /><br />
+
+<h2><?php echo $TEXT['SUBMISSIONS']; ?></h2>
+
+<?php
+
+// Query submissions table
+$query_submissions = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_form_submissions` WHERE section_id = '$section_id' ORDER BY submitted_when ASC");
+if($query_submissions->numRows() > 0) {
+	?>
+	<table cellpadding="2" cellspacing="0" border="0" width="100%">
+	<?php
+	// List submissions
+	$row = 'a';
+	while($submission = $query_submissions->fetchRow()) {
+		?>
+		<tr class="row_<?php echo $row; ?>" height="20">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/form/view_submission.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&submission_id=<?php echo $submission['submission_id']; ?>" title="<?php echo $TEXT['OPEN']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/folder_16.png" alt="<?php echo $TEXT['OPEN']; ?>" border="0" />
+				</a>
+			</td>
+			<td width="237"><?php echo $TEXT['SUBMISSION_ID'].': '.$submission['submission_id']; ?></td>
+			<td><?php echo $TEXT['SUBMITTED'].': '.gmdate(TIME_FORMAT.', '.DATE_FORMAT, $submission['submitted_when']+TIMEZONE); ?></td>
+			<td width="20">
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/form/delete_submission.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&submission_id=<?php echo $submission['submission_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+				</a>
+			</td>
+		</tr>
+		<?php
+		// Alternate row color
+		if($row == 'a') {
+			$row = 'b';
+		} else {
+			$row = 'a';
+		}
+	}
+	?>
+	</table>
+	<?php
+} else {
+	echo $TEXT['NONE_FOUND'];
+}
+
+?>
+
+<br />
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/save_field.php
===================================================================
--- tags/2.7.0/wb/modules/form/save_field.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/save_field.php	(revision 838)
@@ -0,0 +1,104 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_POST['field_id']) OR !is_numeric($_POST['field_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$field_id = $_POST['field_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Validate all fields
+if($admin->get_post('title') == '' OR $admin->get_post('type') == '') {
+	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/form/modify_field.php?page_id='.$page_id.'&section_id='.$section_id.'&field_id='.$field_id);
+} else {
+	$title = $admin->add_slashes($admin->get_post('title'));
+	$type = $admin->add_slashes($admin->get_post('type'));
+	$required = $admin->add_slashes($admin->get_post('required'));
+}
+$value = '';
+
+// Update row
+$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET title = '$title', type = '$type', required = '$required' WHERE field_id = '$field_id'");
+
+// If field type has multiple options, get all values and implode them
+$list_count = $admin->get_post('list_count');
+if(is_numeric($list_count)) {
+	$values = array();
+	for($i = 1; $i <= $list_count; $i++) {
+		if($admin->get_post('value'.$i) != '') {
+			$values[] = str_replace(",","&#44;",$admin->get_post('value'.$i));
+		}
+	}
+	$value = implode(',', $values);
+}
+
+// Get extra fields for field-type-specific settings
+if($admin->get_post('type') == 'textfield') {
+	$length = $admin->get_post_escaped('length');
+	$value = $admin->get_post_escaped('value');
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '$value', extra = '$length' WHERE field_id = '$field_id'");
+} elseif($admin->get_post('type') == 'textarea') {
+	$value = $admin->get_post_escaped('value');
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '$value', extra = '' WHERE field_id = '$field_id'");
+} elseif($admin->get_post('type') == 'heading') {
+	$extra = $admin->get_post('template');
+	if(trim($extra) == '') $extra = '<tr><td class="field_heading" colspan="2">{TITLE}{FIELD}</td></tr>';
+	$extra = $admin->add_slashes($extra);
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '', extra = '$extra' WHERE field_id = '$field_id'");
+} elseif($admin->get_post('type') == 'select') {
+	$extra = $admin->get_post_escaped('size').','.$admin->get_post_escaped('multiselect');
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '$value', extra = '$extra' WHERE field_id = '$field_id'");
+} elseif($admin->get_post('type') == 'checkbox') {
+	$extra = $admin->get_post_escaped('seperator');
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '$value', extra = '$extra' WHERE field_id = '$field_id'");
+} elseif($admin->get_post('type') == 'radio') {
+	$extra = $admin->get_post_escaped('seperator');
+	$database->query("UPDATE ".TABLE_PREFIX."mod_form_fields SET value = '$value', extra = '$extra' WHERE field_id = '$field_id'");
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/form/modify_field.php?page_id='.$page_id.'&section_id='.$section_id.'&field_id='.$field_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/form/modify_field.php?page_id='.$page_id.'&section_id='.$section_id.'&field_id='.$field_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/save_field.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/save_settings.php
===================================================================
--- tags/2.7.0/wb/modules/form/save_settings.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/save_settings.php	(revision 838)
@@ -0,0 +1,86 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// This code removes any <?php tags and adds slashes
+$friendly = array('&lt;', '&gt;', '?php');
+$raw = array('<', '>', '');
+$header = $admin->add_slashes($_POST['header']);
+$field_loop = $admin->add_slashes($_POST['field_loop']);
+$footer = $admin->add_slashes($_POST['footer']);
+$email_to = $admin->add_slashes($_POST['email_to']);
+$use_captcha = $admin->add_slashes($_POST['use_captcha']);
+if($_POST['email_from_field'] == '') {
+	$email_from = $admin->add_slashes($_POST['email_from']);
+} else {
+	$email_from = $admin->add_slashes($_POST['email_from_field']);
+}
+$email_fromname = $admin->add_slashes($_POST['email_fromname']);
+$email_subject = $admin->add_slashes($_POST['email_subject']);
+$success_page = $admin->add_slashes($_POST['success_page']);
+$success_email_to = $admin->add_slashes($_POST['success_email_to']);
+$success_email_from = $admin->add_slashes($_POST['success_email_from']);
+$success_email_fromname = $admin->add_slashes($_POST['success_email_fromname']);
+$success_email_text = $admin->add_slashes($_POST['success_email_text']);
+$success_email_subject = $admin->add_slashes($_POST['success_email_subject']);
+if(!is_numeric($_POST['max_submissions'])) {
+	$max_submissions = 50;
+} else {
+	$max_submissions = $_POST['max_submissions'];
+}
+if(!is_numeric($_POST['stored_submissions'])) {
+	$stored_submissions = 100;
+} else {
+	$stored_submissions = $_POST['stored_submissions'];
+}
+// Make sure max submissions is not greater than stored submissions if stored_submissions <>0
+if($max_submissions > $stored_submissions) {
+	$max_submissions = $stored_submissions;
+}
+
+// Update settings
+$database->query("UPDATE ".TABLE_PREFIX."mod_form_settings SET header = '$header', field_loop = '$field_loop', footer = '$footer', email_to = '$email_to', email_from = '$email_from', email_fromname = '$email_fromname', email_subject = '$email_subject', success_page = '$success_page', success_email_to = '$success_email_to', success_email_from = '$success_email_from', success_email_fromname = '$success_email_fromname', success_email_text = '$success_email_text', success_email_subject = '$success_email_subject', max_submissions = '$max_submissions', stored_submissions = '$stored_submissions', use_captcha = '$use_captcha' WHERE section_id = '$section_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/save_settings.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/install.php
===================================================================
--- tags/2.7.0/wb/modules/form/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/install.php	(revision 838)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+if(defined('WB_URL')) {
+		
+	// Create tables
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_fields`");
+	$mod_form = 'CREATE TABLE `'.TABLE_PREFIX.'mod_form_fields` ( `field_id` INT NOT NULL AUTO_INCREMENT,'
+		. ' `section_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `page_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `position` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `title` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `type` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `required` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `value` TEXT NOT NULL ,'
+		. ' `extra` TEXT NOT NULL ,'
+		. ' PRIMARY KEY ( `field_id` ) '
+		. ' )';
+	$database->query($mod_form);
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_settings`");
+	$mod_form = 'CREATE TABLE `'.TABLE_PREFIX.'mod_form_settings` ('
+		. ' `section_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `page_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `header` TEXT NOT NULL ,'
+		. ' `field_loop` TEXT NOT NULL ,'
+		. ' `footer` TEXT NOT NULL ,'
+		. ' `email_to` TEXT NOT NULL ,'
+		. ' `email_from` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `email_fromname` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `email_subject` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `success_page` TEXT NOT NULL ,'
+		. ' `success_email_to` TEXT NOT NULL ,'
+		. ' `success_email_from` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `success_email_fromname` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `success_email_text` TEXT NOT NULL ,'
+		. ' `success_email_subject` VARCHAR(255) NOT NULL DEFAULT \'\' ,'
+		. ' `stored_submissions` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `max_submissions` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `use_captcha` INT NOT NULL DEFAULT \'0\' ,'
+		. ' PRIMARY KEY ( `section_id` ) '
+		. ' )';
+	$database->query($mod_form);
+	
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_submissions`");
+	$mod_form = 'CREATE TABLE `'.TABLE_PREFIX.'mod_form_submissions` ( `submission_id` INT NOT NULL AUTO_INCREMENT,'
+		. ' `section_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `page_id` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `submitted_when` INT NOT NULL DEFAULT \'0\' ,'
+		. ' `submitted_by` INT NOT NULL DEFAULT \'0\','
+		. ' `body` TEXT NOT NULL,'
+		. ' PRIMARY KEY ( `submission_id` ) '
+		. ' )';
+	$database->query($mod_form);
+		
+	// Insert info into the search table
+	// Module query info
+	$field_info = array();
+	$field_info['page_id'] = 'page_id';
+	$field_info['title'] = 'page_title';
+	$field_info['link'] = 'link';
+	$field_info['description'] = 'description';
+	$field_info['modified_when'] = 'modified_when';
+	$field_info['modified_by'] = 'modified_by';
+	$field_info = serialize($field_info);
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'form', '$field_info')");
+	// Query start
+	$query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title,	[TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by	FROM [TP]mod_form_fields, [TP]mod_form_settings, [TP]pages WHERE ";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'form')");
+	// Query body
+	$query_body_code = " [TP]pages.page_id = [TP]mod_form_settings.page_id AND [TP]mod_form_settings.header LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_form_settings.page_id AND [TP]mod_form_settings.footer LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_form_fields.page_id AND [TP]mod_form_fields.title LIKE \'%[STRING]%\' ";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'form')");
+	// Query end
+	$query_end_code = "";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'form')");
+	
+	// Insert blank row (there needs to be at least on row for the search to work)
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_form_fields (page_id,section_id) VALUES ('0','0')");
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_form_settings (page_id,section_id) VALUES ('0','0')");
+
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/add.php
===================================================================
--- tags/2.7.0/wb/modules/form/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/add.php	(revision 838)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+// Insert an extra rows into the database
+$header = '<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"98%\">';
+$field_loop = '<tr><td class=\"field_title\">{TITLE}{REQUIRED}:</td><td>{FIELD}</td></tr>';
+$footer = '<tr><td>&nbsp;</td>
+<td>
+<input type=\"submit\" name=\"submit\" value=\"Submit Form\" />
+</td>
+</tr>
+</table>';
+$email_to = $admin->get_email();
+$email_from = '';
+$email_fromname = '';
+$email_subject = 'Results from form on website...';
+$success_page = 'none';
+$success_email_to = '';
+$success_email_from = $admin->get_email();
+$success_email_fromname = '';
+$success_email_text = 'Thank you for submitting your form on '.WEBSITE_TITLE;
+$success_email_text = addslashes($success_email_text);
+$success_email_subject = 'You have submitted a form';
+$max_submissions = 50;
+$stored_submissions = 50;
+$use_captcha = true;
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_form_settings (page_id,section_id,header,field_loop,footer,email_to,email_from,email_fromname,email_subject,success_page,success_email_to,success_email_from,success_email_fromname,success_email_text,success_email_subject,max_submissions,stored_submissions,use_captcha) VALUES ('$page_id','$section_id','$header','$field_loop','$footer','$email_to','$email_from','$email_fromname','$email_subject','$success_page','$success_email_to','$success_email_from','$success_email_fromname','$success_email_text','$success_email_subject','$max_submissions','$stored_submissions','$use_captcha')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/info.php
===================================================================
--- tags/2.7.0/wb/modules/form/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/info.php	(revision 838)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+$module_directory = 'form';
+$module_name = 'Form';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.6.x';
+$module_author = 'Ryan Djurovich & Rudolph Lartey - additions John Maats - PCWacht';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to create customised online forms, such as a feedback form. '.
+'Thank-you to Rudolph Lartey who help enhance this module, providing code for extra field types, etc.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/modify_field.php
===================================================================
--- tags/2.7.0/wb/modules/form/modify_field.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/modify_field.php	(revision 838)
@@ -0,0 +1,229 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['field_id']) OR !is_numeric($_GET['field_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$field_id = $_GET['field_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE field_id = '$field_id'");
+$form = $query_content->fetchRow();
+$type = $form['type'];
+if($type == '') {
+	$type = 'none';
+}
+
+// Set raw html <'s and >'s to be replaced by friendly html code
+$raw = array('<', '>');
+$friendly = array('&lt;', '&gt;');
+?>
+
+<form name="modify" action="<?php echo WB_URL; ?>/modules/form/save_field.php" method="post" style="margin: 0;">
+
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+<input type="hidden" name="field_id" value="<?php echo $field_id; ?>">
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+	<tr>
+		<td colspan="2"><strong><?php echo $TEXT['MODIFY'].' '.$TEXT['FIELD']; ?></strong></td>
+	</tr>
+	<tr>
+		<td width="20%"><?php echo $TEXT['TITLE']; ?>:</td>
+		<td>
+			<input type="text" name="title" value="<?php echo htmlspecialchars(($form['title'])); ?>" style="width: 98%;" maxlength="255" />
+		</td>
+	</tr>
+	<tr>
+		<td><?php echo $TEXT['TYPE']; ?>:</td>
+		<td>
+			<select name="type" style="width: 98%;">
+				<option value=""><?php echo $TEXT['PLEASE_SELECT']; ?>...</option>
+				<option value="heading"<?php if($type == 'heading') { echo ' selected'; } ?>><?php echo $TEXT['HEADING']; ?></option>
+				<option value="textfield"<?php if($type == 'textfield') { echo ' selected'; } ?>><?php echo $TEXT['SHORT'].' '.$TEXT['TEXT']; ?> (Textfield)</option>
+				<option value="textarea"<?php if($type == 'textarea') { echo ' selected'; } ?>><?php echo $TEXT['LONG'].' '.$TEXT['TEXT']; ?> (Textarea)</option>
+				<option value="select"<?php if($type == 'select') { echo ' selected'; } ?>><?php echo $TEXT['SELECT_BOX']; ?></option>
+				<option value="checkbox"<?php if($type == 'checkbox') { echo ' selected'; } ?>><?php echo $TEXT['CHECKBOX_GROUP']; ?></option>
+				<option value="radio"<?php if($type == 'radio') { echo ' selected'; } ?>><?php echo $TEXT['RADIO_BUTTON_GROUP']; ?></option>
+				<option value="email"<?php if($type == 'email') { echo ' selected'; } ?>><?php echo $TEXT['EMAIL_ADDRESS']; ?></option>
+			</select>
+		</td>
+	</tr>
+<?php if($type != 'none' AND $type != 'email') { ?>
+	<?php if($type == 'heading') { ?>
+	<tr>
+		<td valign="top"><?php echo $TEXT['TEMPLATE']; ?>:</td>
+		<td>
+			<textarea name="template" style="width: 98%; height: 20px;"><?php echo htmlspecialchars(($form['extra'])); ?></textarea>
+		</td>
+	</tr>
+	<?php } elseif($type == 'textfield') { ?>
+	<tr>
+		<td><?php echo $TEXT['LENGTH']; ?>:</td>
+		<td>
+			<input type="text" name="length" value="<?php echo $form['extra']; ?>" style="width: 98%;" maxlength="3" />
+		</td>
+	</tr>
+	<tr>
+		<td><?php echo $TEXT['DEFAULT_TEXT']; ?>:</td>
+		<td>
+			<input type="text" name="value" value="<?php echo $form['value']; ?>" style="width: 98%;" />
+		</td>
+	</tr>
+	<?php } elseif($type == 'textarea') { ?>
+	<tr>
+		<td valign="top"><?php echo $TEXT['DEFAULT_TEXT']; ?>:</td>
+		<td>
+			<textarea name="value" style="width: 98%; height: 100px;"><?php echo $form['value']; ?></textarea>
+		</td>
+	</tr>
+	<?php } elseif($type == 'select' OR $type = 'radio' OR $type = 'checkbox') { ?>
+	<tr>
+		<td valign="top"><?php echo 'List'; ?>:</td>
+		<td>
+			<?php
+			$option_count = 0;
+			$list = explode(',', $form['value']);
+			foreach($list AS $option_value) {
+				$option_count = $option_count+1;
+				?>
+				<table cellpadding="3" cellspacing="0" width="100%" border="0">
+				<tr>
+					<td width="70"><?php echo $TEXT['OPTION'].' '.$option_count; ?>:</td>
+					<td>
+						<input type="text" name="value<?php echo $option_count; ?>" value="<?php echo $option_value; ?>" style="width: 250px;" />
+					</td>
+				</tr>
+				</table>
+				<?php
+			}
+			for($i = 0; $i < 2; $i++) {
+				$option_count = $option_count+1;
+				?>
+				<table cellpadding="3" cellspacing="0" width="100%" border="0">
+				<tr>
+					<td width="70"><?php echo $TEXT['OPTION'].' '.$option_count; ?>:</td>
+					<td>
+						<input type="text" name="value<?php echo $option_count; ?>" value="" style="width: 250px;" />
+					</td>
+				</tr>
+				</table>
+				<?php
+			}
+			?>
+			<input type="hidden" name="list_count" value="<?php echo $option_count; ?>" />
+		</td>
+	</tr>
+	<?php } ?>
+	<?php if($type == 'select') { ?>
+	<tr>
+		<td><?php echo $TEXT['SIZE']; ?>:</td>
+		<td>
+			<?php $form['extra'] = explode(',',$form['extra']); ?>
+			<input type="text" name="size" value="<?php echo trim($form['extra'][0]); ?>" style="width: 98%;" maxlength="3" />
+		</td>
+	</tr>
+	<tr>
+		<td><?php echo $TEXT['ALLOW_MULTIPLE_SELECTIONS']; ?>:</td>
+		<td>
+			<input type="radio" name="multiselect" id="multiselect_true" value="multiple" <?php if($form['extra'][1] == 'multiple') { echo ' checked'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('multiselect_true').checked = true;">
+			<?php echo $TEXT['YES']; ?>
+			</a>
+			&nbsp;
+			<input type="radio" name="multiselect" id="multiselect_false" value="" <?php if($form['extra'][1] == '') { echo ' checked'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('multiselect_false').checked = true;">
+			<?php echo $TEXT['NO']; ?>
+			</a>
+		</td>
+	</tr>
+	<?php } elseif($type == 'checkbox' OR $type == 'radio') { ?>
+	<tr>
+		<td valign="top"><?php echo $TEXT['SEPERATOR']; ?>:</td>
+		<td>
+			<input type="text" name="seperator" value="<?php echo $form['extra']; ?>" style="width: 98%;" />
+		</td>
+	</tr>
+	<?php } ?>
+<?php } ?>
+<?php if($type != 'heading' AND $type != 'none') { ?>
+	<tr>
+		<td><?php echo $TEXT['REQUIRED']; ?>:</td>
+		<td>
+			<input type="radio" name="required" id="required_true" value="1" <?php if($form['required'] == 1) { echo ' checked'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('required_true').checked = true;">
+			<?php echo $TEXT['YES']; ?>
+			</a>
+			&nbsp;
+			<input type="radio" name="required" id="required_false" value="0" <?php if($form['required'] == 0) { echo ' checked'; } ?> />
+			<a href="#" onclick="javascript: document.getElementById('required_false').checked = true;">
+			<?php echo $TEXT['NO']; ?>
+			</a>
+		</td>
+	</tr>
+<?php } ?>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+	<tr>
+		<td align="left">
+			<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+		</td>
+		<?php
+		// added by John Maats, PCWacht, 12 januar 2006
+		if ($type<>'none') {
+		?>
+		<td align="center">
+			<input type="button" value="<?php echo $TEXT['ADD'].' '.$TEXT['FIELD']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/form/add_field.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 200px; margin-top: 5px;" />
+		</td>
+		<?php } 
+		// end addition
+		?>
+		<td align="right">
+			<input type="button" value="<?php echo $TEXT['CLOSE']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
+		</td>
+	</tr>
+</table>
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/modify_field.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/add_field.php
===================================================================
--- tags/2.7.0/wb/modules/form/add_field.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/add_field.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+// Get new order
+$order = new order(TABLE_PREFIX.'mod_form_fields', 'position', 'field_id', 'section_id');
+$position = $order->get_new($section_id);
+
+// Insert new row into database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_form_fields (section_id,page_id,position,required) VALUES ('$section_id','$page_id','$position','0')");
+
+// Get the id
+$field_id = $database->get_one("SELECT LAST_INSERT_ID()");
+
+// Say that a new record has been added, then redirect to modify page
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/form/modify_field.php?page_id='.$page_id.'&section_id='.$section_id.'&field_id='.$field_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/form/modify_field.php?page_id='.$page_id.'&section_id='.$section_id.'&field_id='.$field_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/add_field.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/move_down.php
===================================================================
--- tags/2.7.0/wb/modules/form/move_down.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/move_down.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['field_id']) OR !is_numeric($_GET['field_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$field_id = $_GET['field_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order(TABLE_PREFIX.'mod_form_fields', 'position', 'field_id', 'section_id');
+if($order->move_down($field_id)) {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/move_down.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/delete.php
===================================================================
--- tags/2.7.0/wb/modules/form/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/delete.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+// Delete page from mod_wysiwyg
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_fields WHERE page_id = '$page_id'");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_settings WHERE page_id = '$page_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/search.php
===================================================================
--- tags/2.7.0/wb/modules/form/search.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/search.php	(revision 838)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+function form_search($func_vars) {
+	extract($func_vars, EXTR_PREFIX_ALL, 'func');
+	
+	// how many lines of excerpt we want to have at most
+	$max_excerpt_num = $func_default_max_excerpt;
+	$divider = ".";
+	$result = false;
+	
+	// fetch all form-fields on this page
+	$table = TABLE_PREFIX."mod_form_fields";
+	$query = $func_database->query("
+		SELECT title, value
+		FROM $table
+		WHERE section_id='$func_section_id'
+		ORDER BY position ASC
+	");
+	// now call print_excerpt() only once for all items
+	if($query->numRows() > 0) {
+		$text="";
+		while($res = $query->fetchRow()) {
+			$text .= $res['title'].$divider.$res['value'].$divider;
+		}
+		$mod_vars = array(
+			'page_link' => $func_page_link,
+			'page_link_target' => "#wb_section_$func_section_id",
+			'page_title' => $func_page_title,
+			'page_description' => $func_page_description,
+			'page_modified_when' => $func_page_modified_when,
+			'page_modified_by' => $func_page_modified_by,
+			'text' => $text,
+			'max_excerpt_num' => $max_excerpt_num
+		);
+		if(print_excerpt2($mod_vars, $func_vars)) {
+			$result = true;
+		}
+	}
+	return $result;
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/form/search.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/delete_field.php
===================================================================
--- tags/2.7.0/wb/modules/form/delete_field.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/delete_field.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['field_id']) OR !is_numeric($_GET['field_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$field_id = $_GET['field_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Delete row
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_fields WHERE field_id = '$field_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/delete_field.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/index.php
===================================================================
--- tags/2.7.0/wb/modules/form/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/index.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/move_up.php
===================================================================
--- tags/2.7.0/wb/modules/form/move_up.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/move_up.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['field_id']) OR !is_numeric($_GET['field_id'])) {
+	header("Location: index.php");
+	exit(0);
+} else {
+	$field_id = $_GET['field_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order(TABLE_PREFIX.'mod_form_fields', 'position', 'field_id', 'section_id');
+if($order->move_up($field_id)) {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/move_up.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/delete_submission.php
===================================================================
--- tags/2.7.0/wb/modules/form/delete_submission.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/delete_submission.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra submission types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['submission_id']) OR !is_numeric($_GET['submission_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$submission_id = $_GET['submission_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Delete row
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_form_submissions WHERE submission_id = '$submission_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/delete_submission.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/view_submission.php
===================================================================
--- tags/2.7.0/wb/modules/form/view_submission.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/view_submission.php	(revision 838)
@@ -0,0 +1,93 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['submission_id']) OR !is_numeric($_GET['submission_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$submission_id = $_GET['submission_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Get submission details
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_submissions WHERE submission_id = '$submission_id'");
+$submission = $query_content->fetchRow();
+
+// Get the user details of whoever did this submission
+$query_user = "SELECT username,display_name FROM ".TABLE_PREFIX."users WHERE user_id = '".$submission['submitted_by']."'";
+$get_user = $database->query($query_user);
+if($get_user->numRows() != 0) {
+	$user = $get_user->fetchRow();
+} else {
+	$user['display_name'] = 'Unknown';
+	$user['username'] = 'unknown';
+}
+
+?>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td><?php echo $TEXT['SUBMISSION_ID']; ?>:</td>
+	<td><?php echo $submission['submission_id']; ?></td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['SUBMITTED']; ?>:</td>
+	<td><?php echo gmdate(TIME_FORMAT.', '.DATE_FORMAT, $submission['submitted_when']+TIMEZONE); ?></td>
+</td>
+<tr>
+	<td><?php echo $TEXT['USER']; ?>:</td>
+	<td><?php echo $user['display_name'].' ('.$user['username'].')'; ?></td>
+</tr>
+<tr>
+	<td colspan="2">
+		<hr />
+	</td>
+</tr>
+<tr>
+	<td colspan="2">
+		<?php echo nl2br($submission['body']); ?>
+	</td>
+</tr>
+</table>
+
+<br />
+
+<input type="button" value="<?php echo $TEXT['CLOSE']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 150px; margin-top: 5px;" />
+<input type="button" value="<?php echo $TEXT['DELETE']; ?>" onclick="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/form/delete_submission.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&submission_id=<?php echo $submission_id; ?>');" style="width: 150px; margin-top: 5px;" />
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/view_submission.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/form/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/form/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/form/uninstall.php	(revision 838)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+The Website Baker Project would like to thank Rudolph Lartey <www.carbonect.com>
+for his contributions to this module - adding extra field types
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE name = 'module' AND value = 'form'");
+$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE extra = 'form'");
+
+$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_fields`");
+$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_settings`");
+$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_form_submissions`");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/form/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/info.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/info.php	(revision 838)
@@ -0,0 +1,117 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------------------------
+  FCKEditor module for Website Baker v2.6.x
+  Authors: P. Widlund, S. Braunewell, M. Gallas (ruebenwurzel), Wouldlouper, C. Sommer (doc)
+	Started to track applied changes in info.php from 27.03.2007 onwards (cs)
+ -----------------------------------------------------------------------------------------------------------
+	v2.85 (doc.. Christian Sommer; Apr 10, 2008)
+		+	fixed WB-Link Plugin to work with WB versions below 2.7 ($admin->page_is_visible() only available in WB 2.7)
+
+	v2.84 (doc.. Christian Sommer; Apr 7, 2008)
+		+ update to FCKEditor release v2.6
+	
+	v2.83 (doc.. Christian Sommer; Mar 12, 2008)
+		+ added the WB home folder fix found by the forum member spawnferkel
+			(see forum thread: http://forum.websitebaker2.org/index.php/topic,8978.msg53107.html#msg53107)
+		+ defined <strong> and <em> instead of <b> and <i> per default
+	
+	v2.82 (doc.. Christian Sommer; Feb 20, 2008)
+		+ added the connector fix found by the forum member Luisehahne
+		(see forum thread: http://forum.websitebaker2.org/index.php/topic,8240.msg51675.html#msg51675)
+
+	v2.81 (ruebenwurzel.. Matthias Gallas; Dez 24, 2007)
+		+ update to FCKEditor release v2.51
+	
+	v2.80 (doc.. Christian Sommer; Dec 05, 2007)
+		+ update to FCKEditor release v2.50 (according to the developers, the most important release since v2.0)
+		+ entire PHP connector stuff rewritten from scratch
+		+ permissions to view media, upload files and to create folders are now controlled by WB group access rights 
+		+ included WBLinkPlugin fix from melisa (http://forum.websitebaker.org/index.php/topic,1670.msg45948.html#msg45948)
+		  (Note: removed text field to specify the link title; function creates errors in IE and seems not to work in FF either)
+		+ added text file "CHANGELOG" which contains all changes since Mar 27, 2007
+
+	v2.77 (doc.. Christian Sommer; Oct 30, 2007)
+		+ re-introduced fix from v2.74a to solve issues with wb_fcktemplates.xml
+		
+	v2.76 (doc.. Christian Sommer; Oct 29, 2007)
+		+ v2.75 was released as hotfix to prevent major damage to WB hosted sites using FCKEditor
+		  (users loged in the WB backend can upload files and create folders regardless of their WB permissions)
+		+ the following additional security measures were applied with the v2.76 release:
+			o possibility to upload files / create folders via FCKEditor disabled by default
+			o PHP connector only active for users authentificated via WB backend and permissions to view the MEDIA folder
+			o buttons to search the server (e.g. image/flash/link browser) only enabled if user has permission to view MEDIA folder
+			o buttons to upload files from FCKEditor always disabled (users settings will be overwritten)
+		+ it is no longer possible to upload files or to create folder by the FCKEditor dialogues
+		+ file uploads and creation of folders needs to be done via the WB MEDIA center
+
+	v2.75 (doc.. Christian Sommer; Oct 20, 2007) HOTFIX TO PREVENT THE WORST CASE SCENARIOUS
+		+ implemented the slightly modified security patch provided by the forum member sogua (thanks man)
+			Note: all older versions of the FCKEditor module allow file uploads and creation of folders from any
+			browser, no matter if you have access to the Website Baker backend or not!!!
+			Upload of PHP files is and was not possible with earlier version. However, images, textfiles, movies...
+			could be uploaded and overwritten within the WB /MEDIA folder.
+
+   v2.7.4a (ruebenwurzel; 05.07.2007)
+		+ fixed issue in include.php with wb_fcktemplates.xml
+   
+   v2.7.4 (ruebenwurzel; 14.06.2007)
+		+ update to FCKEditor release v2.4.3
+   
+   v2.7.3 (ruebenwurzel; 10.04.2007)
+		+ update to FCKEditor release v2.4.2
+   
+   v2.7.2 (ruebenwurzel, doc; 29.03.2007)
+		+ update to FCKEditor release v2.4.1 (added UTF8-BOM fix from http://dev.fckeditor.net/ticket/279)
+		+ removed two test.html files from fckeditor/editor/filemanager/browser and .../upload which could be used
+		  to upload any files from outside to the WB media directory if the exact URL is known (thanks to Funky_MF)
+		+ changed the following default settings in the wb_fckconfig.js files:
+			FCKConfig.EnterMode 		= 'p';
+   		FCKConfig.ShiftEnterMode 	= 'br';
+   		FCKConfig.FlashBrowser = true;
+
+   v2.7.1 (doc; 06.02.2007)
+		+ fixed issues with CSS and XML handling
+		+ moved FCK Javascript settings to external file: /wb_config/wb_fckconfig.js
+
+   v2.7.0 (ruebenwurzel; 05.02.2007)
+		+ update to FCKEditor release v2.4.0
+
+	 CREDITS: 
+	  o Thanks to tallyce for the php-connector patch which enables file upload to WB media folder
+	  o all other members who contributed to the FCKEditor module and are not mentioned here
+ -----------------------------------------------------------------------------------------------------------
+
+*/
+
+$module_directory		= 'fckeditor';
+$module_name				= 'FCKeditor';
+$module_function		= 'WYSIWYG';
+$module_version			= '2.85';
+$module_platform		= '2.6.x';
+$module_author 			= 'Christian Sommer, P. Widlund, S. Braunewell, M. Gallas, Wouldlouper';
+$module_license 		= 'GNU General Public License';
+$module_description 	= 'This module allows you to edit the contents of a page using <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php	(revision 838)
@@ -0,0 +1,96 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include the config file
+require('../../../../../../config.php');
+
+// Create new admin object
+require(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify', false);
+
+// Setup the template
+$template = new Template(WB_PATH.'/modules/fckeditor/fckeditor/editor/plugins/WBModules');
+$template->set_file('page', 'wbmodules.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Function to generate page list
+function gen_page_list($parent) {
+	global $template, $database, $admin;
+	$get_pages = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '$parent'");
+	while($page = $get_pages->fetchRow()) {
+		// method page_is_visible was introduced with WB 2.7
+		if(method_exists($admin, 'page_is_visible') && !$admin->page_is_visible($page))
+			continue;
+		$title = stripslashes($page['menu_title']);
+		// Add leading -'s so we can tell what level a page is at
+		$leading_dashes = '';
+		for($i = 0; $i < $page['level']; $i++) {
+			$leading_dashes .= '- ';
+		}
+		$template->set_var('TITLE', $leading_dashes.' '.$title);
+		$template->set_var('LINK', '[wblink'.$page['page_id'].']');
+		/**
+			Note: FCK uses the header defined in /fckeditor/fckeditor/editor/fckdialog.html
+			Therefore the WB charset defined in the template: wbmodules.html will be overwritten
+			Routine kept for now, maybe it is possible to define custom plugin charsets in a future FCK releases (doc)
+		*/
+		// work out the specified WB charset 
+		if(defined('DEFAULT_CHARSET')) { 
+			$template->set_var('CHARSET', DEFAULT_CHARSET);
+		} else { 
+			$template->set_var('CHARSET', 'utf-8');
+		}
+		$template->parse('page_list', 'page_list_block', true);
+		gen_page_list($page['page_id']);
+	}
+}
+
+// Get pages and put them into the pages list
+$template->set_block('main_block', 'page_list_block', 'page_list');
+$database = new database();
+$get_pages = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE parent = '0'");
+if($get_pages->numRows() > 0) {
+	// Loop through pages
+	while($page = $get_pages->fetchRow()) {
+		// method page_is_visible was introduced with WB 2.7
+		if(method_exists($admin, 'page_is_visible') && !$admin->page_is_visible($page))
+			continue;
+		$title = stripslashes($page['menu_title']);
+		$template->set_var('TITLE', $title);
+		$template->set_var('LINK', '[wblink'.$page['page_id'].']');
+		$template->parse('page_list', 'page_list_block', true);
+		gen_page_list($page['page_id']);
+	}
+} else {
+	$template->set_var('TITLE', 'None found');
+	$template->set_var('LINK', 'None found');
+	$template->parse('page_list', 'page_list_block', false);
+}
+
+// Parse the template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fck_wbmodules.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.js	(revision 838)
@@ -0,0 +1,8 @@
+// Function to set special attributes. Copied from FCK Core function
+function SetAttribute( element, attName, attValue )
+{
+	if ( attValue == null || attValue.length == 0 )
+		element.removeAttribute( attName, 0 ) ;			// 0 : Case Insensitive
+	else
+		element.setAttribute( attName, attValue, 0 ) ;	// 0 : Case Insensitive
+}
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/ru.js	(revision 838)
@@ -0,0 +1,7 @@
+FCKLang.WBModulesBtn			= 'Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÑŽÑŽ ÑÑÑ‹Ð»ÐºÑƒ' ;
+FCKLang.WBModulesDlgTitle		= ' Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÑŽÑŽ ÑÑÑ‹Ð»ÐºÑƒ' ;
+FCKLang.WBModulesDlgName		= 'Ð’ÑÑ‚Ð°Ð²ÐºÐ° Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ ÑÑÑ‹Ð»ÐºÐ¸' ;
+FCKLang.WBModulesErrSelection		= 'ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð° Ð²Ñ‹Ð´ÐµÐ»Ð¸Ñ‚Ðµ ÑÑÑ‹Ð»Ð°ÑŽÑ‰Ð¸Ð¹ÑÑ Ñ‚ÐµÐºÑÑ‚' ;
+FCKLang.WBModulesErrPageSelect		= 'Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ Ñ‡Ñ‚Ð¾Ð±Ñ‹ ÑÐ´ÐµÐ»Ð°Ñ‚ÑŒ ÑÑÑ‹Ð»ÐºÑƒ' ;
+FCKLang.WBModuleslblPageSelection	= 'Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ Ð´Ð»Ñ ÑÑÑ‹Ð»ÐºÐ¸:';
+FCKLang.WBModuleslblTitle		= 'Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº';
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/de.js	(revision 838)
@@ -0,0 +1,7 @@
+FCKLang.WBModulesBtn			= 'WB Seitenlink einf\u00fcgen/\u00e4ndern' ;
+FCKLang.WBModulesDlgTitle		= 'WB Link - Internen Link einf\u00fcgen' ;
+FCKLang.WBModulesDlgName		= 'Website Baker Link einf\u00fcgen' ;
+FCKLang.WBModulesErrSelection		= 'Bitte zuerst einen Text markieren, der verlinkt werden soll!' ;
+FCKLang.WBModulesErrPageSelect		= 'Bitte eine WB-Seite markieren, auf die verlinkt werden soll!' ;
+FCKLang.WBModuleslblPageSelection	= 'Auswahlfenster der m\u00f6glichen WB-Seiten:';
+FCKLang.WBModuleslblTitle		= 'Linktitel:';
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/nl.js	(revision 838)
@@ -0,0 +1,7 @@
+FCKLang.WBModulesBtn			= 'Interne WB link toevoegen' ;
+FCKLang.WBModulesDlgTitle		= 'WB Link - voeg interne link toe' ;
+FCKLang.WBModulesDlgName		= 'Website Baker link toevoegen' ;
+FCKLang.WBModulesErrSelection		= 'Eerst een selectie maken voordat u een link wilt toevoegen' ;
+FCKLang.WBModulesErrPageSelect		= 'Eerst een pagina selecteren als u een link wilt creeren' ;
+FCKLang.WBModuleslblPageSelection	= 'Selecteer een WB Pagina om te linken:';
+FCKLang.WBModuleslblTitle		= 'Titel';
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/en.js	(revision 838)
@@ -0,0 +1,7 @@
+FCKLang.WBModulesBtn			= 'Insert/Edit Website Baker link' ;
+FCKLang.WBModulesDlgTitle		= 'WB Link - Insert internal link' ;
+FCKLang.WBModulesDlgName		= 'Website Baker Link insert' ;
+FCKLang.WBModulesErrSelection		= 'Please select a text in order to create a (internal) link' ;
+FCKLang.WBModulesErrPageSelect		= 'Please select a page in order to create a link' ;
+FCKLang.WBModuleslblPageSelection	= 'Select a WB Page to link to:';
+FCKLang.WBModuleslblTitle		= 'Title';
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/lang/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id: index.php 662 2008-02-03 07:27:52Z Ruebenwurzel $
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../../../../../index.php");
+
+?>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.html	(revision 838)
@@ -0,0 +1,102 @@
+<!-- BEGIN main_block -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+	<head>
+		<title>WB Link - Insert Website Baker Link</title>
+		<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}">
+		<meta content="noindex, nofollow" name="robots">
+		<script type="text/javascript" src="fckwbmodules.js"></script>
+		<script type="text/javascript">
+		<!--
+			var oEditor			= window.parent.InnerDialogLoaded(); 
+			var FCK				= oEditor.FCK; 
+			var FCKLang			= oEditor.FCKLang ;
+			var FCKConfig		= oEditor.FCKConfig ;
+			//var FCKCMSCCMSModules	= oEditor.FCKCMSModules; 
+			 
+			// oLink: The actual selected link in the editor.
+			var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+			if ( oLink )
+				FCK.Selection.SelectNode( oLink ) ;
+	
+			window.onload = function ()	{ 
+				// First of all, translates the dialog box texts.
+				oEditor.FCKLanguageManager.TranslatePage(document);
+				
+				LoadSelected();							//See function below 
+				window.parent.SetOkButton( true );		//Show the "Ok" button. 
+				
+			} 
+			 
+			//If an anchor (A) object is currently selected, load the properties into the dialog 
+			function LoadSelected()	{
+				var sSelected;
+				
+				if ( oEditor.FCKBrowserInfo.IsGecko ) {
+					sSelected = FCK.EditorWindow.getSelection();
+				} else {
+					sSelected = FCK.EditorDocument.selection.createRange().text;
+				}
+
+				if ( sSelected == "" ) {
+					alert( FCKLang.WBModulesErrSelection );
+					window.parent.Cancel();
+				}
+
+			}
+
+			//Code that runs after the OK button is clicked 
+			function Ok() {
+				//Validate is option is selected
+				var oPageList = document.getElementById( 'cmbPages' ) ;
+				if(oPageList.selectedIndex == -1) {
+					alert( FCKLang.WBModulesErrPageSelect );
+					return false;
+				}
+				
+				var oTagLink = document.getElementById( 'chkTaglink' );
+				
+				var sPageId = oPageList[oPageList.selectedIndex].value;
+				oLink = oEditor.FCK.CreateLink( sPageId ) ;
+				// the following line was commented out as it creates an error message in some browser (e.g. IE)
+				// even Firefox seems not to make use of the title so we remove this option for know (doc)
+				// SetAttribute( oLink, 'title', document.getElementById( 'txtTitle' ).value ) ;
+			return true;
+
+			} 
+			
+		//-->
+		</script>
+	</head>
+			
+	<body scroll="no" style="overflow:hidden;">
+		 <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0"> 
+		 	<tr> 
+				<td>
+					<table width="100%">
+						<tr>
+							<td colspan="2"><span fckLang="WBModuleslblPageSelection">Select a WB Page to link to:</span>&nbsp;</td>
+						</tr>
+						<tr>
+							<td colspan="2">
+								<select id="cmbPages" style="WIDTH: 100%" size="14" name="cmbPages">
+									<!-- BEGIN page_list_block -->
+									<option value="{LINK}"{SELECTED}>{TITLE}</option>
+									<!-- END page_list_block -->
+								</select>
+							</td>
+						</tr>
+						<!-- commented out as this option will not work in all browsers (doc)
+						<tr>
+							<td nowrap><span fckLang="WBModuleslblTitle">Title</span>&nbsp;</td>
+							<td width="100%" style="align:right;"><input id="txtTitle" style="WIDTH: 98%" type="text" name="txtTitle"></td>
+						</tr>
+						-->
+					</table>
+				</td>
+			</tr>
+		</table>
+		
+	</body>
+</html> 
+<!-- END main_block -->
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/wbmodules.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckwbmodules.css	(revision 838)
@@ -0,0 +1,35 @@
+#fckComment a, #fckComment a:visited {
+	position: relative;
+	text-decoration: none;
+	border: 0;
+}
+
+#fckComment a span {
+	display:none;
+}
+
+#fckComment a:hover {
+	color: #d00;
+	border: 0px solid #fff;
+}
+
+#fckComment a img {	
+	border: 0;
+	height: 20px;
+	width: 20px;
+}
+
+#fckComment a:hover span {
+	text-align:left;	
+	display:block;
+	border:1px solid #CCCCCC;
+	position: absolute;
+	top: 0px;
+	left: 20px;
+	width: 300px;
+	padding:5px;	
+	color:#000000;
+	background-color:#FFFFCC;
+	opacity: 0.8;
+	filter:alpha(opacity=80);
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/fckplugin.js	(revision 838)
@@ -0,0 +1,30 @@
+/* 
+ *  FCKPlugin.js
+ *  ------------
+ *  This is a generic file which is needed for plugins that are developed
+ *  for FCKEditor. With the below statements that toolbar is created and
+ *  several options are being activated.
+ *
+ *  See the online documentation for more information:
+ *  http://wiki.fckeditor.net/
+ */
+
+// Register the related commands.
+FCKCommands.RegisterCommand(
+	'WBModules',
+	new FCKDialogCommand(
+		'WBModules',
+		FCKLang["WBModulesDlgTitle"],
+		FCKPlugins.Items['WBModules'].Path + 'fck_wbmodules.php',
+		370,
+		370
+	)
+);
+ 
+// Create the "WBModules" toolbar button.
+// FCKToolbarButton( commandName, label, tooltip, style, sourceView, contextSensitive )
+var oWBModulesItem = new FCKToolbarButton( 'WBModules', FCKLang["WBModulesBtn"], null, null, false, true ); 
+oWBModulesItem.IconPath = FCKConfig.PluginsPath + 'WBModules/wbmodules.gif'; 
+
+// 'CMSContent' is the name that is used in the toolbar config.
+FCKToolbarItems.RegisterItem( 'WBModules', oWBModulesItem );
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/WBModules/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id: index.php 662 2008-02-03 07:27:52Z Ruebenwurzel $
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../../../../index.php");
+
+?>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Spanish language file.
+ */
+FCKLang.PlaceholderBtn			= 'Insertar/Editar contenedor' ;
+FCKLang.PlaceholderDlgTitle		= 'Propiedades del contenedor ' ;
+FCKLang.PlaceholderDlgName		= 'Nombre de contenedor' ;
+FCKLang.PlaceholderErrNoName	= 'Por favor escriba el nombre de contenedor' ;
+FCKLang.PlaceholderErrNameInUse	= 'El nombre especificado ya esta en uso' ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placeholder French language file.
+ */
+FCKLang.PlaceholderBtn			= "InsÃ©rer/Modifier l'Espace rÃ©servÃ©" ;
+FCKLang.PlaceholderDlgTitle		= "PropriÃ©tÃ©s de l'Espace rÃ©servÃ©" ;
+FCKLang.PlaceholderDlgName		= "Nom de l'Espace rÃ©servÃ©" ;
+FCKLang.PlaceholderErrNoName	= "Veuillez saisir le nom de l'Espace rÃ©servÃ©" ;
+FCKLang.PlaceholderErrNameInUse	= "Ce nom est dÃ©jÃ  utilisÃ©" ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder German language file.
+ */
+FCKLang.PlaceholderBtn			= 'EinfÃ¼gen/editieren Platzhalter' ;
+FCKLang.PlaceholderDlgTitle		= 'Platzhalter Eigenschaften' ;
+FCKLang.PlaceholderDlgName		= 'Platzhalter Name' ;
+FCKLang.PlaceholderErrNoName	= 'Bitte den Namen des Platzhalters schreiben' ;
+FCKLang.PlaceholderErrNameInUse	= 'Der angegebene Namen ist schon in Gebrauch' ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Polish language file.
+ */
+FCKLang.PlaceholderBtn			= 'Wstaw/Edytuj nagÅ‚Ã³wek' ;
+FCKLang.PlaceholderDlgTitle		= 'WÅ‚aÅ›noÅ›ci nagÅ‚Ã³wka' ;
+FCKLang.PlaceholderDlgName		= 'Nazwa nagÅ‚Ã³wka' ;
+FCKLang.PlaceholderErrNoName	= 'ProszÄ™ wprowadziÄ‡ nazwÄ™ nagÅ‚Ã³wka' ;
+FCKLang.PlaceholderErrNameInUse	= 'Podana nazwa jest juÅ¼ w uÅ¼yciu' ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Italian language file.
+ */
+FCKLang.PlaceholderBtn			= 'Aggiungi/Modifica Placeholder' ;
+FCKLang.PlaceholderDlgTitle		= 'ProprietÃ  del Placeholder' ;
+FCKLang.PlaceholderDlgName		= 'Nome del Placeholder' ;
+FCKLang.PlaceholderErrNoName	= 'Digitare il nome del placeholder' ;
+FCKLang.PlaceholderErrNameInUse	= 'Il nome inserito Ã¨ giÃ  in uso' ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js	(revision 838)
@@ -0,0 +1,27 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder English language file.
+ */
+FCKLang.PlaceholderBtn			= 'Insert/Edit Placeholder' ;
+FCKLang.PlaceholderDlgTitle		= 'Placeholder Properties' ;
+FCKLang.PlaceholderDlgName		= 'Placeholder Name' ;
+FCKLang.PlaceholderErrNoName	= 'Please type the placeholder name' ;
+FCKLang.PlaceholderErrNameInUse	= 'The specified name is already in use' ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/placeholder.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/placeholder.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(revision 838)
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placeholder Plugin.
+-->
+<html>
+	<head>
+		<title>Placeholder Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="../../dialog/common/fck_dialog_common.js" type="text/javascript"></script>
+		<script language="javascript">
+
+var dialog = window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+var FCKPlaceholders = oEditor.FCKPlaceholders ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	LoadSelected() ;
+
+	// Show the "Ok" button.
+	dialog.SetOkButton( true ) ;
+
+	// Select text field on load.
+	SelectField( 'txtName' ) ;
+}
+
+var eSelected = dialog.Selection.GetSelectedElement() ;
+
+function LoadSelected()
+{
+	if ( !eSelected )
+		return ;
+
+	if ( eSelected.tagName == 'SPAN' && eSelected._fckplaceholder )
+		document.getElementById('txtName').value = eSelected._fckplaceholder ;
+	else
+		eSelected == null ;
+}
+
+function Ok()
+{
+	var sValue = document.getElementById('txtName').value ;
+
+	if ( eSelected && eSelected._fckplaceholder == sValue )
+		return true ;
+
+	if ( sValue.length == 0 )
+	{
+		alert( FCKLang.PlaceholderErrNoName ) ;
+		return false ;
+	}
+
+	if ( FCKPlaceholders.Exist( sValue ) )
+	{
+		alert( FCKLang.PlaceholderErrNameInUse ) ;
+		return false ;
+	}
+
+	FCKPlaceholders.Add( sValue ) ;
+	return true ;
+}
+
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<table cellSpacing="0" cellPadding="0" align="center" border="0">
+						<tr>
+							<td>
+								<span fckLang="PlaceholderDlgName">Placeholder Name</span><br>
+								<input id="txtName" type="text">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js	(revision 838)
@@ -0,0 +1,187 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin to insert "Placeholders" in the editor.
+ */
+
+// Register the related command.
+FCKCommands.RegisterCommand( 'Placeholder', new FCKDialogCommand( 'Placeholder', FCKLang.PlaceholderDlgTitle, FCKPlugins.Items['placeholder'].Path + 'fck_placeholder.html', 340, 160 ) ) ;
+
+// Create the "Plaholder" toolbar button.
+var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ;
+oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ;
+
+FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ;
+
+
+// The object used for all Placeholder operations.
+var FCKPlaceholders = new Object() ;
+
+// Add a new placeholder at the actual selection.
+FCKPlaceholders.Add = function( name )
+{
+	var oSpan = FCK.InsertElement( 'span' ) ;
+	this.SetupSpan( oSpan, name ) ;
+}
+
+FCKPlaceholders.SetupSpan = function( span, name )
+{
+	span.innerHTML = '[[ ' + name + ' ]]' ;
+
+	span.style.backgroundColor = '#ffff00' ;
+	span.style.color = '#000000' ;
+
+	if ( FCKBrowserInfo.IsGecko )
+		span.style.cursor = 'default' ;
+
+	span._fckplaceholder = name ;
+	span.contentEditable = false ;
+
+	// To avoid it to be resized.
+	span.onresizestart = function()
+	{
+		FCK.EditorWindow.event.returnValue = false ;
+		return false ;
+	}
+}
+
+// On Gecko we must do this trick so the user select all the SPAN when clicking on it.
+FCKPlaceholders._SetupClickListener = function()
+{
+	FCKPlaceholders._ClickListener = function( e )
+	{
+		if ( e.target.tagName == 'SPAN' && e.target._fckplaceholder )
+			FCKSelection.SelectNode( e.target ) ;
+	}
+
+	FCK.EditorDocument.addEventListener( 'click', FCKPlaceholders._ClickListener, true ) ;
+}
+
+// Open the Placeholder dialog on double click.
+FCKPlaceholders.OnDoubleClick = function( span )
+{
+	if ( span.tagName == 'SPAN' && span._fckplaceholder )
+		FCKCommands.GetCommand( 'Placeholder' ).Execute() ;
+}
+
+FCK.RegisterDoubleClickHandler( FCKPlaceholders.OnDoubleClick, 'SPAN' ) ;
+
+// Check if a Placholder name is already in use.
+FCKPlaceholders.Exist = function( name )
+{
+	var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;
+
+	for ( var i = 0 ; i < aSpans.length ; i++ )
+	{
+		if ( aSpans[i]._fckplaceholder == name )
+			return true ;
+	}
+
+	return false ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+	FCKPlaceholders.Redraw = function()
+	{
+		if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+			return ;
+
+		var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ;
+		if ( !aPlaholders )
+			return ;
+
+		var oRange = FCK.EditorDocument.body.createTextRange() ;
+
+		for ( var i = 0 ; i < aPlaholders.length ; i++ )
+		{
+			if ( oRange.findText( aPlaholders[i] ) )
+			{
+				var sName = aPlaholders[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+				oRange.pasteHTML( '<span style="color: #000000; background-color: #ffff00" contenteditable="false" _fckplaceholder="' + sName + '">' + aPlaholders[i] + '</span>' ) ;
+			}
+		}
+	}
+}
+else
+{
+	FCKPlaceholders.Redraw = function()
+	{
+		if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+			return ;
+
+		var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ;
+
+		var	aNodes = new Array() ;
+
+		while ( ( oNode = oInteractor.nextNode() ) )
+		{
+			aNodes[ aNodes.length ] = oNode ;
+		}
+
+		for ( var n = 0 ; n < aNodes.length ; n++ )
+		{
+			var aPieces = aNodes[n].nodeValue.split( /(\[\[[^\[\]]+\]\])/g ) ;
+
+			for ( var i = 0 ; i < aPieces.length ; i++ )
+			{
+				if ( aPieces[i].length > 0 )
+				{
+					if ( aPieces[i].indexOf( '[[' ) == 0 )
+					{
+						var sName = aPieces[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+
+						var oSpan = FCK.EditorDocument.createElement( 'span' ) ;
+						FCKPlaceholders.SetupSpan( oSpan, sName ) ;
+
+						aNodes[n].parentNode.insertBefore( oSpan, aNodes[n] ) ;
+					}
+					else
+						aNodes[n].parentNode.insertBefore( FCK.EditorDocument.createTextNode( aPieces[i] ) , aNodes[n] ) ;
+				}
+			}
+
+			aNodes[n].parentNode.removeChild( aNodes[n] ) ;
+		}
+
+		FCKPlaceholders._SetupClickListener() ;
+	}
+
+	FCKPlaceholders._AcceptNode = function( node )
+	{
+		if ( /\[\[[^\[\]]+\]\]/.test( node.nodeValue ) )
+			return NodeFilter.FILTER_ACCEPT ;
+		else
+			return NodeFilter.FILTER_SKIP ;
+	}
+}
+
+FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ;
+
+// We must process the SPAN tags to replace then with the real resulting value of the placeholder.
+FCKXHtml.TagProcessors['span'] = function( node, htmlNode )
+{
+	if ( htmlNode._fckplaceholder )
+		node = FCKXHtml.XML.createTextNode( '[[' + htmlNode._fckplaceholder + ']]' ) ;
+	else
+		FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+	return node ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js	(revision 838)
@@ -0,0 +1,99 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin: automatically resizes the editor until a configurable maximun
+ * height (FCKConfig.AutoGrowMax), based on its contents.
+ */
+
+var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
+
+function FCKAutoGrow_Check()
+{
+	var oInnerDoc = FCK.EditorDocument ;
+
+	var iFrameHeight, iInnerHeight ;
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+		iInnerHeight = oInnerDoc.body.scrollHeight ;
+	}
+	else
+	{
+		iFrameHeight = FCK.EditorWindow.innerHeight ;
+		iInnerHeight = oInnerDoc.body.offsetHeight ;
+	}
+
+	var iDiff = iInnerHeight - iFrameHeight ;
+
+	if ( iDiff != 0 )
+	{
+		var iMainFrameSize = window.frameElement.offsetHeight ;
+
+		if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize > FCKConfig.AutoGrowMax )
+				iMainFrameSize = FCKConfig.AutoGrowMax ;
+		}
+		else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize < FCKAutoGrow_Min )
+				iMainFrameSize = FCKAutoGrow_Min ;
+		}
+		else
+			return ;
+
+		window.frameElement.height = iMainFrameSize ;
+
+		// Gecko browsers use an onresize handler to update the innermost
+		// IFRAME's height. If the document is modified before the onresize
+		// is triggered, the plugin will miscalculate the new height. Thus,
+		// forcibly trigger onresize. #1336
+		if ( typeof window.onresize == 'function' )
+			window.onresize() ;
+	}
+}
+
+FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
+
+function FCKAutoGrow_SetListeners()
+{
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+		return ;
+
+	FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;
+	FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+//	FCKAutoGrow_SetListeners() ;
+	FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;
+}
+
+function FCKAutoGrow_CheckEditorStatus( sender, status )
+{
+	if ( status == FCK_STATUS_COMPLETE )
+		FCKAutoGrow_Check() ;
+}
+
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js	(revision 838)
@@ -0,0 +1,527 @@
+ï»¿var FCKDragTableHandler =
+{
+	"_DragState" : 0,
+	"_LeftCell" : null,
+	"_RightCell" : null,
+	"_MouseMoveMode" : 0,	// 0 - find candidate cells for resizing, 1 - drag to resize
+	"_ResizeBar" : null,
+	"_OriginalX" : null,
+	"_MinimumX" : null,
+	"_MaximumX" : null,
+	"_LastX" : null,
+	"_TableMap" : null,
+	"_doc" : document,
+	"_IsInsideNode" : function( w, domNode, pos )
+	{
+		var myCoords = FCKTools.GetWindowPosition( w, domNode ) ;
+		var xMin = myCoords.x ;
+		var yMin = myCoords.y ;
+		var xMax = parseInt( xMin, 10 ) + parseInt( domNode.offsetWidth, 10 ) ;
+		var yMax = parseInt( yMin, 10 ) + parseInt( domNode.offsetHeight, 10 ) ;
+		if ( pos.x >= xMin && pos.x <= xMax && pos.y >= yMin && pos.y <= yMax )
+			return true;
+		return false;
+	},
+	"_GetBorderCells" : function( w, tableNode, tableMap, mouse )
+	{
+		// Enumerate all the cells in the table.
+		var cells = [] ;
+		for ( var i = 0 ; i < tableNode.rows.length ; i++ )
+		{
+			var r = tableNode.rows[i] ;
+			for ( var j = 0 ; j < r.cells.length ; j++ )
+				cells.push( r.cells[j] ) ;
+		}
+
+		if ( cells.length < 1 )
+			return null ;
+
+		// Get the cells whose right or left border is nearest to the mouse cursor's x coordinate.
+		var minRxDist = null ;
+		var lxDist = null ;
+		var minYDist = null ;
+		var rbCell = null ;
+		var lbCell = null ;
+		for ( var i = 0 ; i < cells.length ; i++ )
+		{
+			var pos = FCKTools.GetWindowPosition( w, cells[i] ) ;
+			var rightX = pos.x + parseInt( cells[i].clientWidth, 10 ) ;
+			var rxDist = mouse.x - rightX ;
+			var yDist = mouse.y - ( pos.y + ( cells[i].clientHeight / 2 ) ) ;
+			if ( minRxDist == null ||
+					( Math.abs( rxDist ) <= Math.abs( minRxDist ) &&
+					  ( minYDist == null || Math.abs( yDist ) <= Math.abs( minYDist ) ) ) )
+			{
+				minRxDist = rxDist ;
+				minYDist = yDist ;
+				rbCell = cells[i] ;
+			}
+		}
+		/*
+		var rowNode = FCKTools.GetElementAscensor( rbCell, "tr" ) ;
+		var cellIndex = rbCell.cellIndex + 1 ;
+		if ( cellIndex >= rowNode.cells.length )
+			return null ;
+		lbCell = rowNode.cells.item( cellIndex ) ;
+		*/
+		var rowIdx = rbCell.parentNode.rowIndex ;
+		var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, rbCell ) ;
+		var colSpan = isNaN( rbCell.colSpan ) ? 1 : rbCell.colSpan ;
+		lbCell = tableMap[rowIdx][colIdx + colSpan] ;
+
+		if ( ! lbCell )
+			return null ;
+
+		// Abort if too far from the border.
+		lxDist = mouse.x - FCKTools.GetWindowPosition( w, lbCell ).x ;
+		if ( lxDist < 0 && minRxDist < 0 && minRxDist < -2 )
+			return null ;
+		if ( lxDist > 0 && minRxDist > 0 && lxDist > 3 )
+			return null ;
+
+		return { "leftCell" : rbCell, "rightCell" : lbCell } ;
+	},
+	"_GetResizeBarPosition" : function()
+	{
+		var row = FCKTools.GetElementAscensor( this._RightCell, "tr" ) ;
+		return FCKTableHandler._GetCellIndexSpan( this._TableMap, row.rowIndex, this._RightCell ) ;
+	},
+	"_ResizeBarMouseDownListener" : function( evt )
+	{
+		if ( ! evt )
+			evt = window.event ;
+		if ( FCKDragTableHandler._LeftCell )
+			FCKDragTableHandler._MouseMoveMode = 1 ;
+		if ( FCKBrowserInfo.IsIE )
+			FCKDragTableHandler._ResizeBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 50 ;
+		else
+			FCKDragTableHandler._ResizeBar.style.opacity = 0.5 ;
+		FCKDragTableHandler._OriginalX = evt.clientX ;
+
+		// Calculate maximum and minimum x-coordinate delta.
+		var borderIndex = FCKDragTableHandler._GetResizeBarPosition() ;
+		var offset = FCKDragTableHandler._GetIframeOffset();
+		var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" );
+		var minX = null ;
+		var maxX = null ;
+		for ( var r = 0 ; r < FCKDragTableHandler._TableMap.length ; r++ )
+		{
+			var leftCell = FCKDragTableHandler._TableMap[r][borderIndex - 1] ;
+			var rightCell = FCKDragTableHandler._TableMap[r][borderIndex] ;
+			var leftPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, leftCell ) ;
+			var rightPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, rightCell ) ;
+			var leftPadding = FCKDragTableHandler._GetCellPadding( table, leftCell ) ;
+			var rightPadding = FCKDragTableHandler._GetCellPadding( table, rightCell ) ;
+			if ( minX == null || leftPosition.x + leftPadding > minX )
+				minX = leftPosition.x + leftPadding ;
+			if ( maxX == null || rightPosition.x + rightCell.clientWidth - rightPadding < maxX )
+				maxX = rightPosition.x + rightCell.clientWidth - rightPadding ;
+		}
+
+		FCKDragTableHandler._MinimumX = minX + offset.x ;
+		FCKDragTableHandler._MaximumX = maxX + offset.x ;
+		FCKDragTableHandler._LastX = null ;
+	},
+	"_ResizeBarMouseUpListener" : function( evt )
+	{
+		if ( ! evt )
+			evt = window.event ;
+		FCKDragTableHandler._MouseMoveMode = 0 ;
+		FCKDragTableHandler._HideResizeBar() ;
+
+		if ( FCKDragTableHandler._LastX == null )
+			return ;
+
+		// Calculate the delta value.
+		var deltaX = FCKDragTableHandler._LastX - FCKDragTableHandler._OriginalX ;
+
+		// Then, build an array of current column width values.
+		// This algorithm can be very slow if the cells have insane colSpan values. (e.g. colSpan=1000).
+		var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" ) ;
+		var colArray = [] ;
+		var tableMap = FCKDragTableHandler._TableMap ;
+		for ( var i = 0 ; i < tableMap.length ; i++ )
+		{
+			for ( var j = 0 ; j < tableMap[i].length ; j++ )
+			{
+				var cell = tableMap[i][j] ;
+				var width = FCKDragTableHandler._GetCellWidth( table, cell ) ;
+				var colSpan = isNaN( cell.colSpan) ? 1 : cell.colSpan ;
+				if ( colArray.length <= j )
+					colArray.push( { width : width / colSpan, colSpan : colSpan } ) ;
+				else
+				{
+					var guessItem = colArray[j] ;
+					if ( guessItem.colSpan > colSpan )
+					{
+						guessItem.width = width / colSpan ;
+						guessItem.colSpan = colSpan ;
+					}
+				}
+			}
+		}
+
+		// Find out the equivalent column index of the two cells selected for resizing.
+		colIndex = FCKDragTableHandler._GetResizeBarPosition() ;
+
+		// Note that colIndex must be at least 1 here, so it's safe to subtract 1 from it.
+		colIndex-- ;
+
+		// Modify the widths in the colArray according to the mouse coordinate delta value.
+		colArray[colIndex].width += deltaX ;
+		colArray[colIndex + 1].width -= deltaX ;
+
+		// Clear all cell widths, delete all <col> elements from the table.
+		for ( var r = 0 ; r < table.rows.length ; r++ )
+		{
+			var row = table.rows.item( r ) ;
+			for ( var c = 0 ; c < row.cells.length ; c++ )
+			{
+				var cell = row.cells.item( c ) ;
+				cell.width = "" ;
+				cell.style.width = "" ;
+			}
+		}
+		var colElements = table.getElementsByTagName( "col" ) ;
+		for ( var i = colElements.length - 1 ; i >= 0 ; i-- )
+			colElements[i].parentNode.removeChild( colElements[i] ) ;
+
+		// Set new cell widths.
+		var processedCells = [] ;
+		for ( var i = 0 ; i < tableMap.length ; i++ )
+		{
+			for ( var j = 0 ; j < tableMap[i].length ; j++ )
+			{
+				var cell = tableMap[i][j] ;
+				if ( cell._Processed )
+					continue ;
+				if ( tableMap[i][j-1] != cell )
+					cell.width = colArray[j].width ;
+				else
+					cell.width = parseInt( cell.width, 10 ) + parseInt( colArray[j].width, 10 ) ;
+				if ( tableMap[i][j+1] != cell )
+				{
+					processedCells.push( cell ) ;
+					cell._Processed = true ;
+				}
+			}
+		}
+		for ( var i = 0 ; i < processedCells.length ; i++ )
+		{
+			if ( FCKBrowserInfo.IsIE )
+				processedCells[i].removeAttribute( '_Processed' ) ;
+			else
+				delete processedCells[i]._Processed ;
+		}
+
+		FCKDragTableHandler._LastX = null ;
+	},
+	"_ResizeBarMouseMoveListener" : function( evt )
+	{
+		if ( ! evt )
+			evt = window.event ;
+		if ( FCKDragTableHandler._MouseMoveMode == 0 )
+			return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ;
+		else
+			return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ;
+	},
+	// Calculate the padding of a table cell.
+	// It returns the value of paddingLeft + paddingRight of a table cell.
+	// This function is used, in part, to calculate the width parameter that should be used for setting cell widths.
+	// The equation in question is clientWidth = paddingLeft + paddingRight + width.
+	// So that width = clientWidth - paddingLeft - paddingRight.
+	// The return value of this function must be pixel accurate acorss all supported browsers, so be careful if you need to modify it.
+	"_GetCellPadding" : function( table, cell )
+	{
+		var attrGuess = parseInt( table.cellPadding, 10 ) * 2 ;
+		var cssGuess = null ;
+		if ( typeof( window.getComputedStyle ) == "function" )
+		{
+			var styleObj = window.getComputedStyle( cell, null ) ;
+			cssGuess = parseInt( styleObj.getPropertyValue( "padding-left" ), 10 ) +
+				parseInt( styleObj.getPropertyValue( "padding-right" ), 10 ) ;
+		}
+		else
+			cssGuess = parseInt( cell.currentStyle.paddingLeft, 10 ) + parseInt (cell.currentStyle.paddingRight, 10 ) ;
+
+		var cssRuntime = cell.style.padding ;
+		if ( isFinite( cssRuntime ) )
+			cssGuess = parseInt( cssRuntime, 10 ) * 2 ;
+		else
+		{
+			cssRuntime = cell.style.paddingLeft ;
+			if ( isFinite( cssRuntime ) )
+				cssGuess = parseInt( cssRuntime, 10 ) ;
+			cssRuntime = cell.style.paddingRight ;
+			if ( isFinite( cssRuntime ) )
+				cssGuess += parseInt( cssRuntime, 10 ) ;
+		}
+
+		attrGuess = parseInt( attrGuess, 10 ) ;
+		cssGuess = parseInt( cssGuess, 10 ) ;
+		if ( isNaN( attrGuess ) )
+			attrGuess = 0 ;
+		if ( isNaN( cssGuess ) )
+			cssGuess = 0 ;
+		return Math.max( attrGuess, cssGuess ) ;
+	},
+	// Calculate the real width of the table cell.
+	// The real width of the table cell is the pixel width that you can set to the width attribute of the table cell and after
+	// that, the table cell should be of exactly the same width as before.
+	// The real width of a table cell can be calculated as:
+	// width = clientWidth - paddingLeft - paddingRight.
+	"_GetCellWidth" : function( table, cell )
+	{
+		var clientWidth = cell.clientWidth ;
+		if ( isNaN( clientWidth ) )
+			clientWidth = 0 ;
+		return clientWidth - this._GetCellPadding( table, cell ) ;
+	},
+	"MouseMoveListener" : function( FCK, evt )
+	{
+		if ( FCKDragTableHandler._MouseMoveMode == 0 )
+			return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ;
+		else
+			return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ;
+	},
+	"_MouseFindHandler" : function( FCK, evt )
+	{
+		if ( FCK.MouseDownFlag )
+			return ;
+		var node = evt.srcElement || evt.target ;
+		try
+		{
+			if ( ! node || node.nodeType != 1 )
+			{
+				this._HideResizeBar() ;
+				return ;
+			}
+		}
+		catch ( e )
+		{
+			this._HideResizeBar() ;
+			return ;
+		}
+
+		// Since this function might be called from the editing area iframe or the outer fckeditor iframe,
+		// the mouse point coordinates from evt.clientX/Y can have different reference points.
+		// We need to resolve the mouse pointer position relative to the editing area iframe.
+		var mouseX = evt.clientX ;
+		var mouseY = evt.clientY ;
+		if ( FCKTools.GetElementDocument( node ) == document )
+		{
+			var offset = this._GetIframeOffset() ;
+			mouseX -= offset.x ;
+			mouseY -= offset.y ;
+		}
+
+
+		if ( this._ResizeBar && this._LeftCell )
+		{
+			var leftPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._LeftCell ) ;
+			var rightPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._RightCell ) ;
+			var rxDist = mouseX - ( leftPos.x + this._LeftCell.clientWidth ) ;
+			var lxDist = mouseX - rightPos.x ;
+			var inRangeFlag = false ;
+			if ( lxDist >= 0 && rxDist <= 0 )
+				inRangeFlag = true ;
+			else if ( rxDist > 0 && lxDist <= 3 )
+				inRangeFlag = true ;
+			else if ( lxDist < 0 && rxDist >= -2 )
+				inRangeFlag = true ;
+			if ( inRangeFlag )
+			{
+				this._ShowResizeBar( FCK.EditorWindow,
+					FCKTools.GetElementAscensor( this._LeftCell, "table" ),
+					{ "x" : mouseX, "y" : mouseY } ) ;
+				return ;
+			}
+		}
+
+		var tagName = node.tagName.toLowerCase() ;
+		if ( tagName != "table" && tagName != "td" && tagName != "th" )
+		{
+			if ( this._LeftCell )
+				this._LeftCell = this._RightCell = this._TableMap = null ;
+			this._HideResizeBar() ;
+			return ;
+		}
+		node = FCKTools.GetElementAscensor( node, "table" ) ;
+		var tableMap = FCKTableHandler._CreateTableMap( node ) ;
+		var cellTuple = this._GetBorderCells( FCK.EditorWindow, node, tableMap, { "x" : mouseX, "y" : mouseY } ) ;
+
+		if ( cellTuple == null )
+		{
+			if ( this._LeftCell )
+				this._LeftCell = this._RightCell = this._TableMap = null ;
+			this._HideResizeBar() ;
+		}
+		else
+		{
+			this._LeftCell = cellTuple["leftCell"] ;
+			this._RightCell = cellTuple["rightCell"] ;
+			this._TableMap = tableMap ;
+			this._ShowResizeBar( FCK.EditorWindow,
+					FCKTools.GetElementAscensor( this._LeftCell, "table" ),
+					{ "x" : mouseX, "y" : mouseY } ) ;
+		}
+	},
+	"_MouseDragHandler" : function( FCK, evt )
+	{
+		var mouse = { "x" : evt.clientX, "y" : evt.clientY } ;
+
+		// Convert mouse coordinates in reference to the outer iframe.
+		var node = evt.srcElement || evt.target ;
+		if ( FCKTools.GetElementDocument( node ) == FCK.EditorDocument )
+		{
+			var offset = this._GetIframeOffset() ;
+			mouse.x += offset.x ;
+			mouse.y += offset.y ;
+		}
+
+		// Calculate the mouse position delta and see if we've gone out of range.
+		if ( mouse.x >= this._MaximumX - 5 )
+			mouse.x = this._MaximumX - 5 ;
+		if ( mouse.x <= this._MinimumX + 5 )
+			mouse.x = this._MinimumX + 5 ;
+
+		var docX = mouse.x + FCKTools.GetScrollPosition( window ).X ;
+		this._ResizeBar.style.left = ( docX - this._ResizeBar.offsetWidth / 2 ) + "px" ;
+		this._LastX = mouse.x ;
+	},
+	"_ShowResizeBar" : function( w, table, mouse )
+	{
+		if ( this._ResizeBar == null )
+		{
+			this._ResizeBar = this._doc.createElement( "div" ) ;
+			var paddingBar = this._ResizeBar ;
+			var paddingStyles = { 'position' : 'absolute', 'cursor' : 'e-resize' } ;
+			if ( FCKBrowserInfo.IsIE )
+				paddingStyles.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=10,enabled=true)" ;
+			else
+				paddingStyles.opacity = 0.10 ;
+			FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ;
+			this._avoidStyles( paddingBar );
+			paddingBar.setAttribute('_fcktemp', true);
+			this._doc.body.appendChild( paddingBar ) ;
+			FCKTools.AddEventListener( paddingBar, "mousemove", this._ResizeBarMouseMoveListener ) ;
+			FCKTools.AddEventListener( paddingBar, "mousedown", this._ResizeBarMouseDownListener ) ;
+			FCKTools.AddEventListener( document, "mouseup", this._ResizeBarMouseUpListener ) ;
+			FCKTools.AddEventListener( FCK.EditorDocument, "mouseup", this._ResizeBarMouseUpListener ) ;
+
+			// IE doesn't let the tranparent part of the padding block to receive mouse events unless there's something inside.
+			// So we need to create a spacer image to fill the block up.
+			var filler = this._doc.createElement( "img" ) ;
+			filler.setAttribute('_fcktemp', true);
+			filler.border = 0 ;
+			filler.src = FCKConfig.BasePath + "images/spacer.gif" ;
+			filler.style.position = "absolute" ;
+			paddingBar.appendChild( filler ) ;
+
+			// Disable drag and drop, and selection for the filler image.
+			var disabledListener = function( evt )
+			{
+				if ( ! evt )
+					evt = window.event ;
+				if ( evt.preventDefault )
+					evt.preventDefault() ;
+				else
+					evt.returnValue = false ;
+			}
+			FCKTools.AddEventListener( filler, "dragstart", disabledListener ) ;
+			FCKTools.AddEventListener( filler, "selectstart", disabledListener ) ;
+		}
+
+		var paddingBar = this._ResizeBar ;
+		var offset = this._GetIframeOffset() ;
+		var tablePos = this._GetTablePosition( w, table ) ;
+		var barHeight = table.offsetHeight ;
+		var barTop = offset.y + tablePos.y ;
+		// Do not let the resize bar intrude into the toolbar area.
+		if ( tablePos.y < 0 )
+		{
+			barHeight += tablePos.y ;
+			barTop -= tablePos.y ;
+		}
+		var bw = parseInt( table.border, 10 ) ;
+		if ( isNaN( bw ) )
+			bw = 0 ;
+		var cs = parseInt( table.cellSpacing, 10 ) ;
+		if ( isNaN( cs ) )
+			cs = 0 ;
+		var barWidth = Math.max( bw+100, cs+100 ) ;
+		var paddingStyles =
+		{
+			'top'		: barTop + 'px',
+			'height'	: barHeight + 'px',
+			'width'		: barWidth + 'px',
+			'left'		: ( offset.x + mouse.x + FCKTools.GetScrollPosition( w ).X - barWidth / 2 ) + 'px'
+		} ;
+		if ( FCKBrowserInfo.IsIE )
+			paddingBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 10 ;
+		else
+			paddingStyles.opacity = 0.1 ;
+
+		FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ;
+		var filler = paddingBar.getElementsByTagName( "img" )[0] ;
+
+		FCKDomTools.SetElementStyles( filler,
+			{
+				width	: paddingBar.offsetWidth + 'px',
+				height	: barHeight + 'px'
+			} ) ;
+
+		barWidth = Math.max( bw, cs, 3 ) ;
+		var visibleBar = null ;
+		if ( paddingBar.getElementsByTagName( "div" ).length < 1 )
+		{
+			visibleBar = this._doc.createElement( "div" ) ;
+			this._avoidStyles( visibleBar );
+			visibleBar.setAttribute('_fcktemp', true);
+			paddingBar.appendChild( visibleBar ) ;
+		}
+		else
+			visibleBar = paddingBar.getElementsByTagName( "div" )[0] ;
+
+		FCKDomTools.SetElementStyles( visibleBar,
+			{
+				position		: 'absolute',
+				backgroundColor	: 'blue',
+				width			: barWidth + 'px',
+				height			: barHeight + 'px',
+				left			: '50px',
+				top				: '0px'
+			} ) ;
+	},
+	"_HideResizeBar" : function()
+	{
+		if ( this._ResizeBar )
+			// IE bug: display : none does not hide the resize bar for some reason.
+			// so set the position to somewhere invisible.
+			FCKDomTools.SetElementStyles( this._ResizeBar,
+				{
+					top		: '-100000px',
+					left	: '-100000px'
+				} ) ;
+	},
+	"_GetIframeOffset" : function ()
+	{
+		return FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
+	},
+	"_GetTablePosition" : function ( w, table )
+	{
+		return FCKTools.GetWindowPosition( w, table ) ;
+	},
+	"_avoidStyles" : function( element )
+	{
+		FCKDomTools.SetElementStyles( element,
+			{
+				padding		: '0',
+				backgroundImage	: 'none',
+				border		: '0'
+			} ) ;
+	}
+
+};
+
+FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js	(revision 838)
@@ -0,0 +1,33 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register the required Toolbar items to be able to insert the
+ * table commands in the toolbar.
+ */
+
+FCKToolbarItems.RegisterItem( 'TableInsertRowAfter'		, new FCKToolbarButton( 'TableInsertRowAfter'	, FCKLang.InsertRowAfter, null, null, null, true, 62 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteRows'		, new FCKToolbarButton( 'TableDeleteRows'	, FCKLang.DeleteRows, null, null, null, true, 63 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertColumnAfter'	, new FCKToolbarButton( 'TableInsertColumnAfter'	, FCKLang.InsertColumnAfter, null, null, null, true, 64 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteColumns'	, new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, true, 65 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertCellAfter'		, new FCKToolbarButton( 'TableInsertCellAfter'	, FCKLang.InsertCellAfter, null, null, null, true, 58 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteCells'	, new FCKToolbarButton( 'TableDeleteCells'	, FCKLang.DeleteCells, null, null, null, true, 59 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableMergeCells'		, new FCKToolbarButton( 'TableMergeCells'	, FCKLang.MergeCells, null, null, null, true, 60 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableHorizontalSplitCell'		, new FCKToolbarButton( 'TableHorizontalSplitCell'	, FCKLang.SplitCell, null, null, null, true, 61 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableCellProp'		, new FCKToolbarButton( 'TableCellProp'	, FCKLang.CellProperties, null, null, null, true, 57 ) ) ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js	(revision 838)
@@ -0,0 +1,29 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register Toolbar items for the combos modifying the style to
+ * not show the box.
+ */
+
+FCKToolbarItems.RegisterItem( 'SourceSimple'	, new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ;
+FCKToolbarItems.RegisterItem( 'StyleSimple'		, new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontNameSimple'	, new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontSizeSimple'	, new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontFormatSimple', new FCKToolbarFontFormatCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js	(revision 838)
@@ -0,0 +1,123 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a sample implementation for a custom Data Processor for basic BBCode.
+ */
+
+FCK.DataProcessor =
+{
+	/*
+	 * Returns a string representing the HTML format of "data". The returned
+	 * value will be loaded in the editor.
+	 * The HTML must be from <html> to </html>, eventually including
+	 * the DOCTYPE.
+	 *     @param {String} data The data to be converted in the
+	 *            DataProcessor specific format.
+	 */
+	ConvertToHtml : function( data )
+	{
+		// Convert < and > to their HTML entities.
+        data = data.replace( /</g, '&lt;' ) ;
+        data = data.replace( />/g, '&gt;' ) ;
+
+        // Convert line breaks to <br>.
+        data = data.replace( /(?:\r\n|\n|\r)/g, '<br>' ) ;
+
+        // [url]
+        data = data.replace( /\[url\](.+?)\[\/url]/gi, '<a href="$1">$1</a>' ) ;
+        data = data.replace( /\[url\=([^\]]+)](.+?)\[\/url]/gi, '<a href="$1">$2</a>' ) ;
+
+        // [b]
+        data = data.replace( /\[b\](.+?)\[\/b]/gi, '<b>$1</b>' ) ;
+
+        // [i]
+        data = data.replace( /\[i\](.+?)\[\/i]/gi, '<i>$1</i>' ) ;
+
+        // [u]
+        data = data.replace( /\[u\](.+?)\[\/u]/gi, '<u>$1</u>' ) ;
+
+		return '<html><head><title></title></head><body>' + data + '</body></html>' ;
+	},
+
+	/*
+	 * Converts a DOM (sub-)tree to a string in the data format.
+	 *     @param {Object} rootNode The node that contains the DOM tree to be
+	 *            converted to the data format.
+	 *     @param {Boolean} excludeRoot Indicates that the root node must not
+	 *            be included in the conversion, only its children.
+	 *     @param {Boolean} format Indicates that the data must be formatted
+	 *            for human reading. Not all Data Processors may provide it.
+	 */
+	ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format )
+	{
+		var data = rootNode.innerHTML ;
+
+		// Convert <br> to line breaks.
+		data = data.replace( /<br(?=[ \/>]).*?>/gi, '\r\n') ;
+
+		// [url]
+		data = data.replace( /<a .*?href=(["'])(.+?)\1.*?>(.+?)<\/a>/gi, '[url=$2]$3[/url]') ;
+
+		// [b]
+		data = data.replace( /<(?:b|strong)>/gi, '[b]') ;
+		data = data.replace( /<\/(?:b|strong)>/gi, '[/b]') ;
+
+		// [i]
+		data = data.replace( /<(?:i|em)>/gi, '[i]') ;
+		data = data.replace( /<\/(?:i|em)>/gi, '[/i]') ;
+
+		// [u]
+		data = data.replace( /<u>/gi, '[u]') ;
+		data = data.replace( /<\/u>/gi, '[/u]') ;
+
+		// Remove remaining tags.
+		data = data.replace( /<[^>]+>/g, '') ;
+
+		return data ;
+	},
+
+	/*
+	 * Makes any necessary changes to a piece of HTML for insertion in the
+	 * editor selection position.
+	 *     @param {String} html The HTML to be fixed.
+	 */
+	FixHtml : function( html )
+	{
+		return html ;
+	}
+} ;
+
+// This Data Processor doesn't support <p>, so let's use <br>.
+FCKConfig.EnterMode = 'br' ;
+
+// To avoid pasting invalid markup (which is discarded in any case), let's
+// force pasting to plain text.
+FCKConfig.ForcePasteAsPlainText	= true ;
+
+// Rename the "Source" buttom to "BBCode".
+FCKToolbarItems.RegisterItem( 'Source', new FCKToolbarButton( 'Source', 'BBCode', null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ) ;
+
+// Let's enforce the toolbar to the limits of this Data Processor. A custom
+// toolbar set may be defined in the configuration file with more or less entries.
+FCKConfig.ToolbarSets["Default"] = [
+	['Source'],
+	['Bold','Italic','Underline','-','Link'],
+	['About']
+] ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(revision 838)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview page for the Flash dialog window.
+-->
+<html>
+	<head>
+		<title></title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<script src="../common/fck_dialog_common.js" type="text/javascript"></script>
+		<script language="javascript">
+
+var FCKTools	= window.parent.FCKTools ;
+var FCKConfig	= window.parent.FCKConfig ;
+
+// Sets the Skin CSS
+document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss( '../' ) ) ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElement( document.body ) ;
+}
+
+		</script>
+	</head>
+	<body style="COLOR: #000000; BACKGROUND-COLOR: #ffffff"></body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js	(revision 838)
@@ -0,0 +1,292 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Flash dialog window (see fck_flash.html).
+ */
+
+var dialog		= window.parent ;
+var oEditor		= dialog.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKTools	= oEditor.FCKTools ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+dialog.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
+
+if ( FCKConfig.FlashUpload )
+	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
+
+if ( !FCKConfig.FlashDlgHideAdvanced )
+	dialog.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAdvanced'	, ( tabCode == 'Advanced' ) ) ;
+}
+
+// Get the selected flash embed (if available).
+var oFakeImage = dialog.Selection.GetSelectedElement() ;
+var oEmbed ;
+
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
+		oEmbed = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	// Load the selected element information (if any).
+	LoadSelection() ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display = FCKConfig.FlashBrowser	? '' : 'none' ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.FlashUpload )
+		GetE('frmUpload').action = FCKConfig.FlashUploadURL ;
+
+	dialog.SetAutoSize( true ) ;
+
+	// Activate the "OK" button.
+	dialog.SetOkButton( true ) ;
+
+	SelectField( 'txtUrl' ) ;
+}
+
+function LoadSelection()
+{
+	if ( ! oEmbed ) return ;
+
+	GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;
+	GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;
+	GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
+
+	// Get Advances Attributes
+	GetE('txtAttId').value		= oEmbed.id ;
+	GetE('chkAutoPlay').checked	= GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;
+	GetE('chkLoop').checked		= GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
+	GetE('chkMenu').checked		= GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
+	GetE('cmbScale').value		= GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
+
+	GetE('txtAttTitle').value		= oEmbed.title ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
+		GetE('txtAttStyle').value = oEmbed.style.cssText ;
+	}
+	else
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
+	}
+
+	UpdatePreview() ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		dialog.SetSelectedTab( 'Info' ) ;
+		GetE('txtUrl').focus() ;
+
+		alert( oEditor.FCKLang.DlgAlertUrl ) ;
+
+		return false ;
+	}
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+	if ( !oEmbed )
+	{
+		oEmbed		= FCK.EditorDocument.createElement( 'EMBED' ) ;
+		oFakeImage  = null ;
+	}
+	UpdateEmbed( oEmbed ) ;
+
+	if ( !oFakeImage )
+	{
+		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
+		oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
+		oFakeImage	= FCK.InsertElement( oFakeImage ) ;
+	}
+
+	oEditor.FCKEmbedAndObjectProcessor.RefreshView( oFakeImage, oEmbed ) ;
+
+	return true ;
+}
+
+function UpdateEmbed( e )
+{
+	SetAttribute( e, 'type'			, 'application/x-shockwave-flash' ) ;
+	SetAttribute( e, 'pluginspage'	, 'http://www.macromedia.com/go/getflashplayer' ) ;
+
+	SetAttribute( e, 'src', GetE('txtUrl').value ) ;
+	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
+	SetAttribute( e, "height", GetE('txtHeight').value ) ;
+
+	// Advances Attributes
+
+	SetAttribute( e, 'id'	, GetE('txtAttId').value ) ;
+	SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
+
+	SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
+
+	SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
+		e.style.cssText = GetE('txtAttStyle').value ;
+	}
+	else
+	{
+		SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
+		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+	}
+}
+
+var ePreview ;
+
+function SetPreviewElement( previewEl )
+{
+	ePreview = previewEl ;
+
+	if ( GetE('txtUrl').value.length > 0 )
+		UpdatePreview() ;
+}
+
+function UpdatePreview()
+{
+	if ( !ePreview )
+		return ;
+
+	while ( ePreview.firstChild )
+		ePreview.removeChild( ePreview.firstChild ) ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+		ePreview.innerHTML = '&nbsp;' ;
+	else
+	{
+		var oDoc	= ePreview.ownerDocument || ePreview.document ;
+		var e		= oDoc.createElement( 'EMBED' ) ;
+
+		SetAttribute( e, 'src', GetE('txtUrl').value ) ;
+		SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;
+		SetAttribute( e, 'width', '100%' ) ;
+		SetAttribute( e, 'height', '100%' ) ;
+
+		ePreview.appendChild( e ) ;
+	}
+}
+
+// <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">
+
+function BrowseServer()
+{
+	OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;
+}
+
+function SetUrl( url, width, height )
+{
+	GetE('txtUrl').value = url ;
+
+	if ( width )
+		GetE('txtWidth').value = width ;
+
+	if ( height )
+		GetE('txtHeight').value = height ;
+
+	UpdatePreview() ;
+
+	dialog.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		case 500 :
+			alert( 'The connector is disabled' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+
+	if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+
+	return true ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link.html	(revision 838)
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Link dialog window.
+-->
+<html>
+	<head>
+		<title>Link Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_link/fck_link.js" type="text/javascript"></script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<div id="divInfo" style="DISPLAY: none">
+			<span fckLang="DlgLnkType">Link Type</span><br />
+			<select id="cmbLinkType" onchange="SetLinkType(this.value);">
+				<option value="url" fckLang="DlgLnkTypeURL" selected="selected">URL</option>
+				<option value="anchor" fckLang="DlgLnkTypeAnchor">Anchor in this page</option>
+				<option value="email" fckLang="DlgLnkTypeEMail">E-Mail</option>
+			</select>
+			<br />
+			<br />
+			<div id="divLinkTypeUrl">
+				<table cellspacing="0" cellpadding="0" width="100%" border="0" dir="ltr">
+					<tr>
+						<td nowrap="nowrap">
+							<span fckLang="DlgLnkProto">Protocol</span><br />
+							<select id="cmbLinkProtocol">
+								<option value="http://" selected="selected">http://</option>
+								<option value="https://">https://</option>
+								<option value="ftp://">ftp://</option>
+								<option value="news://">news://</option>
+								<option value="" fckLang="DlgLnkProtoOther">&lt;other&gt;</option>
+							</select>
+						</td>
+						<td nowrap="nowrap">&nbsp;</td>
+						<td nowrap="nowrap" width="100%">
+							<span fckLang="DlgLnkURL">URL</span><br />
+							<input id="txtUrl" style="WIDTH: 100%" type="text" onkeyup="OnUrlChange();" onchange="OnUrlChange();" />
+						</td>
+					</tr>
+				</table>
+				<br />
+				<div id="divBrowseServer">
+				<input type="button" value="Browse Server" fckLang="DlgBtnBrowseServer" onclick="BrowseServer();" />
+				</div>
+			</div>
+			<div id="divLinkTypeAnchor" style="DISPLAY: none" align="center">
+				<div id="divSelAnchor" style="DISPLAY: none">
+					<table cellspacing="0" cellpadding="0" border="0" width="70%">
+						<tr>
+							<td colspan="3">
+								<span fckLang="DlgLnkAnchorSel">Select an Anchor</span>
+							</td>
+						</tr>
+						<tr>
+							<td width="50%">
+								<span fckLang="DlgLnkAnchorByName">By Anchor Name</span><br />
+								<select id="cmbAnchorName" onchange="GetE('cmbAnchorId').value='';" style="WIDTH: 100%">
+									<option value="" selected="selected"></option>
+								</select>
+							</td>
+							<td>&nbsp;&nbsp;&nbsp;</td>
+							<td width="50%">
+								<span fckLang="DlgLnkAnchorById">By Element Id</span><br />
+								<select id="cmbAnchorId" onchange="GetE('cmbAnchorName').value='';" style="WIDTH: 100%">
+									<option value="" selected="selected"></option>
+								</select>
+							</td>
+						</tr>
+					</table>
+				</div>
+				<div id="divNoAnchor" style="DISPLAY: none">
+					<span fckLang="DlgLnkNoAnchors">&lt;No anchors available in the document&gt;</span>
+				</div>
+			</div>
+			<div id="divLinkTypeEMail" style="DISPLAY: none">
+				<span fckLang="DlgLnkEMail">E-Mail Address</span><br />
+				<input id="txtEMailAddress" style="WIDTH: 100%" type="text" /><br />
+				<span fckLang="DlgLnkEMailSubject">Message Subject</span><br />
+				<input id="txtEMailSubject" style="WIDTH: 100%" type="text" /><br />
+				<span fckLang="DlgLnkEMailBody">Message Body</span><br />
+				<textarea id="txtEMailBody" style="WIDTH: 100%" rows="3" cols="20"></textarea>
+			</div>
+		</div>
+		<div id="divUpload" style="DISPLAY: none">
+			<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">
+				<span fckLang="DlgLnkUpload">Upload</span><br />
+				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
+				<br />
+				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
+				<iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
+			</form>
+		</div>
+		<div id="divTarget" style="DISPLAY: none">
+			<table cellspacing="0" cellpadding="0" width="100%" border="0">
+				<tr>
+					<td nowrap="nowrap">
+						<span fckLang="DlgLnkTarget">Target</span><br />
+						<select id="cmbTarget" onchange="SetTarget(this.value);">
+							<option value="" fckLang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+							<option value="frame" fckLang="DlgLnkTargetFrame">&lt;frame&gt;</option>
+							<option value="popup" fckLang="DlgLnkTargetPopup">&lt;popup window&gt;</option>
+							<option value="_blank" fckLang="DlgLnkTargetBlank">New Window (_blank)</option>
+							<option value="_top" fckLang="DlgLnkTargetTop">Topmost Window (_top)</option>
+							<option value="_self" fckLang="DlgLnkTargetSelf">Same Window (_self)</option>
+							<option value="_parent" fckLang="DlgLnkTargetParent">Parent Window (_parent)</option>
+						</select>
+					</td>
+					<td>&nbsp;</td>
+					<td id="tdTargetFrame" nowrap="nowrap" width="100%">
+						<span fckLang="DlgLnkTargetFrameName">Target Frame Name</span><br />
+						<input id="txtTargetFrame" style="WIDTH: 100%" type="text" onkeyup="OnTargetNameChange();"
+							onchange="OnTargetNameChange();" />
+					</td>
+					<td id="tdPopupName" style="DISPLAY: none" nowrap="nowrap" width="100%">
+						<span fckLang="DlgLnkPopWinName">Popup Window Name</span><br />
+						<input id="txtPopupName" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+			<br />
+			<table id="tablePopupFeatures" style="DISPLAY: none" cellspacing="0" cellpadding="0" align="center"
+				border="0">
+				<tr>
+					<td>
+						<span fckLang="DlgLnkPopWinFeat">Popup Window Features</span><br />
+						<table cellspacing="0" cellpadding="0" border="0">
+							<tr>
+								<td valign="top" nowrap="nowrap" width="50%">
+									<input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br />
+									<input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location
+										Bar</label><br />
+									<input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu
+										Bar</label><br />
+									<input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll
+										Bars</label>
+								</td>
+								<td></td>
+								<td valign="top" nowrap="nowrap" width="50%">
+									<input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status
+										Bar</label><br />
+									<input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br />
+									<input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full
+										Screen (IE)</label><br />
+									<input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent
+										(Netscape)</label>
+								</td>
+							</tr>
+							<tr>
+								<td valign="top" nowrap="nowrap" width="50%">&nbsp;</td>
+								<td></td>
+								<td valign="top" nowrap="nowrap" width="50%"></td>
+							</tr>
+							<tr>
+								<td valign="top">
+									<table cellspacing="0" cellpadding="0" border="0">
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopWidth">Width</span></td>
+											<td>&nbsp;<input id="txtPopupWidth" type="text" maxlength="4" size="4" /></td>
+										</tr>
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopHeight">Height</span></td>
+											<td>&nbsp;<input id="txtPopupHeight" type="text" maxlength="4" size="4" /></td>
+										</tr>
+									</table>
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td valign="top">
+									<table cellspacing="0" cellpadding="0" border="0">
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopLeft">Left Position</span></td>
+											<td>&nbsp;<input id="txtPopupLeft" type="text" maxlength="4" size="4" /></td>
+										</tr>
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopTop">Top Position</span></td>
+											<td>&nbsp;<input id="txtPopupTop" type="text" maxlength="4" size="4" /></td>
+										</tr>
+									</table>
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divAttribs" style="DISPLAY: none">
+			<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenId">Id</span><br />
+						<input id="txtAttId" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1"></td>
+					<td valign="top">
+						<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+							<tr>
+								<td width="60%">
+									<span fckLang="DlgGenLangDir">Language Direction</span><br />
+									<select id="cmbAttLangDir" style="WIDTH: 100%">
+										<option value="" fckLang="DlgGenNotSet" selected>&lt;not set&gt;</option>
+										<option value="ltr" fckLang="DlgGenLangDirLtr">Left to Right (LTR)</option>
+										<option value="rtl" fckLang="DlgGenLangDirRtl">Right to Left (RTL)</option>
+									</select>
+								</td>
+								<td width="1%">&nbsp;&nbsp;&nbsp;</td>
+								<td nowrap="nowrap"><span fckLang="DlgGenAccessKey">Access Key</span><br />
+									<input id="txtAttAccessKey" style="WIDTH: 100%" type="text" maxlength="1" size="1" />
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenName">Name</span><br />
+						<input id="txtAttName" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1"></td>
+					<td valign="top">
+						<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+							<tr>
+								<td width="60%">
+									<span fckLang="DlgGenLangCode">Language Code</span><br />
+									<input id="txtAttLangCode" style="WIDTH: 100%" type="text" />
+								</td>
+								<td width="1%">&nbsp;&nbsp;&nbsp;</td>
+								<td nowrap="nowrap">
+									<span fckLang="DlgGenTabIndex">Tab Index</span><br />
+									<input id="txtAttTabIndex" style="WIDTH: 100%" type="text" maxlength="5" size="5" />
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">&nbsp;</td>
+					<td width="1"></td>
+					<td valign="top"></td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenTitle">Advisory Title</span><br />
+						<input id="txtAttTitle" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1">&nbsp;&nbsp;&nbsp;</td>
+					<td valign="top">
+						<span fckLang="DlgGenContType">Advisory Content Type</span><br />
+						<input id="txtAttContentType" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+				<tr>
+					<td valign="top">
+						<span fckLang="DlgGenClass">Stylesheet Classes</span><br />
+						<input id="txtAttClasses" style="WIDTH: 100%" type="text" />
+					</td>
+					<td></td>
+					<td valign="top">
+						<span fckLang="DlgGenLinkCharset">Linked Resource Charset</span><br />
+						<input id="txtAttCharSet" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+			<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td>
+						<span fckLang="DlgGenStyle">Style</span><br />
+						<input id="txtAttStyle" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+		</div>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_form.html	(revision 838)
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Form dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelection().MoveToAncestorNode( 'FORM' ) ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl )
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtAction').value	= oActiveEl.getAttribute( 'action', 2 ) ;
+		GetE('txtMethod').value	= oActiveEl.method ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.InsertElement( 'form' ) ;
+
+		if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+			oEditor.FCKTools.AppendBogusBr( oActiveEl ) ;
+	}
+
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'action', GetE('txtAction').value ) ;
+	oActiveEl.method = GetE('txtMethod').value ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" width="80%" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgFormName">Name</span><br />
+							<input style="width: 100%" type="text" id="txtName" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormAction">Action</span><br />
+							<input style="width: 100%" type="text" id="txtAction" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormMethod">Method</span><br />
+							<select id="txtMethod">
+								<option value="get" selected="selected">GET</option>
+								<option value="post">POST</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/logo_fredck.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/logo_fredck.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_about.html	(revision 838)
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * "About" dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang	= oEditor.FCKLang ;
+
+window.parent.AddTab( 'About', FCKLang.DlgAboutAboutTab ) ;
+window.parent.AddTab( 'License', FCKLang.DlgAboutLicenseTab ) ;
+window.parent.AddTab( 'BrowserInfo', FCKLang.DlgAboutBrowserInfoTab ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divAbout', ( tabCode == 'About' ) ) ;
+	ShowE('divLicense', ( tabCode == 'License' ) ) ;
+	ShowE('divInfo'	, ( tabCode == 'BrowserInfo' ) ) ;
+}
+
+function SendEMail()
+{
+	var eMail = 'mailto:' ;
+	eMail += 'fredck' ;
+	eMail += '@' ;
+	eMail += 'fckeditor' ;
+	eMail += '.' ;
+	eMail += 'net' ;
+
+	window.location = eMail ;
+}
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<div id="divAbout">
+		<table cellpadding="0" cellspacing="0" border="0" width="100%" style="height: 100%">
+			<tr>
+				<td colspan="2">
+					<img alt="" src="fck_about/logo_fckeditor.gif" width="236" height="41" align="left" />
+					<table width="80" border="0" cellspacing="0" cellpadding="5" bgcolor="#ffffff" align="right">
+						<tr>
+							<td align="center" nowrap="nowrap" style="border-right: #000000 1px solid; border-top: #000000 1px solid;
+								border-left: #000000 1px solid; border-bottom: #000000 1px solid">
+								<span fcklang="DlgAboutVersion">version</span>
+								<br />
+								<b>2.6</b><br />
+								Build 18638</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr style="height: 100%">
+				<td align="center" valign="middle">
+					<span style="font-size: 14px" dir="ltr">
+						<b><a href="http://www.fckeditor.net/?about" target="_blank" title="Visit the FCKeditor web site">
+							Support <b>Open Source</b> Software</a></b> </span>
+					<div style="padding-top:15px">
+						<img alt="" src="fck_about/logo_fredck.gif" width="87" height="36" />
+					</div>
+				</td>
+				<td align="center" nowrap="nowrap" valign="middle">
+					<div>
+						<div style="margin-bottom:5px" dir="ltr">Selected Sponsor</div>
+						<a href="http://www.spellchecker.net/fckeditor/" target="_blank"><img alt="Selected Sponsor" border="0" src="fck_about/sponsors/spellchecker_net.gif" width="75" height="75" /></a>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td width="100%" nowrap="nowrap">
+					<span fcklang="DlgAboutInfo">For further information go to</span> <a href="http://www.fckeditor.net/?About"
+						target="_blank">http://www.fckeditor.net/</a>.
+					<br />
+					Copyright &copy; 2003-2008 <a href="#" onclick="SendEMail();">Frederico Caldeira Knabben</a>
+				</td>
+				<td align="center">
+					<a href="http://www.fckeditor.net/sponsors/apply" target="_blank">Become a Sponsor</a>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divLicense" style="display: none">
+			<p>
+				Licensed under the terms of any of the following licenses at your
+				choice:
+			</p>
+			<ul>
+				<li style="margin-bottom:15px">
+					<b>GNU General Public License</b> Version 2 or later (the "GPL")<br />
+					<a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a>
+				</li>
+				<li style="margin-bottom:15px">
+					<b>GNU Lesser General Public License</b> Version 2.1 or later (the "LGPL")<br />
+					<a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">http://www.gnu.org/licenses/lgpl.html</a>
+				</li>
+				<li>
+					<b>Mozilla Public License</b> Version 1.1 or later (the "MPL")<br />
+					<a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html</a>
+			   </li>
+			</ul>
+	</div>
+	<div id="divInfo" style="display: none" dir="ltr">
+		<table align="center" width="80%" border="0">
+			<tr>
+				<td>
+					<script type="text/javascript">
+<!--
+document.write( '<b>User Agent<\/b><br />' + window.navigator.userAgent + '<br /><br />' ) ;
+document.write( '<b>Browser<\/b><br />' + window.navigator.appName + ' ' + window.navigator.appVersion + '<br /><br />' ) ;
+document.write( '<b>Platform<\/b><br />' + window.navigator.platform + '<br /><br />' ) ;
+
+var sUserLang = '?' ;
+
+if ( window.navigator.language )
+	sUserLang = window.navigator.language.toLowerCase() ;
+else if ( window.navigator.userLanguage )
+	sUserLang = window.navigator.userLanguage.toLowerCase() ;
+
+document.write( '<b>User Language<\/b><br />' + sUserLang ) ;
+//-->
+					</script>
+				</td>
+			</tr>
+		</table>
+	</div>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_anchor.html	(revision 838)
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Anchor dialog window.
+-->
+<html>
+	<head>
+		<title>Anchor Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var dialog			= window.parent ;
+var oEditor			= dialog.InnerDialogLoaded() ;
+
+var FCK				= oEditor.FCK ;
+var FCKBrowserInfo	= oEditor.FCKBrowserInfo ;
+var FCKTools		= oEditor.FCKTools ;
+var FCKRegexLib		= oEditor.FCKRegexLib ;
+
+var oDOM			= FCK.EditorDocument ;
+
+var oFakeImage = dialog.Selection.GetSelectedElement() ;
+
+var oAnchor ;
+
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') )
+		oAnchor = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
+//Search for a real anchor
+if ( !oFakeImage )
+{
+	oAnchor = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+	if ( oAnchor )
+		FCK.Selection.SelectNode( oAnchor ) ;
+}
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oAnchor )
+		GetE('txtName').value = oAnchor.name ;
+	else
+		oAnchor = null ;
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;
+
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	var sNewName = GetE('txtName').value ;
+
+	// Remove any illegal character in a name attribute:
+	// A name should start with a letter, but the validator passes anyway.
+	sNewName = sNewName.replace( /[^\w-_\.:]/g, '_' ) ;
+
+	if ( sNewName.length == 0 )
+	{
+		// Remove the anchor if the user leaves the name blank
+		if ( oAnchor )
+		{
+			// Removes the current anchor from the document using the new command
+			FCK.Commands.GetCommand( 'AnchorDelete' ).Execute() ;
+			return true ;
+		}
+
+		alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
+		return false ;
+	}
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	if ( oAnchor )	// Modifying an existent anchor.
+	{
+		ReadjustLinksToAnchor( oAnchor.name, sNewName );
+
+		// Buggy explorer, bad bad browser. http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/
+		// Instead of just replacing the .name for the existing anchor (in order to preserve the content), we must remove the .name
+		// and assign .name, although it won't appear until it's specially processed in fckxhtml.js
+
+		// We remove the previous name
+		oAnchor.removeAttribute( 'name' ) ;
+		// Now we set it, but later we must process it specially
+		oAnchor.name = sNewName ;
+
+		return true ;
+	}
+
+	// Create a new anchor preserving the current selection
+	var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ;
+
+	if ( aNewAnchors.length == 0 )
+	{
+		// Nothing was selected, so now just create a normal A
+		aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ;
+	}
+	else
+	{
+		// Remove the fake href
+		for ( var i = 0 ; i < aNewAnchors.length ; i++ )
+			aNewAnchors[i].removeAttribute( 'href' ) ;
+	}
+
+	// More than one anchors may have been created, so interact through all of them (see #220).
+	for ( var i = 0 ; i < aNewAnchors.length ; i++ )
+	{
+		oAnchor = aNewAnchors[i] ;
+
+		// Set the name
+		oAnchor.name = sNewName ;
+
+		// IE does require special processing to show the Anchor's image
+		// Opera doesn't allow to select empty anchors
+		if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
+		{
+			if ( oAnchor.innerHTML != '' )
+			{
+				if ( FCKBrowserInfo.IsIE )
+					oAnchor.className += ' FCK__AnchorC' ;
+			}
+			else
+			{
+				// Create a fake image for both IE and Opera
+				var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;
+				oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+				oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;
+				oAnchor.parentNode.removeChild( oAnchor ) ;
+			}
+
+		}
+	}
+
+	return true ;
+}
+
+// Checks all the links in the current page pointing to the current name and changes them to the new name
+function ReadjustLinksToAnchor( sCurrent, sNew )
+{
+	var oDoc = FCK.EditorDocument ;
+
+	var aLinks = oDoc.getElementsByTagName( 'A' ) ;
+
+	var sReference = '#' + sCurrent ;
+	// The url of the document, so we check absolute and partial references.
+	var sFullReference = oDoc.location.href.replace( /(#.*$)/, '') ;
+	sFullReference += sReference ;
+
+	var oLink ;
+	var i = aLinks.length - 1 ;
+	while ( i >= 0 && ( oLink = aLinks[i--] ) )
+	{
+		var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
+		if ( sHRef == null )
+			sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
+
+		if ( sHRef == sReference || sHRef == sFullReference )
+		{
+			oLink.href = '#' + sNew ;
+			SetAttribute( oLink, '_fcksavedurl', '#' + sNew ) ;
+		}
+	}
+}
+
+		</script>
+	</head>
+	<body style="overflow: hidden">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgAnchorName">Anchor Name</span><BR>
+								<input id="txtName" style="WIDTH: 100%" type="text">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template.html	(revision 838)
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Template selection dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
+			.TplList
+			{
+				border: #dcdcdc 2px solid;
+				background-color: #ffffff;
+				overflow: auto;
+				width: 90%;
+			}
+
+			.TplItem
+			{
+				margin: 5px;
+				padding: 7px;
+				border: #eeeeee 1px solid;
+			}
+
+			.TplItem TABLE
+			{
+				display: inline;
+			}
+
+			.TplTitle
+			{
+				font-weight: bold;
+			}
+		</style>
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+window.onload = function()
+{
+	// Set the right box height (browser dependent).
+	GetE('eList').style.height = document.all ? '100%' : '295px' ;
+
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ;
+
+	if ( FCKConfig.TemplateReplaceCheckbox !== false )
+		GetE('xReplaceBlock').style.display = '' ;
+
+	window.parent.SetAutoSize( true ) ;
+
+	LoadTemplatesXml() ;
+}
+
+function LoadTemplatesXml()
+{
+	var oTemplate ;
+
+	if ( !FCK._Templates )
+	{
+		GetE('eLoading').style.display = '' ;
+
+		// Create the Templates array.
+		FCK._Templates = new Array() ;
+
+		// Load the XML file.
+		var oXml = new oEditor.FCKXml() ;
+		oXml.LoadUrl( FCKConfig.TemplatesXmlPath ) ;
+
+		// Get the Images Base Path.
+		var oAtt = oXml.SelectSingleNode( 'Templates/@imagesBasePath' ) ;
+		var sImagesBasePath = oAtt ? oAtt.value : '' ;
+
+		// Get the "Template" nodes defined in the XML file.
+		var aTplNodes = oXml.SelectNodes( 'Templates/Template' ) ;
+
+		for ( var i = 0 ; i < aTplNodes.length ; i++ )
+		{
+			var oNode = aTplNodes[i] ;
+
+			oTemplate = new Object() ;
+
+			var oPart ;
+
+			// Get the Template Title.
+			if ( (oPart = oNode.attributes.getNamedItem('title')) )
+				oTemplate.Title = oPart.value ;
+			else
+				oTemplate.Title = 'Template ' + ( i + 1 ) ;
+
+			// Get the Template Description.
+			if ( (oPart = oXml.SelectSingleNode( 'Description', oNode )) )
+				oTemplate.Description = oPart.text ? oPart.text : oPart.textContent ;
+
+			// Get the Template Image.
+			if ( (oPart = oNode.attributes.getNamedItem('image')) )
+				oTemplate.Image = sImagesBasePath + oPart.value ;
+
+			// Get the Template HTML.
+			if ( (oPart = oXml.SelectSingleNode( 'Html', oNode )) )
+				oTemplate.Html = oPart.text ? oPart.text : oPart.textContent ;
+			else
+			{
+				alert( 'No HTML defined for template index ' + i + '. Please review the "' + FCKConfig.TemplatesXmlPath + '" file.' ) ;
+				continue ;
+			}
+
+			FCK._Templates[ FCK._Templates.length ] = oTemplate ;
+		}
+
+		GetE('eLoading').style.display = 'none' ;
+	}
+
+	if ( FCK._Templates.length == 0 )
+		GetE('eEmpty').style.display = '' ;
+	else
+	{
+		for ( var j = 0 ; j < FCK._Templates.length ; j++ )
+		{
+			oTemplate = FCK._Templates[j] ;
+
+			var oItemDiv = GetE('eList').appendChild( document.createElement( 'DIV' ) ) ;
+			oItemDiv.TplIndex = j ;
+			oItemDiv.className = 'TplItem' ;
+
+			// Build the inner HTML of our new item DIV.
+			var sInner = '<table><tr>' ;
+
+			if ( oTemplate.Image )
+				sInner += '<td valign="top"><img src="' + oTemplate.Image + '"><\/td>' ;
+
+			sInner += '<td valign="top"><div class="TplTitle">' + oTemplate.Title + '<\/div>' ;
+
+			if ( oTemplate.Description )
+				sInner += '<div>' + oTemplate.Description + '<\/div>' ;
+
+			sInner += '<\/td><\/tr><\/table>' ;
+
+			oItemDiv.innerHTML = sInner ;
+
+			oItemDiv.onmouseover = ItemDiv_OnMouseOver ;
+			oItemDiv.onmouseout = ItemDiv_OnMouseOut ;
+			oItemDiv.onclick = ItemDiv_OnClick ;
+		}
+	}
+}
+
+function ItemDiv_OnMouseOver()
+{
+	this.className += ' PopupSelectionBox' ;
+}
+
+function ItemDiv_OnMouseOut()
+{
+	this.className = this.className.replace( /\s*PopupSelectionBox\s*/, '' ) ;
+}
+
+function ItemDiv_OnClick()
+{
+	SelectTemplate( this.TplIndex ) ;
+}
+
+function SelectTemplate( index )
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	if ( GetE('xChkReplaceAll').checked )
+		FCK.SetData( FCK._Templates[index].Html ) ;
+	else
+		FCK.InsertHtml( FCK._Templates[index].Html ) ;
+
+	window.parent.Cancel( true ) ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<span fcklang="DlgTemplatesSelMsg">Please select the template to open in the editor<br />
+					(the actual contents will be lost):</span>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" align="center">
+				<div id="eList" align="left" class="TplList">
+					<div id="eLoading" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesLoading">Loading templates list. Please wait...</span>
+					</div>
+					<div id="eEmpty" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesNoTpl">(No templates defined)</span>
+					</div>
+				</div>
+			</td>
+		</tr>
+		<tr id="xReplaceBlock" style="display: none">
+			<td>
+				<table cellpadding="0" cellspacing="0">
+					<tr>
+						<td>
+							<input id="xChkReplaceAll" type="checkbox" /></td>
+						<td>
+							&nbsp;</td>
+						<td>
+							<label for="xChkReplaceAll" fcklang="DlgTemplatesReplace">
+								Replace actual contents</label></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_replace.html	(revision 838)
@@ -0,0 +1,530 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * "Find" and "Replace" dialog box window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+var dialogArguments = dialog.Args() ;
+
+var FCKLang = oEditor.FCKLang ;
+
+dialog.AddTab( 'Find', FCKLang.DlgFindTitle ) ;
+dialog.AddTab( 'Replace', FCKLang.DlgReplaceTitle ) ;
+var idMap = {} ;
+
+function OnDialogTabChange( tabCode )
+{
+	ShowE( 'divFind', ( tabCode == 'Find' ) ) ;
+	ShowE( 'divReplace', ( tabCode == 'Replace' ) ) ;
+	idMap['FindText'] = 'txtFind' + tabCode ;
+	idMap['CheckCase'] = 'chkCase' + tabCode ;
+	idMap['CheckWord'] = 'chkWord' + tabCode ;
+
+	if ( tabCode == 'Replace' )
+		dialog.SetAutoSize( true ) ;
+}
+
+// Place a range at the start of document.
+// This will be the starting point of our search.
+var GlobalRange = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+
+function ResetGlobalRange()
+{
+	GlobalRange.SetStart( oEditor.FCK.EditorDocument.body, 1 ) ;
+	GlobalRange.SetEnd( oEditor.FCK.EditorDocument.body, 1 ) ;
+	GlobalRange.Collapse( true ) ;
+}
+ResetGlobalRange() ;
+
+var HighlightRange = null ;
+function Highlight()
+{
+	if ( HighlightRange )
+		ClearHighlight() ;
+	var cloneRange = GlobalRange.Clone() ;
+	oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ).ApplyToRange( cloneRange, false, true ) ;
+	HighlightRange = cloneRange ;
+	GlobalRange = HighlightRange.Clone() ;
+}
+
+function ClearHighlight()
+{
+	if ( HighlightRange )
+	{
+		oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ).RemoveFromRange( HighlightRange, false, true ) ;
+		HighlightRange = null ;
+	}
+}
+
+function OnLoad()
+{
+	// First of all, translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	// Show the appropriate tab at startup.
+	if ( dialogArguments.CustomValue == 'Find' )
+	{
+		dialog.SetSelectedTab( 'Find' ) ;
+		dialog.SetAutoSize( true ) ;
+	}
+	else
+		dialog.SetSelectedTab( 'Replace' ) ;
+
+	SelectField( 'txtFind' + dialogArguments.CustomValue ) ;
+}
+
+function btnStat()
+{
+	GetE('btnReplace').disabled =
+		GetE('btnReplaceAll').disabled =
+			GetE('btnFind').disabled =
+				( GetE(idMap["FindText"]).value.length == 0 ) ;
+}
+
+function btnStatDelayed()
+{
+	setTimeout( btnStat, 1 ) ;
+}
+
+function GetSearchString()
+{
+	return GetE(idMap['FindText']).value ;
+}
+
+function GetReplaceString()
+{
+	return GetE("txtReplace").value ;
+}
+
+function GetCheckCase()
+{
+	return !! ( GetE(idMap['CheckCase']).checked ) ;
+}
+
+function GetMatchWord()
+{
+	return !! ( GetE(idMap['CheckWord']).checked ) ;
+}
+
+// Get the data pointed to by a bookmark.
+function GetData( bookmark )
+{
+	var cursor = oEditor.FCK.EditorDocument.documentElement ;
+	for ( var i = 0 ; i < bookmark.length ; i++ )
+	{
+		var target = bookmark[i] ;
+		var currentIndex = -1 ;
+		if ( cursor.nodeType != 3 )
+		{
+			for (var j = 0 ; j < cursor.childNodes.length ; j++ )
+			{
+				var candidate = cursor.childNodes[j] ;
+				if ( candidate.nodeType == 3 &&
+						candidate.previousSibling &&
+						candidate.previousSibling.nodeType == 3 )
+					continue ;
+				currentIndex++ ;
+				if ( currentIndex == target )
+				{
+					cursor = candidate ;
+					break ;
+				}
+			}
+			if ( currentIndex < target )
+				return null ;
+		}
+		else
+		{
+			if ( i != bookmark.length - 1 )
+				return null ;
+			while ( target >= cursor.length && cursor.nextSibling && cursor.nextSibling.nodeType == 3 )
+			{
+				target -= cursor.length ;
+				cursor = cursor.nextSibling ;
+			}
+			cursor = cursor.nodeValue.charAt( target ) ;
+			if ( cursor == "" )
+				cursor = null ;
+		}
+	}
+	return cursor ;
+}
+
+// With this function, we can treat the bookmark as an iterator for DFS.
+function NextPosition( bookmark )
+{
+	// See if there's anything further down the tree.
+	var next = bookmark.concat( [0] ) ;
+	if ( GetData( next ) != null )
+		return next ;
+
+	// Nothing down there? See if there's anything next to me.
+	var next = bookmark.slice( 0, bookmark.length - 1 ).concat( [ bookmark[ bookmark.length - 1 ] + 1 ] ) ;
+	if ( GetData( next ) != null )
+		return next ;
+
+	// Nothing even next to me? See if there's anything next to my ancestors.
+	for ( var i = bookmark.length - 1 ; i > 0 ; i-- )
+	{
+		var next = bookmark.slice( 0, i - 1 ).concat( [ bookmark[ i - 1 ] + 1 ] ) ;
+		if ( GetData( next ) != null )
+			return next ;
+	}
+
+	// There's absolutely nothing left to walk, return null.
+	return null ;
+}
+
+// Is this character a unicode whitespace?
+// Reference: http://unicode.org/Public/UNIDATA/PropList.txt
+function CheckIsWhitespace( c )
+{
+	var code = c.charCodeAt( 0 );
+	if ( code >= 9 && code <= 0xd )
+		return true;
+	if ( code >= 0x2000 && code <= 0x200a )
+		return true;
+	switch ( code )
+	{
+		case 0x20:
+		case 0x85:
+		case 0xa0:
+		case 0x1680:
+		case 0x180e:
+		case 0x2028:
+		case 0x2029:
+		case 0x202f:
+		case 0x205f:
+		case 0x3000:
+			return true;
+		default:
+			return false;
+	}
+}
+
+// Knuth-Morris-Pratt Algorithm for stream input
+KMP_NOMATCH = 0 ;
+KMP_ADVANCED = 1 ;
+KMP_MATCHED = 2 ;
+function KmpMatch( pattern, ignoreCase )
+{
+	var overlap = [ -1 ] ;
+	for ( var i = 0 ; i < pattern.length ; i++ )
+	{
+		overlap.push( overlap[i] + 1 ) ;
+		while ( overlap[ i + 1 ] > 0 && pattern.charAt( i ) != pattern.charAt( overlap[ i + 1 ] - 1 ) )
+			overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1 ;
+	}
+	this._Overlap = overlap ;
+	this._State = 0 ;
+	this._IgnoreCase = ( ignoreCase === true ) ;
+	if ( ignoreCase )
+		this.Pattern = pattern.toLowerCase();
+	else
+		this.Pattern = pattern ;
+}
+KmpMatch.prototype = {
+	"FeedCharacter" : function( c )
+	{
+		if ( this._IgnoreCase )
+			c = c.toLowerCase();
+
+		while ( true )
+		{
+			if ( c == this.Pattern.charAt( this._State ) )
+			{
+				this._State++ ;
+				if ( this._State == this.Pattern.length )
+				{
+					// found a match, start over, don't care about partial matches involving the current match
+					this._State = 0;
+					return KMP_MATCHED;
+				}
+				return KMP_ADVANCED ;
+			}
+			else if ( this._State == 0 )
+				return KMP_NOMATCH;
+			else
+				this._State = this._Overlap[ this._State ];
+		}
+
+		return null ;
+	},
+	"Reset" : function()
+	{
+		this._State = 0 ;
+	}
+};
+
+function _Find()
+{
+	// Start from the end of the current selection.
+	var matcher = new KmpMatch( GetSearchString(), ! GetCheckCase() ) ;
+	var cursor = GlobalRange.CreateBookmark2().End ;
+	var matchState = KMP_NOMATCH ;
+	var matchBookmark = null ;
+	var matchBookmarkStart = [] ;
+
+	// Match finding.
+	while ( true )
+	{
+		// Perform KMP stream matching.
+		//	- Reset KMP matcher if we encountered a block element.
+		var data = GetData( cursor ) ;
+		if ( data )
+		{
+			if ( data.tagName )
+			{
+				if ( oEditor.FCKListsLib.BlockElements[ data.tagName.toLowerCase() ] )
+				{
+					matcher.Reset();
+					matchBookmarkStart = [] ;
+				}
+			}
+			else if ( data.charAt != undefined )
+			{
+				matchState = matcher.FeedCharacter(data) ;
+
+				// No possible match of any useful substring in the pattern for the currently scanned character.
+				// So delete any positional information.
+				if ( matchState == KMP_NOMATCH )
+					matchBookmarkStart = [] ;
+				// We've matched something, but it's not a complete match, so let's just mark down the position for backtracking later.
+				else if ( matchState == KMP_ADVANCED )
+				{
+					matchBookmarkStart.push( cursor.concat( [] ) ) ;
+					if ( matchBookmarkStart.length > matcher._State )
+						matchBookmarkStart.shift() ;
+				}
+				// Found a complete match! Mark down the ending position as well.
+				else if ( matchState == KMP_MATCHED )
+				{
+					// It is possible to get a KMP_MATCHED without KMP_ADVANCED when the match pattern is only 1 character.
+					// So need to check and mark down the starting position as well.
+					if ( matchBookmarkStart.length == 0 )
+						matchBookmarkStart = [cursor.concat( [] )] ;
+
+					matchBookmark = { 'Start' : matchBookmarkStart.shift(), 'End' : cursor.concat( [] ) } ;
+					matchBookmark.End[ matchBookmark.End.length - 1 ]++;
+
+					// Wait, do we have to match a whole word?
+					// If yes, carry out additional checks on what we've got.
+					if ( GetMatchWord() )
+					{
+						var startOk = false ;
+						var endOk = false ;
+						var start = matchBookmark.Start ;
+						var end = matchBookmark.End ;
+						if ( start[ start.length - 1 ] == 0 )
+							startOk = true ;
+						else
+						{
+							var cursorBeforeStart = start.slice( 0, start.length - 1 ) ;
+							cursorBeforeStart.push( start[ start.length - 1 ] - 1 ) ;
+							var dataBeforeStart = GetData( cursorBeforeStart ) ;
+							if ( dataBeforeStart == null || dataBeforeStart.charAt == undefined )
+								startOk = true ;
+							else if ( CheckIsWhitespace( dataBeforeStart ) )
+								startOk = true ;
+						}
+
+						// this is already one character beyond the last char, no need to move
+						var cursorAfterEnd = end ;
+						var dataAfterEnd = GetData( cursorAfterEnd );
+						if ( dataAfterEnd == null || dataAfterEnd.charAt == undefined )
+							endOk = true ;
+						else if ( CheckIsWhitespace( dataAfterEnd ) )
+							endOk = true ;
+
+						if ( startOk && endOk )
+							break ;
+						else
+							matcher.Reset() ;
+					}
+					else
+						break ;
+				}
+			}
+		}
+
+		// Perform DFS across the document, until we've reached the end.
+		cursor = NextPosition( cursor ) ;
+		if ( cursor == null )
+			break;
+	}
+
+	// If we've found a match, highlight the match.
+	if ( matchState == KMP_MATCHED )
+	{
+		GlobalRange.MoveToBookmark2( matchBookmark ) ;
+		Highlight() ;
+		var focus = GlobalRange._Range.endContainer ;
+		while ( focus && focus.nodeType != 1 )
+			focus = focus.parentNode ;
+
+		if ( focus )
+		{
+			if ( oEditor.FCKBrowserInfo.IsSafari )
+				oEditor.FCKDomTools.ScrollIntoView( focus, false ) ;
+			else
+				focus.scrollIntoView( false ) ;
+		}
+
+		return true ;
+	}
+	else
+	{
+		ResetGlobalRange() ;
+		return false ;
+	}
+}
+
+function Find()
+{
+	if ( ! _Find() )
+	{
+		ClearHighlight() ;
+		alert( FCKLang.DlgFindNotFoundMsg ) ;
+	}
+}
+
+function Replace()
+{
+	if ( GlobalRange.CheckIsCollapsed() )
+	{
+		if (! _Find() )
+		{
+			ClearHighlight() ;
+			alert( FCKLang.DlgFindNotFoundMsg ) ;
+		}
+	}
+	else
+	{
+		oEditor.FCKUndo.SaveUndoStep() ;
+		GlobalRange.DeleteContents() ;
+		GlobalRange.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
+		GlobalRange.Collapse( false ) ;
+	}
+}
+
+function ReplaceAll()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+	var replaceCount = 0 ;
+
+	while ( _Find() )
+	{
+		dialog.Selection.EnsureSelection() ;
+		GlobalRange.DeleteContents() ;
+		GlobalRange.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
+		GlobalRange.Collapse( false ) ;
+		replaceCount++ ;
+	}
+	if ( replaceCount == 0 )
+	{
+		ClearHighlight() ;
+		alert( FCKLang.DlgFindNotFoundMsg ) ;
+	}
+	dialog.Cancel() ;
+}
+
+window.onunload = function(){ ClearHighlight() ; }
+	</script>
+</head>
+<body onload="OnLoad()" style="overflow: hidden">
+	<div id="divFind" style="display: none">
+		<table cellspacing="3" cellpadding="2" width="100%" border="0">
+			<tr>
+				<td nowrap="nowrap">
+					<label for="txtFindFind" fcklang="DlgReplaceFindLbl">
+						Find what:</label>
+				</td>
+				<td width="100%">
+					<input id="txtFindFind" onkeyup="btnStat()" oninput="btnStat()" onpaste="btnStatDelayed()" style="width: 100%" tabindex="1"
+						type="text" />
+				</td>
+				<td>
+					<input id="btnFind" style="width: 80px" disabled="disabled" onclick="Find();"
+						type="button" value="Find" fcklang="DlgFindFindBtn" />
+				</td>
+			</tr>
+			<tr>
+				<td valign="bottom" colspan="3">
+					&nbsp;<input id="chkCaseFind" tabindex="3" type="checkbox" /><label for="chkCaseFind" fcklang="DlgReplaceCaseChk">Match
+						case</label>
+					<br />
+					&nbsp;<input id="chkWordFind" tabindex="4" type="checkbox" /><label for="chkWordFind" fcklang="DlgReplaceWordChk">Match
+						whole word</label>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divReplace" style="display:none">
+		<table cellspacing="3" cellpadding="2" width="100%" border="0">
+			<tr>
+				<td nowrap="nowrap">
+					<label for="txtFindReplace" fcklang="DlgReplaceFindLbl">
+						Find what:</label>
+				</td>
+				<td width="100%">
+					<input id="txtFindReplace" onkeyup="btnStat()" oninput="btnStat()" onpaste="btnStatDelayed()" style="width: 100%" tabindex="1"
+						type="text" />
+				</td>
+				<td>
+					<input id="btnReplace" style="width: 80px" disabled="disabled" onclick="Replace();"
+						type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />
+				</td>
+			</tr>
+			<tr>
+				<td valign="top" nowrap="nowrap">
+					<label for="txtReplace" fcklang="DlgReplaceReplaceLbl">
+						Replace with:</label>
+				</td>
+				<td valign="top">
+					<input id="txtReplace" style="width: 100%" tabindex="2" type="text" />
+				</td>
+				<td>
+					<input id="btnReplaceAll" style="width: 80px" disabled="disabled" onclick="ReplaceAll()" type="button"
+						value="Replace All" fcklang="DlgReplaceReplAllBtn" />
+				</td>
+			</tr>
+			<tr>
+				<td valign="bottom" colspan="3">
+					&nbsp;<input id="chkCaseReplace" tabindex="3" type="checkbox" /><label for="chkCaseReplace" fcklang="DlgReplaceCaseChk">Match
+						case</label>
+					<br />
+					&nbsp;<input id="chkWordReplace" tabindex="4" type="checkbox" /><label for="chkWordReplace" fcklang="DlgReplaceWordChk">Match
+						whole word</label>
+				</td>
+			</tr>
+		</table>
+	</div>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_button.html	(revision 838)
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Button dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Button Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor	= dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName.toUpperCase() == "INPUT" && ( oActiveEl.type == "button" || oActiveEl.type == "submit" || oActiveEl.type == "reset" ) )
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtValue').value	= oActiveEl.value ;
+		GetE('txtType').value	= oActiveEl.type ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'INPUT', {name: GetE('txtName').value, type: GetE('txtType').value } ) ;
+
+	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table border="0" cellpadding="0" cellspacing="0" width="80%">
+					<tr>
+						<td colspan="">
+							<span fcklang="DlgCheckboxName">Name</span><br />
+							<input type="text" size="20" id="txtName" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonText">Text (Value)</span><br />
+							<input type="text" id="txtValue" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonType">Type</span><br />
+							<select id="txtType">
+								<option fcklang="DlgButtonTypeBtn" value="button" selected="selected">Button</option>
+								<option fcklang="DlgButtonTypeSbm" value="submit">Submit</option>
+								<option fcklang="DlgButtonTypeRst" value="reset">Reset</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_paste.html	(revision 838)
@@ -0,0 +1,339 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This dialog is shown when, for some reason (usually security settings),
+ * the user is not able to paste data from the clipboard to the editor using
+ * the toolbar buttons or the context menu.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+var dialog = window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+var FCK = oEditor.FCK;
+var FCKTools	= oEditor.FCKTools ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKBrowserInfo = oEditor.FCKBrowserInfo ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	var sPastingType = dialog.Args().CustomValue ;
+
+	if ( sPastingType == 'Word' || sPastingType == 'Security' )
+	{
+		if ( sPastingType == 'Security' )
+			document.getElementById( 'xSecurityMsg' ).style.display = '' ;
+
+		// For document.domain compatibility (#123) we must do all the magic in
+		// the URL for IE.
+		var sFrameUrl = !oEditor.FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE ?
+			'javascript:void(0)' :
+			'javascript:void( (function(){' +
+				'document.open() ;' +
+				'document.domain=\'' + document.domain + '\' ;' +
+				'document.write(\'<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>\') ;' +
+				'document.close() ;' +
+				'document.body.contentEditable = true ;' +
+				'window.focus() ;' +
+				'})() )' ;
+
+		var eFrameSpace = document.getElementById( 'xFrameSpace' ) ;
+		eFrameSpace.innerHTML = '<iframe id="frmData" src="' + sFrameUrl + '" ' +
+					'height="98%" width="99%" frameborder="0" style="border: #000000 1px; background-color: #ffffff"></iframe>' ;
+
+		var oFrame = eFrameSpace.firstChild ;
+
+		if ( !oEditor.FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE )
+		{
+			// Avoid errors if the pasted content has any script that fails: #389
+			var oDoc = oFrame.contentWindow.document ;
+			oDoc.open() ;
+			oDoc.write('<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>') ;
+			oDoc.close() ;
+
+			if ( FCKBrowserInfo.IsIE )
+				oDoc.body.contentEditable = true ;
+			else
+				oDoc.designMode = 'on' ;
+
+			oFrame.contentWindow.focus();
+		}
+	}
+	else
+	{
+		document.getElementById('txtData').style.display = '' ;
+	}
+
+	if ( sPastingType != 'Word' )
+		document.getElementById('oWordCommands').style.display = 'none' ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+}
+
+function Ok()
+{
+	// Before doing anything, save undo snapshot.
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	var sHtml ;
+
+	var sPastingType = dialog.Args().CustomValue ;
+
+	if ( sPastingType == 'Word' || sPastingType == 'Security' )
+	{
+		var oFrame = document.getElementById('frmData') ;
+		var oBody ;
+
+		if ( oFrame.contentDocument )
+			oBody = oFrame.contentDocument.body ;
+		else
+			oBody = oFrame.contentWindow.document.body ;
+
+		if ( sPastingType == 'Word' )
+		{
+			// If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one
+			if ( typeof( FCK.CustomCleanWord ) == 'function' )
+				sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+			else
+				sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+		}
+		else
+			sHtml = oBody.innerHTML ;
+
+		// Fix relative anchor URLs (IE automatically adds the current page URL).
+		var re = new RegExp( window.location + "#", "g" ) ;
+		sHtml = sHtml.replace( re, '#') ;
+	}
+	else
+	{
+		sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value )  ;
+		sHtml = FCKTools.ProcessLineBreaks( oEditor, FCKConfig, sHtml ) ;
+
+		// FCK.InsertHtml() does not work for us, since document fragments cannot contain node fragments. :(
+		// Use the marker method instead. It's primitive, but it works.
+		var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+		var oDoc = oEditor.FCK.EditorDocument ;
+		dialog.Selection.EnsureSelection() ;
+		range.MoveToSelection() ;
+		range.DeleteContents() ;
+		var marker = [] ;
+		for ( var i = 0 ; i < 5 ; i++ )
+			marker.push( parseInt(Math.random() * 100000, 10 ) ) ;
+		marker = marker.join( "" ) ;
+		range.InsertNode ( oDoc.createTextNode( marker ) ) ;
+		var bookmark = range.CreateBookmark() ;
+
+		// Now we've got a marker indicating the paste position in the editor document.
+		// Find its position in the HTML code.
+		var htmlString = oDoc.body.innerHTML ;
+		var index = htmlString.indexOf( marker ) ;
+
+		// Split it the HTML code up, add the code we generated, and put them back together.
+		var htmlList = [] ;
+		htmlList.push( htmlString.substr( 0, index ) ) ;
+		htmlList.push( sHtml ) ;
+		htmlList.push( htmlString.substr( index + marker.length ) ) ;
+		htmlString = htmlList.join( "" ) ;
+
+		if ( oEditor.FCKBrowserInfo.IsIE )
+			oEditor.FCK.SetInnerHtml( htmlString ) ;
+		else
+			oDoc.body.innerHTML = htmlString ;
+
+		range.MoveToBookmark( bookmark ) ;
+		range.Collapse( false ) ;
+		range.Select() ;
+		range.Release() ;
+		return true ;
+	}
+
+	oEditor.FCK.InsertHtml( sHtml ) ;
+
+	return true ;
+}
+
+// This function will be called from the PasteFromWord dialog (fck_paste.html)
+// Input: oNode a DOM node that contains the raw paste from the clipboard
+// bIgnoreFont, bRemoveStyles booleans according to the values set in the dialog
+// Output: the cleaned string
+function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
+{
+	var html = oNode.innerHTML ;
+
+	html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
+	html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ;
+
+	// Remove mso-xxx styles.
+	html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;
+
+	// Remove margin styles.
+	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, '' ) ;
+	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;
+
+	html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, '' ) ;
+	html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;
+
+	html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*tab-stops:[^;"]*;?/gi, '' ) ;
+	html = html.replace( /\s*tab-stops:[^"]*/gi, '' ) ;
+
+	// Remove FONT face attributes.
+	if ( bIgnoreFont )
+	{
+		html = html.replace( /\s*face="[^"]*"/gi, '' ) ;
+		html = html.replace( /\s*face=[^ >]*/gi, '' ) ;
+
+		html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;
+	}
+
+	// Remove Class attributes
+	html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
+	// Remove styles.
+	if ( bRemoveStyles )
+		html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;
+
+	// Remove empty styles.
+	html =  html.replace( /\s*style="\s*"/gi, '' ) ;
+
+	html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;
+
+	html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;
+
+	// Remove Lang attributes
+	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
+	html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
+
+	html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
+
+	// Remove XML elements and declarations
+	html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;
+
+	// Remove Tags with XML namespace declarations: <o:p><\/o:p>
+	html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;
+
+	// Remove comments [SF BUG-1481861].
+	html = html.replace(/<\!--.*?-->/g, '' ) ;
+
+	html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;
+
+	html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
+
+	// Remove "display:none" tags.
+	html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;
+
+	// Remove language tags
+	html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
+	// Remove onmouseover and onmouseout events (from MS Word comments effect)
+	html = html.replace( /<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi, "<$1$3") ;
+	html = html.replace( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi, "<$1$3") ;
+
+	if ( FCKConfig.CleanWordKeepsStructure )
+	{
+		// The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">
+		html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;
+
+		// Word likes to insert extra <font> tags, when using MSIE. (Wierd).
+		html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
+		html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
+	}
+	else
+	{
+		html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;
+		html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;
+		html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;
+		html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;
+		html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;
+		html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;
+
+		html = html.replace( /<\/H\d>/gi, '<\/font><\/b><\/div>' ) ;
+
+		// Transform <P> to <DIV>
+		var re = new RegExp( '(<P)([^>]*>.*?)(<\/P>)', 'gi' ) ;	// Different because of a IE 5.0 error
+		html = html.replace( re, '<div$2<\/div>' ) ;
+
+		// Remove empty tags (three times, just to be sure).
+		// This also removes any empty anchor
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+	}
+
+	return html ;
+}
+
+	</script>
+
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%">
+		<tr>
+			<td>
+				<div id="xSecurityMsg" style="display: none">
+					<span fcklang="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.</span><br />
+					&nbsp;
+				</div>
+				<div>
+					<span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard
+						(<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span><br />
+					&nbsp;
+				</div>
+			</td>
+		</tr>
+		<tr>
+			<td id="xFrameSpace" valign="top" height="100%" style="border: #000000 1px solid">
+				<textarea id="txtData" cols="80" rows="5" style="border: #000000 1px; display: none;
+					width: 99%; height: 98%"></textarea>
+			</td>
+		</tr>
+		<tr id="oWordCommands">
+			<td>
+
+					<input id="chkRemoveFont" type="checkbox" checked="checked" />
+					<label for="chkRemoveFont" fcklang="DlgPasteIgnoreFont">
+						Ignore Font Face definitions</label>
+					<br />
+					<input id="chkRemoveStyles" type="checkbox" />
+					<label for="chkRemoveStyles" fcklang="DlgPasteRemoveStyles">
+						Remove Styles definitions</label>
+
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_specialchar.html	(revision 838)
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Special Chars Selector dialog window.
+-->
+<html>
+	<head>
+		<meta name="robots" content="noindex, nofollow">
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<style type="text/css">
+				.Hand
+				{
+					cursor: pointer ;
+					cursor: hand ;
+				}
+				.Sample { font-size: 24px; }
+		</style>
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+var oSample ;
+
+function insertChar(charValue)
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+	oEditor.FCK.InsertHtml( charValue || "" ) ;
+	window.parent.Cancel() ;
+}
+
+function over(td)
+{
+	if ( ! oSample )
+		return ;
+	oSample.innerHTML = td.innerHTML ;
+	td.className = 'LightBackground SpecialCharsOver Hand' ;
+}
+
+function out(td)
+{
+	if ( ! oSample )
+		return ;
+	oSample.innerHTML = "&nbsp;" ;
+	td.className = 'DarkBackground SpecialCharsOut Hand' ;
+}
+
+function setDefaults()
+{
+	// Gets the sample placeholder.
+	oSample = document.getElementById("SampleTD") ;
+
+	// First of all, translates the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+		</script>
+	</head>
+	<body onload="setDefaults()" style="overflow: hidden">
+		<table cellpadding="0" cellspacing="0" width="100%" height="100%">
+			<tr>
+				<td width="100%">
+					<table cellpadding="1" cellspacing="1" align="center" border="0" width="100%" height="100%">
+						<script type="text/javascript">
+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;","&#372;","&#374","&#373","&#375;","&sbquo;","&#8219;","&bdquo;","&hellip;","&trade;","&#9658;","&bull;","&rarr;","&rArr;","&hArr;","&diams;","&asymp;"] ;
+
+var cols = 20 ;
+
+var i = 0 ;
+while (i < aChars.length)
+{
+	document.write("<TR>") ;
+	for(var j = 0 ; j < cols ; j++)
+	{
+		if (aChars[i])
+		{
+			document.write('<TD width="1%" class="DarkBackground SpecialCharsOut Hand" align="center" onclick="insertChar(\'' + aChars[i].replace(/&/g, "&amp;") + '\')" onmouseover="over(this)" onmouseout="out(this)">') ;
+			document.write(aChars[i]) ;
+		}
+		else
+			document.write("<TD class='DarkBackground SpecialCharsOut'>&nbsp;") ;
+		document.write("<\/TD>") ;
+		i++ ;
+	}
+	document.write("<\/TR>") ;
+}
+						</script>
+					</table>
+				</td>
+				<td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+				<td valign="top">
+					<table width="40" cellpadding="0" cellspacing="0" border="0">
+						<tr>
+							<td id="SampleTD" width="40" height="40" align="center" class="DarkBackground SpecialCharsOut Sample">&nbsp;</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select.html	(revision 838)
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Select dialog window.
+-->
+<html>
+	<head>
+		<title>Select Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript" src="fck_select/fck_select.js"></script>
+		<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+var oListText ;
+var oListValue ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	oListText	= document.getElementById( 'cmbText' ) ;
+	oListValue	= document.getElementById( 'cmbValue' ) ;
+
+	// Fix the lists widths. (Bug #970)
+	oListText.style.width = oListText.offsetWidth ;
+	oListValue.style.width = oListValue.offsetWidth ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'SELECT' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtSelValue').value	= oActiveEl.value ;
+		GetE('txtLines').value		= GetAttribute( oActiveEl, 'size' ) ;
+		GetE('chkMultiple').checked	= oActiveEl.multiple ;
+
+		// Load the actual options
+		for ( var i = 0 ; i < oActiveEl.options.length ; i++ )
+		{
+			var sText	= HTMLDecode( oActiveEl.options[i].innerHTML ) ;
+			var sValue	= oActiveEl.options[i].value ;
+
+			AddComboOption( oListText, sText, sText ) ;
+			AddComboOption( oListValue, sValue, sValue ) ;
+		}
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	var sSize = GetE('txtLines').value ;
+	if ( sSize == null || isNaN( sSize ) || sSize <= 1 )
+		sSize = '' ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'SELECT', {name: GetE('txtName').value} ) ;
+
+	SetAttribute( oActiveEl, 'size'	, sSize ) ;
+	oActiveEl.multiple = ( sSize.length > 0 && GetE('chkMultiple').checked ) ;
+
+	// Remove all options.
+	while ( oActiveEl.options.length > 0 )
+		oActiveEl.remove(0) ;
+
+	// Add all available options.
+	for ( var i = 0 ; i < oListText.options.length ; i++ )
+	{
+		var sText	= oListText.options[i].value ;
+		var sValue	= oListValue.options[i].value ;
+		if ( sValue.length == 0 ) sValue = sText ;
+
+		var oOption = AddComboOption( oActiveEl, sText, sValue, oDOM ) ;
+
+		if ( sValue == GetE('txtSelValue').value )
+		{
+			SetAttribute( oOption, 'selected', 'selected' ) ;
+			oOption.selected = true ;
+		}
+	}
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="overflow: hidden">
+		<table width="100%" height="100%">
+			<tr>
+				<td>
+					<table width="100%">
+						<tr>
+							<td nowrap><span fckLang="DlgSelectName">Name</span>&nbsp;</td>
+							<td width="100%" colSpan="2"><input id="txtName" style="WIDTH: 100%" type="text"></td>
+						</tr>
+						<tr>
+							<td nowrap><span fckLang="DlgSelectValue">Value</span>&nbsp;</td>
+							<td width="100%" colSpan="2"><input id="txtSelValue" style="WIDTH: 100%; BACKGROUND-COLOR: buttonface" type="text" readonly></td>
+						</tr>
+						<tr>
+							<td nowrap><span fckLang="DlgSelectSize">Size</span>&nbsp;</td>
+							<td nowrap><input id="txtLines" type="text" size="2" value="">&nbsp;<span fckLang="DlgSelectLines">lines</span></td>
+							<td nowrap align="right"><input id="chkMultiple" name="chkMultiple" type="checkbox"><label for="chkMultiple" fckLang="DlgSelectChkMulti">Allow
+									multiple selections</label></td>
+						</tr>
+					</table>
+					<br>
+					<hr style="POSITION: absolute">
+					<span style="LEFT: 10px; POSITION: relative; TOP: -7px" class="BackColor">&nbsp;<span fckLang="DlgSelectOpAvail">Available
+							Options</span>&nbsp;</span>
+					<table width="100%">
+						<tr>
+							<td width="50%"><span fckLang="DlgSelectOpText">Text</span><br>
+								<input id="txtText" style="WIDTH: 100%" type="text" name="txtText">
+							</td>
+							<td width="50%"><span fckLang="DlgSelectOpValue">Value</span><br>
+								<input id="txtValue" style="WIDTH: 100%" type="text" name="txtValue">
+							</td>
+							<td vAlign="bottom"><input onclick="Add();" type="button" fckLang="DlgSelectBtnAdd" value="Add"></td>
+							<td vAlign="bottom"><input onclick="Modify();" type="button" fckLang="DlgSelectBtnModify" value="Modify"></td>
+						</tr>
+						<tr>
+							<td rowSpan="2"><select id="cmbText" style="WIDTH: 100%" onchange="GetE('cmbValue').selectedIndex = this.selectedIndex;Select(this);"
+									size="5" name="cmbText"></select>
+							</td>
+							<td rowSpan="2"><select id="cmbValue" style="WIDTH: 100%" onchange="GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);"
+									size="5" name="cmbValue"></select>
+							</td>
+							<td vAlign="top" colSpan="2">
+							</td>
+						</tr>
+						<tr>
+							<td vAlign="bottom" colSpan="2"><input style="WIDTH: 100%" onclick="Move(-1);" type="button" fckLang="DlgSelectBtnUp" value="Up">
+								<br>
+								<input style="WIDTH: 100%" onclick="Move(1);" type="button" fckLang="DlgSelectBtnDown"
+									value="Down">
+							</td>
+						</tr>
+						<TR>
+							<TD vAlign="bottom" colSpan="4"><INPUT onclick="SetSelectedValue();" type="button" fckLang="DlgSelectBtnSetValue" value="Set as selected value">&nbsp;&nbsp;
+								<input onclick="Delete();" type="button" fckLang="DlgSelectBtnDelete" value="Delete"></TD>
+						</TR>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_colorselector.html	(revision 838)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Color Selection dialog window.
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<style TYPE="text/css">
+			#ColorTable		{ cursor: pointer ; cursor: hand ; }
+			#hicolor		{ height: 74px ; width: 74px ; border-width: 1px ; border-style: solid ; }
+			#hicolortext	{ width: 75px ; text-align: right ; margin-bottom: 7px ; }
+			#selhicolor		{ height: 20px ; width: 74px ; border-width: 1px ; border-style: solid ; }
+			#selcolor		{ width: 75px ; height: 20px ; margin-top: 0px ; margin-bottom: 7px ; }
+			#btnClear		{ width: 75px ; height: 22px ; margin-bottom: 6px ; }
+			.ColorCell		{ height: 15px ; width: 15px ; }
+		</style>
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+function OnLoad()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	CreateColorTable() ;
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;
+}
+
+function CreateColorTable()
+{
+	// Get the target table.
+	var oTable = document.getElementById('ColorTable') ;
+
+	// Create the base colors array.
+	var aColors = ['00','33','66','99','cc','ff'] ;
+
+	// This function combines two ranges of three values from the color array into a row.
+	function AppendColorRow( rangeA, rangeB )
+	{
+		for ( var i = rangeA ; i < rangeA + 3 ; i++ )
+		{
+			var oRow = oTable.insertRow(-1) ;
+
+			for ( var j = rangeB ; j < rangeB + 3 ; j++ )
+			{
+				for ( var n = 0 ; n < 6 ; n++ )
+				{
+					AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ;
+				}
+			}
+		}
+	}
+
+	// This function create a single color cell in the color table.
+	function AppendColorCell( targetRow, color )
+	{
+		var oCell = targetRow.insertCell(-1) ;
+		oCell.className = 'ColorCell' ;
+		oCell.bgColor = color ;
+
+		oCell.onmouseover = function()
+		{
+			document.getElementById('hicolor').style.backgroundColor = this.bgColor ;
+			document.getElementById('hicolortext').innerHTML = this.bgColor ;
+		}
+
+		oCell.onclick = function()
+		{
+			document.getElementById('selhicolor').style.backgroundColor = this.bgColor ;
+			document.getElementById('selcolor').value = this.bgColor ;
+		}
+	}
+
+	AppendColorRow( 0, 0 ) ;
+	AppendColorRow( 3, 0 ) ;
+	AppendColorRow( 0, 3 ) ;
+	AppendColorRow( 3, 3 ) ;
+
+	// Create the last row.
+	var oRow = oTable.insertRow(-1) ;
+
+	// Create the gray scale colors cells.
+	for ( var n = 0 ; n < 6 ; n++ )
+	{
+		AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
+	}
+
+	// Fill the row with black cells.
+	for ( var i = 0 ; i < 12 ; i++ )
+	{
+		AppendColorCell( oRow, '#000000' ) ;
+	}
+}
+
+function Clear()
+{
+	document.getElementById('selhicolor').style.backgroundColor = '' ;
+	document.getElementById('selcolor').value = '' ;
+}
+
+function ClearActual()
+{
+	document.getElementById('hicolor').style.backgroundColor = '' ;
+	document.getElementById('hicolortext').innerHTML = '&nbsp;' ;
+}
+
+function UpdateColor()
+{
+	try		  { document.getElementById('selhicolor').style.backgroundColor = document.getElementById('selcolor').value ; }
+	catch (e) { Clear() ; }
+}
+
+function Ok()
+{
+	if ( typeof(window.parent.Args().CustomValue) == 'function' )
+		window.parent.Args().CustomValue( document.getElementById('selcolor').value ) ;
+
+	return true ;
+}
+		</script>
+	</head>
+	<body onload="OnLoad()" scroll="no" style="OVERFLOW: hidden">
+		<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
+			<tr>
+				<td align="center" valign="middle">
+					<table border="0" cellspacing="5" cellpadding="0" width="100%">
+						<tr>
+							<td valign="top" align="center" nowrap width="100%">
+								<table id="ColorTable" border="0" cellspacing="0" cellpadding="0" width="270" onmouseout="ClearActual();">
+								</table>
+							</td>
+							<td valign="top" align="left" nowrap>
+								<span fckLang="DlgColorHighlight">Highlight</span>
+								<div id="hicolor"></div>
+								<div id="hicolortext">&nbsp;</div>
+								<span fckLang="DlgColorSelected">Selected</span>
+								<div id="selhicolor"></div>
+								<input id="selcolor" type="text" maxlength="20" onchange="UpdateColor();">
+								<br>
+								<input id="btnClear" type="button" fckLang="DlgColorBtnClear" value="Clear" onclick="Clear();" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js	(revision 838)
@@ -0,0 +1,504 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Image dialog window (see fck_image.html).
+ */
+
+var dialog		= window.parent ;
+var oEditor		= dialog.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKDebug	= oEditor.FCKDebug ;
+var FCKTools	= oEditor.FCKTools ;
+
+var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+dialog.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;
+
+if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
+	dialog.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;
+
+if ( FCKConfig.ImageUpload )
+	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
+
+if ( !FCKConfig.ImageDlgHideAdvanced )
+	dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divLink'		, ( tabCode == 'Link' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAdvanced'	, ( tabCode == 'Advanced' ) ) ;
+}
+
+// Get the selected image (if available).
+var oImage = dialog.Selection.GetSelectedElement() ;
+
+if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) )
+	oImage = null ;
+
+// Get the active link.
+var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ;
+
+var oImageOriginal ;
+
+function UpdateOriginal( resetSize )
+{
+	if ( !eImgPreview )
+		return ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		oImageOriginal = null ;
+		return ;
+	}
+
+	oImageOriginal = document.createElement( 'IMG' ) ;	// new Image() ;
+
+	if ( resetSize )
+	{
+		oImageOriginal.onload = function()
+		{
+			this.onload = null ;
+			ResetSizes() ;
+		}
+	}
+
+	oImageOriginal.src = eImgPreview.src ;
+}
+
+var bPreviewInitialized ;
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ;
+	GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ;
+
+	// Load the selected element information (if any).
+	LoadSelection() ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display				= FCKConfig.ImageBrowser	? '' : 'none' ;
+	GetE('divLnkBrowseServer').style.display	= FCKConfig.LinkBrowser		? '' : 'none' ;
+
+	UpdateOriginal() ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.ImageUpload )
+		GetE('frmUpload').action = FCKConfig.ImageUploadURL ;
+
+	dialog.SetAutoSize( true ) ;
+
+	// Activate the "OK" button.
+	dialog.SetOkButton( true ) ;
+
+	SelectField( 'txtUrl' ) ;
+}
+
+function LoadSelection()
+{
+	if ( ! oImage ) return ;
+
+	var sUrl = oImage.getAttribute( '_fcksavedurl' ) ;
+	if ( sUrl == null )
+		sUrl = GetAttribute( oImage, 'src', '' ) ;
+
+	GetE('txtUrl').value    = sUrl ;
+	GetE('txtAlt').value    = GetAttribute( oImage, 'alt', '' ) ;
+	GetE('txtVSpace').value	= GetAttribute( oImage, 'vspace', '' ) ;
+	GetE('txtHSpace').value	= GetAttribute( oImage, 'hspace', '' ) ;
+	GetE('txtBorder').value	= GetAttribute( oImage, 'border', '' ) ;
+	GetE('cmbAlign').value	= GetAttribute( oImage, 'align', '' ) ;
+
+	var iWidth, iHeight ;
+
+	var regexSize = /^\s*(\d+)px\s*$/i ;
+
+	if ( oImage.style.width )
+	{
+		var aMatchW  = oImage.style.width.match( regexSize ) ;
+		if ( aMatchW )
+		{
+			iWidth = aMatchW[1] ;
+			oImage.style.width = '' ;
+			SetAttribute( oImage, 'width' , iWidth ) ;
+		}
+	}
+
+	if ( oImage.style.height )
+	{
+		var aMatchH  = oImage.style.height.match( regexSize ) ;
+		if ( aMatchH )
+		{
+			iHeight = aMatchH[1] ;
+			oImage.style.height = '' ;
+			SetAttribute( oImage, 'height', iHeight ) ;
+		}
+	}
+
+	GetE('txtWidth').value	= iWidth ? iWidth : GetAttribute( oImage, "width", '' ) ;
+	GetE('txtHeight').value	= iHeight ? iHeight : GetAttribute( oImage, "height", '' ) ;
+
+	// Get Advances Attributes
+	GetE('txtAttId').value			= oImage.id ;
+	GetE('cmbAttLangDir').value		= oImage.dir ;
+	GetE('txtAttLangCode').value	= oImage.lang ;
+	GetE('txtAttTitle').value		= oImage.title ;
+	GetE('txtLongDesc').value		= oImage.longDesc ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		GetE('txtAttClasses').value = oImage.className || '' ;
+		GetE('txtAttStyle').value = oImage.style.cssText ;
+	}
+	else
+	{
+		GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value = oImage.getAttribute('style',2) ;
+	}
+
+	if ( oLink )
+	{
+		var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ;
+		if ( sLinkUrl == null )
+			sLinkUrl = oLink.getAttribute('href',2) ;
+
+		GetE('txtLnkUrl').value		= sLinkUrl ;
+		GetE('cmbLnkTarget').value	= oLink.target ;
+	}
+
+	UpdatePreview() ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		dialog.SetSelectedTab( 'Info' ) ;
+		GetE('txtUrl').focus() ;
+
+		alert( FCKLang.DlgImgAlertUrl ) ;
+
+		return false ;
+	}
+
+	var bHasImage = ( oImage != null ) ;
+
+	if ( bHasImage && bImageButton && oImage.tagName == 'IMG' )
+	{
+		if ( confirm( 'Do you want to transform the selected image on a image button?' ) )
+			oImage = null ;
+	}
+	else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' )
+	{
+		if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
+			oImage = null ;
+	}
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+	if ( !bHasImage )
+	{
+		if ( bImageButton )
+		{
+			oImage = FCK.EditorDocument.createElement( 'input' ) ;
+			oImage.type = 'image' ;
+			oImage = FCK.InsertElement( oImage ) ;
+		}
+		else
+			oImage = FCK.InsertElement( 'img' ) ;
+	}
+
+	UpdateImage( oImage ) ;
+
+	var sLnkUrl = GetE('txtLnkUrl').value.Trim() ;
+
+	if ( sLnkUrl.length == 0 )
+	{
+		if ( oLink )
+			FCK.ExecuteNamedCommand( 'Unlink' ) ;
+	}
+	else
+	{
+		if ( oLink )	// Modifying an existent link.
+			oLink.href = sLnkUrl ;
+		else			// Creating a new link.
+		{
+			if ( !bHasImage )
+				oEditor.FCKSelection.SelectNode( oImage ) ;
+
+			oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ;
+
+			if ( !bHasImage )
+			{
+				oEditor.FCKSelection.SelectNode( oLink ) ;
+				oEditor.FCKSelection.Collapse( false ) ;
+			}
+		}
+
+		SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ;
+		SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;
+	}
+
+	return true ;
+}
+
+function UpdateImage( e, skipId )
+{
+	e.src = GetE('txtUrl').value ;
+	SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ;
+	SetAttribute( e, "alt"   , GetE('txtAlt').value ) ;
+	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
+	SetAttribute( e, "height", GetE('txtHeight').value ) ;
+	SetAttribute( e, "vspace", GetE('txtVSpace').value ) ;
+	SetAttribute( e, "hspace", GetE('txtHSpace').value ) ;
+	SetAttribute( e, "border", GetE('txtBorder').value ) ;
+	SetAttribute( e, "align" , GetE('cmbAlign').value ) ;
+
+	// Advances Attributes
+
+	if ( ! skipId )
+		SetAttribute( e, 'id', GetE('txtAttId').value ) ;
+
+	SetAttribute( e, 'dir'		, GetE('cmbAttLangDir').value ) ;
+	SetAttribute( e, 'lang'		, GetE('txtAttLangCode').value ) ;
+	SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ;
+	SetAttribute( e, 'longDesc'	, GetE('txtLongDesc').value ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		e.className = GetE('txtAttClasses').value ;
+		e.style.cssText = GetE('txtAttStyle').value ;
+	}
+	else
+	{
+		SetAttribute( e, 'class'	, GetE('txtAttClasses').value ) ;
+		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+	}
+}
+
+var eImgPreview ;
+var eImgPreviewLink ;
+
+function SetPreviewElements( imageElement, linkElement )
+{
+	eImgPreview = imageElement ;
+	eImgPreviewLink = linkElement ;
+
+	UpdatePreview() ;
+	UpdateOriginal() ;
+
+	bPreviewInitialized = true ;
+}
+
+function UpdatePreview()
+{
+	if ( !eImgPreview || !eImgPreviewLink )
+		return ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+		eImgPreviewLink.style.display = 'none' ;
+	else
+	{
+		UpdateImage( eImgPreview, true ) ;
+
+		if ( GetE('txtLnkUrl').value.Trim().length > 0 )
+			eImgPreviewLink.href = 'javascript:void(null);' ;
+		else
+			SetAttribute( eImgPreviewLink, 'href', '' ) ;
+
+		eImgPreviewLink.style.display = '' ;
+	}
+}
+
+var bLockRatio = true ;
+
+function SwitchLock( lockButton )
+{
+	bLockRatio = !bLockRatio ;
+	lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ;
+	lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ;
+
+	if ( bLockRatio )
+	{
+		if ( GetE('txtWidth').value.length > 0 )
+			OnSizeChanged( 'Width', GetE('txtWidth').value ) ;
+		else
+			OnSizeChanged( 'Height', GetE('txtHeight').value ) ;
+	}
+}
+
+// Fired when the width or height input texts change
+function OnSizeChanged( dimension, value )
+{
+	// Verifies if the aspect ration has to be maintained
+	if ( oImageOriginal && bLockRatio )
+	{
+		var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ;
+
+		if ( value.length == 0 || isNaN( value ) )
+		{
+			e.value = '' ;
+			return ;
+		}
+
+		if ( dimension == 'Width' )
+			value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value  / oImageOriginal.width ) ) ;
+		else
+			value = value == 0 ? 0 : Math.round( oImageOriginal.width  * ( value / oImageOriginal.height ) ) ;
+
+		if ( !isNaN( value ) )
+			e.value = value ;
+	}
+
+	UpdatePreview() ;
+}
+
+// Fired when the Reset Size button is clicked
+function ResetSizes()
+{
+	if ( ! oImageOriginal ) return ;
+	if ( oEditor.FCKBrowserInfo.IsGecko && !oImageOriginal.complete )
+	{
+		setTimeout( ResetSizes, 50 ) ;
+		return ;
+	}
+
+	GetE('txtWidth').value  = oImageOriginal.width ;
+	GetE('txtHeight').value = oImageOriginal.height ;
+
+	UpdatePreview() ;
+}
+
+function BrowseServer()
+{
+	OpenServerBrowser(
+		'Image',
+		FCKConfig.ImageBrowserURL,
+		FCKConfig.ImageBrowserWindowWidth,
+		FCKConfig.ImageBrowserWindowHeight ) ;
+}
+
+function LnkBrowseServer()
+{
+	OpenServerBrowser(
+		'Link',
+		FCKConfig.LinkBrowserURL,
+		FCKConfig.LinkBrowserWindowWidth,
+		FCKConfig.LinkBrowserWindowHeight ) ;
+}
+
+function OpenServerBrowser( type, url, width, height )
+{
+	sActualBrowser = type ;
+	OpenFileBrowser( url, width, height ) ;
+}
+
+var sActualBrowser ;
+
+function SetUrl( url, width, height, alt )
+{
+	if ( sActualBrowser == 'Link' )
+	{
+		GetE('txtLnkUrl').value = url ;
+		UpdatePreview() ;
+	}
+	else
+	{
+		GetE('txtUrl').value = url ;
+		GetE('txtWidth').value = width ? width : '' ;
+		GetE('txtHeight').value = height ? height : '' ;
+
+		if ( alt )
+			GetE('txtAlt').value = alt;
+
+		UpdatePreview() ;
+		UpdateOriginal( true ) ;
+	}
+
+	dialog.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		case 500 :
+			alert( 'The connector is disabled' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	sActualBrowser = '' ;
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+
+	if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+
+	return true ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(revision 838)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview page for the Image dialog window.
+ *
+ * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="../common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var FCKTools	= window.parent.FCKTools ;
+var FCKConfig	= window.parent.FCKConfig ;
+
+// Sets the Skin CSS
+document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss( '../' ) ) ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElements(
+		document.getElementById( 'imgPreview' ),
+		document.getElementById( 'lnkPreview' ) ) ;
+}
+
+	</script>
+</head>
+<body style="color: #000000; background-color: #ffffff">
+	<div>
+		<a id="lnkPreview" onclick="return false;" style="cursor: default">
+			<img id="imgPreview" onload="window.parent.UpdateOriginal();"
+				style="display: none" alt="" /></a>Lorem ipsum dolor sit amet, consectetuer adipiscing
+		elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus
+		a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis,
+		nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed
+		velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper
+		nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices
+		a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus
+		faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget
+		tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit,
+		tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis
+		id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus,
+		eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur
+		ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.
+	</div>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_image.html	(revision 838)
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Image Properties dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Image Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script src="fck_image/fck_image.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss() ) ) ;
+
+		</script>
+</head>
+<body scroll="no" style="overflow: hidden">
+	<div id="divInfo">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%" height="100%">
+			<tr>
+				<td>
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<span fcklang="DlgImgURL">URL</span>
+							</td>
+							<td id="tdBrowse" style="display: none" nowrap="nowrap" rowspan="2">
+								&nbsp;
+								<input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server"
+									fcklang="DlgBtnBrowseServer" />
+							</td>
+						</tr>
+						<tr>
+							<td valign="top">
+								<input id="txtUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<span fcklang="DlgImgAlt">Short Description</span><br />
+					<input id="txtAlt" style="width: 100%" type="text" /><br />
+				</td>
+			</tr>
+			<tr height="100%">
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+						<tr>
+							<td valign="top">
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgWidth">Width</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtWidth" onkeyup="OnSizeChanged('Width',this.value);" /></td>
+										<td rowspan="2">
+											<div id="btnLockSizes" class="BtnLocked" onmouseover="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';"
+												onmouseout="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );" title="Lock Sizes"
+												onclick="SwitchLock(this);">
+											</div>
+										</td>
+										<td rowspan="2">
+											<div id="btnResetSize" class="BtnReset" onmouseover="this.className='BtnReset BtnOver';"
+												onmouseout="this.className='BtnReset';" title="Reset Size" onclick="ResetSizes();">
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHeight">Height</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtHeight" onkeyup="OnSizeChanged('Height',this.value);" /></td>
+									</tr>
+								</table>
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgBorder">Border</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" value="" id="txtBorder" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHSpace">HSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtHSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgVSpace">VSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtVSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgAlign">Align</span>&nbsp;</td>
+										<td>
+											<select id="cmbAlign" onchange="UpdatePreview();">
+												<option value="" selected="selected"></option>
+												<option fcklang="DlgImgAlignLeft" value="left">Left</option>
+												<option fcklang="DlgImgAlignAbsBottom" value="absBottom">Abs Bottom</option>
+												<option fcklang="DlgImgAlignAbsMiddle" value="absMiddle">Abs Middle</option>
+												<option fcklang="DlgImgAlignBaseline" value="baseline">Baseline</option>
+												<option fcklang="DlgImgAlignBottom" value="bottom">Bottom</option>
+												<option fcklang="DlgImgAlignMiddle" value="middle">Middle</option>
+												<option fcklang="DlgImgAlignRight" value="right">Right</option>
+												<option fcklang="DlgImgAlignTextTop" value="textTop">Text Top</option>
+												<option fcklang="DlgImgAlignTop" value="top">Top</option>
+											</select>
+										</td>
+									</tr>
+								</table>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%" valign="top">
+								<table cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed">
+									<tr>
+										<td>
+											<span fcklang="DlgImgPreview">Preview</span></td>
+									</tr>
+									<tr>
+										<td valign="top">
+											<iframe class="ImagePreviewArea" src="fck_image/fck_image_preview.html" frameborder="0"
+												marginheight="0" marginwidth="0"></iframe>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divUpload" style="display: none">
+		<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data"
+			action="" onsubmit="return CheckUpload();">
+			<span fcklang="DlgLnkUpload">Upload</span><br />
+			<input id="txtUploadFile" style="width: 100%" type="file" size="40" name="NewFile" /><br />
+			<br />
+			<input id="btnUpload" type="submit" value="Send it to the Server" fcklang="DlgLnkBtnUpload" />
+			<script type="text/javascript">
+				document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"></iframe>' ) ;
+			</script>
+		</form>
+	</div>
+	<div id="divLink" style="display: none">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%">
+			<tr>
+				<td>
+					<div>
+						<span fcklang="DlgLnkURL">URL</span><br />
+						<input id="txtLnkUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+					</div>
+					<div id="divLnkBrowseServer" align="right">
+						<input type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" onclick="LnkBrowseServer();" />
+					</div>
+					<div>
+						<span fcklang="DlgLnkTarget">Target</span><br />
+						<select id="cmbLnkTarget">
+							<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+							<option value="_blank" fcklang="DlgLnkTargetBlank">New Window (_blank)</option>
+							<option value="_top" fcklang="DlgLnkTargetTop">Topmost Window (_top)</option>
+							<option value="_self" fcklang="DlgLnkTargetSelf">Same Window (_self)</option>
+							<option value="_parent" fcklang="DlgLnkTargetParent">Parent Window (_parent)</option>
+						</select>
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divAdvanced" style="display: none">
+		<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+			<tr>
+				<td valign="top" width="50%">
+					<span fcklang="DlgGenId">Id</span><br />
+					<input id="txtAttId" style="width: 100%" type="text" />
+				</td>
+				<td width="1">
+					&nbsp;&nbsp;</td>
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+						<tr>
+							<td width="60%">
+								<span fcklang="DlgGenLangDir">Language Direction</span><br />
+								<select id="cmbAttLangDir" style="width: 100%">
+									<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+									<option value="ltr" fcklang="DlgGenLangDirLtr">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgGenLangDirRtl">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td width="1%">
+								&nbsp;&nbsp;</td>
+							<td nowrap="nowrap">
+								<span fcklang="DlgGenLangCode">Language Code</span><br />
+								<input id="txtAttLangCode" style="width: 100%" type="text" />&nbsp;
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					<span fcklang="DlgGenLongDescr">Long Description URL</span><br />
+					<input id="txtLongDesc" style="width: 100%" type="text" />
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td valign="top">
+					<span fcklang="DlgGenClass">Stylesheet Classes</span><br />
+					<input id="txtAttClasses" style="width: 100%" type="text" />
+				</td>
+				<td>
+				</td>
+				<td valign="top">
+					&nbsp;<span fcklang="DlgGenTitle">Advisory Title</span><br />
+					<input id="txtAttTitle" style="width: 100%" type="text" />
+				</td>
+			</tr>
+		</table>
+		<span fcklang="DlgGenStyle">Style</span><br />
+		<input id="txtAttStyle" style="width: 100%" type="text" />
+	</div>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_table.html	(revision 838)
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Table dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+var dialogArguments = dialog.Args() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+// Gets the table if there is one selected.
+var table ;
+var e = dialog.Selection.GetSelectedElement() ;
+
+if ( ( !e && document.location.search.substr(1) == 'Parent' ) || ( e && e.tagName != 'TABLE' ) )
+	e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
+
+if ( e && e.tagName == "TABLE" )
+	table = e ;
+
+// Fired when the window loading process is finished. It sets the fields with the
+// actual values if a table is selected in the editor.
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if (table)
+	{
+		document.getElementById('txtRows').value    = table.rows.length ;
+		document.getElementById('txtColumns').value = table.rows[0].cells.length ;
+
+		// Gets the value from the Width or the Style attribute
+		var iWidth  = (table.style.width  ? table.style.width  : table.width ) ;
+		var iHeight = (table.style.height ? table.style.height : table.height ) ;
+
+		if (iWidth.indexOf('%') >= 0)			// Percentual = %
+		{
+			iWidth = parseInt( iWidth.substr(0,iWidth.length - 1), 10 ) ;
+			document.getElementById('selWidthType').value = "percent" ;
+		}
+		else if (iWidth.indexOf('px') >= 0)		// Style Pixel = px
+		{																										  //
+			iWidth = iWidth.substr(0,iWidth.length - 2);
+			document.getElementById('selWidthType').value = "pixels" ;
+		}
+
+		if (iHeight && iHeight.indexOf('px') >= 0)		// Style Pixel = px
+			iHeight = iHeight.substr(0,iHeight.length - 2);
+
+		document.getElementById('txtWidth').value		= iWidth || '' ;
+		document.getElementById('txtHeight').value		= iHeight || '' ;
+		document.getElementById('txtBorder').value		= GetAttribute( table, 'border', '' ) ;
+		document.getElementById('selAlignment').value	= GetAttribute( table, 'align', '' ) ;
+		document.getElementById('txtCellPadding').value	= GetAttribute( table, 'cellPadding', '' ) ;
+		document.getElementById('txtCellSpacing').value	= GetAttribute( table, 'cellSpacing', '' ) ;
+		document.getElementById('txtSummary').value     = GetAttribute( table, 'summary', '' ) ;
+//		document.getElementById('cmbFontStyle').value	= table.className ;
+
+		var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
+		if ( eCaption ) document.getElementById('txtCaption').value = eCaption.innerHTML ;
+
+		document.getElementById('txtRows').disabled    = true ;
+		document.getElementById('txtColumns').disabled = true ;
+		SelectField( 'txtWidth' ) ;
+	}
+	else
+		SelectField( 'txtRows' ) ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+}
+
+// Fired when the user press the OK button
+function Ok()
+{
+	var bExists = ( table != null ) ;
+
+	if ( ! bExists )
+		table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;
+
+	// Removes the Width and Height styles
+	if ( bExists && table.style.width )		table.style.width = null ; //.removeAttribute("width") ;
+	if ( bExists && table.style.height )	table.style.height = null ; //.removeAttribute("height") ;
+
+	var sWidth = GetE('txtWidth').value ;
+	if ( sWidth.length > 0 && GetE('selWidthType').value == 'percent' )
+		sWidth += '%' ;
+
+	SetAttribute( table, 'width'		, sWidth ) ;
+	SetAttribute( table, 'height'		, GetE('txtHeight').value ) ;
+	SetAttribute( table, 'border'		, GetE('txtBorder').value ) ;
+	SetAttribute( table, 'align'		, GetE('selAlignment').value ) ;
+	SetAttribute( table, 'cellPadding'	, GetE('txtCellPadding').value ) ;
+	SetAttribute( table, 'cellSpacing'	, GetE('txtCellSpacing').value ) ;
+	SetAttribute( table, 'summary'		, GetE('txtSummary').value ) ;
+
+	var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
+
+	if ( document.getElementById('txtCaption').value != '')
+	{
+		if ( !eCaption )
+		{
+			eCaption = oEditor.FCK.EditorDocument.createElement( 'CAPTION' ) ;
+			table.insertBefore( eCaption, table.firstChild ) ;
+		}
+
+		eCaption.innerHTML = document.getElementById('txtCaption').value ;
+	}
+	else if ( bExists && eCaption )
+	{
+		// TODO: It causes an IE internal error if using removeChild or
+		// table.deleteCaption() (see #505).
+		if ( oEditor.FCKBrowserInfo.IsIE )
+			eCaption.innerHTML = '' ;
+		else
+			eCaption.parentNode.removeChild( eCaption ) ;
+	}
+
+	if (! bExists)
+	{
+		var iRows = document.getElementById('txtRows').value ;
+		var iCols = document.getElementById('txtColumns').value ;
+
+		for ( var r = 0 ; r < iRows ; r++ )
+		{
+			var oRow = table.insertRow(-1) ;
+			for ( var c = 0 ; c < iCols ; c++ )
+			{
+				var oCell = oRow.insertCell(-1) ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oEditor.FCKTools.AppendBogusBr( oCell ) ;
+			}
+		}
+
+		oEditor.FCKUndo.SaveUndoStep() ;
+
+		oEditor.FCK.InsertElement( table ) ;
+	}
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table id="otable" cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableRows">Rows</span>:</td>
+									<td>
+										&nbsp;<input id="txtRows" type="text" maxlength="3" size="2" value="3" name="txtRows"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableColumns">Columns</span>:</td>
+									<td>
+										&nbsp;<input id="txtColumns" type="text" maxlength="2" size="2" value="2" name="txtColumns"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableBorder">Border size</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorder" type="text" maxlength="2" size="2" value="1" name="txtBorder"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableAlign">Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selAlignment" name="selAlignment">
+											<option fcklang="DlgTableAlignNotSet" value="" selected="selected">&lt;Not set&gt;</option>
+											<option fcklang="DlgTableAlignLeft" value="left">Left</option>
+											<option fcklang="DlgTableAlignCenter" value="center">Center</option>
+											<option fcklang="DlgTableAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right" valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input id="txtWidth" type="text" maxlength="4" size="3" value="200" name="txtWidth"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<select id="selWidthType" name="selWidthType">
+											<option fcklang="DlgTableWidthPx" value="pixels" selected="selected">pixels</option>
+											<option fcklang="DlgTableWidthPc" value="percent">percent</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<span fcklang="DlgTableWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellSpace">Cell spacing</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1" name="txtCellSpacing"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellPad">Cell padding</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellPadding" type="text" maxlength="2" size="2" value="1" name="txtCellPadding"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableCaption">Caption</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtCaption" type="text" style="width: 100%" /></td>
+					</tr>
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableSummary">Summary</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtSummary" type="text" style="width: 100%" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_tablecell.html	(revision 838)
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Cell properties dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Cell Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+// Array of selected Cells
+var aCells = oEditor.FCKTableHandler.GetSelectedCells() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	SetStartupValue() ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtWidth' ) ;
+}
+
+function SetStartupValue()
+{
+	if ( aCells.length > 0 )
+	{
+		var oCell = aCells[0] ;
+		var iWidth = GetAttribute( oCell, 'width' ) ;
+
+		if ( iWidth.indexOf && iWidth.indexOf( '%' ) >= 0 )
+		{
+			iWidth = iWidth.substr( 0, iWidth.length - 1 ) ;
+			GetE('selWidthType').value = 'percent' ;
+		}
+
+		if ( oCell.attributes['noWrap'] != null && oCell.attributes['noWrap'].specified )
+			GetE('selWordWrap').value = !oCell.noWrap ;
+
+		GetE('txtWidth').value			= iWidth ;
+		GetE('txtHeight').value			= GetAttribute( oCell, 'height' ) ;
+		GetE('selHAlign').value			= GetAttribute( oCell, 'align' ) ;
+		GetE('selVAlign').value			= GetAttribute( oCell, 'vAlign' ) ;
+		GetE('txtRowSpan').value		= GetAttribute( oCell, 'rowSpan' ) ;
+		GetE('txtCollSpan').value		= GetAttribute( oCell, 'colSpan' ) ;
+		GetE('txtBackColor').value		= GetAttribute( oCell, 'bgColor' ) ;
+		GetE('txtBorderColor').value	= GetAttribute( oCell, 'borderColor' ) ;
+//		GetE('cmbFontStyle').value		= oCell.className ;
+	}
+}
+
+// Fired when the user press the OK button
+function Ok()
+{
+	for( i = 0 ; i < aCells.length ; i++ )
+	{
+		if ( GetE('txtWidth').value.length > 0 )
+			aCells[i].width	= GetE('txtWidth').value + ( GetE('selWidthType').value == 'percent' ? '%' : '') ;
+		else
+			aCells[i].removeAttribute( 'width', 0 ) ;
+
+		if ( GetE('selWordWrap').value == 'false' )
+			SetAttribute( aCells[i], 'noWrap', 'nowrap' ) ;
+		else
+			aCells[i].removeAttribute( 'noWrap' ) ;
+
+		SetAttribute( aCells[i], 'height'		, GetE('txtHeight').value ) ;
+		SetAttribute( aCells[i], 'align'		, GetE('selHAlign').value ) ;
+		SetAttribute( aCells[i], 'vAlign'		, GetE('selVAlign').value ) ;
+		SetAttribute( aCells[i], 'rowSpan'		, GetE('txtRowSpan').value ) ;
+		SetAttribute( aCells[i], 'colSpan'		, GetE('txtCollSpan').value ) ;
+		SetAttribute( aCells[i], 'bgColor'		, GetE('txtBackColor').value ) ;
+		SetAttribute( aCells[i], 'borderColor'	, GetE('txtBorderColor').value ) ;
+//		SetAttribute( aCells[i], 'className'	, GetE('cmbFontStyle').value ) ;
+	}
+
+	return true ;
+}
+
+function SelectBackColor( color )
+{
+	if ( color && color.length > 0 )
+		GetE('txtBackColor').value = color ;
+}
+
+function SelectBorderColor( color )
+{
+	if ( color && color.length > 0 )
+		GetE('txtBorderColor').value = color ;
+}
+
+function SelectColor( wich )
+{
+	oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', oEditor.FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, wich == 'Back' ? SelectBackColor : SelectBorderColor, window ) ;
+}
+
+	</script>
+</head>
+<body scroll="no" style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td>
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input onkeypress="return IsDigit(event);" id="txtWidth" type="text" maxlength="4"
+											size="3" name="txtWidth" />&nbsp;<select id="selWidthType" name="selWidthType">
+												<option fcklang="DlgCellWidthPx" value="pixels" selected="selected">pixels</option>
+												<option fcklang="DlgCellWidthPc" value="percent">percent</option>
+											</select></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" />&nbsp;<span
+											fcklang="DlgCellWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWordWrap">Word Wrap</span>:</td>
+									<td>
+										&nbsp;<select id="selWordWrap" name="selAlignment">
+											<option fcklang="DlgCellWordWrapYes" value="true" selected="selected">Yes</option>
+											<option fcklang="DlgCellWordWrapNo" value="false">No</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHorAlign">Horizontal Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selHAlign" name="selAlignment">
+											<option fcklang="DlgCellHorAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellHorAlignLeft" value="left">Left</option>
+											<option fcklang="DlgCellHorAlignCenter" value="center">Center</option>
+											<option fcklang="DlgCellHorAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellVerAlign">Vertical Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selVAlign" name="selAlignment">
+											<option fcklang="DlgCellVerAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellVerAlignTop" value="top">Top</option>
+											<option fcklang="DlgCellVerAlignMiddle" value="middle">Middle</option>
+											<option fcklang="DlgCellVerAlignBottom" value="bottom">Bottom</option>
+											<option fcklang="DlgCellVerAlignBaseline" value="baseline">Baseline</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellRowSpan">Rows Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtRowSpan" type="text" maxlength="3" size="2"
+											name="txtRows"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellCollSpan">Columns Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtCollSpan" type="text" maxlength="2"
+											size="2" name="txtColumns"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBackColor">Background Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBorderColor">Border Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorderColor" type="text" size="8" name="txtCellPadding" /></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )" /></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textfield.html	(revision 838)
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Text field dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && ( oActiveEl.type == 'text' || oActiveEl.type == 'password' ) )
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtValue').value	= oActiveEl.value ;
+		GetE('txtSize').value	= GetAttribute( oActiveEl, 'size' ) ;
+		GetE('txtMax').value	= GetAttribute( oActiveEl, 'maxLength' ) ;
+		GetE('txtType').value	= oActiveEl.type ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	if ( isNaN( GetE('txtMax').value ) || GetE('txtMax').value < 0 )
+	{
+		alert( "Maximum characters must be a positive number." ) ;
+		GetE('txtMax').focus() ;
+		return false ;
+	}
+	else if( isNaN( GetE('txtSize').value ) || GetE('txtSize').value < 0 )
+	{
+		alert( "Width must be a positive number." ) ;
+		GetE('txtSize').focus() ;
+		return false ;
+	}
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'INPUT', {name: GetE('txtName').value, type: GetE('txtType').value } ) ;
+
+	SetAttribute( oActiveEl, 'value'	, GetE('txtValue').value ) ;
+	SetAttribute( oActiveEl, 'size'		, GetE('txtSize').value ) ;
+	SetAttribute( oActiveEl, 'maxlength', GetE('txtMax').value ) ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgTextName">Name</span><br />
+							<input id="txtName" type="text" size="20" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextValue">Value</span><br />
+							<input id="txtValue" type="text" size="25" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextCharWidth">Character Width</span><br />
+							<input id="txtSize" type="text" size="5" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextMaxChars">Maximum Characters</span><br />
+							<input id="txtMax" type="text" size="5" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextType">Type</span><br />
+							<select id="txtType">
+								<option value="text" selected="selected" fcklang="DlgTextTypeText">Text</option>
+								<option value="password" fcklang="DlgTextTypePass">Password</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;</td>
+						<td>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops.html	(revision 838)
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Link dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'General'		, FCKLang.DlgDocGeneralTab ) ;
+window.parent.AddTab( 'Background'	, FCKLang.DlgDocBackTab ) ;
+window.parent.AddTab( 'Colors'		, FCKLang.DlgDocColorsTab ) ;
+window.parent.AddTab( 'Meta'		, FCKLang.DlgDocMetaTab ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE( 'divGeneral'		, ( tabCode == 'General' ) ) ;
+	ShowE( 'divBackground'	, ( tabCode == 'Background' ) ) ;
+	ShowE( 'divColors'		, ( tabCode == 'Colors' ) ) ;
+	ShowE( 'divMeta'		, ( tabCode == 'Meta' ) ) ;
+
+	ShowE( 'ePreview'		, ( tabCode == 'Background' || tabCode == 'Colors' ) ) ;
+}
+
+//#### Get Base elements from the document: BEGIN
+
+// The HTML element of the document.
+var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;
+
+// The HEAD element of the document.
+var oHead = oHTML.getElementsByTagName('head')[0] ;
+
+var oBody = FCK.EditorDocument.body ;
+
+// This object contains all META tags defined in the document.
+var oMetaTags = new Object() ;
+
+// Get all META tags defined in the document.
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('meta') ) ;
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('fck:meta') ) ;
+
+function AppendMetaCollection( targetObject, metaCollection )
+{
+	// Loop throw all METAs and put it in the HashTable.
+	for ( var i = 0 ; i < metaCollection.length ; i++ )
+	{
+		// Try to get the "name" attribute.
+		var sName = GetAttribute( metaCollection[i], 'name', GetAttribute( metaCollection[i], '___fcktoreplace:name', '' ) ) ;
+
+		// If no "name", try with the "http-equiv" attribute.
+		if ( sName.length == 0 )
+		{
+			if ( oEditor.FCKBrowserInfo.IsIE )
+			{
+				// Get the http-equiv value from the outerHTML.
+				var oHttpEquivMatch = metaCollection[i].outerHTML.match( oEditor.FCKRegexLib.MetaHttpEquiv ) ;
+				if ( oHttpEquivMatch )
+					sName = oHttpEquivMatch[1] ;
+			}
+			else
+				sName = GetAttribute( metaCollection[i], 'http-equiv', '' ) ;
+		}
+
+		if ( sName.length > 0 )
+			targetObject[ sName.toLowerCase() ] = metaCollection[i] ;
+	}
+}
+
+//#### END
+
+// Set a META tag in the document.
+function SetMetadata( name, content, isHttp )
+{
+	if ( content.length == 0 )
+	{
+		RemoveMetadata( name ) ;
+		return ;
+	}
+
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( !oMeta )
+	{
+		oMeta = oHead.appendChild( FCK.EditorDocument.createElement('META') ) ;
+
+		if ( isHttp )
+			SetAttribute( oMeta, 'http-equiv', name ) ;
+		else
+		{
+			// On IE, it is not possible to set the "name" attribute of the META tag.
+			// So a temporary attribute is used and it is replaced when getting the
+			// editor's HTML/XHTML value. This is sad, I know :(
+			if ( oEditor.FCKBrowserInfo.IsIE )
+				SetAttribute( oMeta, '___fcktoreplace:name', name ) ;
+			else
+				SetAttribute( oMeta, 'name', name ) ;
+		}
+
+		oMetaTags[ name.toLowerCase() ] = oMeta ;
+	}
+
+	SetAttribute( oMeta, 'content', content ) ;
+//	oMeta.content = content ;
+}
+
+function RemoveMetadata( name )
+{
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( oMeta && oMeta != null )
+	{
+		oMeta.parentNode.removeChild( oMeta ) ;
+		oMetaTags[ name.toLowerCase() ] = null ;
+	}
+}
+
+function GetMetadata( name )
+{
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( oMeta && oMeta != null )
+		return oMeta.getAttribute( 'content', 2 ) ;
+	else
+		return '' ;
+}
+
+window.onload = function ()
+{
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display = oEditor.FCKConfig.ImageBrowser ? "" : "none";
+
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	FillFields() ;
+
+	UpdatePreview() ;
+
+	// Show the "Ok" button.
+	window.parent.SetOkButton( true ) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+function FillFields()
+{
+	// ### General Info
+	GetE('txtPageTitle').value = FCK.EditorDocument.title ;
+
+	GetE('selDirection').value	= GetAttribute( oHTML, 'dir', '' ) ;
+	GetE('txtLang').value		= GetAttribute( oHTML, 'xml:lang', GetAttribute( oHTML, 'lang', '' ) ) ;	// "xml:lang" takes precedence to "lang".
+
+	// Character Set Encoding.
+//	if ( oEditor.FCKBrowserInfo.IsIE )
+//		var sCharSet = FCK.EditorDocument.charset ;
+//	else
+		var sCharSet = GetMetadata( 'Content-Type' ) ;
+
+	if ( sCharSet != null && sCharSet.length > 0 )
+	{
+//		if ( !oEditor.FCKBrowserInfo.IsIE )
+			sCharSet = sCharSet.match( /[^=]*$/ ) ;
+
+		GetE('selCharSet').value = sCharSet ;
+
+		if ( GetE('selCharSet').selectedIndex == -1 )
+		{
+			GetE('selCharSet').value = '...' ;
+			GetE('txtCustomCharSet').value = sCharSet ;
+
+			CheckOther( GetE('selCharSet'), 'txtCustomCharSet' ) ;
+		}
+	}
+
+	// Document Type.
+	if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
+	{
+		GetE('selDocType').value = FCK.DocTypeDeclaration ;
+
+		if ( GetE('selDocType').selectedIndex == -1 )
+		{
+			GetE('selDocType').value = '...' ;
+			GetE('txtDocType').value = FCK.DocTypeDeclaration ;
+
+			CheckOther( GetE('selDocType'), 'txtDocType' ) ;
+		}
+	}
+
+	// Document Type.
+	GetE('chkIncXHTMLDecl').checked = ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 ) ;
+
+	// ### Background
+	GetE('txtBackColor').value = GetAttribute( oBody, 'bgColor'		, '' ) ;
+	GetE('txtBackImage').value = GetAttribute( oBody, 'background'	, '' ) ;
+	GetE('chkBackNoScroll').checked = ( GetAttribute( oBody, 'bgProperties', '' ).toLowerCase() == 'fixed' ) ;
+
+	// ### Colors
+	GetE('txtColorText').value		= GetAttribute( oBody, 'text'	, '' ) ;
+	GetE('txtColorLink').value		= GetAttribute( oBody, 'link'	, '' ) ;
+	GetE('txtColorVisited').value	= GetAttribute( oBody, 'vLink'	, '' ) ;
+	GetE('txtColorActive').value	= GetAttribute( oBody, 'aLink'	, '' ) ;
+
+	// ### Margins
+	GetE('txtMarginTop').value		= GetAttribute( oBody, 'topMargin'		, '' ) ;
+	GetE('txtMarginLeft').value		= GetAttribute( oBody, 'leftMargin'		, '' ) ;
+	GetE('txtMarginRight').value	= GetAttribute( oBody, 'rightMargin'	, '' ) ;
+	GetE('txtMarginBottom').value	= GetAttribute( oBody, 'bottomMargin'	, '' ) ;
+
+	// ### Meta Data
+	GetE('txtMetaKeywords').value		= GetMetadata( 'keywords' ) ;
+	GetE('txtMetaDescription').value	= GetMetadata( 'description' ) ;
+	GetE('txtMetaAuthor').value			= GetMetadata( 'author' ) ;
+	GetE('txtMetaCopyright').value		= GetMetadata( 'copyright' ) ;
+}
+
+// Called when the "Ok" button is clicked.
+function Ok()
+{
+	// ### General Info
+	FCK.EditorDocument.title = GetE('txtPageTitle').value ;
+
+	var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;
+
+	SetAttribute( oHTML, 'dir'		, GetE('selDirection').value ) ;
+	SetAttribute( oHTML, 'lang'		, GetE('txtLang').value ) ;
+	SetAttribute( oHTML, 'xml:lang'	, GetE('txtLang').value ) ;
+
+	// Character Set Enconding.
+	var sCharSet = GetE('selCharSet').value ;
+	if ( sCharSet == '...' )
+		sCharSet = GetE('txtCustomCharSet').value ;
+
+	if ( sCharSet.length > 0 )
+			sCharSet = 'text/html; charset=' + sCharSet ;
+
+//	if ( oEditor.FCKBrowserInfo.IsIE )
+//		FCK.EditorDocument.charset = sCharSet ;
+//	else
+		SetMetadata( 'Content-Type', sCharSet, true ) ;
+
+	// Document Type
+	var sDocType = GetE('selDocType').value ;
+	if ( sDocType == '...' )
+		sDocType = GetE('txtDocType').value ;
+
+	FCK.DocTypeDeclaration = sDocType ;
+
+	// XHTML Declarations.
+	if ( GetE('chkIncXHTMLDecl').checked )
+	{
+		if ( sCharSet.length == 0 )
+			sCharSet = 'utf-8' ;
+
+		FCK.XmlDeclaration = '<' + '?xml version="1.0" encoding="' + sCharSet + '"?>' ;
+
+		SetAttribute( oHTML, 'xmlns', 'http://www.w3.org/1999/xhtml' ) ;
+	}
+	else
+	{
+		FCK.XmlDeclaration = null ;
+		oHTML.removeAttribute( 'xmlns', 0 ) ;
+	}
+
+	// ### Background
+	SetAttribute( oBody, 'bgcolor'		, GetE('txtBackColor').value ) ;
+	SetAttribute( oBody, 'background'	, GetE('txtBackImage').value ) ;
+	SetAttribute( oBody, 'bgproperties'	, GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;
+
+	// ### Colors
+	SetAttribute( oBody, 'text'	, GetE('txtColorText').value ) ;
+	SetAttribute( oBody, 'link'	, GetE('txtColorLink').value ) ;
+	SetAttribute( oBody, 'vlink', GetE('txtColorVisited').value ) ;
+	SetAttribute( oBody, 'alink', GetE('txtColorActive').value ) ;
+
+	// ### Margins
+	SetAttribute( oBody, 'topmargin'	, GetE('txtMarginTop').value ) ;
+	SetAttribute( oBody, 'leftmargin'	, GetE('txtMarginLeft').value ) ;
+	SetAttribute( oBody, 'rightmargin'	, GetE('txtMarginRight').value ) ;
+	SetAttribute( oBody, 'bottommargin'	, GetE('txtMarginBottom').value ) ;
+
+	// ### Meta data
+	SetMetadata( 'keywords'		, GetE('txtMetaKeywords').value ) ;
+	SetMetadata( 'description'	, GetE('txtMetaDescription').value ) ;
+	SetMetadata( 'author'		, GetE('txtMetaAuthor').value ) ;
+	SetMetadata( 'copyright'	, GetE('txtMetaCopyright').value ) ;
+
+	return true ;
+}
+
+var bPreviewIsLoaded = false ;
+var oPreviewWindow ;
+var oPreviewBody ;
+
+// Called by the Preview page when loaded.
+function OnPreviewLoad( previewWindow, previewBody )
+{
+	oPreviewWindow	= previewWindow ;
+	oPreviewBody	= previewBody ;
+
+	bPreviewIsLoaded = true ;
+	UpdatePreview() ;
+}
+
+function UpdatePreview()
+{
+	if ( !bPreviewIsLoaded )
+		return ;
+
+	// ### Background
+	SetAttribute( oPreviewBody, 'bgcolor'		, GetE('txtBackColor').value ) ;
+	SetAttribute( oPreviewBody, 'background'	, GetE('txtBackImage').value ) ;
+	SetAttribute( oPreviewBody, 'bgproperties'	, GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;
+
+	// ### Colors
+	SetAttribute( oPreviewBody, 'text', GetE('txtColorText').value ) ;
+
+	oPreviewWindow.SetLinkColor( GetE('txtColorLink').value ) ;
+	oPreviewWindow.SetVisitedColor( GetE('txtColorVisited').value ) ;
+	oPreviewWindow.SetActiveColor( GetE('txtColorActive').value ) ;
+}
+
+function CheckOther( combo, txtField )
+{
+	var bNotOther = ( combo.value != '...' ) ;
+
+	GetE(txtField).style.backgroundColor = ( bNotOther ? '#cccccc' : '' ) ;
+	GetE(txtField).disabled = bNotOther ;
+}
+
+function SetColor( inputId, color )
+{
+	GetE( inputId ).value = color + '' ;
+	UpdatePreview() ;
+}
+
+function SelectBackColor( color )		{ SetColor('txtBackColor', color ) ; }
+function SelectColorText( color )		{ SetColor('txtColorText', color ) ; }
+function SelectColorLink( color )		{ SetColor('txtColorLink', color ) ; }
+function SelectColorVisited( color )	{ SetColor('txtColorVisited', color ) ; }
+function SelectColorActive( color )		{ SetColor('txtColorActive', color ) ; }
+
+function SelectColor( wich )
+{
+	switch ( wich )
+	{
+		case 'Back'			: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, SelectBackColor, window ) ; return ;
+		case 'ColorText'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, SelectColorText, window ) ; return ;
+		case 'ColorLink'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, SelectColorLink, window ) ; return ;
+		case 'ColorVisited'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, SelectColorVisited, window ) ; return ;
+		case 'ColorActive'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 410, 320, SelectColorActive, window ) ; return ;
+	}
+}
+
+function BrowseServerBack()
+{
+	OpenFileBrowser( FCKConfig.ImageBrowserURL, FCKConfig.ImageBrowserWindowWidth, FCKConfig.ImageBrowserWindowHeight ) ;
+}
+
+function SetUrl( url )
+{
+	GetE('txtBackImage').value = url ;
+	UpdatePreview() ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td valign="top" style="height: 100%">
+				<div id="divGeneral">
+					<span fcklang="DlgDocPageTitle">Page Title</span><br />
+					<input id="txtPageTitle" style="width: 100%" type="text" />
+					<br />
+					<table cellspacing="0" cellpadding="0" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocLangDir">Language Direction</span><br />
+								<select id="selDirection">
+									<option value="" selected="selected"></option>
+									<option value="ltr" fcklang="DlgDocLangDirLTR">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgDocLangDirRTL">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td>
+								<span fcklang="DlgDocLangCode">Language Code</span><br />
+								<input id="txtLang" type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td style="white-space: nowrap">
+								<span fcklang="DlgDocCharSet">Character Set Encoding</span><br />
+								<select id="selCharSet" onchange="CheckOther( this, 'txtCustomCharSet' );">
+									<option value="" selected="selected"></option>
+									<option value="us-ascii">ASCII</option>
+									<option fcklang="DlgDocCharSetCE" value="iso-8859-2">Central European</option>
+									<option fcklang="DlgDocCharSetCT" value="big5">Chinese Traditional (Big5)</option>
+									<option fcklang="DlgDocCharSetCR" value="iso-8859-5">Cyrillic</option>
+									<option fcklang="DlgDocCharSetGR" value="iso-8859-7">Greek</option>
+									<option fcklang="DlgDocCharSetJP" value="iso-2022-jp">Japanese</option>
+									<option fcklang="DlgDocCharSetKR" value="iso-2022-kr">Korean</option>
+									<option fcklang="DlgDocCharSetTR" value="iso-8859-9">Turkish</option>
+									<option fcklang="DlgDocCharSetUN" value="utf-8">Unicode (UTF-8)</option>
+									<option fcklang="DlgDocCharSetWE" value="iso-8859-1">Western European</option>
+									<option fcklang="DlgOpOther" value="...">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%">
+								<span fcklang="DlgDocCharSetOther">Other Character Set Encoding</span><br />
+								<input id="txtCustomCharSet" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+						<tr>
+							<td colspan="3">
+								&nbsp;</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap">
+								<span fcklang="DlgDocDocType">Document Type Heading</span><br />
+								<select id="selDocType" name="selDocType" onchange="CheckOther( this, 'txtDocType' );">
+									<option value="" selected="selected"></option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'>HTML
+										4.01 Transitional</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'>
+										HTML 4.01 Strict</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'>
+										HTML 4.01 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'>
+										XHTML 1.0 Transitional</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'>
+										XHTML 1.0 Strict</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'>
+										XHTML 1.0 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'>
+										XHTML 1.1</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'>HTML 3.2</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'>HTML 2.0</option>
+									<option value="..." fcklang="DlgOpOther">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+							</td>
+							<td width="100%">
+								<span fcklang="DlgDocDocTypeOther">Other Document Type Heading</span><br />
+								<input id="txtDocType" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<input id="chkIncXHTMLDecl" type="checkbox" />
+					<label for="chkIncXHTMLDecl" fcklang="DlgDocIncXHTML">
+						Include XHTML Declarations</label>
+				</div>
+				<div id="divBackground" style="display: none">
+					<span fcklang="DlgDocBgColor">Background Color</span><br />
+					<input id="txtBackColor" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" />&nbsp;<input
+						id="btnSelBackColor" onclick="SelectColor( 'Back' )" type="button" value="Select..."
+						fcklang="DlgCellBtnSelect" /><br />
+					<br />
+					<span fcklang="DlgDocBgImage">Background Image URL</span><br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<input id="txtBackImage" style="width: 100%" type="text" onchange="UpdatePreview();"
+									onkeyup="UpdatePreview();" /></td>
+							<td id="tdBrowse" nowrap="nowrap">
+								&nbsp;<input id="btnBrowse" onclick="BrowseServerBack();" type="button" fcklang="DlgBtnBrowseServer"
+									value="Browse Server" /></td>
+						</tr>
+					</table>
+					<input id="chkBackNoScroll" type="checkbox" onclick="UpdatePreview();" />
+					<label for="chkBackNoScroll" fcklang="DlgDocBgNoScroll">
+						Nonscrolling Background</label>
+				</div>
+				<div id="divColors" style="display: none">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocCText">Text</span><br />
+								<input id="txtColorText" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorText' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCLink">Link</span><br />
+								<input id="txtColorLink" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorLink' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCVisited">Visited Link</span><br />
+								<input id="txtColorVisited" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorVisited' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCActive">Active Link</span><br />
+								<input id="txtColorActive" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorActive' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+							</td>
+							<td valign="middle" align="center">
+								<table cellspacing="2" cellpadding="0" border="0">
+									<tr>
+										<td>
+											<span fcklang="DlgDocMargins">Page Margins</span></td>
+									</tr>
+									<tr>
+										<td style="border: #000000 1px solid; padding: 5px">
+											<table cellpadding="0" cellspacing="0" border="0" dir="ltr">
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaTop">Top</span><br />
+														<input id="txtMarginTop" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="left">
+														<span fcklang="DlgDocMaLeft">Left</span><br />
+														<input id="txtMarginLeft" type="text" size="3" />
+													</td>
+													<td>
+														&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+													<td align="right">
+														<span fcklang="DlgDocMaRight">Right</span><br />
+														<input id="txtMarginRight" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaBottom">Bottom</span><br />
+														<input id="txtMarginBottom" type="text" size="3" />
+													</td>
+												</tr>
+											</table>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</div>
+				<div id="divMeta" style="display: none">
+					<span fcklang="DlgDocMeIndex">Document Indexing Keywords (comma separated)</span><br />
+					<textarea id="txtMetaKeywords" style="width: 100%" rows="2" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeDescr">Document Description</span><br />
+					<textarea id="txtMetaDescription" style="width: 100%" rows="4" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeAuthor">Author</span><br />
+					<input id="txtMetaAuthor" style="width: 100%" type="text" /><br />
+					<br />
+					<span fcklang="DlgDocMeCopy">Copyright</span><br />
+					<input id="txtMetaCopyright" type="text" style="width: 100%" />
+				</div>
+			</td>
+		</tr>
+		<tr id="ePreview" style="display: none">
+			<td>
+				<span fcklang="DlgDocPreview">Preview</span><br />
+				<iframe id="frmPreview" src="fck_docprops/fck_document_preview.html" width="100%"
+					height="100"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js	(revision 838)
@@ -0,0 +1,736 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Link dialog window (see fck_link.html).
+ */
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKRegexLib	= oEditor.FCKRegexLib ;
+var FCKTools	= oEditor.FCKTools ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+dialog.AddTab( 'Info', FCKLang.DlgLnkInfoTab ) ;
+
+if ( !FCKConfig.LinkDlgHideTarget )
+	dialog.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true ) ;
+
+if ( FCKConfig.LinkUpload )
+	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload, true ) ;
+
+if ( !FCKConfig.LinkDlgHideAdvanced )
+	dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divTarget'	, ( tabCode == 'Target' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAttribs'	, ( tabCode == 'Advanced' ) ) ;
+
+	dialog.SetAutoSize( true ) ;
+}
+
+//#### Regular Expressions library.
+var oRegex = new Object() ;
+
+oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ;
+
+oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;
+
+oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;
+
+oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ;
+
+oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ;
+
+// Accessible popups
+oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ;
+
+oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ;
+
+//#### Parser Functions
+
+var oParser = new Object() ;
+
+oParser.ParseEMailUrl = function( emailUrl )
+{
+	// Initializes the EMailInfo object.
+	var oEMailInfo = new Object() ;
+	oEMailInfo.Address	= '' ;
+	oEMailInfo.Subject	= '' ;
+	oEMailInfo.Body		= '' ;
+
+	var oParts = emailUrl.match( /^([^\?]+)\??(.+)?/ ) ;
+	if ( oParts )
+	{
+		// Set the e-mail address.
+		oEMailInfo.Address = oParts[1] ;
+
+		// Look for the optional e-mail parameters.
+		if ( oParts[2] )
+		{
+			var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;
+			if ( oMatch ) oEMailInfo.Subject = decodeURIComponent( oMatch[2] ) ;
+
+			oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;
+			if ( oMatch ) oEMailInfo.Body = decodeURIComponent( oMatch[2] ) ;
+		}
+	}
+
+	return oEMailInfo ;
+}
+
+oParser.CreateEMailUri = function( address, subject, body )
+{
+	var sBaseUri = 'mailto:' + address ;
+
+	var sParams = '' ;
+
+	if ( subject.length > 0 )
+		sParams = '?subject=' + encodeURIComponent( subject ) ;
+
+	if ( body.length > 0 )
+	{
+		sParams += ( sParams.length == 0 ? '?' : '&' ) ;
+		sParams += 'body=' + encodeURIComponent( body ) ;
+	}
+
+	return sBaseUri + sParams ;
+}
+
+//#### Initialization Code
+
+// oLink: The actual selected link in the editor.
+var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ;
+if ( oLink )
+	FCK.Selection.SelectNode( oLink ) ;
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	// Fill the Anchor Names and Ids combos.
+	LoadAnchorNamesAndIds() ;
+
+	// Load the selected link information (if any).
+	LoadSelection() ;
+
+	// Update the dialog box.
+	SetLinkType( GetE('cmbLinkType').value ) ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('divBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ;
+
+	// Show the initial dialog content.
+	GetE('divInfo').style.display = '' ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.LinkUpload )
+		GetE('frmUpload').action = FCKConfig.LinkUploadURL ;
+
+	// Set the default target (from configuration).
+	SetDefaultTarget() ;
+
+	// Activate the "OK" button.
+	dialog.SetOkButton( true ) ;
+
+	// Select the first field.
+	switch( GetE('cmbLinkType').value )
+	{
+		case 'url' :
+			SelectField( 'txtUrl' ) ;
+			break ;
+		case 'email' :
+			SelectField( 'txtEMailAddress' ) ;
+			break ;
+		case 'anchor' :
+			if ( GetE('divSelAnchor').style.display != 'none' )
+				SelectField( 'cmbAnchorName' ) ;
+			else
+				SelectField( 'cmbLinkType' ) ;
+	}
+}
+
+var bHasAnchors ;
+
+function LoadAnchorNamesAndIds()
+{
+	// Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
+	// to edit them. So, we must look for that images now.
+	var aAnchors = new Array() ;
+	var i ;
+	var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' ) ;
+	for( i = 0 ; i < oImages.length ; i++ )
+	{
+		if ( oImages[i].getAttribute('_fckanchor') )
+			aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] ) ;
+	}
+
+	// Add also real anchors
+	var oLinks = oEditor.FCK.EditorDocument.getElementsByTagName( 'A' ) ;
+	for( i = 0 ; i < oLinks.length ; i++ )
+	{
+		if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) )
+			aAnchors[ aAnchors.length ] = oLinks[i] ;
+	}
+
+	var aIds = FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;
+
+	bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;
+
+	for ( i = 0 ; i < aAnchors.length ; i++ )
+	{
+		var sName = aAnchors[i].name ;
+		if ( sName && sName.length > 0 )
+			FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
+	}
+
+	for ( i = 0 ; i < aIds.length ; i++ )
+	{
+		FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
+	}
+
+	ShowE( 'divSelAnchor'	, bHasAnchors ) ;
+	ShowE( 'divNoAnchor'	, !bHasAnchors ) ;
+}
+
+function LoadSelection()
+{
+	if ( !oLink ) return ;
+
+	var sType = 'url' ;
+
+	// Get the actual Link href.
+	var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
+	if ( sHRef == null )
+		sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
+
+	// Look for a popup javascript link.
+	var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ;
+	if( oPopupMatch )
+	{
+		GetE('cmbTarget').value = 'popup' ;
+		sHRef = oPopupMatch[1] ;
+		FillPopupFields( oPopupMatch[2], oPopupMatch[3] ) ;
+		SetTarget( 'popup' ) ;
+	}
+
+	// Accessible popups, the popup data is in the onclick attribute
+	if ( !oPopupMatch )
+	{
+		var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+		if ( onclick )
+		{
+			// Decode the protected string
+			onclick = decodeURIComponent( onclick ) ;
+
+			oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ;
+			if( oPopupMatch )
+			{
+				GetE( 'cmbTarget' ).value = 'popup' ;
+				FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ;
+				SetTarget( 'popup' ) ;
+			}
+		}
+	}
+
+	// Search for the protocol.
+	var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
+
+	if ( sProtocol )
+	{
+		sProtocol = sProtocol[0].toLowerCase() ;
+		GetE('cmbLinkProtocol').value = sProtocol ;
+
+		// Remove the protocol and get the remaining URL.
+		var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
+
+		if ( sProtocol == 'mailto:' )	// It is an e-mail link.
+		{
+			sType = 'email' ;
+
+			var oEMailInfo = oParser.ParseEMailUrl( sUrl ) ;
+			GetE('txtEMailAddress').value	= oEMailInfo.Address ;
+			GetE('txtEMailSubject').value	= oEMailInfo.Subject ;
+			GetE('txtEMailBody').value		= oEMailInfo.Body ;
+		}
+		else				// It is a normal link.
+		{
+			sType = 'url' ;
+			GetE('txtUrl').value = sUrl ;
+		}
+	}
+	else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 )	// It is an anchor link.
+	{
+		sType = 'anchor' ;
+		GetE('cmbAnchorName').value = GetE('cmbAnchorId').value = sHRef.substr(1) ;
+	}
+	else					// It is another type of link.
+	{
+		sType = 'url' ;
+
+		GetE('cmbLinkProtocol').value = '' ;
+		GetE('txtUrl').value = sHRef ;
+	}
+
+	if ( !oPopupMatch )
+	{
+		// Get the target.
+		var sTarget = oLink.target ;
+
+		if ( sTarget && sTarget.length > 0 )
+		{
+			if ( oRegex.ReserveTarget.test( sTarget ) )
+			{
+				sTarget = sTarget.toLowerCase() ;
+				GetE('cmbTarget').value = sTarget ;
+			}
+			else
+				GetE('cmbTarget').value = 'frame' ;
+			GetE('txtTargetFrame').value = sTarget ;
+		}
+	}
+
+	// Get Advances Attributes
+	GetE('txtAttId').value			= oLink.id ;
+	GetE('txtAttName').value		= oLink.name ;
+	GetE('cmbAttLangDir').value		= oLink.dir ;
+	GetE('txtAttLangCode').value	= oLink.lang ;
+	GetE('txtAttAccessKey').value	= oLink.accessKey ;
+	GetE('txtAttTabIndex').value	= oLink.tabIndex <= 0 ? '' : oLink.tabIndex ;
+	GetE('txtAttTitle').value		= oLink.title ;
+	GetE('txtAttContentType').value	= oLink.type ;
+	GetE('txtAttCharSet').value		= oLink.charset ;
+
+	var sClass ;
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		sClass	= oLink.getAttribute('className',2) || '' ;
+		// Clean up temporary classes for internal use:
+		sClass = sClass.replace( FCKRegexLib.FCK_Class, '' ) ;
+
+		GetE('txtAttStyle').value	= oLink.style.cssText ;
+	}
+	else
+	{
+		sClass	= oLink.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value	= oLink.getAttribute('style',2) || '' ;
+	}
+	GetE('txtAttClasses').value	= sClass ;
+
+	// Update the Link type combo.
+	GetE('cmbLinkType').value = sType ;
+}
+
+//#### Link type selection.
+function SetLinkType( linkType )
+{
+	ShowE('divLinkTypeUrl'		, (linkType == 'url') ) ;
+	ShowE('divLinkTypeAnchor'	, (linkType == 'anchor') ) ;
+	ShowE('divLinkTypeEMail'	, (linkType == 'email') ) ;
+
+	if ( !FCKConfig.LinkDlgHideTarget )
+		dialog.SetTabVisibility( 'Target'	, (linkType == 'url') ) ;
+
+	if ( FCKConfig.LinkUpload )
+		dialog.SetTabVisibility( 'Upload'	, (linkType == 'url') ) ;
+
+	if ( !FCKConfig.LinkDlgHideAdvanced )
+		dialog.SetTabVisibility( 'Advanced'	, (linkType != 'anchor' || bHasAnchors) ) ;
+
+	if ( linkType == 'email' )
+		dialog.SetAutoSize( true ) ;
+}
+
+//#### Target type selection.
+function SetTarget( targetType )
+{
+	GetE('tdTargetFrame').style.display	= ( targetType == 'popup' ? 'none' : '' ) ;
+	GetE('tdPopupName').style.display	=
+	GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;
+
+	switch ( targetType )
+	{
+		case "_blank" :
+		case "_self" :
+		case "_parent" :
+		case "_top" :
+			GetE('txtTargetFrame').value = targetType ;
+			break ;
+		case "" :
+			GetE('txtTargetFrame').value = '' ;
+			break ;
+	}
+
+	if ( targetType == 'popup' )
+		dialog.SetAutoSize( true ) ;
+}
+
+//#### Called while the user types the URL.
+function OnUrlChange()
+{
+	var sUrl = GetE('txtUrl').value ;
+	var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;
+
+	if ( sProtocol )
+	{
+		sUrl = sUrl.substr( sProtocol[0].length ) ;
+		GetE('txtUrl').value = sUrl ;
+		GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ;
+	}
+	else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )
+	{
+		GetE('cmbLinkProtocol').value = '' ;
+	}
+}
+
+//#### Called while the user types the target name.
+function OnTargetNameChange()
+{
+	var sFrame = GetE('txtTargetFrame').value ;
+
+	if ( sFrame.length == 0 )
+		GetE('cmbTarget').value = '' ;
+	else if ( oRegex.ReserveTarget.test( sFrame ) )
+		GetE('cmbTarget').value = sFrame.toLowerCase() ;
+	else
+		GetE('cmbTarget').value = 'frame' ;
+}
+
+// Accessible popups
+function BuildOnClickPopup()
+{
+	var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ;
+
+	var sFeatures = '' ;
+	var aChkFeatures = document.getElementsByName( 'chkFeature' ) ;
+	for ( var i = 0 ; i < aChkFeatures.length ; i++ )
+	{
+		if ( i > 0 ) sFeatures += ',' ;
+		sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' ) ;
+	}
+
+	if ( GetE('txtPopupWidth').value.length > 0 )	sFeatures += ',width=' + GetE('txtPopupWidth').value ;
+	if ( GetE('txtPopupHeight').value.length > 0 )	sFeatures += ',height=' + GetE('txtPopupHeight').value ;
+	if ( GetE('txtPopupLeft').value.length > 0 )	sFeatures += ',left=' + GetE('txtPopupLeft').value ;
+	if ( GetE('txtPopupTop').value.length > 0 )		sFeatures += ',top=' + GetE('txtPopupTop').value ;
+
+	if ( sFeatures != '' )
+		sFeatures = sFeatures + ",status" ;
+
+	return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" ) ;
+}
+
+//#### Fills all Popup related fields.
+function FillPopupFields( windowName, features )
+{
+	if ( windowName )
+		GetE('txtPopupName').value = windowName ;
+
+	var oFeatures = new Object() ;
+	var oFeaturesMatch ;
+	while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null )
+	{
+		var sValue = oFeaturesMatch[2] ;
+		if ( sValue == ( 'yes' || '1' ) )
+			oFeatures[ oFeaturesMatch[1] ] = true ;
+		else if ( ! isNaN( sValue ) && sValue != 0 )
+			oFeatures[ oFeaturesMatch[1] ] = sValue ;
+	}
+
+	// Update all features check boxes.
+	var aChkFeatures = document.getElementsByName('chkFeature') ;
+	for ( var i = 0 ; i < aChkFeatures.length ; i++ )
+	{
+		if ( oFeatures[ aChkFeatures[i].value ] )
+			aChkFeatures[i].checked = true ;
+	}
+
+	// Update position and size text boxes.
+	if ( oFeatures['width'] )	GetE('txtPopupWidth').value		= oFeatures['width'] ;
+	if ( oFeatures['height'] )	GetE('txtPopupHeight').value	= oFeatures['height'] ;
+	if ( oFeatures['left'] )	GetE('txtPopupLeft').value		= oFeatures['left'] ;
+	if ( oFeatures['top'] )		GetE('txtPopupTop').value		= oFeatures['top'] ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	var sUri, sInnerHtml ;
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	switch ( GetE('cmbLinkType').value )
+	{
+		case 'url' :
+			sUri = GetE('txtUrl').value ;
+
+			if ( sUri.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoUrl ) ;
+				return false ;
+			}
+
+			sUri = GetE('cmbLinkProtocol').value + sUri ;
+
+			break ;
+
+		case 'email' :
+			sUri = GetE('txtEMailAddress').value ;
+
+			if ( sUri.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoEMail ) ;
+				return false ;
+			}
+
+			sUri = oParser.CreateEMailUri(
+				sUri,
+				GetE('txtEMailSubject').value,
+				GetE('txtEMailBody').value ) ;
+			break ;
+
+		case 'anchor' :
+			var sAnchor = GetE('cmbAnchorName').value ;
+			if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value ;
+
+			if ( sAnchor.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoAnchor ) ;
+				return false ;
+			}
+
+			sUri = '#' + sAnchor ;
+			break ;
+	}
+
+	// If no link is selected, create a new one (it may result in more than one link creation - #220).
+	var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true ) ;
+
+	// If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26)
+	var aHasSelection = ( aLinks.length > 0 ) ;
+	if ( !aHasSelection )
+	{
+		sInnerHtml = sUri;
+
+		// Built a better text for empty links.
+		switch ( GetE('cmbLinkType').value )
+		{
+			// anchor: use old behavior --> return true
+			case 'anchor':
+				sInnerHtml = sInnerHtml.replace( /^#/, '' ) ;
+				break ;
+
+			// url: try to get path
+			case 'url':
+				var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;
+				var asLinkPath = oLinkPathRegEx.exec( sUri ) ;
+				if (asLinkPath != null)
+					sInnerHtml = asLinkPath[1];  // use matched path
+				break ;
+
+			// mailto: try to get email address
+			case 'email':
+				sInnerHtml = GetE('txtEMailAddress').value ;
+				break ;
+		}
+
+		// Create a new (empty) anchor.
+		aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ;
+	}
+
+	for ( var i = 0 ; i < aLinks.length ; i++ )
+	{
+		oLink = aLinks[i] ;
+
+		if ( aHasSelection )
+			sInnerHtml = oLink.innerHTML ;		// Save the innerHTML (IE changes it if it is like an URL).
+
+		oLink.href = sUri ;
+		SetAttribute( oLink, '_fcksavedurl', sUri ) ;
+
+		var onclick;
+		// Accessible popups
+		if( GetE('cmbTarget').value == 'popup' )
+		{
+			onclick = BuildOnClickPopup() ;
+			// Encode the attribute
+			onclick = encodeURIComponent( " onclick=\"" + onclick + "\"" )  ;
+			SetAttribute( oLink, 'onclick_fckprotectedatt', onclick ) ;
+		}
+		else
+		{
+			// Check if the previous onclick was for a popup:
+			// In that case remove the onclick handler.
+			onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+			if ( onclick )
+			{
+				// Decode the protected string
+				onclick = decodeURIComponent( onclick ) ;
+
+				if( oRegex.OnClickPopup.test( onclick ) )
+					SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ;
+			}
+		}
+
+		oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML
+
+		// Target
+		if( GetE('cmbTarget').value != 'popup' )
+			SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
+		else
+			SetAttribute( oLink, 'target', null ) ;
+
+		// Let's set the "id" only for the first link to avoid duplication.
+		if ( i == 0 )
+			SetAttribute( oLink, 'id', GetE('txtAttId').value ) ;
+
+		// Advances Attributes
+		SetAttribute( oLink, 'name'		, GetE('txtAttName').value ) ;
+		SetAttribute( oLink, 'dir'		, GetE('cmbAttLangDir').value ) ;
+		SetAttribute( oLink, 'lang'		, GetE('txtAttLangCode').value ) ;
+		SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;
+		SetAttribute( oLink, 'tabindex'	, ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;
+		SetAttribute( oLink, 'title'	, GetE('txtAttTitle').value ) ;
+		SetAttribute( oLink, 'type'		, GetE('txtAttContentType').value ) ;
+		SetAttribute( oLink, 'charset'	, GetE('txtAttCharSet').value ) ;
+
+		if ( oEditor.FCKBrowserInfo.IsIE )
+		{
+			var sClass = GetE('txtAttClasses').value ;
+			// If it's also an anchor add an internal class
+			if ( GetE('txtAttName').value.length != 0 )
+				sClass += ' FCK__AnchorC' ;
+			SetAttribute( oLink, 'className', sClass ) ;
+
+			oLink.style.cssText = GetE('txtAttStyle').value ;
+		}
+		else
+		{
+			SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;
+			SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
+		}
+	}
+
+	// Select the (first) link.
+	oEditor.FCKSelection.SelectNode( aLinks[0] );
+
+	return true ;
+}
+
+function BrowseServer()
+{
+	OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ;
+}
+
+function SetUrl( url )
+{
+	document.getElementById('txtUrl').value = url ;
+	OnUrlChange() ;
+	dialog.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		case 500 :
+			alert( 'The connector is disabled' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+
+	if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+
+	return true ;
+}
+
+function SetDefaultTarget()
+{
+	var target = FCKConfig.DefaultLinkTarget || '' ;
+
+	if ( oLink || target.length == 0 )
+		return ;
+
+	switch ( target )
+	{
+		case '_blank' :
+		case '_self' :
+		case '_parent' :
+		case '_top' :
+			GetE('cmbTarget').value = target ;
+			break ;
+		default :
+			GetE('cmbTarget').value = 'frame' ;
+			break ;
+	}
+
+	GetE('txtTargetFrame').value = target ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_radiobutton.html	(revision 838)
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Radio Button dialog window.
+-->
+<html>
+	<head>
+		<title>Radio Button Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName.toUpperCase() == 'INPUT' && oActiveEl.type == 'radio' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
+		GetE('txtSelected').checked	= oActiveEl.checked ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'INPUT', {name: GetE('txtName').value, type: 'radio' } ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxName">Name</span><br>
+								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxValue">Value</span><br>
+								<input type="text" size="20" id="txtValue" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_flash.html	(revision 838)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Flash Properties dialog window.
+-->
+<html>
+	<head>
+		<title>Flash Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_flash/fck_flash.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss() ) ) ;
+
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<div id="divInfo">
+			<table cellSpacing="1" cellPadding="1" width="100%" border="0">
+				<tr>
+					<td>
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td width="100%"><span fckLang="DlgImgURL">URL</span>
+								</td>
+								<td id="tdBrowse" style="DISPLAY: none" noWrap rowSpan="2">&nbsp; <input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server" fckLang="DlgBtnBrowseServer">
+								</td>
+							</tr>
+							<tr>
+								<td vAlign="top"><input id="txtUrl" onblur="UpdatePreview();" style="WIDTH: 100%" type="text">
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<TR>
+					<TD>
+						<table cellSpacing="0" cellPadding="0" border="0">
+							<TR>
+								<TD nowrap>
+									<span fckLang="DlgImgWidth">Width</span><br>
+									<input id="txtWidth" onkeypress="return IsDigit(event);" type="text" size="3">
+								</TD>
+								<TD>&nbsp;</TD>
+								<TD>
+									<span fckLang="DlgImgHeight">Height</span><br>
+									<input id="txtHeight" onkeypress="return IsDigit(event);" type="text" size="3">
+								</TD>
+							</TR>
+						</table>
+					</TD>
+				</TR>
+				<tr>
+					<td vAlign="top">
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td valign="top" width="100%">
+									<table cellSpacing="0" cellPadding="0" width="100%">
+										<tr>
+											<td><span fckLang="DlgImgPreview">Preview</span></td>
+										</tr>
+										<tr>
+											<td id="ePreviewCell" valign="top" class="FlashPreviewArea"><iframe src="fck_flash/fck_flash_preview.html" frameborder="0" marginheight="0" marginwidth="0"></iframe></td>
+										</tr>
+									</table>
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divUpload" style="DISPLAY: none">
+			<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">
+				<span fckLang="DlgLnkUpload">Upload</span><br />
+				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
+				<br />
+				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
+				<script type="text/javascript">
+					document.write( '<iframe name="UploadWindow" style="DISPLAY: none" src="' + FCKTools.GetVoidUrl() + '"></iframe>' ) ;
+				</script>
+			</form>
+		</div>
+		<div id="divAdvanced" style="DISPLAY: none">
+			<TABLE cellSpacing="0" cellPadding="0" border="0">
+				<TR>
+					<TD nowrap>
+						<span fckLang="DlgFlashScale">Scale</span><BR>
+						<select id="cmbScale">
+							<option value="" selected></option>
+							<option value="showall" fckLang="DlgFlashScaleAll">Show all</option>
+							<option value="noborder" fckLang="DlgFlashScaleNoBorder">No Border</option>
+							<option value="exactfit" fckLang="DlgFlashScaleFit">Exact Fit</option>
+						</select></TD>
+					<TD>&nbsp;&nbsp;&nbsp; &nbsp;
+					</TD>
+					<td valign="bottom">
+						<table>
+							<tr>
+								<td><input id="chkAutoPlay" type="checkbox" checked></td>
+								<td><label for="chkAutoPlay" nowrap fckLang="DlgFlashChkPlay">Auto Play</label>&nbsp;&nbsp;</td>
+								<td><input id="chkLoop" type="checkbox" checked></td>
+								<td><label for="chkLoop" nowrap fckLang="DlgFlashChkLoop">Loop</label>&nbsp;&nbsp;</td>
+								<td><input id="chkMenu" type="checkbox" checked></td>
+								<td><label for="chkMenu" nowrap fckLang="DlgFlashChkMenu">Enable Flash Menu</label></td>
+							</tr>
+						</table>
+					</td>
+				</TR>
+			</TABLE>
+			<br>
+			&nbsp;
+			<table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td vAlign="top" width="50%"><span fckLang="DlgGenId">Id</span><br>
+						<input id="txtAttId" style="WIDTH: 100%" type="text">
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td vAlign="top" nowrap><span fckLang="DlgGenClass">Stylesheet Classes</span><br>
+						<input id="txtAttClasses" style="WIDTH: 100%" type="text">
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td vAlign="top" nowrap width="50%">&nbsp;<span fckLang="DlgGenTitle">Advisory Title</span><br>
+						<input id="txtAttTitle" style="WIDTH: 100%" type="text">
+					</td>
+				</tr>
+			</table>
+			<span fckLang="DlgGenStyle">Style</span><br>
+			<input id="txtAttStyle" style="WIDTH: 100%" type="text">
+		</div>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html	(revision 838)
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hidden Field dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Hidden Field Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+var FCK = oEditor.FCK ;
+
+// Gets the document DOM
+var oDOM = FCK.EditorDocument ;
+
+// Get the selected flash embed (if available).
+var oFakeImage = dialog.Selection.GetSelectedElement() ;
+var oActiveEl ;
+
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') )
+		oActiveEl = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oActiveEl.value ;
+	}
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'INPUT', {name: GetE('txtName').value, type: 'hidden' } ) ;
+
+	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	if ( !oFakeImage )
+	{
+		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ;
+		oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ;
+
+		oActiveEl.parentNode.insertBefore( oFakeImage, oActiveEl ) ;
+		oActiveEl.parentNode.removeChild( oActiveEl ) ;
+	}
+	else
+		oEditor.FCKUndo.SaveUndoStep() ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden" scroll="no">
+	<table height="100%" width="100%">
+		<tr>
+			<td align="center">
+				<table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
+					<tr>
+						<td>
+							<span fcklang="DlgHiddenName">Name</span><br />
+							<input type="text" size="20" id="txtName" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgHiddenValue">Value</span><br />
+							<input type="text" size="30" id="txtValue" style="width: 100%" />
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_source.html	(revision 838)
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Source editor dialog window.
+-->
+<html>
+	<head>
+		<title>Source</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script language="javascript">
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKTools	= oEditor.FCKTools ;
+
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss() ) ) ;
+
+window.onload = function()
+{
+	// EnableXHTML and EnableSourceXHTML has been deprecated
+//	document.getElementById('txtSource').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
+	document.getElementById('txtSource').value = FCK.GetXHTML( FCKConfig.FormatSource ) ;
+
+	// Activate the "OK" button.
+	window.parent.SetOkButton( true ) ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oEditor.FCKUndo.SaveUndoStep() ;
+
+	FCK.SetData( document.getElementById('txtSource').value, false ) ;
+
+	return true ;
+}
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<table width="100%" height="100%">
+			<tr>
+				<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>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css	(revision 838)
@@ -0,0 +1,85 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the CSS file used for interface details in some dialog
+ * windows.
+ */
+
+/* #########
+ *  WARNING
+ * #########
+ * When changing this file, the minified version of it must be updated in the
+ * fck_dialog_common.js file (see GetCommonDialogCss).
+ */
+
+.ImagePreviewArea
+{
+	border: #000000 1px solid;
+	overflow: auto;
+	width: 100%;
+	height: 170px;
+	background-color: #ffffff;
+}
+
+.FlashPreviewArea
+{
+	border: #000000 1px solid;
+	padding: 5px;
+	overflow: auto;
+	width: 100%;
+	height: 170px;
+	background-color: #ffffff;
+}
+
+.BtnReset
+{
+	float: left;
+	background-position: center center;
+	background-image: url(images/reset.gif);
+	width: 16px;
+	height: 16px;
+	background-repeat: no-repeat;
+	border: 1px none;
+	font-size: 1px ;
+}
+
+.BtnLocked, .BtnUnlocked
+{
+	float: left;
+	background-position: center center;
+	background-image: url(images/locked.gif);
+	width: 16px;
+	height: 16px;
+	background-repeat: no-repeat;
+	border: none 1px;
+	font-size: 1px ;
+}
+
+.BtnUnlocked
+{
+	background-image: url(images/unlocked.gif);
+}
+
+.BtnOver
+{
+	border: outset 1px;
+	cursor: pointer;
+	cursor: hand;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js	(revision 838)
@@ -0,0 +1,338 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Useful functions used by almost all dialog window pages.
+ * Dialogs should link to this file as the very first script on the page.
+ */
+
+// Automatically detect the correct document.domain (#123).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.parent.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+// Attention: FCKConfig must be available in the page.
+function GetCommonDialogCss( prefix )
+{
+	// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
+	return FCKConfig.BasePath + 'dialog/common/' + '|.ImagePreviewArea{border:#000 1px solid;overflow:auto;width:100%;height:170px;background-color:#fff}.FlashPreviewArea{border:#000 1px solid;padding:5px;overflow:auto;width:100%;height:170px;background-color:#fff}.BtnReset{float:left;background-position:center center;background-image:url(images/reset.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.BtnLocked,.BtnUnlocked{float:left;background-position:center center;background-image:url(images/locked.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.BtnUnlocked{background-image:url(images/unlocked.gif)}.BtnOver{border:outset 1px;cursor:pointer;cursor:hand}' ;
+}
+
+// Gets a element by its Id. Used for shorter coding.
+function GetE( elementId )
+{
+	return document.getElementById( elementId )  ;
+}
+
+function ShowE( element, isVisible )
+{
+	if ( typeof( element ) == 'string' )
+		element = GetE( element ) ;
+	element.style.display = isVisible ? '' : 'none' ;
+}
+
+function SetAttribute( element, attName, attValue )
+{
+	if ( attValue == null || attValue.length == 0 )
+		element.removeAttribute( attName, 0 ) ;			// 0 : Case Insensitive
+	else
+		element.setAttribute( attName, attValue, 0 ) ;	// 0 : Case Insensitive
+}
+
+function GetAttribute( element, attName, valueIfNull )
+{
+	var oAtt = element.attributes[attName] ;
+
+	if ( oAtt == null || !oAtt.specified )
+		return valueIfNull ? valueIfNull : '' ;
+
+	var oValue = element.getAttribute( attName, 2 ) ;
+
+	if ( oValue == null )
+		oValue = oAtt.nodeValue ;
+
+	return ( oValue == null ? valueIfNull : oValue ) ;
+}
+
+function SelectField( elementId )
+{
+	var element = GetE( elementId ) ;
+	element.focus() ;
+
+	// element.select may not be available for some fields (like <select>).
+	if ( element.select )
+		element.select() ;
+}
+
+// Functions used by text fields to accept numbers only.
+var IsDigit = ( function()
+	{
+		var KeyIdentifierMap =
+		{
+			End			: 35,
+			Home		: 36,
+			Left		: 37,
+			Right		: 39,
+			'U+00007F'	: 46		// Delete
+		} ;
+
+		return function ( e )
+			{
+				if ( !e )
+					e = event ;
+
+				var iCode = ( e.keyCode || e.charCode ) ;
+
+				if ( !iCode && e.keyIdentifier && ( e.keyIdentifier in KeyIdentifierMap ) )
+						iCode = KeyIdentifierMap[ e.keyIdentifier ] ;
+
+				return (
+						( iCode >= 48 && iCode <= 57 )		// Numbers
+						|| (iCode >= 35 && iCode <= 40)		// Arrows, Home, End
+						|| iCode == 8						// Backspace
+						|| iCode == 46						// Delete
+						|| iCode == 9						// Tab
+				) ;
+			}
+	} )() ;
+
+String.prototype.Trim = function()
+{
+	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
+}
+
+String.prototype.StartsWith = function( value )
+{
+	return ( this.substr( 0, value.length ) == value ) ;
+}
+
+String.prototype.Remove = function( start, length )
+{
+	var s = '' ;
+
+	if ( start > 0 )
+		s = this.substring( 0, start ) ;
+
+	if ( start + length < this.length )
+		s += this.substring( start + length , this.length ) ;
+
+	return s ;
+}
+
+String.prototype.ReplaceAll = function( searchArray, replaceArray )
+{
+	var replaced = this ;
+
+	for ( var i = 0 ; i < searchArray.length ; i++ )
+	{
+		replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
+	}
+
+	return replaced ;
+}
+
+function OpenFileBrowser( url, width, height )
+{
+	// oEditor must be defined.
+
+	var iLeft = ( oEditor.FCKConfig.ScreenWidth  - width ) / 2 ;
+	var iTop  = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;
+
+	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;
+	sOptions += ",width=" + width ;
+	sOptions += ",height=" + height ;
+	sOptions += ",left=" + iLeft ;
+	sOptions += ",top=" + iTop ;
+
+	// The "PreserveSessionOnFileBrowser" because the above code could be
+	// blocked by popup blockers.
+	if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE )
+	{
+		// The following change has been made otherwise IE will open the file
+		// browser on a different server session (on some cases):
+		// http://support.microsoft.com/default.aspx?scid=kb;en-us;831678
+		// by Simone Chiaretta.
+		var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;
+
+		if ( oWindow )
+		{
+			// Detect Yahoo popup blocker.
+			try
+			{
+				var sTest = oWindow.name ; // Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.
+				oWindow.opener = window ;
+			}
+			catch(e)
+			{
+				alert( oEditor.FCKLang.BrowseServerBlocked ) ;
+			}
+		}
+		else
+			alert( oEditor.FCKLang.BrowseServerBlocked ) ;
+    }
+    else
+		window.open( url, 'FCKBrowseWindow', sOptions ) ;
+}
+
+/**
+ Utility function to create/update an element with a name attribute in IE, so it behaves properly when moved around
+ It also allows to change the name or other special attributes in an existing node
+	oEditor : instance of FCKeditor where the element will be created
+	oOriginal : current element being edited or null if it has to be created
+	nodeName : string with the name of the element to create
+	oAttributes : Hash object with the attributes that must be set at creation time in IE
+								Those attributes will be set also after the element has been
+								created for any other browser to avoid redudant code
+*/
+function CreateNamedElement( oEditor, oOriginal, nodeName, oAttributes )
+{
+	var oNewNode ;
+
+	// IE doesn't allow easily to change properties of an existing object,
+	// so remove the old and force the creation of a new one.
+	var oldNode = null ;
+	if ( oOriginal && oEditor.FCKBrowserInfo.IsIE )
+	{
+		// Force the creation only if some of the special attributes have changed:
+		var bChanged = false;
+		for( var attName in oAttributes )
+			bChanged |= ( oOriginal.getAttribute( attName, 2) != oAttributes[attName] ) ;
+
+		if ( bChanged )
+		{
+			oldNode = oOriginal ;
+			oOriginal = null ;
+		}
+	}
+
+	// If the node existed (and it's not IE), then we just have to update its attributes
+	if ( oOriginal )
+	{
+		oNewNode = oOriginal ;
+	}
+	else
+	{
+		// #676, IE doesn't play nice with the name or type attribute
+		if ( oEditor.FCKBrowserInfo.IsIE )
+		{
+			var sbHTML = [] ;
+			sbHTML.push( '<' + nodeName ) ;
+			for( var prop in oAttributes )
+			{
+				sbHTML.push( ' ' + prop + '="' + oAttributes[prop] + '"' ) ;
+			}
+			sbHTML.push( '>' ) ;
+			if ( !oEditor.FCKListsLib.EmptyElements[nodeName.toLowerCase()] )
+				sbHTML.push( '</' + nodeName + '>' ) ;
+
+			oNewNode = oEditor.FCK.EditorDocument.createElement( sbHTML.join('') ) ;
+			// Check if we are just changing the properties of an existing node: copy its properties
+			if ( oldNode )
+			{
+				CopyAttributes( oldNode, oNewNode, oAttributes ) ;
+				oEditor.FCKDomTools.MoveChildren( oldNode, oNewNode ) ;
+				oldNode.parentNode.removeChild( oldNode ) ;
+				oldNode = null ;
+
+				if ( oEditor.FCK.Selection.SelectionData )
+				{
+					// Trick to refresh the selection object and avoid error in
+					// fckdialog.html Selection.EnsureSelection
+					var oSel = oEditor.FCK.EditorDocument.selection ;
+					oEditor.FCK.Selection.SelectionData = oSel.createRange() ; // Now oSel.type will be 'None' reflecting the real situation
+				}
+			}
+			oNewNode = oEditor.FCK.InsertElement( oNewNode ) ;
+
+			// FCK.Selection.SelectionData is broken by now since we've
+			// deleted the previously selected element. So we need to reassign it.
+			if ( oEditor.FCK.Selection.SelectionData )
+			{
+				var range = oEditor.FCK.EditorDocument.body.createControlRange() ;
+				range.add( oNewNode ) ;
+				oEditor.FCK.Selection.SelectionData = range ;
+			}
+		}
+		else
+		{
+			oNewNode = oEditor.FCK.InsertElement( nodeName ) ;
+		}
+	}
+
+	// Set the basic attributes
+	for( var attName in oAttributes )
+		oNewNode.setAttribute( attName, oAttributes[attName], 0 ) ;	// 0 : Case Insensitive
+
+	return oNewNode ;
+}
+
+// Copy all the attributes from one node to the other, kinda like a clone
+// But oSkipAttributes is an object with the attributes that must NOT be copied
+function CopyAttributes( oSource, oDest, oSkipAttributes )
+{
+	var aAttributes = oSource.attributes ;
+
+	for ( var n = 0 ; n < aAttributes.length ; n++ )
+	{
+		var oAttribute = aAttributes[n] ;
+
+		if ( oAttribute.specified )
+		{
+			var sAttName = oAttribute.nodeName ;
+			// We can set the type only once, so do it with the proper value, not copying it.
+			if ( sAttName in oSkipAttributes )
+				continue ;
+
+			var sAttValue = oSource.getAttribute( sAttName, 2 ) ;
+			if ( sAttValue == null )
+				sAttValue = oAttribute.nodeValue ;
+
+			oDest.setAttribute( sAttName, sAttValue, 0 ) ;	// 0 : Case Insensitive
+		}
+	}
+	// The style:
+	oDest.style.cssText = oSource.style.cssText ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/locked.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/locked.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/reset.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/reset.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/unlocked.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/unlocked.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/common/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_smiley.html	(revision 838)
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Smileys (emoticons) dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
+		.Hand
+		{
+			cursor: pointer;
+			cursor: hand;
+		}
+	</style>
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	dialog.SetAutoSize( true ) ;
+}
+
+function InsertSmiley( url )
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	var oImg = oEditor.FCK.InsertElement( 'img' ) ;
+	oImg.src = url ;
+	oImg.setAttribute( '_fcksavedurl', url ) ;
+
+	// For long smileys list, it seams that IE continues loading the images in
+	// the background when you quickly select one image. so, let's clear
+	// everything before closing.
+	document.body.innerHTML = '' ;
+
+	dialog.Cancel() ;
+}
+
+function over(td)
+{
+	td.className = 'LightBackground Hand' ;
+}
+
+function out(td)
+{
+	td.className = 'DarkBackground Hand' ;
+}
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">
+		<script type="text/javascript">
+
+var FCKConfig = oEditor.FCKConfig ;
+
+var sBasePath	= FCKConfig.SmileyPath ;
+var aImages		= FCKConfig.SmileyImages ;
+var iCols		= FCKConfig.SmileyColumns ;
+var iColWidth	= parseInt( 100 / iCols, 10 ) ;
+
+var i = 0 ;
+while (i < aImages.length)
+{
+	document.write( '<tr>' ) ;
+	for(var j = 0 ; j < iCols ; j++)
+	{
+		if (aImages[i])
+		{
+			var sUrl = sBasePath + aImages[i] ;
+			document.write( '<td width="' + iColWidth + '%" align="center" class="DarkBackground Hand" onclick="InsertSmiley(\'' + sUrl.replace(/'/g, "\\'" ) + '\')" onmouseover="over(this)" onmouseout="out(this)">' ) ;
+			document.write( '<img src="' + sUrl + '" border="0" />' ) ;
+		}
+		else
+			document.write( '<td width="' + iColWidth + '%" class="DarkBackground">&nbsp;' ) ;
+		document.write( '<\/td>' ) ;
+		i++ ;
+	}
+	document.write('<\/tr>') ;
+}
+
+		</script>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template1.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template1.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template2.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template2.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template3.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/template3.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_template/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_listprop.html	(revision 838)
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bulleted List dialog window.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+var sListType = ( location.search == '?OL' ? 'OL' : 'UL' ) ;
+
+var oActiveEl = dialog.Selection.GetSelection().MoveToAncestorNode( sListType ) ;
+var oActiveSel ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( sListType == 'UL' )
+		oActiveSel = GetE('selBulleted') ;
+	else
+	{
+		if ( oActiveEl )
+		{
+			oActiveSel = GetE('selNumbered') ;
+			GetE('eStart').style.display = '' ;
+			GetE('txtStartPosition').value	= GetAttribute( oActiveEl, 'start' ) ;
+		}
+	}
+
+	oActiveSel.style.display = '' ;
+
+	if ( oActiveEl )
+	{
+		if ( oActiveEl.getAttribute('type') )
+			oActiveSel.value = oActiveEl.getAttribute('type') ;
+	}
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+
+	SelectField( 'txtStartPosition' ) ;
+}
+
+function Ok()
+{
+	if ( oActiveEl ){
+		SetAttribute( oActiveEl, 'type'	, oActiveSel.value ) ;
+		if(oActiveEl.tagName == 'OL')
+			SetAttribute( oActiveEl, 'start', GetE('txtStartPosition').value ) ;
+	}
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td style="text-align:center">
+				<table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;">
+					<tr>
+						<td id="eStart" style="display: none; padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstStart">Start</span><br />
+							<input type="text" id="txtStartPosition" size="5" />
+						</td>
+						<td style="padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstType">List Type</span><br />
+							<select id="selBulleted" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="circle" fcklang="DlgLstTypeCircle">Circle</option>
+								<option value="disc" fcklang="DlgLstTypeDisc">Disc</option>
+								<option value="square" fcklang="DlgLstTypeSquare">Square</option>
+							</select>
+							<select id="selNumbered" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="1" fcklang="DlgLstTypeNumbers">Numbers (1, 2, 3)</option>
+								<option value="a" fcklang="DlgLstTypeLCase">Lowercase Letters (a, b, c)</option>
+								<option value="A" fcklang="DlgLstTypeUCase">Uppercase Letters (A, B, C)</option>
+								<option value="i" fcklang="DlgLstTypeSRoman">Small Roman Numerals (i, ii, iii)</option>
+								<option value="I" fcklang="DlgLstTypeLRoman">Large Roman Numerals (I, II, III)</option>
+							</select>
+							&nbsp;
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js	(revision 838)
@@ -0,0 +1,194 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts for the fck_select.html page.
+ */
+
+function Select( combo )
+{
+	var iIndex = combo.selectedIndex ;
+
+	oListText.selectedIndex		= iIndex ;
+	oListValue.selectedIndex	= iIndex ;
+
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	oTxtText.value	= oListText.value ;
+	oTxtValue.value	= oListValue.value ;
+}
+
+function Add()
+{
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	AddComboOption( oListText, oTxtText.value, oTxtText.value ) ;
+	AddComboOption( oListValue, oTxtValue.value, oTxtValue.value ) ;
+
+	oListText.selectedIndex = oListText.options.length - 1 ;
+	oListValue.selectedIndex = oListValue.options.length - 1 ;
+
+	oTxtText.value	= '' ;
+	oTxtValue.value	= '' ;
+
+	oTxtText.focus() ;
+}
+
+function Modify()
+{
+	var iIndex = oListText.selectedIndex ;
+
+	if ( iIndex < 0 ) return ;
+
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	oListText.options[ iIndex ].innerHTML	= HTMLEncode( oTxtText.value ) ;
+	oListText.options[ iIndex ].value		= oTxtText.value ;
+
+	oListValue.options[ iIndex ].innerHTML	= HTMLEncode( oTxtValue.value ) ;
+	oListValue.options[ iIndex ].value		= oTxtValue.value ;
+
+	oTxtText.value	= '' ;
+	oTxtValue.value	= '' ;
+
+	oTxtText.focus() ;
+}
+
+function Move( steps )
+{
+	ChangeOptionPosition( oListText, steps ) ;
+	ChangeOptionPosition( oListValue, steps ) ;
+}
+
+function Delete()
+{
+	RemoveSelectedOptions( oListText ) ;
+	RemoveSelectedOptions( oListValue ) ;
+}
+
+function SetSelectedValue()
+{
+	var iIndex = oListValue.selectedIndex ;
+	if ( iIndex < 0 ) return ;
+
+	var oTxtValue = document.getElementById( "txtSelValue" ) ;
+
+	oTxtValue.value = oListValue.options[ iIndex ].value ;
+}
+
+// Moves the selected option by a number of steps (also negative)
+function ChangeOptionPosition( combo, steps )
+{
+	var iActualIndex = combo.selectedIndex ;
+
+	if ( iActualIndex < 0 )
+		return ;
+
+	var iFinalIndex = iActualIndex + steps ;
+
+	if ( iFinalIndex < 0 )
+		iFinalIndex = 0 ;
+
+	if ( iFinalIndex > ( combo.options.length - 1 ) )
+		iFinalIndex = combo.options.length - 1 ;
+
+	if ( iActualIndex == iFinalIndex )
+		return ;
+
+	var oOption = combo.options[ iActualIndex ] ;
+	var sText	= HTMLDecode( oOption.innerHTML ) ;
+	var sValue	= oOption.value ;
+
+	combo.remove( iActualIndex ) ;
+
+	oOption = AddComboOption( combo, sText, sValue, null, iFinalIndex ) ;
+
+	oOption.selected = true ;
+}
+
+// Remove all selected options from a SELECT object
+function RemoveSelectedOptions(combo)
+{
+	// Save the selected index
+	var iSelectedIndex = combo.selectedIndex ;
+
+	var oOptions = combo.options ;
+
+	// Remove all selected options
+	for ( var i = oOptions.length - 1 ; i >= 0 ; i-- )
+	{
+		if (oOptions[i].selected) combo.remove(i) ;
+	}
+
+	// Reset the selection based on the original selected index
+	if ( combo.options.length > 0 )
+	{
+		if ( iSelectedIndex >= combo.options.length ) iSelectedIndex = combo.options.length - 1 ;
+		combo.selectedIndex = iSelectedIndex ;
+	}
+}
+
+// Add a new option to a SELECT object (combo or list)
+function AddComboOption( combo, optionText, optionValue, documentObject, index )
+{
+	var oOption ;
+
+	if ( documentObject )
+		oOption = documentObject.createElement("OPTION") ;
+	else
+		oOption = document.createElement("OPTION") ;
+
+	if ( index != null )
+		combo.options.add( oOption, index ) ;
+	else
+		combo.options.add( oOption ) ;
+
+	oOption.innerHTML = optionText.length > 0 ? HTMLEncode( optionText ) : '&nbsp;' ;
+	oOption.value     = optionValue ;
+
+	return oOption ;
+}
+
+function HTMLEncode( text )
+{
+	if ( !text )
+		return '' ;
+
+	text = text.replace( /&/g, '&amp;' ) ;
+	text = text.replace( /</g, '&lt;' ) ;
+	text = text.replace( />/g, '&gt;' ) ;
+
+	return text ;
+}
+
+
+function HTMLDecode( text )
+{
+	if ( !text )
+		return '' ;
+
+	text = text.replace( /&gt;/g, '>' ) ;
+	text = text.replace( /&lt;/g, '<' ) ;
+	text = text.replace( /&amp;/g, '&' ) ;
+
+	return text ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_textarea.html	(revision 838)
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Text Area dialog window.
+-->
+<html>
+	<head>
+		<title>Text Area Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'TEXTAREA' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtCols').value		= GetAttribute( oActiveEl, 'cols' ) ;
+		GetE('txtRows').value		= GetAttribute( oActiveEl, 'rows' ) ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'TEXTAREA', {name: GetE('txtName').value} ) ;
+
+	SetAttribute( oActiveEl, 'cols', GetE('txtCols').value ) ;
+	SetAttribute( oActiveEl, 'rows', GetE('txtRows').value ) ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="overflow: hidden">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgTextareaName">Name</span><br>
+								<input type="text" id="txtName" style="WIDTH: 100%">
+								<span fckLang="DlgTextareaCols">Collumns</span><br>
+								<input id="txtCols" type="text" size="5">
+								<br>
+								<span fckLang="DlgTextareaRows">Rows</span><br>
+								<input id="txtRows" type="text" size="5">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(revision 838)
@@ -0,0 +1,461 @@
+ï»¿////////////////////////////////////////////////////
+// spellChecker.js
+//
+// spellChecker object
+//
+// This file is sourced on web pages that have a textarea object to evaluate
+// for spelling. It includes the implementation for the spellCheckObject.
+//
+////////////////////////////////////////////////////
+
+
+// constructor
+function spellChecker( textObject ) {
+
+	// public properties - configurable
+//	this.popUpUrl = '/speller/spellchecker.html';							// by FredCK
+	this.popUpUrl = 'fck_spellerpages/spellerpages/spellchecker.html';		// by FredCK
+	this.popUpName = 'spellchecker';
+//	this.popUpProps = "menu=no,width=440,height=350,top=70,left=120,resizable=yes,status=yes";	// by FredCK
+	this.popUpProps = null ;																	// by FredCK
+//	this.spellCheckScript = '/speller/server-scripts/spellchecker.php';		// by FredCK
+	//this.spellCheckScript = '/cgi-bin/spellchecker.pl';
+
+	// values used to keep track of what happened to a word
+	this.replWordFlag = "R";	// single replace
+	this.ignrWordFlag = "I";	// single ignore
+	this.replAllFlag = "RA";	// replace all occurances
+	this.ignrAllFlag = "IA";	// ignore all occurances
+	this.fromReplAll = "~RA";	// an occurance of a "replace all" word
+	this.fromIgnrAll = "~IA";	// an occurance of a "ignore all" word
+	// properties set at run time
+	this.wordFlags = new Array();
+	this.currentTextIndex = 0;
+	this.currentWordIndex = 0;
+	this.spellCheckerWin = null;
+	this.controlWin = null;
+	this.wordWin = null;
+	this.textArea = textObject;	// deprecated
+	this.textInputs = arguments;
+
+	// private methods
+	this._spellcheck = _spellcheck;
+	this._getSuggestions = _getSuggestions;
+	this._setAsIgnored = _setAsIgnored;
+	this._getTotalReplaced = _getTotalReplaced;
+	this._setWordText = _setWordText;
+	this._getFormInputs = _getFormInputs;
+
+	// public methods
+	this.openChecker = openChecker;
+	this.startCheck = startCheck;
+	this.checkTextBoxes = checkTextBoxes;
+	this.checkTextAreas = checkTextAreas;
+	this.spellCheckAll = spellCheckAll;
+	this.ignoreWord = ignoreWord;
+	this.ignoreAll = ignoreAll;
+	this.replaceWord = replaceWord;
+	this.replaceAll = replaceAll;
+	this.terminateSpell = terminateSpell;
+	this.undo = undo;
+
+	// set the current window's "speller" property to the instance of this class.
+	// this object can now be referenced by child windows/frames.
+	window.speller = this;
+}
+
+// call this method to check all text boxes (and only text boxes) in the HTML document
+function checkTextBoxes() {
+	this.textInputs = this._getFormInputs( "^text$" );
+	this.openChecker();
+}
+
+// call this method to check all textareas (and only textareas ) in the HTML document
+function checkTextAreas() {
+	this.textInputs = this._getFormInputs( "^textarea$" );
+	this.openChecker();
+}
+
+// call this method to check all text boxes and textareas in the HTML document
+function spellCheckAll() {
+	this.textInputs = this._getFormInputs( "^text(area)?$" );
+	this.openChecker();
+}
+
+// call this method to check text boxe(s) and/or textarea(s) that were passed in to the
+// object's constructor or to the textInputs property
+function openChecker() {
+	this.spellCheckerWin = window.open( this.popUpUrl, this.popUpName, this.popUpProps );
+	if( !this.spellCheckerWin.opener ) {
+		this.spellCheckerWin.opener = window;
+	}
+}
+
+function startCheck( wordWindowObj, controlWindowObj ) {
+
+	// set properties from args
+	this.wordWin = wordWindowObj;
+	this.controlWin = controlWindowObj;
+
+	// reset properties
+	this.wordWin.resetForm();
+	this.controlWin.resetForm();
+	this.currentTextIndex = 0;
+	this.currentWordIndex = 0;
+	// initialize the flags to an array - one element for each text input
+	this.wordFlags = new Array( this.wordWin.textInputs.length );
+	// each element will be an array that keeps track of each word in the text
+	for( var i=0; i<this.wordFlags.length; i++ ) {
+		this.wordFlags[i] = [];
+	}
+
+	// start
+	this._spellcheck();
+
+	return true;
+}
+
+function ignoreWord() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	if( !this.wordWin.getTextVal( ti, wi )) {
+		alert( 'Error: "Not in dictionary" text is missing.' );
+		return false;
+	}
+	// set as ignored
+	if( this._setAsIgnored( ti, wi, this.ignrWordFlag )) {
+		this.currentWordIndex++;
+		this._spellcheck();
+	}
+	return true;
+}
+
+function ignoreAll() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	// get the word that is currently being evaluated.
+	var s_word_to_repl = this.wordWin.getTextVal( ti, wi );
+	if( !s_word_to_repl ) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+
+	// set this word as an "ignore all" word.
+	this._setAsIgnored( ti, wi, this.ignrAllFlag );
+
+	// loop through all the words after this word
+	for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {
+		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+			if(( i == ti && j > wi ) || i > ti ) {
+				// future word: set as "from ignore all" if
+				// 1) do not already have a flag and
+				// 2) have the same value as current word
+				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
+				&& ( !this.wordFlags[i][j] )) {
+					this._setAsIgnored( i, j, this.fromIgnrAll );
+				}
+			}
+		}
+	}
+
+	// finally, move on
+	this.currentWordIndex++;
+	this._spellcheck();
+	return true;
+}
+
+function replaceWord() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	if( !this.wordWin.getTextVal( ti, wi )) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+	if( !this.controlWin.replacementText ) {
+		return false ;
+	}
+	var txt = this.controlWin.replacementText;
+	if( txt.value ) {
+		var newspell = new String( txt.value );
+		if( this._setWordText( ti, wi, newspell, this.replWordFlag )) {
+			this.currentWordIndex++;
+			this._spellcheck();
+		}
+	}
+	return true;
+}
+
+function replaceAll() {
+	var ti = this.currentTextIndex;
+	var wi = this.currentWordIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	var s_word_to_repl = this.wordWin.getTextVal( ti, wi );
+	if( !s_word_to_repl ) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+	var txt = this.controlWin.replacementText;
+	if( !txt.value ) return false;
+	var newspell = new String( txt.value );
+
+	// set this word as a "replace all" word.
+	this._setWordText( ti, wi, newspell, this.replAllFlag );
+
+	// loop through all the words after this word
+	for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {
+		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+			if(( i == ti && j > wi ) || i > ti ) {
+				// future word: set word text to s_word_to_repl if
+				// 1) do not already have a flag and
+				// 2) have the same value as s_word_to_repl
+				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
+				&& ( !this.wordFlags[i][j] )) {
+					this._setWordText( i, j, newspell, this.fromReplAll );
+				}
+			}
+		}
+	}
+
+	// finally, move on
+	this.currentWordIndex++;
+	this._spellcheck();
+	return true;
+}
+
+function terminateSpell() {
+	// called when we have reached the end of the spell checking.
+	var msg = "";		// by FredCK
+	var numrepl = this._getTotalReplaced();
+	if( numrepl == 0 ) {
+		// see if there were no misspellings to begin with
+		if( !this.wordWin ) {
+			msg = "";
+		} else {
+			if( this.wordWin.totalMisspellings() ) {
+//				msg += "No words changed.";			// by FredCK
+				msg += FCKLang.DlgSpellNoChanges ;	// by FredCK
+			} else {
+//				msg += "No misspellings found.";	// by FredCK
+				msg += FCKLang.DlgSpellNoMispell ;	// by FredCK
+			}
+		}
+	} else if( numrepl == 1 ) {
+//		msg += "One word changed.";			// by FredCK
+		msg += FCKLang.DlgSpellOneChange ;	// by FredCK
+	} else {
+//		msg += numrepl + " words changed.";	// by FredCK
+		msg += FCKLang.DlgSpellManyChanges.replace( /%1/g, numrepl ) ;
+	}
+	if( msg ) {
+//		msg += "\n";	// by FredCK
+		alert( msg );
+	}
+
+	if( numrepl > 0 ) {
+		// update the text field(s) on the opener window
+		for( var i = 0; i < this.textInputs.length; i++ ) {
+			// this.textArea.value = this.wordWin.text;
+			if( this.wordWin ) {
+				if( this.wordWin.textInputs[i] ) {
+					this.textInputs[i].value = this.wordWin.textInputs[i];
+				}
+			}
+		}
+	}
+
+	// return back to the calling window
+//	this.spellCheckerWin.close();					// by FredCK
+	if ( typeof( this.OnFinished ) == 'function' )	// by FredCK
+		this.OnFinished(numrepl) ;					// by FredCK
+
+	return true;
+}
+
+function undo() {
+	// skip if this is the first word!
+	var ti = this.currentTextIndex;
+	var wi = this.currentWordIndex;
+
+	if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) {
+		this.wordWin.removeFocus( ti, wi );
+
+		// go back to the last word index that was acted upon
+		do {
+			// if the current word index is zero then reset the seed
+			if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) {
+				this.currentTextIndex--;
+				this.currentWordIndex = this.wordWin.totalWords( this.currentTextIndex )-1;
+				if( this.currentWordIndex < 0 ) this.currentWordIndex = 0;
+			} else {
+				if( this.currentWordIndex > 0 ) {
+					this.currentWordIndex--;
+				}
+			}
+		} while (
+			this.wordWin.totalWords( this.currentTextIndex ) == 0
+			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll
+			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll
+		);
+
+		var text_idx = this.currentTextIndex;
+		var idx = this.currentWordIndex;
+		var preReplSpell = this.wordWin.originalSpellings[text_idx][idx];
+
+		// if we got back to the first word then set the Undo button back to disabled
+		if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) {
+			this.controlWin.disableUndo();
+		}
+
+		var i, j, origSpell ;
+		// examine what happened to this current word.
+		switch( this.wordFlags[text_idx][idx] ) {
+			// replace all: go through this and all the future occurances of the word
+			// and revert them all to the original spelling and clear their flags
+			case this.replAllFlag :
+				for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+						if(( i == text_idx && j >= idx ) || i > text_idx ) {
+							origSpell = this.wordWin.originalSpellings[i][j];
+							if( origSpell == preReplSpell ) {
+								this._setWordText ( i, j, origSpell, undefined );
+							}
+						}
+					}
+				}
+				break;
+
+			// ignore all: go through all the future occurances of the word
+			// and clear their flags
+			case this.ignrAllFlag :
+				for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+						if(( i == text_idx && j >= idx ) || i > text_idx ) {
+							origSpell = this.wordWin.originalSpellings[i][j];
+							if( origSpell == preReplSpell ) {
+								this.wordFlags[i][j] = undefined;
+							}
+						}
+					}
+				}
+				break;
+
+			// replace: revert the word to its original spelling
+			case this.replWordFlag :
+				this._setWordText ( text_idx, idx, preReplSpell, undefined );
+				break;
+		}
+
+		// For all four cases, clear the wordFlag of this word. re-start the process
+		this.wordFlags[text_idx][idx] = undefined;
+		this._spellcheck();
+	}
+}
+
+function _spellcheck() {
+	var ww = this.wordWin;
+
+	// check if this is the last word in the current text element
+	if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) {
+		this.currentTextIndex++;
+		this.currentWordIndex = 0;
+		// keep going if we're not yet past the last text element
+		if( this.currentTextIndex < this.wordWin.textInputs.length ) {
+			this._spellcheck();
+			return;
+		} else {
+			this.terminateSpell();
+			return;
+		}
+	}
+
+	// if this is after the first one make sure the Undo button is enabled
+	if( this.currentWordIndex > 0 ) {
+		this.controlWin.enableUndo();
+	}
+
+	// skip the current word if it has already been worked on
+	if( this.wordFlags[this.currentTextIndex][this.currentWordIndex] ) {
+		// increment the global current word index and move on.
+		this.currentWordIndex++;
+		this._spellcheck();
+	} else {
+		var evalText = ww.getTextVal( this.currentTextIndex, this.currentWordIndex );
+		if( evalText ) {
+			this.controlWin.evaluatedText.value = evalText;
+			ww.setFocus( this.currentTextIndex, this.currentWordIndex );
+			this._getSuggestions( this.currentTextIndex, this.currentWordIndex );
+		}
+	}
+}
+
+function _getSuggestions( text_num, word_num ) {
+	this.controlWin.clearSuggestions();
+	// add suggestion in list for each suggested word.
+	// get the array of suggested words out of the
+	// three-dimensional array containing all suggestions.
+	var a_suggests = this.wordWin.suggestions[text_num][word_num];
+	if( a_suggests ) {
+		// got an array of suggestions.
+		for( var ii = 0; ii < a_suggests.length; ii++ ) {
+			this.controlWin.addSuggestion( a_suggests[ii] );
+		}
+	}
+	this.controlWin.selectDefaultSuggestion();
+}
+
+function _setAsIgnored( text_num, word_num, flag ) {
+	// set the UI
+	this.wordWin.removeFocus( text_num, word_num );
+	// do the bookkeeping
+	this.wordFlags[text_num][word_num] = flag;
+	return true;
+}
+
+function _getTotalReplaced() {
+	var i_replaced = 0;
+	for( var i = 0; i < this.wordFlags.length; i++ ) {
+		for( var j = 0; j < this.wordFlags[i].length; j++ ) {
+			if(( this.wordFlags[i][j] == this.replWordFlag )
+			|| ( this.wordFlags[i][j] == this.replAllFlag )
+			|| ( this.wordFlags[i][j] == this.fromReplAll )) {
+				i_replaced++;
+			}
+		}
+	}
+	return i_replaced;
+}
+
+function _setWordText( text_num, word_num, newText, flag ) {
+	// set the UI and form inputs
+	this.wordWin.setText( text_num, word_num, newText );
+	// keep track of what happened to this word:
+	this.wordFlags[text_num][word_num] = flag;
+	return true;
+}
+
+function _getFormInputs( inputPattern ) {
+	var inputs = new Array();
+	for( var i = 0; i < document.forms.length; i++ ) {
+		for( var j = 0; j < document.forms[i].elements.length; j++ ) {
+			if( document.forms[i].elements[j].type.match( inputPattern )) {
+				inputs[inputs.length] = document.forms[i].elements[j];
+			}
+		}
+	}
+	return inputs;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(revision 838)
@@ -0,0 +1,87 @@
+ï»¿////////////////////////////////////////////////////
+// controlWindow object
+////////////////////////////////////////////////////
+function controlWindow( controlForm ) {
+	// private properties
+	this._form = controlForm;
+
+	// public properties
+	this.windowType = "controlWindow";
+//	this.noSuggestionSelection = "- No suggestions -";	// by FredCK
+	this.noSuggestionSelection = FCKLang.DlgSpellNoSuggestions ;
+	// set up the properties for elements of the given control form
+	this.suggestionList  = this._form.sugg;
+	this.evaluatedText   = this._form.misword;
+	this.replacementText = this._form.txtsugg;
+	this.undoButton      = this._form.btnUndo;
+
+	// public methods
+	this.addSuggestion = addSuggestion;
+	this.clearSuggestions = clearSuggestions;
+	this.selectDefaultSuggestion = selectDefaultSuggestion;
+	this.resetForm = resetForm;
+	this.setSuggestedText = setSuggestedText;
+	this.enableUndo = enableUndo;
+	this.disableUndo = disableUndo;
+}
+
+function resetForm() {
+	if( this._form ) {
+		this._form.reset();
+	}
+}
+
+function setSuggestedText() {
+	var slct = this.suggestionList;
+	var txt = this.replacementText;
+	var str = "";
+	if( (slct.options[0].text) && slct.options[0].text != this.noSuggestionSelection ) {
+		str = slct.options[slct.selectedIndex].text;
+	}
+	txt.value = str;
+}
+
+function selectDefaultSuggestion() {
+	var slct = this.suggestionList;
+	var txt = this.replacementText;
+	if( slct.options.length == 0 ) {
+		this.addSuggestion( this.noSuggestionSelection );
+	} else {
+		slct.options[0].selected = true;
+	}
+	this.setSuggestedText();
+}
+
+function addSuggestion( sugg_text ) {
+	var slct = this.suggestionList;
+	if( sugg_text ) {
+		var i = slct.options.length;
+		var newOption = new Option( sugg_text, 'sugg_text'+i );
+		slct.options[i] = newOption;
+	 }
+}
+
+function clearSuggestions() {
+	var slct = this.suggestionList;
+	for( var j = slct.length - 1; j > -1; j-- ) {
+		if( slct.options[j] ) {
+			slct.options[j] = null;
+		}
+	}
+}
+
+function enableUndo() {
+	if( this.undoButton ) {
+		if( this.undoButton.disabled == true ) {
+			this.undoButton.disabled = false;
+		}
+	}
+}
+
+function disableUndo() {
+	if( this.undoButton ) {
+		if( this.undoButton.disabled == false ) {
+			this.undoButton.disabled = true;
+		}
+	}
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(revision 838)
@@ -0,0 +1,153 @@
+<html>
+	<head>
+		<link rel="stylesheet" type="text/css" href="spellerStyle.css" />
+		<script type="text/javascript" src="controlWindow.js"></script>
+		<script type="text/javascript">
+var spellerObject;
+var controlWindowObj;
+
+if( parent.opener ) {
+	spellerObject = parent.opener.speller;
+}
+
+function ignore_word() {
+	if( spellerObject ) {
+		spellerObject.ignoreWord();
+	}
+}
+
+function ignore_all() {
+	if( spellerObject ) {
+		spellerObject.ignoreAll();
+	}
+}
+
+function replace_word() {
+	if( spellerObject ) {
+		spellerObject.replaceWord();
+	}
+}
+
+function replace_all() {
+	if( spellerObject ) {
+		spellerObject.replaceAll();
+	}
+}
+
+function end_spell() {
+	if( spellerObject ) {
+		spellerObject.terminateSpell();
+	}
+}
+
+function undo() {
+	if( spellerObject ) {
+		spellerObject.undo();
+	}
+}
+
+function suggText() {
+	if( controlWindowObj ) {
+		controlWindowObj.setSuggestedText();
+	}
+}
+
+var FCKLang = window.parent.parent.FCKLang ;	// by FredCK
+
+function init_spell() {
+	// By FredCK (fckLang attributes have been added to the HTML source of this page)
+	window.parent.parent.OnSpellerControlsLoad( this ) ;
+
+	var controlForm = document.spellcheck;
+
+	// create a new controlWindow object
+ 	controlWindowObj = new controlWindow( controlForm );
+
+	// call the init_spell() function in the parent frameset
+	if( parent.frames.length ) {
+		parent.init_spell( controlWindowObj );
+	} else {
+		alert( 'This page was loaded outside of a frameset. It might not display properly' );
+	}
+}
+
+</script>
+	</head>
+	<body class="controlWindowBody" onLoad="init_spell();" style="OVERFLOW: hidden" scroll="no">	<!-- by FredCK -->
+		<form name="spellcheck">
+			<table border="0" cellpadding="0" cellspacing="0" border="0" align="center">
+				<tr>
+					<td colspan="3" class="normalLabel"><span fckLang="DlgSpellNotInDic">Not in dictionary:</span></td>
+				</tr>
+				<tr>
+					<td colspan="3"><input class="readonlyInput" type="text" name="misword" readonly /></td>
+				</tr>
+				<tr>
+					<td colspan="3" height="5"></td>
+				</tr>
+				<tr>
+					<td class="normalLabel"><span fckLang="DlgSpellChangeTo">Change to:</span></td>
+				</tr>
+				<tr valign="top">
+					<td>
+						<table border="0" cellpadding="0" cellspacing="0" border="0">
+							<tr>
+								<td class="normalLabel">
+									<input class="textDefault" type="text" name="txtsugg" />
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<select class="suggSlct" name="sugg" size="7" onChange="suggText();" onDblClick="replace_word();">
+										<option></option>
+									</select>
+								</td>
+							</tr>
+						</table>
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td>
+						<table border="0" cellpadding="0" cellspacing="0" border="0">
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnore" value="Ignore" onClick="ignore_word();">
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnoreAll" value="Ignore All" onClick="ignore_all();">
+								</td>
+							</tr>
+							<tr>
+								<td colspan="3" height="5"></td>
+							</tr>
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplace" value="Replace" onClick="replace_word();">
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplaceAll" value="Replace All" onClick="replace_all();">
+								</td>
+							</tr>
+							<tr>
+								<td colspan="3" height="5"></td>
+							</tr>
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" name="btnUndo" fckLang="DlgSpellBtnUndo" value="Undo" onClick="undo();"
+										disabled>
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td>
+									<!-- by FredCK
+									<input class="buttonDefault" type="button" value="Close" onClick="end_spell();">
+									-->
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(revision 838)
@@ -0,0 +1,71 @@
+
+<script>
+
+var wordWindow = null;
+var controlWindow = null;
+
+function init_spell( spellerWindow ) {
+
+	if( spellerWindow ) {
+		if( spellerWindow.windowType == "wordWindow" ) {
+			wordWindow = spellerWindow;
+		} else if ( spellerWindow.windowType == "controlWindow" ) {
+			controlWindow = spellerWindow;
+		}
+	}
+
+	if( controlWindow && wordWindow ) {
+		// populate the speller object and start it off!
+		var speller = opener.speller;
+		wordWindow.speller = speller;
+		speller.startCheck( wordWindow, controlWindow );
+	}
+}
+
+// encodeForPost
+function encodeForPost( str ) {
+	var s = new String( str );
+	s = encodeURIComponent( s );
+	// additionally encode single quotes to evade any PHP
+	// magic_quotes_gpc setting (it inserts escape characters and
+	// therefore skews the btye positions of misspelled words)
+	return s.replace( /\'/g, '%27' );
+}
+
+// post the text area data to the script that populates the speller
+function postWords() {
+	var bodyDoc = window.frames[0].document;
+	bodyDoc.open();
+	bodyDoc.write('<html>');
+	bodyDoc.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8">');
+	bodyDoc.write('<link rel="stylesheet" type="text/css" href="spellerStyle.css"/>');
+	if (opener) {
+		var speller = opener.speller;
+		bodyDoc.write('<body class="normalText" onLoad="document.forms[0].submit();">');
+		bodyDoc.write('<p>' + window.parent.FCKLang.DlgSpellProgress + '<\/p>');		// by FredCK
+		bodyDoc.write('<form action="'+speller.spellCheckScript+'" method="post">');
+		for( var i = 0; i < speller.textInputs.length; i++ ) {
+			bodyDoc.write('<input type="hidden" name="textinputs[]" value="'+encodeForPost(speller.textInputs[i].value)+'">');
+		}
+		bodyDoc.write('<\/form>');
+		bodyDoc.write('<\/body>');
+	} else {
+		bodyDoc.write('<body class="normalText">');
+		bodyDoc.write('<p><b>This page cannot be displayed<\/b><\/p><p>The window was not opened from another window.<\/p>');
+		bodyDoc.write('<\/body>');
+	}
+	bodyDoc.write('<\/html>');
+	bodyDoc.close();
+}
+</script>
+
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<head>
+<title>Speller Pages</title>
+</head>
+<frameset rows="*,201" onLoad="postWords();">
+<frame src="blank.html">
+<frame src="controls.html">
+</frameset>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html
===================================================================
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(revision 838)
@@ -0,0 +1,199 @@
+<?php
+header('Content-type: text/html; charset=utf-8');
+
+// The following variables values must reflect your installation needs.
+
+$aspell_prog	= '"C:\Program Files\Aspell\bin\aspell.exe"';	// by FredCK (for Windows)
+//$aspell_prog	= 'aspell';										// by FredCK (for Linux)
+
+$lang			= 'en_US';
+$aspell_opts	= "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt";		// by FredCK
+
+$tempfiledir	= "./";
+
+$spellercss		= '../spellerStyle.css';						// by FredCK
+$word_win_src	= '../wordWindow.js';							// by FredCK
+
+$textinputs		= $_POST['textinputs']; # array
+$input_separator = "A";
+
+# set the JavaScript variable to the submitted text.
+# textinputs is an array, each element corresponding to the (url-encoded)
+# value of the text control submitted for spell-checking
+function print_textinputs_var() {
+	global $textinputs;
+	foreach( $textinputs as $key=>$val ) {
+		# $val = str_replace( "'", "%27", $val );
+		echo "textinputs[$key] = decodeURIComponent(\"" . $val . "\");\n";
+	}
+}
+
+# make declarations for the text input index
+function print_textindex_decl( $text_input_idx ) {
+	echo "words[$text_input_idx] = [];\n";
+	echo "suggs[$text_input_idx] = [];\n";
+}
+
+# set an element of the JavaScript 'words' array to a misspelled word
+function print_words_elem( $word, $index, $text_input_idx ) {
+	echo "words[$text_input_idx][$index] = '" . escape_quote( $word ) . "';\n";
+}
+
+
+# set an element of the JavaScript 'suggs' array to a list of suggestions
+function print_suggs_elem( $suggs, $index, $text_input_idx ) {
+	echo "suggs[$text_input_idx][$index] = [";
+	foreach( $suggs as $key=>$val ) {
+		if( $val ) {
+			echo "'" . escape_quote( $val ) . "'";
+			if ( $key+1 < count( $suggs )) {
+				echo ", ";
+			}
+		}
+	}
+	echo "];\n";
+}
+
+# escape single quote
+function escape_quote( $str ) {
+	return preg_replace ( "/'/", "\\'", $str );
+}
+
+
+# handle a server-side error.
+function error_handler( $err ) {
+	echo "error = '" . preg_replace( "/['\\\\]/", "\\\\$0", $err ) . "';\n";
+}
+
+## get the list of misspelled words. Put the results in the javascript words array
+## for each misspelled word, get suggestions and put in the javascript suggs array
+function print_checker_results() {
+
+	global $aspell_prog;
+	global $aspell_opts;
+	global $tempfiledir;
+	global $textinputs;
+	global $input_separator;
+	$aspell_err = "";
+	# create temp file
+	$tempfile = tempnam( $tempfiledir, 'aspell_data_' );
+
+	# open temp file, add the submitted text.
+	if( $fh = fopen( $tempfile, 'w' )) {
+		for( $i = 0; $i < count( $textinputs ); $i++ ) {
+			$text = urldecode( $textinputs[$i] );
+
+			// Strip all tags for the text. (by FredCK - #339 / #681)
+			$text = preg_replace( "/<[^>]+>/", " ", $text ) ;
+
+			$lines = explode( "\n", $text );
+			fwrite ( $fh, "%\n" ); # exit terse mode
+			fwrite ( $fh, "^$input_separator\n" );
+			fwrite ( $fh, "!\n" ); # enter terse mode
+			foreach( $lines as $key=>$value ) {
+				# use carat on each line to escape possible aspell commands
+				fwrite( $fh, "^$value\n" );
+			}
+		}
+		fclose( $fh );
+
+		# exec aspell command - redirect STDERR to STDOUT
+		$cmd = "$aspell_prog $aspell_opts < $tempfile 2>&1";
+		if( $aspellret = shell_exec( $cmd )) {
+			$linesout = explode( "\n", $aspellret );
+			$index = 0;
+			$text_input_index = -1;
+			# parse each line of aspell return
+			foreach( $linesout as $key=>$val ) {
+				$chardesc = substr( $val, 0, 1 );
+				# if '&', then not in dictionary but has suggestions
+				# if '#', then not in dictionary and no suggestions
+				# if '*', then it is a delimiter between text inputs
+				# if '@' then version info
+				if( $chardesc == '&' || $chardesc == '#' ) {
+					$line = explode( " ", $val, 5 );
+					print_words_elem( $line[1], $index, $text_input_index );
+					if( isset( $line[4] )) {
+						$suggs = explode( ", ", $line[4] );
+					} else {
+						$suggs = array();
+					}
+					print_suggs_elem( $suggs, $index, $text_input_index );
+					$index++;
+				} elseif( $chardesc == '*' ) {
+					$text_input_index++;
+					print_textindex_decl( $text_input_index );
+					$index = 0;
+				} elseif( $chardesc != '@' && $chardesc != "" ) {
+					# assume this is error output
+					$aspell_err .= $val;
+				}
+			}
+			if( $aspell_err ) {
+				$aspell_err = "Error executing `$cmd`\\n$aspell_err";
+				error_handler( $aspell_err );
+			}
+		} else {
+			error_handler( "System error: Aspell program execution failed (`$cmd`)" );
+		}
+	} else {
+		error_handler( "System error: Could not open file '$tempfile' for writing" );
+	}
+
+	# close temp file, delete file
+	unlink( $tempfile );
+}
+
+
+?>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="<?php echo $spellercss ?>" />
+<script language="javascript" src="<?php echo $word_win_src ?>"></script>
+<script language="javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
+<?php
+
+print_textinputs_var();
+
+print_checker_results();
+
+?>
+
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.textInputs = textinputs;
+
+function init_spell() {
+	// check if any error occured during server-side processing
+	if( error ) {
+		alert( error );
+	} else {
+		// call the init_spell() function in the parent frameset
+		if (parent.frames.length) {
+			parent.init_spell( wordWindowObj );
+		} else {
+			alert('This page was loaded outside of a frameset. It might not display properly');
+		}
+	}
+}
+
+
+
+</script>
+
+</head>
+<!-- <body onLoad="init_spell();">		by FredCK -->
+<body onLoad="init_spell();" bgcolor="#ffffff">
+
+<script type="text/javascript">
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(revision 838)
@@ -0,0 +1,49 @@
+.blend {
+	font-family: courier new;
+	font-size: 10pt;
+	border: 0;
+	margin-bottom:-1;
+}
+.normalLabel {
+	font-size:8pt;
+}
+.normalText {
+	font-family:arial, helvetica, sans-serif;
+	font-size:10pt;
+	color:000000;
+	background-color:FFFFFF;
+}
+.plainText {
+	font-family: courier new, courier, monospace;
+	font-size: 10pt;
+	color:000000;
+	background-color:FFFFFF;
+}
+.controlWindowBody {
+	font-family:arial, helvetica, sans-serif;
+	font-size:8pt;
+	padding: 7px ;		/* by FredCK */
+	margin: 0px ;		/* by FredCK */
+	/* color:000000;				by FredCK */
+	/* background-color:DADADA;		by FredCK */
+}
+.readonlyInput {
+	background-color:DADADA;
+	color:000000;
+	font-size:8pt;
+	width:392px;
+}
+.textDefault {
+	font-size:8pt;
+	width: 200px;
+}
+.buttonDefault {
+	width:90px;
+	height:22px;
+	font-size:8pt;
+}
+.suggSlct {
+	width:200px;
+	margin-top:2;
+	font-size:8pt;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(revision 838)
@@ -0,0 +1,272 @@
+ï»¿////////////////////////////////////////////////////
+// wordWindow object
+////////////////////////////////////////////////////
+function wordWindow() {
+	// private properties
+	this._forms = [];
+
+	// private methods
+	this._getWordObject = _getWordObject;
+	//this._getSpellerObject = _getSpellerObject;
+	this._wordInputStr = _wordInputStr;
+	this._adjustIndexes = _adjustIndexes;
+	this._isWordChar = _isWordChar;
+	this._lastPos = _lastPos;
+
+	// public properties
+	this.wordChar = /[a-zA-Z]/;
+	this.windowType = "wordWindow";
+	this.originalSpellings = new Array();
+	this.suggestions = new Array();
+	this.checkWordBgColor = "pink";
+	this.normWordBgColor = "white";
+	this.text = "";
+	this.textInputs = new Array();
+	this.indexes = new Array();
+	//this.speller = this._getSpellerObject();
+
+	// public methods
+	this.resetForm = resetForm;
+	this.totalMisspellings = totalMisspellings;
+	this.totalWords = totalWords;
+	this.totalPreviousWords = totalPreviousWords;
+	//this.getTextObjectArray = getTextObjectArray;
+	this.getTextVal = getTextVal;
+	this.setFocus = setFocus;
+	this.removeFocus = removeFocus;
+	this.setText = setText;
+	//this.getTotalWords = getTotalWords;
+	this.writeBody = writeBody;
+	this.printForHtml = printForHtml;
+}
+
+function resetForm() {
+	if( this._forms ) {
+		for( var i = 0; i < this._forms.length; i++ ) {
+			this._forms[i].reset();
+		}
+	}
+	return true;
+}
+
+function totalMisspellings() {
+	var total_words = 0;
+	for( var i = 0; i < this.textInputs.length; i++ ) {
+		total_words += this.totalWords( i );
+	}
+	return total_words;
+}
+
+function totalWords( textIndex ) {
+	return this.originalSpellings[textIndex].length;
+}
+
+function totalPreviousWords( textIndex, wordIndex ) {
+	var total_words = 0;
+	for( var i = 0; i <= textIndex; i++ ) {
+		for( var j = 0; j < this.totalWords( i ); j++ ) {
+			if( i == textIndex && j == wordIndex ) {
+				break;
+			} else {
+				total_words++;
+			}
+		}
+	}
+	return total_words;
+}
+
+//function getTextObjectArray() {
+//	return this._form.elements;
+//}
+
+function getTextVal( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		return word.value;
+	}
+}
+
+function setFocus( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		if( word.type == "text" ) {
+			word.focus();
+			word.style.backgroundColor = this.checkWordBgColor;
+		}
+	}
+}
+
+function removeFocus( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		if( word.type == "text" ) {
+			word.blur();
+			word.style.backgroundColor = this.normWordBgColor;
+		}
+	}
+}
+
+function setText( textIndex, wordIndex, newText ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	var beginStr;
+	var endStr;
+	if( word ) {
+		var pos = this.indexes[textIndex][wordIndex];
+		var oldText = word.value;
+		// update the text given the index of the string
+		beginStr = this.textInputs[textIndex].substring( 0, pos );
+		endStr = this.textInputs[textIndex].substring(
+			pos + oldText.length,
+			this.textInputs[textIndex].length
+		);
+		this.textInputs[textIndex] = beginStr + newText + endStr;
+
+		// adjust the indexes on the stack given the differences in
+		// length between the new word and old word.
+		var lengthDiff = newText.length - oldText.length;
+		this._adjustIndexes( textIndex, wordIndex, lengthDiff );
+
+		word.size = newText.length;
+		word.value = newText;
+		this.removeFocus( textIndex, wordIndex );
+	}
+}
+
+
+function writeBody() {
+	var d = window.document;
+	var is_html = false;
+
+	d.open();
+
+	// iterate through each text input.
+	for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {
+		var end_idx = 0;
+		var begin_idx = 0;
+		d.writeln( '<form name="textInput'+txtid+'">' );
+		var wordtxt = this.textInputs[txtid];
+		this.indexes[txtid] = [];
+
+		if( wordtxt ) {
+			var orig = this.originalSpellings[txtid];
+			if( !orig ) break;
+
+			//!!! plain text, or HTML mode?
+			d.writeln( '<div class="plainText">' );
+			// iterate through each occurrence of a misspelled word.
+			for( var i = 0; i < orig.length; i++ ) {
+				// find the position of the current misspelled word,
+				// starting at the last misspelled word.
+				// and keep looking if it's a substring of another word
+				do {
+					begin_idx = wordtxt.indexOf( orig[i], end_idx );
+					end_idx = begin_idx + orig[i].length;
+					// word not found? messed up!
+					if( begin_idx == -1 ) break;
+					// look at the characters immediately before and after
+					// the word. If they are word characters we'll keep looking.
+					var before_char = wordtxt.charAt( begin_idx - 1 );
+					var after_char = wordtxt.charAt( end_idx );
+				} while (
+					this._isWordChar( before_char )
+					|| this._isWordChar( after_char )
+				);
+
+				// keep track of its position in the original text.
+				this.indexes[txtid][i] = begin_idx;
+
+				// write out the characters before the current misspelled word
+				for( var j = this._lastPos( txtid, i ); j < begin_idx; j++ ) {
+					// !!! html mode? make it html compatible
+					d.write( this.printForHtml( wordtxt.charAt( j )));
+				}
+
+				// write out the misspelled word.
+				d.write( this._wordInputStr( orig[i] ));
+
+				// if it's the last word, write out the rest of the text
+				if( i == orig.length-1 ){
+					d.write( printForHtml( wordtxt.substr( end_idx )));
+				}
+			}
+
+			d.writeln( '</div>' );
+
+		}
+		d.writeln( '</form>' );
+	}
+	//for ( var j = 0; j < d.forms.length; j++ ) {
+	//	alert( d.forms[j].name );
+	//	for( var k = 0; k < d.forms[j].elements.length; k++ ) {
+	//		alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );
+	//	}
+	//}
+
+	// set the _forms property
+	this._forms = d.forms;
+	d.close();
+}
+
+// return the character index in the full text after the last word we evaluated
+function _lastPos( txtid, idx ) {
+	if( idx > 0 )
+		return this.indexes[txtid][idx-1] + this.originalSpellings[txtid][idx-1].length;
+	else
+		return 0;
+}
+
+function printForHtml( n ) {
+	return n ;		// by FredCK
+/*
+	var htmlstr = n;
+	if( htmlstr.length == 1 ) {
+		// do simple case statement if it's just one character
+		switch ( n ) {
+			case "\n":
+				htmlstr = '<br/>';
+				break;
+			case "<":
+				htmlstr = '&lt;';
+				break;
+			case ">":
+				htmlstr = '&gt;';
+				break;
+		}
+		return htmlstr;
+	} else {
+		htmlstr = htmlstr.replace( /</g, '&lt' );
+		htmlstr = htmlstr.replace( />/g, '&gt' );
+		htmlstr = htmlstr.replace( /\n/g, '<br/>' );
+		return htmlstr;
+	}
+*/
+}
+
+function _isWordChar( letter ) {
+	if( letter.search( this.wordChar ) == -1 ) {
+		return false;
+	} else {
+		return true;
+	}
+}
+
+function _getWordObject( textIndex, wordIndex ) {
+	if( this._forms[textIndex] ) {
+		if( this._forms[textIndex].elements[wordIndex] ) {
+			return this._forms[textIndex].elements[wordIndex];
+		}
+	}
+	return null;
+}
+
+function _wordInputStr( word ) {
+	var str = '<input readonly ';
+	str += 'class="blend" type="text" value="' + word + '" size="' + word.length + '">';
+	return str;
+}
+
+function _adjustIndexes( textIndex, wordIndex, lengthDiff ) {
+	for( var i = wordIndex + 1; i < this.originalSpellings[textIndex].length; i++ ) {
+		this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff;
+	}
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_spellerpages.html	(revision 838)
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Spell Check dialog window.
+-->
+<html>
+	<head>
+		<title>Spell Check</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_spellerpages/spellerpages/spellChecker.js"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+
+window.onload = function()
+{
+	document.getElementById('txtHtml').value = oEditor.FCK.EditorDocument.body.innerHTML ;
+
+	var oSpeller = new spellChecker( document.getElementById('txtHtml') ) ;
+	oSpeller.spellCheckScript = oEditor.FCKConfig.SpellerPagesServerScript || 'server-scripts/spellchecker.php' ;
+	oSpeller.OnFinished = oSpeller_OnFinished ;
+	oSpeller.openChecker() ;
+}
+
+function OnSpellerControlsLoad( controlsWindow )
+{
+	// Translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( controlsWindow.document ) ;
+}
+
+function oSpeller_OnFinished( numberOCorrections )
+{
+	if ( numberOCorrections > 0 )
+		oEditor.FCK.SetData( document.getElementById('txtHtml').value ) ;
+	window.parent.Cancel() ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no" style="padding:0px;">
+		<input type="hidden" id="txtHtml" value="">
+		<iframe id="frmSpell" src="javascript:void(0)" name="spellchecker" width="100%" height="100%" frameborder="0"></iframe>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_checkbox.html	(revision 838)
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Checkbox dialog window.
+-->
+<html>
+	<head>
+		<title>Checkbox Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var dialog	= window.parent ;
+var oEditor	= dialog.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = dialog.Selection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'checkbox' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
+		GetE('txtSelected').checked	= oActiveEl.checked ;
+	}
+	else
+		oActiveEl = null ;
+
+	dialog.SetOkButton( true ) ;
+	dialog.SetAutoSize( true ) ;
+	SelectField( 'txtName' ) ;
+}
+
+function Ok()
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oActiveEl = CreateNamedElement( oEditor, oActiveEl, 'INPUT', {name: GetE('txtName').value, type: 'checkbox' } ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxName">Name</span><br>
+								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxValue">Value</span><br>
+								<input type="text" size="20" id="txtValue" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(revision 838)
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview shown in the "Document Properties" dialog window.
+-->
+<html>
+	<head>
+		<title>Document Properties - Preview</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<script language="javascript">
+
+var eBase = parent.FCK.EditorDocument.getElementsByTagName( 'BASE' ) ;
+if ( eBase.length > 0 && eBase[0].href.length > 0 )
+{
+	document.write( '<base href="' + eBase[0].href + '">' ) ;
+}
+
+window.onload = function()
+{
+	if ( typeof( parent.OnPreviewLoad ) == 'function' )
+		parent.OnPreviewLoad( window, document.body ) ;
+}
+
+function SetBaseHRef( baseHref )
+{
+	var eBase = document.createElement( 'BASE' ) ;
+	eBase.href = baseHref ;
+
+	var eHead = document.getElementsByTagName( 'HEAD' )[0] ;
+	eHead.appendChild( eBase ) ;
+}
+
+function SetLinkColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eLink').style.color = color ;
+	else
+		document.getElementById('eLink').style.color = window.document.linkColor ;
+}
+
+function SetVisitedColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eVisited').style.color = color ;
+	else
+		document.getElementById('eVisited').style.color = window.document.vlinkColor ;
+}
+
+function SetActiveColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eActive').style.color = color ;
+	else
+		document.getElementById('eActive').style.color = window.document.alinkColor ;
+}
+		</script>
+	</head>
+	<body>
+		<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td align="center" valign="middle">
+					Normal Text
+				</td>
+				<td id="eLink" align="center" valign="middle">
+					<u>Link Text</u>
+				</td>
+			</tr>
+			<tr>
+				<td id="eVisited" valign="middle" align="center">
+					<u>Visited Link</u>
+				</td>
+				<td id="eActive" valign="middle" align="center">
+					<u>Active Link</u>
+				</td>
+			</tr>
+		</table>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dialog/fck_docprops/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.original.html	(revision 838)
@@ -0,0 +1,385 @@
+ï»¿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Main page that holds the editor.
+-->
+<html>
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<!-- @Packager.RemoveLine
+	<meta http-equiv="Cache-Control" content="public">
+	@Packager.RemoveLine -->
+	<script type="text/javascript">
+
+// Save a reference to the default domain.
+var FCK_ORIGINAL_DOMAIN ;
+
+// Automatically detect the correct document.domain (#123).
+(function()
+{
+	var d = FCK_ORIGINAL_DOMAIN = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.parent.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+// Save a reference to the detected runtime domain.
+var FCK_RUNTIME_DOMAIN = document.domain ;
+
+var FCK_IS_CUSTOM_DOMAIN = ( FCK_ORIGINAL_DOMAIN != FCK_RUNTIME_DOMAIN ) ;
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ;
+
+/* @Packager.RemoveLine
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+@Packager.RemoveLine */
+// @Packager.Remove.Start
+
+LoadScript( '_source/fckconstants.js' ) ;
+LoadScript( '_source/fckjscoreextensions.js' ) ;
+
+if ( sSuffix == 'ie' )
+	LoadScript( '_source/classes/fckiecleanup.js' ) ;
+
+LoadScript( '_source/internals/fckbrowserinfo.js' ) ;
+LoadScript( '_source/internals/fckurlparams.js' ) ;
+LoadScript( '_source/classes/fckevents.js' ) ;
+LoadScript( '_source/classes/fckdataprocessor.js' ) ;
+LoadScript( '_source/internals/fck.js' ) ;
+LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckconfig.js' ) ;
+
+LoadScript( '_source/internals/fckdebug.js' ) ;
+LoadScript( '_source/internals/fckdomtools.js' ) ;
+LoadScript( '_source/internals/fcktools.js' ) ;
+LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
+LoadScript( '_source/fckeditorapi.js' ) ;
+LoadScript( '_source/classes/fckimagepreloader.js' ) ;
+LoadScript( '_source/internals/fckregexlib.js' ) ;
+LoadScript( '_source/internals/fcklistslib.js' ) ;
+LoadScript( '_source/internals/fcklanguagemanager.js' ) ;
+LoadScript( '_source/internals/fckxhtmlentities.js' ) ;
+LoadScript( '_source/internals/fckxhtml.js' ) ;
+LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckcodeformatter.js' ) ;
+LoadScript( '_source/internals/fckundo.js' ) ;
+LoadScript( '_source/classes/fckeditingarea.js' ) ;
+LoadScript( '_source/classes/fckkeystrokehandler.js' ) ;
+
+LoadScript( 'dtd/fck_xhtml10transitional.js' ) ;
+LoadScript( '_source/classes/fckstyle.js' ) ;
+LoadScript( '_source/internals/fckstyles.js' ) ;
+
+LoadScript( '_source/internals/fcklisthandler.js' ) ;
+LoadScript( '_source/classes/fckelementpath.js' ) ;
+LoadScript( '_source/classes/fckdomrange.js' ) ;
+LoadScript( '_source/classes/fckdocumentfragment_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckw3crange.js' ) ;
+LoadScript( '_source/classes/fckdomrange_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckdomrangeiterator.js' ) ;
+LoadScript( '_source/classes/fckenterkey.js' ) ;
+
+LoadScript( '_source/internals/fckdocumentprocessor.js' ) ;
+LoadScript( '_source/internals/fckselection.js' ) ;
+LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ;
+
+LoadScript( '_source/internals/fcktablehandler.js' ) ;
+LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckxml.js' ) ;
+LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ;
+
+LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;
+LoadScript( '_source/commandclasses/fck_othercommands.js' ) ;
+LoadScript( '_source/commandclasses/fckshowblocks.js' ) ;
+LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ;
+LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ;
+LoadScript( '_source/commandclasses/fcktablecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckfitwindow.js' ) ;
+LoadScript( '_source/commandclasses/fcklistcommands.js' ) ;
+LoadScript( '_source/commandclasses/fckjustifycommands.js' ) ;
+LoadScript( '_source/commandclasses/fckindentcommands.js' ) ;
+LoadScript( '_source/commandclasses/fckblockquotecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckcorestylecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckremoveformatcommand.js' ) ;
+LoadScript( '_source/internals/fckcommands.js' ) ;
+
+LoadScript( '_source/classes/fckpanel.js' ) ;
+LoadScript( '_source/classes/fckicon.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbutton.js' ) ;
+LoadScript( '_source/classes/fckspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;
+LoadScript( '_source/internals/fcktoolbaritems.js' ) ;
+LoadScript( '_source/classes/fcktoolbar.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbreak_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fcktoolbarset.js' ) ;
+LoadScript( '_source/internals/fckdialog.js' ) ;
+LoadScript( '_source/classes/fckmenuitem.js' ) ;
+LoadScript( '_source/classes/fckmenublock.js' ) ;
+LoadScript( '_source/classes/fckmenublockpanel.js' ) ;
+LoadScript( '_source/classes/fckcontextmenu.js' ) ;
+LoadScript( '_source/internals/fck_contextmenu.js' ) ;
+LoadScript( '_source/classes/fckhtmliterator.js' ) ;
+LoadScript( '_source/classes/fckplugin.js' ) ;
+LoadScript( '_source/internals/fckplugins.js' ) ;
+
+// @Packager.Remove.End
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Adobe AIR compatibility file.
+if ( FCKBrowserInfo.IsAIR )
+	LoadScript( 'js/fckadobeair.js' ) ;
+
+if ( FCKBrowserInfo.IsIE )
+{
+	// Remove IE mouse flickering.
+	try
+	{
+		document.execCommand( 'BackgroundImageCache', false, true ) ;
+	}
+	catch (e)
+	{
+		// We have been reported about loading problems caused by the above
+		// line. For safety, let's just ignore errors.
+	}
+
+	// Create the default cleanup object used by the editor.
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The first function to be called on selection change must the the styles
+// change checker, because the result of its processing may be used by another
+// functions listening to the same event.
+FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ;
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+var FCK_InternalCSS			= FCKConfig.FullBasePath + 'css/fck_internal.css' ;					// @Packager.RemoveLine
+var FCK_ShowTableBordersCSS	= FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ;	// @Packager.RemoveLine
+/* @Packager.RemoveLine
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
+var FCK_InternalCSS			= FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{width:19px;height:18px;background-image:url(images/fck_hiddenfield.gif);background-repeat:no-repeat;vertical-align:text-bottom;background-position:center center}.FCK__ShowBlocks p,.FCK__ShowBlocks div,.FCK__ShowBlocks pre,.FCK__ShowBlocks address,.FCK__ShowBlocks blockquote,.FCK__ShowBlocks h1,.FCK__ShowBlocks h2,.FCK__ShowBlocks h3,.FCK__ShowBlocks h4,.FCK__ShowBlocks h5,.FCK__ShowBlocks h6{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px;padding-left:8px}.FCK__ShowBlocks p{background-image:url(images/block_p.png)}.FCK__ShowBlocks div{background-image:url(images/block_div.png)}.FCK__ShowBlocks pre{background-image:url(images/block_pre.png)}.FCK__ShowBlocks address{background-image:url(images/block_address.png)}.FCK__ShowBlocks blockquote{background-image:url(images/block_blockquote.png)}.FCK__ShowBlocks h1{background-image:url(images/block_h1.png)}.FCK__ShowBlocks h2{background-image:url(images/block_h2.png)}.FCK__ShowBlocks h3{background-image:url(images/block_h3.png)}.FCK__ShowBlocks h4{background-image:url(images/block_h4.png)}.FCK__ShowBlocks h5{background-image:url(images/block_h5.png)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
+var FCK_ShowTableBordersCSS	= FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'table:not([border]),table:not([border]) > tr > td,table:not([border]) > tr > th,table:not([border]) > tbody > tr > td,table:not([border]) > tbody > tr > th,table:not([border]) > thead > tr > td,table:not([border]) > thead > tr > th,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > tr > th,table[border=\"0\"],table[border=\"0\"] > tr > td,table[border=\"0\"] > tr > th,table[border=\"0\"] > tbody > tr > td,table[border=\"0\"] > tbody > tr > th,table[border=\"0\"] > thead > tr > td,table[border=\"0\"] > thead > tr > th,table[border=\"0\"] > tfoot > tr > td,table[border=\"0\"] > tfoot > tr > th{border:#d3d3d3 1px dotted}' ) ;
+@Packager.RemoveLine */
+
+// Popup the debug window if debug mode is set to true. It guarantees that the
+// first debug message will not be lost.
+if ( FCKConfig.Debug )
+	FCKDebug._GetWindow() ;
+
+// Load the active skin CSS.
+document.write( FCKTools.GetStyleHtml( FCKConfig.SkinEditorCSS ) ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		_AttachFormSubmitToAPI() ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;
+	}
+}
+
+// Gecko browsers doesn't calculate well the IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko && !FCKBrowserInfo.IsOpera )
+{
+	window.onresize = function( e )
+	{
+		// Running in Chrome makes the window receive the event including subframes.
+		// we care only about this window. Ticket #1642.
+		// #2002: The originalTarget from the event can be the current document, the window, or the editing area.
+		if ( e && e.originalTarget !== document && e.originalTarget !== window && (!e.originalTarget.ownerDocument || e.originalTarget.ownerDocument != document ))
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement = oCell.firstChild ;
+		if ( eInnerElement )
+		{
+			eInnerElement.style.height = '0px' ;
+			eInnerElement.style.height = ( oCell.scrollHeight - 2 ) + 'px' ;
+		}
+	}
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td id="xEditingArea" valign="top" style="height: 100%"></td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fo.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fo.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fo.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Faroese language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Fjal amboÃ°sbjÃ¡lkan",
+ToolbarExpand		: "VÃ­s amboÃ°sbjÃ¡lkan",
+
+// Toolbar Items and Context Menu
+Save				: "Goym",
+NewPage				: "NÃ½ggj sÃ­Ã°a",
+Preview				: "FrumsÃ½ning",
+Cut					: "Kvett",
+Copy				: "Avrita",
+Paste				: "Innrita",
+PasteText			: "Innrita reinan tekst",
+PasteWord			: "Innrita frÃ¡ Word",
+Print				: "Prenta",
+SelectAll			: "Markera alt",
+RemoveFormat		: "Strika sniÃ°geving",
+InsertLinkLbl		: "TilknÃ½ti",
+InsertLink			: "Ger/broyt tilknÃ½ti",
+RemoveLink			: "Strika tilknÃ½ti",
+Anchor				: "Ger/broyt marknastein",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Myndir",
+InsertImage			: "Set inn/broyt mynd",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Set inn/broyt Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Set inn/broyt tabell",
+InsertLineLbl		: "Linja",
+InsertLine			: "Ger vatnrÃ¦tta linju",
+InsertSpecialCharLbl: "Sertekn",
+InsertSpecialChar	: "Set inn sertekn",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Set inn Smiley",
+About				: "Um FCKeditor",
+Bold				: "Feit skrift",
+Italic				: "SkrÃ¡skrift",
+Underline			: "UndirstrikaÃ°",
+StrikeThrough		: "YvirstrikaÃ°",
+Subscript			: "LÃ¦kkaÃ° skrift",
+Superscript			: "HÃ¦kkaÃ° skrift",
+LeftJustify			: "Vinstrasett",
+CenterJustify		: "MiÃ°sett",
+RightJustify		: "HÃ¸grasett",
+BlockJustify		: "Javnir tekstkantar",
+DecreaseIndent		: "Minka reglubrotarinntriv",
+IncreaseIndent		: "Ã˜kja reglubrotarinntriv",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Angra",
+Redo				: "Vend aftur",
+NumberedListLbl		: "Talmerktur listi",
+NumberedList		: "Ger/strika talmerktan lista",
+BulletedListLbl		: "Punktmerktur listi",
+BulletedList		: "Ger/strika punktmerktan lista",
+ShowTableBorders	: "VÃ­s tabellbordar",
+ShowDetails			: "VÃ­s Ã­ smÃ¡lutum",
+Style				: "Typografi",
+FontFormat			: "SkriftsniÃ°",
+Font				: "Skrift",
+FontSize			: "SkriftstÃ¸dd",
+TextColor			: "Tekstlitur",
+BGColor				: "Bakgrundslitur",
+Source				: "Kelda",
+Find				: "Leita",
+Replace				: "Yvirskriva",
+SpellCheck			: "Kanna stavseting",
+UniversalKeyboard	: "KnappaborÃ°",
+PageBreakLbl		: "SÃ­Ã°uskift",
+PageBreak			: "Ger sÃ­Ã°uskift",
+
+Form			: "Formur",
+Checkbox		: "Flugubein",
+RadioButton		: "RadioknÃ¸ttur",
+TextField		: "Tekstteigur",
+Textarea		: "TekstumrÃ¡Ã°i",
+HiddenField		: "Fjaldur teigur",
+Button			: "KnÃ¸ttur",
+SelectionField	: "ValskrÃ¡",
+ImageButton		: "MyndaknÃ¸ttur",
+
+FitWindow		: "Set tekstviÃ°gera til fulla stÃ¸dd",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Broyt tilknÃ½ti",
+CellCM				: "Meski",
+RowCM				: "RaÃ°",
+ColumnCM			: "Kolonna",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Strika rÃ¸Ã°ir",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Strika kolonnur",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Strika meskar",
+MergeCells			: "FlÃ¦tta meskar",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Strika tabell",
+CellProperties		: "Meskueginleikar",
+TableProperties		: "Tabelleginleikar",
+ImageProperties		: "Myndaeginleikar",
+FlashProperties		: "Flash eginleikar",
+
+AnchorProp			: "Eginleikar fyri marknastein",
+ButtonProp			: "Eginleikar fyri knÃ¸tt",
+CheckboxProp		: "Eginleikar fyri flugubein",
+HiddenFieldProp		: "Eginleikar fyri fjaldan teig",
+RadioButtonProp		: "Eginleikar fyri radioknÃ¸tt",
+ImageButtonProp		: "Eginleikar fyri myndaknÃ¸tt",
+TextFieldProp		: "Eginleikar fyri tekstteig",
+SelectionFieldProp	: "Eginleikar fyri valskrÃ¡",
+TextareaProp		: "Eginleikar fyri tekstumrÃ¡Ã°i",
+FormProp			: "Eginleikar fyri Form",
+
+FontFormats			: "Vanligt;SniÃ°giviÃ°;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML verÃ°ur viÃ°gjÃ¸rt. BÃ­Ã°a viÃ°...",
+Done				: "LiÃ°ugt",
+PasteWordConfirm	: "Teksturin, royndur verÃ°ur at seta inn, tykist at stava frÃ¡ Word. Vilt tÃº reinsa tekstin, Ã¡Ã°renn hann verÃ°ur settur inn?",
+NotCompatiblePaste	: "Hetta er bert tÃ¸kt Ã­ Internet Explorer 5.5 og nÃ½ggjari. Vilt tÃº seta tekstin inn kortini - Ã³reinsaÃ°an?",
+UnknownToolbarItem	: "Ã“kendur lutur Ã­ amboÃ°sbjÃ¡lkanum \"%1\"",
+UnknownCommand		: "Ã“kend kommando \"%1\"",
+NotImplemented		: "Hetta er ikki tÃ¸kt Ã­ hesi ÃºtgÃ¡vuni",
+UnknownToolbarSet	: "AmboÃ°sbjÃ¡lkin \"%1\" finst ikki",
+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.",
+BrowseServerBlocked : "AmbÃ¦tarakagin kundi ikki opnast. Tryggja tÃ¦r, at allar pop-up forÃ°ingar eru Ã³virknar.",
+DialogBlocked		: "TaÃ° eyÃ°naÃ°ist ikki at opna samskiftisrÃºtin. Tryggja tÃ¦r, at allar pop-up forÃ°ingar eru Ã³virknar.",
+
+// Dialogs
+DlgBtnOK			: "GÃ³Ã°kent",
+DlgBtnCancel		: "AvlÃ½st",
+DlgBtnClose			: "Lat aftur",
+DlgBtnBrowseServer	: "AmbÃ¦tarakagi",
+DlgAdvancedTag		: "FjÃ¸lbroytt",
+DlgOpOther			: "<AnnaÃ°>",
+DlgInfoTab			: "UpplÃ½singar",
+DlgAlertUrl			: "Vinarliga veit ein URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikki sett>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "TekstkÃ³s",
+DlgGenLangDirLtr	: "FrÃ¡ vinstru til hÃ¸gru (LTR)",
+DlgGenLangDirRtl	: "FrÃ¡ hÃ¸gru til vinstru (RTL)",
+DlgGenLangCode		: "MÃ¡lkoda",
+DlgGenAccessKey		: "Snarvegisknappur",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Inntriv indeks",
+DlgGenLongDescr		: "VÃ­Ã°kaÃ° URL frÃ¡greiÃ°ing",
+DlgGenClass			: "Typografi klassar",
+DlgGenTitle			: "VegleiÃ°andi heiti",
+DlgGenContType		: "VegleiÃ°andi innihaldsslag",
+DlgGenLinkCharset	: "AtknÃ½tt teknsett",
+DlgGenStyle			: "Typografi",
+
+// Image Dialog
+DlgImgTitle			: "Myndaeginleikar",
+DlgImgInfoTab		: "MyndaupplÃ½singar",
+DlgImgBtnUpload		: "Send til ambÃ¦taran",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Send",
+DlgImgAlt			: "Alternativur tekstur",
+DlgImgWidth			: "Breidd",
+DlgImgHeight		: "HÃ¦dd",
+DlgImgLockRatio		: "LÃ¦s lutfalliÃ°",
+DlgBtnResetSize		: "UpprunastÃ¸dd",
+DlgImgBorder		: "Bordi",
+DlgImgHSpace		: "HÃ¸gri breddi",
+DlgImgVSpace		: "Vinstri breddi",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "Vinstra",
+DlgImgAlignAbsBottom: "Abs botnur",
+DlgImgAlignAbsMiddle: "Abs miÃ°ja",
+DlgImgAlignBaseline	: "Basislinja",
+DlgImgAlignBottom	: "Botnur",
+DlgImgAlignMiddle	: "MiÃ°ja",
+DlgImgAlignRight	: "HÃ¸gra",
+DlgImgAlignTextTop	: "Tekst toppur",
+DlgImgAlignTop		: "Ovast",
+DlgImgPreview		: "FrumsÃ½ning",
+DlgImgAlertUrl		: "Rita slÃ³Ã°ina til myndina",
+DlgImgLinkTab		: "TilknÃ½ti",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash eginleikar",
+DlgFlashChkPlay		: "AvspÃ¦lingin byrjar sjÃ¡lv",
+DlgFlashChkLoop		: "EndurspÃ¦l",
+DlgFlashChkMenu		: "Ger Flash skrÃ¡ virkna",
+DlgFlashScale		: "Skalering",
+DlgFlashScaleAll	: "VÃ­s alt",
+DlgFlashScaleNoBorder	: "Eingin bordi",
+DlgFlashScaleFit	: "Neyv skalering",
+
+// Link Dialog
+DlgLnkWindowTitle	: "TilknÃ½ti",
+DlgLnkInfoTab		: "TilknÃ½tis upplÃ½singar",
+DlgLnkTargetTab		: "MÃ¡l",
+
+DlgLnkType			: "TilknÃ½tisslag",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "TilknÃ½ti til marknastein Ã­ tekstinum",
+DlgLnkTypeEMail		: "Teldupostur",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<AnnaÃ°>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vel ein marknastein",
+DlgLnkAnchorByName	: "Eftir navni Ã¡ marknasteini",
+DlgLnkAnchorById	: "Eftir element Id",
+DlgLnkNoAnchors		: "(Eingir marknasteinar eru Ã­ hesum dokumentiÃ°)",
+DlgLnkEMail			: "Teldupost-adressa",
+DlgLnkEMailSubject	: "Evni",
+DlgLnkEMailBody		: "BreyÃ°tekstur",
+DlgLnkUpload		: "Send til ambÃ¦taran",
+DlgLnkBtnUpload		: "Send til ambÃ¦taran",
+
+DlgLnkTarget		: "MÃ¡l",
+DlgLnkTargetFrame	: "<ramma>",
+DlgLnkTargetPopup	: "<popup vindeyga>",
+DlgLnkTargetBlank	: "NÃ½tt vindeyga (_blank)",
+DlgLnkTargetParent	: "Upphavliga vindeygaÃ° (_parent)",
+DlgLnkTargetSelf	: "Sama vindeygaÃ° (_self)",
+DlgLnkTargetTop		: "Alt vindeygaÃ° (_top)",
+DlgLnkTargetFrameName	: "VÃ­s navn vindeygans",
+DlgLnkPopWinName	: "Popup vindeygans navn",
+DlgLnkPopWinFeat	: "Popup vindeygans vÃ­Ã°kaÃ°u eginleikar",
+DlgLnkPopResize		: "Kann broyta stÃ¸dd",
+DlgLnkPopLocation	: "Adressulinja",
+DlgLnkPopMenu		: "SkrÃ¡bjÃ¡lki",
+DlgLnkPopScroll		: "RullibjÃ¡lki",
+DlgLnkPopStatus		: "StÃ¸Ã°ufrÃ¡greiÃ°ingarbjÃ¡lki",
+DlgLnkPopToolbar	: "AmboÃ°sbjÃ¡lki",
+DlgLnkPopFullScrn	: "Fullur skermur (IE)",
+DlgLnkPopDependent	: "BundiÃ° (Netscape)",
+DlgLnkPopWidth		: "Breidd",
+DlgLnkPopHeight		: "HÃ¦dd",
+DlgLnkPopLeft		: "FrÃ¡stÃ¸Ã°a frÃ¡ vinstru",
+DlgLnkPopTop		: "FrÃ¡stÃ¸Ã°a frÃ¡ Ã­erva",
+
+DlnLnkMsgNoUrl		: "Vinarliga skriva tilknÃ½ti (URL)",
+DlnLnkMsgNoEMail	: "Vinarliga skriva teldupost-adressu",
+DlnLnkMsgNoAnchor	: "Vinarliga vel marknastein",
+DlnLnkMsgInvPopName	: "Popup navniÃ° mÃ¡ byrja viÃ° bÃ³kstavi og mÃ¡ ikki hava millumrÃºm",
+
+// Color Dialog
+DlgColorTitle		: "Vel lit",
+DlgColorBtnClear	: "Strika alt",
+DlgColorHighlight	: "Framhevja",
+DlgColorSelected	: "Valt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vel Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Vel sertekn",
+
+// Table Dialog
+DlgTableTitle		: "Eginleikar fyri tabell",
+DlgTableRows		: "RÃ¸Ã°ir",
+DlgTableColumns		: "Kolonnur",
+DlgTableBorder		: "Bordabreidd",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Einki valt>",
+DlgTableAlignLeft	: "Vinstrasett",
+DlgTableAlignCenter	: "MiÃ°sett",
+DlgTableAlignRight	: "HÃ¸grasett",
+DlgTableWidth		: "Breidd",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "HÃ¦dd",
+DlgTableCellSpace	: "FjarstÃ¸Ã°a millum meskar",
+DlgTableCellPad		: "Meskubreddi",
+DlgTableCaption		: "TabellfrÃ¡greiÃ°ing",
+DlgTableSummary		: "SamandrÃ¡ttur",
+
+// Table Cell Dialog
+DlgCellTitle		: "Mesku eginleikar",
+DlgCellWidth		: "Breidd",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "HÃ¦dd",
+DlgCellWordWrap		: "OrÃ°kloyving",
+DlgCellWordWrapNotSet	: "<Einki valt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "VatnrÃ¸tt justering",
+DlgCellHorAlignNotSet	: "<Einki valt>",
+DlgCellHorAlignLeft	: "Vinstrasett",
+DlgCellHorAlignCenter	: "MiÃ°sett",
+DlgCellHorAlignRight: "HÃ¸grasett",
+DlgCellVerAlign		: "LodrÃ¸tt justering",
+DlgCellVerAlignNotSet	: "<Ikki sett>",
+DlgCellVerAlignTop	: "Ovast",
+DlgCellVerAlignMiddle	: "MiÃ°jan",
+DlgCellVerAlignBottom	: "NiÃ°ast",
+DlgCellVerAlignBaseline	: "Basislinja",
+DlgCellRowSpan		: "RÃ¸Ã°ir, meskin fevnir um",
+DlgCellCollSpan		: "Kolonnur, meskin fevnir um",
+DlgCellBackColor	: "Bakgrundslitur",
+DlgCellBorderColor	: "Litur Ã¡ borda",
+DlgCellBtnSelect	: "Vel...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Leititeksturin varÃ° ikki funnin",
+
+// Replace Dialog
+DlgReplaceTitle			: "Yvirskriva",
+DlgReplaceFindLbl		: "Finn:",
+DlgReplaceReplaceLbl	: "Yvirskriva viÃ°:",
+DlgReplaceCaseChk		: "Munur Ã¡ stÃ³rum og smÃ¡Ã°um bÃ³kstavum",
+DlgReplaceReplaceBtn	: "Yvirskriva",
+DlgReplaceReplAllBtn	: "Yvirskriva alt",
+DlgReplaceWordChk		: "Bert heil orÃ°",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Trygdaruppseting alnÃ³tskagans forÃ°ar tekstviÃ°geranum Ã­ at kvetta tekstin. vinarliga nÃ½t knappaborÃ°iÃ° til at kvetta tekstin (CTRL+X).",
+PasteErrorCopy	: "Trygdaruppseting alnÃ³tskagans forÃ°ar tekstviÃ°geranum Ã­ at avrita tekstin. Vinarliga nÃ½t knappaborÃ°iÃ° til at avrita tekstin (CTRL+C).",
+
+PasteAsText		: "Innrita som reinan tekst",
+PasteFromWord	: "Innrita fra Word",
+
+DlgPasteMsg2	: "Vinarliga koyr tekstin Ã­ hendan rÃºtin viÃ° knappaborÃ°inum (<strong>CTRL+V</strong>) og klikk Ã¡ <strong>GÃ³Ã°tak</strong>.",
+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
+DlgPasteIgnoreFont		: "ForfjÃ³na Font definitiÃ³nirnar",
+DlgPasteRemoveStyles	: "Strika Styles definitiÃ³nir",
+
+// Color Picker
+ColorAutomatic	: "Av sÃ¦r sjÃ¡lvum",
+ColorMoreColors	: "Fleiri litir...",
+
+// Document Properties
+DocProps		: "Eginleikar fyri dokument",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Eginleikar fyri marknastein",
+DlgAnchorName		: "Heiti marknasteinsins",
+DlgAnchorErrorName	: "Vinarliga rita marknasteinsins heiti",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Finst ikki Ã­ orÃ°abÃ³kini",
+DlgSpellChangeTo		: "Broyt til",
+DlgSpellBtnIgnore		: "ForfjÃ³na",
+DlgSpellBtnIgnoreAll	: "ForfjÃ³na alt",
+DlgSpellBtnReplace		: "Yvirskriva",
+DlgSpellBtnReplaceAll	: "Yvirskriva alt",
+DlgSpellBtnUndo			: "Angra",
+DlgSpellNoSuggestions	: "- Einki uppskot -",
+DlgSpellProgress		: "RÃ¦ttstavarin arbeiÃ°ir...",
+DlgSpellNoMispell		: "RÃ¦ttstavarain liÃ°ugur: Eingin feilur funnin",
+DlgSpellNoChanges		: "RÃ¦ttstavarain liÃ°ugur: Einki orÃ° varÃ° broytt",
+DlgSpellOneChange		: "RÃ¦ttstavarain liÃ°ugur: Eitt orÃ° er broytt",
+DlgSpellManyChanges		: "RÃ¦ttstavarain liÃ°ugur: %1 orÃ° broytt",
+
+IeSpellDownload			: "RÃ¦ttstavarin er ikki tÃ¸kur Ã­ tekstviÃ°geranum. Vilt tÃº heinta hann nÃº?",
+
+// Button Dialog
+DlgButtonText		: "Tekstur",
+DlgButtonType		: "Slag",
+DlgButtonTypeBtn	: "KnÃ¸ttur",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstilla",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "VirÃ°i",
+DlgCheckboxSelected	: "Valt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Hending",
+DlgFormMethod	: "HÃ¡ttur",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "VirÃ°i",
+DlgSelectSize		: "StÃ¸dd",
+DlgSelectLines		: "Linjur",
+DlgSelectChkMulti	: "Loyv fleiri valmÃ¸guleikum samstundis",
+DlgSelectOpAvail	: "TÃ¸kir mÃ¸guleikar",
+DlgSelectOpText		: "Tekstur",
+DlgSelectOpValue	: "VirÃ°i",
+DlgSelectBtnAdd		: "Legg afturat",
+DlgSelectBtnModify	: "Broyt",
+DlgSelectBtnUp		: "Upp",
+DlgSelectBtnDown	: "NiÃ°ur",
+DlgSelectBtnSetValue : "Set sum valt virÃ°i",
+DlgSelectBtnDelete	: "Strika",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "kolonnur",
+DlgTextareaRows	: "rÃ¸Ã°ir",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "VirÃ°i",
+DlgTextCharWidth	: "Breidd (sjÃ³nlig tekn)",
+DlgTextMaxChars		: "Mest loyvdu tekn",
+DlgTextType			: "Slag",
+DlgTextTypeText		: "Tekstur",
+DlgTextTypePass		: "LoyniorÃ°",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "VirÃ°i",
+
+// Bulleted List Dialog
+BulletedListProp	: "Eginleikar fyri punktmerktan lista",
+NumberedListProp	: "Eginleikar fyri talmerktan lista",
+DlgLstStart			: "Byrjan",
+DlgLstType			: "Slag",
+DlgLstTypeCircle	: "Sirkul",
+DlgLstTypeDisc		: "Fyltur sirkul",
+DlgLstTypeSquare	: "FjÃ³rhyrningur",
+DlgLstTypeNumbers	: "Talmerkt (1, 2, 3)",
+DlgLstTypeLCase		: "SmÃ¡ir bÃ³kstavir (a, b, c)",
+DlgLstTypeUCase		: "StÃ³rir bÃ³kstavir (A, B, C)",
+DlgLstTypeSRoman	: "SmÃ¡ rÃ³maratÃ¸l (i, ii, iii)",
+DlgLstTypeLRoman	: "StÃ³r rÃ³maratÃ¸l (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generelt",
+DlgDocBackTab		: "Bakgrund",
+DlgDocColorsTab		: "Litir og breddar",
+DlgDocMetaTab		: "META-upplÃ½singar",
+
+DlgDocPageTitle		: "SÃ­Ã°uheiti",
+DlgDocLangDir		: "TekstkÃ³s",
+DlgDocLangDirLTR	: "FrÃ¡ vinstru mÃ³ti hÃ¸gru (LTR)",
+DlgDocLangDirRTL	: "FrÃ¡ hÃ¸gru mÃ³ti vinstru (RTL)",
+DlgDocLangCode		: "MÃ¡lkoda",
+DlgDocCharSet		: "Teknsett koda",
+DlgDocCharSetCE		: "MiÃ°europa",
+DlgDocCharSetCT		: "Kinesiskt traditionelt (Big5)",
+DlgDocCharSetCR		: "Cyrilliskt",
+DlgDocCharSetGR		: "Grikst",
+DlgDocCharSetJP		: "Japanskt",
+DlgDocCharSetKR		: "Koreanskt",
+DlgDocCharSetTR		: "Turkiskt",
+DlgDocCharSetUN		: "UNICODE (UTF-8)",
+DlgDocCharSetWE		: "Vestureuropa",
+DlgDocCharSetOther	: "Onnur teknsett koda",
+
+DlgDocDocType		: "Dokumentslag yvirskrift",
+DlgDocDocTypeOther	: "AnnaÃ° dokumentslag yvirskrift",
+DlgDocIncXHTML		: "ViÃ°fest XHTML deklaratiÃ³nir",
+DlgDocBgColor		: "Bakgrundslitur",
+DlgDocBgImage		: "LeiÃ° til bakgrundsmynd (URL)",
+DlgDocBgNoScroll	: "LÃ¦st bakgrund (rullar ikki)",
+DlgDocCText			: "Tekstur",
+DlgDocCLink			: "TilknÃ½ti",
+DlgDocCVisited		: "VitjaÃ°i tilknÃ½ti",
+DlgDocCActive		: "Virkin tilknÃ½ti",
+DlgDocMargins		: "SÃ­Ã°ubreddar",
+DlgDocMaTop			: "Ovast",
+DlgDocMaLeft		: "Vinstra",
+DlgDocMaRight		: "HÃ¸gra",
+DlgDocMaBottom		: "NiÃ°ast",
+DlgDocMeIndex		: "Dokument index lyklaorÃ° (sundurbÃ½tt viÃ° komma)",
+DlgDocMeDescr		: "DokumentlÃ½sing",
+DlgDocMeAuthor		: "HÃ¸vundur",
+DlgDocMeCopy		: "UpphavsrÃ¦ttindi",
+DlgDocPreview		: "FrumsÃ½ning",
+
+// Templates Dialog
+Templates			: "SkabelÃ³nir",
+DlgTemplatesTitle	: "InnihaldsskabelÃ³nir",
+DlgTemplatesSelMsg	: "Vinarliga vel ta skabelÃ³n, iÃ° skal opnast Ã­ tekstviÃ°geranum<br>(Hetta yvirskrivar nÃºverandi innihald):",
+DlgTemplatesLoading	: "Heinti yvirlit yvir skabelÃ³nir. Vinarliga bÃ­Ã°a viÃ°...",
+DlgTemplatesNoTpl	: "(Ongar skabelÃ³nir tÃ¸kar)",
+DlgTemplatesReplace	: "Yvirskriva nÃºverandi innihald",
+
+// About Dialog
+DlgAboutAboutTab	: "Um",
+DlgAboutBrowserInfoTab	: "UpplÃ½singar um alnÃ³tskagan",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "Fyri fleiri upplÃ½singar, far til"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bs.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bs.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bs.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bosnian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skupi trake sa alatima",
+ToolbarExpand		: "Otvori trake sa alatima",
+
+// Toolbar Items and Context Menu
+Save				: "Snimi",
+NewPage				: "Novi dokument",
+Preview				: "PrikaÅ¾i",
+Cut					: "IzreÅ¾i",
+Copy				: "Kopiraj",
+Paste				: "Zalijepi",
+PasteText			: "Zalijepi kao obiÃ¨an tekst",
+PasteWord			: "Zalijepi iz Word-a",
+Print				: "Å tampaj",
+SelectAll			: "Selektuj sve",
+RemoveFormat		: "PoniÅ¡ti format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Ubaci/Izmjeni link",
+RemoveLink			: "IzbriÅ¡i link",
+Anchor				: "Insert/Edit Anchor",	//MISSING
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Slika",
+InsertImage			: "Ubaci/Izmjeni sliku",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Tabela",
+InsertTable			: "Ubaci/Izmjeni tabelu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Ubaci horizontalnu liniju",
+InsertSpecialCharLbl: "Specijalni karakter",
+InsertSpecialChar	: "Ubaci specijalni karater",
+InsertSmileyLbl		: "SmjeÅ¡ko",
+InsertSmiley		: "Ubaci smjeÅ¡ka",
+About				: "O FCKeditor-u",
+Bold				: "Boldiraj",
+Italic				: "Ukosi",
+Underline			: "Podvuci",
+StrikeThrough		: "Precrtaj",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Lijevo poravnanje",
+CenterJustify		: "Centralno poravnanje",
+RightJustify		: "Desno poravnanje",
+BlockJustify		: "Puno poravnanje",
+DecreaseIndent		: "Smanji uvod",
+IncreaseIndent		: "PoveÃ¦aj uvod",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Vrati",
+Redo				: "Ponovi",
+NumberedListLbl		: "Numerisana lista",
+NumberedList		: "Ubaci/Izmjeni numerisanu listu",
+BulletedListLbl		: "Lista",
+BulletedList		: "Ubaci/Izmjeni listu",
+ShowTableBorders	: "PokaÅ¾i okvire tabela",
+ShowDetails			: "PokaÅ¾i detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "VeliÃ¨ina",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "HTML kÃ´d",
+Find				: "NaÃ°i",
+Replace				: "Zamjeni",
+SpellCheck			: "Check Spelling",	//MISSING
+UniversalKeyboard	: "Universal Keyboard",	//MISSING
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Form",	//MISSING
+Checkbox		: "Checkbox",	//MISSING
+RadioButton		: "Radio Button",	//MISSING
+TextField		: "Text Field",	//MISSING
+Textarea		: "Textarea",	//MISSING
+HiddenField		: "Hidden Field",	//MISSING
+Button			: "Button",	//MISSING
+SelectionField	: "Selection Field",	//MISSING
+ImageButton		: "Image Button",	//MISSING
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Izmjeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "BriÅ¡i redove",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "BriÅ¡i kolone",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "BriÅ¡i Ã¦elije",
+MergeCells			: "Spoji Ã¦elije",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Svojstva Ã¦elije",
+TableProperties		: "Svojstva tabele",
+ImageProperties		: "Svojstva slike",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Anchor Properties",	//MISSING
+ButtonProp			: "Button Properties",	//MISSING
+CheckboxProp		: "Checkbox Properties",	//MISSING
+HiddenFieldProp		: "Hidden Field Properties",	//MISSING
+RadioButtonProp		: "Radio Button Properties",	//MISSING
+ImageButtonProp		: "Image Button Properties",	//MISSING
+TextFieldProp		: "Text Field Properties",	//MISSING
+SelectionFieldProp	: "Selection Field Properties",	//MISSING
+TextareaProp		: "Textarea Properties",	//MISSING
+FormProp			: "Form Properties",	//MISSING
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesiram XHTML. Molim saÃ¨ekajte...",
+Done				: "Gotovo",
+PasteWordConfirm	: "Tekst koji Å¾elite zalijepiti Ã¨ini se da je kopiran iz Worda. Da li Å¾elite da se prvo oÃ¨isti?",
+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?",
+UnknownToolbarItem	: "Nepoznata stavka sa trake sa alatima \"%1\"",
+UnknownCommand		: "Nepoznata komanda \"%1\"",
+NotImplemented		: "Komanda nije implementirana",
+UnknownToolbarSet	: "Traka sa alatima \"%1\" ne postoji",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Odustani",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "Browse Server",	//MISSING
+DlgAdvancedTag		: "Naprednije",
+DlgOpOther			: "<Other>",	//MISSING
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije podeÅ¡eno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smjer pisanja",
+DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na lijevo (RTL)",
+DlgGenLangCode		: "JeziÃ¨ni kÃ´d",
+DlgGenAccessKey		: "Pristupna tipka",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "DugaÃ¨ki opis URL-a",
+DlgGenClass			: "Klase CSS stilova",
+DlgGenTitle			: "Advisory title",
+DlgGenContType		: "Advisory vrsta sadrÅ¾aja",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Svojstva slike",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "Å alji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Å alji",
+DlgImgAlt			: "Tekst na slici",
+DlgImgWidth			: "Å irina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "ZakljuÃ¨aj odnos",
+DlgBtnResetSize		: "Resetuj dimenzije",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Poravnanje",
+DlgImgAlignLeft		: "Lijevo",
+DlgImgAlignAbsBottom: "Abs dole",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dno",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Prikaz",
+DlgImgAlertUrl		: "Molimo ukucajte URL od slike.",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link info",
+DlgLnkTargetTab		: "Prozor",
+
+DlgLnkType			: "Tip linka",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugi>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id-u elementa",
+DlgLnkNoAnchors		: "(Nema dostupnih sidra na stranici)",
+DlgLnkEMail			: "E-Mail Adresa",
+DlgLnkEMailSubject	: "Subjekt poruke",
+DlgLnkEMailBody		: "Poruka",
+DlgLnkUpload		: "Å alji",
+DlgLnkBtnUpload		: "Å alji na server",
+
+DlgLnkTarget		: "Prozor",
+DlgLnkTargetFrame	: "<frejm>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Glavni prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "Najgornji prozor (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",	//MISSING
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "MoguÃ¦nosti popup prozora",
+DlgLnkPopResize		: "Promjenljive veliÃ¨ine",
+DlgLnkPopLocation	: "Traka za lokaciju",
+DlgLnkPopMenu		: "Izborna traka",
+DlgLnkPopScroll		: "Scroll traka",
+DlgLnkPopStatus		: "Statusna traka",
+DlgLnkPopToolbar	: "Traka sa alatima",
+DlgLnkPopFullScrn	: "Cijeli ekran (IE)",
+DlgLnkPopDependent	: "Ovisno (Netscape)",
+DlgLnkPopWidth		: "Å irina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Lijeva pozicija",
+DlgLnkPopTop		: "Gornja pozicija",
+
+DlnLnkMsgNoUrl		: "Molimo ukucajte URL link",
+DlnLnkMsgNoEMail	: "Molimo ukucajte e-mail adresu",
+DlnLnkMsgNoAnchor	: "Molimo izaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Izaberi boju",
+DlgColorBtnClear	: "OÃ¨isti",
+DlgColorHighlight	: "Igled",
+DlgColorSelected	: "Selektovana",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ubaci smjeÅ¡ka",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Izaberi specijalni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Svojstva tabele",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "Okvir",
+DlgTableAlign		: "Poravnanje",
+DlgTableAlignNotSet	: "<Nije podeÅ¡eno>",
+DlgTableAlignLeft	: "Lijevo",
+DlgTableAlignCenter	: "Centar",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Å irina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "posto",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Razmak Ã¦elija",
+DlgTableCellPad		: "Uvod Ã¦elija",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Svojstva Ã¦elije",
+DlgCellWidth		: "Å irina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "posto",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Vrapuj tekst",
+DlgCellWordWrapNotSet	: "<Nije podeÅ¡eno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizontalno poravnanje",
+DlgCellHorAlignNotSet	: "<Nije podeÅ¡eno>",
+DlgCellHorAlignLeft	: "Lijevo",
+DlgCellHorAlignCenter	: "Centar",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Vertikalno poravnanje",
+DlgCellVerAlignNotSet	: "<Nije podeÅ¡eno>",
+DlgCellVerAlignTop	: "Gore",
+DlgCellVerAlignMiddle	: "Sredina",
+DlgCellVerAlignBottom	: "Dno",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje Ã¦elija",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Selektuj...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "NaÃ°i",
+DlgFindFindBtn		: "NaÃ°i",
+DlgFindNotFoundMsg	: "TraÅ¾eni tekst nije pronaÃ°en.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamjeni",
+DlgReplaceFindLbl		: "NaÃ°i Å¡ta:",
+DlgReplaceReplaceLbl	: "Zamjeni sa:",
+DlgReplaceCaseChk		: "UporeÃ°uj velika/mala slova",
+DlgReplaceReplaceBtn	: "Zamjeni",
+DlgReplaceReplAllBtn	: "Zamjeni sve",
+DlgReplaceWordChk		: "UporeÃ°uj samo cijelu rijeÃ¨",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Sigurnosne postavke vaÅ¡eg pretraÅ¾ivaÃ¨a ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).",
+PasteErrorCopy	: "Sigurnosne postavke VaÅ¡eg pretraÅ¾ivaÃ¨a ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).",
+
+PasteAsText		: "Zalijepi kao obiÃ¨an tekst",
+PasteFromWord	: "Zalijepi iz Word-a",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+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
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Automatska",
+ColorMoreColors	: "ViÅ¡e boja...",
+
+// Document Properties
+DocProps		: "Document Properties",	//MISSING
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",	//MISSING
+DlgAnchorName		: "Anchor Name",	//MISSING
+DlgAnchorErrorName	: "Please type the anchor name",	//MISSING
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",	//MISSING
+DlgSpellChangeTo		: "Change to",	//MISSING
+DlgSpellBtnIgnore		: "Ignore",	//MISSING
+DlgSpellBtnIgnoreAll	: "Ignore All",	//MISSING
+DlgSpellBtnReplace		: "Replace",	//MISSING
+DlgSpellBtnReplaceAll	: "Replace All",	//MISSING
+DlgSpellBtnUndo			: "Undo",	//MISSING
+DlgSpellNoSuggestions	: "- No suggestions -",	//MISSING
+DlgSpellProgress		: "Spell check in progress...",	//MISSING
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",	//MISSING
+DlgSpellNoChanges		: "Spell check complete: No words changed",	//MISSING
+DlgSpellOneChange		: "Spell check complete: One word changed",	//MISSING
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",	//MISSING
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",	//MISSING
+DlgButtonType		: "Type",	//MISSING
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",	//MISSING
+DlgCheckboxValue	: "Value",	//MISSING
+DlgCheckboxSelected	: "Selected",	//MISSING
+
+// Form Dialog
+DlgFormName		: "Name",	//MISSING
+DlgFormAction	: "Action",	//MISSING
+DlgFormMethod	: "Method",	//MISSING
+
+// Select Field Dialog
+DlgSelectName		: "Name",	//MISSING
+DlgSelectValue		: "Value",	//MISSING
+DlgSelectSize		: "Size",	//MISSING
+DlgSelectLines		: "lines",	//MISSING
+DlgSelectChkMulti	: "Allow multiple selections",	//MISSING
+DlgSelectOpAvail	: "Available Options",	//MISSING
+DlgSelectOpText		: "Text",	//MISSING
+DlgSelectOpValue	: "Value",	//MISSING
+DlgSelectBtnAdd		: "Add",	//MISSING
+DlgSelectBtnModify	: "Modify",	//MISSING
+DlgSelectBtnUp		: "Up",	//MISSING
+DlgSelectBtnDown	: "Down",	//MISSING
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "Delete",	//MISSING
+
+// Textarea Dialog
+DlgTextareaName	: "Name",	//MISSING
+DlgTextareaCols	: "Columns",	//MISSING
+DlgTextareaRows	: "Rows",	//MISSING
+
+// Text Field Dialog
+DlgTextName			: "Name",	//MISSING
+DlgTextValue		: "Value",	//MISSING
+DlgTextCharWidth	: "Character Width",	//MISSING
+DlgTextMaxChars		: "Maximum Characters",	//MISSING
+DlgTextType			: "Type",	//MISSING
+DlgTextTypeText		: "Text",	//MISSING
+DlgTextTypePass		: "Password",	//MISSING
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",	//MISSING
+DlgHiddenValue	: "Value",	//MISSING
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",	//MISSING
+NumberedListProp	: "Numbered List Properties",	//MISSING
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",	//MISSING
+DlgLstTypeCircle	: "Circle",	//MISSING
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Square",	//MISSING
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",	//MISSING
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",	//MISSING
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",	//MISSING
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",	//MISSING
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",	//MISSING
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",	//MISSING
+DlgDocBackTab		: "Background",	//MISSING
+DlgDocColorsTab		: "Colors and Margins",	//MISSING
+DlgDocMetaTab		: "Meta Data",	//MISSING
+
+DlgDocPageTitle		: "Page Title",	//MISSING
+DlgDocLangDir		: "Language Direction",	//MISSING
+DlgDocLangDirLTR	: "Left to Right (LTR)",	//MISSING
+DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
+DlgDocLangCode		: "Language Code",	//MISSING
+DlgDocCharSet		: "Character Set Encoding",	//MISSING
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
+
+DlgDocDocType		: "Document Type Heading",	//MISSING
+DlgDocDocTypeOther	: "Other Document Type Heading",	//MISSING
+DlgDocIncXHTML		: "Include XHTML Declarations",	//MISSING
+DlgDocBgColor		: "Background Color",	//MISSING
+DlgDocBgImage		: "Background Image URL",	//MISSING
+DlgDocBgNoScroll	: "Nonscrolling Background",	//MISSING
+DlgDocCText			: "Text",	//MISSING
+DlgDocCLink			: "Link",	//MISSING
+DlgDocCVisited		: "Visited Link",	//MISSING
+DlgDocCActive		: "Active Link",	//MISSING
+DlgDocMargins		: "Page Margins",	//MISSING
+DlgDocMaTop			: "Top",	//MISSING
+DlgDocMaLeft		: "Left",	//MISSING
+DlgDocMaRight		: "Right",	//MISSING
+DlgDocMaBottom		: "Bottom",	//MISSING
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",	//MISSING
+DlgDocMeDescr		: "Document Description",	//MISSING
+DlgDocMeAuthor		: "Author",	//MISSING
+DlgDocMeCopy		: "Copyright",	//MISSING
+DlgDocPreview		: "Preview",	//MISSING
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "About",	//MISSING
+DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "verzija",
+DlgAboutInfo		: "Za viÅ¡e informacija posjetite"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/cs.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/cs.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/cs.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Czech language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "SkrÃ½t panel nÃ¡strojÅ¯",
+ToolbarExpand		: "Zobrazit panel nÃ¡strojÅ¯",
+
+// Toolbar Items and Context Menu
+Save				: "UloÅ¾it",
+NewPage				: "NovÃ¡ strÃ¡nka",
+Preview				: "NÃ¡hled",
+Cut					: "Vyjmout",
+Copy				: "KopÃ­rovat",
+Paste				: "VloÅ¾it",
+PasteText			: "VloÅ¾it jako ÄistÃ½ text",
+PasteWord			: "VloÅ¾it z Wordu",
+Print				: "Tisk",
+SelectAll			: "Vybrat vÅ¡e",
+RemoveFormat		: "Odstranit formÃ¡tovÃ¡nÃ­",
+InsertLinkLbl		: "Odkaz",
+InsertLink			: "VloÅ¾it/zmÄ›nit odkaz",
+RemoveLink			: "Odstranit odkaz",
+Anchor				: "VloÅ¾Ã­t/zmÄ›nit zÃ¡loÅ¾ku",
+AnchorDelete		: "Odstranit kotvu",
+InsertImageLbl		: "ObrÃ¡zek",
+InsertImage			: "VloÅ¾it/zmÄ›nit obrÃ¡zek",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "VloÅ¾it/Upravit Flash",
+InsertTableLbl		: "Tabulka",
+InsertTable			: "VloÅ¾it/zmÄ›nit tabulku",
+InsertLineLbl		: "Linka",
+InsertLine			: "VloÅ¾it vodorovnou linku",
+InsertSpecialCharLbl: "SpeciÃ¡lnÃ­ znaky",
+InsertSpecialChar	: "VloÅ¾it speciÃ¡lnÃ­ znaky",
+InsertSmileyLbl		: "SmajlÃ­ky",
+InsertSmiley		: "VloÅ¾it smajlÃ­k",
+About				: "O aplikaci FCKeditor",
+Bold				: "TuÄnÃ©",
+Italic				: "KurzÃ­va",
+Underline			: "PodtrÅ¾enÃ©",
+StrikeThrough		: "PÅ™eÅ¡krtnutÃ©",
+Subscript			: "DolnÃ­ index",
+Superscript			: "HornÃ­ index",
+LeftJustify			: "Zarovnat vlevo",
+CenterJustify		: "Zarovnat na stÅ™ed",
+RightJustify		: "Zarovnat vpravo",
+BlockJustify		: "Zarovnat do bloku",
+DecreaseIndent		: "ZmenÅ¡it odsazenÃ­",
+IncreaseIndent		: "ZvÄ›tÅ¡it odsazenÃ­",
+Blockquote			: "Citace",
+Undo				: "ZpÄ›t",
+Redo				: "Znovu",
+NumberedListLbl		: "ÄŒÃ­slovÃ¡nÃ­",
+NumberedList		: "VloÅ¾it/odstranit ÄÃ­slovanÃ½ seznam",
+BulletedListLbl		: "OdrÃ¡Å¾ky",
+BulletedList		: "VloÅ¾it/odstranit odrÃ¡Å¾ky",
+ShowTableBorders	: "Zobrazit okraje tabulek",
+ShowDetails			: "Zobrazit podrobnosti",
+Style				: "Styl",
+FontFormat			: "FormÃ¡t",
+Font				: "PÃ­smo",
+FontSize			: "Velikost",
+TextColor			: "Barva textu",
+BGColor				: "Barva pozadÃ­",
+Source				: "Zdroj",
+Find				: "Hledat",
+Replace				: "Nahradit",
+SpellCheck			: "Zkontrolovat pravopis",
+UniversalKeyboard	: "UniverzÃ¡lnÃ­ klÃ¡vesnice",
+PageBreakLbl		: "Konec strÃ¡nky",
+PageBreak			: "VloÅ¾it konec strÃ¡nky",
+
+Form			: "FormulÃ¡Å™",
+Checkbox		: "ZaÅ¡krtÃ¡vacÃ­ polÃ­Äko",
+RadioButton		: "PÅ™epÃ­naÄ",
+TextField		: "TextovÃ© pole",
+Textarea		: "TextovÃ¡ oblast",
+HiddenField		: "SkrytÃ© pole",
+Button			: "TlaÄÃ­tko",
+SelectionField	: "Seznam",
+ImageButton		: "ObrÃ¡zkovÃ© tlaÄÃ­tko",
+
+FitWindow		: "Maximalizovat velikost editoru",
+ShowBlocks		: "UkÃ¡zat bloky",
+
+// Context Menu
+EditLink			: "ZmÄ›nit odkaz",
+CellCM				: "BuÅˆka",
+RowCM				: "Å˜Ã¡dek",
+ColumnCM			: "Sloupec",
+InsertRowAfter		: "VloÅ¾it Å™Ã¡dek za",
+InsertRowBefore		: "VloÅ¾it Å™Ã¡dek pÅ™ed",
+DeleteRows			: "Smazat Å™Ã¡dky",
+InsertColumnAfter	: "VloÅ¾it sloupec za",
+InsertColumnBefore	: "VloÅ¾it sloupec pÅ™ed",
+DeleteColumns		: "Smazat sloupec",
+InsertCellAfter		: "VloÅ¾it buÅˆku za",
+InsertCellBefore	: "VloÅ¾it buÅˆku pÅ™ed",
+DeleteCells			: "Smazat buÅˆky",
+MergeCells			: "SlouÄit buÅˆky",
+MergeRight			: "SlouÄit doprava",
+MergeDown			: "SlouÄit dolÅ¯",
+HorizontalSplitCell	: "RozdÄ›lit buÅˆky vodorovnÄ›",
+VerticalSplitCell	: "RozdÄ›lit buÅˆky svisle",
+TableDelete			: "Smazat tabulku",
+CellProperties		: "Vlastnosti buÅˆky",
+TableProperties		: "Vlastnosti tabulky",
+ImageProperties		: "Vlastnosti obrÃ¡zku",
+FlashProperties		: "Vlastnosti Flashe",
+
+AnchorProp			: "Vlastnosti zÃ¡loÅ¾ky",
+ButtonProp			: "Vlastnosti tlaÄÃ­tka",
+CheckboxProp		: "Vlastnosti zaÅ¡krtÃ¡vacÃ­ho polÃ­Äka",
+HiddenFieldProp		: "Vlastnosti skrytÃ©ho pole",
+RadioButtonProp		: "Vlastnosti pÅ™epÃ­naÄe",
+ImageButtonProp		: "VlastnostÃ­ obrÃ¡zkovÃ©ho tlaÄÃ­tka",
+TextFieldProp		: "Vlastnosti textovÃ©ho pole",
+SelectionFieldProp	: "Vlastnosti seznamu",
+TextareaProp		: "Vlastnosti textovÃ© oblasti",
+FormProp			: "Vlastnosti formulÃ¡Å™e",
+
+FontFormats			: "NormÃ¡lnÃ­;NaformÃ¡tovÃ¡no;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;NormÃ¡lnÃ­ (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "ProbÃ­hÃ¡ zpracovÃ¡nÃ­ XHTML. ProsÃ­m Äekejte...",
+Done				: "Hotovo",
+PasteWordConfirm	: "Jak je vidÄ›t, vklÃ¡danÃ½ text je kopÃ­rovÃ¡n z Wordu. Chcete jej pÅ™ed vloÅ¾enÃ­m vyÄistit?",
+NotCompatiblePaste	: "Tento pÅ™Ã­kaz je dostupnÃ½ pouze v Internet Exploreru verze 5.5 nebo vyÅ¡Å¡Ã­. Chcete vloÅ¾it text bez vyÄiÅ¡tÄ›nÃ­?",
+UnknownToolbarItem	: "NeznÃ¡mÃ¡ poloÅ¾ka panelu nÃ¡strojÅ¯ \"%1\"",
+UnknownCommand		: "NeznÃ¡mÃ½ pÅ™Ã­kaz \"%1\"",
+NotImplemented		: "PÅ™Ã­kaz nenÃ­ implementovÃ¡n",
+UnknownToolbarSet	: "Panel nÃ¡strojÅ¯ \"%1\" neexistuje",
+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.",
+BrowseServerBlocked : "PrÅ¯zkumnÃ­k zdrojÅ¯ nelze otevÅ™Ã­t. ProvÄ›Å™te, zda nemÃ¡te aktivovÃ¡no blokovÃ¡nÃ­ popup oken.",
+DialogBlocked		: "Nelze otevÅ™Ã­t dialogovÃ© okno. ProvÄ›Å™te, zda nemÃ¡te aktivovÃ¡no blokovÃ¡nÃ­ popup oken.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Storno",
+DlgBtnClose			: "ZavÅ™Ã­t",
+DlgBtnBrowseServer	: "Vybrat na serveru",
+DlgAdvancedTag		: "RozÅ¡Ã­Å™enÃ©",
+DlgOpOther			: "<OstatnÃ­>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "ProsÃ­m vloÅ¾te URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nenastaveno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientace jazyka",
+DlgGenLangDirLtr	: "Zleva do prava (LTR)",
+DlgGenLangDirRtl	: "Zprava do leva (RTL)",
+DlgGenLangCode		: "KÃ³d jazyka",
+DlgGenAccessKey		: "PÅ™Ã­stupovÃ½ klÃ­Ä",
+DlgGenName			: "JmÃ©no",
+DlgGenTabIndex		: "PoÅ™adÃ­ prvku",
+DlgGenLongDescr		: "DlouhÃ½ popis URL",
+DlgGenClass			: "TÅ™Ã­da stylu",
+DlgGenTitle			: "PomocnÃ½ titulek",
+DlgGenContType		: "PomocnÃ½ typ obsahu",
+DlgGenLinkCharset	: "PÅ™iÅ™azenÃ¡ znakovÃ¡ sada",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "Vlastnosti obrÃ¡zku",
+DlgImgInfoTab		: "Informace o obrÃ¡zku",
+DlgImgBtnUpload		: "Odeslat na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Odeslat",
+DlgImgAlt			: "AlternativnÃ­ text",
+DlgImgWidth			: "Å Ã­Å™ka",
+DlgImgHeight		: "VÃ½Å¡ka",
+DlgImgLockRatio		: "ZÃ¡mek",
+DlgBtnResetSize		: "PÅ¯vodnÃ­ velikost",
+DlgImgBorder		: "Okraje",
+DlgImgHSpace		: "H-mezera",
+DlgImgVSpace		: "V-mezera",
+DlgImgAlign			: "ZarovnÃ¡nÃ­",
+DlgImgAlignLeft		: "Vlevo",
+DlgImgAlignAbsBottom: "Zcela dolÅ¯",
+DlgImgAlignAbsMiddle: "DoprostÅ™ed",
+DlgImgAlignBaseline	: "Na ÃºÄaÅ™Ã­",
+DlgImgAlignBottom	: "DolÅ¯",
+DlgImgAlignMiddle	: "Na stÅ™ed",
+DlgImgAlignRight	: "Vpravo",
+DlgImgAlignTextTop	: "Na hornÃ­ okraj textu",
+DlgImgAlignTop		: "Nahoru",
+DlgImgPreview		: "NÃ¡hled",
+DlgImgAlertUrl		: "Zadejte prosÃ­m URL obrÃ¡zku",
+DlgImgLinkTab		: "Odkaz",
+
+// Flash Dialog
+DlgFlashTitle		: "Vlastnosti Flashe",
+DlgFlashChkPlay		: "AutomatickÃ© spuÅ¡tÄ›nÃ­",
+DlgFlashChkLoop		: "OpakovÃ¡nÃ­",
+DlgFlashChkMenu		: "NabÃ­dka Flash",
+DlgFlashScale		: "Zobrazit",
+DlgFlashScaleAll	: "Zobrazit vÅ¡e",
+DlgFlashScaleNoBorder	: "Bez okraje",
+DlgFlashScaleFit	: "PÅ™izpÅ¯sobit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Odkaz",
+DlgLnkInfoTab		: "Informace o odkazu",
+DlgLnkTargetTab		: "CÃ­l",
+
+DlgLnkType			: "Typ odkazu",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Kotva v tÃ©to strÃ¡nce",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<jinÃ½>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vybrat kotvu",
+DlgLnkAnchorByName	: "Podle jmÃ©na kotvy",
+DlgLnkAnchorById	: "Podle Id objektu",
+DlgLnkNoAnchors		: "(Ve strÃ¡nce nenÃ­ definovÃ¡na Å¾Ã¡dnÃ¡ kotva!)",
+DlgLnkEMail			: "E-MailovÃ¡ adresa",
+DlgLnkEMailSubject	: "PÅ™edmÄ›t zprÃ¡vy",
+DlgLnkEMailBody		: "TÄ›lo zprÃ¡vy",
+DlgLnkUpload		: "Odeslat",
+DlgLnkBtnUpload		: "Odeslat na Server",
+
+DlgLnkTarget		: "CÃ­l",
+DlgLnkTargetFrame	: "<rÃ¡mec>",
+DlgLnkTargetPopup	: "<vyskakovacÃ­ okno>",
+DlgLnkTargetBlank	: "NovÃ© okno (_blank)",
+DlgLnkTargetParent	: "RodiÄovskÃ© okno (_parent)",
+DlgLnkTargetSelf	: "StejnÃ© okno (_self)",
+DlgLnkTargetTop		: "HlavnÃ­ okno (_top)",
+DlgLnkTargetFrameName	: "NÃ¡zev cÃ­lovÃ©ho rÃ¡mu",
+DlgLnkPopWinName	: "NÃ¡zev vyskakovacÃ­ho okna",
+DlgLnkPopWinFeat	: "Vlastnosti vyskakovacÃ­ho okna",
+DlgLnkPopResize		: "MÄ›nitelnÃ¡ velikost",
+DlgLnkPopLocation	: "Panel umÃ­stÄ›nÃ­",
+DlgLnkPopMenu		: "Panel nabÃ­dky",
+DlgLnkPopScroll		: "PosuvnÃ­ky",
+DlgLnkPopStatus		: "StavovÃ½ Å™Ã¡dek",
+DlgLnkPopToolbar	: "Panel nÃ¡strojÅ¯",
+DlgLnkPopFullScrn	: "CelÃ¡ obrazovka (IE)",
+DlgLnkPopDependent	: "ZÃ¡vislost (Netscape)",
+DlgLnkPopWidth		: "Å Ã­Å™ka",
+DlgLnkPopHeight		: "VÃ½Å¡ka",
+DlgLnkPopLeft		: "LevÃ½ okraj",
+DlgLnkPopTop		: "HornÃ­ okraj",
+
+DlnLnkMsgNoUrl		: "Zadejte prosÃ­m URL odkazu",
+DlnLnkMsgNoEMail	: "Zadejte prosÃ­m e-mailovou adresu",
+DlnLnkMsgNoAnchor	: "Vyberte prosÃ­m kotvu",
+DlnLnkMsgInvPopName	: "NÃ¡zev vyskakovacÃ­ho okna musÃ­ zaÄÃ­nat pÃ­smenem a nesmÃ­ obsahovat mezery",
+
+// Color Dialog
+DlgColorTitle		: "VÃ½bÄ›r barvy",
+DlgColorBtnClear	: "Vymazat",
+DlgColorHighlight	: "ZvÃ½raznÄ›nÃ¡",
+DlgColorSelected	: "VybranÃ¡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "VklÃ¡dÃ¡nÃ­ smajlÃ­kÅ¯",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "VÃ½bÄ›r speciÃ¡lnÃ­ho znaku",
+
+// Table Dialog
+DlgTableTitle		: "Vlastnosti tabulky",
+DlgTableRows		: "Å˜Ã¡dky",
+DlgTableColumns		: "Sloupce",
+DlgTableBorder		: "OhraniÄenÃ­",
+DlgTableAlign		: "ZarovnÃ¡nÃ­",
+DlgTableAlignNotSet	: "<nenastaveno>",
+DlgTableAlignLeft	: "Vlevo",
+DlgTableAlignCenter	: "Na stÅ™ed",
+DlgTableAlignRight	: "Vpravo",
+DlgTableWidth		: "Å Ã­Å™ka",
+DlgTableWidthPx		: "bodÅ¯",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "VÃ½Å¡ka",
+DlgTableCellSpace	: "VzdÃ¡lenost bunÄ›k",
+DlgTableCellPad		: "OdsazenÃ­ obsahu",
+DlgTableCaption		: "Popis",
+DlgTableSummary		: "Souhrn",
+
+// Table Cell Dialog
+DlgCellTitle		: "Vlastnosti buÅˆky",
+DlgCellWidth		: "Å Ã­Å™ka",
+DlgCellWidthPx		: "bodÅ¯",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "VÃ½Å¡ka",
+DlgCellWordWrap		: "ZalamovÃ¡nÃ­",
+DlgCellWordWrapNotSet	: "<nenanstaveno>",
+DlgCellWordWrapYes	: "Ano",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "VodorovnÃ© zarovnÃ¡nÃ­",
+DlgCellHorAlignNotSet	: "<nenastaveno>",
+DlgCellHorAlignLeft	: "Vlevo",
+DlgCellHorAlignCenter	: "Na stÅ™ed",
+DlgCellHorAlignRight: "Vpravo",
+DlgCellVerAlign		: "SvislÃ© zarovnÃ¡nÃ­",
+DlgCellVerAlignNotSet	: "<nenastaveno>",
+DlgCellVerAlignTop	: "Nahoru",
+DlgCellVerAlignMiddle	: "DoprostÅ™ed",
+DlgCellVerAlignBottom	: "DolÅ¯",
+DlgCellVerAlignBaseline	: "Na ÃºÄaÅ™Ã­",
+DlgCellRowSpan		: "SlouÄenÃ© Å™Ã¡dky",
+DlgCellCollSpan		: "SlouÄenÃ© sloupce",
+DlgCellBackColor	: "Barva pozadÃ­",
+DlgCellBorderColor	: "Barva ohraniÄenÃ­",
+DlgCellBtnSelect	: "VÃ½bÄ›r...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "NajÃ­t a nahradit",
+
+// Find Dialog
+DlgFindTitle		: "Hledat",
+DlgFindFindBtn		: "Hledat",
+DlgFindNotFoundMsg	: "HledanÃ½ text nebyl nalezen.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Nahradit",
+DlgReplaceFindLbl		: "Co hledat:",
+DlgReplaceReplaceLbl	: "ÄŒÃ­m nahradit:",
+DlgReplaceCaseChk		: "RozliÅ¡ovat velikost pÃ­sma",
+DlgReplaceReplaceBtn	: "Nahradit",
+DlgReplaceReplAllBtn	: "Nahradit vÅ¡e",
+DlgReplaceWordChk		: "Pouze celÃ¡ slova",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "VloÅ¾it jako ÄistÃ½ text",
+PasteFromWord	: "VloÅ¾it text z Wordu",
+
+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>.",
+DlgPasteSec		: "Z dÅ¯vodÅ¯ nastavenÃ­ bezpeÄnosti VaÅ¡eho prohlÃ­Å¾eÄe nemÅ¯Å¾e editor pÅ™istupovat pÅ™Ã­mo do schrÃ¡nky. Obsah schrÃ¡nky prosÃ­m vloÅ¾te znovu do tohoto okna.",
+DlgPasteIgnoreFont		: "Ignorovat pÃ­smo",
+DlgPasteRemoveStyles	: "Odstranit styly",
+
+// Color Picker
+ColorAutomatic	: "Automaticky",
+ColorMoreColors	: "VÃ­ce barev...",
+
+// Document Properties
+DocProps		: "Vlastnosti dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Vlastnosti zÃ¡loÅ¾ky",
+DlgAnchorName		: "NÃ¡zev zÃ¡loÅ¾ky",
+DlgAnchorErrorName	: "Zadejte prosÃ­m nÃ¡zev zÃ¡loÅ¾ky",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "NenÃ­ ve slovnÃ­ku",
+DlgSpellChangeTo		: "ZmÄ›nit na",
+DlgSpellBtnIgnore		: "PÅ™eskoÄit",
+DlgSpellBtnIgnoreAll	: "PÅ™eskakovat vÅ¡e",
+DlgSpellBtnReplace		: "ZamÄ›nit",
+DlgSpellBtnReplaceAll	: "ZamÄ›Åˆovat vÅ¡e",
+DlgSpellBtnUndo			: "ZpÄ›t",
+DlgSpellNoSuggestions	: "- Å¾Ã¡dnÃ© nÃ¡vrhy -",
+DlgSpellProgress		: "ProbÃ­hÃ¡ kontrola pravopisu...",
+DlgSpellNoMispell		: "Kontrola pravopisu dokonÄena: Å½Ã¡dnÃ© pravopisnÃ© chyby nenalezeny",
+DlgSpellNoChanges		: "Kontrola pravopisu dokonÄena: Beze zmÄ›n",
+DlgSpellOneChange		: "Kontrola pravopisu dokonÄena: Jedno slovo zmÄ›nÄ›no",
+DlgSpellManyChanges		: "Kontrola pravopisu dokonÄena: %1 slov zmÄ›nÄ›no",
+
+IeSpellDownload			: "Kontrola pravopisu nenÃ­ nainstalovÃ¡na. Chcete ji nynÃ­ stÃ¡hnout?",
+
+// Button Dialog
+DlgButtonText		: "Popisek",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "TlaÄÃ­tko",
+DlgButtonTypeSbm	: "Odeslat",
+DlgButtonTypeRst	: "Obnovit",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "NÃ¡zev",
+DlgCheckboxValue	: "Hodnota",
+DlgCheckboxSelected	: "ZaÅ¡krtnuto",
+
+// Form Dialog
+DlgFormName		: "NÃ¡zev",
+DlgFormAction	: "Akce",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "NÃ¡zev",
+DlgSelectValue		: "Hodnota",
+DlgSelectSize		: "Velikost",
+DlgSelectLines		: "Å˜Ã¡dkÅ¯",
+DlgSelectChkMulti	: "Povolit mnohonÃ¡sobnÃ© vÃ½bÄ›ry",
+DlgSelectOpAvail	: "DostupnÃ¡ nastavenÃ­",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Hodnota",
+DlgSelectBtnAdd		: "PÅ™idat",
+DlgSelectBtnModify	: "ZmÄ›nit",
+DlgSelectBtnUp		: "Nahoru",
+DlgSelectBtnDown	: "DolÅ¯",
+DlgSelectBtnSetValue : "Nastavit jako vybranou hodnotu",
+DlgSelectBtnDelete	: "Smazat",
+
+// Textarea Dialog
+DlgTextareaName	: "NÃ¡zev",
+DlgTextareaCols	: "SloupcÅ¯",
+DlgTextareaRows	: "Å˜Ã¡dkÅ¯",
+
+// Text Field Dialog
+DlgTextName			: "NÃ¡zev",
+DlgTextValue		: "Hodnota",
+DlgTextCharWidth	: "Å Ã­Å™ka ve znacÃ­ch",
+DlgTextMaxChars		: "MaximÃ¡lnÃ­ poÄet znakÅ¯",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Heslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "NÃ¡zev",
+DlgHiddenValue	: "Hodnota",
+
+// Bulleted List Dialog
+BulletedListProp	: "Vlastnosti odrÃ¡Å¾ek",
+NumberedListProp	: "Vlastnosti ÄÃ­slovanÃ©ho seznamu",
+DlgLstStart			: "ZaÄÃ¡tek",
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "KruÅ¾nice",
+DlgLstTypeDisc		: "Kruh",
+DlgLstTypeSquare	: "ÄŒtverec",
+DlgLstTypeNumbers	: "ÄŒÃ­sla (1, 2, 3)",
+DlgLstTypeLCase		: "MalÃ¡ pÃ­smena (a, b, c)",
+DlgLstTypeUCase		: "VelkÃ¡ pÃ­smena (A, B, C)",
+DlgLstTypeSRoman	: "MalÃ© Å™Ã­mskÃ¡ ÄÃ­slice (i, ii, iii)",
+DlgLstTypeLRoman	: "VelkÃ© Å™Ã­mskÃ© ÄÃ­slice (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ObecnÃ©",
+DlgDocBackTab		: "PozadÃ­",
+DlgDocColorsTab		: "Barvy a okraje",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Titulek strÃ¡nky",
+DlgDocLangDir		: "SmÄ›r jazyku",
+DlgDocLangDirLTR	: "Zleva do prava ",
+DlgDocLangDirRTL	: "Zprava doleva",
+DlgDocLangCode		: "KÃ³d jazyku",
+DlgDocCharSet		: "ZnakovÃ¡ sada",
+DlgDocCharSetCE		: "StÅ™edoevropskÃ© jazyky",
+DlgDocCharSetCT		: "TradiÄnÃ­ ÄÃ­nÅ¡tina (Big5)",
+DlgDocCharSetCR		: "Cyrilice",
+DlgDocCharSetGR		: "Å˜eÄtina",
+DlgDocCharSetJP		: "JaponÅ¡tina",
+DlgDocCharSetKR		: "KorejÅ¡tina",
+DlgDocCharSetTR		: "TureÄtina",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "ZÃ¡padoevropskÃ© jazyky",
+DlgDocCharSetOther	: "DalÅ¡Ã­ znakovÃ¡ sada",
+
+DlgDocDocType		: "Typ dokumentu",
+DlgDocDocTypeOther	: "JinÃ½ typ dokumetu",
+DlgDocIncXHTML		: "Zahrnou deklarace XHTML",
+DlgDocBgColor		: "Barva pozadÃ­",
+DlgDocBgImage		: "URL obrÃ¡zku na pozadÃ­",
+DlgDocBgNoScroll	: "NerolovatelnÃ© pozadÃ­",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Odkaz",
+DlgDocCVisited		: "NavÅ¡tÃ­venÃ½ odkaz",
+DlgDocCActive		: "VybranÃ½ odkaz",
+DlgDocMargins		: "Okraje strÃ¡nky",
+DlgDocMaTop			: "HornÃ­",
+DlgDocMaLeft		: "LevÃ½",
+DlgDocMaRight		: "PravÃ½",
+DlgDocMaBottom		: "DolnÃ­",
+DlgDocMeIndex		: "KlÃ­ÄovÃ¡ slova (oddÄ›lenÃ¡ ÄÃ¡rkou)",
+DlgDocMeDescr		: "Popis dokumentu",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "AutorskÃ¡ prÃ¡va",
+DlgDocPreview		: "NÃ¡hled",
+
+// Templates Dialog
+Templates			: "Å ablony",
+DlgTemplatesTitle	: "Å ablony obsahu",
+DlgTemplatesSelMsg	: "ProsÃ­m zvolte Å¡ablonu pro otevÅ™enÃ­ v editoru<br>(aktuÃ¡lnÃ­ obsah editoru bude ztracen):",
+DlgTemplatesLoading	: "NahrÃ¡vÃ¡m pÅ™eheld Å¡ablon. ProsÃ­m Äekejte...",
+DlgTemplatesNoTpl	: "(NenÃ­ definovÃ¡na Å¾Ã¡dnÃ¡ Å¡ablona)",
+DlgTemplatesReplace	: "Nahradit aktuÃ¡lnÃ­ obsah",
+
+// About Dialog
+DlgAboutAboutTab	: "O aplikaci",
+DlgAboutBrowserInfoTab	: "Informace o prohlÃ­Å¾eÄi",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "verze",
+DlgAboutInfo		: "VÃ­ce informacÃ­ zÃ­skÃ¡te na"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-au.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (Australia) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+AnchorDelete		: "Remove Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Blockquote			: "Blockquote",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+ShowBlocks		: "Show Blocks",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRowAfter		: "Insert Row After",
+InsertRowBefore		: "Insert Row Before",
+DeleteRows			: "Delete Rows",
+InsertColumnAfter	: "Insert Column After",
+InsertColumnBefore	: "Insert Column Before",
+DeleteColumns		: "Delete Columns",
+InsertCellAfter		: "Insert Cell After",
+InsertCellBefore	: "Insert Cell Before",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+MergeRight			: "Merge Right",
+MergeDown			: "Merge Down",
+HorizontalSplitCell	: "Split Cell Horizontally",
+VerticalSplitCell	: "Split Cell Vertically",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+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.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For further information go to"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/es.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/es.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/es.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Spanish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Contraer Barra",
+ToolbarExpand		: "Expandir Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Guardar",
+NewPage				: "Nueva PÃ¡gina",
+Preview				: "Vista Previa",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Pegar",
+PasteText			: "Pegar como texto plano",
+PasteWord			: "Pegar desde Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar Todo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "VÃ­nculo",
+InsertLink			: "Insertar/Editar VÃ­nculo",
+RemoveLink			: "Eliminar VÃ­nculo",
+Anchor				: "Referencia",
+AnchorDelete		: "Eliminar Referencia",
+InsertImageLbl		: "Imagen",
+InsertImage			: "Insertar/Editar Imagen",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insertar/Editar Flash",
+InsertTableLbl		: "Tabla",
+InsertTable			: "Insertar/Editar Tabla",
+InsertLineLbl		: "LÃ­nea",
+InsertLine			: "Insertar LÃ­nea Horizontal",
+InsertSpecialCharLbl: "Caracter Especial",
+InsertSpecialChar	: "Insertar Caracter Especial",
+InsertSmileyLbl		: "Emoticons",
+InsertSmiley		: "Insertar Emoticons",
+About				: "Acerca de FCKeditor",
+Bold				: "Negrita",
+Italic				: "Cursiva",
+Underline			: "Subrayado",
+StrikeThrough		: "Tachado",
+Subscript			: "SubÃ­ndice",
+Superscript			: "SuperÃ­ndice",
+LeftJustify			: "Alinear a Izquierda",
+CenterJustify		: "Centrar",
+RightJustify		: "Alinear a Derecha",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Disminuir SangrÃ­a",
+IncreaseIndent		: "Aumentar SangrÃ­a",
+Blockquote			: "Cita",
+Undo				: "Deshacer",
+Redo				: "Rehacer",
+NumberedListLbl		: "NumeraciÃ³n",
+NumberedList		: "Insertar/Eliminar NumeraciÃ³n",
+BulletedListLbl		: "ViÃ±etas",
+BulletedList		: "Insertar/Eliminar ViÃ±etas",
+ShowTableBorders	: "Mostrar Bordes de Tablas",
+ShowDetails			: "Mostrar saltos de PÃ¡rrafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Fuente",
+FontSize			: "TamaÃ±o",
+TextColor			: "Color de Texto",
+BGColor				: "Color de Fondo",
+Source				: "Fuente HTML",
+Find				: "Buscar",
+Replace				: "Reemplazar",
+SpellCheck			: "OrtografÃ­a",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de PÃ¡gina",
+PageBreak			: "Insertar Salto de PÃ¡gina",
+
+Form			: "Formulario",
+Checkbox		: "Casilla de VerificaciÃ³n",
+RadioButton		: "Botones de Radio",
+TextField		: "Campo de Texto",
+Textarea		: "Area de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "BotÃ³n",
+SelectionField	: "Campo de SelecciÃ³n",
+ImageButton		: "BotÃ³n Imagen",
+
+FitWindow		: "Maximizar el tamaÃ±o del editor",
+ShowBlocks		: "Mostrar bloques",
+
+// Context Menu
+EditLink			: "Editar VÃ­nculo",
+CellCM				: "Celda",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRowAfter		: "Insertar fila en la parte inferior",
+InsertRowBefore		: "Insertar fila en la parte superior",
+DeleteRows			: "Eliminar Filas",
+InsertColumnAfter	: "Insertar columna a la derecha",
+InsertColumnBefore	: "Insertar columna a la izquierda",
+DeleteColumns		: "Eliminar Columnas",
+InsertCellAfter		: "Insertar celda a la derecha",
+InsertCellBefore	: "Insertar celda a la izquierda",
+DeleteCells			: "Eliminar Celdas",
+MergeCells			: "Combinar Celdas",
+MergeRight			: "Combinar a la derecha",
+MergeDown			: "Combinar hacia abajo",
+HorizontalSplitCell	: "Dividir la celda horizontalmente",
+VerticalSplitCell	: "Dividir la celda verticalmente",
+TableDelete			: "Eliminar Tabla",
+CellProperties		: "Propiedades de Celda",
+TableProperties		: "Propiedades de Tabla",
+ImageProperties		: "Propiedades de Imagen",
+FlashProperties		: "Propiedades de Flash",
+
+AnchorProp			: "Propiedades de Referencia",
+ButtonProp			: "Propiedades de BotÃ³n",
+CheckboxProp		: "Propiedades de Casilla",
+HiddenFieldProp		: "Propiedades de Campo Oculto",
+RadioButtonProp		: "Propiedades de BotÃ³n de Radio",
+ImageButtonProp		: "Propiedades de BotÃ³n de Imagen",
+TextFieldProp		: "Propiedades de Campo de Texto",
+SelectionFieldProp	: "Propiedades de Campo de SelecciÃ³n",
+TextareaProp		: "Propiedades de Area de Texto",
+FormProp			: "Propiedades de Formulario",
+
+FontFormats			: "Normal;Con formato;DirecciÃ³n;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesando XHTML. Por favor, espere...",
+Done				: "Hecho",
+PasteWordConfirm	: "El texto que desea parece provenir de Word. Desea depurarlo antes de pegarlo?",
+NotCompatiblePaste	: "Este comando estÃ¡ disponible sÃ³lo para Internet Explorer version 5.5 or superior. Desea pegar sin depurar?",
+UnknownToolbarItem	: "Item de barra desconocido \"%1\"",
+UnknownCommand		: "Nombre de comando desconocido \"%1\"",
+NotImplemented		: "Comando no implementado",
+UnknownToolbarSet	: "Nombre de barra \"%1\" no definido",
+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.",
+BrowseServerBlocked : "La ventana de visualizaciÃ³n del servidor no pudo ser abierta. Verifique que su navegador no estÃ© bloqueando las ventanas emergentes (pop up).",
+DialogBlocked		: "No se ha podido abrir la ventana de diÃ¡logo. Verifique que su navegador no estÃ© bloqueando las ventanas emergentes (pop up).",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Cerrar",
+DlgBtnBrowseServer	: "Ver Servidor",
+DlgAdvancedTag		: "Avanzado",
+DlgOpOther			: "<Otro>",
+DlgInfoTab			: "InformaciÃ³n",
+DlgAlertUrl			: "Inserte el URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<No definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "OrientaciÃ³n",
+DlgGenLangDirLtr	: "Izquierda a Derecha (LTR)",
+DlgGenLangDirRtl	: "Derecha a Izquierda (RTL)",
+DlgGenLangCode		: "CÃ³d. de idioma",
+DlgGenAccessKey		: "Clave de Acceso",
+DlgGenName			: "Nombre",
+DlgGenTabIndex		: "Indice de tabulaciÃ³n",
+DlgGenLongDescr		: "DescripciÃ³n larga URL",
+DlgGenClass			: "Clases de hojas de estilo",
+DlgGenTitle			: "TÃ­tulo",
+DlgGenContType		: "Tipo de Contenido",
+DlgGenLinkCharset	: "Fuente de caracteres vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propiedades de Imagen",
+DlgImgInfoTab		: "InformaciÃ³n de Imagen",
+DlgImgBtnUpload		: "Enviar al Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Cargar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Anchura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "TamaÃ±o Original",
+DlgImgBorder		: "Borde",
+DlgImgHSpace		: "Esp.Horiz",
+DlgImgVSpace		: "Esp.Vert",
+DlgImgAlign			: "AlineaciÃ³n",
+DlgImgAlignLeft		: "Izquierda",
+DlgImgAlignAbsBottom: "Abs inferior",
+DlgImgAlignAbsMiddle: "Abs centro",
+DlgImgAlignBaseline	: "LÃ­nea de base",
+DlgImgAlignBottom	: "Pie",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Derecha",
+DlgImgAlignTextTop	: "Tope del texto",
+DlgImgAlignTop		: "Tope",
+DlgImgPreview		: "Vista Previa",
+DlgImgAlertUrl		: "Por favor escriba la URL de la imagen",
+DlgImgLinkTab		: "VÃ­nculo",
+
+// Flash Dialog
+DlgFlashTitle		: "Propiedades de Flash",
+DlgFlashChkPlay		: "AutoejecuciÃ³n",
+DlgFlashChkLoop		: "Repetir",
+DlgFlashChkMenu		: "Activar MenÃº Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar todo",
+DlgFlashScaleNoBorder	: "Sin Borde",
+DlgFlashScaleFit	: "Ajustado",
+
+// Link Dialog
+DlgLnkWindowTitle	: "VÃ­nculo",
+DlgLnkInfoTab		: "InformaciÃ³n de VÃ­nculo",
+DlgLnkTargetTab		: "Destino",
+
+DlgLnkType			: "Tipo de vÃ­nculo",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Referencia en esta pÃ¡gina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<otro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar una referencia",
+DlgLnkAnchorByName	: "Por Nombre de Referencia",
+DlgLnkAnchorById	: "Por ID de elemento",
+DlgLnkNoAnchors		: "(No hay referencias disponibles en el documento)",
+DlgLnkEMail			: "DirecciÃ³n de E-Mail",
+DlgLnkEMailSubject	: "TÃ­tulo del Mensaje",
+DlgLnkEMailBody		: "Cuerpo del Mensaje",
+DlgLnkUpload		: "Cargar",
+DlgLnkBtnUpload		: "Enviar al Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<marco>",
+DlgLnkTargetPopup	: "<ventana emergente>",
+DlgLnkTargetBlank	: "Nueva Ventana(_blank)",
+DlgLnkTargetParent	: "Ventana Padre (_parent)",
+DlgLnkTargetSelf	: "Misma Ventana (_self)",
+DlgLnkTargetTop		: "Ventana primaria (_top)",
+DlgLnkTargetFrameName	: "Nombre del Marco Destino",
+DlgLnkPopWinName	: "Nombre de Ventana Emergente",
+DlgLnkPopWinFeat	: "CaracterÃ­sticas de Ventana Emergente",
+DlgLnkPopResize		: "Ajustable",
+DlgLnkPopLocation	: "Barra de ubicaciÃ³n",
+DlgLnkPopMenu		: "Barra de MenÃº",
+DlgLnkPopScroll		: "Barras de desplazamiento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Herramientas",
+DlgLnkPopFullScrn	: "Pantalla Completa (IE)",
+DlgLnkPopDependent	: "Dependiente (Netscape)",
+DlgLnkPopWidth		: "Anchura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "PosiciÃ³n Izquierda",
+DlgLnkPopTop		: "PosiciÃ³n Derecha",
+
+DlnLnkMsgNoUrl		: "Por favor tipee el vÃ­nculo URL",
+DlnLnkMsgNoEMail	: "Por favor tipee la direcciÃ³n de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor seleccione una referencia",
+DlnLnkMsgInvPopName	: "El nombre debe empezar con un caracter alfanumÃ©rico y no debe contener espacios",
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Color",
+DlgColorBtnClear	: "Ninguno",
+DlgColorHighlight	: "Resaltado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insertar un Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione un caracter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propiedades de Tabla",
+DlgTableRows		: "Filas",
+DlgTableColumns		: "Columnas",
+DlgTableBorder		: "TamaÃ±o de Borde",
+DlgTableAlign		: "AlineaciÃ³n",
+DlgTableAlignNotSet	: "<No establecido>",
+DlgTableAlignLeft	: "Izquierda",
+DlgTableAlignCenter	: "Centrado",
+DlgTableAlignRight	: "Derecha",
+DlgTableWidth		: "Anchura",
+DlgTableWidthPx		: "pixeles",
+DlgTableWidthPc		: "porcentaje",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Esp. e/celdas",
+DlgTableCellPad		: "Esp. interior",
+DlgTableCaption		: "TÃ­tulo",
+DlgTableSummary		: "SÃ­ntesis",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propiedades de Celda",
+DlgCellWidth		: "Anchura",
+DlgCellWidthPx		: "pixeles",
+DlgCellWidthPc		: "porcentaje",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Cortar LÃ­nea",
+DlgCellWordWrapNotSet	: "<No establecido>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "AlineaciÃ³n Horizontal",
+DlgCellHorAlignNotSet	: "<No establecido>",
+DlgCellHorAlignLeft	: "Izquierda",
+DlgCellHorAlignCenter	: "Centrado",
+DlgCellHorAlignRight: "Derecha",
+DlgCellVerAlign		: "AlineaciÃ³n Vertical",
+DlgCellVerAlignNotSet	: "<Not establecido>",
+DlgCellVerAlignTop	: "Tope",
+DlgCellVerAlignMiddle	: "Medio",
+DlgCellVerAlignBottom	: "ie",
+DlgCellVerAlignBaseline	: "LÃ­nea de Base",
+DlgCellRowSpan		: "Abarcar Filas",
+DlgCellCollSpan		: "Abarcar Columnas",
+DlgCellBackColor	: "Color de Fondo",
+DlgCellBorderColor	: "Color de Borde",
+DlgCellBtnSelect	: "Seleccione...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Buscar y Reemplazar",
+
+// Find Dialog
+DlgFindTitle		: "Buscar",
+DlgFindFindBtn		: "Buscar",
+DlgFindNotFoundMsg	: "El texto especificado no ha sido encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Reemplazar",
+DlgReplaceFindLbl		: "Texto a buscar:",
+DlgReplaceReplaceLbl	: "Reemplazar con:",
+DlgReplaceCaseChk		: "Coincidir may/min",
+DlgReplaceReplaceBtn	: "Reemplazar",
+DlgReplaceReplAllBtn	: "Reemplazar Todo",
+DlgReplaceWordChk		: "Coincidir toda la palabra",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Pegar como Texto Plano",
+PasteFromWord	: "Pegar desde Word",
+
+DlgPasteMsg2	: "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Debido a la configuraciÃ³n de seguridad de su navegador, el editor no tiene acceso al portapapeles. Es necesario que lo pegue de nuevo en esta ventana.",
+DlgPasteIgnoreFont		: "Ignorar definiciones de fuentes",
+DlgPasteRemoveStyles	: "Remover definiciones de estilo",
+
+// Color Picker
+ColorAutomatic	: "AutomÃ¡tico",
+ColorMoreColors	: "MÃ¡s Colores...",
+
+// Document Properties
+DocProps		: "Propiedades del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propiedades de la Referencia",
+DlgAnchorName		: "Nombre de la Referencia",
+DlgAnchorErrorName	: "Por favor, complete el nombre de la Referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "No se encuentra en el Diccionario",
+DlgSpellChangeTo		: "Cambiar a",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Todo",
+DlgSpellBtnReplace		: "Reemplazar",
+DlgSpellBtnReplaceAll	: "Reemplazar Todo",
+DlgSpellBtnUndo			: "Deshacer",
+DlgSpellNoSuggestions	: "- No hay sugerencias -",
+DlgSpellProgress		: "Control de OrtografÃ­a en progreso...",
+DlgSpellNoMispell		: "Control finalizado: no se encontraron errores",
+DlgSpellNoChanges		: "Control finalizado: no se ha cambiado ninguna palabra",
+DlgSpellOneChange		: "Control finalizado: se ha cambiado una palabra",
+DlgSpellManyChanges		: "Control finalizado: se ha cambiado %1 palabras",
+
+IeSpellDownload			: "MÃ³dulo de Control de OrtografÃ­a no instalado. Â¿Desea descargarlo ahora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Boton",
+DlgButtonTypeSbm	: "Enviar",
+DlgButtonTypeRst	: "Reestablecer",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nombre",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nombre",
+DlgFormAction	: "AcciÃ³n",
+DlgFormMethod	: "MÃ©todo",
+
+// Select Field Dialog
+DlgSelectName		: "Nombre",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "TamaÃ±o",
+DlgSelectLines		: "Lineas",
+DlgSelectChkMulti	: "Permitir mÃºltiple selecciÃ³n",
+DlgSelectOpAvail	: "Opciones disponibles",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Agregar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Subir",
+DlgSelectBtnDown	: "Bajar",
+DlgSelectBtnSetValue : "Establecer como predeterminado",
+DlgSelectBtnDelete	: "Eliminar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nombre",
+DlgTextareaCols	: "Columnas",
+DlgTextareaRows	: "Filas",
+
+// Text Field Dialog
+DlgTextName			: "Nombre",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Caracteres de ancho",
+DlgTextMaxChars		: "MÃ¡ximo caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "ContraseÃ±a",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nombre",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propiedades de ViÃ±etas",
+NumberedListProp	: "Propiedades de Numeraciones",
+DlgLstStart			: "Inicio",
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "CÃ­rculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Cuadrado",
+DlgLstTypeNumbers	: "NÃºmeros (1, 2, 3)",
+DlgLstTypeLCase		: "letras en minÃºsculas (a, b, c)",
+DlgLstTypeUCase		: "letras en mayÃºsculas (A, B, C)",
+DlgLstTypeSRoman	: "NÃºmeros Romanos (i, ii, iii)",
+DlgLstTypeLRoman	: "NÃºmeros Romanos (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fondo",
+DlgDocColorsTab		: "Colores y MÃ¡rgenes",
+DlgDocMetaTab		: "Meta InformaciÃ³n",
+
+DlgDocPageTitle		: "TÃ­tulo de PÃ¡gina",
+DlgDocLangDir		: "OrientaciÃ³n de idioma",
+DlgDocLangDirLTR	: "Izq. a Derecha (LTR)",
+DlgDocLangDirRTL	: "Der. a Izquierda (RTL)",
+DlgDocLangCode		: "CÃ³digo de Idioma",
+DlgDocCharSet		: "Codif. de Conjunto de Caracteres",
+DlgDocCharSetCE		: "Centro Europeo",
+DlgDocCharSetCT		: "Chino Tradicional (Big5)",
+DlgDocCharSetCR		: "CirÃ­lico",
+DlgDocCharSetGR		: "Griego",
+DlgDocCharSetJP		: "JaponÃ©s",
+DlgDocCharSetKR		: "Coreano",
+DlgDocCharSetTR		: "Turco",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europeo occidental",
+DlgDocCharSetOther	: "Otra CodificaciÃ³n",
+
+DlgDocDocType		: "Encabezado de Tipo de Documento",
+DlgDocDocTypeOther	: "Otro Encabezado",
+DlgDocIncXHTML		: "Incluir Declaraciones XHTML",
+DlgDocBgColor		: "Color de Fondo",
+DlgDocBgImage		: "URL de Imagen de Fondo",
+DlgDocBgNoScroll	: "Fondo sin rolido",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "VÃ­nculo",
+DlgDocCVisited		: "VÃ­nculo Visitado",
+DlgDocCActive		: "VÃ­nculo Activo",
+DlgDocMargins		: "MÃ¡rgenes de PÃ¡gina",
+DlgDocMaTop			: "Tope",
+DlgDocMaLeft		: "Izquierda",
+DlgDocMaRight		: "Derecha",
+DlgDocMaBottom		: "Pie",
+DlgDocMeIndex		: "Claves de indexaciÃ³n del Documento (separados por comas)",
+DlgDocMeDescr		: "DescripciÃ³n del Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista Previa",
+
+// Templates Dialog
+Templates			: "Plantillas",
+DlgTemplatesTitle	: "Contenido de Plantillas",
+DlgTemplatesSelMsg	: "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderÃ¡):",
+DlgTemplatesLoading	: "Cargando lista de Plantillas. Por favor, aguarde...",
+DlgTemplatesNoTpl	: "(No hay plantillas definidas)",
+DlgTemplatesReplace	: "Reemplazar el contenido actual",
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca de",
+DlgAboutBrowserInfoTab	: "InformaciÃ³n de Navegador",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "versiÃ³n",
+DlgAboutInfo		: "Para mayor informaciÃ³n por favor dirigirse a"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/km.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/km.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/km.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Khmer language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "áž”áž„áŸ’ážšáž½áž˜ážšáž”áž¶áž§áž”ážšáž€ážŽáŸ",
+ToolbarExpand		: "áž–áž„áŸ’ážšáž¸áž€ážšáž”áž¶áž§áž”ážšážŽáŸ",
+
+// Toolbar Items and Context Menu
+Save				: "ážšáž€áŸ’ážŸáž¶áž‘áž»áž€",
+NewPage				: "áž‘áŸ†áž–áŸážšážáŸ’áž˜áž¸",
+Preview				: "áž˜áž¾áž›ážŸáž¶áž€áž›áŸ’áž”áž„",
+Cut					: "áž€áž¶ážáŸ‹áž™áž€",
+Copy				: "áž…áŸ†áž›áž„áž™áž€",
+Paste				: "áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹",
+PasteText			: "áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹áž‡áž¶áž¢ážáŸ’ážáž”áž‘áž’áž˜áŸ’áž˜ážáž¶",
+PasteWord			: "áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹áž–áž¸ Word",
+Print				: "áž”áŸ„áŸ‡áž–áž»áž˜áŸ’áž—",
+SelectAll			: "áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸáž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+RemoveFormat		: "áž›áž”áŸ‹áž…áŸ„áž› áž€áž¶ážšážšáž…áž“áž¶",
+InsertLinkLbl		: "ážˆáŸ’áž“áž¶áž”áŸ‹",
+InsertLink			: "áž”áž“áŸ’ážáŸ‚áž˜/áž€áŸ‚áž”áŸ’ážšáŸ‚ ážˆáŸ’áž“áž¶áž”áŸ‹",
+RemoveLink			: "áž›áž”áŸ‹ážˆáŸ’áž“áž¶áž”áŸ‹",
+Anchor				: "áž”áž“áŸ’ážáŸ‚áž˜/áž€áŸ‚áž”áŸ’ážšáŸ‚ áž™áž»ážáŸ’áž€áž¶",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "ážšáž¼áž”áž—áž¶áž–",
+InsertImage			: "áž”áž“áŸ’ážáŸ‚áž˜/áž€áŸ‚áž”áŸ’ážšáŸ‚ ážšáž¼áž”áž—áž¶áž–",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "áž”áž“áŸ’ážáŸ‚áž˜/áž€áŸ‚áž”áŸ’ážšáŸ‚ Flash",
+InsertTableLbl		: "ážáž¶ážšáž¶áž„",
+InsertTable			: "áž”áž“áŸ’ážáŸ‚áž˜/áž€áŸ‚áž”áŸ’ážšáŸ‚ ážáž¶ážšáž¶áž„",
+InsertLineLbl		: "áž”áž“áŸ’áž‘áž¶ážáŸ‹",
+InsertLine			: "áž”áž“áŸ’ážáŸ‚áž˜áž”áž“áŸ’áž‘áž¶ážáŸ‹áž•áŸ’ážáŸáž€",
+InsertSpecialCharLbl: "áž¢áž€áŸ’ážŸážšáž–áž·ážŸáŸážŸ",
+InsertSpecialChar	: "áž”áž“áŸ’ážáŸ‚áž˜áž¢áž€áŸ’ážŸážšáž–áž·ážŸáŸážŸ",
+InsertSmileyLbl		: "ážšáž¼áž”áž—áž¶áž–",
+InsertSmiley		: "áž”áž“áŸ’ážáŸ‚áž˜ ážšáž¼áž”áž—áž¶áž–",
+About				: "áž¢áŸ†áž–áž¸ FCKeditor",
+Bold				: "áž¢áž€áŸ’ážŸážšážŠáž·ážáž’áŸ†",
+Italic				: "áž¢áž€áŸ’ážŸážšáž•áŸ’ážáŸáž€",
+Underline			: "ážŠáž·ážáž”áž“áŸ’áž‘áž¶ážáŸ‹áž–áž¸áž€áŸ’ážšáŸ„áž˜áž¢áž€áŸ’ážŸážš",
+StrikeThrough		: "ážŠáž·ážáž”áž“áŸ’áž‘áž¶ážáŸ‹áž–áž¶áž€áŸ‹áž€ážŽáŸ’ážáž¶áž›áž¢áž€áŸ’ážŸážš",
+Subscript			: "áž¢áž€áŸ’ážŸážšážáž¼áž…áž€áŸ’ážšáŸ„áž˜",
+Superscript			: "áž¢áž€áŸ’ážŸážšážáž¼áž…áž›áž¾",
+LeftJustify			: "ážáŸ†ážšáž¹áž˜áž†áŸ’ážœáŸáž„",
+CenterJustify		: "ážáŸ†ážšáž¹áž˜áž€ážŽáŸ’ážáž¶áž›",
+RightJustify		: "ážáŸ†ážšáž¹áž˜ážŸáŸ’ážáž¶áŸ†",
+BlockJustify		: "ážáŸ†ážšáž¹áž˜ážŸáž„ážáž¶áž„",
+DecreaseIndent		: "áž”áž“áŸ’ážáž™áž€áž¶ážšáž…áž¼áž›áž”áž“áŸ’áž‘áž¶ážáŸ‹",
+IncreaseIndent		: "áž”áž“áŸ’ážáŸ‚áž˜áž€áž¶ážšáž…áž¼áž›áž”áž“áŸ’áž‘áž¶ážáŸ‹",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ážŸáž¶ážšáž¡áž¾áž„ážœáž·áž‰",
+Redo				: "áž’áŸ’ážœáž¾áž¡áž¾áž„ážœáž·áž‰",
+NumberedListLbl		: "áž”áž‰áŸ’áž‡áž¸áž‡áž¶áž¢áž€áŸ’ážŸážš",
+NumberedList		: "áž”áž“áŸ’ážáŸ‚áž˜/áž›áž”áŸ‹ áž”áž‰áŸ’áž‡áž¸áž‡áž¶áž¢áž€áŸ’ážŸážš",
+BulletedListLbl		: "áž”áž‰áŸ’áž‡áž¸áž‡áž¶ážšáž„áŸ’ážœáž„áŸ‹áž˜áž¼áž›",
+BulletedList		: "áž”áž“áŸ’ážáŸ‚áž˜/áž›áž”áŸ‹ áž”áž‰áŸ’áž‡áž¸áž‡áž¶ážšáž„áŸ’ážœáž„áŸ‹áž˜áž¼áž›",
+ShowTableBorders	: "áž”áž„áŸ’áž áž¶áž‰ážŸáŸŠáž»áž˜ážáž¶ážšáž¶áž„",
+ShowDetails			: "áž”áž„áŸ’áž áž¶áž‰áž–áž·ážŸáŸ’ážáž¶ážš",
+Style				: "áž˜áŸ‰áž¼áž",
+FontFormat			: "ážšáž…áž“áž¶",
+Font				: "áž áŸ’ážœáž»áž„",
+FontSize			: "áž‘áŸ†áž áŸ†",
+TextColor			: "áž–ážŽáŸŒáž¢áž€áŸ’ážŸážš",
+BGColor				: "áž–ážŽáŸŒáž•áŸ’áž‘áŸƒážáž¶áž„áž€áŸ’ážšáŸ„áž™",
+Source				: "áž€áž¼áž",
+Find				: "ážŸáŸ’ážœáŸ‚áž„ážšáž€",
+Replace				: "áž‡áŸ†áž“áž½ážŸ",
+SpellCheck			: "áž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’",
+UniversalKeyboard	: "áž€áŸ’ážáž¶ážšáž–áž»áž˜áŸ’áž—áž¢áž€áŸ’ážŸážšážŸáž€áž›",
+PageBreakLbl		: "áž€áž¶ážšáž•áŸ’ážáž¶áž…áŸ‹áž‘áŸ†áž–áŸážš",
+PageBreak			: "áž”áž“áŸ’ážáŸ‚áž˜ áž€áž¶ážšáž•áŸ’ážáž¶áž…áŸ‹áž‘áŸ†áž–áŸážš",
+
+Form			: "áž”áŸ‚áž”áž”áž‘",
+Checkbox		: "áž”áŸ’ážšáž¢áž”áŸ‹áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+RadioButton		: "áž”áŸ‰áž¼ážáž»áž“ážšáž„áŸ’ážœáž„áŸ‹áž˜áž¼áž›",
+TextField		: "áž‡áž½ážšážŸážšážŸáŸážšáž¢ážáŸ’ážáž”áž‘",
+Textarea		: "ážáŸ†áž”áž“áŸ‹ážŸážšážŸáŸážšáž¢ážáŸ’ážáž”áž‘",
+HiddenField		: "áž‡áž½ážšáž›áž¶áž€áŸ‹",
+Button			: "áž”áŸ‰áž¼ážáž»áž“",
+SelectionField	: "áž‡áž½ážšáž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+ImageButton		: "áž”áŸ‰áž¼ážáž»áž“ážšáž¼áž”áž—áž¶áž–",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "áž€áŸ‚áž”áŸ’ážšáŸ‚ážˆáŸ’áž“áž¶áž”áŸ‹",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "áž›áž”áŸ‹áž‡áž½ážšáž•áŸ’ážáŸáž€",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "áž›áž”áŸ‹áž‡áž½ážšážˆážš",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "áž›áž”áŸ‹ážŸáŸ‚áž›",
+MergeCells			: "áž”áž‰áŸ’áž‡áž¼áž›ážŸáŸ‚áž›",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "áž›áž”áŸ‹ážáž¶ážšáž¶áž„",
+CellProperties		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážŸáŸ‚áž›",
+TableProperties		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážáž¶ážšáž¶áž„",
+ImageProperties		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážšáž¼áž”áž—áž¶áž–",
+FlashProperties		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ Flash",
+
+AnchorProp			: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž™áž»ážáŸ’áž€áž¶",
+ButtonProp			: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ áž”áŸ‰áž¼ážáž»áž“",
+CheckboxProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž”áŸ’ážšáž¢áž”áŸ‹áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+HiddenFieldProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž‡áž½ážšáž›áž¶áž€áŸ‹",
+RadioButtonProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž”áŸ‰áž¼ážáž»áž“ážšáž„áŸ’ážœáž„áŸ‹",
+ImageButtonProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž”áŸ‰áž¼ážáž»áž“ážšáž¼áž”áž—áž¶áž–",
+TextFieldProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž‡áž½ážšáž¢ážáŸ’ážáž”áž‘",
+SelectionFieldProp	: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž‡áž½ážšáž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+TextareaProp		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž€áž“áŸ’áž›áŸ‚áž„ážŸážšážŸáŸážšáž¢ážáŸ’ážáž”áž‘",
+FormProp			: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž”áŸ‚áž”áž”áž‘",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "áž€áŸ†áž–áž»áž„ážŠáŸ†ážŽáž¾ážšáž€áž¶ážš XHTML áŸ” ážŸáž¼áž˜ážšáž„áž…áž¶áŸ†...",
+Done				: "áž…áž”áŸ‹ážšáž½áž…ážšáž¶áž›áŸ‹",
+PasteWordConfirm	: "áž¢ážáŸ’ážáž”áž‘ážŠáŸ‚áž›áž›áŸ„áž€áž¢áŸ’áž“áž€áž”áŸ†ážšáž»áž„áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹ áž áž¶áž€áŸ‹áž”áž¸ážŠáž¼áž…áž‡áž¶ážáŸ’ážšáž¼ážœáž…áŸ†áž›áž„áž˜áž€áž–áž¸áž€áž˜áŸ’áž˜ážœáž·áž’áž¸â€‹Wordâ€‹áŸ” ážáž¾áž›áŸ„áž€áž¢áŸ’áž“áž€áž…áž„áŸ‹ážŸáŸ†áž¢áž¶ážáž˜áž»áž“áž…áŸ†áž›áž„áž¢ážáŸ’ážáž”áž‘ážŠáž¶áž€áŸ‹áž‘áŸ?",
+NotCompatiblePaste	: "áž–áž¶áž€áŸ’áž™áž”áž‰áŸ’áž‡áž¶áž“áŸáŸ‡áž”áŸ’ážšáž¾áž”áž¶áž“ážáŸ‚áž‡áž¶áž˜áž½áž™ Internet Explorer áž€áŸ†ážšáž·áž 5.5 ážšážº áž›áž¾ážŸáž“áŸáŸ‡ áŸ” ážáž¾áž›áŸ„áž€áž¢áŸ’áž“áž€áž…áž„áŸ‹áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹ážŠáŸ„áž™áž˜áž·áž“áž…áž¶áŸ†áž”áž¶áž…áŸ‹ážŸáŸ†áž¢áž¶ážáž‘áŸ?",
+UnknownToolbarItem	: "ážœážáŸ’ážáž»áž›áž¾ážšáž”áž¶áž§áž”ážšáž€ážŽáŸ áž˜áž·áž“ážŸáŸ’áž‚áž¶áž›áŸ‹ \"%1\"",
+UnknownCommand		: "ážˆáŸ’áž˜áŸ„áŸ‡áž–áž¶áž€áŸ’áž™áž”áž‰áŸ’áž‡áž¶ áž˜áž·áž“ážŸáŸ’áž‚áž¶áž›áŸ‹ \"%1\"",
+NotImplemented		: "áž–áž¶áž€áŸ’áž™áž”áž‰áŸ’áž‡áž¶ áž˜áž·áž“áž”áž¶áž“áž¢áž“áž»ážœážáŸ’áž",
+UnknownToolbarSet	: "ážšáž”áž¶áž§áž”ážšáž€ážŽáŸ \"%1\" áž–áž»áŸ†áž˜áž¶áž“ áŸ”",
+NoActiveX			: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážŸáž»ážœážáŸ’ážáž—áž¶áž–ážšáž”ážŸáŸ‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážšáž»áž€ážšáž€ážšáž”ážŸáŸ‹áž›áŸ„áž€áž¢áŸ’áž“áž€ áž“áŸáŸ‡â€‹áž¢áž¶áž…áž’áŸ’ážœáž¾áž¢áŸ„áž™áž›áŸ„áž€áž¢áŸ’áž“áž€áž˜áž·áž“áž¢áž¶áž…áž”áŸ’ážšáž¾áž˜áž»ážáž„áž¶ážšážáŸ’áž›áŸ‡ážšáž”ážŸáŸ‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážáž¶áž€áŸ‹ážáŸ‚áž„áž¢ážáŸ’ážáž”áž‘áž“áŸáŸ‡ áŸ” áž›áŸ„áž€áž¢áŸ’áž“áž€ážáŸ’ážšáž¼ážœáž€áŸ†ážŽážáŸ‹áž¢áŸ„áž™ \"ActiveX áž“áž·áž„â€‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸áž‡áŸ†áž“áž½áž™áž€áŸ’áž“áž»áž„ (plug-ins)\" áž¢áŸ„áž™ážŠáŸ†ážŽáž¾ážšáž€áž¶ážš áŸ” áž›áŸ„áž€áž¢áŸ’áž“áž€áž¢áž¶áž…áž‡áž½áž”áž”áŸ’ážšáž‘áŸ‡áž“áž¹áž„ áž”áž‰áŸ’áž áž¶ áž–áŸ’ážšáž˜áž‡áž¶áž˜áž½áž™áž“áž¹áž„áž€áž¶ážšáž”áž¶ážáŸ‹áž”áž„áŸ‹áž˜áž»ážáž„áž¶ážšážŽáž¶áž˜áž½áž™ážšáž”ážŸáŸ‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážáž¶áž€áŸ‹ážáŸ‚áž„áž¢ážáŸ’ážáž”áž‘áž“áŸáŸ‡ áŸ”",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "ážœáž¸áž“ážŠáž¼ážœáž˜áž·áž“áž¢áž¶áž…áž”áž¾áž€áž”áž¶áž“áž‘áŸ áŸ” ážŸáž¼áž˜áž–áž·áž“áž·ážáŸ’áž™áž…áŸ†áž–áŸ„áŸ‡áž€áž˜áŸ’áž˜ážœáž·áž’áž¸áž”áž·áž‘ ážœáž¸áž“ážŠáž¼ážœáž›áŸ„áž (popup) ážáž¶ážáž¾ážœáž¶ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšážšážºáž‘áŸ áŸ”",
+
+// Dialogs
+DlgBtnOK			: "áž™áž›áŸ‹áž–áŸ’ážšáž˜",
+DlgBtnCancel		: "áž˜áž·áž“áž™áž›áŸ‹áž–áŸ’ážšáž˜",
+DlgBtnClose			: "áž”áž·áž‘",
+DlgBtnBrowseServer	: "áž˜áž¾áž›",
+DlgAdvancedTag		: "áž€áŸ†ážšáž·ážážáŸ’áž–ážŸáŸ‹",
+DlgOpOther			: "<áž•áŸ’ážŸáŸáž„áž‘áŸ…áž>",
+DlgInfoTab			: "áž–ážáŸŒáž˜áž¶áž“",
+DlgAlertUrl			: "ážŸáž¼áž˜ážŸážšážŸáŸážš URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<áž˜áž·áž“áž˜áŸ‚áž“>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "áž‘áž·ážŸážŠáŸ…áž—áž¶ážŸáž¶",
+DlgGenLangDirLtr	: "áž–áž¸áž†áŸ’ážœáŸáž„áž‘áŸ…ážŸáŸ’ážáž¶áŸ†(LTR)",
+DlgGenLangDirRtl	: "áž–áž¸ážŸáŸ’ážáž¶áŸ†áž‘áŸ…áž†áŸ’ážœáŸáž„(RTL)",
+DlgGenLangCode		: "áž›áŸážáž€áž¼ážáž—áž¶ážŸáž¶",
+DlgGenAccessKey		: "ážƒáž¸ ážŸáŸ†ážšáž¶áž”áŸ‹áž…áž¼áž›",
+DlgGenName			: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgGenTabIndex		: "áž›áŸáž Tab",
+DlgGenLongDescr		: "áž¢áž’áž·áž”áŸ’áž”áž¶áž™ URL ážœáŸ‚áž„",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "áž…áŸ†ážŽáž„áž‡áž¾áž„ áž”áŸ’ážšáž¹áž€áŸ’ážŸáž¶",
+DlgGenContType		: "áž”áŸ’ážšáž—áŸáž‘áž¢ážáŸ’ážáž”áž‘ áž”áŸ’ážšáž¹áž€áŸ’ážŸáž¶",
+DlgGenLinkCharset	: "áž›áŸážáž€áž¼ážáž¢áž€áŸ’ážŸážšážšáž”ážŸáŸ‹ážˆáŸ’áž“áž¶áž”áŸ‹",
+DlgGenStyle			: "áž˜áŸ‰áž¼áž",
+
+// Image Dialog
+DlgImgTitle			: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážšáž¼áž”áž—áž¶áž–",
+DlgImgInfoTab		: "áž–ážáŸŒáž˜áž¶áž“áž¢áŸ†áž–áž¸ážšáž¼áž”áž—áž¶áž–",
+DlgImgBtnUpload		: "áž”áž‰áŸ’áž‡áž¼áž“áž‘áŸ…áž€áž¶áž“áŸ‹áž˜áŸ‰áž¶ážŸáŸŠáž¸áž“áž•áŸ’ážáž›áŸ‹ážŸáŸážœáž¶",
+DlgImgURL			: "URL",
+DlgImgUpload		: "áž‘áž¶áž‰áž™áž€",
+DlgImgAlt			: "áž¢ážáŸ’ážáž”áž‘áž‡áŸ†áž“áž½ážŸ",
+DlgImgWidth			: "áž‘áž‘áž¹áž„",
+DlgImgHeight		: "áž€áŸ†áž–ážŸáŸ‹",
+DlgImgLockRatio		: "áž¢ážáŸ’ážšáž¶áž¡áž»áž€",
+DlgBtnResetSize		: "áž€áŸ†ážŽážáŸ‹áž‘áŸ†áž áŸ†áž¡áž¾áž„ážœáž·áž‰",
+DlgImgBorder		: "ážŸáŸŠáž»áž˜",
+DlgImgHSpace		: "áž‚áŸ†áž›áž¶ážáž‘áž‘áž¹áž„",
+DlgImgVSpace		: "áž‚áŸ†áž›áž¶ážáž”ážŽáŸ’ážáŸ„áž™",
+DlgImgAlign			: "áž€áŸ†ážŽážáŸ‹áž‘áž¸ážáž¶áŸ†áž„",
+DlgImgAlignLeft		: "ážáž¶áž„áž†áŸ’ážœáž„",
+DlgImgAlignAbsBottom: "Abs Bottom",	//MISSING
+DlgImgAlignAbsMiddle: "Abs Middle",	//MISSING
+DlgImgAlignBaseline	: "áž”áž“áŸ’áž‘áž¶ážáŸ‹áž‡áž¶áž˜áž¼áž›ážŠáŸ’áž‹áž¶áž“",
+DlgImgAlignBottom	: "ážáž¶áž„áž€áŸ’ážšáŸ„áž˜",
+DlgImgAlignMiddle	: "áž€ážŽáŸ’ážáž¶áž›",
+DlgImgAlignRight	: "ážáž¶áž„ážŸáŸ’ážáž¶áŸ†",
+DlgImgAlignTextTop	: "áž›áž¾áž¢ážáŸ’ážáž”áž‘",
+DlgImgAlignTop		: "ážáž¶áž„áž›áž¾",
+DlgImgPreview		: "áž˜áž¾áž›ážŸáž¶áž€áž›áŸ’áž”áž„",
+DlgImgAlertUrl		: "ážŸáž¼áž˜ážŸážšážŸáŸážšáž„áž¶ážŸáŸáž™ážŠáŸ’áž‹áž¶áž“ážšáž”ážŸáŸ‹ážšáž¼áž”áž—áž¶áž–",
+DlgImgLinkTab		: "ážˆáŸ’áž“áž¶áž”áŸ‹",
+
+// Flash Dialog
+DlgFlashTitle		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ Flash",
+DlgFlashChkPlay		: "áž›áŸáž„ážŠáŸ„áž™ážŸáŸ’ážœáŸáž™áž”áŸ’ážšážœážáŸ’áž",
+DlgFlashChkLoop		: "áž…áŸ†áž“áž½áž“ážŠáž„",
+DlgFlashChkMenu		: "áž”áž„áŸ’áž áž¶áž‰ áž˜ážºáž“áž»áž™ážšáž”ážŸáŸ‹ Flash",
+DlgFlashScale		: "áž‘áŸ†áž áŸ†",
+DlgFlashScaleAll	: "áž”áž„áŸ’áž áž¶áž‰áž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+DlgFlashScaleNoBorder	: "áž˜áž·áž“áž”áž„áŸ’áž áž¶áž‰ážŸáŸŠáž»áž˜",
+DlgFlashScaleFit	: "ážáŸ’ážšáž¼ážœáž›áŸ’áž˜áž˜",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ážˆáŸ’áž“áž¶áž”áŸ‹",
+DlgLnkInfoTab		: "áž–ážáŸŒáž˜áž¶áž“áž¢áŸ†áž–áž¸ážˆáŸ’áž“áž¶áž”áŸ‹",
+DlgLnkTargetTab		: "áž‚áŸ„áž›ážŠáŸ…",
+
+DlgLnkType			: "áž”áŸ’ážšáž—áŸáž‘ážˆáŸ’áž“áž¶áž”áŸ‹",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "áž™áž»ážáŸ’áž€áž¶áž“áŸ…áž€áŸ’áž“áž»áž„áž‘áŸ†áž–áŸážšáž“áŸáŸ‡",
+DlgLnkTypeEMail		: "áž¢áŸŠáž¸áž˜áŸ‚áž›",
+DlgLnkProto			: "áž”áŸ’ážšáž¼ážáž¼áž€áž¼áž›",
+DlgLnkProtoOther	: "<áž•áŸ’ážŸáŸáž„áž‘áŸ€áž>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸáž™áž»ážáŸ’áž€áž¶",
+DlgLnkAnchorByName	: "ážáž¶áž˜ážˆáŸ’áž˜áŸ„áŸ‡ážšáž”ážŸáŸ‹áž™áž»ážáŸ’áž€áž¶",
+DlgLnkAnchorById	: "ážáž¶áž˜ Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",	//MISSING
+DlgLnkEMail			: "áž¢áŸŠáž¸áž˜áŸ‚áž›",
+DlgLnkEMailSubject	: "áž…áŸ†ážŽáž„áž‡áž¾áž„áž¢ážáŸ’ážáž”áž‘",
+DlgLnkEMailBody		: "áž¢ážáŸ’ážáž”áž‘",
+DlgLnkUpload		: "áž‘áž¶áž‰áž™áž€",
+DlgLnkBtnUpload		: "áž‘áž¶áž‰áž™áž€",
+
+DlgLnkTarget		: "áž‚áŸ„áž›ážŠáŸ…",
+DlgLnkTargetFrame	: "<áž áŸ’ážœáŸ’ážšáŸáž˜>",
+DlgLnkTargetPopup	: "<ážœáž¸áž“ážŠáž¼ážœ áž›áŸ„áž>",
+DlgLnkTargetBlank	: "ážœáž¸áž“ážŠáž¼ážœážáŸ’áž˜áž¸ (_blank)",
+DlgLnkTargetParent	: "ážœáž¸áž“ážŠáž¼ážœáž˜áŸ (_parent)",
+DlgLnkTargetSelf	: "ážœáž¸áž“ážŠáž¼ážœážŠážŠáŸ‚áž› (_self)",
+DlgLnkTargetTop		: "ážœáž¸áž“ážŠáž¼ážœáž“áŸ…áž›áž¾áž‚áŸ(_top)",
+DlgLnkTargetFrameName	: "ážˆáŸ’áž˜áŸ„áŸ‡áž áŸ’ážšáŸ’ážœáŸáž˜ážŠáŸ‚áž›áž‡áž¶áž‚áŸ„áž›ážŠáŸ…",
+DlgLnkPopWinName	: "ážˆáŸ’áž˜áŸ„áŸ‡ážœáž¸áž“ážŠáž¼ážœáž›áŸ„áž",
+DlgLnkPopWinFeat	: "áž›áž€áŸ’ážážŽáŸ‡ážšáž”ážŸáŸ‹ážœáž¸áž“ážŠáž¼áž›áž›áŸ„áž",
+DlgLnkPopResize		: "áž‘áŸ†áž áŸ†áž¢áž¶áž…áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+DlgLnkPopLocation	: "ážšáž”áž¶ áž‘áž¸ážáž¶áŸ†áž„",
+DlgLnkPopMenu		: "ážšáž”áž¶ áž˜ážºáž“áž»áž™",
+DlgLnkPopScroll		: "ážšáž”áž¶ áž‘áž¶áž‰",
+DlgLnkPopStatus		: "ážšáž”áž¶ áž–ážáŸŒáž˜áž¶áž“",
+DlgLnkPopToolbar	: "ážšáž”áž¶ áž©áž”áž€ážšážŽáŸ",
+DlgLnkPopFullScrn	: "áž¢áŸáž€áŸ’ážšáž»áž„áž–áŸáž‰(IE)",
+DlgLnkPopDependent	: "áž¢áž¶ážŸáŸ’ážšáŸáž™áž›áž¾ (Netscape)",
+DlgLnkPopWidth		: "áž‘áž‘áž¹áž„",
+DlgLnkPopHeight		: "áž€áŸ†áž–ážŸáŸ‹",
+DlgLnkPopLeft		: "áž‘áž¸ážáž¶áŸ†áž„ážáž¶áž„áž†áŸ’ážœáŸáž„",
+DlgLnkPopTop		: "áž‘áž¸ážáž¶áŸ†áž„ážáž¶áž„áž›áž¾",
+
+DlnLnkMsgNoUrl		: "ážŸáž¼áž˜ážŸážšážŸáŸážš áž¢áž¶ážŸáŸáž™ážŠáŸ’áž‹áž¶áž“ URL",
+DlnLnkMsgNoEMail	: "ážŸáž¼áž˜ážŸážšážŸáŸážš áž¢áž¶ážŸáŸáž™ážŠáŸ’áž‹áž¶áž“ áž¢áŸŠáž¸áž˜áŸ‚áž›",
+DlnLnkMsgNoAnchor	: "ážŸáž¼áž˜áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ áž™áž»ážáŸ’áž€áž¶",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ áž–ážŽáŸŒ",
+DlgColorBtnClear	: "áž›áž”áŸ‹",
+DlgColorHighlight	: "áž•áž¶ážáŸ‹áž–ážŽáŸŒ",
+DlgColorSelected	: "áž”áž¶áž“áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+
+// Smiley Dialog
+DlgSmileyTitle		: "áž”áž‰áŸ’áž‡áž¼áž›ážšáž¼áž”áž—áž¶áž–",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "ážáž¼áž¢áž€áŸ’ážŸážšáž–áž·ážŸáŸážŸ",
+
+// Table Dialog
+DlgTableTitle		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ ážáž¶ážšáž¶áž„",
+DlgTableRows		: "áž‡áž½ážšáž•áŸ’ážáŸáž€",
+DlgTableColumns		: "áž‡áž½ážšážˆážš",
+DlgTableBorder		: "áž‘áŸ†áž áŸ†ážŸáŸŠáž»áž˜",
+DlgTableAlign		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž‘áž¸ážáž¶áŸ†áž„",
+DlgTableAlignNotSet	: "<áž˜áž·áž“áž€áŸ†ážŽážáŸ‹>",
+DlgTableAlignLeft	: "ážáž¶áž„áž†áŸ’ážœáŸáž„",
+DlgTableAlignCenter	: "áž€ážŽáŸ’ážáž¶áž›",
+DlgTableAlignRight	: "ážáž¶áž„ážŸáŸ’ážáž¶áŸ†",
+DlgTableWidth		: "áž‘áž‘áž¹áž„",
+DlgTableWidthPx		: "áž—áž¸áž€ážŸáŸ‚áž›",
+DlgTableWidthPc		: "áž—áž¶áž‚ážšáž™",
+DlgTableHeight		: "áž€áŸ†áž–ážŸáŸ‹",
+DlgTableCellSpace	: "áž‚áŸ†áž›áž¶ážážŸáŸ‚áž›",
+DlgTableCellPad		: "áž‚áŸ‚áž˜ážŸáŸ‚áž›",
+DlgTableCaption		: "áž…áŸ†ážŽáž„áž‡áž¾áž„",
+DlgTableSummary		: "ážŸáŸáž…áž€áŸ’ážáž¸ážŸáž„áŸ’ážáŸáž”",
+
+// Table Cell Dialog
+DlgCellTitle		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ ážŸáŸ‚áž›",
+DlgCellWidth		: "áž‘áž‘áž¹áž„",
+DlgCellWidthPx		: "áž—áž¸áž€ážŸáŸ‚áž›",
+DlgCellWidthPc		: "áž—áž¶áž‚ážšáž™",
+DlgCellHeight		: "áž€áŸ†áž–ážŸáŸ‹",
+DlgCellWordWrap		: "áž”áž„áŸ’áž áž¶áž‰áž¢ážáŸ’ážáž”áž‘áž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+DlgCellWordWrapNotSet	: "<áž˜áž·áž“áž€áŸ†ážŽážáŸ‹>",
+DlgCellWordWrapYes	: "áž”áž¶áž‘(áž…áž¶)",
+DlgCellWordWrapNo	: "áž‘áŸ",
+DlgCellHorAlign		: "ážáŸ†ážšáž¹áž˜áž•áŸ’ážáŸáž€",
+DlgCellHorAlignNotSet	: "<áž˜áž·áž“áž€áŸ†ážŽážáŸ‹>",
+DlgCellHorAlignLeft	: "ážáž¶áž„áž†áŸ’ážœáŸáž„",
+DlgCellHorAlignCenter	: "áž€ážŽáŸ’ážáž¶áž›",
+DlgCellHorAlignRight: "Right",	//MISSING
+DlgCellVerAlign		: "ážáŸ†ážšáž¹áž˜ážˆážš",
+DlgCellVerAlignNotSet	: "<áž˜áž·áž“áž€ážŽážáŸ‹>",
+DlgCellVerAlignTop	: "ážáž¶áž„áž›áž¾",
+DlgCellVerAlignMiddle	: "áž€ážŽáŸ’ážáž¶áž›",
+DlgCellVerAlignBottom	: "ážáž¶áž„áž€áŸ’ážšáŸ„áž˜",
+DlgCellVerAlignBaseline	: "áž”áž“áŸ’áž‘áž¶ážáŸ‹áž‡áž¶áž˜áž¼áž›ážŠáŸ’áž‹áž¶áž“",
+DlgCellRowSpan		: "áž”áž‰áŸ’áž‡áž¼áž›áž‡áž½ážšáž•áŸ’ážáŸáž€",
+DlgCellCollSpan		: "áž”áž‰áŸ’áž‡áž¼áž›áž‡áž½ážšážˆážš",
+DlgCellBackColor	: "áž–ážŽáŸŒáž•áŸ’áž“áŸ‚áž€ážáž¶áž„áž€áŸ’ážšáŸ„áž˜",
+DlgCellBorderColor	: "áž–ážŽáŸŒážŸáŸŠáž»áž˜",
+DlgCellBtnSelect	: "áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "ážŸáŸ’ážœáŸ‚áž„ážšáž€",
+DlgFindFindBtn		: "ážŸáŸ’ážœáŸ‚áž„ážšáž€",
+DlgFindNotFoundMsg	: "áž–áž¶áž€áŸ’áž™áž“áŸáŸ‡ ážšáž€áž˜áž·áž“ážƒáž¾áž‰áž‘áŸ áŸ”",
+
+// Replace Dialog
+DlgReplaceTitle			: "áž‡áŸ†áž“áž½ážŸ",
+DlgReplaceFindLbl		: "ážŸáŸ’ážœáŸ‚áž„ážšáž€áž¢áŸ’ážœáž¸:",
+DlgReplaceReplaceLbl	: "áž‡áŸ†áž“áž½ážŸáž‡áž¶áž˜áž½áž™:",
+DlgReplaceCaseChk		: "áž€ážšážŽáŸ‰ážáŸ’ážšáž¼ážœážšáž€",
+DlgReplaceReplaceBtn	: "áž‡áŸ†áž“áž½ážŸ",
+DlgReplaceReplAllBtn	: "áž‡áŸ†áž“áž½ážŸáž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+DlgReplaceWordChk		: "ážáŸ’ážšáž¼ážœáž–áž¶áž€áŸ’áž™áž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážŸáž»ážœážáŸ’ážáž—áž¶áž–ážšáž”ážŸáŸ‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážšáž»áž€ážšáž€ážšáž”ážŸáŸ‹áž›áŸ„áž€áž¢áŸ’áž“áž€ áž“áŸáŸ‡â€‹áž˜áž·áž“áž¢áž¶áž…áž’áŸ’ážœáž¾áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážáž¶áž€áŸ‹ážáŸ‚áž„áž¢ážáŸ’ážáž”áž‘ áž€áž¶ážáŸ‹áž¢ážáŸ’ážáž”áž‘áž™áž€ážŠáŸ„áž™ážŸáŸ’ážœáŸáž™áž”áŸ’ážšážœážáŸ’ážáž”áž¶áž“áž¡áž¾áž™ áŸ” ážŸáž¼áž˜áž”áŸ’ážšáž¾áž”áŸ’ážšáž¶ážŸáŸ‹áž”áž“áŸ’ážŸáŸ† ážƒáž¸ážŠáž¼áž…áž“áŸáŸ‡  (Ctrl+X) áŸ”",
+PasteErrorCopy	: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážŸáž»ážœážáŸ’ážáž—áž¶áž–ážšáž”ážŸáŸ‹áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážšáž»áž€ážšáž€ážšáž”ážŸáŸ‹áž›áŸ„áž€áž¢áŸ’áž“áž€ áž“áŸáŸ‡â€‹áž˜áž·áž“áž¢áž¶áž…áž’áŸ’ážœáž¾áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážáž¶áž€áŸ‹ážáŸ‚áž„áž¢ážáŸ’ážáž”áž‘ áž…áŸ†áž›áž„áž¢ážáŸ’ážáž”áž‘áž™áž€ážŠáŸ„áž™ážŸáŸ’ážœáŸáž™áž”áŸ’ážšážœážáŸ’ážáž”áž¶áž“áž¡áž¾áž™ áŸ” ážŸáž¼áž˜áž”áŸ’ážšáž¾áž”áŸ’ážšáž¶ážŸáŸ‹áž”áž“áŸ’ážŸáŸ† ážƒáž¸ážŠáž¼áž…áž“áŸáŸ‡ (Ctrl+C)áŸ”",
+
+PasteAsText		: "áž…áŸ†áž›áž„ážŠáž¶áž€áŸ‹áž¢ážáŸ’ážáž”áž‘áž’áž˜áŸ’áž˜ážáž¶",
+PasteFromWord	: "áž…áŸ†áž›áž„áž–áž¶áž€áŸ’áž™áž–áž¸áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ Word",
+
+DlgPasteMsg2	: "ážŸáž¼áž˜áž…áŸ†áž›áž„áž¢ážáŸ’ážáž”áž‘áž‘áŸ…ážŠáž¶áž€áŸ‹áž€áŸ’áž“áž»áž„áž”áŸ’ážšáž¢áž”áŸ‹ážŠáž¼áž…ážáž¶áž„áž€áŸ’ážšáŸ„áž˜ážŠáŸ„áž™áž”áŸ’ážšáž¾áž”áŸ’ážšáž¶ážŸáŸ‹ ážƒáž¸ â€‹(<STRONG>Ctrl+V</STRONG>) áž áž¾áž™áž…áž»áž… <STRONG>OK</STRONG> áŸ”",
+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
+DlgPasteIgnoreFont		: "áž˜áž·áž“áž‚áž·ážáž¢áŸ†áž–áž¸áž”áŸ’ážšáž—áŸáž‘áž–áž»áž˜áŸ’áž—áž¢áž€áŸ’ážŸážš",
+DlgPasteRemoveStyles	: "áž›áž”áŸ‹áž˜áŸ‰áž¼áž",
+
+// Color Picker
+ColorAutomatic	: "ážŸáŸ’ážœáŸáž™áž”áŸ’ážšážœážáŸ’áž",
+ColorMoreColors	: "áž–ážŽáŸŒáž•áŸ’ážŸáŸáž„áž‘áŸ€áž..",
+
+// Document Properties
+DocProps		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ áž¯áž€ážŸáž¶ážš",
+
+// Anchor Dialog
+DlgAnchorTitle		: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž…áŸ†ážŽáž„áž‡áž¾áž„áž™áž»áž‘áŸ’áž’ážáŸ’áž€áž¶",
+DlgAnchorName		: "ážˆáŸ’áž˜áŸ„áŸ‡áž™áž»áž‘áŸ’áž’ážáŸ’áž€áž¶",
+DlgAnchorErrorName	: "ážŸáž¼áž˜ážŸážšážŸáŸážš ážˆáŸ’áž˜áŸ„áŸ‡áž™áž»áž‘áŸ’áž’ážáŸ’áž€áž¶",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "áž‚áŸ’áž˜áž¶áž“áž€áŸ’áž“áž»áž„ážœáž…áž“áž¶áž“áž»áž€áŸ’ážšáž˜",
+DlgSpellChangeTo		: "áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážšáž‘áŸ…",
+DlgSpellBtnIgnore		: "áž˜áž·áž“áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+DlgSpellBtnIgnoreAll	: "áž˜áž·áž“áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš áž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+DlgSpellBtnReplace		: "áž‡áŸ†áž“áž½ážŸ",
+DlgSpellBtnReplaceAll	: "áž‡áŸ†áž“áž½ážŸáž‘áž¶áŸ†áž„áž¢ážŸáŸ‹",
+DlgSpellBtnUndo			: "ážŸáž¶ážšáž¡áž¾áž„ážœáž·áž‰",
+DlgSpellNoSuggestions	: "- áž‚áŸ’áž˜áž¶áž“ážŸáŸ†ážŽáž¾ážš -",
+DlgSpellProgress		: "áž€áŸ†áž–áž»áž„áž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’...",
+DlgSpellNoMispell		: "áž€áž¶ážšáž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’áž”áž¶áž“áž…áž”áŸ‹: áž‚áŸ’áž˜áž¶áž“áž€áŸ†áž áž»ážŸ",
+DlgSpellNoChanges		: "áž€áž¶ážšáž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’áž”áž¶áž“áž…áž”áŸ‹: áž–áž»áŸ†áž˜áž¶áž“áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+DlgSpellOneChange		: "áž€áž¶ážšáž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’áž”áž¶áž“áž…áž”áŸ‹: áž–áž¶áž€áŸ’áž™áž˜áž½áž™ážáŸ’ážšáž¼áž…áž”áž¶áž“áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+DlgSpellManyChanges		: "áž€áž¶ážšáž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’áž”áž¶áž“áž…áž”áŸ‹: %1 áž–áž¶áž€áŸ’áž™áž”áž¶áž“áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+
+IeSpellDownload			: "áž–áž»áŸ†áž˜áž¶áž“áž€áž˜áŸ’áž˜ážœáž·áž’áž¸áž–áž·áž“áž·ážáŸ’áž™áž¢áž€áŸ’ážážšáž¶ážœáž·ážšáž»áž‘áŸ’áž’ áŸ” ážáž¾áž…áž„áŸ‹áž‘áž¶áž‰áž™áž€áž–áž¸ážŽáž¶?",
+
+// Button Dialog
+DlgButtonText		: "áž¢ážáŸ’ážáž”áž‘(ážáŸ†áž›áŸƒ)",
+DlgButtonType		: "áž”áŸ’ážšáž—áŸáž‘",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgCheckboxValue	: "ážáŸ†áž›áŸƒ",
+DlgCheckboxSelected	: "áž”áž¶áž“áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ",
+
+// Form Dialog
+DlgFormName		: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgFormAction	: "ážŸáž€áž˜áŸ’áž˜áž—áž¶áž–",
+DlgFormMethod	: "ážœáž·áž’áž¸",
+
+// Select Field Dialog
+DlgSelectName		: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgSelectValue		: "ážáŸ†áž›áŸƒ",
+DlgSelectSize		: "áž‘áŸ†áž áŸ†",
+DlgSelectLines		: "áž”áž“áŸ’áž‘áž¶ážáŸ‹",
+DlgSelectChkMulti	: "áž¢áž“áž»áž‰áŸ’áž‰áž¶ážáž¢áŸ„áž™áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸáž…áŸ’ážšáž¾áž“",
+DlgSelectOpAvail	: "áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸ ážŠáŸ‚áž›áž¢áž¶áž…áž€áŸ†ážŽážáŸ‹áž”áž¶áž“",
+DlgSelectOpText		: "áž–áž¶áž€áŸ’áž™",
+DlgSelectOpValue	: "ážáŸ†áž›áŸƒ",
+DlgSelectBtnAdd		: "áž”áž“áŸ’ážáŸ‚áž˜",
+DlgSelectBtnModify	: "áž•áŸ’áž›áž¶ážŸáŸ‹áž”áŸ’ážáž¼ážš",
+DlgSelectBtnUp		: "áž›áž¾",
+DlgSelectBtnDown	: "áž€áŸ’ážšáŸ„áž˜",
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "áž›áž”áŸ‹",
+
+// Textarea Dialog
+DlgTextareaName	: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgTextareaCols	: "áž‡áž¼ážšážˆážš",
+DlgTextareaRows	: "áž‡áž¼ážšáž•áŸ’ážáŸáž€",
+
+// Text Field Dialog
+DlgTextName			: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgTextValue		: "ážáŸ†áž›áŸƒ",
+DlgTextCharWidth	: "áž‘áž‘áž¹áž„ áž¢áž€áŸ’ážŸážš",
+DlgTextMaxChars		: "áž¢áž€áŸ’ážŸážšáž¢ážáž·áž”ážšáž·áž˜áž¶",
+DlgTextType			: "áž”áŸ’ážšáž—áŸáž‘",
+DlgTextTypeText		: "áž–áž¶áž€áŸ’áž™",
+DlgTextTypePass		: "áž–áž¶áž€áŸ’áž™ážŸáŸ†áž„áž¶ážáŸ‹",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ážˆáŸ’áž˜áŸ„áŸ‡",
+DlgHiddenValue	: "ážáŸ†áž›áŸƒ",
+
+// Bulleted List Dialog
+BulletedListProp	: "áž€áŸ†ážŽážáŸ‹áž”áž‰áŸ’áž‡áž¸ážšáž„áŸ’ážœáž„áŸ‹",
+NumberedListProp	: "áž€áŸ†ážŽážáŸ‹áž”áž‰áŸ’áŸáž‡áž¸áž›áŸáž",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "áž”áŸ’ážšáž—áŸáž‘",
+DlgLstTypeCircle	: "ážšáž„áŸ’ážœáž„áŸ‹",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "áž€áž¶ážšáŸ",
+DlgLstTypeNumbers	: "áž›áŸáž(1, 2, 3)",
+DlgLstTypeLCase		: "áž¢áž€áŸ’ážŸážšážáž¼áž…(a, b, c)",
+DlgLstTypeUCase		: "áž¢áž€áŸ’ážŸážšáž’áŸ†(A, B, C)",
+DlgLstTypeSRoman	: "áž¢áž€áŸ’ážŸážšáž¡áž¶ážáž¶áŸ†áž„ážáž¼áž…(i, ii, iii)",
+DlgLstTypeLRoman	: "áž¢áž€áŸ’ážŸážšáž¡áž¶ážáž¶áŸ†áž„áž’áŸ†(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "áž‘áž¼áž‘áŸ…",
+DlgDocBackTab		: "áž•áŸ’áž“áŸ‚áž€ážáž¶áž„áž€áŸ’ážšáŸ„áž™",
+DlgDocColorsTab		: "áž‘áŸ†áž–áŸážšâ€‹áž“áž·áž„ ážŸáŸŠáž»áž˜",
+DlgDocMetaTab		: "áž‘áž·áž“áŸ’áž“áž“áŸáž™áž˜áŸ",
+
+DlgDocPageTitle		: "áž…áŸ†ážŽáž„áž‡áž¾áž„áž‘áŸ†áž–áŸážš",
+DlgDocLangDir		: "áž‘áž·ážŸážŠáŸ…ážŸážšážŸáŸážšáž—áž¶ážŸáž¶",
+DlgDocLangDirLTR	: "áž–áž¸áž†áŸ’ážœáŸáž„áž‘áŸ…ážŸáŸ’ážŠáž¶áŸ†(LTR)",
+DlgDocLangDirRTL	: "áž–áž¸ážŸáŸ’ážŠáž¶áŸ†áž‘áŸ…áž†áŸ’ážœáŸáž„(RTL)",
+DlgDocLangCode		: "áž›áŸážáž€áž¼ážáž—áž¶ážŸáž¶",
+DlgDocCharSet		: "áž€áŸ†ážŽážáŸ‹áž›áŸážáž€áž¼ážáž—áž¶ážŸáž¶",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "áž€áŸ†ážŽážáŸ‹áž›áŸážáž€áž¼ážáž—áž¶ážŸáž¶áž•áŸ’ážŸáŸáž„áž‘áŸ€áž",
+
+DlgDocDocType		: "áž”áŸ’ážšáž—áŸáž‘áž€áŸ’áž”áž¶áž›áž‘áŸ†áž–áŸážš",
+DlgDocDocTypeOther	: "áž”áŸ’ážšáž—áŸáž‘áž€áŸ’áž”áž¶áž›áž‘áŸ†áž–áŸážšáž•áŸ’ážŸáŸáž„áž‘áŸ€áž",
+DlgDocIncXHTML		: "áž”áž‰áŸ’áž‡áž¼áž› XHTML",
+DlgDocBgColor		: "áž–ážŽáŸŒážáž¶áž„áž€áŸ’ážšáŸ„áž˜",
+DlgDocBgImage		: "URL ážšáž”ážŸáŸ‹ážšáž¼áž”áž—áž¶áž–ážáž¶áž„áž€áŸ’ážšáŸ„áž˜",
+DlgDocBgNoScroll	: "áž‘áŸ†áž–áŸážšáž€áŸ’ážšáŸ„áž˜áž˜áž·áž“áž”áŸ’ážáž¼ážš",
+DlgDocCText			: "áž¢ážáŸ’ážáž”áž‘",
+DlgDocCLink			: "ážˆáŸ’áž“áž¶áž”áŸ‹",
+DlgDocCVisited		: "ážˆáŸ’áž“áž¶áž”áŸ‹áž˜áž¾áž›áž áž¾áž™",
+DlgDocCActive		: "ážˆáŸ’áž“áž¶áž”áŸ‹áž€áŸ†áž–áž»áž„áž˜áž¾áž›",
+DlgDocMargins		: "ážŸáŸŠáž»áž˜áž‘áŸ†áž–áŸážš",
+DlgDocMaTop			: "áž›áž¾",
+DlgDocMaLeft		: "áž†áŸ’ážœáŸáž„",
+DlgDocMaRight		: "ážŸáŸ’ážŠáž¶áŸ†",
+DlgDocMaBottom		: "áž€áŸ’ážšáŸ„áž˜",
+DlgDocMeIndex		: "áž–áž¶áž€áŸ’áž™áž“áŸ…áž€áŸ’áž“áž»áž„áž¯áž€ážŸáž¶ážš (áž•áŸ’ážáž¶áž…áŸ‹áž–áž¸áž‚áŸ’áž“áž¶ážŠáŸ„áž™áž€áŸ’áž”áŸ€ážŸ)",
+DlgDocMeDescr		: "ážŸáŸáž…áž€áŸ’ážáž¸áž¢ážáŸ’ážáž¶áž’áž·áž”áŸ’áž”áž¶áž™áž¢áŸ†áž–áž¸áž¯áž€ážŸáž¶ážš",
+DlgDocMeAuthor		: "áž¢áŸ’áž“áž€áž“áž·áž–áž“áŸ’áž’",
+DlgDocMeCopy		: "ážšáž€áŸ’ážŸáž¶ážŸáž·áž‘áŸ’áž’áž·áŸ",
+DlgDocPreview		: "áž˜áž¾áž›ážŸáž¶áž€áž›áŸ’áž”áž„",
+
+// Templates Dialog
+Templates			: "áž¯áž€ážŸáž¶ážšáž‚áŸ†ážšáž¼",
+DlgTemplatesTitle	: "áž¯áž€ážŸáž¶ážšáž‚áŸ†ážšáž¼ ážšáž”ážŸáŸ‹áž¢ážáŸ’ážáž“áŸáž™",
+DlgTemplatesSelMsg	: "ážŸáž¼áž˜áž‡áŸ’ážšáž¾ážŸážšáž¾ážŸáž¯áž€ážŸáž¶ážšáž‚áŸ†ážšáž¼ ážŠáž¾áž˜áŸ’áž”áž¸áž”áž¾áž€áž“áŸ…áž€áŸ’áž“áž»áž„áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážáž¶áž€áŸ‹ážáŸ‚áž„áž¢ážáŸ’ážáž”áž‘<br>(áž¢ážáŸ’ážáž”áž‘áž“áž¹áž„áž”áž¶ážáŸ‹áž”áž„áŸ‹):",
+DlgTemplatesLoading	: "áž€áŸ†áž–áž»áž„áž¢áž¶áž“áž”áž‰áŸ’áž‡áž¸áž¯áž€ážŸáž¶ážšáž‚áŸ†ážšáž¼ áŸ” ážŸáž¼áž˜ážšáž„áž…áž¶áŸ†...",
+DlgTemplatesNoTpl	: "(áž–áž»áŸ†áž˜áž¶áž“áž¯áž€ážŸáž¶ážšáž‚áŸ†ážšáž¼ážáŸ’ážšáž¼ážœáž”áž¶áž“áž€áŸ†ážŽážáŸ‹)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "áž¢áŸ†áž–áž¸",
+DlgAboutBrowserInfoTab	: "áž–áŸŒážáž˜áž¶áž“áž€áž˜áŸ’áž˜ážœáž·áž’áž¸ážšáž»áž€ážšáž€",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "áž‡áŸ†áž“áž¶áž“áŸ‹",
+DlgAboutInfo		: "ážŸáŸ†ážšáž¶áž”áŸ‹áž–áŸŒážáž˜áž¶áž“áž•áŸ’ážŸáŸáž„áž‘áŸ€áž ážŸáž¼áž˜áž‘áž¶áž€áŸ‹áž‘áž„"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eu.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eu.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eu.js	(revision 838)
@@ -0,0 +1,516 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Basque language file.
+ * Euskara hizkuntza fitxategia.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Estutu Tresna Barra",
+ToolbarExpand		: "Hedatu Tresna Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Gorde",
+NewPage				: "Orrialde Berria",
+Preview				: "Aurrebista",
+Cut					: "Ebaki",
+Copy				: "Kopiatu",
+Paste				: "Itsatsi",
+PasteText			: "Itsatsi testu bezala",
+PasteWord			: "Itsatsi Word-etik",
+Print				: "Inprimatu",
+SelectAll			: "Hautatu dena",
+RemoveFormat		: "Kendu Formatoa",
+InsertLinkLbl		: "Esteka",
+InsertLink			: "Txertatu/Editatu Esteka",
+RemoveLink			: "Kendu Esteka",
+Anchor				: "Aingura",
+AnchorDelete		: "Ezabatu Aingura",
+InsertImageLbl		: "Irudia",
+InsertImage			: "Txertatu/Editatu Irudia",
+InsertFlashLbl		: "Flasha",
+InsertFlash			: "Txertatu/Editatu Flasha",
+InsertTableLbl		: "Taula",
+InsertTable			: "Txertatu/Editatu Taula",
+InsertLineLbl		: "Lerroa",
+InsertLine			: "Txertatu Marra Horizontala",
+InsertSpecialCharLbl: "Karaktere Berezia",
+InsertSpecialChar	: "Txertatu Karaktere Berezia",
+InsertSmileyLbl		: "Aurpegierak",
+InsertSmiley		: "Txertatu Aurpegierak",
+About				: "FCKeditor-ri buruz",
+Bold				: "Lodia",
+Italic				: "Etzana",
+Underline			: "Azpimarratu",
+StrikeThrough		: "Marratua",
+Subscript			: "Azpi-indize",
+Superscript			: "Goi-indize",
+LeftJustify			: "Lerrokatu Ezkerrean",
+CenterJustify		: "Lerrokatu Erdian",
+RightJustify		: "Lerrokatu Eskuman",
+BlockJustify		: "Justifikatu",
+DecreaseIndent		: "Txikitu Koska",
+IncreaseIndent		: "Handitu Koska",
+Blockquote			: "Aipamen blokea",
+Undo				: "Desegin",
+Redo				: "Berregin",
+NumberedListLbl		: "Zenbakidun Zerrenda",
+NumberedList		: "Txertatu/Kendu Zenbakidun zerrenda",
+BulletedListLbl		: "Buletdun Zerrenda",
+BulletedList		: "Txertatu/Kendu Buletdun zerrenda",
+ShowTableBorders	: "Erakutsi Taularen Ertzak",
+ShowDetails			: "Erakutsi Xehetasunak",
+Style				: "Estiloa",
+FontFormat			: "Formatoa",
+Font				: "Letra-tipoa",
+FontSize			: "Tamaina",
+TextColor			: "Testu Kolorea",
+BGColor				: "Atzeko kolorea",
+Source				: "HTML Iturburua",
+Find				: "Bilatu",
+Replace				: "Ordezkatu",
+SpellCheck			: "Ortografia",
+UniversalKeyboard	: "Teklatu Unibertsala",
+PageBreakLbl		: "Orrialde-jauzia",
+PageBreak			: "Txertatu Orrialde-jauzia",
+
+Form			: "Formularioa",
+Checkbox		: "Kontrol-laukia",
+RadioButton		: "Aukera-botoia",
+TextField		: "Testu Eremua",
+Textarea		: "Testu-area",
+HiddenField		: "Ezkutuko Eremua",
+Button			: "Botoia",
+SelectionField	: "Hautespen Eremua",
+ImageButton		: "Irudi Botoia",
+
+FitWindow		: "Maximizatu editorearen tamaina",
+ShowBlocks		: "Blokeak erakutsi",
+
+// Context Menu
+EditLink			: "Aldatu Esteka",
+CellCM				: "Gelaxka",
+RowCM				: "Errenkada",
+ColumnCM			: "Zutabea",
+InsertRowAfter		: "Txertatu Lerroa Ostean",
+InsertRowBefore		: "Txertatu Lerroa Aurretik",
+DeleteRows			: "Ezabatu Errenkadak",
+InsertColumnAfter	: "Txertatu Zutabea Ostean",
+InsertColumnBefore	: "Txertatu Zutabea Aurretik",
+DeleteColumns		: "Ezabatu Zutabeak",
+InsertCellAfter		: "Txertatu Gelaxka Ostean",
+InsertCellBefore	: "Txertatu Gelaxka Aurretik",
+DeleteCells			: "Kendu Gelaxkak",
+MergeCells			: "Batu Gelaxkak",
+MergeRight			: "Elkartu Eskumara",
+MergeDown			: "Elkartu Behera",
+HorizontalSplitCell	: "Banatu Gelaxkak Horizontalki",
+VerticalSplitCell	: "Banatu Gelaxkak Bertikalki",
+TableDelete			: "Ezabatu Taula",
+CellProperties		: "Gelaxkaren Ezaugarriak",
+TableProperties		: "Taularen Ezaugarriak",
+ImageProperties		: "Irudiaren Ezaugarriak",
+FlashProperties		: "Flasharen Ezaugarriak",
+
+AnchorProp			: "Ainguraren Ezaugarriak",
+ButtonProp			: "Botoiaren Ezaugarriak",
+CheckboxProp		: "Kontrol-laukiko Ezaugarriak",
+HiddenFieldProp		: "Ezkutuko Eremuaren Ezaugarriak",
+RadioButtonProp		: "Aukera-botoiaren Ezaugarriak",
+ImageButtonProp		: "Irudi Botoiaren Ezaugarriak",
+TextFieldProp		: "Testu Eremuaren Ezaugarriak",
+SelectionFieldProp	: "Hautespen Eremuaren Ezaugarriak",
+TextareaProp		: "Testu-arearen Ezaugarriak",
+FormProp			: "Formularioaren Ezaugarriak",
+
+FontFormats			: "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML Prozesatzen. Itxaron mesedez...",
+Done				: "Eginda",
+PasteWordConfirm	: "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",
+NotCompatiblePaste	: "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?",
+UnknownToolbarItem	: "Ataza barrako elementu ezezaguna \"%1\"",
+UnknownCommand		: "Komando izen ezezaguna \"%1\"",
+NotImplemented		: "Komando ez inplementatua",
+UnknownToolbarSet	: "Ataza barra \"%1\" taldea ez da existitzen",
+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.",
+BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+DialogBlocked		: "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+
+// Dialogs
+DlgBtnOK			: "Ados",
+DlgBtnCancel		: "Utzi",
+DlgBtnClose			: "Itxi",
+DlgBtnBrowseServer	: "Zerbitzaria arakatu",
+DlgAdvancedTag		: "Aurreratua",
+DlgOpOther			: "<Bestelakoak>",
+DlgInfoTab			: "Informazioa",
+DlgAlertUrl			: "Mesedez URLa idatzi ezazu",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ezarri gabe>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Hizkuntzaren Norabidea",
+DlgGenLangDirLtr	: "Ezkerretik Eskumara(LTR)",
+DlgGenLangDirRtl	: "Eskumatik Ezkerrera (RTL)",
+DlgGenLangCode		: "Hizkuntza Kodea",
+DlgGenAccessKey		: "Sarbide-gakoa",
+DlgGenName			: "Izena",
+DlgGenTabIndex		: "Tabulazio Indizea",
+DlgGenLongDescr		: "URL Deskribapen Luzea",
+DlgGenClass			: "Estilo-orriko Klaseak",
+DlgGenTitle			: "Izenburua",
+DlgGenContType		: "Eduki Mota (Content Type)",
+DlgGenLinkCharset	: "Estekatutako Karaktere Multzoa",
+DlgGenStyle			: "Estiloa",
+
+// Image Dialog
+DlgImgTitle			: "Irudi Ezaugarriak",
+DlgImgInfoTab		: "Irudi informazioa",
+DlgImgBtnUpload		: "Zerbitzarira bidalia",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Gora Kargatu",
+DlgImgAlt			: "Textu Alternatiboa",
+DlgImgWidth			: "Zabalera",
+DlgImgHeight		: "Altuera",
+DlgImgLockRatio		: "Erlazioa Blokeatu",
+DlgBtnResetSize		: "Tamaina Berrezarri",
+DlgImgBorder		: "Ertza",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Lerrokatu",
+DlgImgAlignLeft		: "Ezkerrera",
+DlgImgAlignAbsBottom: "Abs Behean",
+DlgImgAlignAbsMiddle: "Abs Erdian",
+DlgImgAlignBaseline	: "Oinan",
+DlgImgAlignBottom	: "Behean",
+DlgImgAlignMiddle	: "Erdian",
+DlgImgAlignRight	: "Eskuman",
+DlgImgAlignTextTop	: "Testua Goian",
+DlgImgAlignTop		: "Goian",
+DlgImgPreview		: "Aurrebista",
+DlgImgAlertUrl		: "Mesedez Irudiaren URLa idatzi",
+DlgImgLinkTab		: "Esteka",
+
+// Flash Dialog
+DlgFlashTitle		: "Flasharen Ezaugarriak",
+DlgFlashChkPlay		: "Automatikoki Erreproduzitu",
+DlgFlashChkLoop		: "Begizta",
+DlgFlashChkMenu		: "Flasharen Menua Gaitu",
+DlgFlashScale		: "Eskalatu",
+DlgFlashScaleAll	: "Dena erakutsi",
+DlgFlashScaleNoBorder	: "Ertzarik gabe",
+DlgFlashScaleFit	: "Doitu",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Esteka",
+DlgLnkInfoTab		: "Estekaren Informazioa",
+DlgLnkTargetTab		: "Helburua",
+
+DlgLnkType			: "Esteka Mota",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Aingura horrialde honentan",
+DlgLnkTypeEMail		: "ePosta",
+DlgLnkProto			: "Protokoloa",
+DlgLnkProtoOther	: "<Beste batzuk>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Aingura bat hautatu",
+DlgLnkAnchorByName	: "Aingura izenagatik",
+DlgLnkAnchorById	: "Elementuaren ID-gatik",
+DlgLnkNoAnchors		: "(Ez daude aingurak eskuragarri dokumentuan)",
+DlgLnkEMail			: "ePosta Helbidea",
+DlgLnkEMailSubject	: "Mezuaren Gaia",
+DlgLnkEMailBody		: "Mezuaren Gorputza",
+DlgLnkUpload		: "Gora kargatu",
+DlgLnkBtnUpload		: "Zerbitzarira bidali",
+
+DlgLnkTarget		: "Target (Helburua)",
+DlgLnkTargetFrame	: "<marko>",
+DlgLnkTargetPopup	: "<popup lehioa>",
+DlgLnkTargetBlank	: "Lehio Berria (_blank)",
+DlgLnkTargetParent	: "Lehio Gurasoa (_parent)",
+DlgLnkTargetSelf	: "Lehio Berdina (_self)",
+DlgLnkTargetTop		: "Goiko Lehioa (_top)",
+DlgLnkTargetFrameName	: "Marko Helburuaren Izena",
+DlgLnkPopWinName	: "Popup Lehioaren Izena",
+DlgLnkPopWinFeat	: "Popup Lehioaren Ezaugarriak",
+DlgLnkPopResize		: "Tamaina Aldakorra",
+DlgLnkPopLocation	: "Kokaleku Barra",
+DlgLnkPopMenu		: "Menu Barra",
+DlgLnkPopScroll		: "Korritze Barrak",
+DlgLnkPopStatus		: "Egoera Barra",
+DlgLnkPopToolbar	: "Tresna Barra",
+DlgLnkPopFullScrn	: "Pantaila Osoa (IE)",
+DlgLnkPopDependent	: "Menpekoa (Netscape)",
+DlgLnkPopWidth		: "Zabalera",
+DlgLnkPopHeight		: "Altuera",
+DlgLnkPopLeft		: "Ezkerreko  Posizioa",
+DlgLnkPopTop		: "Goiko Posizioa",
+
+DlnLnkMsgNoUrl		: "Mesedez URL esteka idatzi",
+DlnLnkMsgNoEMail	: "Mesedez ePosta helbidea idatzi",
+DlnLnkMsgNoAnchor	: "Mesedez aingura bat aukeratu",
+DlnLnkMsgInvPopName	: "Popup lehioaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan",
+
+// Color Dialog
+DlgColorTitle		: "Kolore Aukeraketa",
+DlgColorBtnClear	: "Garbitu",
+DlgColorHighlight	: "Nabarmendu",
+DlgColorSelected	: "Aukeratuta",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Aurpegiera Sartu",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Karaktere Berezia Aukeratu",
+
+// Table Dialog
+DlgTableTitle		: "Taularen Ezaugarriak",
+DlgTableRows		: "Lerroak",
+DlgTableColumns		: "Zutabeak",
+DlgTableBorder		: "Ertzaren Zabalera",
+DlgTableAlign		: "Lerrokatu",
+DlgTableAlignNotSet	: "<Ezarri gabe>",
+DlgTableAlignLeft	: "Ezkerrean",
+DlgTableAlignCenter	: "Erdian",
+DlgTableAlignRight	: "Eskuman",
+DlgTableWidth		: "Zabalera",
+DlgTableWidthPx		: "pixel",
+DlgTableWidthPc		: "ehuneko",
+DlgTableHeight		: "Altuera",
+DlgTableCellSpace	: "Gelaxka arteko tartea",
+DlgTableCellPad		: "Gelaxken betegarria",
+DlgTableCaption		: "Epigrafea",
+DlgTableSummary		: "Laburpena",
+
+// Table Cell Dialog
+DlgCellTitle		: "Gelaxken Ezaugarriak",
+DlgCellWidth		: "Zabalera",
+DlgCellWidthPx		: "pixel",
+DlgCellWidthPc		: "ehuneko",
+DlgCellHeight		: "Altuera",
+DlgCellWordWrap		: "Itzulbira",
+DlgCellWordWrapNotSet	: "<Ezarri gabe>",
+DlgCellWordWrapYes	: "Bai",
+DlgCellWordWrapNo	: "Ez",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Ezarri gabe>",
+DlgCellHorAlignLeft	: "Ezkerrean",
+DlgCellHorAlignCenter	: "Erdian",
+DlgCellHorAlignRight: "Eskuman",
+DlgCellVerAlign		: "Lerrokatu Bertikalki",
+DlgCellVerAlignNotSet	: "<Ezarri gabe>",
+DlgCellVerAlignTop	: "Goian",
+DlgCellVerAlignMiddle	: "Erdian",
+DlgCellVerAlignBottom	: "Behean",
+DlgCellVerAlignBaseline	: "Oinan",
+DlgCellRowSpan		: "Lerroak Hedatu",
+DlgCellCollSpan		: "Zutabeak Hedatu",
+DlgCellBackColor	: "Atzeko Kolorea",
+DlgCellBorderColor	: "Ertzako Kolorea",
+DlgCellBtnSelect	: "Aukertau...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Bilatu eta Ordeztu",
+
+// Find Dialog
+DlgFindTitle		: "Bilaketa",
+DlgFindFindBtn		: "Bilatu",
+DlgFindNotFoundMsg	: "Idatzitako testua ez da topatu.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ordeztu",
+DlgReplaceFindLbl		: "Zer bilatu:",
+DlgReplaceReplaceLbl	: "Zerekin ordeztu:",
+DlgReplaceCaseChk		: "Maiuskula/minuskula",
+DlgReplaceReplaceBtn	: "Ordeztu",
+DlgReplaceReplAllBtn	: "Ordeztu Guztiak",
+DlgReplaceWordChk		: "Esaldi osoa bilatu",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).",
+PasteErrorCopy	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).",
+
+PasteAsText		: "Testu Arrunta bezala Itsatsi",
+PasteFromWord	: "Word-etik itsatsi",
+
+DlgPasteMsg2	: "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.",
+DlgPasteSec		: "Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.",
+DlgPasteIgnoreFont		: "Letra Motaren definizioa ezikusi",
+DlgPasteRemoveStyles	: "Estilo definizioak kendu",
+
+// Color Picker
+ColorAutomatic	: "Automatikoa",
+ColorMoreColors	: "Kolore gehiago...",
+
+// Document Properties
+DocProps		: "Dokumentuaren Ezarpenak",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ainguraren Ezaugarriak",
+DlgAnchorName		: "Ainguraren Izena",
+DlgAnchorErrorName	: "Idatzi ainguraren izena",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ez dago hiztegian",
+DlgSpellChangeTo		: "Honekin ordezkatu",
+DlgSpellBtnIgnore		: "Ezikusi",
+DlgSpellBtnIgnoreAll	: "Denak Ezikusi",
+DlgSpellBtnReplace		: "Ordezkatu",
+DlgSpellBtnReplaceAll	: "Denak Ordezkatu",
+DlgSpellBtnUndo			: "Desegin",
+DlgSpellNoSuggestions	: "- Iradokizunik ez -",
+DlgSpellProgress		: "Zuzenketa ortografikoa martxan...",
+DlgSpellNoMispell		: "Zuzenketa ortografikoa bukatuta: Akatsik ez",
+DlgSpellNoChanges		: "Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu",
+DlgSpellOneChange		: "Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da",
+DlgSpellManyChanges		: "Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira",
+
+IeSpellDownload			: "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?",
+
+// Button Dialog
+DlgButtonText		: "Testua (Balorea)",
+DlgButtonType		: "Mota",
+DlgButtonTypeBtn	: "Botoia",
+DlgButtonTypeSbm	: "Bidali",
+DlgButtonTypeRst	: "Garbitu",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Izena",
+DlgCheckboxValue	: "Balorea",
+DlgCheckboxSelected	: "Hautatuta",
+
+// Form Dialog
+DlgFormName		: "Izena",
+DlgFormAction	: "Ekintza",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Izena",
+DlgSelectValue		: "Balorea",
+DlgSelectSize		: "Tamaina",
+DlgSelectLines		: "lerro kopurura",
+DlgSelectChkMulti	: "Hautaketa anitzak baimendu",
+DlgSelectOpAvail	: "Aukera Eskuragarriak",
+DlgSelectOpText		: "Testua",
+DlgSelectOpValue	: "Balorea",
+DlgSelectBtnAdd		: "Gehitu",
+DlgSelectBtnModify	: "Aldatu",
+DlgSelectBtnUp		: "Gora",
+DlgSelectBtnDown	: "Behera",
+DlgSelectBtnSetValue : "Aukeratutako balorea ezarri",
+DlgSelectBtnDelete	: "Ezabatu",
+
+// Textarea Dialog
+DlgTextareaName	: "Izena",
+DlgTextareaCols	: "Zutabeak",
+DlgTextareaRows	: "Lerroak",
+
+// Text Field Dialog
+DlgTextName			: "Izena",
+DlgTextValue		: "Balorea",
+DlgTextCharWidth	: "Zabalera",
+DlgTextMaxChars		: "Zenbat karaktere gehienez",
+DlgTextType			: "Mota",
+DlgTextTypeText		: "Testua",
+DlgTextTypePass		: "Pasahitza",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Izena",
+DlgHiddenValue	: "Balorea",
+
+// Bulleted List Dialog
+BulletedListProp	: "Buletdun Zerrendaren Ezarpenak",
+NumberedListProp	: "Zenbakidun Zerrendaren Ezarpenak",
+DlgLstStart			: "Hasiera",
+DlgLstType			: "Mota",
+DlgLstTypeCircle	: "Zirkulua",
+DlgLstTypeDisc		: "Diskoa",
+DlgLstTypeSquare	: "Karratua",
+DlgLstTypeNumbers	: "Zenbakiak (1, 2, 3)",
+DlgLstTypeLCase		: "Letra xeheak (a, b, c)",
+DlgLstTypeUCase		: "Letra larriak (A, B, C)",
+DlgLstTypeSRoman	: "Erromatar zenbaki zeheak (i, ii, iii)",
+DlgLstTypeLRoman	: "Erromatar zenbaki larriak (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Orokorra",
+DlgDocBackTab		: "Atzekaldea",
+DlgDocColorsTab		: "Koloreak eta Marjinak",
+DlgDocMetaTab		: "Meta Informazioa",
+
+DlgDocPageTitle		: "Orriaren Izenburua",
+DlgDocLangDir		: "Hizkuntzaren Norabidea",
+DlgDocLangDirLTR	: "Ezkerretik eskumara (LTR)",
+DlgDocLangDirRTL	: "Eskumatik ezkerrera (RTL)",
+DlgDocLangCode		: "Hizkuntzaren Kodea",
+DlgDocCharSet		: "Karaktere Multzoaren Kodeketa",
+DlgDocCharSetCE		: "Erdialdeko Europakoa",
+DlgDocCharSetCT		: "Txinatar Tradizionala (Big5)",
+DlgDocCharSetCR		: "Zirilikoa",
+DlgDocCharSetGR		: "Grekoa",
+DlgDocCharSetJP		: "Japoniarra",
+DlgDocCharSetKR		: "Korearra",
+DlgDocCharSetTR		: "Turkiarra",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Mendebaldeko Europakoa",
+DlgDocCharSetOther	: "Beste Karaktere Multzoko Kodeketa",
+
+DlgDocDocType		: "Document Type Goiburua",
+DlgDocDocTypeOther	: "Beste Document Type Goiburua",
+DlgDocIncXHTML		: "XHTML Ezarpenak",
+DlgDocBgColor		: "Atzeko Kolorea",
+DlgDocBgImage		: "Atzeko Irudiaren URL-a",
+DlgDocBgNoScroll	: "Korritze gabeko Atzekaldea",
+DlgDocCText			: "Testua",
+DlgDocCLink			: "Estekak",
+DlgDocCVisited		: "Bisitatutako Estekak",
+DlgDocCActive		: "Esteka Aktiboa",
+DlgDocMargins		: "Orrialdearen marjinak",
+DlgDocMaTop			: "Goian",
+DlgDocMaLeft		: "Ezkerrean",
+DlgDocMaRight		: "Eskuman",
+DlgDocMaBottom		: "Behean",
+DlgDocMeIndex		: "Dokumentuaren Gako-hitzak (komarekin bananduta)",
+DlgDocMeDescr		: "Dokumentuaren Deskribapena",
+DlgDocMeAuthor		: "Egilea",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Aurrebista",
+
+// Templates Dialog
+Templates			: "Txantiloiak",
+DlgTemplatesTitle	: "Eduki Txantiloiak",
+DlgTemplatesSelMsg	: "Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):",
+DlgTemplatesLoading	: "Txantiloiak kargatzen. Itxaron mesedez...",
+DlgTemplatesNoTpl	: "(Ez dago definitutako txantiloirik)",
+DlgTemplatesReplace	: "Ordeztu oraingo edukiak",
+
+// About Dialog
+DlgAboutAboutTab	: "Honi buruz",
+DlgAboutBrowserInfoTab	: "Nabigatzailearen Informazioa",
+DlgAboutLicenseTab	: "Lizentzia",
+DlgAboutVersion		: "bertsioa",
+DlgAboutInfo		: "Informazio gehiago eskuratzeko hona joan"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ko.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ko.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ko.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Korean language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "íˆ´ë°” ê°ì¶”ê¸°",
+ToolbarExpand		: "íˆ´ë°” ë³´ì´ê¸°",
+
+// Toolbar Items and Context Menu
+Save				: "ì €ìž¥í•˜ê¸°",
+NewPage				: "ìƒˆ ë¬¸ì„œ",
+Preview				: "ë¯¸ë¦¬ë³´ê¸°",
+Cut					: "ìž˜ë¼ë‚´ê¸°",
+Copy				: "ë³µì‚¬í•˜ê¸°",
+Paste				: "ë¶™ì—¬ë„£ê¸°",
+PasteText			: "í…ìŠ¤íŠ¸ë¡œ ë¶™ì—¬ë„£ê¸°",
+PasteWord			: "MS Word í˜•ì‹ì—ì„œ ë¶™ì—¬ë„£ê¸°",
+Print				: "ì¸ì‡„í•˜ê¸°",
+SelectAll			: "ì „ì²´ì„ íƒ",
+RemoveFormat		: "í¬ë§· ì§€ìš°ê¸°",
+InsertLinkLbl		: "ë§í¬",
+InsertLink			: "ë§í¬ ì‚½ìž…/ë³€ê²½",
+RemoveLink			: "ë§í¬ ì‚­ì œ",
+Anchor				: "ì±…ê°ˆí”¼ ì‚½ìž…/ë³€ê²½",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "ì´ë¯¸ì§€",
+InsertImage			: "ì´ë¯¸ì§€ ì‚½ìž…/ë³€ê²½",
+InsertFlashLbl		: "í”Œëž˜ì‰¬",
+InsertFlash			: "í”Œëž˜ì‰¬ ì‚½ìž…/ë³€ê²½",
+InsertTableLbl		: "í‘œ",
+InsertTable			: "í‘œ ì‚½ìž…/ë³€ê²½",
+InsertLineLbl		: "ìˆ˜í‰ì„ ",
+InsertLine			: "ìˆ˜í‰ì„  ì‚½ìž…",
+InsertSpecialCharLbl: "íŠ¹ìˆ˜ë¬¸ìž ì‚½ìž…",
+InsertSpecialChar	: "íŠ¹ìˆ˜ë¬¸ìž ì‚½ìž…",
+InsertSmileyLbl		: "ì•„ì´ì½˜",
+InsertSmiley		: "ì•„ì´ì½˜ ì‚½ìž…",
+About				: "FCKeditorì— ëŒ€í•˜ì—¬",
+Bold				: "ì§„í•˜ê²Œ",
+Italic				: "ì´í…”ë¦­",
+Underline			: "ë°‘ì¤„",
+StrikeThrough		: "ì·¨ì†Œì„ ",
+Subscript			: "ì•„ëž˜ ì²¨ìž",
+Superscript			: "ìœ„ ì²¨ìž",
+LeftJustify			: "ì™¼ìª½ ì •ë ¬",
+CenterJustify		: "ê°€ìš´ë° ì •ë ¬",
+RightJustify		: "ì˜¤ë¥¸ìª½ ì •ë ¬",
+BlockJustify		: "ì–‘ìª½ ë§žì¶¤",
+DecreaseIndent		: "ë‚´ì–´ì“°ê¸°",
+IncreaseIndent		: "ë“¤ì—¬ì“°ê¸°",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ì·¨ì†Œ",
+Redo				: "ìž¬ì‹¤í–‰",
+NumberedListLbl		: "ìˆœì„œìžˆëŠ” ëª©ë¡",
+NumberedList		: "ìˆœì„œìžˆëŠ” ëª©ë¡",
+BulletedListLbl		: "ìˆœì„œì—†ëŠ” ëª©ë¡",
+BulletedList		: "ìˆœì„œì—†ëŠ” ëª©ë¡",
+ShowTableBorders	: "í‘œ í…Œë‘ë¦¬ ë³´ê¸°",
+ShowDetails			: "ë¬¸ì„œê¸°í˜¸ ë³´ê¸°",
+Style				: "ìŠ¤íƒ€ì¼",
+FontFormat			: "í¬ë§·",
+Font				: "í°íŠ¸",
+FontSize			: "ê¸€ìž í¬ê¸°",
+TextColor			: "ê¸€ìž ìƒ‰ìƒ",
+BGColor				: "ë°°ê²½ ìƒ‰ìƒ",
+Source				: "ì†ŒìŠ¤",
+Find				: "ì°¾ê¸°",
+Replace				: "ë°”ê¾¸ê¸°",
+SpellCheck			: "ì² ìžê²€ì‚¬",
+UniversalKeyboard	: "ë‹¤êµ­ì–´ ìž…ë ¥ê¸°",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "í¼",
+Checkbox		: "ì²´í¬ë°•ìŠ¤",
+RadioButton		: "ë¼ë””ì˜¤ë²„íŠ¼",
+TextField		: "ìž…ë ¥í•„ë“œ",
+Textarea		: "ìž…ë ¥ì˜ì—­",
+HiddenField		: "ìˆ¨ê¹€í•„ë“œ",
+Button			: "ë²„íŠ¼",
+SelectionField	: "íŽ¼ì¹¨ëª©ë¡",
+ImageButton		: "ì´ë¯¸ì§€ë²„íŠ¼",
+
+FitWindow		: "ì—ë””í„° ìµœëŒ€í™”",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "ë§í¬ ìˆ˜ì •",
+CellCM				: "ì…€/ì¹¸(Cell)",
+RowCM				: "í–‰(Row)",
+ColumnCM			: "ì—´(Column)",
+InsertRowAfter		: "ë’¤ì— í–‰ ì‚½ìž…",
+InsertRowBefore		: "ì•žì— í–‰ ì‚½ìž…",
+DeleteRows			: "ê°€ë¡œì¤„ ì‚­ì œ",
+InsertColumnAfter	: "ë’¤ì— ì—´ ì‚½ìž…",
+InsertColumnBefore	: "ì•žì— ì—´ ì‚½ìž…",
+DeleteColumns		: "ì„¸ë¡œì¤„ ì‚­ì œ",
+InsertCellAfter		: "ë’¤ì— ì…€/ì¹¸ ì‚½ìž…",
+InsertCellBefore	: "ì•žì— ì…€/ì¹¸ ì‚½ìž…",
+DeleteCells			: "ì…€ ì‚­ì œ",
+MergeCells			: "ì…€ í•©ì¹˜ê¸°",
+MergeRight			: "ì˜¤ë¥¸ìª½ ë­‰ì¹˜ê¸°",
+MergeDown			: "ì™¼ìª½ ë­‰ì¹˜ê¸°",
+HorizontalSplitCell	: "ìˆ˜í‰ ë‚˜ëˆ„ê¸°",
+VerticalSplitCell	: "ìˆ˜ì§ ë‚˜ëˆ„ê¸°",
+TableDelete			: "í‘œ ì‚­ì œ",
+CellProperties		: "ì…€ ì†ì„±",
+TableProperties		: "í‘œ ì†ì„±",
+ImageProperties		: "ì´ë¯¸ì§€ ì†ì„±",
+FlashProperties		: "í”Œëž˜ì‰¬ ì†ì„±",
+
+AnchorProp			: "ì±…ê°ˆí”¼ ì†ì„±",
+ButtonProp			: "ë²„íŠ¼ ì†ì„±",
+CheckboxProp		: "ì²´í¬ë°•ìŠ¤ ì†ì„±",
+HiddenFieldProp		: "ìˆ¨ê¹€í•„ë“œ ì†ì„±",
+RadioButtonProp		: "ë¼ë””ì˜¤ë²„íŠ¼ ì†ì„±",
+ImageButtonProp		: "ì´ë¯¸ì§€ë²„íŠ¼ ì†ì„±",
+TextFieldProp		: "ìž…ë ¥í•„ë“œ ì†ì„±",
+SelectionFieldProp	: "íŽ¼ì¹¨ëª©ë¡ ì†ì„±",
+TextareaProp		: "ìž…ë ¥ì˜ì—­ ì†ì„±",
+FormProp			: "í¼ ì†ì„±",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML ì²˜ë¦¬ì¤‘. ìž ì‹œë§Œ ê¸°ë‹¤ë ¤ì£¼ì‹­ì‹œìš”.",
+Done				: "ì™„ë£Œ",
+PasteWordConfirm	: "ë¶™ì—¬ë„£ê¸° í•  í…ìŠ¤íŠ¸ëŠ” MS Wordì—ì„œ ë³µì‚¬í•œ ê²ƒìž…ë‹ˆë‹¤. ë¶™ì—¬ë„£ê¸° ì „ì— MS Word í¬ë©§ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?",
+NotCompatiblePaste	: "ì´ ëª…ë ¹ì€ ì¸í„°ë„·ìµìŠ¤í”Œë¡œëŸ¬ 5.5 ë²„ì „ ì´ìƒì—ì„œë§Œ ìž‘ë™í•©ë‹ˆë‹¤. í¬ë©§ì„ ì‚­ì œí•˜ì§€ ì•Šê³  ë¶™ì—¬ë„£ê¸° í•˜ì‹œê² ìŠµë‹ˆê¹Œ?",
+UnknownToolbarItem	: "ì•Œìˆ˜ì—†ëŠ” íˆ´ë°”ìž…ë‹ˆë‹¤. : \"%1\"",
+UnknownCommand		: "ì•Œìˆ˜ì—†ëŠ” ê¸°ëŠ¥ìž…ë‹ˆë‹¤. : \"%1\"",
+NotImplemented		: "ê¸°ëŠ¥ì´ ì‹¤í–‰ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤.",
+UnknownToolbarSet	: "íˆ´ë°” ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤. : \"%1\"",
+NoActiveX			: "ë¸ŒëŸ¬ìš°ì €ì˜ ë³´ì•ˆ ì„¤ì •ìœ¼ë¡œ ì¸í•´ ëª‡ëª‡ ê¸°ëŠ¥ì˜ ìž‘ë™ì— ìž¥ì• ê°€ ìžˆì„ ìˆ˜ ìžˆìŠµë‹ˆë‹¤. \"ì•¡í‹°ë¸Œ-ì•¡ìŠ¤ ê¸°ëŠ¥ê³¼ í”ŒëŸ¬ê·¸ ì¸\" ì˜µì…˜ì„ í—ˆìš©í•˜ì—¬ ì£¼ì‹œì§€ ì•Šìœ¼ë©´ ì˜¤ë¥˜ê°€ ë°œìƒí•  ìˆ˜ ìžˆìŠµë‹ˆë‹¤.",
+BrowseServerBlocked : "ë¸ŒëŸ¬ìš°ì € ìš”ì†Œê°€ ì—´ë¦¬ì§€ ì•ŠìŠµë‹ˆë‹¤. íŒì—…ì°¨ë‹¨ ì„¤ì •ì´ êº¼ì ¸ìžˆëŠ”ì§€ í™•ì¸í•˜ì—¬ ì£¼ì‹­ì‹œì˜¤.",
+DialogBlocked		: "ìœˆë„ìš° ëŒ€í™”ì°½ì„ ì—´ ìˆ˜ ì—†ìŠµë‹ˆë‹¤. íŒì—…ì°¨ë‹¨ ì„¤ì •ì´ êº¼ì ¸ìžˆëŠ”ì§€ í™•ì¸í•˜ì—¬ ì£¼ì‹­ì‹œì˜¤.",
+
+// Dialogs
+DlgBtnOK			: "ì˜ˆ",
+DlgBtnCancel		: "ì•„ë‹ˆì˜¤",
+DlgBtnClose			: "ë‹«ê¸°",
+DlgBtnBrowseServer	: "ì„œë²„ ë³´ê¸°",
+DlgAdvancedTag		: "ìžì„¸ížˆ",
+DlgOpOther			: "<ê¸°íƒ€>",
+DlgInfoTab			: "ì •ë³´",
+DlgAlertUrl			: "URLì„ ìž…ë ¥í•˜ì‹­ì‹œìš”",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ì„¤ì •ë˜ì§€ ì•ŠìŒ>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "ì“°ê¸° ë°©í–¥",
+DlgGenLangDirLtr	: "ì™¼ìª½ì—ì„œ ì˜¤ë¥¸ìª½ (LTR)",
+DlgGenLangDirRtl	: "ì˜¤ë¥¸ìª½ì—ì„œ ì™¼ìª½ (RTL)",
+DlgGenLangCode		: "ì–¸ì–´ ì½”ë“œ",
+DlgGenAccessKey		: "ì—‘ì„¸ìŠ¤ í‚¤",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "íƒ­ ìˆœì„œ",
+DlgGenLongDescr		: "URL ì„¤ëª…",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "ì´ë¯¸ì§€ ì„¤ì •",
+DlgImgInfoTab		: "ì´ë¯¸ì§€ ì •ë³´",
+DlgImgBtnUpload		: "ì„œë²„ë¡œ ì „ì†¡",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ì—…ë¡œë“œ",
+DlgImgAlt			: "ì´ë¯¸ì§€ ì„¤ëª…",
+DlgImgWidth			: "ë„ˆë¹„",
+DlgImgHeight		: "ë†’ì´",
+DlgImgLockRatio		: "ë¹„ìœ¨ ìœ ì§€",
+DlgBtnResetSize		: "ì›ëž˜ í¬ê¸°ë¡œ",
+DlgImgBorder		: "í…Œë‘ë¦¬",
+DlgImgHSpace		: "ìˆ˜í‰ì—¬ë°±",
+DlgImgVSpace		: "ìˆ˜ì§ì—¬ë°±",
+DlgImgAlign			: "ì •ë ¬",
+DlgImgAlignLeft		: "ì™¼ìª½",
+DlgImgAlignAbsBottom: "ì¤„ì•„ëž˜(Abs Bottom)",
+DlgImgAlignAbsMiddle: "ì¤„ì¤‘ê°„(Abs Middle)",
+DlgImgAlignBaseline	: "ê¸°ì¤€ì„ ",
+DlgImgAlignBottom	: "ì•„ëž˜",
+DlgImgAlignMiddle	: "ì¤‘ê°„",
+DlgImgAlignRight	: "ì˜¤ë¥¸ìª½",
+DlgImgAlignTextTop	: "ê¸€ìžìƒë‹¨",
+DlgImgAlignTop		: "ìœ„",
+DlgImgPreview		: "ë¯¸ë¦¬ë³´ê¸°",
+DlgImgAlertUrl		: "ì´ë¯¸ì§€ URLì„ ìž…ë ¥í•˜ì‹­ì‹œìš”",
+DlgImgLinkTab		: "ë§í¬",
+
+// Flash Dialog
+DlgFlashTitle		: "í”Œëž˜ì‰¬ ë“±ë¡ì •ë³´",
+DlgFlashChkPlay		: "ìžë™ìž¬ìƒ",
+DlgFlashChkLoop		: "ë°˜ë³µ",
+DlgFlashChkMenu		: "í”Œëž˜ì‰¬ë©”ë‰´ ê°€ëŠ¥",
+DlgFlashScale		: "ì˜ì—­",
+DlgFlashScaleAll	: "ëª¨ë‘ë³´ê¸°",
+DlgFlashScaleNoBorder	: "ê²½ê³„ì„ ì—†ìŒ",
+DlgFlashScaleFit	: "ì˜ì—­ìžë™ì¡°ì ˆ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ë§í¬",
+DlgLnkInfoTab		: "ë§í¬ ì •ë³´",
+DlgLnkTargetTab		: "íƒ€ê²Ÿ",
+
+DlgLnkType			: "ë§í¬ ì¢…ë¥˜",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "ì±…ê°ˆí”¼",
+DlgLnkTypeEMail		: "ì´ë©”ì¼",
+DlgLnkProto			: "í”„ë¡œí† ì½œ",
+DlgLnkProtoOther	: "<ê¸°íƒ€>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ì±…ê°ˆí”¼ ì„ íƒ",
+DlgLnkAnchorByName	: "ì±…ê°ˆí”¼ ì´ë¦„",
+DlgLnkAnchorById	: "ì±…ê°ˆí”¼ ID",
+DlgLnkNoAnchors		: "(ë¬¸ì„œì— ì±…ê°ˆí”¼ê°€ ì—†ìŠµë‹ˆë‹¤.)",
+DlgLnkEMail			: "ì´ë©”ì¼ ì£¼ì†Œ",
+DlgLnkEMailSubject	: "ì œëª©",
+DlgLnkEMailBody		: "ë‚´ìš©",
+DlgLnkUpload		: "ì—…ë¡œë“œ",
+DlgLnkBtnUpload		: "ì„œë²„ë¡œ ì „ì†¡",
+
+DlgLnkTarget		: "íƒ€ê²Ÿ",
+DlgLnkTargetFrame	: "<í”„ë ˆìž„>",
+DlgLnkTargetPopup	: "<íŒì—…ì°½>",
+DlgLnkTargetBlank	: "ìƒˆ ì°½ (_blank)",
+DlgLnkTargetParent	: "ë¶€ëª¨ ì°½ (_parent)",
+DlgLnkTargetSelf	: "í˜„ìž¬ ì°½ (_self)",
+DlgLnkTargetTop		: "ìµœ ìƒìœ„ ì°½ (_top)",
+DlgLnkTargetFrameName	: "íƒ€ê²Ÿ í”„ë ˆìž„ ì´ë¦„",
+DlgLnkPopWinName	: "íŒì—…ì°½ ì´ë¦„",
+DlgLnkPopWinFeat	: "íŒì—…ì°½ ì„¤ì •",
+DlgLnkPopResize		: "í¬ê¸°ì¡°ì •",
+DlgLnkPopLocation	: "ì£¼ì†Œí‘œì‹œì¤„",
+DlgLnkPopMenu		: "ë©”ë‰´ë°”",
+DlgLnkPopScroll		: "ìŠ¤í¬ë¡¤ë°”",
+DlgLnkPopStatus		: "ìƒíƒœë°”",
+DlgLnkPopToolbar	: "íˆ´ë°”",
+DlgLnkPopFullScrn	: "ì „ì²´í™”ë©´ (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "ë„ˆë¹„",
+DlgLnkPopHeight		: "ë†’ì´",
+DlgLnkPopLeft		: "ì™¼ìª½ ìœ„ì¹˜",
+DlgLnkPopTop		: "ìœ—ìª½ ìœ„ì¹˜",
+
+DlnLnkMsgNoUrl		: "ë§í¬ URLì„ ìž…ë ¥í•˜ì‹­ì‹œìš”.",
+DlnLnkMsgNoEMail	: "ì´ë©”ì¼ì£¼ì†Œë¥¼ ìž…ë ¥í•˜ì‹­ì‹œìš”.",
+DlnLnkMsgNoAnchor	: "ì±…ê°ˆí”¼ëª…ì„ ìž…ë ¥í•˜ì‹­ì‹œìš”.",
+DlnLnkMsgInvPopName	: "íŒì—…ì°½ì˜ íƒ€ì´í‹€ì€ ê³µë°±ì„ í—ˆìš©í•˜ì§€ ì•ŠìŠµë‹ˆë‹¤.",
+
+// Color Dialog
+DlgColorTitle		: "ìƒ‰ìƒ ì„ íƒ",
+DlgColorBtnClear	: "ì§€ìš°ê¸°",
+DlgColorHighlight	: "í˜„ìž¬",
+DlgColorSelected	: "ì„ íƒë¨",
+
+// Smiley Dialog
+DlgSmileyTitle		: "ì•„ì´ì½˜ ì‚½ìž…",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "íŠ¹ìˆ˜ë¬¸ìž ì„ íƒ",
+
+// Table Dialog
+DlgTableTitle		: "í‘œ ì„¤ì •",
+DlgTableRows		: "ê°€ë¡œì¤„",
+DlgTableColumns		: "ì„¸ë¡œì¤„",
+DlgTableBorder		: "í…Œë‘ë¦¬ í¬ê¸°",
+DlgTableAlign		: "ì •ë ¬",
+DlgTableAlignNotSet	: "<ì„¤ì •ë˜ì§€ ì•ŠìŒ>",
+DlgTableAlignLeft	: "ì™¼ìª½",
+DlgTableAlignCenter	: "ê°€ìš´ë°",
+DlgTableAlignRight	: "ì˜¤ë¥¸ìª½",
+DlgTableWidth		: "ë„ˆë¹„",
+DlgTableWidthPx		: "í”½ì…€",
+DlgTableWidthPc		: "í¼ì„¼íŠ¸",
+DlgTableHeight		: "ë†’ì´",
+DlgTableCellSpace	: "ì…€ ê°„ê²©",
+DlgTableCellPad		: "ì…€ ì—¬ë°±",
+DlgTableCaption		: "ìº¡ì…˜",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ì…€ ì„¤ì •",
+DlgCellWidth		: "ë„ˆë¹„",
+DlgCellWidthPx		: "í”½ì…€",
+DlgCellWidthPc		: "í¼ì„¼íŠ¸",
+DlgCellHeight		: "ë†’ì´",
+DlgCellWordWrap		: "ì›Œë“œëž©",
+DlgCellWordWrapNotSet	: "<ì„¤ì •ë˜ì§€ ì•ŠìŒ>",
+DlgCellWordWrapYes	: "ì˜ˆ",
+DlgCellWordWrapNo	: "ì•„ë‹ˆì˜¤",
+DlgCellHorAlign		: "ìˆ˜í‰ ì •ë ¬",
+DlgCellHorAlignNotSet	: "<ì„¤ì •ë˜ì§€ ì•ŠìŒ>",
+DlgCellHorAlignLeft	: "ì™¼ìª½",
+DlgCellHorAlignCenter	: "ê°€ìš´ë°",
+DlgCellHorAlignRight: "ì˜¤ë¥¸ìª½",
+DlgCellVerAlign		: "ìˆ˜ì§ ì •ë ¬",
+DlgCellVerAlignNotSet	: "<ì„¤ì •ë˜ì§€ ì•ŠìŒ>",
+DlgCellVerAlignTop	: "ìœ„",
+DlgCellVerAlignMiddle	: "ì¤‘ê°„",
+DlgCellVerAlignBottom	: "ì•„ëž˜",
+DlgCellVerAlignBaseline	: "ê¸°ì¤€ì„ ",
+DlgCellRowSpan		: "ì„¸ë¡œ í•©ì¹˜ê¸°",
+DlgCellCollSpan		: "ê°€ë¡œ í•©ì¹˜ê¸°",
+DlgCellBackColor	: "ë°°ê²½ ìƒ‰ìƒ",
+DlgCellBorderColor	: "í…Œë‘ë¦¬ ìƒ‰ìƒ",
+DlgCellBtnSelect	: "ì„ íƒ",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "ì°¾ê¸° & ë°”ê¾¸ê¸°",
+
+// Find Dialog
+DlgFindTitle		: "ì°¾ê¸°",
+DlgFindFindBtn		: "ì°¾ê¸°",
+DlgFindNotFoundMsg	: "ë¬¸ìžì—´ì„ ì°¾ì„ ìˆ˜ ì—†ìŠµë‹ˆë‹¤.",
+
+// Replace Dialog
+DlgReplaceTitle			: "ë°”ê¾¸ê¸°",
+DlgReplaceFindLbl		: "ì°¾ì„ ë¬¸ìžì—´:",
+DlgReplaceReplaceLbl	: "ë°”ê¿€ ë¬¸ìžì—´:",
+DlgReplaceCaseChk		: "ëŒ€ì†Œë¬¸ìž êµ¬ë¶„",
+DlgReplaceReplaceBtn	: "ë°”ê¾¸ê¸°",
+DlgReplaceReplAllBtn	: "ëª¨ë‘ ë°”ê¾¸ê¸°",
+DlgReplaceWordChk		: "ì˜¨ì „í•œ ë‹¨ì–´",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ë¸Œë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ìž˜ë¼ë‚´ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤. í‚¤ë³´ë“œ ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œìš”. (Ctrl+X).",
+PasteErrorCopy	: "ë¸Œë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ë³µì‚¬í•˜ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤. í‚¤ë³´ë“œ ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œìš”.  (Ctrl+C).",
+
+PasteAsText		: "í…ìŠ¤íŠ¸ë¡œ ë¶™ì—¬ë„£ê¸°",
+PasteFromWord	: "MS Word í˜•ì‹ì—ì„œ ë¶™ì—¬ë„£ê¸°",
+
+DlgPasteMsg2	: "í‚¤ë³´ë“œì˜ (<STRONG>Ctrl+V</STRONG>) ë¥¼ ì´ìš©í•´ì„œ ìƒìžì•ˆì— ë¶™ì—¬ë„£ê³  <STRONG>OK</STRONG> ë¥¼ ëˆ„ë¥´ì„¸ìš”.",
+DlgPasteSec		: "ë¸ŒëŸ¬ìš°ì € ë³´ì•ˆ ì„¤ì •ìœ¼ë¡œ ì¸í•´, í´ë¦½ë³´ë“œì˜ ìžë£Œë¥¼ ì§ì ‘ ì ‘ê·¼í•  ìˆ˜ ì—†ìŠµë‹ˆë‹¤. ì´ ì°½ì— ë‹¤ì‹œ ë¶™ì—¬ë„£ê¸° í•˜ì‹­ì‹œì˜¤.",
+DlgPasteIgnoreFont		: "í°íŠ¸ ì„¤ì • ë¬´ì‹œ",
+DlgPasteRemoveStyles	: "ìŠ¤íƒ€ì¼ ì •ì˜ ì œê±°",
+
+// Color Picker
+ColorAutomatic	: "ê¸°ë³¸ìƒ‰ìƒ",
+ColorMoreColors	: "ìƒ‰ìƒì„ íƒ...",
+
+// Document Properties
+DocProps		: "ë¬¸ì„œ ì†ì„±",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ì±…ê°ˆí”¼ ì†ì„±",
+DlgAnchorName		: "ì±…ê°ˆí”¼ ì´ë¦„",
+DlgAnchorErrorName	: "ì±…ê°ˆí”¼ ì´ë¦„ì„ ìž…ë ¥í•˜ì‹­ì‹œìš”.",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ì‚¬ì „ì— ì—†ëŠ” ë‹¨ì–´",
+DlgSpellChangeTo		: "ë³€ê²½í•  ë‹¨ì–´",
+DlgSpellBtnIgnore		: "ê±´ë„ˆëœ€",
+DlgSpellBtnIgnoreAll	: "ëª¨ë‘ ê±´ë„ˆëœ€",
+DlgSpellBtnReplace		: "ë³€ê²½",
+DlgSpellBtnReplaceAll	: "ëª¨ë‘ ë³€ê²½",
+DlgSpellBtnUndo			: "ì·¨ì†Œ",
+DlgSpellNoSuggestions	: "- ì¶”ì²œë‹¨ì–´ ì—†ìŒ -",
+DlgSpellProgress		: "ì² ìžê²€ì‚¬ë¥¼ ì§„í–‰ì¤‘ìž…ë‹ˆë‹¤...",
+DlgSpellNoMispell		: "ì² ìžê²€ì‚¬ ì™„ë£Œ: ìž˜ëª»ëœ ì² ìžê°€ ì—†ìŠµë‹ˆë‹¤.",
+DlgSpellNoChanges		: "ì² ìžê²€ì‚¬ ì™„ë£Œ: ë³€ê²½ëœ ë‹¨ì–´ê°€ ì—†ìŠµë‹ˆë‹¤.",
+DlgSpellOneChange		: "ì² ìžê²€ì‚¬ ì™„ë£Œ: ë‹¨ì–´ê°€ ë³€ê²½ë˜ì—ˆìŠµë‹ˆë‹¤.",
+DlgSpellManyChanges		: "ì² ìžê²€ì‚¬ ì™„ë£Œ: %1 ë‹¨ì–´ê°€ ë³€ê²½ë˜ì—ˆìŠµë‹ˆë‹¤.",
+
+IeSpellDownload			: "ì² ìž ê²€ì‚¬ê¸°ê°€ ì² ì¹˜ë˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤. ì§€ê¸ˆ ë‹¤ìš´ë¡œë“œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?",
+
+// Button Dialog
+DlgButtonText		: "ë²„íŠ¼ê¸€ìž(ê°’)",
+DlgButtonType		: "ë²„íŠ¼ì¢…ë¥˜",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ì´ë¦„",
+DlgCheckboxValue	: "ê°’",
+DlgCheckboxSelected	: "ì„ íƒë¨",
+
+// Form Dialog
+DlgFormName		: "í¼ì´ë¦„",
+DlgFormAction	: "ì‹¤í–‰ê²½ë¡œ(Action)",
+DlgFormMethod	: "ë°©ë²•(Method)",
+
+// Select Field Dialog
+DlgSelectName		: "ì´ë¦„",
+DlgSelectValue		: "ê°’",
+DlgSelectSize		: "ì„¸ë¡œí¬ê¸°",
+DlgSelectLines		: "ì¤„",
+DlgSelectChkMulti	: "ì—¬ëŸ¬í•­ëª© ì„ íƒ í—ˆìš©",
+DlgSelectOpAvail	: "ì„ íƒì˜µì…˜",
+DlgSelectOpText		: "ì´ë¦„",
+DlgSelectOpValue	: "ê°’",
+DlgSelectBtnAdd		: "ì¶”ê°€",
+DlgSelectBtnModify	: "ë³€ê²½",
+DlgSelectBtnUp		: "ìœ„ë¡œ",
+DlgSelectBtnDown	: "ì•„ëž˜ë¡œ",
+DlgSelectBtnSetValue : "ì„ íƒëœê²ƒìœ¼ë¡œ ì„¤ì •",
+DlgSelectBtnDelete	: "ì‚­ì œ",
+
+// Textarea Dialog
+DlgTextareaName	: "ì´ë¦„",
+DlgTextareaCols	: "ì¹¸ìˆ˜",
+DlgTextareaRows	: "ì¤„ìˆ˜",
+
+// Text Field Dialog
+DlgTextName			: "ì´ë¦„",
+DlgTextValue		: "ê°’",
+DlgTextCharWidth	: "ê¸€ìž ë„ˆë¹„",
+DlgTextMaxChars		: "ìµœëŒ€ ê¸€ìžìˆ˜",
+DlgTextType			: "ì¢…ë¥˜",
+DlgTextTypeText		: "ë¬¸ìžì—´",
+DlgTextTypePass		: "ë¹„ë°€ë²ˆí˜¸",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ì´ë¦„",
+DlgHiddenValue	: "ê°’",
+
+// Bulleted List Dialog
+BulletedListProp	: "ìˆœì„œì—†ëŠ” ëª©ë¡ ì†ì„±",
+NumberedListProp	: "ìˆœì„œìžˆëŠ” ëª©ë¡ ì†ì„±",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "ì¢…ë¥˜",
+DlgLstTypeCircle	: "ì›(Circle)",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "ë„¤ëª¨ì (Square)",
+DlgLstTypeNumbers	: "ë²ˆí˜¸ (1, 2, 3)",
+DlgLstTypeLCase		: "ì†Œë¬¸ìž (a, b, c)",
+DlgLstTypeUCase		: "ëŒ€ë¬¸ìž (A, B, C)",
+DlgLstTypeSRoman	: "ë¡œë§ˆìž ìˆ˜ë¬¸ìž (i, ii, iii)",
+DlgLstTypeLRoman	: "ë¡œë§ˆìž ëŒ€ë¬¸ìž (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ì¼ë°˜",
+DlgDocBackTab		: "ë°°ê²½",
+DlgDocColorsTab		: "ìƒ‰ìƒ ë° ì—¬ë°±",
+DlgDocMetaTab		: "ë©”íƒ€ë°ì´í„°",
+
+DlgDocPageTitle		: "íŽ˜ì´ì§€ëª…",
+DlgDocLangDir		: "ë¬¸ìž ì“°ê¸°ë°©í–¥",
+DlgDocLangDirLTR	: "ì™¼ìª½ì—ì„œ ì˜¤ë¥¸ìª½ (LTR)",
+DlgDocLangDirRTL	: "ì˜¤ë¥¸ìª½ì—ì„œ ì™¼ìª½ (RTL)",
+DlgDocLangCode		: "ì–¸ì–´ì½”ë“œ",
+DlgDocCharSet		: "ìºë¦­í„°ì…‹ ì¸ì½”ë”©",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "ë‹¤ë¥¸ ìºë¦­í„°ì…‹ ì¸ì½”ë”©",
+
+DlgDocDocType		: "ë¬¸ì„œ í—¤ë“œ",
+DlgDocDocTypeOther	: "ë‹¤ë¥¸ ë¬¸ì„œí—¤ë“œ",
+DlgDocIncXHTML		: "XHTML ë¬¸ì„œì •ì˜ í¬í•¨",
+DlgDocBgColor		: "ë°°ê²½ìƒ‰ìƒ",
+DlgDocBgImage		: "ë°°ê²½ì´ë¯¸ì§€ URL",
+DlgDocBgNoScroll	: "ìŠ¤í¬ë¡¤ë˜ì§€ì•ŠëŠ” ë°°ê²½",
+DlgDocCText			: "í…ìŠ¤íŠ¸",
+DlgDocCLink			: "ë§í¬",
+DlgDocCVisited		: "ë°©ë¬¸í•œ ë§í¬(Visited)",
+DlgDocCActive		: "í™œì„±í™”ëœ ë§í¬(Active)",
+DlgDocMargins		: "íŽ˜ì´ì§€ ì—¬ë°±",
+DlgDocMaTop			: "ìœ„",
+DlgDocMaLeft		: "ì™¼ìª½",
+DlgDocMaRight		: "ì˜¤ë¥¸ìª½",
+DlgDocMaBottom		: "ì•„ëž˜",
+DlgDocMeIndex		: "ë¬¸ì„œ í‚¤ì›Œë“œ (ì½¤ë§ˆë¡œ êµ¬ë¶„)",
+DlgDocMeDescr		: "ë¬¸ì„œ ì„¤ëª…",
+DlgDocMeAuthor		: "ìž‘ì„±ìž",
+DlgDocMeCopy		: "ì €ìž‘ê¶Œ",
+DlgDocPreview		: "ë¯¸ë¦¬ë³´ê¸°",
+
+// Templates Dialog
+Templates			: "í…œí”Œë¦¿",
+DlgTemplatesTitle	: "ë‚´ìš© í…œí”Œë¦¿",
+DlgTemplatesSelMsg	: "ì—ë””í„°ì—ì„œ ì‚¬ìš©í•  í…œí”Œë¦¿ì„ ì„ íƒí•˜ì‹­ì‹œìš”.<br>(ì§€ê¸ˆê¹Œì§€ ìž‘ì„±ëœ ë‚´ìš©ì€ ì‚¬ë¼ì§‘ë‹ˆë‹¤.):",
+DlgTemplatesLoading	: "í…œí”Œë¦¿ ëª©ë¡ì„ ë¶ˆëŸ¬ì˜¤ëŠ”ì¤‘ìž…ë‹ˆë‹¤. ìž ì‹œë§Œ ê¸°ë‹¤ë ¤ì£¼ì‹­ì‹œìš”.",
+DlgTemplatesNoTpl	: "(í…œí”Œë¦¿ì´ ì—†ìŠµë‹ˆë‹¤.)",
+DlgTemplatesReplace	: "í˜„ìž¬ ë‚´ìš© ë°”ê¾¸ê¸°",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "ë¸Œë¼ìš°ì € ì •ë³´",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "ë²„ì „",
+DlgAboutInfo		: "ë” ë§Žì€ ì •ë³´ë¥¼ ë³´ì‹œë ¤ë©´ ë‹¤ìŒ ì‚¬ì´íŠ¸ë¡œ ê°€ì‹­ì‹œì˜¤."
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hu.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hu.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hu.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hungarian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "EszkÃ¶ztÃ¡r elrejtÃ©se",
+ToolbarExpand		: "EszkÃ¶ztÃ¡r megjelenÃ­tÃ©se",
+
+// Toolbar Items and Context Menu
+Save				: "MentÃ©s",
+NewPage				: "Ãšj oldal",
+Preview				: "ElÅ‘nÃ©zet",
+Cut					: "KivÃ¡gÃ¡s",
+Copy				: "MÃ¡solÃ¡s",
+Paste				: "BeillesztÃ©s",
+PasteText			: "BeillesztÃ©s formÃ¡zÃ¡s nÃ©lkÃ¼l",
+PasteWord			: "BeillesztÃ©s Word-bÅ‘l",
+Print				: "NyomtatÃ¡s",
+SelectAll			: "Mindent kijelÃ¶l",
+RemoveFormat		: "FormÃ¡zÃ¡s eltÃ¡volÃ­tÃ¡sa",
+InsertLinkLbl		: "HivatkozÃ¡s",
+InsertLink			: "HivatkozÃ¡s beillesztÃ©se/mÃ³dosÃ­tÃ¡sa",
+RemoveLink			: "HivatkozÃ¡s tÃ¶rlÃ©se",
+Anchor				: "Horgony beillesztÃ©se/szerkesztÃ©se",
+AnchorDelete		: "Horgony eltÃ¡volÃ­tÃ¡sa",
+InsertImageLbl		: "KÃ©p",
+InsertImage			: "KÃ©p beillesztÃ©se/mÃ³dosÃ­tÃ¡sa",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash beillesztÃ©se, mÃ³dosÃ­tÃ¡sa",
+InsertTableLbl		: "TÃ¡blÃ¡zat",
+InsertTable			: "TÃ¡blÃ¡zat beillesztÃ©se/mÃ³dosÃ­tÃ¡sa",
+InsertLineLbl		: "Vonal",
+InsertLine			: "ElvÃ¡lasztÃ³vonal beillesztÃ©se",
+InsertSpecialCharLbl: "SpeciÃ¡lis karakter",
+InsertSpecialChar	: "SpeciÃ¡lis karakter beillesztÃ©se",
+InsertSmileyLbl		: "Hangulatjelek",
+InsertSmiley		: "Hangulatjelek beillesztÃ©se",
+About				: "FCKeditor nÃ©vjegy",
+Bold				: "FÃ©lkÃ¶vÃ©r",
+Italic				: "DÅ‘lt",
+Underline			: "AlÃ¡hÃºzott",
+StrikeThrough		: "ÃthÃºzott",
+Subscript			: "AlsÃ³ index",
+Superscript			: "FelsÅ‘ index",
+LeftJustify			: "Balra",
+CenterJustify		: "KÃ¶zÃ©pre",
+RightJustify		: "Jobbra",
+BlockJustify		: "SorkizÃ¡rt",
+DecreaseIndent		: "BehÃºzÃ¡s csÃ¶kkentÃ©se",
+IncreaseIndent		: "BehÃºzÃ¡s nÃ¶velÃ©se",
+Blockquote			: "IdÃ©zet blokk",
+Undo				: "VisszavonÃ¡s",
+Redo				: "IsmÃ©tlÃ©s",
+NumberedListLbl		: "SzÃ¡mozÃ¡s",
+NumberedList		: "SzÃ¡mozÃ¡s beillesztÃ©se/tÃ¶rlÃ©se",
+BulletedListLbl		: "FelsorolÃ¡s",
+BulletedList		: "FelsorolÃ¡s beillesztÃ©se/tÃ¶rlÃ©se",
+ShowTableBorders	: "TÃ¡blÃ¡zat szegÃ©ly mutatÃ¡sa",
+ShowDetails			: "RÃ©szletek mutatÃ¡sa",
+Style				: "StÃ­lus",
+FontFormat			: "FormÃ¡tum",
+Font				: "BetÅ±tÃ­pus",
+FontSize			: "MÃ©ret",
+TextColor			: "BetÅ±szÃ­n",
+BGColor				: "HÃ¡ttÃ©rszÃ­n",
+Source				: "ForrÃ¡skÃ³d",
+Find				: "KeresÃ©s",
+Replace				: "Csere",
+SpellCheck			: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s",
+UniversalKeyboard	: "UniverzÃ¡lis billentyÅ±zet",
+PageBreakLbl		: "OldaltÃ¶rÃ©s",
+PageBreak			: "OldaltÃ¶rÃ©s beillesztÃ©se",
+
+Form			: "Å°rlap",
+Checkbox		: "JelÃ¶lÅ‘nÃ©gyzet",
+RadioButton		: "VÃ¡lasztÃ³gomb",
+TextField		: "SzÃ¶vegmezÅ‘",
+Textarea		: "SzÃ¶vegterÃ¼let",
+HiddenField		: "RejtettmezÅ‘",
+Button			: "Gomb",
+SelectionField	: "LegÃ¶rdÃ¼lÅ‘ lista",
+ImageButton		: "KÃ©pgomb",
+
+FitWindow		: "MaximalizÃ¡lÃ¡s",
+ShowBlocks		: "Blokkok megjelenÃ­tÃ©se",
+
+// Context Menu
+EditLink			: "HivatkozÃ¡s mÃ³dosÃ­tÃ¡sa",
+CellCM				: "Cella",
+RowCM				: "Sor",
+ColumnCM			: "Oszlop",
+InsertRowAfter		: "Sor beillesztÃ©se az aktuÃ¡lis sor mÃ¶gÃ©",
+InsertRowBefore		: "Sor beillesztÃ©se az aktuÃ¡lis sor elÃ©",
+DeleteRows			: "Sorok tÃ¶rlÃ©se",
+InsertColumnAfter	: "Oszlop beillesztÃ©se az aktuÃ¡lis oszlop mÃ¶gÃ©",
+InsertColumnBefore	: "Oszlop beillesztÃ©se az aktuÃ¡lis oszlop elÃ©",
+DeleteColumns		: "Oszlopok tÃ¶rlÃ©se",
+InsertCellAfter		: "Cella beillesztÃ©se az aktuÃ¡lis cella mÃ¶gÃ©",
+InsertCellBefore	: "Cella beillesztÃ©se az aktuÃ¡lis cella elÃ©",
+DeleteCells			: "CellÃ¡k tÃ¶rlÃ©se",
+MergeCells			: "CellÃ¡k egyesÃ­tÃ©se",
+MergeRight			: "CellÃ¡k egyesÃ­tÃ©se jobbra",
+MergeDown			: "CellÃ¡k egyesÃ­tÃ©se lefelÃ©",
+HorizontalSplitCell	: "CellÃ¡k szÃ©tvÃ¡lasztÃ¡sa vÃ­zszintesen",
+VerticalSplitCell	: "CellÃ¡k szÃ©tvÃ¡lasztÃ¡sa fÃ¼ggÅ‘legesen",
+TableDelete			: "TÃ¡blÃ¡zat tÃ¶rlÃ©se",
+CellProperties		: "Cella tulajdonsÃ¡gai",
+TableProperties		: "TÃ¡blÃ¡zat tulajdonsÃ¡gai",
+ImageProperties		: "KÃ©p tulajdonsÃ¡gai",
+FlashProperties		: "Flash tulajdonsÃ¡gai",
+
+AnchorProp			: "Horgony tulajdonsÃ¡gai",
+ButtonProp			: "Gomb tulajdonsÃ¡gai",
+CheckboxProp		: "JelÃ¶lÅ‘nÃ©gyzet tulajdonsÃ¡gai",
+HiddenFieldProp		: "Rejtett mezÅ‘ tulajdonsÃ¡gai",
+RadioButtonProp		: "VÃ¡lasztÃ³gomb tulajdonsÃ¡gai",
+ImageButtonProp		: "KÃ©pgomb tulajdonsÃ¡gai",
+TextFieldProp		: "SzÃ¶vegmezÅ‘ tulajdonsÃ¡gai",
+SelectionFieldProp	: "LegÃ¶rdÃ¼lÅ‘ lista tulajdonsÃ¡gai",
+TextareaProp		: "SzÃ¶vegterÃ¼let tulajdonsÃ¡gai",
+FormProp			: "Å°rlap tulajdonsÃ¡gai",
+
+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)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML feldolgozÃ¡sa. KÃ©rem vÃ¡rjon...",
+Done				: "KÃ©sz",
+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?",
+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?",
+UnknownToolbarItem	: "Ismeretlen eszkÃ¶ztÃ¡r elem \"%1\"",
+UnknownCommand		: "Ismeretlen parancs \"%1\"",
+NotImplemented		: "A parancs nem hajthatÃ³ vÃ©gre",
+UnknownToolbarSet	: "Az eszkÃ¶zkÃ©szlet \"%1\" nem lÃ©tezik",
+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.",
+BrowseServerBlocked : "Nem lehet megnyitni a fÃ¡jlbÃ¶ngÃ©szÅ‘t. Bizonyosodjon meg rÃ³la, hogy a felbukkanÃ³ ablakok engedÃ©lyezve vannak.",
+DialogBlocked		: "Nem lehet megnyitni a pÃ¡rbeszÃ©dablakot. Bizonyosodjon meg rÃ³la, hogy a felbukkanÃ³ ablakok engedÃ©lyezve vannak.",
+
+// Dialogs
+DlgBtnOK			: "Rendben",
+DlgBtnCancel		: "MÃ©gsem",
+DlgBtnClose			: "BezÃ¡rÃ¡s",
+DlgBtnBrowseServer	: "BÃ¶ngÃ©szÃ©s a szerveren",
+DlgAdvancedTag		: "TovÃ¡bbi opciÃ³k",
+DlgOpOther			: "EgyÃ©b",
+DlgInfoTab			: "AlaptulajdonsÃ¡gok",
+DlgAlertUrl			: "Illessze be a webcÃ­met",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nincs beÃ¡llÃ­tva>",
+DlgGenId			: "AzonosÃ­tÃ³",
+DlgGenLangDir		: "ÃrÃ¡s irÃ¡nya",
+DlgGenLangDirLtr	: "BalrÃ³l jobbra",
+DlgGenLangDirRtl	: "JobbrÃ³l balra",
+DlgGenLangCode		: "Nyelv kÃ³dja",
+DlgGenAccessKey		: "BillentyÅ±kombinÃ¡ciÃ³",
+DlgGenName			: "NÃ©v",
+DlgGenTabIndex		: "TabulÃ¡tor index",
+DlgGenLongDescr		: "RÃ©szletes leÃ­rÃ¡s webcÃ­me",
+DlgGenClass			: "StÃ­luskÃ©szlet",
+DlgGenTitle			: "SÃºgÃ³cimke",
+DlgGenContType		: "SÃºgÃ³ tartalomtÃ­pusa",
+DlgGenLinkCharset	: "Hivatkozott tartalom kÃ³dlapja",
+DlgGenStyle			: "StÃ­lus",
+
+// Image Dialog
+DlgImgTitle			: "KÃ©p tulajdonsÃ¡gai",
+DlgImgInfoTab		: "AlaptulajdonsÃ¡gok",
+DlgImgBtnUpload		: "KÃ¼ldÃ©s a szerverre",
+DlgImgURL			: "HivatkozÃ¡s",
+DlgImgUpload		: "FeltÃ¶ltÃ©s",
+DlgImgAlt			: "BuborÃ©k szÃ¶veg",
+DlgImgWidth			: "SzÃ©lessÃ©g",
+DlgImgHeight		: "MagassÃ¡g",
+DlgImgLockRatio		: "ArÃ¡ny megtartÃ¡sa",
+DlgBtnResetSize		: "Eredeti mÃ©ret",
+DlgImgBorder		: "Keret",
+DlgImgHSpace		: "VÃ­zsz. tÃ¡v",
+DlgImgVSpace		: "FÃ¼gg. tÃ¡v",
+DlgImgAlign			: "IgazÃ­tÃ¡s",
+DlgImgAlignLeft		: "Bal",
+DlgImgAlignAbsBottom: "LegaljÃ¡ra",
+DlgImgAlignAbsMiddle: "KÃ¶zepÃ©re",
+DlgImgAlignBaseline	: "Alapvonalhoz",
+DlgImgAlignBottom	: "AljÃ¡ra",
+DlgImgAlignMiddle	: "KÃ¶zÃ©pre",
+DlgImgAlignRight	: "Jobbra",
+DlgImgAlignTextTop	: "SzÃ¶veg tetejÃ©re",
+DlgImgAlignTop		: "TetejÃ©re",
+DlgImgPreview		: "ElÅ‘nÃ©zet",
+DlgImgAlertUrl		: "TÃ¶ltse ki a kÃ©p webcÃ­mÃ©t",
+DlgImgLinkTab		: "HivatkozÃ¡s",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash tulajdonsÃ¡gai",
+DlgFlashChkPlay		: "Automata lejÃ¡tszÃ¡s",
+DlgFlashChkLoop		: "Folyamatosan",
+DlgFlashChkMenu		: "Flash menÃ¼ engedÃ©lyezÃ©se",
+DlgFlashScale		: "MÃ©retezÃ©s",
+DlgFlashScaleAll	: "Mindent mutat",
+DlgFlashScaleNoBorder	: "Keret nÃ©lkÃ¼l",
+DlgFlashScaleFit	: "Teljes kitÃ¶ltÃ©s",
+
+// Link Dialog
+DlgLnkWindowTitle	: "HivatkozÃ¡s tulajdonsÃ¡gai",
+DlgLnkInfoTab		: "AlaptulajdonsÃ¡gok",
+DlgLnkTargetTab		: "MegjelenÃ­tÃ©s",
+
+DlgLnkType			: "HivatkozÃ¡s tÃ­pusa",
+DlgLnkTypeURL		: "WebcÃ­m",
+DlgLnkTypeAnchor	: "Horgony az oldalon",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<mÃ¡s>",
+DlgLnkURL			: "WebcÃ­m",
+DlgLnkAnchorSel		: "Horgony vÃ¡lasztÃ¡sa",
+DlgLnkAnchorByName	: "Horgony nÃ©v szerint",
+DlgLnkAnchorById	: "AzonosÃ­tÃ³ szerint",
+DlgLnkNoAnchors		: "(Nincs horgony a dokumentumban)",
+DlgLnkEMail			: "E-Mail cÃ­m",
+DlgLnkEMailSubject	: "Ãœzenet tÃ¡rgya",
+DlgLnkEMailBody		: "Ãœzenet",
+DlgLnkUpload		: "FeltÃ¶ltÃ©s",
+DlgLnkBtnUpload		: "KÃ¼ldÃ©s a szerverre",
+
+DlgLnkTarget		: "Tartalom megjelenÃ­tÃ©se",
+DlgLnkTargetFrame	: "<keretben>",
+DlgLnkTargetPopup	: "<felugrÃ³ ablakban>",
+DlgLnkTargetBlank	: "Ãšj ablakban (_blank)",
+DlgLnkTargetParent	: "SzÃ¼lÅ‘ ablakban (_parent)",
+DlgLnkTargetSelf	: "Azonos ablakban (_self)",
+DlgLnkTargetTop		: "LegfelsÅ‘ ablakban (_top)",
+DlgLnkTargetFrameName	: "Keret neve",
+DlgLnkPopWinName	: "FelugrÃ³ ablak neve",
+DlgLnkPopWinFeat	: "FelugrÃ³ ablak jellemzÅ‘i",
+DlgLnkPopResize		: "MÃ©retezhetÅ‘",
+DlgLnkPopLocation	: "CÃ­msor",
+DlgLnkPopMenu		: "MenÃ¼ sor",
+DlgLnkPopScroll		: "GÃ¶rdÃ­tÅ‘sÃ¡v",
+DlgLnkPopStatus		: "Ãllapotsor",
+DlgLnkPopToolbar	: "EszkÃ¶ztÃ¡r",
+DlgLnkPopFullScrn	: "Teljes kÃ©pernyÅ‘ (csak IE)",
+DlgLnkPopDependent	: "SzÃ¼lÅ‘hÃ¶z kapcsolt (csak Netscape)",
+DlgLnkPopWidth		: "SzÃ©lessÃ©g",
+DlgLnkPopHeight		: "MagassÃ¡g",
+DlgLnkPopLeft		: "Bal pozÃ­ciÃ³",
+DlgLnkPopTop		: "FelsÅ‘ pozÃ­ciÃ³",
+
+DlnLnkMsgNoUrl		: "Adja meg a hivatkozÃ¡s webcÃ­mÃ©t",
+DlnLnkMsgNoEMail	: "Adja meg az E-Mail cÃ­met",
+DlnLnkMsgNoAnchor	: "VÃ¡lasszon egy horgonyt",
+DlnLnkMsgInvPopName	: "A felbukkanÃ³ ablak neve alfanumerikus karakterrel kezdÃ´djÃ¶n, valamint ne tartalmazzon szÃ³kÃ¶zt",
+
+// Color Dialog
+DlgColorTitle		: "SzÃ­nvÃ¡lasztÃ¡s",
+DlgColorBtnClear	: "TÃ¶rlÃ©s",
+DlgColorHighlight	: "ElÅ‘nÃ©zet",
+DlgColorSelected	: "KivÃ¡lasztott",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Hangulatjel beszÃºrÃ¡sa",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "SpeciÃ¡lis karakter vÃ¡lasztÃ¡sa",
+
+// Table Dialog
+DlgTableTitle		: "TÃ¡blÃ¡zat tulajdonsÃ¡gai",
+DlgTableRows		: "Sorok",
+DlgTableColumns		: "Oszlopok",
+DlgTableBorder		: "SzegÃ©lymÃ©ret",
+DlgTableAlign		: "IgazÃ­tÃ¡s",
+DlgTableAlignNotSet	: "<Nincs beÃ¡llÃ­tva>",
+DlgTableAlignLeft	: "Balra",
+DlgTableAlignCenter	: "KÃ¶zÃ©pre",
+DlgTableAlignRight	: "Jobbra",
+DlgTableWidth		: "SzÃ©lessÃ©g",
+DlgTableWidthPx		: "kÃ©ppont",
+DlgTableWidthPc		: "szÃ¡zalÃ©k",
+DlgTableHeight		: "MagassÃ¡g",
+DlgTableCellSpace	: "Cella tÃ©rkÃ¶z",
+DlgTableCellPad		: "Cella belsÅ‘ margÃ³",
+DlgTableCaption		: "Felirat",
+DlgTableSummary		: "LeÃ­rÃ¡s",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cella tulajdonsÃ¡gai",
+DlgCellWidth		: "SzÃ©lessÃ©g",
+DlgCellWidthPx		: "kÃ©ppont",
+DlgCellWidthPc		: "szÃ¡zalÃ©k",
+DlgCellHeight		: "MagassÃ¡g",
+DlgCellWordWrap		: "SortÃ¶rÃ©s",
+DlgCellWordWrapNotSet	: "<Nincs beÃ¡llÃ­tva>",
+DlgCellWordWrapYes	: "Igen",
+DlgCellWordWrapNo	: "Nem",
+DlgCellHorAlign		: "VÃ­zsz. igazÃ­tÃ¡s",
+DlgCellHorAlignNotSet	: "<Nincs beÃ¡llÃ­tva>",
+DlgCellHorAlignLeft	: "Balra",
+DlgCellHorAlignCenter	: "KÃ¶zÃ©pre",
+DlgCellHorAlignRight: "Jobbra",
+DlgCellVerAlign		: "FÃ¼gg. igazÃ­tÃ¡s",
+DlgCellVerAlignNotSet	: "<Nincs beÃ¡llÃ­tva>",
+DlgCellVerAlignTop	: "TetejÃ©re",
+DlgCellVerAlignMiddle	: "KÃ¶zÃ©pre",
+DlgCellVerAlignBottom	: "AljÃ¡ra",
+DlgCellVerAlignBaseline	: "Egyvonalba",
+DlgCellRowSpan		: "Sorok egyesÃ­tÃ©se",
+DlgCellCollSpan		: "Oszlopok egyesÃ­tÃ©se",
+DlgCellBackColor	: "HÃ¡ttÃ©rszÃ­n",
+DlgCellBorderColor	: "SzegÃ©lyszÃ­n",
+DlgCellBtnSelect	: "KivÃ¡lasztÃ¡s...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "KeresÃ©s Ã©s csere",
+
+// Find Dialog
+DlgFindTitle		: "KeresÃ©s",
+DlgFindFindBtn		: "KeresÃ©s",
+DlgFindNotFoundMsg	: "A keresett szÃ¶veg nem talÃ¡lhatÃ³.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Csere",
+DlgReplaceFindLbl		: "Keresett szÃ¶veg:",
+DlgReplaceReplaceLbl	: "Csere erre:",
+DlgReplaceCaseChk		: "kis- Ã©s nagybetÅ± megkÃ¼lÃ¶nbÃ¶ztetÃ©se",
+DlgReplaceReplaceBtn	: "Csere",
+DlgReplaceReplAllBtn	: "Az Ã¶sszes cserÃ©je",
+DlgReplaceWordChk		: "csak ha ez a teljes szÃ³",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "BeillesztÃ©s formÃ¡zatlan szÃ¶vegkÃ©nt",
+PasteFromWord	: "BeillesztÃ©s Word-bÅ‘l",
+
+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.",
+DlgPasteSec		: "A bÃ¶ngÃ©szÅ‘ biztonsÃ¡gi beÃ¡llÃ­tÃ¡sai miatt a szerkesztÅ‘ nem kÃ©pes hozzÃ¡fÃ©rni a vÃ¡gÃ³lap adataihoz. Illeszd be Ãºjra ebben az ablakban.",
+DlgPasteIgnoreFont		: "BetÅ± formÃ¡zÃ¡sok megszÃ¼ntetÃ©se",
+DlgPasteRemoveStyles	: "StÃ­lusok eltÃ¡volÃ­tÃ¡sa",
+
+// Color Picker
+ColorAutomatic	: "Automatikus",
+ColorMoreColors	: "TovÃ¡bbi szÃ­nek...",
+
+// Document Properties
+DocProps		: "Dokumentum tulajdonsÃ¡gai",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Horgony tulajdonsÃ¡gai",
+DlgAnchorName		: "Horgony neve",
+DlgAnchorErrorName	: "KÃ©rem adja meg a horgony nevÃ©t",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nincs a szÃ³tÃ¡rban",
+DlgSpellChangeTo		: "MÃ³dosÃ­tÃ¡s",
+DlgSpellBtnIgnore		: "Kihagyja",
+DlgSpellBtnIgnoreAll	: "Mindet kihagyja",
+DlgSpellBtnReplace		: "Csere",
+DlgSpellBtnReplaceAll	: "Ã–sszes cserÃ©je",
+DlgSpellBtnUndo			: "VisszavonÃ¡s",
+DlgSpellNoSuggestions	: "Nincs javaslat",
+DlgSpellProgress		: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s folyamatban...",
+DlgSpellNoMispell		: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s kÃ©sz: Nem talÃ¡ltam hibÃ¡t",
+DlgSpellNoChanges		: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s kÃ©sz: Nincs vÃ¡ltoztatott szÃ³",
+DlgSpellOneChange		: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s kÃ©sz: Egy szÃ³ cserÃ©lve",
+DlgSpellManyChanges		: "HelyesÃ­rÃ¡s-ellenÅ‘rzÃ©s kÃ©sz: %1 szÃ³ cserÃ©lve",
+
+IeSpellDownload			: "A helyesÃ­rÃ¡s-ellenÅ‘rzÅ‘ nincs telepÃ­tve. SzeretnÃ© letÃ¶lteni most?",
+
+// Button Dialog
+DlgButtonText		: "SzÃ¶veg (Ã‰rtÃ©k)",
+DlgButtonType		: "TÃ­pus",
+DlgButtonTypeBtn	: "Gomb",
+DlgButtonTypeSbm	: "KÃ¼ldÃ©s",
+DlgButtonTypeRst	: "Alaphelyzet",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "NÃ©v",
+DlgCheckboxValue	: "Ã‰rtÃ©k",
+DlgCheckboxSelected	: "KivÃ¡lasztott",
+
+// Form Dialog
+DlgFormName		: "NÃ©v",
+DlgFormAction	: "AdatfeldolgozÃ¡st vÃ©gzÅ‘ hivatkozÃ¡s",
+DlgFormMethod	: "AdatkÃ¼ldÃ©s mÃ³dja",
+
+// Select Field Dialog
+DlgSelectName		: "NÃ©v",
+DlgSelectValue		: "Ã‰rtÃ©k",
+DlgSelectSize		: "MÃ©ret",
+DlgSelectLines		: "sor",
+DlgSelectChkMulti	: "tÃ¶bb sor is kivÃ¡laszthatÃ³",
+DlgSelectOpAvail	: "ElÃ©rhetÅ‘ opciÃ³k",
+DlgSelectOpText		: "SzÃ¶veg",
+DlgSelectOpValue	: "Ã‰rtÃ©k",
+DlgSelectBtnAdd		: "HozzÃ¡ad",
+DlgSelectBtnModify	: "MÃ³dosÃ­t",
+DlgSelectBtnUp		: "Fel",
+DlgSelectBtnDown	: "Le",
+DlgSelectBtnSetValue : "Legyen az alapÃ©rtelmezett Ã©rtÃ©k",
+DlgSelectBtnDelete	: "TÃ¶rÃ¶l",
+
+// Textarea Dialog
+DlgTextareaName	: "NÃ©v",
+DlgTextareaCols	: "Karakterek szÃ¡ma egy sorban",
+DlgTextareaRows	: "Sorok szÃ¡ma",
+
+// Text Field Dialog
+DlgTextName			: "NÃ©v",
+DlgTextValue		: "Ã‰rtÃ©k",
+DlgTextCharWidth	: "MegjelenÃ­tett karakterek szÃ¡ma",
+DlgTextMaxChars		: "MaximÃ¡lis karakterszÃ¡m",
+DlgTextType			: "TÃ­pus",
+DlgTextTypeText		: "SzÃ¶veg",
+DlgTextTypePass		: "JelszÃ³",
+
+// Hidden Field Dialog
+DlgHiddenName	: "NÃ©v",
+DlgHiddenValue	: "Ã‰rtÃ©k",
+
+// Bulleted List Dialog
+BulletedListProp	: "FelsorolÃ¡s tulajdonsÃ¡gai",
+NumberedListProp	: "SzÃ¡mozÃ¡s tulajdonsÃ¡gai",
+DlgLstStart			: "Start",
+DlgLstType			: "FormÃ¡tum",
+DlgLstTypeCircle	: "KÃ¶r",
+DlgLstTypeDisc		: "Lemez",
+DlgLstTypeSquare	: "NÃ©gyzet",
+DlgLstTypeNumbers	: "SzÃ¡mok (1, 2, 3)",
+DlgLstTypeLCase		: "KisbetÅ±k (a, b, c)",
+DlgLstTypeUCase		: "NagybetÅ±k (A, B, C)",
+DlgLstTypeSRoman	: "Kis rÃ³mai szÃ¡mok (i, ii, iii)",
+DlgLstTypeLRoman	: "Nagy rÃ³mai szÃ¡mok (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ÃltalÃ¡nos",
+DlgDocBackTab		: "HÃ¡ttÃ©r",
+DlgDocColorsTab		: "SzÃ­nek Ã©s margÃ³k",
+DlgDocMetaTab		: "Meta adatok",
+
+DlgDocPageTitle		: "OldalcÃ­m",
+DlgDocLangDir		: "ÃrÃ¡s irÃ¡nya",
+DlgDocLangDirLTR	: "BalrÃ³l jobbra",
+DlgDocLangDirRTL	: "JobbrÃ³l balra",
+DlgDocLangCode		: "Nyelv kÃ³d",
+DlgDocCharSet		: "KarakterkÃ³dolÃ¡s",
+DlgDocCharSetCE		: "KÃ¶zÃ©p-EurÃ³pai",
+DlgDocCharSetCT		: "KÃ­nai TradicionÃ¡lis (Big5)",
+DlgDocCharSetCR		: "Cyrill",
+DlgDocCharSetGR		: "GÃ¶rÃ¶g",
+DlgDocCharSetJP		: "JapÃ¡n",
+DlgDocCharSetKR		: "Koreai",
+DlgDocCharSetTR		: "TÃ¶rÃ¶k",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Nyugat-EurÃ³pai",
+DlgDocCharSetOther	: "MÃ¡s karakterkÃ³dolÃ¡s",
+
+DlgDocDocType		: "Dokumentum tÃ­pus fejlÃ©c",
+DlgDocDocTypeOther	: "MÃ¡s dokumentum tÃ­pus fejlÃ©c",
+DlgDocIncXHTML		: "XHTML deklarÃ¡ciÃ³k beillesztÃ©se",
+DlgDocBgColor		: "HÃ¡ttÃ©rszÃ­n",
+DlgDocBgImage		: "HÃ¡ttÃ©rkÃ©p cÃ­m",
+DlgDocBgNoScroll	: "Nem gÃ¶rdÃ­thetÅ‘ hÃ¡ttÃ©r",
+DlgDocCText			: "SzÃ¶veg",
+DlgDocCLink			: "CÃ­m",
+DlgDocCVisited		: "LÃ¡togatott cÃ­m",
+DlgDocCActive		: "AktÃ­v cÃ­m",
+DlgDocMargins		: "Oldal margÃ³k",
+DlgDocMaTop			: "FelsÅ‘",
+DlgDocMaLeft		: "Bal",
+DlgDocMaRight		: "Jobb",
+DlgDocMaBottom		: "AlsÃ³",
+DlgDocMeIndex		: "Dokumentum keresÅ‘szavak (vesszÅ‘vel elvÃ¡lasztva)",
+DlgDocMeDescr		: "Dokumentum leÃ­rÃ¡s",
+DlgDocMeAuthor		: "SzerzÅ‘",
+DlgDocMeCopy		: "SzerzÅ‘i jog",
+DlgDocPreview		: "ElÅ‘nÃ©zet",
+
+// Templates Dialog
+Templates			: "Sablonok",
+DlgTemplatesTitle	: "ElÃ©rhetÅ‘ sablonok",
+DlgTemplatesSelMsg	: "VÃ¡lassza ki melyik sablon nyÃ­ljon meg a szerkesztÅ‘ben<br>(a jelenlegi tartalom elveszik):",
+DlgTemplatesLoading	: "Sablon lista betÃ¶ltÃ©se. Kis tÃ¼relmet...",
+DlgTemplatesNoTpl	: "(Nincs sablon megadva)",
+DlgTemplatesReplace	: "KicserÃ©li a jelenlegi tartalmat",
+
+// About Dialog
+DlgAboutAboutTab	: "NÃ©vjegy",
+DlgAboutBrowserInfoTab	: "BÃ¶ngÃ©szÅ‘ informÃ¡ciÃ³",
+DlgAboutLicenseTab	: "Licensz",
+DlgAboutVersion		: "verziÃ³",
+DlgAboutInfo		: "TovÃ¡bbi informÃ¡ciÃ³kÃ©rt lÃ¡togasson el ide:"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/no.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/no.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/no.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Norwegian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul verktÃ¸ylinje",
+ToolbarExpand		: "Vis verktÃ¸ylinje",
+
+// Toolbar Items and Context Menu
+Save				: "Lagre",
+NewPage				: "Ny Side",
+Preview				: "ForhÃ¥ndsvis",
+Cut					: "Klipp ut",
+Copy				: "Kopier",
+Paste				: "Lim inn",
+PasteText			: "Lim inn som ren tekst",
+PasteWord			: "Lim inn fra Word",
+Print				: "Skriv ut",
+SelectAll			: "Merk alt",
+RemoveFormat		: "Fjern format",
+InsertLinkLbl		: "Lenke",
+InsertLink			: "Sett inn/Rediger lenke",
+RemoveLink			: "Fjern lenke",
+Anchor				: "Sett inn/Rediger anker",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Bilde",
+InsertImage			: "Sett inn/Rediger bilde",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sett inn/Rediger Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Sett inn/Rediger tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Sett inn horisontal linje",
+InsertSpecialCharLbl: "Spesielt tegn",
+InsertSpecialChar	: "Sett inn spesielt tegn",
+InsertSmileyLbl		: "Smil",
+InsertSmiley		: "Sett inn smil",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understrek",
+StrikeThrough		: "Gjennomstrek",
+Subscript			: "Senket skrift",
+Superscript			: "Hevet skrift",
+LeftJustify			: "Venstrejuster",
+CenterJustify		: "Midtjuster",
+RightJustify		: "HÃ¸yrejuster",
+BlockJustify		: "Blokkjuster",
+DecreaseIndent		: "Senk nivÃ¥",
+IncreaseIndent		: "Ã˜k nivÃ¥",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Angre",
+Redo				: "GjÃ¸r om",
+NumberedListLbl		: "Numrert liste",
+NumberedList		: "Sett inn/Fjern numrert liste",
+BulletedListLbl		: "Uordnet liste",
+BulletedList		: "Sett inn/Fjern uordnet liste",
+ShowTableBorders	: "Vis tabellrammer",
+ShowDetails			: "Vis detaljer",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Skrift",
+FontSize			: "StÃ¸rrelse",
+TextColor			: "Tekstfarge",
+BGColor				: "Bakgrunnsfarge",
+Source				: "Kilde",
+Find				: "Finn",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Sjekkboks",
+RadioButton		: "Radioknapp",
+TextField		: "Tekstfelt",
+Textarea		: "TekstomrÃ¥de",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Dropdown meny",
+ImageButton		: "Bildeknapp",
+
+FitWindow		: "Maksimer stÃ¸rrelsen pÃ¥ redigeringsverktÃ¸yet",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Slett rader",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Slett kolonner",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Slett celler",
+MergeCells			: "SlÃ¥ sammen celler",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Slett tabell",
+CellProperties		: "Celleegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildeegenskaper",
+FlashProperties		: "Flash Egenskaper",
+
+AnchorProp			: "Ankeregenskaper",
+ButtonProp			: "Knappegenskaper",
+CheckboxProp		: "Sjekkboksegenskaper",
+HiddenFieldProp		: "Skjult felt egenskaper",
+RadioButtonProp		: "Radioknappegenskaper",
+ImageButtonProp		: "Bildeknappegenskaper",
+TextFieldProp		: "Tekstfeltegenskaper",
+SelectionFieldProp	: "Dropdown menyegenskaper",
+TextareaProp		: "Tekstfeltegenskaper",
+FormProp			: "Skjemaegenskaper",
+
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Lager XHTML. Vennligst vent...",
+Done				: "Ferdig",
+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?",
+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)",
+UnknownToolbarItem	: "Ukjent menyvalg \"%1\"",
+UnknownCommand		: "Ukjent kommando \"%1\"",
+NotImplemented		: "Kommando ikke ennÃ¥ implimentert",
+UnknownToolbarSet	: "VerktÃ¸ylinjesett \"%1\" finnes ikke",
+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",
+BrowseServerBlocked : "Kunne ikke Ã¥pne dialogboksen for filarkiv. Pass pÃ¥ at du har slÃ¥tt av popupstoppere.",
+DialogBlocked		: "Kunne ikke Ã¥pne dialogboksen. Pass pÃ¥ at du har slÃ¥tt av popupstoppere.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Lukk",
+DlgBtnBrowseServer	: "Bla igjennom server",
+DlgAdvancedTag		: "Avansert",
+DlgOpOther			: "<Annet>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Vennligst skriv inn URL'en",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikke satt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "SprÃ¥kretning",
+DlgGenLangDirLtr	: "Venstre til hÃ¸yre (VTH)",
+DlgGenLangDirRtl	: "HÃ¸yre til venstre (HTV)",
+DlgGenLangCode		: "SprÃ¥k kode",
+DlgGenAccessKey		: "Aksessknapp",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Utvidet beskrivelse",
+DlgGenClass			: "Stilarkklasser",
+DlgGenTitle			: "Tittel",
+DlgGenContType		: "Type",
+DlgGenLinkCharset	: "Lenket sprÃ¥kkart",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Bildeegenskaper",
+DlgImgInfoTab		: "Bildeinformasjon",
+DlgImgBtnUpload		: "Send det til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Last opp",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "HÃ¸yde",
+DlgImgLockRatio		: "LÃ¥s forhold",
+DlgBtnResetSize		: "Tilbakestill stÃ¸rrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMarg",
+DlgImgVSpace		: "VMarg",
+DlgImgAlign			: "Juster",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Abs bunn",
+DlgImgAlignAbsMiddle: "Abs midten",
+DlgImgAlignBaseline	: "Bunnlinje",
+DlgImgAlignBottom	: "Bunn",
+DlgImgAlignMiddle	: "Midten",
+DlgImgAlignRight	: "HÃ¸yre",
+DlgImgAlignTextTop	: "Tekst topp",
+DlgImgAlignTop		: "Topp",
+DlgImgPreview		: "ForhÃ¥ndsvis",
+DlgImgAlertUrl		: "Vennligst skriv bildeurlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Egenskaper",
+DlgFlashChkPlay		: "Auto Spill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "SlÃ¥ pÃ¥ Flash meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til Ã¥ passeExact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Lenke",
+DlgLnkInfoTab		: "Lenkeinfo",
+DlgLnkTargetTab		: "MÃ¥l",
+
+DlgLnkType			: "Lenketype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Lenke til anker i teksten",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<annet>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Velg ett anker",
+DlgLnkAnchorByName	: "Anker etter navn",
+DlgLnkAnchorById	: "Element etter ID",
+DlgLnkNoAnchors		: "(Ingen anker i dokumentet)",
+DlgLnkEMail			: "E-postadresse",
+DlgLnkEMailSubject	: "Meldingsemne",
+DlgLnkEMailBody		: "Melding",
+DlgLnkUpload		: "Last opp",
+DlgLnkBtnUpload		: "Send til server",
+
+DlgLnkTarget		: "MÃ¥l",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
+DlgLnkTargetBlank	: "Nytt vindu (_blank)",
+DlgLnkTargetParent	: "Foreldre vindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "MÃ¥lramme",
+DlgLnkPopWinName	: "Popup vindus navn",
+DlgLnkPopWinFeat	: "Popup vindus egenskaper",
+DlgLnkPopResize		: "Endre stÃ¸rrelse",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menylinje",
+DlgLnkPopScroll		: "Scrollbar",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "VerktÃ¸ylinje",
+DlgLnkPopFullScrn	: "Full skjerm (IE)",
+DlgLnkPopDependent	: "Avhenging (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "HÃ¸yde",
+DlgLnkPopLeft		: "Venstre posisjon",
+DlgLnkPopTop		: "Topp posisjon",
+
+DlnLnkMsgNoUrl		: "Vennligst skriv inn lenkens url",
+DlnLnkMsgNoEMail	: "Vennligst skriv inn e-postadressen",
+DlnLnkMsgNoAnchor	: "Vennligst velg ett anker",
+DlnLnkMsgInvPopName	: "Popup vinduets navn mÃ¥ begynne med en bokstav, og kan ikke inneholde mellomrom",
+
+// Color Dialog
+DlgColorTitle		: "Velg farge",
+DlgColorBtnClear	: "TÃ¸m",
+DlgColorHighlight	: "Marker",
+DlgColorSelected	: "Velg",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "RammestÃ¸rrelse",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikke satt>",
+DlgTableAlignLeft	: "Venstre",
+DlgTableAlignCenter	: "Midtjuster",
+DlgTableAlignRight	: "HÃ¸yre",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "piksler",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "HÃ¸yde",
+DlgTableCellSpace	: "Celle marg",
+DlgTableCellPad		: "Celle polstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+
+// Table Cell Dialog
+DlgCellTitle		: "Celleegenskaper",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "piksler",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "HÃ¸yde",
+DlgCellWordWrap		: "Tekstbrytning",
+DlgCellWordWrapNotSet	: "<Ikke satt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke satt>",
+DlgCellHorAlignLeft	: "Venstre",
+DlgCellHorAlignCenter	: "Midtjuster",
+DlgCellHorAlignRight: "HÃ¸yre",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ikke satt>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Midten",
+DlgCellVerAlignBottom	: "Bunn",
+DlgCellVerAlignBaseline	: "Bunnlinje",
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Den spesifiserte teksten ble ikke funnet.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Finn hva:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Riktig case",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Finn hele ordet",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
+
+PasteAsText		: "Lim inn som ren tekst",
+PasteFromWord	: "Lim inn fra word",
+
+DlgPasteMsg2	: "Vennligst lim inn i den fÃ¸lgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Fjern skrifttyper",
+DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankeregenskaper",
+DlgAnchorName		: "Ankernavn",
+DlgAnchorErrorName	: "Vennligst skriv inn ankernavnet",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordboken",
+DlgSpellChangeTo		: "Endre til",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstatt",
+DlgSpellBtnReplaceAll	: "Erstatt alle",
+DlgSpellBtnUndo			: "Angre",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontroll pÃ¥gÃ¥r...",
+DlgSpellNoMispell		: "Stavekontroll fullfÃ¸rt: ingen feilstavinger funnet",
+DlgSpellNoChanges		: "Stavekontroll fullfÃ¸rt: ingen ord endret",
+DlgSpellOneChange		: "Stavekontroll fullfÃ¸rt: Ett ord endret",
+DlgSpellManyChanges		: "Stavekontroll fullfÃ¸rt: %1 ord endret",
+
+IeSpellDownload			: "Stavekontroll ikke installert, vil du laste den ned nÃ¥?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Knapp",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstill",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Verdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Verdi",
+DlgSelectSize		: "StÃ¸rrelse",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillat flervalg",
+DlgSelectOpAvail	: "Tilgjenglige alternativer",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Verdi",
+DlgSelectBtnAdd		: "Legg til",
+DlgSelectBtnModify	: "Endre",
+DlgSelectBtnUp		: "Opp",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sett som valgt",
+DlgSelectBtnDelete	: "Slett",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "verdi",
+DlgTextCharWidth	: "Tegnbredde",
+DlgTextMaxChars		: "Maks antall tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Passord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Verdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Uordnet listeegenskaper",
+NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Hel sirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Numre(1, 2, 3)",
+DlgLstTypeLCase		: "SmÃ¥ bokstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bokstaver(A, B, C)",
+DlgLstTypeSRoman	: "SmÃ¥ romerske tall(i, ii, iii)",
+DlgLstTypeLRoman	: "Store romerske tall(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generalt",
+DlgDocBackTab		: "Bakgrunn",
+DlgDocColorsTab		: "Farger og marginer",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Sidetittel",
+DlgDocLangDir		: "SprÃ¥kretning",
+DlgDocLangDirLTR	: "Venstre til hÃ¸yre (LTR)",
+DlgDocLangDirRTL	: "HÃ¸yre til venstre (RTL)",
+DlgDocLangCode		: "SprÃ¥kkode",
+DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Sentraleuropeisk",
+DlgDocCharSetCT		: "Tradisonell kinesisk(Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Gresk",
+DlgDocCharSetJP		: "Japansk",
+DlgDocCharSetKR		: "Koreansk",
+DlgDocCharSetTR		: "Tyrkisk",
+DlgDocCharSetUN		: "Unikode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkulder XHTML deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "Bakgrunnsbilde url",
+DlgDocBgNoScroll	: "Ikke scroll bakgrunnsbilde",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "BesÃ¸kt lenke",
+DlgDocCActive		: "Aktiv lenke",
+DlgDocMargins		: "Sidemargin",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "HÃ¸yre",
+DlgDocMaBottom		: "Bunn",
+DlgDocMeIndex		: "Dokument nÃ¸kkelord (kommaseparert)",
+DlgDocMeDescr		: "Dokumentbeskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Kopirett",
+DlgDocPreview		: "ForhÃ¥ndsvising",
+
+// Templates Dialog
+Templates			: "Maler",
+DlgTemplatesTitle	: "Innholdsmaler",
+DlgTemplatesSelMsg	: "Velg malen du vil Ã¥pne<br>(innholdet du har skrevet blir tapt!):",
+DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
+DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Erstatt faktisk innold",
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
+DlgAboutVersion		: "versjon",
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sk.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sk.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sk.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Slovak language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "SkryÅ¥ panel nÃ¡strojov",
+ToolbarExpand		: "ZobraziÅ¥ panel nÃ¡strojov",
+
+// Toolbar Items and Context Menu
+Save				: "UloÅ¾it",
+NewPage				: "NovÃ¡ strÃ¡nka",
+Preview				: "NÃ¡hÄ¾ad",
+Cut					: "VystrihnÃºÅ¥",
+Copy				: "KopÃ­rovaÅ¥",
+Paste				: "VloÅ¾iÅ¥",
+PasteText			: "VloÅ¾iÅ¥ ako ÄistÃ½ text",
+PasteWord			: "VloÅ¾iÅ¥ z Wordu",
+Print				: "TlaÄ",
+SelectAll			: "VybraÅ¥ vÅ¡etko",
+RemoveFormat		: "OdstrÃ¡niÅ¥ formÃ¡tovanie",
+InsertLinkLbl		: "Odkaz",
+InsertLink			: "VloÅ¾iÅ¥/zmeniÅ¥ odkaz",
+RemoveLink			: "OdstrÃ¡niÅ¥ odkaz",
+Anchor				: "VloÅ¾iÅ¥/zmeniÅ¥ kotvu",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "ObrÃ¡zok",
+InsertImage			: "VloÅ¾iÅ¥/zmeniÅ¥ obrÃ¡zok",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "VloÅ¾iÅ¥/zmeniÅ¥ Flash",
+InsertTableLbl		: "TabuÄ¾ka",
+InsertTable			: "VloÅ¾iÅ¥/zmeniÅ¥ tabuÄ¾ku",
+InsertLineLbl		: "ÄŒiara",
+InsertLine			: "VloÅ¾iÅ¥ vodorovnÃº Äiaru",
+InsertSpecialCharLbl: "Å peciÃ¡lne znaky",
+InsertSpecialChar	: "VloÅ¾iÅ¥ Å¡peciÃ¡lne znaky",
+InsertSmileyLbl		: "SmajlÃ­ky",
+InsertSmiley		: "VloÅ¾iÅ¥ smajlÃ­ka",
+About				: "O aplikÃ¡ci FCKeditor",
+Bold				: "TuÄnÃ©",
+Italic				: "KurzÃ­va",
+Underline			: "PodÄiarknutÃ©",
+StrikeThrough		: "PreÄiarknutÃ©",
+Subscript			: "DolnÃ½ index",
+Superscript			: "HornÃ½ index",
+LeftJustify			: "ZarovnaÅ¥ vÄ¾avo",
+CenterJustify		: "ZarovnaÅ¥ na stred",
+RightJustify		: "ZarovnaÅ¥ vpravo",
+BlockJustify		: "ZarovnaÅ¥ do bloku",
+DecreaseIndent		: "ZmenÅ¡iÅ¥ odsadenie",
+IncreaseIndent		: "ZvÃ¤ÄÅ¡iÅ¥ odsadenie",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "SpÃ¤Å¥",
+Redo				: "Znovu",
+NumberedListLbl		: "ÄŒÃ­slovanie",
+NumberedList		: "VloÅ¾iÅ¥/odstrÃ¡niÅ¥ ÄÃ­slovanÃ½ zoznam",
+BulletedListLbl		: "OdrÃ¡Å¾ky",
+BulletedList		: "VloÅ¾iÅ¥/odstraniÅ¥ odrÃ¡Å¾ky",
+ShowTableBorders	: "ZobraziÅ¥ okraje tabuliek",
+ShowDetails			: "ZobraziÅ¥ podrobnosti",
+Style				: "Å tÃ½l",
+FontFormat			: "FormÃ¡t",
+Font				: "PÃ­smo",
+FontSize			: "VeÄ¾kosÅ¥",
+TextColor			: "Farba textu",
+BGColor				: "Farba pozadia",
+Source				: "Zdroj",
+Find				: "HÄ¾adaÅ¥",
+Replace				: "NahradiÅ¥",
+SpellCheck			: "Kontrola pravopisu",
+UniversalKeyboard	: "UniverzÃ¡lna klÃ¡vesnica",
+PageBreakLbl		: "OddeÄ¾ovaÄ strÃ¡nky",
+PageBreak			: "VloÅ¾iÅ¥ oddeÄ¾ovaÄ strÃ¡nky",
+
+Form			: "FormulÃ¡r",
+Checkbox		: "ZaÅ¡krtÃ¡vacie polÃ­Äko",
+RadioButton		: "PrepÃ­naÄ",
+TextField		: "TextovÃ© pole",
+Textarea		: "TextovÃ¡ oblasÅ¥",
+HiddenField		: "SkrytÃ© pole",
+Button			: "TlaÄÃ­idlo",
+SelectionField	: "RozbaÄ¾ovacÃ­ zoznam",
+ImageButton		: "ObrÃ¡zkovÃ© tlaÄidlo",
+
+FitWindow		: "MaximalizovaÅ¥ veÄ¾kosÅ¥ okna editora",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "ZmeniÅ¥ odkaz",
+CellCM				: "Bunka",
+RowCM				: "Riadok",
+ColumnCM			: "StÄºpec",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "VymazaÅ¥ riadok",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "ZmazaÅ¥ stÄºpec",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "VymazaÅ¥ bunky",
+MergeCells			: "ZlÃºÄiÅ¥ bunky",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "VymazaÅ¥ tabuÄ¾ku",
+CellProperties		: "Vlastnosti bunky",
+TableProperties		: "Vlastnosti tabuÄ¾ky",
+ImageProperties		: "Vlastnosti obrÃ¡zku",
+FlashProperties		: "Vlastnosti Flashu",
+
+AnchorProp			: "Vlastnosti kotvy",
+ButtonProp			: "Vlastnosti tlaÄidla",
+CheckboxProp		: "Vlastnosti zaÅ¡krtÃ¡vacieho polÃ­Äka",
+HiddenFieldProp		: "Vlastnosti skrytÃ©ho poÄ¾a",
+RadioButtonProp		: "Vlastnosti prepÃ­naÄa",
+ImageButtonProp		: "Vlastnosti obrÃ¡zkovÃ©ho tlaÄidla",
+TextFieldProp		: "Vlastnosti textovÃ©ho poÄ¾a",
+SelectionFieldProp	: "Vlastnosti rozbaÄ¾ovacieho zoznamu",
+TextareaProp		: "Vlastnosti textovej oblasti",
+FormProp			: "Vlastnosti formulÃ¡ra",
+
+FontFormats			: "NormÃ¡lny;FormÃ¡tovanÃ½;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Prebieha spracovanie XHTML. ÄŒakajte prosÃ­m...",
+Done				: "DokonÄenÃ©.",
+PasteWordConfirm	: "VyzerÃ¡ to tak, Å¾e vkladanÃ½ text je kopÃ­rovanÃ½ z Wordu. Chcete ho pred vloÅ¾enÃ­m vyÄistiÅ¥?",
+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?",
+UnknownToolbarItem	: "NeznÃ¡ma poloÅ¾ka panela nÃ¡strojov \"%1\"",
+UnknownCommand		: "NeznÃ¡my prÃ­kaz \"%1\"",
+NotImplemented		: "PrÃ­kaz nie je implementovanÃ½",
+UnknownToolbarSet	: "Panel nÃ¡strojov \"%1\" neexistuje",
+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Ã­.",
+BrowseServerBlocked : "PrehliadaÄ zdrojovÃ½ch prvkov nebolo moÅ¾nÃ© otvoriÅ¥. Uistite sa, Å¾e mÃ¡te vypnutÃ© vÅ¡etky blokovaÄe vyskakujÃºcich okien.",
+DialogBlocked		: "DialÃ³govÃ© okno nebolo moÅ¾nÃ© otvoriÅ¥. Uistite sa, Å¾e mÃ¡te vypnutÃ© vÅ¡etky blokovaÄe vyskakujÃºcich okien.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "ZruÅ¡iÅ¥",
+DlgBtnClose			: "ZavrieÅ¥",
+DlgBtnBrowseServer	: "PrechÃ¡dzaÅ¥ server",
+DlgAdvancedTag		: "RozÅ¡Ã­renÃ©",
+DlgOpOther			: "<ÄŽalÅ¡ie>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "ProsÃ­m vloÅ¾te URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nenastavenÃ©>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "OrientÃ¡cia jazyka",
+DlgGenLangDirLtr	: "ZÄ¾ava doprava (LTR)",
+DlgGenLangDirRtl	: "Sprava doÄ¾ava (RTL)",
+DlgGenLangCode		: "KÃ³d jazyka",
+DlgGenAccessKey		: "PrÃ­stupovÃ½ kÄ¾ÃºÄ",
+DlgGenName			: "Meno",
+DlgGenTabIndex		: "Poradie prvku",
+DlgGenLongDescr		: "DlhÃ½ popis URL",
+DlgGenClass			: "Trieda Å¡tÃ½lu",
+DlgGenTitle			: "PomocnÃ½ titulok",
+DlgGenContType		: "PomocnÃ½ typ obsahu",
+DlgGenLinkCharset	: "PriradenÃ¡ znakovÃ¡ sada",
+DlgGenStyle			: "Å tÃ½l",
+
+// Image Dialog
+DlgImgTitle			: "Vlastnosti obrÃ¡zku",
+DlgImgInfoTab		: "InformÃ¡cie o obrÃ¡zku",
+DlgImgBtnUpload		: "OdoslaÅ¥ na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "OdoslaÅ¥",
+DlgImgAlt			: "AlternatÃ­vny text",
+DlgImgWidth			: "Å Ã­rka",
+DlgImgHeight		: "VÃ½Å¡ka",
+DlgImgLockRatio		: "ZÃ¡mok",
+DlgBtnResetSize		: "PÃ´vodnÃ¡ veÄ¾kosÅ¥",
+DlgImgBorder		: "Okraje",
+DlgImgHSpace		: "H-medzera",
+DlgImgVSpace		: "V-medzera",
+DlgImgAlign			: "Zarovnanie",
+DlgImgAlignLeft		: "VÄ¾avo",
+DlgImgAlignAbsBottom: "Ãšplne dole",
+DlgImgAlignAbsMiddle: "Do stredu",
+DlgImgAlignBaseline	: "Na zÃ¡kladÅˆu",
+DlgImgAlignBottom	: "Dole",
+DlgImgAlignMiddle	: "Na stred",
+DlgImgAlignRight	: "Vpravo",
+DlgImgAlignTextTop	: "Na hornÃ½ okraj textu",
+DlgImgAlignTop		: "Nahor",
+DlgImgPreview		: "NÃ¡hÄ¾ad",
+DlgImgAlertUrl		: "Zadajte prosÃ­m URL obrÃ¡zku",
+DlgImgLinkTab		: "Odkaz",
+
+// Flash Dialog
+DlgFlashTitle		: "Vlastnosti Flashu",
+DlgFlashChkPlay		: "AutomatickÃ© prehrÃ¡vanie",
+DlgFlashChkLoop		: "Opakovanie",
+DlgFlashChkMenu		: "PovoliÅ¥ Flash Menu",
+DlgFlashScale		: "Mierka",
+DlgFlashScaleAll	: "ZobraziÅ¥ mierku",
+DlgFlashScaleNoBorder	: "Bez okrajov",
+DlgFlashScaleFit	: "RoztiahnuÅ¥ na celÃ©",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Odkaz",
+DlgLnkInfoTab		: "InformÃ¡cie o odkaze",
+DlgLnkTargetTab		: "CieÄ¾",
+
+DlgLnkType			: "Typ odkazu",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Kotva v tejto strÃ¡nke",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<inÃ½>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "VybraÅ¥ kotvu",
+DlgLnkAnchorByName	: "PodÄ¾a mena kotvy",
+DlgLnkAnchorById	: "PodÄ¾a Id objektu",
+DlgLnkNoAnchors		: "(V strÃ¡nke nie je definovanÃ¡ Å¾iadna kotva)",
+DlgLnkEMail			: "E-MailovÃ¡ adresa",
+DlgLnkEMailSubject	: "Predmet sprÃ¡vy",
+DlgLnkEMailBody		: "Telo sprÃ¡vy",
+DlgLnkUpload		: "OdoslaÅ¥",
+DlgLnkBtnUpload		: "OdoslaÅ¥ na server",
+
+DlgLnkTarget		: "CieÄ¾",
+DlgLnkTargetFrame	: "<rÃ¡mec>",
+DlgLnkTargetPopup	: "<vyskakovacie okno>",
+DlgLnkTargetBlank	: "NovÃ© okno (_blank)",
+DlgLnkTargetParent	: "RodiÄovskÃ© okno (_parent)",
+DlgLnkTargetSelf	: "RovnakÃ© okno (_self)",
+DlgLnkTargetTop		: "HlavnÃ© okno (_top)",
+DlgLnkTargetFrameName	: "Meno rÃ¡mu cieÄ¾a",
+DlgLnkPopWinName	: "NÃ¡zov vyskakovacieho okna",
+DlgLnkPopWinFeat	: "Vlastnosti vyskakovacieho okna",
+DlgLnkPopResize		: "MeniteÄ¾nÃ¡ veÄ¾kosÅ¥",
+DlgLnkPopLocation	: "Panel umiestnenia",
+DlgLnkPopMenu		: "Panel ponuky",
+DlgLnkPopScroll		: "PosuvnÃ­ky",
+DlgLnkPopStatus		: "StavovÃ½ riadok",
+DlgLnkPopToolbar	: "Panel nÃ¡strojov",
+DlgLnkPopFullScrn	: "CelÃ¡ obrazovka (IE)",
+DlgLnkPopDependent	: "ZÃ¡vislosÅ¥ (Netscape)",
+DlgLnkPopWidth		: "Å Ã­rka",
+DlgLnkPopHeight		: "VÃ½Å¡ka",
+DlgLnkPopLeft		: "Ä½avÃ½ okraj",
+DlgLnkPopTop		: "HornÃ½ okraj",
+
+DlnLnkMsgNoUrl		: "Zadajte prosÃ­m URL odkazu",
+DlnLnkMsgNoEMail	: "Zadajte prosÃ­m e-mailovÃº adresu",
+DlnLnkMsgNoAnchor	: "Vyberte prosÃ­m kotvu",
+DlnLnkMsgInvPopName	: "NÃ¡zov vyskakovacieho okna sa musÃ¡ zaÄÃ­naÅ¥ pÃ­smenom a nemÃ´Å¾e obsahovaÅ¥ medzery",
+
+// Color Dialog
+DlgColorTitle		: "VÃ½ber farby",
+DlgColorBtnClear	: "VymazaÅ¥",
+DlgColorHighlight	: "ZvÃ½raznenÃ¡",
+DlgColorSelected	: "VybranÃ¡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vkladanie smajlÃ­kov",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "VÃ½ber Å¡peciÃ¡lneho znaku",
+
+// Table Dialog
+DlgTableTitle		: "Vlastnosti tabuÄ¾ky",
+DlgTableRows		: "Riadky",
+DlgTableColumns		: "StÄºpce",
+DlgTableBorder		: "OhraniÄenie",
+DlgTableAlign		: "Zarovnanie",
+DlgTableAlignNotSet	: "<nenastavenÃ©>",
+DlgTableAlignLeft	: "VÄ¾avo",
+DlgTableAlignCenter	: "Na stred",
+DlgTableAlignRight	: "Vpravo",
+DlgTableWidth		: "Å Ã­rka",
+DlgTableWidthPx		: "pixelov",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "VÃ½Å¡ka",
+DlgTableCellSpace	: "VzdialenosÅ¥ buniek",
+DlgTableCellPad		: "Odsadenie obsahu",
+DlgTableCaption		: "Popis",
+DlgTableSummary		: "PrehÄ¾ad",
+
+// Table Cell Dialog
+DlgCellTitle		: "Vlastnosti bunky",
+DlgCellWidth		: "Å Ã­rka",
+DlgCellWidthPx		: "bodov",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "VÃ½Å¡ka",
+DlgCellWordWrap		: "Zalamovannie",
+DlgCellWordWrapNotSet	: "<nenastavenÃ©>",
+DlgCellWordWrapYes	: "Ãno",
+DlgCellWordWrapNo	: "Nie",
+DlgCellHorAlign		: "VodorovnÃ© zarovnanie",
+DlgCellHorAlignNotSet	: "<nenastavenÃ©>",
+DlgCellHorAlignLeft	: "VÄ¾avo",
+DlgCellHorAlignCenter	: "Na stred",
+DlgCellHorAlignRight: "Vpravo",
+DlgCellVerAlign		: "ZvislÃ© zarovnanie",
+DlgCellVerAlignNotSet	: "<nenastavenÃ©>",
+DlgCellVerAlignTop	: "Nahor",
+DlgCellVerAlignMiddle	: "Doprostred",
+DlgCellVerAlignBottom	: "Dole",
+DlgCellVerAlignBaseline	: "Na zÃ¡kladÅˆu",
+DlgCellRowSpan		: "ZlÃºÄenÃ© riadky",
+DlgCellCollSpan		: "ZlÃºÄenÃ© stÄºpce",
+DlgCellBackColor	: "Farba pozadia",
+DlgCellBorderColor	: "Farba ohraniÄenia",
+DlgCellBtnSelect	: "VÃ½ber...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "HÄ¾adaÅ¥",
+DlgFindFindBtn		: "HÄ¾adaÅ¥",
+DlgFindNotFoundMsg	: "HÄ¾adanÃ½ text nebol nÃ¡jdenÃ½.",
+
+// Replace Dialog
+DlgReplaceTitle			: "NahradiÅ¥",
+DlgReplaceFindLbl		: "ÄŒo hÄ¾adaÅ¥:",
+DlgReplaceReplaceLbl	: "ÄŒÃ­m nahradiÅ¥:",
+DlgReplaceCaseChk		: "RozliÅ¡ovaÅ¥ malÃ©/veÄ¾kÃ© pÃ­smenÃ¡",
+DlgReplaceReplaceBtn	: "NahradiÅ¥",
+DlgReplaceReplAllBtn	: "NahradiÅ¥ vÅ¡etko",
+DlgReplaceWordChk		: "Len celÃ© slovÃ¡",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "VloÅ¾iÅ¥ ako ÄistÃ½ text",
+PasteFromWord	: "VloÅ¾iÅ¥ text z Wordu",
+
+DlgPasteMsg2	: "ProsÃ­m vloÅ¾te nasledovnÃ½ rÃ¡mÄek pouÅ¾itÃ­m klÃ¡vesnice (<STRONG>Ctrl+V</STRONG>) a stlaÄte <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "IgnorovaÅ¥ nastavenia typu pÃ­sma",
+DlgPasteRemoveStyles	: "OdstrÃ¡niÅ¥ formÃ¡tovanie",
+
+// Color Picker
+ColorAutomatic	: "Automaticky",
+ColorMoreColors	: "Viac farieb...",
+
+// Document Properties
+DocProps		: "Vlastnosti dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Vlastnosti kotvy",
+DlgAnchorName		: "Meno kotvy",
+DlgAnchorErrorName	: "Zadajte prosÃ­m meno kotvy",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nie je v slovnÃ­ku",
+DlgSpellChangeTo		: "ZmeniÅ¥ na",
+DlgSpellBtnIgnore		: "IgnorovaÅ¥",
+DlgSpellBtnIgnoreAll	: "IgnorovaÅ¥ vÅ¡etko",
+DlgSpellBtnReplace		: "PrepÃ­sat",
+DlgSpellBtnReplaceAll	: "PrepÃ­sat vÅ¡etko",
+DlgSpellBtnUndo			: "SpÃ¤Å¥",
+DlgSpellNoSuggestions	: "- Å½iadny nÃ¡vrh -",
+DlgSpellProgress		: "Prebieha kontrola pravopisu...",
+DlgSpellNoMispell		: "Kontrola pravopisu dokonÄenÃ¡: bez chÃ½b",
+DlgSpellNoChanges		: "Kontrola pravopisu dokonÄenÃ¡: Å¾iadne slovÃ¡ nezmenenÃ©",
+DlgSpellOneChange		: "Kontrola pravopisu dokonÄenÃ¡: zmenenÃ© jedno slovo",
+DlgSpellManyChanges		: "Kontrola pravopisu dokonÄenÃ¡: zmenenÃ½ch %1 slov",
+
+IeSpellDownload			: "Kontrola pravopisu nie je naiÅ¡talovanÃ¡. Chcete ju hneÄ stiahnuÅ¥?",
+
+// Button Dialog
+DlgButtonText		: "Text",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "TlaÄidlo",
+DlgButtonTypeSbm	: "OdoslaÅ¥",
+DlgButtonTypeRst	: "VymazaÅ¥",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "NÃ¡zov",
+DlgCheckboxValue	: "Hodnota",
+DlgCheckboxSelected	: "VybranÃ©",
+
+// Form Dialog
+DlgFormName		: "NÃ¡zov",
+DlgFormAction	: "Akcie",
+DlgFormMethod	: "MetÃ³da",
+
+// Select Field Dialog
+DlgSelectName		: "NÃ¡zov",
+DlgSelectValue		: "Hodnota",
+DlgSelectSize		: "VeÄ¾kosÅ¥",
+DlgSelectLines		: "riadkov",
+DlgSelectChkMulti	: "PovoliÅ¥ viacnÃ¡sobnÃ½ vÃ½ber",
+DlgSelectOpAvail	: "DostupnÃ© moÅ¾nosti",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Hodnota",
+DlgSelectBtnAdd		: "PridaÅ¥",
+DlgSelectBtnModify	: "ZmeniÅ¥",
+DlgSelectBtnUp		: "Hore",
+DlgSelectBtnDown	: "Dole",
+DlgSelectBtnSetValue : "NastaviÅ¥ ako vybranÃº hodnotu",
+DlgSelectBtnDelete	: "ZmazaÅ¥",
+
+// Textarea Dialog
+DlgTextareaName	: "NÃ¡zov",
+DlgTextareaCols	: "StÄºpce",
+DlgTextareaRows	: "Riadky",
+
+// Text Field Dialog
+DlgTextName			: "NÃ¡zov",
+DlgTextValue		: "Hodnota",
+DlgTextCharWidth	: "Å Ã­rka pola (znakov)",
+DlgTextMaxChars		: "MaximÃ¡lny poÄet znakov",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Heslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "NÃ¡zov",
+DlgHiddenValue	: "Hodnota",
+
+// Bulleted List Dialog
+BulletedListProp	: "Vlastnosti odrÃ¡Å¾ok",
+NumberedListProp	: "Vlastnosti ÄÃ­slovania",
+DlgLstStart			: "Å tart",
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "KrÃºÅ¾ok",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Å tvorec",
+DlgLstTypeNumbers	: "ÄŒÃ­slovanie (1, 2, 3)",
+DlgLstTypeLCase		: "MalÃ© pÃ­smenÃ¡ (a, b, c)",
+DlgLstTypeUCase		: "VeÄ¾kÃ© pÃ­smenÃ¡ (A, B, C)",
+DlgLstTypeSRoman	: "MalÃ© rÃ­mske ÄÃ­slice (i, ii, iii)",
+DlgLstTypeLRoman	: "VeÄ¾kÃ© rÃ­mske ÄÃ­slice (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "VÅ¡eobecnÃ©",
+DlgDocBackTab		: "Pozadie",
+DlgDocColorsTab		: "Farby a okraje",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titulok",
+DlgDocLangDir		: "OrientÃ¡cie jazyka",
+DlgDocLangDirLTR	: "ZÄ¾ava doprava (LTR)",
+DlgDocLangDirRTL	: "Sprava doÄ¾ava (RTL)",
+DlgDocLangCode		: "KÃ³d jazyka",
+DlgDocCharSet		: "KÃ³dovÃ¡ strÃ¡nka",
+DlgDocCharSetCE		: "StredoeurÃ³pske",
+DlgDocCharSetCT		: "ÄŒÃ­nÅ¡tina tradiÄnÃ¡ (Big5)",
+DlgDocCharSetCR		: "Cyrillika",
+DlgDocCharSetGR		: "GrÃ©Ätina",
+DlgDocCharSetJP		: "JaponÄina",
+DlgDocCharSetKR		: "KorejÄina",
+DlgDocCharSetTR		: "TureÄtina",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "ZÃ¡padnÃ¡ eurÃ³pa",
+DlgDocCharSetOther	: "InÃ¡ kÃ³dovÃ¡ strÃ¡nka",
+
+DlgDocDocType		: "Typ zÃ¡hlavia dokumentu",
+DlgDocDocTypeOther	: "InÃ½ typ zÃ¡hlavia dokumentu",
+DlgDocIncXHTML		: "Obsahuje deklarÃ¡cie XHTML",
+DlgDocBgColor		: "Farba pozadia",
+DlgDocBgImage		: "URL adresa obrÃ¡zku na pozadÃ­",
+DlgDocBgNoScroll	: "FixnÃ© pozadie",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Odkaz",
+DlgDocCVisited		: "NavÅ¡tÃ­venÃ½ odkaz",
+DlgDocCActive		: "AktÃ­vny odkaz",
+DlgDocMargins		: "Okraje strÃ¡nky",
+DlgDocMaTop			: "HornÃ½",
+DlgDocMaLeft		: "Ä½avÃ½",
+DlgDocMaRight		: "PravÃ½",
+DlgDocMaBottom		: "DolnÃ½",
+DlgDocMeIndex		: "KÄ¾ÃºÄovÃ© slovÃ¡ pre indexovanie (oddelenÃ© Äiarkou)",
+DlgDocMeDescr		: "Popis strÃ¡nky",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "AutorskÃ© prÃ¡va",
+DlgDocPreview		: "NÃ¡hÄ¾ad",
+
+// Templates Dialog
+Templates			: "Å ablÃ³ny",
+DlgTemplatesTitle	: "Å ablÃ³ny obsahu",
+DlgTemplatesSelMsg	: "ProsÃ­m vyberte Å¡ablÃ³ny na otvorenie v editore<br>(sÃºÅ¡asnÃ½ obsah bude stratenÃ½):",
+DlgTemplatesLoading	: "NahrÃ¡vam zoznam Å¡ablÃ³n. ÄŒakajte prosÃ­m...",
+DlgTemplatesNoTpl	: "(Å¾iadne Å¡ablÃ³ny nenÃ¡jdenÃ©)",
+DlgTemplatesReplace	: "NahradiÅ¥ aktuÃ¡lny obsah",
+
+// About Dialog
+DlgAboutAboutTab	: "O aplikÃ¡ci",
+DlgAboutBrowserInfoTab	: "InformÃ¡cie o prehliadaÄi",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "verzia",
+DlgAboutInfo		: "Viac informÃ¡ciÃ­ zÃ­skate na"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/vi.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/vi.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/vi.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Vietnamese language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Thu gá»n Thanh cÃ´ng cá»¥",
+ToolbarExpand		: "Má»Ÿ rá»™ng Thanh cÃ´ng cá»¥",
+
+// Toolbar Items and Context Menu
+Save				: "LÆ°u",
+NewPage				: "Trang má»›i",
+Preview				: "Xem trÆ°á»›c",
+Cut					: "Cáº¯t",
+Copy				: "Sao chÃ©p",
+Paste				: "DÃ¡n",
+PasteText			: "DÃ¡n theo dáº¡ng vÄƒn báº£n thuáº§n",
+PasteWord			: "DÃ¡n vá»›i Ä‘á»‹nh dáº¡ng Word",
+Print				: "In",
+SelectAll			: "Chá»n Táº¥t cáº£",
+RemoveFormat		: "XoÃ¡ Äá»‹nh dáº¡ng",
+InsertLinkLbl		: "LiÃªn káº¿t",
+InsertLink			: "ChÃ¨n/Sá»­a LiÃªn káº¿t",
+RemoveLink			: "XoÃ¡ LiÃªn káº¿t",
+Anchor				: "ChÃ¨n/Sá»­a Neo",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "HÃ¬nh áº£nh",
+InsertImage			: "ChÃ¨n/Sá»­a HÃ¬nh áº£nh",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "ChÃ¨n/Sá»­a Flash",
+InsertTableLbl		: "Báº£ng",
+InsertTable			: "ChÃ¨n/Sá»­a Báº£ng",
+InsertLineLbl		: "ÄÆ°á»ng phÃ¢n cÃ¡ch ngang",
+InsertLine			: "ChÃ¨n ÄÆ°á»ng phÃ¢n cÃ¡ch ngang",
+InsertSpecialCharLbl: "KÃ½ tá»± Ä‘áº·c biá»‡t",
+InsertSpecialChar	: "ChÃ¨n KÃ½ tá»± Ä‘áº·c biá»‡t",
+InsertSmileyLbl		: "HÃ¬nh biá»ƒu lá»™ cáº£m xÃºc (máº·t cÆ°á»i)",
+InsertSmiley		: "ChÃ¨n HÃ¬nh biá»ƒu lá»™ cáº£m xÃºc (máº·t cÆ°á»i)",
+About				: "Giá»›i thiá»‡u vá» FCKeditor",
+Bold				: "Äáº­m",
+Italic				: "NghiÃªng",
+Underline			: "Gáº¡ch chÃ¢n",
+StrikeThrough		: "Gáº¡ch xuyÃªn ngang",
+Subscript			: "Chá»‰ sá»‘ dÆ°á»›i",
+Superscript			: "Chá»‰ sá»‘ trÃªn",
+LeftJustify			: "Canh trÃ¡i",
+CenterJustify		: "Canh giá»¯a",
+RightJustify		: "Canh pháº£i",
+BlockJustify		: "Canh Ä‘á»u",
+DecreaseIndent		: "Dá»‹ch ra ngoÃ i",
+IncreaseIndent		: "Dá»‹ch vÃ o trong",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "KhÃ´i phá»¥c thao tÃ¡c",
+Redo				: "LÃ m láº¡i thao tÃ¡c",
+NumberedListLbl		: "Danh sÃ¡ch cÃ³ thá»© tá»±",
+NumberedList		: "ChÃ¨n/XoÃ¡ Danh sÃ¡ch cÃ³ thá»© tá»±",
+BulletedListLbl		: "Danh sÃ¡ch khÃ´ng thá»© tá»±",
+BulletedList		: "ChÃ¨n/XoÃ¡ Danh sÃ¡ch khÃ´ng thá»© tá»±",
+ShowTableBorders	: "Hiá»ƒn thá»‹ ÄÆ°á»ng viá»n báº£ng",
+ShowDetails			: "Hiá»ƒn thá»‹ Chi tiáº¿t",
+Style				: "Máº«u",
+FontFormat			: "Äá»‹nh dáº¡ng",
+Font				: "PhÃ´ng",
+FontSize			: "Cá»¡ chá»¯",
+TextColor			: "MÃ u chá»¯",
+BGColor				: "MÃ u ná»n",
+Source				: "MÃ£ HTML",
+Find				: "TÃ¬m kiáº¿m",
+Replace				: "Thay tháº¿",
+SpellCheck			: "Kiá»ƒm tra ChÃ­nh táº£",
+UniversalKeyboard	: "BÃ n phÃ­m Quá»‘c táº¿",
+PageBreakLbl		: "Ngáº¯t trang",
+PageBreak			: "ChÃ¨n Ngáº¯t trang",
+
+Form			: "Biá»ƒu máº«u",
+Checkbox		: "NÃºt kiá»ƒm",
+RadioButton		: "NÃºt chá»n",
+TextField		: "TrÆ°á»ng vÄƒn báº£n",
+Textarea		: "VÃ¹ng vÄƒn báº£n",
+HiddenField		: "TrÆ°á»ng áº©n",
+Button			: "NÃºt",
+SelectionField	: "Ã” chá»n",
+ImageButton		: "NÃºt hÃ¬nh áº£nh",
+
+FitWindow		: "Má»Ÿ rá»™ng tá»‘i Ä‘a kÃ­ch thÆ°á»›c trÃ¬nh biÃªn táº­p",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Sá»­a LiÃªn káº¿t",
+CellCM				: "Ã”",
+RowCM				: "HÃ ng",
+ColumnCM			: "Cá»™t",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "XoÃ¡ HÃ ng",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "XoÃ¡ Cá»™t",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "XoÃ¡ Ã”",
+MergeCells			: "Trá»™n Ã”",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "XÃ³a Báº£ng",
+CellProperties		: "Thuá»™c tÃ­nh Ã”",
+TableProperties		: "Thuá»™c tÃ­nh Báº£ng",
+ImageProperties		: "Thuá»™c tÃ­nh HÃ¬nh áº£nh",
+FlashProperties		: "Thuá»™c tÃ­nh Flash",
+
+AnchorProp			: "Thuá»™c tÃ­nh Neo",
+ButtonProp			: "Thuá»™c tÃ­nh NÃºt",
+CheckboxProp		: "Thuá»™c tÃ­nh NÃºt kiá»ƒm",
+HiddenFieldProp		: "Thuá»™c tÃ­nh TrÆ°á»ng áº©n",
+RadioButtonProp		: "Thuá»™c tÃ­nh NÃºt chá»n",
+ImageButtonProp		: "Thuá»™c tÃ­nh NÃºt hÃ¬nh áº£nh",
+TextFieldProp		: "Thuá»™c tÃ­nh TrÆ°á»ng vÄƒn báº£n",
+SelectionFieldProp	: "Thuá»™c tÃ­nh Ã” chá»n",
+TextareaProp		: "Thuá»™c tÃ­nh VÃ¹ng vÄƒn báº£n",
+FormProp			: "Thuá»™c tÃ­nh Biá»ƒu máº«u",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Äang xá»­ lÃ½ XHTML. Vui lÃ²ng Ä‘á»£i trong giÃ¢y lÃ¡t...",
+Done				: "ÄÃ£ hoÃ n thÃ nh",
+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?",
+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?",
+UnknownToolbarItem	: "KhÃ´ng rÃµ má»¥c trÃªn thanh cÃ´ng cá»¥ \"%1\"",
+UnknownCommand		: "KhÃ´ng rÃµ lá»‡nh \"%1\"",
+NotImplemented		: "Lá»‡nh khÃ´ng Ä‘Æ°á»£c thá»±c hiá»‡n",
+UnknownToolbarSet	: "Thanh cÃ´ng cá»¥ \"%1\" khÃ´ng tá»“n táº¡i",
+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.",
+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.",
+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.",
+
+// Dialogs
+DlgBtnOK			: "Äá»“ng Ã½",
+DlgBtnCancel		: "Bá» qua",
+DlgBtnClose			: "ÄÃ³ng",
+DlgBtnBrowseServer	: "Duyá»‡t trÃªn mÃ¡y chá»§",
+DlgAdvancedTag		: "Má»Ÿ rá»™ng",
+DlgOpOther			: "<KhÃ¡c>",
+DlgInfoTab			: "ThÃ´ng tin",
+DlgAlertUrl			: "HÃ£y nháº­p vÃ o má»™t URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<khÃ´ng thiáº¿t láº­p>",
+DlgGenId			: "Äá»‹nh danh",
+DlgGenLangDir		: "ÄÆ°á»ng dáº«n NgÃ´n ngá»¯",
+DlgGenLangDirLtr	: "TrÃ¡i sang Pháº£i (LTR)",
+DlgGenLangDirRtl	: "Pháº£i sang TrÃ¡i (RTL)",
+DlgGenLangCode		: "MÃ£ NgÃ´n ngá»¯",
+DlgGenAccessKey		: "PhÃ­m Há»— trá»£ truy cáº­p",
+DlgGenName			: "TÃªn",
+DlgGenTabIndex		: "Chá»‰ sá»‘ cá»§a Tab",
+DlgGenLongDescr		: "MÃ´ táº£ URL",
+DlgGenClass			: "Lá»›p Stylesheet",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Báº£ng mÃ£ cá»§a tÃ i nguyÃªn Ä‘Æ°á»£c liÃªn káº¿t Ä‘áº¿n",
+DlgGenStyle			: "Máº«u",
+
+// Image Dialog
+DlgImgTitle			: "Thuá»™c tÃ­nh HÃ¬nh áº£nh",
+DlgImgInfoTab		: "ThÃ´ng tin HÃ¬nh áº£nh",
+DlgImgBtnUpload		: "Táº£i lÃªn MÃ¡y chá»§",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Táº£i lÃªn",
+DlgImgAlt			: "ChÃº thÃ­ch HÃ¬nh áº£nh",
+DlgImgWidth			: "Rá»™ng",
+DlgImgHeight		: "Cao",
+DlgImgLockRatio		: "Giá»¯ tá»· lá»‡",
+DlgBtnResetSize		: "KÃ­ch thÆ°á»›c gá»‘c",
+DlgImgBorder		: "ÄÆ°á»ng viá»n",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Vá»‹ trÃ­",
+DlgImgAlignLeft		: "TrÃ¡i",
+DlgImgAlignAbsBottom: "DÆ°á»›i tuyá»‡t Ä‘á»‘i",
+DlgImgAlignAbsMiddle: "Giá»¯a tuyá»‡t Ä‘á»‘i",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "DÆ°á»›i",
+DlgImgAlignMiddle	: "Giá»¯a",
+DlgImgAlignRight	: "Pháº£i",
+DlgImgAlignTextTop	: "PhÃ­a trÃªn chá»¯",
+DlgImgAlignTop		: "TrÃªn",
+DlgImgPreview		: "Xem trÆ°á»›c",
+DlgImgAlertUrl		: "HÃ£y Ä‘Æ°a vÃ o URL cá»§a hÃ¬nh áº£nh",
+DlgImgLinkTab		: "LiÃªn káº¿t",
+
+// Flash Dialog
+DlgFlashTitle		: "Thuá»™c tÃ­nh Flash",
+DlgFlashChkPlay		: "Tá»± Ä‘á»™ng cháº¡y",
+DlgFlashChkLoop		: "Láº·p",
+DlgFlashChkMenu		: "Cho phÃ©p báº­t Menu cá»§a Flash",
+DlgFlashScale		: "Tá»· lá»‡",
+DlgFlashScaleAll	: "Hiá»ƒn thá»‹ táº¥t cáº£",
+DlgFlashScaleNoBorder	: "KhÃ´ng Ä‘Æ°á»ng viá»n",
+DlgFlashScaleFit	: "Vá»«a váº·n",
+
+// Link Dialog
+DlgLnkWindowTitle	: "LiÃªn káº¿t",
+DlgLnkInfoTab		: "ThÃ´ng tin LiÃªn káº¿t",
+DlgLnkTargetTab		: "ÄÃ­ch",
+
+DlgLnkType			: "Kiá»ƒu LiÃªn káº¿t",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Neo trong trang nÃ y",
+DlgLnkTypeEMail		: "ThÆ° Ä‘iá»‡n tá»­",
+DlgLnkProto			: "Giao thá»©c",
+DlgLnkProtoOther	: "<khÃ¡c>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Chá»n má»™t Neo",
+DlgLnkAnchorByName	: "Theo TÃªn Neo",
+DlgLnkAnchorById	: "Theo Äá»‹nh danh Element",
+DlgLnkNoAnchors		: "(KhÃ´ng cÃ³ Neo nÃ o trong tÃ i liá»‡u)",
+DlgLnkEMail			: "ThÆ° Ä‘iá»‡n tá»­",
+DlgLnkEMailSubject	: "TiÃªu Ä‘á» ThÃ´ng Ä‘iá»‡p",
+DlgLnkEMailBody		: "Ná»™i dung ThÃ´ng Ä‘iá»‡p",
+DlgLnkUpload		: "Táº£i lÃªn",
+DlgLnkBtnUpload		: "Táº£i lÃªn MÃ¡y chá»§",
+
+DlgLnkTarget		: "ÄÃ­ch",
+DlgLnkTargetFrame	: "<khung>",
+DlgLnkTargetPopup	: "<cá»­a sá»• popup>",
+DlgLnkTargetBlank	: "Cá»­a sá»• má»›i (_blank)",
+DlgLnkTargetParent	: "Cá»­a sá»• cha (_parent)",
+DlgLnkTargetSelf	: "CÃ¹ng cá»­a sá»• (_self)",
+DlgLnkTargetTop		: "Cá»­a sá»• trÃªn cÃ¹ng(_top)",
+DlgLnkTargetFrameName	: "TÃªn Khung Ä‘Ã­ch",
+DlgLnkPopWinName	: "TÃªn Cá»­a sá»• Popup",
+DlgLnkPopWinFeat	: "Äáº·c Ä‘iá»ƒm cá»§a Cá»­a sá»• Popup",
+DlgLnkPopResize		: "KÃ­ch thÆ°á»›c thay Ä‘á»•i",
+DlgLnkPopLocation	: "Thanh vá»‹ trÃ­",
+DlgLnkPopMenu		: "Thanh Menu",
+DlgLnkPopScroll		: "Thanh cuá»™n",
+DlgLnkPopStatus		: "Thanh tráº¡ng thÃ¡i",
+DlgLnkPopToolbar	: "Thanh cÃ´ng cá»¥",
+DlgLnkPopFullScrn	: "ToÃ n mÃ n hÃ¬nh (IE)",
+DlgLnkPopDependent	: "Phá»¥ thuá»™c (Netscape)",
+DlgLnkPopWidth		: "Rá»™ng",
+DlgLnkPopHeight		: "Cao",
+DlgLnkPopLeft		: "Vá»‹ trÃ­ TrÃ¡i",
+DlgLnkPopTop		: "Vá»‹ trÃ­ TrÃªn",
+
+DlnLnkMsgNoUrl		: "HÃ£y Ä‘Æ°a vÃ o LiÃªn káº¿t URL",
+DlnLnkMsgNoEMail	: "HÃ£y Ä‘Æ°a vÃ o Ä‘á»‹a chá»‰ thÆ° Ä‘iá»‡n tá»­",
+DlnLnkMsgNoAnchor	: "HÃ£y chá»n má»™t Neo",
+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",
+
+// Color Dialog
+DlgColorTitle		: "Chá»n mÃ u",
+DlgColorBtnClear	: "XoÃ¡",
+DlgColorHighlight	: "TÃ´ sÃ¡ng",
+DlgColorSelected	: "ÄÃ£ chá»n",
+
+// Smiley Dialog
+DlgSmileyTitle		: "ChÃ¨n HÃ¬nh biá»ƒu lá»™ cáº£m xÃºc (máº·t cÆ°á»i)",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "HÃ£y chá»n KÃ½ tá»± Ä‘áº·c biá»‡t",
+
+// Table Dialog
+DlgTableTitle		: "Thuá»™c tÃ­nh báº£ng",
+DlgTableRows		: "HÃ ng",
+DlgTableColumns		: "Cá»™t",
+DlgTableBorder		: "Cá»¡ ÄÆ°á»ng viá»n",
+DlgTableAlign		: "Canh lá»",
+DlgTableAlignNotSet	: "<ChÆ°a thiáº¿t láº­p>",
+DlgTableAlignLeft	: "TrÃ¡i",
+DlgTableAlignCenter	: "Giá»¯a",
+DlgTableAlignRight	: "Pháº£i",
+DlgTableWidth		: "Rá»™ng",
+DlgTableWidthPx		: "Ä‘iá»ƒm (px)",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Cao",
+DlgTableCellSpace	: "Khoáº£ng cÃ¡ch Ã”",
+DlgTableCellPad		: "Äá»‡m Ã”",
+DlgTableCaption		: "Äáº§u Ä‘á»",
+DlgTableSummary		: "TÃ³m lÆ°á»£c",
+
+// Table Cell Dialog
+DlgCellTitle		: "Thuá»™c tÃ­nh Ã”",
+DlgCellWidth		: "Rá»™ng",
+DlgCellWidthPx		: "Ä‘iá»ƒm (px)",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Cao",
+DlgCellWordWrap		: "Bá»c tá»«",
+DlgCellWordWrapNotSet	: "<ChÆ°a thiáº¿t láº­p>",
+DlgCellWordWrapYes	: "Äá»“ng Ã½",
+DlgCellWordWrapNo	: "KhÃ´ng",
+DlgCellHorAlign		: "Canh theo Chiá»u ngang",
+DlgCellHorAlignNotSet	: "<ChÆ°a thiáº¿t láº­p>",
+DlgCellHorAlignLeft	: "TrÃ¡i",
+DlgCellHorAlignCenter	: "Giá»¯a",
+DlgCellHorAlignRight: "Pháº£i",
+DlgCellVerAlign		: "Canh theo Chiá»u dá»c",
+DlgCellVerAlignNotSet	: "<ChÆ°a thiáº¿t láº­p>",
+DlgCellVerAlignTop	: "TrÃªn",
+DlgCellVerAlignMiddle	: "Giá»¯a",
+DlgCellVerAlignBottom	: "DÆ°á»›i",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Ná»‘i HÃ ng",
+DlgCellCollSpan		: "Ná»‘i Cá»™t",
+DlgCellBackColor	: "MÃ u ná»n",
+DlgCellBorderColor	: "MÃ u viá»n",
+DlgCellBtnSelect	: "Chá»n...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "TÃ¬m kiáº¿m",
+DlgFindFindBtn		: "TÃ¬m kiáº¿m",
+DlgFindNotFoundMsg	: "KhÃ´ng tÃ¬m tháº¥y chuá»—i cáº§n tÃ¬m.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Thay tháº¿",
+DlgReplaceFindLbl		: "TÃ¬m chuá»—i:",
+DlgReplaceReplaceLbl	: "Thay báº±ng:",
+DlgReplaceCaseChk		: "PhÃ¢n biá»‡t chá»¯ hoa/thÆ°á»ng",
+DlgReplaceReplaceBtn	: "Thay tháº¿",
+DlgReplaceReplAllBtn	: "Thay tháº¿ Táº¥t cáº£",
+DlgReplaceWordChk		: "ÄÃºng toÃ n bá»™ tá»«",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "DÃ¡n theo Ä‘á»‹nh dáº¡ng vÄƒn báº£n thuáº§n",
+PasteFromWord	: "DÃ¡n vá»›i Ä‘á»‹nh dáº¡ng Word",
+
+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>.",
+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
+DlgPasteIgnoreFont		: "Cháº¥p nháº­n cÃ¡c Ä‘á»‹nh dáº¡ng phÃ´ng",
+DlgPasteRemoveStyles	: "Gá»¡ bá» cÃ¡c Ä‘á»‹nh dáº¡ng Styles",
+
+// Color Picker
+ColorAutomatic	: "Tá»± Ä‘á»™ng",
+ColorMoreColors	: "MÃ u khÃ¡c...",
+
+// Document Properties
+DocProps		: "Thuá»™c tÃ­nh TÃ i liá»‡u",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Thuá»™c tÃ­nh Neo",
+DlgAnchorName		: "TÃªn cá»§a Neo",
+DlgAnchorErrorName	: "HÃ£y Ä‘Æ°a vÃ o tÃªn cá»§a Neo",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "KhÃ´ng cÃ³ trong tá»« Ä‘iá»ƒn",
+DlgSpellChangeTo		: "Chuyá»ƒn thÃ nh",
+DlgSpellBtnIgnore		: "Bá» qua",
+DlgSpellBtnIgnoreAll	: "Bá» qua Táº¥t cáº£",
+DlgSpellBtnReplace		: "Thay tháº¿",
+DlgSpellBtnReplaceAll	: "Thay tháº¿ Táº¥t cáº£",
+DlgSpellBtnUndo			: "Phá»¥c há»“i láº¡i",
+DlgSpellNoSuggestions	: "- KhÃ´ng Ä‘Æ°a ra gá»£i Ã½ vá» tá»« -",
+DlgSpellProgress		: "Äang tiáº¿n hÃ nh kiá»ƒm tra chÃ­nh táº£...",
+DlgSpellNoMispell		: "HoÃ n táº¥t kiá»ƒm tra chÃ­nh táº£: KhÃ´ng cÃ³ lá»—i chÃ­nh táº£",
+DlgSpellNoChanges		: "HoÃ n táº¥t kiá»ƒm tra chÃ­nh táº£: KhÃ´ng cÃ³ tá»« nÃ o Ä‘Æ°á»£c thay Ä‘á»•i",
+DlgSpellOneChange		: "HoÃ n táº¥t kiá»ƒm tra chÃ­nh táº£: Má»™t tá»« Ä‘Ã£ Ä‘Æ°á»£c thay Ä‘á»•i",
+DlgSpellManyChanges		: "HoÃ n táº¥t kiá»ƒm tra chÃ­nh táº£: %1 tá»« Ä‘Ã£ Ä‘Æ°á»£c thay Ä‘á»•i",
+
+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á»?",
+
+// Button Dialog
+DlgButtonText		: "Chuá»—i hiá»ƒn thá»‹ (GiÃ¡ trá»‹)",
+DlgButtonType		: "Kiá»ƒu",
+DlgButtonTypeBtn	: "NÃºt Báº¥m",
+DlgButtonTypeSbm	: "NÃºt Gá»­i",
+DlgButtonTypeRst	: "NÃºt Nháº­p láº¡i",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "TÃªn",
+DlgCheckboxValue	: "GiÃ¡ trá»‹",
+DlgCheckboxSelected	: "ÄÆ°á»£c chá»n",
+
+// Form Dialog
+DlgFormName		: "TÃªn",
+DlgFormAction	: "HÃ nh Ä‘á»™ng",
+DlgFormMethod	: "PhÆ°Æ¡ng thá»©c",
+
+// Select Field Dialog
+DlgSelectName		: "TÃªn",
+DlgSelectValue		: "GiÃ¡ trá»‹",
+DlgSelectSize		: "KÃ­ch cá»¡",
+DlgSelectLines		: "dÃ²ng",
+DlgSelectChkMulti	: "Cho phÃ©p chá»n nhiá»u",
+DlgSelectOpAvail	: "CÃ¡c tÃ¹y chá»n cÃ³ thá»ƒ sá»­ dá»¥ng",
+DlgSelectOpText		: "VÄƒn báº£n",
+DlgSelectOpValue	: "GiÃ¡ trá»‹",
+DlgSelectBtnAdd		: "ThÃªm",
+DlgSelectBtnModify	: "Thay Ä‘á»•i",
+DlgSelectBtnUp		: "LÃªn",
+DlgSelectBtnDown	: "Xuá»‘ng",
+DlgSelectBtnSetValue : "GiÃ¡ trá»‹ Ä‘Æ°á»£c chá»n",
+DlgSelectBtnDelete	: "XoÃ¡",
+
+// Textarea Dialog
+DlgTextareaName	: "TÃªn",
+DlgTextareaCols	: "Cá»™t",
+DlgTextareaRows	: "HÃ ng",
+
+// Text Field Dialog
+DlgTextName			: "TÃªn",
+DlgTextValue		: "GiÃ¡ trá»‹",
+DlgTextCharWidth	: "Rá»™ng",
+DlgTextMaxChars		: "Sá»‘ KÃ½ tá»± tá»‘i Ä‘a",
+DlgTextType			: "Kiá»ƒu",
+DlgTextTypeText		: "KÃ½ tá»±",
+DlgTextTypePass		: "Máº­t kháº©u",
+
+// Hidden Field Dialog
+DlgHiddenName	: "TÃªn",
+DlgHiddenValue	: "GiÃ¡ trá»‹",
+
+// Bulleted List Dialog
+BulletedListProp	: "Thuá»™c tÃ­nh Danh sÃ¡ch khÃ´ng thá»© tá»±",
+NumberedListProp	: "Thuá»™c tÃ­nh Danh sÃ¡ch cÃ³ thá»© tá»±",
+DlgLstStart			: "Báº¯t Ä‘áº§u",
+DlgLstType			: "Kiá»ƒu",
+DlgLstTypeCircle	: "HÃ¬nh trÃ²n",
+DlgLstTypeDisc		: "HÃ¬nh Ä‘Ä©a",
+DlgLstTypeSquare	: "HÃ¬nh vuÃ´ng",
+DlgLstTypeNumbers	: "Sá»‘ thá»© tá»± (1, 2, 3)",
+DlgLstTypeLCase		: "Chá»¯ cÃ¡i thÆ°á»ng (a, b, c)",
+DlgLstTypeUCase		: "Chá»¯ cÃ¡i hoa (A, B, C)",
+DlgLstTypeSRoman	: "Sá»‘ La MÃ£ thÆ°á»ng (i, ii, iii)",
+DlgLstTypeLRoman	: "Sá»‘ La MÃ£ hoa (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ToÃ n thá»ƒ",
+DlgDocBackTab		: "Ná»n",
+DlgDocColorsTab		: "MÃ u sáº¯c vÃ  ÄÆ°á»ng biÃªn",
+DlgDocMetaTab		: "SiÃªu dá»¯ liá»‡u",
+
+DlgDocPageTitle		: "TiÃªu Ä‘á» Trang",
+DlgDocLangDir		: "ÄÆ°á»ng dáº«n NgÃ´n ngá»¯",
+DlgDocLangDirLTR	: "TrÃ¡i sang Pháº£i (LTR)",
+DlgDocLangDirRTL	: "Pháº£i sang TrÃ¡i (RTL)",
+DlgDocLangCode		: "MÃ£ NgÃ´n ngá»¯",
+DlgDocCharSet		: "Báº£ng mÃ£ kÃ½ tá»±",
+DlgDocCharSetCE		: "Trung Ã‚u",
+DlgDocCharSetCT		: "Tiáº¿ng Trung Quá»‘c (Big5)",
+DlgDocCharSetCR		: "Tiáº¿ng Kirin",
+DlgDocCharSetGR		: "Tiáº¿ng Hy Láº¡p",
+DlgDocCharSetJP		: "Tiáº¿ng Nháº­t",
+DlgDocCharSetKR		: "Tiáº¿ng HÃ n",
+DlgDocCharSetTR		: "Tiáº¿ng Thá»• NhÄ© Ká»³",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "TÃ¢y Ã‚u",
+DlgDocCharSetOther	: "Báº£ng mÃ£ kÃ½ tá»± khÃ¡c",
+
+DlgDocDocType		: "Kiá»ƒu Äá» má»¥c TÃ i liá»‡u",
+DlgDocDocTypeOther	: "Kiá»ƒu Äá» má»¥c TÃ i liá»‡u khÃ¡c",
+DlgDocIncXHTML		: "Bao gá»“m cáº£ Ä‘á»‹nh nghÄ©a XHTML",
+DlgDocBgColor		: "MÃ u ná»n",
+DlgDocBgImage		: "URL cá»§a HÃ¬nh áº£nh ná»n",
+DlgDocBgNoScroll	: "KhÃ´ng cuá»™n ná»n",
+DlgDocCText			: "VÄƒn báº£n",
+DlgDocCLink			: "LiÃªn káº¿t",
+DlgDocCVisited		: "LiÃªn káº¿t ÄÃ£ ghÃ© thÄƒm",
+DlgDocCActive		: "LiÃªn káº¿t Hiá»‡n hÃ nh",
+DlgDocMargins		: "ÄÆ°á»ng biÃªn cá»§a Trang",
+DlgDocMaTop			: "TrÃªn",
+DlgDocMaLeft		: "TrÃ¡i",
+DlgDocMaRight		: "Pháº£i",
+DlgDocMaBottom		: "DÆ°á»›i",
+DlgDocMeIndex		: "CÃ¡c tá»« khÃ³a chá»‰ má»¥c tÃ i liá»‡u (phÃ¢n cÃ¡ch bá»Ÿi dáº¥u pháº©y)",
+DlgDocMeDescr		: "MÃ´ táº£ tÃ i liá»‡u",
+DlgDocMeAuthor		: "TÃ¡c giáº£",
+DlgDocMeCopy		: "Báº£n quyá»n",
+DlgDocPreview		: "Xem trÆ°á»›c",
+
+// Templates Dialog
+Templates			: "Máº«u dá»±ng sáºµn",
+DlgTemplatesTitle	: "Ná»™i dung Máº«u dá»±ng sáºµn",
+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):",
+DlgTemplatesLoading	: "Äang náº¡p Danh sÃ¡ch Máº«u dá»±ng sáºµn. Vui lÃ²ng Ä‘á»£i trong giÃ¢y lÃ¡t...",
+DlgTemplatesNoTpl	: "(KhÃ´ng cÃ³ Máº«u dá»±ng sáºµn nÃ o Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a)",
+DlgTemplatesReplace	: "Thay tháº¿ ná»™i dung hiá»‡n táº¡i",
+
+// About Dialog
+DlgAboutAboutTab	: "Giá»›i thiá»‡u",
+DlgAboutBrowserInfoTab	: "ThÃ´ng tin trÃ¬nh duyá»‡t",
+DlgAboutLicenseTab	: "Giáº¥y phÃ©p",
+DlgAboutVersion		: "phiÃªn báº£n",
+DlgAboutInfo		: "Äá»ƒ biáº¿t thÃªm thÃ´ng tin, hÃ£y truy cáº­p"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-uk.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (United Kingdom) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+AnchorDelete		: "Remove Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Blockquote			: "Blockquote",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+ShowBlocks		: "Show Blocks",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRowAfter		: "Insert Row After",
+InsertRowBefore		: "Insert Row Before",
+DeleteRows			: "Delete Rows",
+InsertColumnAfter	: "Insert Column After",
+InsertColumnBefore	: "Insert Column Before",
+DeleteColumns		: "Delete Columns",
+InsertCellAfter		: "Insert Cell After",
+InsertCellBefore	: "Insert Cell Before",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+MergeRight			: "Merge Right",
+MergeDown			: "Merge Down",
+HorizontalSplitCell	: "Split Cell Horizontally",
+VerticalSplitCell	: "Split Cell Vertically",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+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.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For further information go to"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ms.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ms.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ms.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Malay language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Simpan",
+NewPage				: "Helaian Baru",
+Preview				: "Prebiu",
+Cut					: "Potong",
+Copy				: "Salin",
+Paste				: "Tampal",
+PasteText			: "Tampal sebagai Text Biasa",
+PasteWord			: "Tampal dari Word",
+Print				: "Cetak",
+SelectAll			: "Pilih Semua",
+RemoveFormat		: "Buang Format",
+InsertLinkLbl		: "Sambungan",
+InsertLink			: "Masukkan/Sunting Sambungan",
+RemoveLink			: "Buang Sambungan",
+Anchor				: "Masukkan/Sunting Pautan",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Gambar",
+InsertImage			: "Masukkan/Sunting Gambar",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Jadual",
+InsertTable			: "Masukkan/Sunting Jadual",
+InsertLineLbl		: "Garisan",
+InsertLine			: "Masukkan Garisan Membujur",
+InsertSpecialCharLbl: "Huruf Istimewa",
+InsertSpecialChar	: "Masukkan Huruf Istimewa",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Masukkan Smiley",
+About				: "Tentang FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Jajaran Kiri",
+CenterJustify		: "Jajaran Tengah",
+RightJustify		: "Jajaran Kanan",
+BlockJustify		: "Jajaran Blok",
+DecreaseIndent		: "Kurangkan Inden",
+IncreaseIndent		: "Tambahkan Inden",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Batalkan",
+Redo				: "Ulangkan",
+NumberedListLbl		: "Senarai bernombor",
+NumberedList		: "Masukkan/Sunting Senarai bernombor",
+BulletedListLbl		: "Senarai tidak bernombor",
+BulletedList		: "Masukkan/Sunting Senarai tidak bernombor",
+ShowTableBorders	: "Tunjukkan Border Jadual",
+ShowDetails			: "Tunjukkan Butiran",
+Style				: "Stail",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Saiz",
+TextColor			: "Warna Text",
+BGColor				: "Warna Latarbelakang",
+Source				: "Sumber",
+Find				: "Cari",
+Replace				: "Ganti",
+SpellCheck			: "Semak Ejaan",
+UniversalKeyboard	: "Papan Kekunci Universal",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Borang",
+Checkbox		: "Checkbox",
+RadioButton		: "Butang Radio",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Field Tersembunyi",
+Button			: "Butang",
+SelectionField	: "Field Pilihan",
+ImageButton		: "Butang Bergambar",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Sunting Sambungan",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Buangkan Baris",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Buangkan Lajur",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Buangkan Sel-sel",
+MergeCells			: "Cantumkan Sel-sel",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Ciri-ciri Sel",
+TableProperties		: "Ciri-ciri Jadual",
+ImageProperties		: "Ciri-ciri Gambar",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Ciri-ciri Pautan",
+ButtonProp			: "Ciri-ciri Butang",
+CheckboxProp		: "Ciri-ciri Checkbox",
+HiddenFieldProp		: "Ciri-ciri Field Tersembunyi",
+RadioButtonProp		: "Ciri-ciri Butang Radio",
+ImageButtonProp		: "Ciri-ciri Butang Bergambar",
+TextFieldProp		: "Ciri-ciri Text Field",
+SelectionFieldProp	: "Ciri-ciri Selection Field",
+TextareaProp		: "Ciri-ciri Textarea",
+FormProp			: "Ciri-ciri Borang",
+
+FontFormats			: "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Memproses XHTML. Sila tunggu...",
+Done				: "Siap",
+PasteWordConfirm	: "Text yang anda hendak tampal adalah berasal dari Word. Adakah anda mahu membuang semua format Word sebelum tampal ke dalam text?",
+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?",
+UnknownToolbarItem	: "Toolbar item tidak diketahui\"%1\"",
+UnknownCommand		: "Arahan tidak diketahui \"%1\"",
+NotImplemented		: "Arahan tidak terdapat didalam sistem",
+UnknownToolbarSet	: "Set toolbar \"%1\" tidak wujud",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Batal",
+DlgBtnClose			: "Tutup",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Lain-lain>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<tidak di set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Arah Tulisan",
+DlgGenLangDirLtr	: "Kiri ke Kanan (LTR)",
+DlgGenLangDirRtl	: "Kanan ke Kiri (RTL)",
+DlgGenLangCode		: "Kod Bahasa",
+DlgGenAccessKey		: "Kunci Akses",
+DlgGenName			: "Nama",
+DlgGenTabIndex		: "Indeks Tab ",
+DlgGenLongDescr		: "Butiran Panjang URL",
+DlgGenClass			: "Kelas-kelas Stylesheet",
+DlgGenTitle			: "Tajuk Makluman",
+DlgGenContType		: "Jenis Kandungan Makluman",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stail",
+
+// Image Dialog
+DlgImgTitle			: "Ciri-ciri Imej",
+DlgImgInfoTab		: "Info Imej",
+DlgImgBtnUpload		: "Hantar ke Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Muat Naik",
+DlgImgAlt			: "Text Alternatif",
+DlgImgWidth			: "Lebar",
+DlgImgHeight		: "Tinggi",
+DlgImgLockRatio		: "Tetapkan Nisbah",
+DlgBtnResetSize		: "Saiz Set Semula",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "Ruang Melintang",
+DlgImgVSpace		: "Ruang Menegak",
+DlgImgAlign			: "Jajaran",
+DlgImgAlignLeft		: "Kiri",
+DlgImgAlignAbsBottom: "Bawah Mutlak",
+DlgImgAlignAbsMiddle: "Pertengahan Mutlak",
+DlgImgAlignBaseline	: "Garis Dasar",
+DlgImgAlignBottom	: "Bawah",
+DlgImgAlignMiddle	: "Pertengahan",
+DlgImgAlignRight	: "Kanan",
+DlgImgAlignTextTop	: "Atas Text",
+DlgImgAlignTop		: "Atas",
+DlgImgPreview		: "Prebiu",
+DlgImgAlertUrl		: "Sila taip URL untuk fail gambar",
+DlgImgLinkTab		: "Sambungan",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Sambungan",
+DlgLnkInfoTab		: "Butiran Sambungan",
+DlgLnkTargetTab		: "Sasaran",
+
+DlgLnkType			: "Jenis Sambungan",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Pautan dalam muka surat ini",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<lain-lain>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Sila pilih pautan",
+DlgLnkAnchorByName	: "dengan menggunakan nama pautan",
+DlgLnkAnchorById	: "dengan menggunakan ID elemen",
+DlgLnkNoAnchors		: "(Tiada pautan terdapat dalam dokumen ini)",
+DlgLnkEMail			: "Alamat E-Mail",
+DlgLnkEMailSubject	: "Subjek Mesej",
+DlgLnkEMailBody		: "Isi Kandungan Mesej",
+DlgLnkUpload		: "Muat Naik",
+DlgLnkBtnUpload		: "Hantar ke Server",
+
+DlgLnkTarget		: "Sasaran",
+DlgLnkTargetFrame	: "<bingkai>",
+DlgLnkTargetPopup	: "<tetingkap popup>",
+DlgLnkTargetBlank	: "Tetingkap Baru (_blank)",
+DlgLnkTargetParent	: "Tetingkap Parent (_parent)",
+DlgLnkTargetSelf	: "Tetingkap yang Sama (_self)",
+DlgLnkTargetTop		: "Tetingkap yang paling atas (_top)",
+DlgLnkTargetFrameName	: "Nama Bingkai Sasaran",
+DlgLnkPopWinName	: "Nama Tetingkap Popup",
+DlgLnkPopWinFeat	: "Ciri Tetingkap Popup",
+DlgLnkPopResize		: "Saiz bolehubah",
+DlgLnkPopLocation	: "Bar Lokasi",
+DlgLnkPopMenu		: "Bar Menu",
+DlgLnkPopScroll		: "Bar-bar skrol",
+DlgLnkPopStatus		: "Bar Status",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Skrin Penuh (IE)",
+DlgLnkPopDependent	: "Bergantungan (Netscape)",
+DlgLnkPopWidth		: "Lebar",
+DlgLnkPopHeight		: "Tinggi",
+DlgLnkPopLeft		: "Posisi Kiri",
+DlgLnkPopTop		: "Posisi Atas",
+
+DlnLnkMsgNoUrl		: "Sila taip sambungan URL",
+DlnLnkMsgNoEMail	: "Sila taip alamat e-mail",
+DlnLnkMsgNoAnchor	: "Sila pilih pautan berkenaaan",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Pilihan Warna",
+DlgColorBtnClear	: "Nyahwarna",
+DlgColorHighlight	: "Terang",
+DlgColorSelected	: "Dipilih",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Masukkan Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Sila pilih huruf istimewa",
+
+// Table Dialog
+DlgTableTitle		: "Ciri-ciri Jadual",
+DlgTableRows		: "Barisan",
+DlgTableColumns		: "Jaluran",
+DlgTableBorder		: "Saiz Border",
+DlgTableAlign		: "Penjajaran",
+DlgTableAlignNotSet	: "<Tidak diset>",
+DlgTableAlignLeft	: "Kiri",
+DlgTableAlignCenter	: "Tengah",
+DlgTableAlignRight	: "Kanan",
+DlgTableWidth		: "Lebar",
+DlgTableWidthPx		: "piksel-piksel",
+DlgTableWidthPc		: "peratus",
+DlgTableHeight		: "Tinggi",
+DlgTableCellSpace	: "Ruangan Antara Sel",
+DlgTableCellPad		: "Tambahan Ruang Sel",
+DlgTableCaption		: "Keterangan",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Ciri-ciri Sel",
+DlgCellWidth		: "Lebar",
+DlgCellWidthPx		: "piksel-piksel",
+DlgCellWidthPc		: "peratus",
+DlgCellHeight		: "Tinggi",
+DlgCellWordWrap		: "Mengulung Perkataan",
+DlgCellWordWrapNotSet	: "<Tidak diset>",
+DlgCellWordWrapYes	: "Ya",
+DlgCellWordWrapNo	: "Tidak",
+DlgCellHorAlign		: "Jajaran Membujur",
+DlgCellHorAlignNotSet	: "<Tidak diset>",
+DlgCellHorAlignLeft	: "Kiri",
+DlgCellHorAlignCenter	: "Tengah",
+DlgCellHorAlignRight: "Kanan",
+DlgCellVerAlign		: "Jajaran Menegak",
+DlgCellVerAlignNotSet	: "<Tidak diset>",
+DlgCellVerAlignTop	: "Atas",
+DlgCellVerAlignMiddle	: "Tengah",
+DlgCellVerAlignBottom	: "Bawah",
+DlgCellVerAlignBaseline	: "Garis Dasar",
+DlgCellRowSpan		: "Penggunaan Baris",
+DlgCellCollSpan		: "Penggunaan Lajur",
+DlgCellBackColor	: "Warna Latarbelakang",
+DlgCellBorderColor	: "Warna Border",
+DlgCellBtnSelect	: "Pilih...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Carian",
+DlgFindFindBtn		: "Cari",
+DlgFindNotFoundMsg	: "Text yang dicari tidak dijumpai.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Gantian",
+DlgReplaceFindLbl		: "Perkataan yang dicari:",
+DlgReplaceReplaceLbl	: "Diganti dengan:",
+DlgReplaceCaseChk		: "Padanan case huruf",
+DlgReplaceReplaceBtn	: "Ganti",
+DlgReplaceReplAllBtn	: "Ganti semua",
+DlgReplaceWordChk		: "Padana Keseluruhan perkataan",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",
+PasteErrorCopy	: "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",
+
+PasteAsText		: "Tampal sebagai text biasa",
+PasteFromWord	: "Tampal dari perisian \"Word\"",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+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
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Otomatik",
+ColorMoreColors	: "Warna lain-lain...",
+
+// Document Properties
+DocProps		: "Ciri-ciri dokumen",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ciri-ciri Pautan",
+DlgAnchorName		: "Nama Pautan",
+DlgAnchorErrorName	: "Sila taip nama pautan",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Tidak terdapat didalam kamus",
+DlgSpellChangeTo		: "Tukarkan kepada",
+DlgSpellBtnIgnore		: "Biar",
+DlgSpellBtnIgnoreAll	: "Biarkan semua",
+DlgSpellBtnReplace		: "Ganti",
+DlgSpellBtnReplaceAll	: "Gantikan Semua",
+DlgSpellBtnUndo			: "Batalkan",
+DlgSpellNoSuggestions	: "- Tiada cadangan -",
+DlgSpellProgress		: "Pemeriksaan ejaan sedang diproses...",
+DlgSpellNoMispell		: "Pemeriksaan ejaan siap: Tiada salah ejaan",
+DlgSpellNoChanges		: "Pemeriksaan ejaan siap: Tiada perkataan diubah",
+DlgSpellOneChange		: "Pemeriksaan ejaan siap: Satu perkataan telah diubah",
+DlgSpellManyChanges		: "Pemeriksaan ejaan siap: %1 perkataan diubah",
+
+IeSpellDownload			: "Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?",
+
+// Button Dialog
+DlgButtonText		: "Teks (Nilai)",
+DlgButtonType		: "Jenis",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nama",
+DlgCheckboxValue	: "Nilai",
+DlgCheckboxSelected	: "Dipilih",
+
+// Form Dialog
+DlgFormName		: "Nama",
+DlgFormAction	: "Tindakan borang",
+DlgFormMethod	: "Cara borang dihantar",
+
+// Select Field Dialog
+DlgSelectName		: "Nama",
+DlgSelectValue		: "Nilai",
+DlgSelectSize		: "Saiz",
+DlgSelectLines		: "garisan",
+DlgSelectChkMulti	: "Benarkan pilihan pelbagai",
+DlgSelectOpAvail	: "Pilihan sediada",
+DlgSelectOpText		: "Teks",
+DlgSelectOpValue	: "Nilai",
+DlgSelectBtnAdd		: "Tambah Pilihan",
+DlgSelectBtnModify	: "Ubah Pilihan",
+DlgSelectBtnUp		: "Naik ke atas",
+DlgSelectBtnDown	: "Turun ke bawah",
+DlgSelectBtnSetValue : "Set sebagai nilai terpilih",
+DlgSelectBtnDelete	: "Padam",
+
+// Textarea Dialog
+DlgTextareaName	: "Nama",
+DlgTextareaCols	: "Lajur",
+DlgTextareaRows	: "Baris",
+
+// Text Field Dialog
+DlgTextName			: "Nama",
+DlgTextValue		: "Nilai",
+DlgTextCharWidth	: "Lebar isian",
+DlgTextMaxChars		: "Isian Maksimum",
+DlgTextType			: "Jenis",
+DlgTextTypeText		: "Teks",
+DlgTextTypePass		: "Kata Laluan",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nama",
+DlgHiddenValue	: "Nilai",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ciri-ciri senarai berpeluru",
+NumberedListProp	: "Ciri-ciri senarai bernombor",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Jenis",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Nombor-nombor (1, 2, 3)",
+DlgLstTypeLCase		: "Huruf-huruf kecil (a, b, c)",
+DlgLstTypeUCase		: "Huruf-huruf besar (A, B, C)",
+DlgLstTypeSRoman	: "Nombor Roman Kecil (i, ii, iii)",
+DlgLstTypeLRoman	: "Nombor Roman Besar (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Umum",
+DlgDocBackTab		: "Latarbelakang",
+DlgDocColorsTab		: "Warna dan margin",
+DlgDocMetaTab		: "Data Meta",
+
+DlgDocPageTitle		: "Tajuk Muka Surat",
+DlgDocLangDir		: "Arah Tulisan",
+DlgDocLangDirLTR	: "Kiri ke Kanan (LTR)",
+DlgDocLangDirRTL	: "Kanan ke Kiri (RTL)",
+DlgDocLangCode		: "Kod Bahasa",
+DlgDocCharSet		: "Enkod Set Huruf",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Enkod Set Huruf yang Lain",
+
+DlgDocDocType		: "Jenis Kepala Dokumen",
+DlgDocDocTypeOther	: "Jenis Kepala Dokumen yang Lain",
+DlgDocIncXHTML		: "Masukkan pemula kod XHTML",
+DlgDocBgColor		: "Warna Latarbelakang",
+DlgDocBgImage		: "URL Gambar Latarbelakang",
+DlgDocBgNoScroll	: "Imej Latarbelakang tanpa Skrol",
+DlgDocCText			: "Teks",
+DlgDocCLink			: "Sambungan",
+DlgDocCVisited		: "Sambungan telah Dilawati",
+DlgDocCActive		: "Sambungan Aktif",
+DlgDocMargins		: "Margin Muka Surat",
+DlgDocMaTop			: "Atas",
+DlgDocMaLeft		: "Kiri",
+DlgDocMaRight		: "Kanan",
+DlgDocMaBottom		: "Bawah",
+DlgDocMeIndex		: "Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",
+DlgDocMeDescr		: "Keterangan Dokumen",
+DlgDocMeAuthor		: "Penulis",
+DlgDocMeCopy		: "Hakcipta",
+DlgDocPreview		: "Prebiu",
+
+// Templates Dialog
+Templates			: "Templat",
+DlgTemplatesTitle	: "Templat Kandungan",
+DlgTemplatesSelMsg	: "Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):",
+DlgTemplatesLoading	: "Senarai Templat sedang diproses. Sila Tunggu...",
+DlgTemplatesNoTpl	: "(Tiada Templat Disimpan)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Tentang",
+DlgAboutBrowserInfoTab	: "Maklumat Perisian Browser",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versi",
+DlgAboutInfo		: "Untuk maklumat lanjut sila pergi ke"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/uk.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/uk.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/uk.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Ukrainian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ð—Ð³Ð¾Ñ€Ð½ÑƒÑ‚Ð¸ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²",
+ToolbarExpand		: "Ð Ð¾Ð·Ð³Ð¾Ñ€Ð½ÑƒÑ‚Ð¸ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²",
+
+// Toolbar Items and Context Menu
+Save				: "Ð—Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸",
+NewPage				: "ÐÐ¾Ð²Ð° ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÐ°",
+Preview				: "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¹ Ð¿ÐµÑ€ÐµÐ³Ð»ÑÐ´",
+Cut					: "Ð’Ð¸Ñ€Ñ–Ð·Ð°Ñ‚Ð¸",
+Copy				: "ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸",
+Paste				: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸",
+PasteText			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ñ‚ÐµÐºÑÑ‚",
+PasteWord			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ð· Word",
+Print				: "Ð”Ñ€ÑƒÐº",
+SelectAll			: "Ð’Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ Ð²ÑÐµ",
+RemoveFormat		: "ÐŸÑ€Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ",
+InsertLinkLbl		: "ÐŸÐ¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+InsertLink			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+RemoveLink			: "Ð—Ð½Ð¸Ñ‰Ð¸Ñ‚Ð¸ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+Anchor				: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ñ‚Ð¸ ÑÐºÑ–Ñ€",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ",
+InsertImage			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ñ‚Ð¸ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ñ‚Ð¸ Flash",
+InsertTableLbl		: "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ",
+InsertTable			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ñ‚Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ",
+InsertLineLbl		: "Ð›Ñ–Ð½Ñ–Ñ",
+InsertLine			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ñƒ Ð»Ñ–Ð½Ñ–ÑŽ",
+InsertSpecialCharLbl: "Ð¡Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSpecialChar	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ ÑÐ¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSmileyLbl		: "Ð¡Ð¼Ð°Ð¹Ð»Ð¸Ðº",
+InsertSmiley		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ ÑÐ¼Ð°Ð¹Ð»Ð¸Ðº",
+About				: "ÐŸÑ€Ð¾ FCKeditor",
+Bold				: "Ð–Ð¸Ñ€Ð½Ð¸Ð¹",
+Italic				: "ÐšÑƒÑ€ÑÐ¸Ð²",
+Underline			: "ÐŸÑ–Ð´ÐºÑ€ÐµÑÐ»ÐµÐ½Ð¸Ð¹",
+StrikeThrough		: "Ð—Ð°ÐºÑ€ÐµÑÐ»ÐµÐ½Ð¸Ð¹",
+Subscript			: "ÐŸÑ–Ð´Ñ€ÑÐ´ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ",
+Superscript			: "ÐÐ°Ð´Ñ€ÑÐ´ÐºÐ¾Ð²Ð¸Ð¹ Ð¸Ð½Ð´ÐµÐºÑ",
+LeftJustify			: "ÐŸÐ¾ Ð»Ñ–Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+CenterJustify		: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+RightJustify		: "ÐŸÐ¾ Ð¿Ñ€Ð°Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+BlockJustify		: "ÐŸÐ¾ ÑˆÐ¸Ñ€Ð¸Ð½Ñ–",
+DecreaseIndent		: "Ð—Ð¼ÐµÐ½ÑˆÐ¸Ñ‚Ð¸ Ð²Ñ–Ð´ÑÑ‚ÑƒÐ¿",
+IncreaseIndent		: "Ð—Ð±Ñ–Ð»ÑŒÑˆÐ¸Ñ‚Ð¸ Ð²Ñ–Ð´ÑÑ‚ÑƒÐ¿",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ÐŸÐ¾Ð²ÐµÑ€Ð½ÑƒÑ‚Ð¸",
+Redo				: "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸",
+NumberedListLbl		: "ÐÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð¸Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+NumberedList		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð¸Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+BulletedListLbl		: "ÐœÐ°Ñ€ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+BulletedList		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸/Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð¼Ð°Ñ€ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+ShowTableBorders	: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–",
+ShowDetails			: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ð´ÐµÑ‚Ð°Ð»Ñ–",
+Style				: "Ð¡Ñ‚Ð¸Ð»ÑŒ",
+FontFormat			: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ",
+Font				: "Ð¨Ñ€Ð¸Ñ„Ñ‚",
+FontSize			: "Ð Ð¾Ð·Ð¼Ñ–Ñ€",
+TextColor			: "ÐšÐ¾Ð»Ñ–Ñ€ Ñ‚ÐµÐºÑÑ‚Ñƒ",
+BGColor				: "ÐšÐ¾Ð»Ñ–Ñ€ Ñ„Ð¾Ð½Ñƒ",
+Source				: "Ð”Ð¶ÐµÑ€ÐµÐ»Ð¾",
+Find				: "ÐŸÐ¾ÑˆÑƒÐº",
+Replace				: "Ð—Ð°Ð¼Ñ–Ð½Ð°",
+SpellCheck			: "ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–ÑŽ",
+UniversalKeyboard	: "Ð£Ð½Ñ–Ð²ÐµÑ€ÑÐ°Ð»ÑŒÐ½Ð° ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ð°",
+PageBreakLbl		: "Ð Ð¾Ð·Ñ€Ð¸Ð²ÑˆÐ¸ ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸",
+PageBreak			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ñ€Ð¸Ð²ÑˆÐ¸ ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸",
+
+Form			: "Ð¤Ð¾Ñ€Ð¼Ð°",
+Checkbox		: "Ð¤Ð»Ð°Ð³Ð¾Ð²Ð° ÐºÐ½Ð¾Ð¿ÐºÐ°",
+RadioButton		: "ÐšÐ½Ð¾Ð¿ÐºÐ° Ð²Ð¸Ð±Ð¾Ñ€Ñƒ",
+TextField		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ðµ Ð¿Ð¾Ð»Ðµ",
+Textarea		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ð° Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ",
+HiddenField		: "ÐŸÑ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ðµ Ð¿Ð¾Ð»Ðµ",
+Button			: "ÐšÐ½Ð¾Ð¿ÐºÐ°",
+SelectionField	: "Ð¡Ð¿Ð¸ÑÐ¾Ðº",
+ImageButton		: "ÐšÐ½Ð¾Ð¿ÐºÐ° Ñ–Ð· Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½ÑÐ¼",
+
+FitWindow		: "Ð Ð¾Ð·Ð²ÐµÑ€Ð½ÑƒÑ‚Ð¸ Ð²Ñ–ÐºÐ½Ð¾ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+CellCM				: "ÐžÑÐµÑ€ÐµÐ´Ð¾Ðº",
+RowCM				: "Ð ÑÐ´Ð¾Ðº",
+ColumnCM			: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ°",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ ÑÑ‚Ñ€Ð¾ÐºÐ¸",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ ÐºÐ¾Ð¼Ñ–Ñ€ÐºÐ¸",
+MergeCells			: "ÐžÐ±'Ñ”Ð´Ð½Ð°Ñ‚Ð¸ ÐºÐ¾Ð¼Ñ–Ñ€ÐºÐ¸",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ",
+CellProperties		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÐºÐ¾Ð¼Ñ–Ñ€ÐºÐ¸",
+TableProperties		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–",
+ImageProperties		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ",
+FlashProperties		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Flash",
+
+AnchorProp			: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÑÐºÐ¾Ñ€Ñ",
+ButtonProp			: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÐºÐ½Ð¾Ð¿ÐºÐ¸",
+CheckboxProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ„Ð»Ð°Ð³Ð¾Ð²Ð¾Ñ— ÐºÐ½Ð¾Ð¿ÐºÐ¸",
+HiddenFieldProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ",
+RadioButtonProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ",
+ImageButtonProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñ–Ð· Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½ÑÐ¼",
+TextFieldProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ",
+SelectionFieldProp	: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÑÐ¿Ð¸ÑÐºÑƒ",
+TextareaProp		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ñ— Ð¾Ð±Ð»Ð°ÑÑ‚Ñ–",
+FormProp			: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ„Ð¾Ñ€Ð¼Ð¸",
+
+FontFormats			: "ÐÐ¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¸Ð¹;Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ð¹;ÐÐ´Ñ€ÐµÑÐ°;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 1;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 2;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 3;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 4;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 5;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 6;ÐÐ¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¸Ð¹ (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "ÐžÐ±Ñ€Ð¾Ð±ÐºÐ° XHTML. Ð—Ð°Ñ‡ÐµÐºÐ°Ð¹Ñ‚Ðµ, Ð±ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°...",
+Done				: "Ð—Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾",
+PasteWordConfirm	: "Ð¢ÐµÐºÑÑ‚, Ñ‰Ð¾ Ð²Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸, ÑÑ…Ð¾Ð¶Ð¸Ð¹ Ð½Ð° ÐºÐ¾Ð¿Ñ–Ð¹Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð· Word. Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð¾Ñ‡Ð¸ÑÑ‚Ð¸Ñ‚Ð¸ Ð¹Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ´ Ð²ÑÑ‚Ð°Ð²ÐºÐ¾ÑŽ?",
+NotCompatiblePaste	: "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ð° Ð´Ð»Ñ Internet Explorer Ð²ÐµÑ€ÑÑ–Ñ— 5.5 Ð°Ð±Ð¾ Ð²Ð¸Ñ‰Ðµ. Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ð±ÐµÐ· Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ?",
+UnknownToolbarItem	: "ÐÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ Ð¿Ð°Ð½ÐµÐ»Ñ– Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² \"%1\"",
+UnknownCommand		: "ÐÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ–Ð¼'Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ \"%1\"",
+NotImplemented		: "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð° Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð°",
+UnknownToolbarSet	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² \"%1\" Ð½Ðµ Ñ–ÑÐ½ÑƒÑ”",
+NoActiveX			: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð¾Ð±Ð¼ÐµÐ¶ÑƒÐ²Ð°Ñ‚Ð¸ Ð´ÐµÑÐºÑ– Ð²Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°. Ð’Ð¸ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ– Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ Ð¾Ð¿Ñ†Ñ–ÑŽ \"Ð—Ð°Ð¿ÑƒÑÐºÐ°Ñ‚Ð¸ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð¸ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ACTIVEX Ñ– Ð¿Ð»ÑƒÐ³Ñ–Ð½Ð¸\". Ð’Ð¸ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð±Ð°Ñ‡Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ– Ð¿Ð¾Ð¼Ñ–Ñ‡Ð°Ñ‚Ð¸ Ð²Ñ–Ð´ÑÑƒÑ‚Ð½Ñ–ÑÑ‚ÑŒ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑ‚ÐµÐ¹.",
+BrowseServerBlocked : "Ð ÐµÑÑƒÑ€ÑÐ¸ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð±ÑƒÑ‚Ð¸ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ–. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ñ‰Ð¾ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ð¸Ñ… Ð²Ñ–ÐºÐ¾Ð½ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–.",
+DialogBlocked		: "ÐÐµ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð²Ñ–ÐºÐ½Ð¾ Ð´Ñ–Ð°Ð»Ð¾Ð³Ñƒ. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ñ‰Ð¾ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ð¸Ñ… Ð²Ñ–ÐºÐ¾Ð½ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–.",
+
+// Dialogs
+DlgBtnOK			: "ÐžÐš",
+DlgBtnCancel		: "Ð¡ÐºÐ°ÑÑƒÐ²Ð°Ñ‚Ð¸",
+DlgBtnClose			: "Ð—Ð°Ñ‡Ð¸Ð½Ð¸Ñ‚Ð¸",
+DlgBtnBrowseServer	: "ÐŸÐµÑ€ÐµÐ´Ð¸Ð²Ð¸Ñ‚Ð¸ÑÑ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€Ñ–",
+DlgAdvancedTag		: "Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ð¹",
+DlgOpOther			: "<Ð†Ð½ÑˆÐµ>",
+DlgInfoTab			: "Ð†Ð½Ñ„Ð¾",
+DlgAlertUrl			: "Ð’ÑÑ‚Ð°Ð²Ñ‚Ðµ, Ð±ÑƒÐ´ÑŒ-Ð»Ð°ÑÐºÐ°, URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾>",
+DlgGenId			: "Ð†Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€",
+DlgGenLangDir		: "ÐÐ°Ð¿Ñ€ÑÐ¼Ð¾Ðº Ð¼Ð¾Ð²Ð¸",
+DlgGenLangDirLtr	: "Ð—Ð»Ñ–Ð²Ð° Ð½Ð° Ð¿Ñ€Ð°Ð²Ð¾ (LTR)",
+DlgGenLangDirRtl	: "Ð—Ð¿Ñ€Ð°Ð²Ð° Ð½Ð° Ð»Ñ–Ð²Ð¾ (RTL)",
+DlgGenLangCode		: "ÐœÐ¾Ð²Ð°",
+DlgGenAccessKey		: "Ð“Ð°Ñ€ÑÑ‡Ð° ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°",
+DlgGenName			: "Ð˜Ð¼'Ñ",
+DlgGenTabIndex		: "ÐŸÐ¾ÑÐ»Ñ–Ð´Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ",
+DlgGenLongDescr		: "Ð”Ð¾Ð²Ð³Ð¸Ð¹ Ð¾Ð¿Ð¸Ñ URL",
+DlgGenClass			: "ÐšÐ»Ð°Ñ CSS",
+DlgGenTitle			: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+DlgGenContType		: "Ð¢Ð¸Ð¿ Ð²Ð¼Ñ–ÑÑ‚Ñƒ",
+DlgGenLinkCharset	: "ÐšÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ°",
+DlgGenStyle			: "Ð¡Ñ‚Ð¸Ð»ÑŒ CSS",
+
+// Image Dialog
+DlgImgTitle			: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ",
+DlgImgInfoTab		: "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ð¸",
+DlgImgBtnUpload		: "ÐÐ°Ð´Ñ–ÑÐ»Ð°Ñ‚Ð¸ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ð—Ð°ÐºÐ°Ñ‡Ð°Ñ‚Ð¸",
+DlgImgAlt			: "ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ð¹ Ñ‚ÐµÐºÑÑ‚",
+DlgImgWidth			: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgImgHeight		: "Ð’Ð¸ÑÐ¾Ñ‚Ð°",
+DlgImgLockRatio		: "Ð—Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ Ð¿Ñ€Ð¾Ð¿Ð¾Ñ€Ñ†Ñ–Ñ—",
+DlgBtnResetSize		: "Ð¡ÐºÐ¸Ð½ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€",
+DlgImgBorder		: "Ð‘Ð¾Ñ€Ð´ÑŽÑ€",
+DlgImgHSpace		: "Ð“Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ð²Ñ–Ð´ÑÑ‚ÑƒÐ¿",
+DlgImgVSpace		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ð²Ñ–Ð´ÑÑ‚ÑƒÐ¿",
+DlgImgAlign			: "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ",
+DlgImgAlignLeft		: "ÐŸÐ¾ Ð»Ñ–Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+DlgImgAlignAbsBottom: "ÐÐ±Ñ Ð¿Ð¾ Ð½Ð¸Ð·Ñƒ",
+DlgImgAlignAbsMiddle: "ÐÐ±Ñ Ð¿Ð¾ ÑÐµÑ€ÐµÐ´Ð¸Ð½Ñ–",
+DlgImgAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ñ–Ð¹ Ð»Ñ–Ð½Ñ–Ñ—",
+DlgImgAlignBottom	: "ÐŸÐ¾ Ð½Ð¸Ð·Ñƒ",
+DlgImgAlignMiddle	: "ÐŸÐ¾ ÑÐµÑ€ÐµÐ´Ð¸Ð½Ñ–",
+DlgImgAlignRight	: "ÐŸÐ¾ Ð¿Ñ€Ð°Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+DlgImgAlignTextTop	: "Ð¢ÐµÐºÑÑ‚ Ð½Ð° Ð²ÐµÑ€Ñ…Ñƒ",
+DlgImgAlignTop		: "ÐŸÐ¾ Ð²ÐµÑ€Ñ…Ñƒ",
+DlgImgPreview		: "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¹ Ð¿ÐµÑ€ÐµÐ³Ð»ÑÐ´",
+DlgImgAlertUrl		: "Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð²Ð²ÐµÐ´Ñ–Ñ‚ÑŒ URL Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ",
+DlgImgLinkTab		: "ÐŸÐ¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+
+// Flash Dialog
+DlgFlashTitle		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Flash",
+DlgFlashChkPlay		: "ÐÐ²Ñ‚Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ",
+DlgFlashChkLoop		: "Ð—Ð°Ñ†Ð¸ÐºÐ»Ð¸Ñ‚Ð¸",
+DlgFlashChkMenu		: "Ð”Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚Ð¸ Ð¼ÐµÐ½ÑŽ Flash",
+DlgFlashScale		: "ÐœÐ°ÑÑˆÑ‚Ð°Ð±",
+DlgFlashScaleAll	: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ð²ÑÑ–",
+DlgFlashScaleNoBorder	: "Ð‘ÐµÐ· Ñ€Ð°Ð¼ÐºÐ¸",
+DlgFlashScaleFit	: "Ð”Ñ–Ð¹ÑÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ÐŸÐ¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgLnkInfoTab		: "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgLnkTargetTab		: "Ð¦Ñ–Ð»ÑŒ",
+
+DlgLnkType			: "Ð¢Ð¸Ð¿ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ð¯ÐºÑ–Ñ€ Ð½Ð° Ñ†ÑŽ ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÑƒ",
+DlgLnkTypeEMail		: "Ð­Ð». Ð¿Ð¾ÑˆÑ‚Ð°",
+DlgLnkProto			: "ÐŸÑ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»",
+DlgLnkProtoOther	: "<Ñ–Ð½ÑˆÐµ>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ÐžÐ±ÐµÑ€Ñ–Ñ‚ÑŒ ÑÐºÑ–Ñ€",
+DlgLnkAnchorByName	: "Ð—Ð° Ñ–Ð¼'ÑÐ¼ ÑÐºÐ¾Ñ€Ñ",
+DlgLnkAnchorById	: "Ð—Ð° Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°",
+DlgLnkNoAnchors		: "(ÐÐµÐ¼Ð°Ñ” ÑÐºÐ¾Ñ€Ñ–Ð² Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ð¸Ñ… Ð² Ñ†ÑŒÐ¾Ð¼Ñƒ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–)",
+DlgLnkEMail			: "ÐÐ´Ñ€ÐµÑÐ° ÐµÐ». Ð¿Ð¾ÑˆÑ‚Ð¸",
+DlgLnkEMailSubject	: "Ð¢ÐµÐ¼Ð° Ð»Ð¸ÑÑ‚Ð°",
+DlgLnkEMailBody		: "Ð¢Ñ–Ð»Ð¾ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ",
+DlgLnkUpload		: "Ð—Ð°ÐºÐ°Ñ‡Ð°Ñ‚Ð¸",
+DlgLnkBtnUpload		: "ÐŸÐµÑ€ÐµÑÐ»Ð°Ñ‚Ð¸ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+
+DlgLnkTarget		: "Ð¦Ñ–Ð»ÑŒ",
+DlgLnkTargetFrame	: "<Ñ„Ñ€ÐµÐ¹Ð¼>",
+DlgLnkTargetPopup	: "<ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ðµ Ð²Ñ–ÐºÐ½Ð¾>",
+DlgLnkTargetBlank	: "ÐÐ¾Ð²Ðµ Ð²Ñ–ÐºÐ½Ð¾ (_blank)",
+DlgLnkTargetParent	: "Ð‘Ð°Ñ‚ÑŒÐºÑ–Ð²ÑÑŒÐºÐµ Ð²Ñ–ÐºÐ½Ð¾ (_parent)",
+DlgLnkTargetSelf	: "Ð¢ÐµÐ¶ Ð²Ñ–ÐºÐ½Ð¾ (_self)",
+DlgLnkTargetTop		: "ÐÐ°Ð¹Ð²Ð¸Ñ‰Ðµ Ð²Ñ–ÐºÐ½Ð¾ (_top)",
+DlgLnkTargetFrameName	: "Ð†Ð¼'Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð³Ð¾ Ñ„Ñ€ÐµÐ¹Ð¼Ð°",
+DlgLnkPopWinName	: "Ð†Ð¼'Ñ ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ð¾Ð³Ð¾ Ð²Ñ–ÐºÐ½Ð°",
+DlgLnkPopWinFeat	: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ð¾Ð³Ð¾ Ð²Ñ–ÐºÐ½Ð°",
+DlgLnkPopResize		: "Ð—Ð¼Ñ–Ð½ÑŽÑ”Ñ‚ÑŒÑÑ Ð² Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð°Ñ…",
+DlgLnkPopLocation	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð»Ð¾ÐºÐ°Ñ†Ñ–Ñ—",
+DlgLnkPopMenu		: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð¼ÐµÐ½ÑŽ",
+DlgLnkPopScroll		: "ÐŸÐ¾Ð»Ð¾ÑÐ¸ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¸",
+DlgLnkPopStatus		: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ° ÑÑ‚Ð°Ñ‚ÑƒÑÑƒ",
+DlgLnkPopToolbar	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²",
+DlgLnkPopFullScrn	: "ÐŸÐ¾Ð²Ð½Ð¸Ð¹ ÐµÐºÑ€Ð°Ð½ (IE)",
+DlgLnkPopDependent	: "Ð—Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ (Netscape)",
+DlgLnkPopWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgLnkPopHeight		: "Ð’Ð¸ÑÐ¾Ñ‚Ð°",
+DlgLnkPopLeft		: "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð·Ð»Ñ–Ð²Ð°",
+DlgLnkPopTop		: "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð·Ð²ÐµÑ€Ñ…Ñƒ",
+
+DlnLnkMsgNoUrl		: "Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð·Ð°Ð½ÐµÑÑ–Ñ‚ÑŒ URL Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlnLnkMsgNoEMail	: "Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð·Ð°Ð½ÐµÑÑ–Ñ‚ÑŒ Ð°Ð´Ñ€ÐµÑ ÑÐ». Ð¿Ð¾Ñ‡Ñ‚Ñ‹",
+DlnLnkMsgNoAnchor	: "Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð¾Ð±ÐµÑ€Ñ–Ñ‚ÑŒ ÑÐºÑ–Ñ€",
+DlnLnkMsgInvPopName	: "ÐÐ°Ð·Ð²Ð° ÑÐ¿Ð»Ð¸Ð²Ð°ÑŽÑ‡Ð¾Ð³Ð¾ Ð²Ñ–ÐºÐ½Ð° Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ‚Ð¸ÑÑ Ð±ÑƒÐºÐ²Ð¸ Ñ– Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð¼Ñ–ÑÑ‚Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ð¿ÑƒÑÐºÑ–Ð²",
+
+// Color Dialog
+DlgColorTitle		: "ÐžÐ±ÐµÑ€Ñ–Ñ‚ÑŒ ÐºÐ¾Ð»Ñ–Ñ€",
+DlgColorBtnClear	: "ÐžÑ‡Ð¸ÑÑ‚Ð¸Ñ‚Ð¸",
+DlgColorHighlight	: "ÐŸÑ–Ð´ÑÐ²Ñ–Ñ‡ÐµÐ½Ð¸Ð¹",
+DlgColorSelected	: "ÐžÐ±Ñ€Ð°Ð½Ð¸Ð¹",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ ÑÐ¼Ð°Ð¹Ð»Ð¸Ðº",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "ÐžÐ±ÐµÑ€Ñ–Ñ‚ÑŒ ÑÐ¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+
+// Table Dialog
+DlgTableTitle		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–",
+DlgTableRows		: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ¸",
+DlgTableColumns		: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+DlgTableBorder		: "Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð°",
+DlgTableAlign		: "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ",
+DlgTableAlignNotSet	: "<ÐÐµ Ð²ÑÑ‚.>",
+DlgTableAlignLeft	: "Ð—Ð»Ñ–Ð²Ð°",
+DlgTableAlignCenter	: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+DlgTableAlignRight	: "Ð—Ð¿Ñ€Ð°Ð²Ð°",
+DlgTableWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTableWidthPx		: "Ð¿Ñ–ÐºÑÐµÐ»Ñ–Ð²",
+DlgTableWidthPc		: "Ð²Ñ–Ð´ÑÐ¾Ñ‚ÐºÑ–Ð²",
+DlgTableHeight		: "Ð’Ð¸ÑÐ¾Ñ‚Ð°",
+DlgTableCellSpace	: "ÐŸÑ€Ð¾Ð¼Ñ–Ð¶Ð¾Ðº (spacing)",
+DlgTableCellPad		: "Ð’Ñ–Ð´ÑÑ‚ÑƒÐ¿ (padding)",
+DlgTableCaption		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+DlgTableSummary		: "Ð ÐµÐ·ÑŽÐ¼Ðµ",
+
+// Table Cell Dialog
+DlgCellTitle		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÐºÐ¾Ð¼Ñ–Ñ€ÐºÐ¸",
+DlgCellWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgCellWidthPx		: "Ð¿Ñ–ÐºÑÐµÐ»Ñ–Ð²",
+DlgCellWidthPc		: "Ð²Ñ–Ð´ÑÐ¾Ñ‚ÐºÑ–Ð²",
+DlgCellHeight		: "Ð’Ð¸ÑÐ¾Ñ‚Ð°",
+DlgCellWordWrap		: "Ð—Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑÑ‚Ð°",
+DlgCellWordWrapNotSet	: "<ÐÐµ Ð²ÑÑ‚.>",
+DlgCellWordWrapYes	: "Ð¢Ð°Ðº",
+DlgCellWordWrapNo	: "ÐÑ–",
+DlgCellHorAlign		: "Ð“Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ",
+DlgCellHorAlignNotSet	: "<ÐÐµ Ð²ÑÑ‚.>",
+DlgCellHorAlignLeft	: "Ð—Ð»Ñ–Ð²Ð°",
+DlgCellHorAlignCenter	: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+DlgCellHorAlignRight: "Ð—Ð¿Ñ€Ð°Ð²Ð°",
+DlgCellVerAlign		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ",
+DlgCellVerAlignNotSet	: "<ÐÐµ Ð²ÑÑ‚.>",
+DlgCellVerAlignTop	: "Ð—Ð²ÐµÑ€Ñ…Ñƒ",
+DlgCellVerAlignMiddle	: "ÐŸÐ¾ÑÐµÑ€ÐµÐ´Ð¸Ð½Ñ–",
+DlgCellVerAlignBottom	: "Ð—Ð½Ð¸Ð·Ñƒ",
+DlgCellVerAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ñ–Ð¹ Ð»Ñ–Ð½Ñ–Ñ—",
+DlgCellRowSpan		: "Ð”Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑÑ‚Ñ€Ð¾Ðº (span)",
+DlgCellCollSpan		: "Ð”Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº (span)",
+DlgCellBackColor	: "ÐšÐ¾Ð»Ñ–Ñ€ Ñ„Ð¾Ð½Ð°",
+DlgCellBorderColor	: "ÐšÐ¾Ð»Ñ–Ñ€ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð°",
+DlgCellBtnSelect	: "ÐžÐ±ÐµÑ€Ñ–Ñ‚ÑŒ...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "ÐŸÐ¾ÑˆÑƒÐº",
+DlgFindFindBtn		: "ÐŸÐ¾ÑˆÑƒÐº",
+DlgFindNotFoundMsg	: "Ð’ÐºÐ°Ð·Ð°Ð½Ð¸Ð¹ Ñ‚ÐµÐºÑÑ‚ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¸Ð¹.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸",
+DlgReplaceFindLbl		: "Ð¨ÑƒÐºÐ°Ñ‚Ð¸:",
+DlgReplaceReplaceLbl	: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð½Ð°:",
+DlgReplaceCaseChk		: "Ð£Ñ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ñ‚ÑŒ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€",
+DlgReplaceReplaceBtn	: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸",
+DlgReplaceReplAllBtn	: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð²ÑÐµ",
+DlgReplaceWordChk		: "Ð—Ð±Ñ–Ð³ Ñ†Ñ–Ð»Ð¸Ñ… ÑÐ»Ñ–Ð²",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑŽÑ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ñƒ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— Ð²Ð¸Ñ€Ñ–Ð·ÑƒÐ²Ð°Ð½Ð½Ñ. Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÐ¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ñƒ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+X).",
+PasteErrorCopy	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑŽÑ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ñƒ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ. Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÐ¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ñƒ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+C).",
+
+PasteAsText		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ñ‚ÐµÐºÑÑ‚",
+PasteFromWord	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ð· Word",
+
+DlgPasteMsg2	: "Ð‘ÑƒÐ´ÑŒ-Ð»Ð°ÑÐºÐ°, Ð²ÑÑ‚Ð°Ð²Ñ‚Ðµ Ð· Ð±ÑƒÑ„ÐµÑ€Ð° Ð¾Ð±Ð¼Ñ–Ð½Ñƒ Ð² Ñ†ÑŽ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ, ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÑŽÑ‡Ð¸ÑÑŒ ÐºÐ¾Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ–Ñ”ÑŽ ÐºÐ»Ð°Ð²Ñ–Ñˆ (<STRONG>Ctrl+V</STRONG>) Ñ‚Ð° Ð½Ð°Ñ‚Ð¸ÑÐ½Ñ–Ñ‚ÑŒ <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Ð ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€ Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð¿Ñ€ÑÐ¼Ð¸Ð¹ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ð´Ð¾ Ð±ÑƒÑ„ÐµÑ€Ñƒ Ð¾Ð±Ð¼Ñ–Ð½Ñƒ Ñƒ Ð·Ð²'ÑÐ·ÐºÑƒ Ð· Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½ÑÐ¼Ð¸ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. Ð’Ð°Ð¼ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–ÑŽ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð² Ñ†Ðµ Ð²Ñ–ÐºÐ½Ð¾.",
+DlgPasteIgnoreFont		: "Ð†Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²",
+DlgPasteRemoveStyles	: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑÑ‚Ð¸Ð»Ñ–Ð²",
+
+// Color Picker
+ColorAutomatic	: "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¹",
+ColorMoreColors	: "ÐšÐ¾Ð»ÑŒÐ¾Ñ€Ð¸...",
+
+// Document Properties
+DocProps		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– ÑÐºÐ¾Ñ€Ñ",
+DlgAnchorName		: "Ð†Ð¼'Ñ ÑÐºÐ¾Ñ€Ñ",
+DlgAnchorErrorName	: "Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð·Ð°Ð½ÐµÑÑ–Ñ‚ÑŒ Ñ–Ð¼'Ñ ÑÐºÐ¾Ñ€Ñ",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ÐÐµ Ð¼Ð°Ñ” Ð² ÑÐ»Ð¾Ð²Ð½Ð¸ÐºÑƒ",
+DlgSpellChangeTo		: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð½Ð°",
+DlgSpellBtnIgnore		: "Ð†Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ñ‚Ð¸",
+DlgSpellBtnIgnoreAll	: "Ð†Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ Ð²ÑÐµ",
+DlgSpellBtnReplace		: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸",
+DlgSpellBtnReplaceAll	: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð²ÑÐµ",
+DlgSpellBtnUndo			: "ÐÐ°Ð·Ð°Ð´",
+DlgSpellNoSuggestions	: "- ÐÐµÐ¼Ð°Ñ” Ð¿Ñ€Ð¸Ð¿ÑƒÑ‰ÐµÐ½ÑŒ -",
+DlgSpellProgress		: "Ð’Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ—...",
+DlgSpellNoMispell		: "ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÑƒ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ— Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾: Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾",
+DlgSpellNoChanges		: "ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÑƒ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ— Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾: Ð¶Ð¾Ð´Ð½Ðµ ÑÐ»Ð¾Ð²Ð¾ Ð½Ðµ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾",
+DlgSpellOneChange		: "ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÑƒ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ— Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾: Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð¾Ð´Ð½Ð¾ ÑÐ»Ð¾Ð²Ð¾",
+DlgSpellManyChanges		: "ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÑƒ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ— Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾: 1% ÑÐ»Ñ–Ð² Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾",
+
+IeSpellDownload			: "ÐœÐ¾Ð´ÑƒÐ»ÑŒ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ— Ð½Ðµ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾. Ð‘Ð°Ð¶Ð°Ñ”Ñ‚Ð½ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ñ€Ð°Ð·?",
+
+// Button Dialog
+DlgButtonText		: "Ð¢ÐµÐºÑÑ‚ (Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ)",
+DlgButtonType		: "Ð¢Ð¸Ð¿",
+DlgButtonTypeBtn	: "ÐšÐ½Ð¾Ð¿ÐºÐ°",
+DlgButtonTypeSbm	: "Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸",
+DlgButtonTypeRst	: "Ð¡ÐºÐ¸Ð½ÑƒÑ‚Ð¸",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ð†Ð¼'Ñ",
+DlgCheckboxValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+DlgCheckboxSelected	: "ÐžÐ±Ñ€Ð°Ð½Ð°",
+
+// Form Dialog
+DlgFormName		: "Ð†Ð¼'Ñ",
+DlgFormAction	: "Ð”Ñ–Ñ",
+DlgFormMethod	: "ÐœÐµÑ‚Ð¾Ð´",
+
+// Select Field Dialog
+DlgSelectName		: "Ð†Ð¼'Ñ",
+DlgSelectValue		: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+DlgSelectSize		: "Ð Ð¾Ð·Ð¼Ñ–Ñ€",
+DlgSelectLines		: "Ð»Ñ–Ð½Ñ–Ñ—",
+DlgSelectChkMulti	: "Ð”Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚Ð¸ Ð¾Ð±Ñ€Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ð¹",
+DlgSelectOpAvail	: "Ð”Ð¾ÑÑ‚ÑƒÐ¿Ð½Ñ– Ð²Ð°Ñ€Ñ–Ð°Ð½Ñ‚Ð¸",
+DlgSelectOpText		: "Ð¢ÐµÐºÑÑ‚",
+DlgSelectOpValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+DlgSelectBtnAdd		: "Ð”Ð¾Ð±Ð°Ð²Ð¸Ñ‚Ð¸",
+DlgSelectBtnModify	: "Ð—Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸",
+DlgSelectBtnUp		: "Ð’Ð³Ð¾Ñ€Ñƒ",
+DlgSelectBtnDown	: "Ð’Ð½Ð¸Ð·",
+DlgSelectBtnSetValue : "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ ÑÐº Ð²Ð¸Ð±Ñ€Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+DlgSelectBtnDelete	: "Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸",
+
+// Textarea Dialog
+DlgTextareaName	: "Ð†Ð¼'Ñ",
+DlgTextareaCols	: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+DlgTextareaRows	: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ¸",
+
+// Text Field Dialog
+DlgTextName			: "Ð†Ð¼'Ñ",
+DlgTextValue		: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+DlgTextCharWidth	: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTextMaxChars		: "ÐœÐ°ÐºÑ. ÐºÑ–Ð»-Ñ‚ÑŒ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ–Ð²",
+DlgTextType			: "Ð¢Ð¸Ð¿",
+DlgTextTypeText		: "Ð¢ÐµÐºÑÑ‚",
+DlgTextTypePass		: "ÐŸÐ°Ñ€Ð¾Ð»ÑŒ",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ð†Ð¼'Ñ",
+DlgHiddenValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð¼Ð°Ñ€ÐºÐ¾Ð²Ð°Ð½Ð¾Ð³Ð¾ ÑÐ¿Ð¸ÑÐºÐ°",
+NumberedListProp	: "Ð’Ð»Ð°ÑÑ‚Ð¸Ð²Ð¾ÑÑ‚Ñ– Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑÐ¿Ð¸ÑÐºÐ°",
+DlgLstStart			: "ÐŸÐ¾Ñ‡Ð°Ñ‚Ð¾Ðº",
+DlgLstType			: "Ð¢Ð¸Ð¿",
+DlgLstTypeCircle	: "ÐšÐ¾Ð»Ð¾",
+DlgLstTypeDisc		: "Ð”Ð¸ÑÐº",
+DlgLstTypeSquare	: "ÐšÐ²Ð°Ð´Ñ€Ð°Ñ‚",
+DlgLstTypeNumbers	: "ÐÐ¾Ð¼ÐµÑ€Ð¸ (1, 2, 3)",
+DlgLstTypeLCase		: "Ð›Ñ–Ñ‚ÐµÑ€Ð¸ Ð½Ð¸Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–ÑÑ‚Ñ€Ð°(a, b, c)",
+DlgLstTypeUCase		: "Ð‘ÑƒÐºÐ²Ð¸ Ð²ÐµÑ€Ñ…Ð½ÑŒÐ¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–ÑÑ‚Ñ€Ð° (A, B, C)",
+DlgLstTypeSRoman	: "ÐœÐ°Ð»Ñ– Ñ€Ð¸Ð¼ÑÑŒÐºÑ– Ð»Ñ–Ñ‚ÐµÑ€Ð¸ (i, ii, iii)",
+DlgLstTypeLRoman	: "Ð’ÐµÐ»Ð¸ÐºÑ– Ñ€Ð¸Ð¼ÑÑŒÐºÑ– Ð»Ñ–Ñ‚ÐµÑ€Ð¸ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ð—Ð°Ð³Ð°Ð»ÑŒÐ½Ñ–",
+DlgDocBackTab		: "Ð—Ð°Ð´Ð½Ñ” Ñ‚Ð»Ð¾",
+DlgDocColorsTab		: "ÐšÐ¾Ð»ÑŒÐ¾Ñ€Ð¸ Ñ‚Ð° Ð²Ñ–Ð´ÑÑ‚ÑƒÐ¿Ð¸",
+DlgDocMetaTab		: "ÐœÐµÑ‚Ð° Ð´Ð°Ð½Ñ–",
+
+DlgDocPageTitle		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸",
+DlgDocLangDir		: "ÐÐ°Ð¿Ñ€ÑÐ¼Ð¾Ðº Ñ‚ÐµÐºÑÑ‚Ñƒ",
+DlgDocLangDirLTR	: "Ð—Ð»Ñ–Ð²Ð° Ð½Ð° Ð¿Ñ€Ð°Ð²Ð¾ (LTR)",
+DlgDocLangDirRTL	: "Ð—Ð¿Ñ€Ð°Ð²Ð° Ð½Ð° Ð»ÐµÐ²Ð¾ (RTL)",
+DlgDocLangCode		: "ÐšÐ¾Ð´ Ð¼Ð¾Ð²Ð¸",
+DlgDocCharSet		: "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ–Ð²",
+DlgDocCharSetCE		: "Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð¾-Ñ”Ð²Ñ€Ð¾Ð¿ÐµÐ¹ÑÑŒÐºÐ°",
+DlgDocCharSetCT		: "ÐšÐ¸Ñ‚Ð°Ð¹ÑÑŒÐºÐ° Ñ‚Ñ€Ð°Ð´Ð¸Ñ†Ñ–Ð¹Ð½Ð° (Big5)",
+DlgDocCharSetCR		: "ÐšÐ¸Ñ€Ð¸Ð»Ð¸Ñ†Ñ",
+DlgDocCharSetGR		: "Ð“Ñ€ÐµÑ†ÑŒÐºÐ°",
+DlgDocCharSetJP		: "Ð¯Ð¿Ð¾Ð½ÑÑŒÐºÐ°",
+DlgDocCharSetKR		: "ÐšÐ¾Ñ€ÐµÐ¹ÑÑŒÐºÐ°",
+DlgDocCharSetTR		: "Ð¢ÑƒÑ€ÐµÑ†ÑŒÐºÐ°",
+DlgDocCharSetUN		: "Ð®Ð½Ñ–ÐºÐ¾Ð´ (UTF-8)",
+DlgDocCharSetWE		: "Ð—Ð°Ñ…Ñ–Ð´Ð½Ð¾-ÐµÐ²Ñ€Ð¾Ð¿ÐµÐ¹ÑÐºÐ°Ñ",
+DlgDocCharSetOther	: "Ð†Ð½ÑˆÐµ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ–Ð²",
+
+DlgDocDocType		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ð¿Ñƒ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ",
+DlgDocDocTypeOther	: "Ð†Ð½ÑˆÐ¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ð¿Ñƒ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ",
+DlgDocIncXHTML		: "Ð’Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ XHTML Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ",
+DlgDocBgColor		: "ÐšÐ¾Ð»Ñ–Ñ€ Ñ‚Ð»Ð°",
+DlgDocBgImage		: "URL Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð»Ð°",
+DlgDocBgNoScroll	: "Ð¢Ð»Ð¾ Ð±ÐµÐ· Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¸",
+DlgDocCText			: "Ð¢ÐµÐºÑÑ‚",
+DlgDocCLink			: "ÐŸÐ¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgDocCVisited		: "Ð’Ñ–Ð´Ð²Ñ–Ð´Ð°Ð½Ðµ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgDocCActive		: "ÐÐºÑ‚Ð¸Ð²Ð½Ðµ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ",
+DlgDocMargins		: "Ð’Ñ–Ð´ÑÑ‚ÑƒÐ¿Ð¸ ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸",
+DlgDocMaTop			: "Ð’ÐµÑ€Ñ…Ð½Ñ–Ð¹",
+DlgDocMaLeft		: "Ð›Ñ–Ð²Ð¸Ð¹",
+DlgDocMaRight		: "ÐŸÑ€Ð°Ð²Ð¸Ð¹",
+DlgDocMaBottom		: "ÐÐ¸Ð¶Ð½Ñ–Ð¹",
+DlgDocMeIndex		: "ÐšÐ»ÑŽÑ‡Ð¾Ð²Ñ– ÑÐ»Ð¾Ð²Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° (Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ñ– ÐºÐ¾Ð¼Ð°Ð¼Ð¸)",
+DlgDocMeDescr		: "ÐžÐ¿Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocMeAuthor		: "ÐÐ²Ñ‚Ð¾Ñ€",
+DlgDocMeCopy		: "ÐÐ²Ñ‚Ð¾Ñ€ÑÑŒÐºÑ– Ð¿Ñ€Ð°Ð²Ð°",
+DlgDocPreview		: "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¹ Ð¿ÐµÑ€ÐµÐ³Ð»ÑÐ´",
+
+// Templates Dialog
+Templates			: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸",
+DlgTemplatesTitle	: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸ Ð·Ð¼Ñ–ÑÑ‚Ñƒ",
+DlgTemplatesSelMsg	: "ÐžÐ±ÐµÑ€Ñ–Ñ‚ÑŒ, Ð±ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, ÑˆÐ°Ð±Ð»Ð¾Ð½ Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð² Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ñ–<br>(Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¹ Ð·Ð¼Ñ–ÑÑ‚ Ð±ÑƒÐ´Ðµ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾):",
+DlgTemplatesLoading	: "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑÐ¿Ð¸ÑÐºÑƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð². Ð—Ð°Ñ‡ÐµÐºÐ°Ð¹Ñ‚Ðµ, Ð±ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°...",
+DlgTemplatesNoTpl	: "(ÐÐµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¶Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñƒ)",
+DlgTemplatesReplace	: "Ð—Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¹ Ð²Ð¼Ñ–ÑÑ‚",
+
+// About Dialog
+DlgAboutAboutTab	: "ÐŸÑ€Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ",
+DlgAboutBrowserInfoTab	: "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°",
+DlgAboutLicenseTab	: "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ",
+DlgAboutVersion		: "Ð’ÐµÑ€ÑÑ–Ñ",
+DlgAboutInfo		: "Ð”Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñƒ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–ÑŽ Ð´Ð¸Ð²Ñ–Ñ‚ÑŒÑÑ Ð½Ð° "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh-cn.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Chinese Simplified language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "æŠ˜å å·¥å…·æ ",
+ToolbarExpand		: "å±•å¼€å·¥å…·æ ",
+
+// Toolbar Items and Context Menu
+Save				: "ä¿å­˜",
+NewPage				: "æ–°å»º",
+Preview				: "é¢„è§ˆ",
+Cut					: "å‰ªåˆ‡",
+Copy				: "å¤åˆ¶",
+Paste				: "ç²˜è´´",
+PasteText			: "ç²˜è´´ä¸ºæ— æ ¼å¼æ–‡æœ¬",
+PasteWord			: "ä»Ž MS Word ç²˜è´´",
+Print				: "æ‰“å°",
+SelectAll			: "å…¨é€‰",
+RemoveFormat		: "æ¸…é™¤æ ¼å¼",
+InsertLinkLbl		: "è¶…é“¾æŽ¥",
+InsertLink			: "æ’å…¥/ç¼–è¾‘è¶…é“¾æŽ¥",
+RemoveLink			: "å–æ¶ˆè¶…é“¾æŽ¥",
+Anchor				: "æ’å…¥/ç¼–è¾‘é”šç‚¹é“¾æŽ¥",
+AnchorDelete		: "æ¸…é™¤é”šç‚¹é“¾æŽ¥",
+InsertImageLbl		: "å›¾è±¡",
+InsertImage			: "æ’å…¥/ç¼–è¾‘å›¾è±¡",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "æ’å…¥/ç¼–è¾‘ Flash",
+InsertTableLbl		: "è¡¨æ ¼",
+InsertTable			: "æ’å…¥/ç¼–è¾‘è¡¨æ ¼",
+InsertLineLbl		: "æ°´å¹³çº¿",
+InsertLine			: "æ’å…¥æ°´å¹³çº¿",
+InsertSpecialCharLbl: "ç‰¹æ®Šç¬¦å·",
+InsertSpecialChar	: "æ’å…¥ç‰¹æ®Šç¬¦å·",
+InsertSmileyLbl		: "è¡¨æƒ…ç¬¦",
+InsertSmiley		: "æ’å…¥è¡¨æƒ…å›¾æ ‡",
+About				: "å…³äºŽ FCKeditor",
+Bold				: "åŠ ç²—",
+Italic				: "å€¾æ–œ",
+Underline			: "ä¸‹åˆ’çº¿",
+StrikeThrough		: "åˆ é™¤çº¿",
+Subscript			: "ä¸‹æ ‡",
+Superscript			: "ä¸Šæ ‡",
+LeftJustify			: "å·¦å¯¹é½",
+CenterJustify		: "å±…ä¸­å¯¹é½",
+RightJustify		: "å³å¯¹é½",
+BlockJustify		: "ä¸¤ç«¯å¯¹é½",
+DecreaseIndent		: "å‡å°‘ç¼©è¿›é‡",
+IncreaseIndent		: "å¢žåŠ ç¼©è¿›é‡",
+Blockquote			: "å¼•ç”¨æ–‡å­—",
+Undo				: "æ’¤æ¶ˆ",
+Redo				: "é‡åš",
+NumberedListLbl		: "ç¼–å·åˆ—è¡¨",
+NumberedList		: "æ’å…¥/åˆ é™¤ç¼–å·åˆ—è¡¨",
+BulletedListLbl		: "é¡¹ç›®åˆ—è¡¨",
+BulletedList		: "æ’å…¥/åˆ é™¤é¡¹ç›®åˆ—è¡¨",
+ShowTableBorders	: "æ˜¾ç¤ºè¡¨æ ¼è¾¹æ¡†",
+ShowDetails			: "æ˜¾ç¤ºè¯¦ç»†èµ„æ–™",
+Style				: "æ ·å¼",
+FontFormat			: "æ ¼å¼",
+Font				: "å­—ä½“",
+FontSize			: "å¤§å°",
+TextColor			: "æ–‡æœ¬é¢œè‰²",
+BGColor				: "èƒŒæ™¯é¢œè‰²",
+Source				: "æºä»£ç ",
+Find				: "æŸ¥æ‰¾",
+Replace				: "æ›¿æ¢",
+SpellCheck			: "æ‹¼å†™æ£€æŸ¥",
+UniversalKeyboard	: "è½¯é”®ç›˜",
+PageBreakLbl		: "åˆ†é¡µç¬¦",
+PageBreak			: "æ’å…¥åˆ†é¡µç¬¦",
+
+Form			: "è¡¨å•",
+Checkbox		: "å¤é€‰æ¡†",
+RadioButton		: "å•é€‰æŒ‰é’®",
+TextField		: "å•è¡Œæ–‡æœ¬",
+Textarea		: "å¤šè¡Œæ–‡æœ¬",
+HiddenField		: "éšè—åŸŸ",
+Button			: "æŒ‰é’®",
+SelectionField	: "åˆ—è¡¨/èœå•",
+ImageButton		: "å›¾åƒåŸŸ",
+
+FitWindow		: "å…¨å±ç¼–è¾‘",
+ShowBlocks		: "æ˜¾ç¤ºåŒºå—",
+
+// Context Menu
+EditLink			: "ç¼–è¾‘è¶…é“¾æŽ¥",
+CellCM				: "å•å…ƒæ ¼",
+RowCM				: "è¡Œ",
+ColumnCM			: "åˆ—",
+InsertRowAfter		: "ä¸‹æ’å…¥è¡Œ",
+InsertRowBefore		: "ä¸Šæ’å…¥è¡Œ",
+DeleteRows			: "åˆ é™¤è¡Œ",
+InsertColumnAfter	: "å³æ’å…¥åˆ—",
+InsertColumnBefore	: "å·¦æ’å…¥åˆ—",
+DeleteColumns		: "åˆ é™¤åˆ—",
+InsertCellAfter		: "å³æ’å…¥å•å…ƒæ ¼",
+InsertCellBefore	: "å·¦æ’å…¥å•å…ƒæ ¼",
+DeleteCells			: "åˆ é™¤å•å…ƒæ ¼",
+MergeCells			: "åˆå¹¶å•å…ƒæ ¼",
+MergeRight			: "å³åˆå¹¶å•å…ƒæ ¼",
+MergeDown			: "ä¸‹åˆå¹¶å•å…ƒæ ¼",
+HorizontalSplitCell	: "æ©«æ‹†åˆ†å•å…ƒæ ¼",
+VerticalSplitCell	: "ç¸±æ‹†åˆ†å•å…ƒæ ¼",
+TableDelete			: "åˆ é™¤è¡¨æ ¼",
+CellProperties		: "å•å…ƒæ ¼å±žæ€§",
+TableProperties		: "è¡¨æ ¼å±žæ€§",
+ImageProperties		: "å›¾è±¡å±žæ€§",
+FlashProperties		: "Flash å±žæ€§",
+
+AnchorProp			: "é”šç‚¹é“¾æŽ¥å±žæ€§",
+ButtonProp			: "æŒ‰é’®å±žæ€§",
+CheckboxProp		: "å¤é€‰æ¡†å±žæ€§",
+HiddenFieldProp		: "éšè—åŸŸå±žæ€§",
+RadioButtonProp		: "å•é€‰æŒ‰é’®å±žæ€§",
+ImageButtonProp		: "å›¾åƒåŸŸå±žæ€§",
+TextFieldProp		: "å•è¡Œæ–‡æœ¬å±žæ€§",
+SelectionFieldProp	: "èœå•/åˆ—è¡¨å±žæ€§",
+TextareaProp		: "å¤šè¡Œæ–‡æœ¬å±žæ€§",
+FormProp			: "è¡¨å•å±žæ€§",
+
+FontFormats			: "æ™®é€š;å·²ç¼–æŽ’æ ¼å¼;åœ°å€;æ ‡é¢˜ 1;æ ‡é¢˜ 2;æ ‡é¢˜ 3;æ ‡é¢˜ 4;æ ‡é¢˜ 5;æ ‡é¢˜ 6;æ®µè½(DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "æ­£åœ¨å¤„ç† XHTMLï¼Œè¯·ç¨ç­‰...",
+Done				: "å®Œæˆ",
+PasteWordConfirm	: "æ‚¨è¦ç²˜è´´çš„å†…å®¹å¥½åƒæ˜¯æ¥è‡ª MS Wordï¼Œæ˜¯å¦è¦æ¸…é™¤ MS Word æ ¼å¼åŽå†ç²˜è´´ï¼Ÿ",
+NotCompatiblePaste	: "è¯¥å‘½ä»¤éœ€è¦ Internet Explorer 5.5 æˆ–æ›´é«˜ç‰ˆæœ¬çš„æ”¯æŒï¼Œæ˜¯å¦æŒ‰å¸¸è§„ç²˜è´´è¿›è¡Œï¼Ÿ",
+UnknownToolbarItem	: "æœªçŸ¥å·¥å…·æ é¡¹ç›® \"%1\"",
+UnknownCommand		: "æœªçŸ¥å‘½ä»¤åç§° \"%1\"",
+NotImplemented		: "å‘½ä»¤æ— æ³•æ‰§è¡Œ",
+UnknownToolbarSet	: "å·¥å…·æ è®¾ç½® \"%1\" ä¸å­˜åœ¨",
+NoActiveX			: "æµè§ˆå™¨å®‰å…¨è®¾ç½®é™åˆ¶äº†æœ¬ç¼–è¾‘å™¨çš„æŸäº›åŠŸèƒ½ã€‚æ‚¨å¿…é¡»å¯ç”¨å®‰å…¨è®¾ç½®ä¸­çš„â€œè¿è¡Œ ActiveX æŽ§ä»¶å’Œæ’ä»¶â€ï¼Œå¦åˆ™å°†å‡ºçŽ°æŸäº›é”™è¯¯å¹¶ç¼ºå°‘åŠŸèƒ½ã€‚",
+BrowseServerBlocked : "æ— æ³•æ‰“å¼€èµ„æºæµè§ˆå™¨ï¼Œè¯·ç¡®è®¤æ˜¯å¦å¯ç”¨äº†ç¦æ­¢å¼¹å‡ºçª—å£ã€‚",
+DialogBlocked		: "æ— æ³•æ‰“å¼€å¯¹è¯æ¡†çª—å£ï¼Œè¯·ç¡®è®¤æ˜¯å¦å¯ç”¨äº†ç¦æ­¢å¼¹å‡ºçª—å£æˆ–ç½‘é¡µå¯¹è¯æ¡†ï¼ˆIEï¼‰ã€‚",
+
+// Dialogs
+DlgBtnOK			: "ç¡®å®š",
+DlgBtnCancel		: "å–æ¶ˆ",
+DlgBtnClose			: "å…³é—­",
+DlgBtnBrowseServer	: "æµè§ˆæœåŠ¡å™¨",
+DlgAdvancedTag		: "é«˜çº§",
+DlgOpOther			: "<å…¶å®ƒ>",
+DlgInfoTab			: "ä¿¡æ¯",
+DlgAlertUrl			: "è¯·æ’å…¥ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<æ²¡æœ‰è®¾ç½®>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "è¯­è¨€æ–¹å‘",
+DlgGenLangDirLtr	: "ä»Žå·¦åˆ°å³ (LTR)",
+DlgGenLangDirRtl	: "ä»Žå³åˆ°å·¦ (RTL)",
+DlgGenLangCode		: "è¯­è¨€ä»£ç ",
+DlgGenAccessKey		: "è®¿é—®é”®",
+DlgGenName			: "åç§°",
+DlgGenTabIndex		: "Tab é”®æ¬¡åº",
+DlgGenLongDescr		: "è¯¦ç»†è¯´æ˜Žåœ°å€",
+DlgGenClass			: "æ ·å¼ç±»åç§°",
+DlgGenTitle			: "æ ‡é¢˜",
+DlgGenContType		: "å†…å®¹ç±»åž‹",
+DlgGenLinkCharset	: "å­—ç¬¦ç¼–ç ",
+DlgGenStyle			: "è¡Œå†…æ ·å¼",
+
+// Image Dialog
+DlgImgTitle			: "å›¾è±¡å±žæ€§",
+DlgImgInfoTab		: "å›¾è±¡",
+DlgImgBtnUpload		: "å‘é€åˆ°æœåŠ¡å™¨ä¸Š",
+DlgImgURL			: "æºæ–‡ä»¶",
+DlgImgUpload		: "ä¸Šä¼ ",
+DlgImgAlt			: "æ›¿æ¢æ–‡æœ¬",
+DlgImgWidth			: "å®½åº¦",
+DlgImgHeight		: "é«˜åº¦",
+DlgImgLockRatio		: "é”å®šæ¯”ä¾‹",
+DlgBtnResetSize		: "æ¢å¤å°ºå¯¸",
+DlgImgBorder		: "è¾¹æ¡†å¤§å°",
+DlgImgHSpace		: "æ°´å¹³é—´è·",
+DlgImgVSpace		: "åž‚ç›´é—´è·",
+DlgImgAlign			: "å¯¹é½æ–¹å¼",
+DlgImgAlignLeft		: "å·¦å¯¹é½",
+DlgImgAlignAbsBottom: "ç»å¯¹åº•è¾¹",
+DlgImgAlignAbsMiddle: "ç»å¯¹å±…ä¸­",
+DlgImgAlignBaseline	: "åŸºçº¿",
+DlgImgAlignBottom	: "åº•è¾¹",
+DlgImgAlignMiddle	: "å±…ä¸­",
+DlgImgAlignRight	: "å³å¯¹é½",
+DlgImgAlignTextTop	: "æ–‡æœ¬ä¸Šæ–¹",
+DlgImgAlignTop		: "é¡¶ç«¯",
+DlgImgPreview		: "é¢„è§ˆ",
+DlgImgAlertUrl		: "è¯·è¾“å…¥å›¾è±¡åœ°å€",
+DlgImgLinkTab		: "é“¾æŽ¥",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash å±žæ€§",
+DlgFlashChkPlay		: "è‡ªåŠ¨æ’­æ”¾",
+DlgFlashChkLoop		: "å¾ªçŽ¯",
+DlgFlashChkMenu		: "å¯ç”¨ Flash èœå•",
+DlgFlashScale		: "ç¼©æ”¾",
+DlgFlashScaleAll	: "å…¨éƒ¨æ˜¾ç¤º",
+DlgFlashScaleNoBorder	: "æ— è¾¹æ¡†",
+DlgFlashScaleFit	: "ä¸¥æ ¼åŒ¹é…",
+
+// Link Dialog
+DlgLnkWindowTitle	: "è¶…é“¾æŽ¥",
+DlgLnkInfoTab		: "è¶…é“¾æŽ¥ä¿¡æ¯",
+DlgLnkTargetTab		: "ç›®æ ‡",
+
+DlgLnkType			: "è¶…é“¾æŽ¥ç±»åž‹",
+DlgLnkTypeURL		: "è¶…é“¾æŽ¥",
+DlgLnkTypeAnchor	: "é¡µå†…é”šç‚¹é“¾æŽ¥",
+DlgLnkTypeEMail		: "ç”µå­é‚®ä»¶",
+DlgLnkProto			: "åè®®",
+DlgLnkProtoOther	: "<å…¶å®ƒ>",
+DlgLnkURL			: "åœ°å€",
+DlgLnkAnchorSel		: "é€‰æ‹©ä¸€ä¸ªé”šç‚¹",
+DlgLnkAnchorByName	: "æŒ‰é”šç‚¹åç§°",
+DlgLnkAnchorById	: "æŒ‰é”šç‚¹ ID",
+DlgLnkNoAnchors		: "(æ­¤æ–‡æ¡£æ²¡æœ‰å¯ç”¨çš„é”šç‚¹)",
+DlgLnkEMail			: "åœ°å€",
+DlgLnkEMailSubject	: "ä¸»é¢˜",
+DlgLnkEMailBody		: "å†…å®¹",
+DlgLnkUpload		: "ä¸Šä¼ ",
+DlgLnkBtnUpload		: "å‘é€åˆ°æœåŠ¡å™¨ä¸Š",
+
+DlgLnkTarget		: "ç›®æ ‡",
+DlgLnkTargetFrame	: "<æ¡†æž¶>",
+DlgLnkTargetPopup	: "<å¼¹å‡ºçª—å£>",
+DlgLnkTargetBlank	: "æ–°çª—å£ (_blank)",
+DlgLnkTargetParent	: "çˆ¶çª—å£ (_parent)",
+DlgLnkTargetSelf	: "æœ¬çª—å£ (_self)",
+DlgLnkTargetTop		: "æ•´é¡µ (_top)",
+DlgLnkTargetFrameName	: "ç›®æ ‡æ¡†æž¶åç§°",
+DlgLnkPopWinName	: "å¼¹å‡ºçª—å£åç§°",
+DlgLnkPopWinFeat	: "å¼¹å‡ºçª—å£å±žæ€§",
+DlgLnkPopResize		: "è°ƒæ•´å¤§å°",
+DlgLnkPopLocation	: "åœ°å€æ ",
+DlgLnkPopMenu		: "èœå•æ ",
+DlgLnkPopScroll		: "æ»šåŠ¨æ¡",
+DlgLnkPopStatus		: "çŠ¶æ€æ ",
+DlgLnkPopToolbar	: "å·¥å…·æ ",
+DlgLnkPopFullScrn	: "å…¨å± (IE)",
+DlgLnkPopDependent	: "ä¾é™„ (NS)",
+DlgLnkPopWidth		: "å®½",
+DlgLnkPopHeight		: "é«˜",
+DlgLnkPopLeft		: "å·¦",
+DlgLnkPopTop		: "å³",
+
+DlnLnkMsgNoUrl		: "è¯·è¾“å…¥è¶…é“¾æŽ¥åœ°å€",
+DlnLnkMsgNoEMail	: "è¯·è¾“å…¥ç”µå­é‚®ä»¶åœ°å€",
+DlnLnkMsgNoAnchor	: "è¯·é€‰æ‹©ä¸€ä¸ªé”šç‚¹",
+DlnLnkMsgInvPopName	: "å¼¹å‡ºçª—å£åç§°å¿…é¡»ä»¥å­—æ¯å¼€å¤´ï¼Œå¹¶ä¸”ä¸èƒ½å«æœ‰ç©ºæ ¼ã€‚",
+
+// Color Dialog
+DlgColorTitle		: "é€‰æ‹©é¢œè‰²",
+DlgColorBtnClear	: "æ¸…é™¤",
+DlgColorHighlight	: "é¢„è§ˆ",
+DlgColorSelected	: "é€‰æ‹©",
+
+// Smiley Dialog
+DlgSmileyTitle		: "æ’å…¥è¡¨æƒ…å›¾æ ‡",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "é€‰æ‹©ç‰¹æ®Šç¬¦å·",
+
+// Table Dialog
+DlgTableTitle		: "è¡¨æ ¼å±žæ€§",
+DlgTableRows		: "è¡Œæ•°",
+DlgTableColumns		: "åˆ—æ•°",
+DlgTableBorder		: "è¾¹æ¡†",
+DlgTableAlign		: "å¯¹é½",
+DlgTableAlignNotSet	: "<æ²¡æœ‰è®¾ç½®>",
+DlgTableAlignLeft	: "å·¦å¯¹é½",
+DlgTableAlignCenter	: "å±…ä¸­",
+DlgTableAlignRight	: "å³å¯¹é½",
+DlgTableWidth		: "å®½åº¦",
+DlgTableWidthPx		: "åƒç´ ",
+DlgTableWidthPc		: "ç™¾åˆ†æ¯”",
+DlgTableHeight		: "é«˜åº¦",
+DlgTableCellSpace	: "é—´è·",
+DlgTableCellPad		: "è¾¹è·",
+DlgTableCaption		: "æ ‡é¢˜",
+DlgTableSummary		: "æ‘˜è¦",
+
+// Table Cell Dialog
+DlgCellTitle		: "å•å…ƒæ ¼å±žæ€§",
+DlgCellWidth		: "å®½åº¦",
+DlgCellWidthPx		: "åƒç´ ",
+DlgCellWidthPc		: "ç™¾åˆ†æ¯”",
+DlgCellHeight		: "é«˜åº¦",
+DlgCellWordWrap		: "è‡ªåŠ¨æ¢è¡Œ",
+DlgCellWordWrapNotSet	: "<æ²¡æœ‰è®¾ç½®>",
+DlgCellWordWrapYes	: "æ˜¯",
+DlgCellWordWrapNo	: "å¦",
+DlgCellHorAlign		: "æ°´å¹³å¯¹é½",
+DlgCellHorAlignNotSet	: "<æ²¡æœ‰è®¾ç½®>",
+DlgCellHorAlignLeft	: "å·¦å¯¹é½",
+DlgCellHorAlignCenter	: "å±…ä¸­",
+DlgCellHorAlignRight: "å³å¯¹é½",
+DlgCellVerAlign		: "åž‚ç›´å¯¹é½",
+DlgCellVerAlignNotSet	: "<æ²¡æœ‰è®¾ç½®>",
+DlgCellVerAlignTop	: "é¡¶ç«¯",
+DlgCellVerAlignMiddle	: "å±…ä¸­",
+DlgCellVerAlignBottom	: "åº•éƒ¨",
+DlgCellVerAlignBaseline	: "åŸºçº¿",
+DlgCellRowSpan		: "çºµè·¨è¡Œæ•°",
+DlgCellCollSpan		: "æ¨ªè·¨åˆ—æ•°",
+DlgCellBackColor	: "èƒŒæ™¯é¢œè‰²",
+DlgCellBorderColor	: "è¾¹æ¡†é¢œè‰²",
+DlgCellBtnSelect	: "é€‰æ‹©...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "æŸ¥æ‰¾å’Œæ›¿æ¢",
+
+// Find Dialog
+DlgFindTitle		: "æŸ¥æ‰¾",
+DlgFindFindBtn		: "æŸ¥æ‰¾",
+DlgFindNotFoundMsg	: "æŒ‡å®šæ–‡æœ¬æ²¡æœ‰æ‰¾åˆ°ã€‚",
+
+// Replace Dialog
+DlgReplaceTitle			: "æ›¿æ¢",
+DlgReplaceFindLbl		: "æŸ¥æ‰¾:",
+DlgReplaceReplaceLbl	: "æ›¿æ¢:",
+DlgReplaceCaseChk		: "åŒºåˆ†å¤§å°å†™",
+DlgReplaceReplaceBtn	: "æ›¿æ¢",
+DlgReplaceReplAllBtn	: "å…¨éƒ¨æ›¿æ¢",
+DlgReplaceWordChk		: "å…¨å­—åŒ¹é…",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "æ‚¨çš„æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…è®¸ç¼–è¾‘å™¨è‡ªåŠ¨æ‰§è¡Œå‰ªåˆ‡æ“ä½œï¼Œè¯·ä½¿ç”¨é”®ç›˜å¿«æ·é”®(Ctrl+X)æ¥å®Œæˆã€‚",
+PasteErrorCopy	: "æ‚¨çš„æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…è®¸ç¼–è¾‘å™¨è‡ªåŠ¨æ‰§è¡Œå¤åˆ¶æ“ä½œï¼Œè¯·ä½¿ç”¨é”®ç›˜å¿«æ·é”®(Ctrl+C)æ¥å®Œæˆã€‚",
+
+PasteAsText		: "ç²˜è´´ä¸ºæ— æ ¼å¼æ–‡æœ¬",
+PasteFromWord	: "ä»Ž MS Word ç²˜è´´",
+
+DlgPasteMsg2	: "è¯·ä½¿ç”¨é”®ç›˜å¿«æ·é”®(<STRONG>Ctrl+V</STRONG>)æŠŠå†…å®¹ç²˜è´´åˆ°ä¸‹é¢çš„æ–¹æ¡†é‡Œï¼Œå†æŒ‰ <STRONG>ç¡®å®š</STRONG>ã€‚",
+DlgPasteSec		: "å› ä¸ºä½ çš„æµè§ˆå™¨çš„å®‰å…¨è®¾ç½®åŽŸå› ï¼Œæœ¬ç¼–è¾‘å™¨ä¸èƒ½ç›´æŽ¥è®¿é—®ä½ çš„å‰ªè´´æ¿å†…å®¹ï¼Œä½ éœ€è¦åœ¨æœ¬çª—å£é‡æ–°ç²˜è´´ä¸€æ¬¡ã€‚",
+DlgPasteIgnoreFont		: "å¿½ç•¥ Font æ ‡ç­¾",
+DlgPasteRemoveStyles	: "æ¸…ç† CSS æ ·å¼",
+
+// Color Picker
+ColorAutomatic	: "è‡ªåŠ¨",
+ColorMoreColors	: "å…¶å®ƒé¢œè‰²...",
+
+// Document Properties
+DocProps		: "é¡µé¢å±žæ€§",
+
+// Anchor Dialog
+DlgAnchorTitle		: "å‘½åé”šç‚¹",
+DlgAnchorName		: "é”šç‚¹åç§°",
+DlgAnchorErrorName	: "è¯·è¾“å…¥é”šç‚¹åç§°",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "æ²¡æœ‰åœ¨å­—å…¸é‡Œ",
+DlgSpellChangeTo		: "æ›´æ”¹ä¸º",
+DlgSpellBtnIgnore		: "å¿½ç•¥",
+DlgSpellBtnIgnoreAll	: "å…¨éƒ¨å¿½ç•¥",
+DlgSpellBtnReplace		: "æ›¿æ¢",
+DlgSpellBtnReplaceAll	: "å…¨éƒ¨æ›¿æ¢",
+DlgSpellBtnUndo			: "æ’¤æ¶ˆ",
+DlgSpellNoSuggestions	: "- æ²¡æœ‰å»ºè®® -",
+DlgSpellProgress		: "æ­£åœ¨è¿›è¡Œæ‹¼å†™æ£€æŸ¥...",
+DlgSpellNoMispell		: "æ‹¼å†™æ£€æŸ¥å®Œæˆï¼šæ²¡æœ‰å‘çŽ°æ‹¼å†™é”™è¯¯",
+DlgSpellNoChanges		: "æ‹¼å†™æ£€æŸ¥å®Œæˆï¼šæ²¡æœ‰æ›´æ”¹ä»»ä½•å•è¯",
+DlgSpellOneChange		: "æ‹¼å†™æ£€æŸ¥å®Œæˆï¼šæ›´æ”¹äº†ä¸€ä¸ªå•è¯",
+DlgSpellManyChanges		: "æ‹¼å†™æ£€æŸ¥å®Œæˆï¼šæ›´æ”¹äº† %1 ä¸ªå•è¯",
+
+IeSpellDownload			: "æ‹¼å†™æ£€æŸ¥æ’ä»¶è¿˜æ²¡å®‰è£…ï¼Œä½ æ˜¯å¦æƒ³çŽ°åœ¨å°±ä¸‹è½½ï¼Ÿ",
+
+// Button Dialog
+DlgButtonText		: "æ ‡ç­¾(å€¼)",
+DlgButtonType		: "ç±»åž‹",
+DlgButtonTypeBtn	: "æŒ‰é’®",
+DlgButtonTypeSbm	: "æäº¤",
+DlgButtonTypeRst	: "é‡è®¾",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "åç§°",
+DlgCheckboxValue	: "é€‰å®šå€¼",
+DlgCheckboxSelected	: "å·²å‹¾é€‰",
+
+// Form Dialog
+DlgFormName		: "åç§°",
+DlgFormAction	: "åŠ¨ä½œ",
+DlgFormMethod	: "æ–¹æ³•",
+
+// Select Field Dialog
+DlgSelectName		: "åç§°",
+DlgSelectValue		: "é€‰å®š",
+DlgSelectSize		: "é«˜åº¦",
+DlgSelectLines		: "è¡Œ",
+DlgSelectChkMulti	: "å…è®¸å¤šé€‰",
+DlgSelectOpAvail	: "åˆ—è¡¨å€¼",
+DlgSelectOpText		: "æ ‡ç­¾",
+DlgSelectOpValue	: "å€¼",
+DlgSelectBtnAdd		: "æ–°å¢ž",
+DlgSelectBtnModify	: "ä¿®æ”¹",
+DlgSelectBtnUp		: "ä¸Šç§»",
+DlgSelectBtnDown	: "ä¸‹ç§»",
+DlgSelectBtnSetValue : "è®¾ä¸ºåˆå§‹åŒ–æ—¶é€‰å®š",
+DlgSelectBtnDelete	: "åˆ é™¤",
+
+// Textarea Dialog
+DlgTextareaName	: "åç§°",
+DlgTextareaCols	: "å­—ç¬¦å®½åº¦",
+DlgTextareaRows	: "è¡Œæ•°",
+
+// Text Field Dialog
+DlgTextName			: "åç§°",
+DlgTextValue		: "åˆå§‹å€¼",
+DlgTextCharWidth	: "å­—ç¬¦å®½åº¦",
+DlgTextMaxChars		: "æœ€å¤šå­—ç¬¦æ•°",
+DlgTextType			: "ç±»åž‹",
+DlgTextTypeText		: "æ–‡æœ¬",
+DlgTextTypePass		: "å¯†ç ",
+
+// Hidden Field Dialog
+DlgHiddenName	: "åç§°",
+DlgHiddenValue	: "åˆå§‹å€¼",
+
+// Bulleted List Dialog
+BulletedListProp	: "é¡¹ç›®åˆ—è¡¨å±žæ€§",
+NumberedListProp	: "ç¼–å·åˆ—è¡¨å±žæ€§",
+DlgLstStart			: "å¼€å§‹åºå·",
+DlgLstType			: "åˆ—è¡¨ç±»åž‹",
+DlgLstTypeCircle	: "åœ†åœˆ",
+DlgLstTypeDisc		: "åœ†ç‚¹",
+DlgLstTypeSquare	: "æ–¹å—",
+DlgLstTypeNumbers	: "æ•°å­— (1, 2, 3)",
+DlgLstTypeLCase		: "å°å†™å­—æ¯ (a, b, c)",
+DlgLstTypeUCase		: "å¤§å†™å­—æ¯ (A, B, C)",
+DlgLstTypeSRoman	: "å°å†™ç½—é©¬æ•°å­— (i, ii, iii)",
+DlgLstTypeLRoman	: "å¤§å†™ç½—é©¬æ•°å­— (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "å¸¸è§„",
+DlgDocBackTab		: "èƒŒæ™¯",
+DlgDocColorsTab		: "é¢œè‰²å’Œè¾¹è·",
+DlgDocMetaTab		: "Meta æ•°æ®",
+
+DlgDocPageTitle		: "é¡µé¢æ ‡é¢˜",
+DlgDocLangDir		: "è¯­è¨€æ–¹å‘",
+DlgDocLangDirLTR	: "ä»Žå·¦åˆ°å³ (LTR)",
+DlgDocLangDirRTL	: "ä»Žå³åˆ°å·¦ (RTL)",
+DlgDocLangCode		: "è¯­è¨€ä»£ç ",
+DlgDocCharSet		: "å­—ç¬¦ç¼–ç ",
+DlgDocCharSetCE		: "ä¸­æ¬§",
+DlgDocCharSetCT		: "ç¹ä½“ä¸­æ–‡ (Big5)",
+DlgDocCharSetCR		: "è¥¿é‡Œå°”æ–‡",
+DlgDocCharSetGR		: "å¸Œè…Šæ–‡",
+DlgDocCharSetJP		: "æ—¥æ–‡",
+DlgDocCharSetKR		: "éŸ©æ–‡",
+DlgDocCharSetTR		: "åœŸè€³å…¶æ–‡",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "è¥¿æ¬§",
+DlgDocCharSetOther	: "å…¶å®ƒå­—ç¬¦ç¼–ç ",
+
+DlgDocDocType		: "æ–‡æ¡£ç±»åž‹",
+DlgDocDocTypeOther	: "å…¶å®ƒæ–‡æ¡£ç±»åž‹",
+DlgDocIncXHTML		: "åŒ…å« XHTML å£°æ˜Ž",
+DlgDocBgColor		: "èƒŒæ™¯é¢œè‰²",
+DlgDocBgImage		: "èƒŒæ™¯å›¾åƒ",
+DlgDocBgNoScroll	: "ä¸æ»šåŠ¨èƒŒæ™¯å›¾åƒ",
+DlgDocCText			: "æ–‡æœ¬",
+DlgDocCLink			: "è¶…é“¾æŽ¥",
+DlgDocCVisited		: "å·²è®¿é—®çš„è¶…é“¾æŽ¥",
+DlgDocCActive		: "æ´»åŠ¨è¶…é“¾æŽ¥",
+DlgDocMargins		: "é¡µé¢è¾¹è·",
+DlgDocMaTop			: "ä¸Š",
+DlgDocMaLeft		: "å·¦",
+DlgDocMaRight		: "å³",
+DlgDocMaBottom		: "ä¸‹",
+DlgDocMeIndex		: "é¡µé¢ç´¢å¼•å…³é”®å­— (ç”¨åŠè§’é€—å·[,]åˆ†éš”)",
+DlgDocMeDescr		: "é¡µé¢è¯´æ˜Ž",
+DlgDocMeAuthor		: "ä½œè€…",
+DlgDocMeCopy		: "ç‰ˆæƒ",
+DlgDocPreview		: "é¢„è§ˆ",
+
+// Templates Dialog
+Templates			: "æ¨¡æ¿",
+DlgTemplatesTitle	: "å†…å®¹æ¨¡æ¿",
+DlgTemplatesSelMsg	: "è¯·é€‰æ‹©ç¼–è¾‘å™¨å†…å®¹æ¨¡æ¿<br>(å½“å‰å†…å®¹å°†ä¼šè¢«æ¸…é™¤æ›¿æ¢):",
+DlgTemplatesLoading	: "æ­£åœ¨åŠ è½½æ¨¡æ¿åˆ—è¡¨ï¼Œè¯·ç¨ç­‰...",
+DlgTemplatesNoTpl	: "(æ²¡æœ‰æ¨¡æ¿)",
+DlgTemplatesReplace	: "æ›¿æ¢å½“å‰å†…å®¹",
+
+// About Dialog
+DlgAboutAboutTab	: "å…³äºŽ",
+DlgAboutBrowserInfoTab	: "æµè§ˆå™¨ä¿¡æ¯",
+DlgAboutLicenseTab	: "è®¸å¯è¯",
+DlgAboutVersion		: "ç‰ˆæœ¬",
+DlgAboutInfo		: "è¦èŽ·å¾—æ›´å¤šä¿¡æ¯è¯·è®¿é—® "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ro.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ro.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ro.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Romanian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ascunde bara cu opÅ£iuni",
+ToolbarExpand		: "ExpandeazÄƒ bara cu opÅ£iuni",
+
+// Toolbar Items and Context Menu
+Save				: "SalveazÄƒ",
+NewPage				: "PaginÄƒ nouÄƒ",
+Preview				: "Previzualizare",
+Cut					: "Taie",
+Copy				: "CopiazÄƒ",
+Paste				: "AdaugÄƒ",
+PasteText			: "AdaugÄƒ ca text simplu",
+PasteWord			: "AdaugÄƒ din Word",
+Print				: "PrinteazÄƒ",
+SelectAll			: "SelecteazÄƒ tot",
+RemoveFormat		: "ÃŽnlÄƒturÄƒ formatarea",
+InsertLinkLbl		: "Link (LegÄƒturÄƒ web)",
+InsertLink			: "InsereazÄƒ/EditeazÄƒ link (legÄƒturÄƒ web)",
+RemoveLink			: "ÃŽnlÄƒturÄƒ link (legÄƒturÄƒ web)",
+Anchor				: "InsereazÄƒ/EditeazÄƒ ancorÄƒ",
+AnchorDelete		: "Åžterge ancorÄƒ",
+InsertImageLbl		: "Imagine",
+InsertImage			: "InsereazÄƒ/EditeazÄƒ imagine",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "InsereazÄƒ/EditeazÄƒ flash",
+InsertTableLbl		: "Tabel",
+InsertTable			: "InsereazÄƒ/EditeazÄƒ tabel",
+InsertLineLbl		: "Linie",
+InsertLine			: "InsereazÄƒ linie orizontÄƒ",
+InsertSpecialCharLbl: "Caracter special",
+InsertSpecialChar	: "InsereazÄƒ caracter special",
+InsertSmileyLbl		: "FigurÄƒ expresivÄƒ (Emoticon)",
+InsertSmiley		: "InsereazÄƒ FigurÄƒ expresivÄƒ (Emoticon)",
+About				: "Despre FCKeditor",
+Bold				: "ÃŽngroÅŸat (bold)",
+Italic				: "ÃŽnclinat (italic)",
+Underline			: "Subliniat (underline)",
+StrikeThrough		: "TÄƒiat (strike through)",
+Subscript			: "Indice (subscript)",
+Superscript			: "Putere (superscript)",
+LeftJustify			: "Aliniere la stÃ¢nga",
+CenterJustify		: "Aliniere centralÄƒ",
+RightJustify		: "Aliniere la dreapta",
+BlockJustify		: "Aliniere Ã®n bloc (Block Justify)",
+DecreaseIndent		: "Scade indentarea",
+IncreaseIndent		: "CreÅŸte indentarea",
+Blockquote			: "Citat",
+Undo				: "Starea anterioarÄƒ (undo)",
+Redo				: "Starea ulterioarÄƒ (redo)",
+NumberedListLbl		: "ListÄƒ numerotatÄƒ",
+NumberedList		: "InsereazÄƒ/Åžterge listÄƒ numerotatÄƒ",
+BulletedListLbl		: "ListÄƒ cu puncte",
+BulletedList		: "InsereazÄƒ/Åžterge listÄƒ cu puncte",
+ShowTableBorders	: "AratÄƒ marginile tabelului",
+ShowDetails			: "AratÄƒ detalii",
+Style				: "Stil",
+FontFormat			: "Formatare",
+Font				: "Font",
+FontSize			: "MÄƒrime",
+TextColor			: "Culoarea textului",
+BGColor				: "Coloarea fundalului",
+Source				: "Sursa",
+Find				: "GÄƒseÅŸte",
+Replace				: "ÃŽnlocuieÅŸte",
+SpellCheck			: "VerificÄƒ text",
+UniversalKeyboard	: "TastaturÄƒ universalÄƒ",
+PageBreakLbl		: "Separator de paginÄƒ (Page Break)",
+PageBreak			: "InsereazÄƒ separator de paginÄƒ (Page Break)",
+
+Form			: "Formular (Form)",
+Checkbox		: "BifÄƒ (Checkbox)",
+RadioButton		: "Buton radio (RadioButton)",
+TextField		: "CÃ¢mp text (TextField)",
+Textarea		: "SuprafaÅ£Äƒ text (Textarea)",
+HiddenField		: "CÃ¢mp ascuns (HiddenField)",
+Button			: "Buton",
+SelectionField	: "CÃ¢mp selecÅ£ie (SelectionField)",
+ImageButton		: "Buton imagine (ImageButton)",
+
+FitWindow		: "MaximizeazÄƒ mÄƒrimea editorului",
+ShowBlocks		: "AratÄƒ blocurile",
+
+// Context Menu
+EditLink			: "EditeazÄƒ Link",
+CellCM				: "CelulÄƒ",
+RowCM				: "Linie",
+ColumnCM			: "ColoanÄƒ",
+InsertRowAfter		: "InsereazÄƒ linie dupÄƒ",
+InsertRowBefore		: "InsereazÄƒ linie Ã®nainte",
+DeleteRows			: "Åžterge linii",
+InsertColumnAfter	: "InsereazÄƒ coloanÄƒ dupÄƒ",
+InsertColumnBefore	: "InsereazÄƒ coloanÄƒ Ã®nainte",
+DeleteColumns		: "Åžterge celule",
+InsertCellAfter		: "InsereazÄƒ celulÄƒ dupÄƒ",
+InsertCellBefore	: "InsereazÄƒ celulÄƒ Ã®nainte",
+DeleteCells			: "Åžterge celule",
+MergeCells			: "UneÅŸte celule",
+MergeRight			: "UneÅŸte la dreapta",
+MergeDown			: "UneÅŸte jos",
+HorizontalSplitCell	: "ÃŽmparte celula pe orizontalÄƒ",
+VerticalSplitCell	: "ÃŽmparte celula pe verticalÄƒ",
+TableDelete			: "Åžterge tabel",
+CellProperties		: "ProprietÄƒÅ£ile celulei",
+TableProperties		: "ProprietÄƒÅ£ile tabelului",
+ImageProperties		: "ProprietÄƒÅ£ile imaginii",
+FlashProperties		: "ProprietÄƒÅ£ile flash-ului",
+
+AnchorProp			: "ProprietÄƒÅ£i ancorÄƒ",
+ButtonProp			: "ProprietÄƒÅ£i buton",
+CheckboxProp		: "ProprietÄƒÅ£i bifÄƒ (Checkbox)",
+HiddenFieldProp		: "ProprietÄƒÅ£i cÃ¢mp ascuns (Hidden Field)",
+RadioButtonProp		: "ProprietÄƒÅ£i buton radio (Radio Button)",
+ImageButtonProp		: "ProprietÄƒÅ£i buton imagine (Image Button)",
+TextFieldProp		: "ProprietÄƒÅ£i cÃ¢mp text (Text Field)",
+SelectionFieldProp	: "ProprietÄƒÅ£i cÃ¢mp selecÅ£ie (Selection Field)",
+TextareaProp		: "ProprietÄƒÅ£i suprafaÅ£Äƒ text (Textarea)",
+FormProp			: "ProprietÄƒÅ£i formular (Form)",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",	//MISSING
+
+// Alerts and Messages
+ProcessingXHTML		: "ProcesÄƒm XHTML. VÄƒ rugÄƒm aÅŸteptaÅ£i...",
+Done				: "Am terminat",
+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?",
+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?",
+UnknownToolbarItem	: "Obiectul \"%1\" din bara cu opÅ£iuni necunoscut",
+UnknownCommand		: "Comanda \"%1\" necunoscutÄƒ",
+NotImplemented		: "ComandÄƒ neimplementatÄƒ",
+UnknownToolbarSet	: "Grupul din bara cu opÅ£iuni \"%1\" nu existÄƒ",
+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Äƒ.",
+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).",
+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).",
+
+// Dialogs
+DlgBtnOK			: "Bine",
+DlgBtnCancel		: "Anulare",
+DlgBtnClose			: "ÃŽnchidere",
+DlgBtnBrowseServer	: "RÄƒsfoieÅŸte server",
+DlgAdvancedTag		: "Avansat",
+DlgOpOther			: "<Altul>",
+DlgInfoTab			: "InformaÅ£ii",
+DlgAlertUrl			: "VÄƒ rugÄƒm sÄƒ scrieÅ£i URL-ul",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nesetat>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "DirecÅ£ia cuvintelor",
+DlgGenLangDirLtr	: "stÃ¢nga-dreapta (LTR)",
+DlgGenLangDirRtl	: "dreapta-stÃ¢nga (RTL)",
+DlgGenLangCode		: "Codul limbii",
+DlgGenAccessKey		: "Tasta de acces",
+DlgGenName			: "Nume",
+DlgGenTabIndex		: "Indexul tabului",
+DlgGenLongDescr		: "Descrierea lungÄƒ URL",
+DlgGenClass			: "Clasele cu stilul paginii (CSS)",
+DlgGenTitle			: "Titlul consultativ",
+DlgGenContType		: "Tipul consultativ al titlului",
+DlgGenLinkCharset	: "Setul de caractere al resursei legate",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "ProprietÄƒÅ£ile imaginii",
+DlgImgInfoTab		: "InformaÅ£ii despre imagine",
+DlgImgBtnUpload		: "Trimite la server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ÃŽncarcÄƒ",
+DlgImgAlt			: "Text alternativ",
+DlgImgWidth			: "LÄƒÅ£ime",
+DlgImgHeight		: "ÃŽnÄƒlÅ£ime",
+DlgImgLockRatio		: "PÄƒstreazÄƒ proporÅ£iile",
+DlgBtnResetSize		: "ReseteazÄƒ mÄƒrimea",
+DlgImgBorder		: "Margine",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Aliniere",
+DlgImgAlignLeft		: "StÃ¢nga",
+DlgImgAlignAbsBottom: "Jos absolut (Abs Bottom)",
+DlgImgAlignAbsMiddle: "Mijloc absolut (Abs Middle)",
+DlgImgAlignBaseline	: "Linia de jos (Baseline)",
+DlgImgAlignBottom	: "Jos",
+DlgImgAlignMiddle	: "Mijloc",
+DlgImgAlignRight	: "Dreapta",
+DlgImgAlignTextTop	: "Text sus",
+DlgImgAlignTop		: "Sus",
+DlgImgPreview		: "Previzualizare",
+DlgImgAlertUrl		: "VÄƒ rugÄƒm sÄƒ scrieÅ£i URL-ul imaginii",
+DlgImgLinkTab		: "Link (LegÄƒturÄƒ web)",
+
+// Flash Dialog
+DlgFlashTitle		: "ProprietÄƒÅ£ile flash-ului",
+DlgFlashChkPlay		: "RuleazÄƒ automat",
+DlgFlashChkLoop		: "RepetÄƒ (Loop)",
+DlgFlashChkMenu		: "ActiveazÄƒ meniul flash",
+DlgFlashScale		: "ScalÄƒ",
+DlgFlashScaleAll	: "AratÄƒ tot",
+DlgFlashScaleNoBorder	: "FÄƒrÄƒ margini (No border)",
+DlgFlashScaleFit	: "PotriveÅŸte",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link (LegÄƒturÄƒ web)",
+DlgLnkInfoTab		: "InformaÅ£ii despre link (LegÄƒturÄƒ web)",
+DlgLnkTargetTab		: "Å¢intÄƒ (Target)",
+
+DlgLnkType			: "Tipul link-ului (al legÄƒturii web)",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "AncorÄƒ Ã®n aceastÄƒ paginÄƒ",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<altul>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "SelectaÅ£i o ancorÄƒ",
+DlgLnkAnchorByName	: "dupÄƒ numele ancorei",
+DlgLnkAnchorById	: "dupÄƒ Id-ul elementului",
+DlgLnkNoAnchors		: "(Nicio ancorÄƒ disponibilÄƒ Ã®n document)",
+DlgLnkEMail			: "AdresÄƒ de e-mail",
+DlgLnkEMailSubject	: "Subiectul mesajului",
+DlgLnkEMailBody		: "ConÅ£inutul mesajului",
+DlgLnkUpload		: "ÃŽncarcÄƒ",
+DlgLnkBtnUpload		: "Trimite la server",
+
+DlgLnkTarget		: "Å¢intÄƒ (Target)",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<fereastra popup>",
+DlgLnkTargetBlank	: "FereastrÄƒ nouÄƒ (_blank)",
+DlgLnkTargetParent	: "Fereastra pÄƒrinte (_parent)",
+DlgLnkTargetSelf	: "AceeaÅŸi fereastrÄƒ (_self)",
+DlgLnkTargetTop		: "Fereastra din topul ierarhiei (_top)",
+DlgLnkTargetFrameName	: "Numele frame-ului Å£intÄƒ",
+DlgLnkPopWinName	: "Numele ferestrei popup",
+DlgLnkPopWinFeat	: "ProprietÄƒÅ£ile ferestrei popup",
+DlgLnkPopResize		: "ScalabilÄƒ",
+DlgLnkPopLocation	: "Bara de locaÅ£ie",
+DlgLnkPopMenu		: "Bara de meniu",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Bara de status",
+DlgLnkPopToolbar	: "Bara de opÅ£iuni",
+DlgLnkPopFullScrn	: "Tot ecranul (Full Screen)(IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "LÄƒÅ£ime",
+DlgLnkPopHeight		: "ÃŽnÄƒlÅ£ime",
+DlgLnkPopLeft		: "PoziÅ£ia la stÃ¢nga",
+DlgLnkPopTop		: "PoziÅ£ia la dreapta",
+
+DlnLnkMsgNoUrl		: "VÄƒ rugÄƒm sÄƒ scrieÅ£i URL-ul",
+DlnLnkMsgNoEMail	: "VÄƒ rugÄƒm sÄƒ scrieÅ£i adresa de e-mail",
+DlnLnkMsgNoAnchor	: "VÄƒ rugÄƒm sÄƒ selectaÅ£i o ancorÄƒ",
+DlnLnkMsgInvPopName	: "Numele 'popup'-ului trebuie sÄƒ Ã®nceapÄƒ cu un caracter alfabetic ÅŸi trebuie sÄƒ nu conÅ£inÄƒ spaÅ£ii",
+
+// Color Dialog
+DlgColorTitle		: "SelecteazÄƒ culoare",
+DlgColorBtnClear	: "CurÄƒÅ£Äƒ",
+DlgColorHighlight	: "SubliniazÄƒ (Highlight)",
+DlgColorSelected	: "Selectat",
+
+// Smiley Dialog
+DlgSmileyTitle		: "InsereazÄƒ o figurÄƒ expresivÄƒ (Emoticon)",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "SelecteazÄƒ caracter special",
+
+// Table Dialog
+DlgTableTitle		: "ProprietÄƒÅ£ile tabelului",
+DlgTableRows		: "Linii",
+DlgTableColumns		: "Coloane",
+DlgTableBorder		: "MÄƒrimea marginii",
+DlgTableAlign		: "Aliniament",
+DlgTableAlignNotSet	: "<Nesetat>",
+DlgTableAlignLeft	: "StÃ¢nga",
+DlgTableAlignCenter	: "Centru",
+DlgTableAlignRight	: "Dreapta",
+DlgTableWidth		: "LÄƒÅ£ime",
+DlgTableWidthPx		: "pixeli",
+DlgTableWidthPc		: "procente",
+DlgTableHeight		: "ÃŽnÄƒlÅ£ime",
+DlgTableCellSpace	: "SpaÅ£iu Ã®ntre celule",
+DlgTableCellPad		: "SpaÅ£iu Ã®n cadrul celulei",
+DlgTableCaption		: "Titlu (Caption)",
+DlgTableSummary		: "Rezumat",
+
+// Table Cell Dialog
+DlgCellTitle		: "ProprietÄƒÅ£ile celulei",
+DlgCellWidth		: "LÄƒÅ£ime",
+DlgCellWidthPx		: "pixeli",
+DlgCellWidthPc		: "procente",
+DlgCellHeight		: "ÃŽnÄƒlÅ£ime",
+DlgCellWordWrap		: "Desparte cuvintele (Wrap)",
+DlgCellWordWrapNotSet	: "<Nesetat>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Nu",
+DlgCellHorAlign		: "Aliniament orizontal",
+DlgCellHorAlignNotSet	: "<Nesetat>",
+DlgCellHorAlignLeft	: "StÃ¢nga",
+DlgCellHorAlignCenter	: "Centru",
+DlgCellHorAlignRight: "Dreapta",
+DlgCellVerAlign		: "Aliniament vertical",
+DlgCellVerAlignNotSet	: "<Nesetat>",
+DlgCellVerAlignTop	: "Sus",
+DlgCellVerAlignMiddle	: "Mijloc",
+DlgCellVerAlignBottom	: "Jos",
+DlgCellVerAlignBaseline	: "Linia de jos (Baseline)",
+DlgCellRowSpan		: "Lungimea Ã®n linii (Span)",
+DlgCellCollSpan		: "Lungimea Ã®n coloane (Span)",
+DlgCellBackColor	: "Culoarea fundalului",
+DlgCellBorderColor	: "Culoarea marginii",
+DlgCellBtnSelect	: "SelectaÅ£i...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "GÄƒseÅŸte ÅŸi Ã®nlocuieÅŸte",
+
+// Find Dialog
+DlgFindTitle		: "GÄƒseÅŸte",
+DlgFindFindBtn		: "GÄƒseÅŸte",
+DlgFindNotFoundMsg	: "Textul specificat nu a fost gÄƒsit.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "GÄƒseÅŸte:",
+DlgReplaceReplaceLbl	: "ÃŽnlocuieÅŸte cu:",
+DlgReplaceCaseChk		: "DeosebeÅŸte majuscule de minuscule (Match case)",
+DlgReplaceReplaceBtn	: "ÃŽnlocuieÅŸte",
+DlgReplaceReplAllBtn	: "ÃŽnlocuieÅŸte tot",
+DlgReplaceWordChk		: "Doar cuvintele Ã®ntregi",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "AdaugÄƒ ca text simplu (Plain Text)",
+PasteFromWord	: "AdaugÄƒ din Word",
+
+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>.",
+DlgPasteSec		: "Din cauza setÄƒrilor de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui sÄƒ adÄƒugaÅ£i din nou datele Ã®n aceastÄƒ fereastrÄƒ.",
+DlgPasteIgnoreFont		: "IgnorÄƒ definiÅ£iile Font Face",
+DlgPasteRemoveStyles	: "Åžterge definiÅ£iile stilurilor",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "Mai multe culori...",
+
+// Document Properties
+DocProps		: "ProprietÄƒÅ£ile documentului",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ProprietÄƒÅ£ile ancorei",
+DlgAnchorName		: "Numele ancorei",
+DlgAnchorErrorName	: "VÄƒ rugÄƒm scrieÅ£i numele ancorei",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nu e Ã®n dicÅ£ionar",
+DlgSpellChangeTo		: "SchimbÄƒ Ã®n",
+DlgSpellBtnIgnore		: "IgnorÄƒ",
+DlgSpellBtnIgnoreAll	: "IgnorÄƒ toate",
+DlgSpellBtnReplace		: "ÃŽnlocuieÅŸte",
+DlgSpellBtnReplaceAll	: "ÃŽnlocuieÅŸte tot",
+DlgSpellBtnUndo			: "Starea anterioarÄƒ (undo)",
+DlgSpellNoSuggestions	: "- FÄƒrÄƒ sugestii -",
+DlgSpellProgress		: "Verificarea textului Ã®n desfÄƒÅŸurare...",
+DlgSpellNoMispell		: "Verificarea textului terminatÄƒ: Nicio greÅŸealÄƒ gÄƒsitÄƒ",
+DlgSpellNoChanges		: "Verificarea textului terminatÄƒ: Niciun cuvÃ¢nt modificat",
+DlgSpellOneChange		: "Verificarea textului terminatÄƒ: Un cuvÃ¢nt modificat",
+DlgSpellManyChanges		: "Verificarea textului terminatÄƒ: 1% cuvinte modificate",
+
+IeSpellDownload			: "Unealta pentru verificat textul (Spell checker) neinstalatÄƒ. DoriÅ£i sÄƒ o descÄƒrcaÅ£i acum?",
+
+// Button Dialog
+DlgButtonText		: "Text (Valoare)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nume",
+DlgCheckboxValue	: "Valoare",
+DlgCheckboxSelected	: "Selectat",
+
+// Form Dialog
+DlgFormName		: "Nume",
+DlgFormAction	: "AcÅ£iune",
+DlgFormMethod	: "MetodÄƒ",
+
+// Select Field Dialog
+DlgSelectName		: "Nume",
+DlgSelectValue		: "Valoare",
+DlgSelectSize		: "MÄƒrime",
+DlgSelectLines		: "linii",
+DlgSelectChkMulti	: "Permite selecÅ£ii multiple",
+DlgSelectOpAvail	: "OpÅ£iuni disponibile",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Valoare",
+DlgSelectBtnAdd		: "AdaugÄƒ",
+DlgSelectBtnModify	: "ModificÄƒ",
+DlgSelectBtnUp		: "Sus",
+DlgSelectBtnDown	: "Jos",
+DlgSelectBtnSetValue : "SeteazÄƒ ca valoare selectatÄƒ",
+DlgSelectBtnDelete	: "Åžterge",
+
+// Textarea Dialog
+DlgTextareaName	: "Nume",
+DlgTextareaCols	: "Coloane",
+DlgTextareaRows	: "Linii",
+
+// Text Field Dialog
+DlgTextName			: "Nume",
+DlgTextValue		: "Valoare",
+DlgTextCharWidth	: "LÄƒrgimea caracterului",
+DlgTextMaxChars		: "Caractere maxime",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "ParolÄƒ",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nume",
+DlgHiddenValue	: "Valoare",
+
+// Bulleted List Dialog
+BulletedListProp	: "ProprietÄƒÅ£ile listei punctate (Bulleted List)",
+NumberedListProp	: "ProprietÄƒÅ£ile listei numerotate (Numbered List)",
+DlgLstStart			: "Start",
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Cerc",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "PÄƒtrat",
+DlgLstTypeNumbers	: "Numere (1, 2, 3)",
+DlgLstTypeLCase		: "Minuscule-litere mici (a, b, c)",
+DlgLstTypeUCase		: "Majuscule (A, B, C)",
+DlgLstTypeSRoman	: "Cifre romane mici (i, ii, iii)",
+DlgLstTypeLRoman	: "Cifre romane mari (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fundal",
+DlgDocColorsTab		: "Culori si margini",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titlul paginii",
+DlgDocLangDir		: "Descrierea limbii",
+DlgDocLangDirLTR	: "stÃ¢nga-dreapta (LTR)",
+DlgDocLangDirRTL	: "dreapta-stÃ¢nga (RTL)",
+DlgDocLangCode		: "Codul limbii",
+DlgDocCharSet		: "Encoding setului de caractere",
+DlgDocCharSetCE		: "Central european",
+DlgDocCharSetCT		: "Chinezesc tradiÅ£ional (Big5)",
+DlgDocCharSetCR		: "Chirilic",
+DlgDocCharSetGR		: "Grecesc",
+DlgDocCharSetJP		: "Japonez",
+DlgDocCharSetKR		: "Corean",
+DlgDocCharSetTR		: "Turcesc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Vest european",
+DlgDocCharSetOther	: "Alt encoding al setului de caractere",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Alt Document Type Heading",
+DlgDocIncXHTML		: "Include declaraÅ£ii XHTML",
+DlgDocBgColor		: "Culoarea fundalului (Background Color)",
+DlgDocBgImage		: "URL-ul imaginii din fundal (Background Image URL)",
+DlgDocBgNoScroll	: "Fundal neflotant, fix (Nonscrolling Background)",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link (LegÄƒturÄƒ web)",
+DlgDocCVisited		: "Link (LegÄƒturÄƒ web) vizitat",
+DlgDocCActive		: "Link (LegÄƒturÄƒ web) activ",
+DlgDocMargins		: "Marginile paginii",
+DlgDocMaTop			: "Sus",
+DlgDocMaLeft		: "StÃ¢nga",
+DlgDocMaRight		: "Dreapta",
+DlgDocMaBottom		: "Jos",
+DlgDocMeIndex		: "Cuvinte cheie dupÄƒ care se va indexa documentul (separate prin virgulÄƒ)",
+DlgDocMeDescr		: "Descrierea documentului",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Drepturi de autor",
+DlgDocPreview		: "Previzualizare",
+
+// Templates Dialog
+Templates			: "Template-uri (ÅŸabloane)",
+DlgTemplatesTitle	: "Template-uri (ÅŸabloane) de conÅ£inut",
+DlgTemplatesSelMsg	: "VÄƒ rugÄƒm selectaÅ£i template-ul (ÅŸablonul) ce se va deschide Ã®n editor<br>(conÅ£inutul actual va fi pierdut):",
+DlgTemplatesLoading	: "Se Ã®ncarcÄƒ lista cu template-uri (ÅŸabloane). VÄƒ rugÄƒm aÅŸteptaÅ£i...",
+DlgTemplatesNoTpl	: "(Niciun template (ÅŸablon) definit)",
+DlgTemplatesReplace	: "ÃŽnlocuieÅŸte cuprinsul actual",
+
+// About Dialog
+DlgAboutAboutTab	: "Despre",
+DlgAboutBrowserInfoTab	: "InformaÅ£ii browser",
+DlgAboutLicenseTab	: "LicenÅ£Äƒ",
+DlgAboutVersion		: "versiune",
+DlgAboutInfo		: "Pentru informaÅ£ii amÄƒnunÅ£ite, vizitaÅ£i"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt-br.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Brazilian Portuguese language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ocultar Barra de Ferramentas",
+ToolbarExpand		: "Exibir Barra de Ferramentas",
+
+// Toolbar Items and Context Menu
+Save				: "Salvar",
+NewPage				: "Novo",
+Preview				: "Visualizar",
+Cut					: "Recortar",
+Copy				: "Copiar",
+Paste				: "Colar",
+PasteText			: "Colar como Texto sem FormataÃ§Ã£o",
+PasteWord			: "Colar do Word",
+Print				: "Imprimir",
+SelectAll			: "Selecionar Tudo",
+RemoveFormat		: "Remover FormataÃ§Ã£o",
+InsertLinkLbl		: "Hiperlink",
+InsertLink			: "Inserir/Editar Hiperlink",
+RemoveLink			: "Remover Hiperlink",
+Anchor				: "Inserir/Editar Ã‚ncora",
+AnchorDelete		: "Remover Ã‚ncora",
+InsertImageLbl		: "Figura",
+InsertImage			: "Inserir/Editar Figura",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insere/Edita Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Inserir/Editar Tabela",
+InsertLineLbl		: "Linha",
+InsertLine			: "Inserir Linha Horizontal",
+InsertSpecialCharLbl: "Caracteres Especiais",
+InsertSpecialChar	: "Inserir Caractere Especial",
+InsertSmileyLbl		: "Emoticon",
+InsertSmiley		: "Inserir Emoticon",
+About				: "Sobre FCKeditor",
+Bold				: "Negrito",
+Italic				: "ItÃ¡lico",
+Underline			: "Sublinhado",
+StrikeThrough		: "Tachado",
+Subscript			: "Subscrito",
+Superscript			: "Sobrescrito",
+LeftJustify			: "Alinhar Esquerda",
+CenterJustify		: "Centralizar",
+RightJustify		: "Alinhar Direita",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Diminuir Recuo",
+IncreaseIndent		: "Aumentar Recuo",
+Blockquote			: "Recuo",
+Undo				: "Desfazer",
+Redo				: "Refazer",
+NumberedListLbl		: "NumeraÃ§Ã£o",
+NumberedList		: "Inserir/Remover NumeraÃ§Ã£o",
+BulletedListLbl		: "Marcadores",
+BulletedList		: "Inserir/Remover Marcadores",
+ShowTableBorders	: "Exibir Bordas da Tabela",
+ShowDetails			: "Exibir Detalhes",
+Style				: "Estilo",
+FontFormat			: "FormataÃ§Ã£o",
+Font				: "Fonte",
+FontSize			: "Tamanho",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor do Plano de Fundo",
+Source				: "CÃ³digo-Fonte",
+Find				: "Localizar",
+Replace				: "Substituir",
+SpellCheck			: "Verificar Ortografia",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de PÃ¡gina",
+PageBreak			: "Inserir Quebra de PÃ¡gina",
+
+Form			: "FormulÃ¡rio",
+Checkbox		: "Caixa de SeleÃ§Ã£o",
+RadioButton		: "BotÃ£o de OpÃ§Ã£o",
+TextField		: "Caixa de Texto",
+Textarea		: "Ãrea de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "BotÃ£o",
+SelectionField	: "Caixa de Listagem",
+ImageButton		: "BotÃ£o de Imagem",
+
+FitWindow		: "Maximizar o tamanho do editor",
+ShowBlocks		: "Mostrar blocos",
+
+// Context Menu
+EditLink			: "Editar Hiperlink",
+CellCM				: "CÃ©lula",
+RowCM				: "Linha",
+ColumnCM			: "Coluna",
+InsertRowAfter		: "Inserir linha abaixo",
+InsertRowBefore		: "Inserir linha acima",
+DeleteRows			: "Remover Linhas",
+InsertColumnAfter	: "Inserir coluna Ã  direita",
+InsertColumnBefore	: "Inserir coluna Ã  esquerda",
+DeleteColumns		: "Remover Colunas",
+InsertCellAfter		: "Inserir cÃ©lula Ã  direita",
+InsertCellBefore	: "Inserir cÃ©lula Ã  esquerda",
+DeleteCells			: "Remover CÃ©lulas",
+MergeCells			: "Mesclar CÃ©lulas",
+MergeRight			: "Mesclar com cÃ©lula Ã  direita",
+MergeDown			: "Mesclar com cÃ©lula abaixo",
+HorizontalSplitCell	: "Dividir cÃ©lula horizontalmente",
+VerticalSplitCell	: "Dividir cÃ©lula verticalmente",
+TableDelete			: "Apagar Tabela",
+CellProperties		: "Formatar CÃ©lula",
+TableProperties		: "Formatar Tabela",
+ImageProperties		: "Formatar Figura",
+FlashProperties		: "Propriedades Flash",
+
+AnchorProp			: "Formatar Ã‚ncora",
+ButtonProp			: "Formatar BotÃ£o",
+CheckboxProp		: "Formatar Caixa de SeleÃ§Ã£o",
+HiddenFieldProp		: "Formatar Campo Oculto",
+RadioButtonProp		: "Formatar BotÃ£o de OpÃ§Ã£o",
+ImageButtonProp		: "Formatar BotÃ£o de Imagem",
+TextFieldProp		: "Formatar Caixa de Texto",
+SelectionFieldProp	: "Formatar Caixa de Listagem",
+TextareaProp		: "Formatar Ãrea de Texto",
+FormProp			: "Formatar FormulÃ¡rio",
+
+FontFormats			: "Normal;Formatado;EndereÃ§o;TÃ­tulo 1;TÃ­tulo 2;TÃ­tulo 3;TÃ­tulo 4;TÃ­tulo 5;TÃ­tulo 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processando XHTML. Por favor, aguarde...",
+Done				: "Pronto",
+PasteWordConfirm	: "O texto que vocÃª deseja colar parece ter sido copiado do Word. VocÃª gostaria de remover a formataÃ§Ã£o antes de colar?",
+NotCompatiblePaste	: "Este comando estÃ¡ disponÃ­vel para o navegador Internet Explorer 5.5 ou superior. VocÃª gostaria de colar sem remover a formataÃ§Ã£o?",
+UnknownToolbarItem	: "O item da barra de ferramentas \"%1\" nÃ£o Ã© reconhecido",
+UnknownCommand		: "O comando \"%1\" nÃ£o Ã© reconhecido",
+NotImplemented		: "O comando nÃ£o foi implementado",
+UnknownToolbarSet	: "A barra de ferramentas \"%1\" nÃ£o existe",
+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.",
+BrowseServerBlocked : "Os recursos do browser nÃ£o puderam ser abertos. Tenha certeza que todos os bloqueadores de popup estÃ£o desabilitados.",
+DialogBlocked		: "NÃ£o foi possÃ­vel abrir a janela de diÃ¡logo. Tenha certeza que todos os bloqueadores de popup estÃ£o desabilitados.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Fechar",
+DlgBtnBrowseServer	: "Localizar no Servidor",
+DlgAdvancedTag		: "AvanÃ§ado",
+DlgOpOther			: "<Outros>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Inserir a URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nÃ£o ajustado>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "DireÃ§Ã£o do idioma",
+DlgGenLangDirLtr	: "Esquerda para Direita (LTR)",
+DlgGenLangDirRtl	: "Direita para Esquerda (RTL)",
+DlgGenLangCode		: "Idioma",
+DlgGenAccessKey		: "Chave de Acesso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Ãndice de TabulaÃ§Ã£o",
+DlgGenLongDescr		: "DescriÃ§Ã£o da URL",
+DlgGenClass			: "Classe de Folhas de Estilo",
+DlgGenTitle			: "TÃ­tulo",
+DlgGenContType		: "Tipo de ConteÃºdo",
+DlgGenLinkCharset	: "Conjunto de Caracteres do Hiperlink",
+DlgGenStyle			: "Estilos",
+
+// Image Dialog
+DlgImgTitle			: "Formatar Figura",
+DlgImgInfoTab		: "InformaÃ§Ãµes da Figura",
+DlgImgBtnUpload		: "Enviar para o Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Submeter",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Manter proporÃ§Ãµes",
+DlgBtnResetSize		: "Redefinir para o Tamanho Original",
+DlgImgBorder		: "Borda",
+DlgImgHSpace		: "Horizontal",
+DlgImgVSpace		: "Vertical",
+DlgImgAlign			: "Alinhamento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Inferior Absoluto",
+DlgImgAlignAbsMiddle: "Centralizado Absoluto",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Inferior",
+DlgImgAlignMiddle	: "Centralizado",
+DlgImgAlignRight	: "Direita",
+DlgImgAlignTextTop	: "Superior Absoluto",
+DlgImgAlignTop		: "Superior",
+DlgImgPreview		: "VisualizaÃ§Ã£o",
+DlgImgAlertUrl		: "Por favor, digite o URL da figura.",
+DlgImgLinkTab		: "Hiperlink",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades Flash",
+DlgFlashChkPlay		: "Tocar Automaticamente",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Habilita Menu Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar tudo",
+DlgFlashScaleNoBorder	: "Sem Borda",
+DlgFlashScaleFit	: "Escala Exata",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hiperlink",
+DlgLnkInfoTab		: "InformaÃ§Ãµes",
+DlgLnkTargetTab		: "Destino",
+
+DlgLnkType			: "Tipo de hiperlink",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ã‚ncora nesta pÃ¡gina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL do hiperlink",
+DlgLnkAnchorSel		: "Selecione uma Ã¢ncora",
+DlgLnkAnchorByName	: "Pelo Nome da Ã¢ncora",
+DlgLnkAnchorById	: "Pelo Id do Elemento",
+DlgLnkNoAnchors		: "(NÃ£o hÃ¡ Ã¢ncoras disponÃ­veis neste documento)",
+DlgLnkEMail			: "EndereÃ§o E-Mail",
+DlgLnkEMailSubject	: "Assunto da Mensagem",
+DlgLnkEMailBody		: "Corpo da Mensagem",
+DlgLnkUpload		: "Enviar ao Servidor",
+DlgLnkBtnUpload		: "Enviar ao Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<janela popup>",
+DlgLnkTargetBlank	: "Nova Janela (_blank)",
+DlgLnkTargetParent	: "Janela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma Janela (_self)",
+DlgLnkTargetTop		: "Janela Superior (_top)",
+DlgLnkTargetFrameName	: "Nome do Frame de Destino",
+DlgLnkPopWinName	: "Nome da Janela Pop-up",
+DlgLnkPopWinFeat	: "Atributos da Janela Pop-up",
+DlgLnkPopResize		: "RedimensionÃ¡vel",
+DlgLnkPopLocation	: "Barra de EndereÃ§os",
+DlgLnkPopMenu		: "Barra de Menus",
+DlgLnkPopScroll		: "Barras de Rolagem",
+DlgLnkPopStatus		: "Barra de Status",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "Modo Tela Cheia (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "Esquerda",
+DlgLnkPopTop		: "Superior",
+
+DlnLnkMsgNoUrl		: "Por favor, digite o endereÃ§o do Hiperlink",
+DlnLnkMsgNoEMail	: "Por favor, digite o endereÃ§o de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor, selecione uma Ã¢ncora",
+DlnLnkMsgInvPopName	: "O nome da janela popup deve comeÃ§ar com uma letra ou sublinhado (_) e nÃ£o pode conter espaÃ§os",
+
+// Color Dialog
+DlgColorTitle		: "Selecione uma Cor",
+DlgColorBtnClear	: "Limpar",
+DlgColorHighlight	: "VisualizaÃ§Ã£o",
+DlgColorSelected	: "Selecionada",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserir Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecione um Caractere Especial",
+
+// Table Dialog
+DlgTableTitle		: "Formatar Tabela",
+DlgTableRows		: "Linhas",
+DlgTableColumns		: "Colunas",
+DlgTableBorder		: "Borda",
+DlgTableAlign		: "Alinhamento",
+DlgTableAlignNotSet	: "<NÃ£o ajustado>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centralizado",
+DlgTableAlignRight	: "Direita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "EspaÃ§amento",
+DlgTableCellPad		: "Enchimento",
+DlgTableCaption		: "Legenda",
+DlgTableSummary		: "Resumo",
+
+// Table Cell Dialog
+DlgCellTitle		: "Formatar cÃ©lula",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Quebra de Linha",
+DlgCellWordWrapNotSet	: "<NÃ£o ajustado>",
+DlgCellWordWrapYes	: "Sim",
+DlgCellWordWrapNo	: "NÃ£o",
+DlgCellHorAlign		: "Alinhamento Horizontal",
+DlgCellHorAlignNotSet	: "<NÃ£o ajustado>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centralizado",
+DlgCellHorAlignRight: "Direita",
+DlgCellVerAlign		: "Alinhamento Vertical",
+DlgCellVerAlignNotSet	: "<NÃ£o ajustado>",
+DlgCellVerAlignTop	: "Superior",
+DlgCellVerAlignMiddle	: "Centralizado",
+DlgCellVerAlignBottom	: "Inferior",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Transpor Linhas",
+DlgCellCollSpan		: "Transpor Colunas",
+DlgCellBackColor	: "Cor do Plano de Fundo",
+DlgCellBorderColor	: "Cor da Borda",
+DlgCellBtnSelect	: "Selecionar...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Localizar e Substituir",
+
+// Find Dialog
+DlgFindTitle		: "Localizar...",
+DlgFindFindBtn		: "Localizar",
+DlgFindNotFoundMsg	: "O texto especificado nÃ£o foi encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Procurar por:",
+DlgReplaceReplaceLbl	: "Substituir por:",
+DlgReplaceCaseChk		: "Coincidir MaiÃºsculas/MinÃºsculas",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substituir Tudo",
+DlgReplaceWordChk		: "Coincidir a palavra inteira",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Colar como Texto sem FormataÃ§Ã£o",
+PasteFromWord	: "Colar do Word",
+
+DlgPasteMsg2	: "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.",
+DlgPasteSec		: "As configuraÃ§Ãµes de seguranÃ§a do seu navegador nÃ£o permitem que o editor acesse os dados da Ã¡rea de transferÃªncia diretamente. Por favor cole o conteÃºdo novamente nesta janela.",
+DlgPasteIgnoreFont		: "Ignorar definiÃ§Ãµes de fonte",
+DlgPasteRemoveStyles	: "Remove definiÃ§Ãµes de estilo",
+
+// Color Picker
+ColorAutomatic	: "AutomÃ¡tico",
+ColorMoreColors	: "Mais Cores...",
+
+// Document Properties
+DocProps		: "Propriedades Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Formatar Ã‚ncora",
+DlgAnchorName		: "Nome da Ã‚ncora",
+DlgAnchorErrorName	: "Por favor, digite o nome da Ã¢ncora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "NÃ£o encontrada",
+DlgSpellChangeTo		: "Alterar para",
+DlgSpellBtnIgnore		: "Ignorar uma vez",
+DlgSpellBtnIgnoreAll	: "Ignorar Todas",
+DlgSpellBtnReplace		: "Alterar",
+DlgSpellBtnReplaceAll	: "Alterar Todas",
+DlgSpellBtnUndo			: "Desfazer",
+DlgSpellNoSuggestions	: "-sem sugestÃµes de ortografia-",
+DlgSpellProgress		: "VerificaÃ§Ã£o ortogrÃ¡fica em andamento...",
+DlgSpellNoMispell		: "VerificaÃ§Ã£o encerrada: NÃ£o foram encontrados erros de ortografia",
+DlgSpellNoChanges		: "VerificaÃ§Ã£o ortogrÃ¡fica encerrada: NÃ£o houve alteraÃ§Ãµes",
+DlgSpellOneChange		: "VerificaÃ§Ã£o ortogrÃ¡fica encerrada: Uma palavra foi alterada",
+DlgSpellManyChanges		: "VerificaÃ§Ã£o ortogrÃ¡fica encerrada: %1 foram alteradas",
+
+IeSpellDownload			: "A verificaÃ§Ã£o ortogrÃ¡fica nÃ£o foi instalada. VocÃª gostaria de realizar o download agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "BotÃ£o",
+DlgButtonTypeSbm	: "Enviar",
+DlgButtonTypeRst	: "Limpar",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Selecionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Action",
+DlgFormMethod	: "MÃ©todo",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamanho",
+DlgSelectLines		: "linhas",
+DlgSelectChkMulti	: "Permitir mÃºltiplas seleÃ§Ãµes",
+DlgSelectOpAvail	: "OpÃ§Ãµes disponÃ­veis",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Adicionar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Para cima",
+DlgSelectBtnDown	: "Para baixo",
+DlgSelectBtnSetValue : "Definir como selecionado",
+DlgSelectBtnDelete	: "Remover",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colunas",
+DlgTextareaRows	: "Linhas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Comprimento (em caracteres)",
+DlgTextMaxChars		: "NÃºmero MÃ¡ximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Senha",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Formatar Marcadores",
+NumberedListProp	: "Formatar NumeraÃ§Ã£o",
+DlgLstStart			: "Iniciar",
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "CÃ­rculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrado",
+DlgLstTypeNumbers	: "NÃºmeros (1, 2, 3)",
+DlgLstTypeLCase		: "Letras MinÃºsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras MaiÃºsculas (A, B, C)",
+DlgLstTypeSRoman	: "NÃºmeros Romanos MinÃºsculos (i, ii, iii)",
+DlgLstTypeLRoman	: "NÃºmeros Romanos MaiÃºsculos (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Geral",
+DlgDocBackTab		: "Plano de Fundo",
+DlgDocColorsTab		: "Cores e Margens",
+DlgDocMetaTab		: "Meta Dados",
+
+DlgDocPageTitle		: "TÃ­tulo da PÃ¡gina",
+DlgDocLangDir		: "DireÃ§Ã£o do Idioma",
+DlgDocLangDirLTR	: "Esquerda para Direita (LTR)",
+DlgDocLangDirRTL	: "Direita para Esquerda (RTL)",
+DlgDocLangCode		: "CÃ³digo do Idioma",
+DlgDocCharSet		: "CodificaÃ§Ã£o de Caracteres",
+DlgDocCharSetCE		: "Europa Central",
+DlgDocCharSetCT		: "ChinÃªs Tradicional (Big5)",
+DlgDocCharSetCR		: "CirÃ­lico",
+DlgDocCharSetGR		: "Grego",
+DlgDocCharSetJP		: "JaponÃªs",
+DlgDocCharSetKR		: "Coreano",
+DlgDocCharSetTR		: "Turco",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europa Ocidental",
+DlgDocCharSetOther	: "Outra CodificaÃ§Ã£o de Caracteres",
+
+DlgDocDocType		: "CabeÃ§alho Tipo de Documento",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Incluir DeclaraÃ§Ãµes XHTML",
+DlgDocBgColor		: "Cor do Plano de Fundo",
+DlgDocBgImage		: "URL da Imagem de Plano de Fundo",
+DlgDocBgNoScroll	: "Plano de Fundo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "Hiperlink",
+DlgDocCVisited		: "Hiperlink Visitado",
+DlgDocCActive		: "Hiperlink Ativo",
+DlgDocMargins		: "Margens da PÃ¡gina",
+DlgDocMaTop			: "Superior",
+DlgDocMaLeft		: "Inferior",
+DlgDocMaRight		: "Direita",
+DlgDocMaBottom		: "Inferior",
+DlgDocMeIndex		: "Palavras-chave de IndexaÃ§Ã£o do Documento (separadas por vÃ­rgula)",
+DlgDocMeDescr		: "DescriÃ§Ã£o do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Direitos Autorais",
+DlgDocPreview		: "Visualizar",
+
+// Templates Dialog
+Templates			: "Modelos de layout",
+DlgTemplatesTitle	: "Modelo de layout do conteÃºdo",
+DlgTemplatesSelMsg	: "Selecione um modelo de layout para ser aberto no editor<br>(o conteÃºdo atual serÃ¡ perdido):",
+DlgTemplatesLoading	: "Carregando a lista de modelos de layout. Aguarde...",
+DlgTemplatesNoTpl	: "(NÃ£o foram definidos modelos de layout)",
+DlgTemplatesReplace	: "Substituir o conteÃºdo atual",
+
+// About Dialog
+DlgAboutAboutTab	: "Sobre",
+DlgAboutBrowserInfoTab	: "InformaÃ§Ãµes do Navegador",
+DlgAboutLicenseTab	: "LicenÃ§a",
+DlgAboutVersion		: "versÃ£o",
+DlgAboutInfo		: "Para maiores informaÃ§Ãµes visite"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ru.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ru.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ru.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Russian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ð¡Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð²",
+ToolbarExpand		: "Ð Ð°Ð·Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ð¿Ð°Ð½ÐµÐ»ÑŒ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð²",
+
+// Toolbar Items and Context Menu
+Save				: "Ð¡Ð¾Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒ",
+NewPage				: "ÐÐ¾Ð²Ð°Ñ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°",
+Preview				: "ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ Ð¿Ñ€Ð¾ÑÐ¼Ð¾Ñ‚Ñ€",
+Cut					: "Ð’Ñ‹Ñ€ÐµÐ·Ð°Ñ‚ÑŒ",
+Copy				: "ÐšÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ",
+Paste				: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ",
+PasteText			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ‚ÐµÐºÑÑ‚",
+PasteWord			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ð¸Ð· Word",
+Print				: "ÐŸÐµÑ‡Ð°Ñ‚ÑŒ",
+SelectAll			: "Ð’Ñ‹Ð´ÐµÐ»Ð¸Ñ‚ÑŒ Ð²ÑÐµ",
+RemoveFormat		: "Ð£Ð±Ñ€Ð°Ñ‚ÑŒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ",
+InsertLinkLbl		: "Ð¡ÑÑ‹Ð»ÐºÐ°",
+InsertLink			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ÑÑÑ‹Ð»ÐºÑƒ",
+RemoveLink			: "Ð£Ð±Ñ€Ð°Ñ‚ÑŒ ÑÑÑ‹Ð»ÐºÑƒ",
+Anchor				: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ÑÐºÐ¾Ñ€ÑŒ",
+AnchorDelete		: "Ð£Ð±Ñ€Ð°Ñ‚ÑŒ ÑÐºÐ¾Ñ€ÑŒ",
+InsertImageLbl		: "Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+InsertImage			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Flash",
+InsertTableLbl		: "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ð°",
+InsertTable			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñƒ",
+InsertLineLbl		: "Ð›Ð¸Ð½Ð¸Ñ",
+InsertLine			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½ÑƒÑŽ Ð»Ð¸Ð½Ð¸ÑŽ",
+InsertSpecialCharLbl: "Ð¡Ð¿ÐµÑ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSpecialChar	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSmileyLbl		: "Ð¡Ð¼Ð°Ð¹Ð»Ð¸Ðº",
+InsertSmiley		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÐ¼Ð°Ð¹Ð»Ð¸Ðº",
+About				: "Ðž FCKeditor",
+Bold				: "Ð–Ð¸Ñ€Ð½Ñ‹Ð¹",
+Italic				: "ÐšÑƒÑ€ÑÐ¸Ð²",
+Underline			: "ÐŸÐ¾Ð´Ñ‡ÐµÑ€ÐºÐ½ÑƒÑ‚Ñ‹Ð¹",
+StrikeThrough		: "Ð—Ð°Ñ‡ÐµÑ€ÐºÐ½ÑƒÑ‚Ñ‹Ð¹",
+Subscript			: "ÐŸÐ¾Ð´ÑÑ‚Ñ€Ð¾Ñ‡Ð½Ñ‹Ð¹ Ð¸Ð½Ð´ÐµÐºÑ",
+Superscript			: "ÐÐ°Ð´ÑÑ‚Ñ€Ð¾Ñ‡Ð½Ñ‹Ð¹ Ð¸Ð½Ð´ÐµÐºÑ",
+LeftJustify			: "ÐŸÐ¾ Ð»ÐµÐ²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+CenterJustify		: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+RightJustify		: "ÐŸÐ¾ Ð¿Ñ€Ð°Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+BlockJustify		: "ÐŸÐ¾ ÑˆÐ¸Ñ€Ð¸Ð½Ðµ",
+DecreaseIndent		: "Ð£Ð¼ÐµÐ½ÑŒÑˆÐ¸Ñ‚ÑŒ Ð¾Ñ‚ÑÑ‚ÑƒÐ¿",
+IncreaseIndent		: "Ð£Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ñ‚ÑŒ Ð¾Ñ‚ÑÑ‚ÑƒÐ¿",
+Blockquote			: "Ð¦Ð¸Ñ‚Ð°Ñ‚Ð°",
+Undo				: "ÐžÑ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+Redo				: "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚ÑŒ",
+NumberedListLbl		: "ÐÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+NumberedList		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+BulletedListLbl		: "ÐœÐ°Ñ€ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+BulletedList		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ/Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹ ÑÐ¿Ð¸ÑÐ¾Ðº",
+ShowTableBorders	: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ñ‹ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹",
+ShowDetails			: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð´ÐµÑ‚Ð°Ð»Ð¸",
+Style				: "Ð¡Ñ‚Ð¸Ð»ÑŒ",
+FontFormat			: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ",
+Font				: "Ð¨Ñ€Ð¸Ñ„Ñ‚",
+FontSize			: "Ð Ð°Ð·Ð¼ÐµÑ€",
+TextColor			: "Ð¦Ð²ÐµÑ‚ Ñ‚ÐµÐºÑÑ‚Ð°",
+BGColor				: "Ð¦Ð²ÐµÑ‚ Ñ„Ð¾Ð½Ð°",
+Source				: "Ð˜ÑÑ‚Ð¾Ñ‡Ð½Ð¸Ðº",
+Find				: "ÐÐ°Ð¹Ñ‚Ð¸",
+Replace				: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+SpellCheck			: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸ÑŽ",
+UniversalKeyboard	: "Ð£Ð½Ð¸Ð²ÐµÑ€ÑÐ°Ð»ÑŒÐ½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°",
+PageBreakLbl		: "Ð Ð°Ð·Ñ€Ñ‹Ð² ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹",
+PageBreak			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ñ€Ð°Ð·Ñ€Ñ‹Ð² ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹",
+
+Form			: "Ð¤Ð¾Ñ€Ð¼Ð°",
+Checkbox		: "Ð¤Ð»Ð°Ð³Ð¾Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°",
+RadioButton		: "ÐšÐ½Ð¾Ð¿ÐºÐ° Ð²Ñ‹Ð±Ð¾Ñ€Ð°",
+TextField		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ðµ Ð¿Ð¾Ð»Ðµ",
+Textarea		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ",
+HiddenField		: "Ð¡ÐºÑ€Ñ‹Ñ‚Ð¾Ðµ Ð¿Ð¾Ð»Ðµ",
+Button			: "ÐšÐ½Ð¾Ð¿ÐºÐ°",
+SelectionField	: "Ð¡Ð¿Ð¸ÑÐ¾Ðº",
+ImageButton		: "ÐšÐ½Ð¾Ð¿ÐºÐ° Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼",
+
+FitWindow		: "Ð Ð°Ð·Ð²ÐµÑ€Ð½ÑƒÑ‚ÑŒ Ð¾ÐºÐ½Ð¾ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°",
+ShowBlocks		: "ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ Ð±Ð»Ð¾ÐºÐ¸",
+
+// Context Menu
+EditLink			: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÑÑ‹Ð»ÐºÑƒ",
+CellCM				: "Ð¯Ñ‡ÐµÐ¹ÐºÐ°",
+RowCM				: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ°",
+ColumnCM			: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ°",
+InsertRowAfter		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÑ‚Ñ€Ð¾ÐºÑƒ Ð¿Ð¾ÑÐ»Ðµ",
+InsertRowBefore		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÑ‚Ñ€Ð¾ÐºÑƒ Ð´Ð¾",
+DeleteRows			: "Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ ÑÑ‚Ñ€Ð¾ÐºÐ¸",
+InsertColumnAfter	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÐºÐ¾Ð»Ð¾Ð½ÐºÑƒ Ð¿Ð¾ÑÐ»Ðµ",
+InsertColumnBefore	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÐºÐ¾Ð»Ð¾Ð½ÐºÑƒ Ð´Ð¾",
+DeleteColumns		: "Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+InsertCellAfter		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÑƒ Ð¿Ð¾ÑÐ»Ðµ",
+InsertCellBefore	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÑƒ Ð´Ð¾",
+DeleteCells			: "Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÐ¸",
+MergeCells			: "Ð¡Ð¾ÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÐ¸",
+MergeRight			: "Ð¡Ð¾ÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ Ð²Ð¿Ñ€Ð°Ð²Ð¾",
+MergeDown			: "Ð¡Ð¾ÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ Ð²Ð½Ð¸Ð·",
+HorizontalSplitCell	: "Ð Ð°Ð·Ð±Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÑƒ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾",
+VerticalSplitCell	: "Ð Ð°Ð·Ð±Ð¸Ñ‚ÑŒ ÑÑ‡ÐµÐ¹ÐºÑƒ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾",
+TableDelete			: "Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñƒ",
+CellProperties		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÑ‡ÐµÐ¹ÐºÐ¸",
+TableProperties		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹",
+ImageProperties		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ",
+FlashProperties		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Flash",
+
+AnchorProp			: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÐºÐ¾Ñ€Ñ",
+ButtonProp			: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÐºÐ½Ð¾Ð¿ÐºÐ¸",
+CheckboxProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ„Ð»Ð°Ð³Ð¾Ð²Ð¾Ð¹ ÐºÐ½Ð¾Ð¿ÐºÐ¸",
+HiddenFieldProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ",
+RadioButtonProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ð²Ñ‹Ð±Ð¾Ñ€Ð°",
+ImageButtonProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼",
+TextFieldProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ",
+SelectionFieldProp	: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÐ¿Ð¸ÑÐºÐ°",
+TextareaProp		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ð¹ Ð¾Ð±Ð»Ð°ÑÑ‚Ð¸",
+FormProp			: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ„Ð¾Ñ€Ð¼Ñ‹",
+
+FontFormats			: "ÐÐ¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¹;Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¹;ÐÐ´Ñ€ÐµÑ;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 1;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 2;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 3;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 4;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 5;Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº 6;ÐÐ¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¹ (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° XHTML. ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð¸Ñ‚Ðµ...",
+Done				: "Ð¡Ð´ÐµÐ»Ð°Ð½Ð¾",
+PasteWordConfirm	: "Ð¢ÐµÐºÑÑ‚, ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¹ Ð²Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ, Ð¿Ð¾Ñ…Ð¾Ð¶ Ð½Ð° ÐºÐ¾Ð¿Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¹ Ð¸Ð· Word. Ð’Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð¾Ñ‡Ð¸ÑÑ‚Ð¸Ñ‚ÑŒ ÐµÐ³Ð¾ Ð¿ÐµÑ€ÐµÐ´ Ð²ÑÑ‚Ð°Ð²ÐºÐ¾Ð¹?",
+NotCompatiblePaste	: "Ð­Ñ‚Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ð° Ð´Ð»Ñ Internet Explorer Ð²ÐµÑ€ÑÐ¸Ð¸ 5.5 Ð¸Ð»Ð¸ Ð²Ñ‹ÑˆÐµ. Ð’Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ð±ÐµÐ· Ð¾Ñ‡Ð¸ÑÑ‚ÐºÐ¸?",
+UnknownToolbarItem	: "ÐÐµ Ð¸Ð·Ð²ÐµÑÑ‚Ð½Ñ‹Ð¹ ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚ Ð¿Ð°Ð½ÐµÐ»Ð¸ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² \"%1\"",
+UnknownCommand		: "ÐÐµ Ð¸Ð·Ð²ÐµÑÑ‚Ð½Ð¾Ðµ Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹ \"%1\"",
+NotImplemented		: "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð° Ð½Ðµ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð°",
+UnknownToolbarSet	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² \"%1\" Ð½Ðµ ÑÑƒÑ‰ÐµÑÑ‚Ð²ÑƒÐµÑ‚",
+NoActiveX			: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚Ð¸ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð¼Ð¾Ð³ÑƒÑ‚ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡Ð¸Ð²Ð°Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ ÑÐ²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°. Ð’Ñ‹ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð¾Ð¿Ñ†Ð¸ÑŽ \"Ð—Ð°Ð¿ÑƒÑÐºÐ°Ñ‚ÑŒ ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ‹ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ActiveX Ð¸ Ð¿Ð»ÑƒÐ³Ð¸Ð½Ñ‹\". Ð’Ñ‹ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð²Ð¸Ð´ÐµÑ‚ÑŒ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ð¸ Ð·Ð°Ð¼ÐµÑ‡Ð°Ñ‚ÑŒ Ð¾Ñ‚ÑÑƒÑ‚ÑÑ‚Ð²Ð¸Ðµ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑ‚ÐµÐ¹.",
+BrowseServerBlocked : "Ð ÐµÑÑƒÑ€ÑÑ‹ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð¼Ð¾Ð³ÑƒÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ Ñ‡Ñ‚Ð¾ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ Ð²ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰Ð¸Ñ… Ð¾ÐºÐ¾Ð½ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹.",
+DialogBlocked		: "ÐÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ Ð¾ÐºÐ½Ð¾ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð°. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ Ñ‡Ñ‚Ð¾ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ Ð²ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰Ð¸Ñ… Ð¾ÐºÐ¾Ð½ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹.",
+
+// Dialogs
+DlgBtnOK			: "ÐžÐš",
+DlgBtnCancel		: "ÐžÑ‚Ð¼ÐµÐ½Ð°",
+DlgBtnClose			: "Ð—Ð°ÐºÑ€Ñ‹Ñ‚ÑŒ",
+DlgBtnBrowseServer	: "ÐŸÑ€Ð¾ÑÐ¼Ð¾Ñ‚Ñ€ÐµÑ‚ÑŒ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€Ðµ",
+DlgAdvancedTag		: "Ð Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ‹Ð¹",
+DlgOpOther			: "<Ð”Ñ€ÑƒÐ³Ð¾Ðµ>",
+DlgInfoTab			: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ",
+DlgAlertUrl			: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²ÑÑ‚Ð°Ð²ÑŒÑ‚Ðµ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¾>",
+DlgGenId			: "Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€",
+DlgGenLangDir		: "ÐÐ°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ ÑÐ·Ñ‹ÐºÐ°",
+DlgGenLangDirLtr	: "Ð¡Ð»ÐµÐ²Ð° Ð½Ð° Ð¿Ñ€Ð°Ð²Ð¾ (LTR)",
+DlgGenLangDirRtl	: "Ð¡Ð¿Ñ€Ð°Ð²Ð° Ð½Ð° Ð»ÐµÐ²Ð¾ (RTL)",
+DlgGenLangCode		: "Ð¯Ð·Ñ‹Ðº",
+DlgGenAccessKey		: "Ð“Ð¾Ñ€ÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°",
+DlgGenName			: "Ð˜Ð¼Ñ",
+DlgGenTabIndex		: "ÐŸÐ¾ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾ÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð°",
+DlgGenLongDescr		: "Ð”Ð»Ð¸Ð½Ð½Ð¾Ðµ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ðµ URL",
+DlgGenClass			: "ÐšÐ»Ð°ÑÑ CSS",
+DlgGenTitle			: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+DlgGenContType		: "Ð¢Ð¸Ð¿ ÑÐ¾Ð´ÐµÑ€Ð¶Ð¸Ð¼Ð¾Ð³Ð¾",
+DlgGenLinkCharset	: "ÐšÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ°",
+DlgGenStyle			: "Ð¡Ñ‚Ð¸Ð»ÑŒ CSS",
+
+// Image Dialog
+DlgImgTitle			: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ",
+DlgImgInfoTab		: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ð¸",
+DlgImgBtnUpload		: "ÐŸÐ¾ÑÐ»Ð°Ñ‚ÑŒ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ð—Ð°ÐºÐ°Ñ‡Ð°Ñ‚ÑŒ",
+DlgImgAlt			: "ÐÐ»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¹ Ñ‚ÐµÐºÑÑ‚",
+DlgImgWidth			: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgImgHeight		: "Ð’Ñ‹ÑÐ¾Ñ‚Ð°",
+DlgImgLockRatio		: "Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÑÑ‚ÑŒ Ð¿Ñ€Ð¾Ð¿Ð¾Ñ€Ñ†Ð¸Ð¸",
+DlgBtnResetSize		: "Ð¡Ð±Ñ€Ð¾ÑÐ¸Ñ‚ÑŒ Ñ€Ð°Ð·Ð¼ÐµÑ€",
+DlgImgBorder		: "Ð‘Ð¾Ñ€Ð´ÑŽÑ€",
+DlgImgHSpace		: "Ð“Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ð¹ Ð¾Ñ‚ÑÑ‚ÑƒÐ¿",
+DlgImgVSpace		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¹ Ð¾Ñ‚ÑÑ‚ÑƒÐ¿",
+DlgImgAlign			: "Ð’Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ðµ",
+DlgImgAlignLeft		: "ÐŸÐ¾ Ð»ÐµÐ²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+DlgImgAlignAbsBottom: "ÐÐ±Ñ Ð¿Ð¾Ð½Ð¸Ð·Ñƒ",
+DlgImgAlignAbsMiddle: "ÐÐ±Ñ Ð¿Ð¾ÑÐµÑ€ÐµÐ´Ð¸Ð½Ðµ",
+DlgImgAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ Ð»Ð¸Ð½Ð¸Ð¸",
+DlgImgAlignBottom	: "ÐŸÐ¾Ð½Ð¸Ð·Ñƒ",
+DlgImgAlignMiddle	: "ÐŸÐ¾ÑÐµÑ€ÐµÐ´Ð¸Ð½Ðµ",
+DlgImgAlignRight	: "ÐŸÐ¾ Ð¿Ñ€Ð°Ð²Ð¾Ð¼Ñƒ ÐºÑ€Ð°ÑŽ",
+DlgImgAlignTextTop	: "Ð¢ÐµÐºÑÑ‚ Ð½Ð°Ð²ÐµÑ€Ñ…Ñƒ",
+DlgImgAlignTop		: "ÐŸÐ¾ Ð²ÐµÑ€Ñ…Ñƒ",
+DlgImgPreview		: "ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ Ð¿Ñ€Ð¾ÑÐ¼Ð¾Ñ‚Ñ€",
+DlgImgAlertUrl		: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ URL Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ",
+DlgImgLinkTab		: "Ð¡ÑÑ‹Ð»ÐºÐ°",
+
+// Flash Dialog
+DlgFlashTitle		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Flash",
+DlgFlashChkPlay		: "ÐÐ²Ñ‚Ð¾ Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ðµ",
+DlgFlashChkLoop		: "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€",
+DlgFlashChkMenu		: "Ð’ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð¼ÐµÐ½ÑŽ Flash",
+DlgFlashScale		: "ÐœÐ°ÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ",
+DlgFlashScaleAll	: "ÐŸÐ¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ Ð²ÑÐµ",
+DlgFlashScaleNoBorder	: "Ð‘ÐµÐ· Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð°",
+DlgFlashScaleFit	: "Ð¢Ð¾Ñ‡Ð½Ð¾Ðµ ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ð¡ÑÑ‹Ð»ÐºÐ°",
+DlgLnkInfoTab		: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑÑÑ‹Ð»ÐºÐ¸",
+DlgLnkTargetTab		: "Ð¦ÐµÐ»ÑŒ",
+
+DlgLnkType			: "Ð¢Ð¸Ð¿ ÑÑÑ‹Ð»ÐºÐ¸",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ð¯ÐºÐ¾Ñ€ÑŒ Ð½Ð° ÑÑ‚Ñƒ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ",
+DlgLnkTypeEMail		: "Ð­Ð». Ð¿Ð¾Ñ‡Ñ‚Ð°",
+DlgLnkProto			: "ÐŸÑ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»",
+DlgLnkProtoOther	: "<Ð´Ñ€ÑƒÐ³Ð¾Ðµ>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÐºÐ¾Ñ€ÑŒ",
+DlgLnkAnchorByName	: "ÐŸÐ¾ Ð¸Ð¼ÐµÐ½Ð¸ ÑÐºÐ¾Ñ€Ñ",
+DlgLnkAnchorById	: "ÐŸÐ¾ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ñƒ ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°",
+DlgLnkNoAnchors		: "(ÐÐµÑ‚ ÑÐºÐ¾Ñ€ÐµÐ¹ Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ñ‹Ñ… Ð² ÑÑ‚Ð¾Ð¼ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ðµ)",
+DlgLnkEMail			: "ÐÐ´Ñ€ÐµÑ ÑÐ». Ð¿Ð¾Ñ‡Ñ‚Ñ‹",
+DlgLnkEMailSubject	: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ",
+DlgLnkEMailBody		: "Ð¢ÐµÐ»Ð¾ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ",
+DlgLnkUpload		: "Ð—Ð°ÐºÐ°Ñ‡Ð°Ñ‚ÑŒ",
+DlgLnkBtnUpload		: "ÐŸÐ¾ÑÐ»Ð°Ñ‚ÑŒ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+
+DlgLnkTarget		: "Ð¦ÐµÐ»ÑŒ",
+DlgLnkTargetFrame	: "<Ñ„Ñ€ÐµÐ¹Ð¼>",
+DlgLnkTargetPopup	: "<Ð²ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰ÐµÐµ Ð¾ÐºÐ½Ð¾>",
+DlgLnkTargetBlank	: "ÐÐ¾Ð²Ð¾Ðµ Ð¾ÐºÐ½Ð¾ (_blank)",
+DlgLnkTargetParent	: "Ð Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑÐºÐ¾Ðµ Ð¾ÐºÐ½Ð¾ (_parent)",
+DlgLnkTargetSelf	: "Ð¢Ð¾Ð¶Ðµ Ð¾ÐºÐ½Ð¾ (_self)",
+DlgLnkTargetTop		: "Ð¡Ð°Ð¼Ð¾Ðµ Ð²ÐµÑ€Ñ…Ð½ÐµÐµ Ð¾ÐºÐ½Ð¾ (_top)",
+DlgLnkTargetFrameName	: "Ð˜Ð¼Ñ Ñ†ÐµÐ»ÐµÐ²Ð¾Ð³Ð¾ Ñ„Ñ€ÐµÐ¹Ð¼Ð°",
+DlgLnkPopWinName	: "Ð˜Ð¼Ñ Ð²ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰ÐµÐ³Ð¾ Ð¾ÐºÐ½Ð°",
+DlgLnkPopWinFeat	: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð²ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰ÐµÐ³Ð¾ Ð¾ÐºÐ½Ð°",
+DlgLnkPopResize		: "Ð˜Ð·Ð¼ÐµÐ½ÑÑŽÑ‰ÐµÐµÑÑ Ð² Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°Ñ…",
+DlgLnkPopLocation	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð»Ð¾ÐºÐ°Ñ†Ð¸Ð¸",
+DlgLnkPopMenu		: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð¼ÐµÐ½ÑŽ",
+DlgLnkPopScroll		: "ÐŸÐ¾Ð»Ð¾ÑÑ‹ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ¸",
+DlgLnkPopStatus		: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ° ÑÐ¾ÑÑ‚Ð¾ÑÐ½Ð¸Ñ",
+DlgLnkPopToolbar	: "ÐŸÐ°Ð½ÐµÐ»ÑŒ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð²",
+DlgLnkPopFullScrn	: "ÐŸÐ¾Ð»Ð½Ñ‹Ð¹ ÑÐºÑ€Ð°Ð½ (IE)",
+DlgLnkPopDependent	: "Ð—Ð°Ð²Ð¸ÑÐ¸Ð¼Ñ‹Ð¹ (Netscape)",
+DlgLnkPopWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgLnkPopHeight		: "Ð’Ñ‹ÑÐ¾Ñ‚Ð°",
+DlgLnkPopLeft		: "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ ÑÐ»ÐµÐ²Ð°",
+DlgLnkPopTop		: "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ ÑÐ²ÐµÑ€Ñ…Ñƒ",
+
+DlnLnkMsgNoUrl		: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ URL ÑÑÑ‹Ð»ÐºÐ¸",
+DlnLnkMsgNoEMail	: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð°Ð´Ñ€ÐµÑ ÑÐ». Ð¿Ð¾Ñ‡Ñ‚Ñ‹",
+DlnLnkMsgNoAnchor	: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ñ‹Ð±ÐµÑ€ÐµÑ‚Ðµ ÑÐºÐ¾Ñ€ÑŒ",
+DlnLnkMsgInvPopName	: "ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ðµ Ð²ÑÐ¿Ñ‹Ð²Ð°ÑŽÑ‰ÐµÐ³Ð¾ Ð¾ÐºÐ½Ð° Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ‚ÑŒÑÑ Ð±ÑƒÐºÐ²Ñ‹ Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð¾Ð²",
+
+// Color Dialog
+DlgColorTitle		: "Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ Ñ†Ð²ÐµÑ‚",
+DlgColorBtnClear	: "ÐžÑ‡Ð¸ÑÑ‚Ð¸Ñ‚ÑŒ",
+DlgColorHighlight	: "ÐŸÐ¾Ð´ÑÐ²ÐµÑ‡ÐµÐ½Ð½Ñ‹Ð¹",
+DlgColorSelected	: "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¹",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ ÑÐ¼Ð°Ð¹Ð»Ð¸Ðº",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¹ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+
+// Table Dialog
+DlgTableTitle		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹",
+DlgTableRows		: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ¸",
+DlgTableColumns		: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+DlgTableBorder		: "Ð Ð°Ð·Ð¼ÐµÑ€ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð°",
+DlgTableAlign		: "Ð’Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ðµ",
+DlgTableAlignNotSet	: "<ÐÐµ ÑƒÑÑ‚.>",
+DlgTableAlignLeft	: "Ð¡Ð»ÐµÐ²Ð°",
+DlgTableAlignCenter	: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+DlgTableAlignRight	: "Ð¡Ð¿Ñ€Ð°Ð²Ð°",
+DlgTableWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTableWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»ÐµÐ¹",
+DlgTableWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ñ‚Ð¾Ð²",
+DlgTableHeight		: "Ð’Ñ‹ÑÐ¾Ñ‚Ð°",
+DlgTableCellSpace	: "ÐŸÑ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ðº (spacing)",
+DlgTableCellPad		: "ÐžÑ‚ÑÑ‚ÑƒÐ¿ (padding)",
+DlgTableCaption		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+DlgTableSummary		: "Ð ÐµÐ·ÑŽÐ¼Ðµ",
+
+// Table Cell Dialog
+DlgCellTitle		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÑ‡ÐµÐ¹ÐºÐ¸",
+DlgCellWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgCellWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»ÐµÐ¹",
+DlgCellWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ñ‚Ð¾Ð²",
+DlgCellHeight		: "Ð’Ñ‹ÑÐ¾Ñ‚Ð°",
+DlgCellWordWrap		: "Ð—Ð°Ð²Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ðµ Ñ‚ÐµÐºÑÑ‚Ð°",
+DlgCellWordWrapNotSet	: "<ÐÐµ ÑƒÑÑ‚.>",
+DlgCellWordWrapYes	: "Ð”Ð°",
+DlgCellWordWrapNo	: "ÐÐµÑ‚",
+DlgCellHorAlign		: "Ð“Ð¾Ñ€. Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ðµ",
+DlgCellHorAlignNotSet	: "<ÐÐµ ÑƒÑÑ‚.>",
+DlgCellHorAlignLeft	: "Ð¡Ð»ÐµÐ²Ð°",
+DlgCellHorAlignCenter	: "ÐŸÐ¾ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ",
+DlgCellHorAlignRight: "Ð¡Ð¿Ñ€Ð°Ð²Ð°",
+DlgCellVerAlign		: "Ð’ÐµÑ€Ñ‚. Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ðµ",
+DlgCellVerAlignNotSet	: "<ÐÐµ ÑƒÑÑ‚.>",
+DlgCellVerAlignTop	: "Ð¡Ð²ÐµÑ€Ñ…Ñƒ",
+DlgCellVerAlignMiddle	: "ÐŸÐ¾ÑÐµÑ€ÐµÐ´Ð¸Ð½Ðµ",
+DlgCellVerAlignBottom	: "Ð¡Ð½Ð¸Ð·Ñƒ",
+DlgCellVerAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ Ð»Ð¸Ð½Ð¸Ð¸",
+DlgCellRowSpan		: "Ð”Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÑÑ‚Ñ€Ð¾Ðº (span)",
+DlgCellCollSpan		: "Ð”Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº (span)",
+DlgCellBackColor	: "Ð¦Ð²ÐµÑ‚ Ñ„Ð¾Ð½Ð°",
+DlgCellBorderColor	: "Ð¦Ð²ÐµÑ‚ Ð±Ð¾Ñ€Ð´ÑŽÑ€Ð°",
+DlgCellBtnSelect	: "Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "ÐÐ°Ð¹Ñ‚Ð¸ Ð¸ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+
+// Find Dialog
+DlgFindTitle		: "ÐÐ°Ð¹Ñ‚Ð¸",
+DlgFindFindBtn		: "ÐÐ°Ð¹Ñ‚Ð¸",
+DlgFindNotFoundMsg	: "Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¹ Ñ‚ÐµÐºÑÑ‚ Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+DlgReplaceFindLbl		: "ÐÐ°Ð¹Ñ‚Ð¸:",
+DlgReplaceReplaceLbl	: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð½Ð°:",
+DlgReplaceCaseChk		: "Ð£Ñ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ñ‚ÑŒ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€",
+DlgReplaceReplaceBtn	: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+DlgReplaceReplAllBtn	: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð²ÑÐµ",
+DlgReplaceWordChk		: "Ð¡Ð¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ Ñ†ÐµÐ»Ñ‹Ñ… ÑÐ»Ð¾Ð²",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚Ð¸ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑŽÑ‚ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ñƒ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¸ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑÑ‚ÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ Ð²Ñ‹Ñ€ÐµÐ·Ð°Ð½Ð¸Ñ. ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐ¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñƒ Ð´Ð»Ñ ÑÑ‚Ð¾Ð³Ð¾ (Ctrl+X).",
+PasteErrorCopy	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚Ð¸ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð½Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑŽÑ‚ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ñƒ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¸ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑÑ‚ÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ. ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐ¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ñƒ Ð´Ð»Ñ ÑÑ‚Ð¾Ð³Ð¾ (Ctrl+C).",
+
+PasteAsText		: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ‚ÐµÐºÑÑ‚",
+PasteFromWord	: "Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ð¸Ð· Word",
+
+DlgPasteMsg2	: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²ÑÑ‚Ð°Ð²ÑŒÑ‚Ðµ Ñ‚ÐµÐºÑÑ‚ Ð² Ð¿Ñ€ÑÐ¼Ð¾ÑƒÐ³Ð¾Ð»ÑŒÐ½Ð¸Ðº, Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ðµ ÐºÐ»Ð°Ð²Ð¸Ñˆ (<STRONG>Ctrl+V</STRONG>), Ð¸ Ð½Ð°Ð¶Ð¼Ð¸Ñ‚Ðµ <STRONG>OK</STRONG>.",
+DlgPasteSec		: "ÐŸÐ¾ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐº Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚Ð¸ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°, Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ‚ Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð° Ðº Ð´Ð°Ð½Ð½Ñ‹Ð¼ Ð±ÑƒÑ„ÐµÑ€Ð° Ð¾Ð±Ð¼ÐµÐ½Ð° Ð½Ð°Ð¿Ñ€ÑÐ¼ÑƒÑŽ. Ð’Ð°Ð¼ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ Ð²ÑÑ‚Ð°Ð²Ð¸Ñ‚ÑŒ Ñ‚ÐµÐºÑÑ‚ ÑÐ½Ð¾Ð²Ð° Ð² ÑÑ‚Ð¾ Ð¾ÐºÐ½Ð¾.",
+DlgPasteIgnoreFont		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð³Ð°Ñ€Ð½Ð¸Ñ‚ÑƒÑ€Ñ‹",
+DlgPasteRemoveStyles	: "Ð£Ð±Ñ€Ð°Ñ‚ÑŒ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑ‚Ð¸Ð»ÐµÐ¹",
+
+// Color Picker
+ColorAutomatic	: "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¸Ð¹",
+ColorMoreColors	: "Ð¦Ð²ÐµÑ‚Ð°...",
+
+// Document Properties
+DocProps		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° ÑÐºÐ¾Ñ€Ñ",
+DlgAnchorName		: "Ð˜Ð¼Ñ ÑÐºÐ¾Ñ€Ñ",
+DlgAnchorErrorName	: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð¸Ð¼Ñ ÑÐºÐ¾Ñ€Ñ",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ÐÐµÑ‚ Ð² ÑÐ»Ð¾Ð²Ð°Ñ€Ðµ",
+DlgSpellChangeTo		: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð½Ð°",
+DlgSpellBtnIgnore		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ",
+DlgSpellBtnIgnoreAll	: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð²ÑÐµ",
+DlgSpellBtnReplace		: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+DlgSpellBtnReplaceAll	: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ð²ÑÐµ",
+DlgSpellBtnUndo			: "ÐžÑ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ",
+DlgSpellNoSuggestions	: "- ÐÐµÑ‚ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ -",
+DlgSpellProgress		: "Ð˜Ð´ÐµÑ‚ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸...",
+DlgSpellNoMispell		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ Ð·Ð°ÐºÐ¾Ð½Ñ‡ÐµÐ½Ð°: Ð¾ÑˆÐ¸Ð±Ð¾Ðº Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾",
+DlgSpellNoChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ Ð·Ð°ÐºÐ¾Ð½Ñ‡ÐµÐ½Ð°: Ð½Ð¸ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑÐ»Ð¾Ð²Ð° Ð½Ðµ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾",
+DlgSpellOneChange		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ Ð·Ð°ÐºÐ¾Ð½Ñ‡ÐµÐ½Ð°: Ð¾Ð´Ð½Ð¾ ÑÐ»Ð¾Ð²Ð¾ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾",
+DlgSpellManyChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ Ð·Ð°ÐºÐ¾Ð½Ñ‡ÐµÐ½Ð°: 1% ÑÐ»Ð¾Ð² Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½",
+
+IeSpellDownload			: "ÐœÐ¾Ð´ÑƒÐ»ÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ð¾Ñ€Ñ„Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ Ð½Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½. Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ ÑÐºÐ°Ñ‡Ð°Ñ‚ÑŒ ÐµÐ³Ð¾ ÑÐµÐ¹Ñ‡Ð°Ñ?",
+
+// Button Dialog
+DlgButtonText		: "Ð¢ÐµÐºÑÑ‚ (Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ)",
+DlgButtonType		: "Ð¢Ð¸Ð¿",
+DlgButtonTypeBtn	: "ÐšÐ½Ð¾Ð¿ÐºÐ°",
+DlgButtonTypeSbm	: "ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑŒ",
+DlgButtonTypeRst	: "Ð¡Ð±Ñ€Ð¾ÑÐ¸Ñ‚ÑŒ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ð˜Ð¼Ñ",
+DlgCheckboxValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+DlgCheckboxSelected	: "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ",
+
+// Form Dialog
+DlgFormName		: "Ð˜Ð¼Ñ",
+DlgFormAction	: "Ð”ÐµÐ¹ÑÑ‚Ð²Ð¸Ðµ",
+DlgFormMethod	: "ÐœÐµÑ‚Ð¾Ð´",
+
+// Select Field Dialog
+DlgSelectName		: "Ð˜Ð¼Ñ",
+DlgSelectValue		: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+DlgSelectSize		: "Ð Ð°Ð·Ð¼ÐµÑ€",
+DlgSelectLines		: "Ð»Ð¸Ð½Ð¸Ð¸",
+DlgSelectChkMulti	: "Ð Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚ÑŒ Ð¼Ð½Ð¾Ð¶ÐµÑÑ‚Ð²ÐµÐ½Ð½Ñ‹Ð¹ Ð²Ñ‹Ð±Ð¾Ñ€",
+DlgSelectOpAvail	: "Ð”Ð¾ÑÑ‚ÑƒÐ¿Ð½Ñ‹Ðµ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ñ‹",
+DlgSelectOpText		: "Ð¢ÐµÐºÑÑ‚",
+DlgSelectOpValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+DlgSelectBtnAdd		: "Ð”Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ",
+DlgSelectBtnModify	: "ÐœÐ¾Ð´Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ",
+DlgSelectBtnUp		: "Ð’Ð²ÐµÑ€Ñ…",
+DlgSelectBtnDown	: "Ð’Ð½Ð¸Ð·",
+DlgSelectBtnSetValue : "Ð£ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ ÐºÐ°Ðº Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+DlgSelectBtnDelete	: "Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ",
+
+// Textarea Dialog
+DlgTextareaName	: "Ð˜Ð¼Ñ",
+DlgTextareaCols	: "ÐšÐ¾Ð»Ð¾Ð½ÐºÐ¸",
+DlgTextareaRows	: "Ð¡Ñ‚Ñ€Ð¾ÐºÐ¸",
+
+// Text Field Dialog
+DlgTextName			: "Ð˜Ð¼Ñ",
+DlgTextValue		: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+DlgTextCharWidth	: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTextMaxChars		: "ÐœÐ°ÐºÑ. ÐºÐ¾Ð»-Ð²Ð¾ ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¾Ð²",
+DlgTextType			: "Ð¢Ð¸Ð¿",
+DlgTextTypeText		: "Ð¢ÐµÐºÑÑ‚",
+DlgTextTypePass		: "ÐŸÐ°Ñ€Ð¾Ð»ÑŒ",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ð˜Ð¼Ñ",
+DlgHiddenValue	: "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑÐ¿Ð¸ÑÐºÐ°",
+NumberedListProp	: "Ð¡Ð²Ð¾Ð¹ÑÑ‚Ð²Ð° Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑÐ¿Ð¸ÑÐºÐ°",
+DlgLstStart			: "ÐÐ°Ñ‡Ð°Ð»Ð¾",
+DlgLstType			: "Ð¢Ð¸Ð¿",
+DlgLstTypeCircle	: "ÐšÑ€ÑƒÐ³",
+DlgLstTypeDisc		: "Ð”Ð¸ÑÐº",
+DlgLstTypeSquare	: "ÐšÐ²Ð°Ð´Ñ€Ð°Ñ‚",
+DlgLstTypeNumbers	: "ÐÐ¾Ð¼ÐµÑ€Ð° (1, 2, 3)",
+DlgLstTypeLCase		: "Ð‘ÑƒÐºÐ²Ñ‹ Ð½Ð¸Ð¶Ð½ÐµÐ³Ð¾ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð° (a, b, c)",
+DlgLstTypeUCase		: "Ð‘ÑƒÐºÐ²Ñ‹ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð° (A, B, C)",
+DlgLstTypeSRoman	: "ÐœÐ°Ð»Ñ‹Ðµ Ñ€Ð¸Ð¼ÑÐºÐ¸Ðµ Ð±ÑƒÐºÐ²Ñ‹ (i, ii, iii)",
+DlgLstTypeLRoman	: "Ð‘Ð¾Ð»ÑŒÑˆÐ¸Ðµ Ñ€Ð¸Ð¼ÑÐºÐ¸Ðµ Ð±ÑƒÐºÐ²Ñ‹ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ÐžÐ±Ñ‰Ð¸Ðµ",
+DlgDocBackTab		: "Ð—Ð°Ð´Ð½Ð¸Ð¹ Ñ„Ð¾Ð½",
+DlgDocColorsTab		: "Ð¦Ð²ÐµÑ‚Ð° Ð¸ Ð¾Ñ‚ÑÑ‚ÑƒÐ¿Ñ‹",
+DlgDocMetaTab		: "ÐœÐµÑ‚Ð° Ð´Ð°Ð½Ð½Ñ‹Ðµ",
+
+DlgDocPageTitle		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹",
+DlgDocLangDir		: "ÐÐ°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Ñ‚ÐµÐºÑÑ‚Ð°",
+DlgDocLangDirLTR	: "Ð¡Ð»ÐµÐ²Ð° Ð½Ð°Ð¿Ñ€Ð°Ð²Ð¾ (LTR)",
+DlgDocLangDirRTL	: "Ð¡Ð¿Ñ€Ð°Ð²Ð° Ð½Ð°Ð»ÐµÐ²Ð¾ (RTL)",
+DlgDocLangCode		: "ÐšÐ¾Ð´ ÑÐ·Ñ‹ÐºÐ°",
+DlgDocCharSet		: "ÐšÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° Ð½Ð°Ð±Ð¾Ñ€Ð° ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¾Ð²",
+DlgDocCharSetCE		: "Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð¾-ÐµÐ²Ñ€Ð¾Ð¿ÐµÐ¹ÑÐºÐ°Ñ",
+DlgDocCharSetCT		: "ÐšÐ¸Ñ‚Ð°Ð¹ÑÐºÐ°Ñ Ñ‚Ñ€Ð°Ð´Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ (Big5)",
+DlgDocCharSetCR		: "ÐšÐ¸Ñ€Ð¸Ð»Ð»Ð¸Ñ†Ð°",
+DlgDocCharSetGR		: "Ð“Ñ€ÐµÑ‡ÐµÑÐºÐ°Ñ",
+DlgDocCharSetJP		: "Ð¯Ð¿Ð¾Ð½ÑÐºÐ°Ñ",
+DlgDocCharSetKR		: "ÐšÐ¾Ñ€ÐµÐ¹ÑÐºÐ°Ñ",
+DlgDocCharSetTR		: "Ð¢ÑƒÑ€ÐµÑ†ÐºÐ°Ñ",
+DlgDocCharSetUN		: "Ð®Ð½Ð¸ÐºÐ¾Ð´ (UTF-8)",
+DlgDocCharSetWE		: "Ð—Ð°Ð¿Ð°Ð´Ð½Ð¾-ÐµÐ²Ñ€Ð¾Ð¿ÐµÐ¹ÑÐºÐ°Ñ",
+DlgDocCharSetOther	: "Ð”Ñ€ÑƒÐ³Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° Ð½Ð°Ð±Ð¾Ñ€Ð° ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¾Ð²",
+
+DlgDocDocType		: "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ð¿Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocDocTypeOther	: "Ð”Ñ€ÑƒÐ³Ð¾Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ð¿Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocIncXHTML		: "Ð’ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ XHTML Ð¾Ð±ÑŠÑÐ²Ð»ÐµÐ½Ð¸Ñ",
+DlgDocBgColor		: "Ð¦Ð²ÐµÑ‚ Ñ„Ð¾Ð½Ð°",
+DlgDocBgImage		: "URL Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ„Ð¾Ð½Ð°",
+DlgDocBgNoScroll	: "ÐÐµÑÐºÑ€Ð¾Ð»Ð»Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¹ Ñ„Ð¾Ð½",
+DlgDocCText			: "Ð¢ÐµÐºÑÑ‚",
+DlgDocCLink			: "Ð¡ÑÑ‹Ð»ÐºÐ°",
+DlgDocCVisited		: "ÐŸÐ¾ÑÐµÑ‰ÐµÐ½Ð½Ð°Ñ ÑÑÑ‹Ð»ÐºÐ°",
+DlgDocCActive		: "ÐÐºÑ‚Ð¸Ð²Ð½Ð°Ñ ÑÑÑ‹Ð»ÐºÐ°",
+DlgDocMargins		: "ÐžÑ‚ÑÑ‚ÑƒÐ¿Ñ‹ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹",
+DlgDocMaTop			: "Ð’ÐµÑ€Ñ…Ð½Ð¸Ð¹",
+DlgDocMaLeft		: "Ð›ÐµÐ²Ñ‹Ð¹",
+DlgDocMaRight		: "ÐŸÑ€Ð°Ð²Ñ‹Ð¹",
+DlgDocMaBottom		: "ÐÐ¸Ð¶Ð½Ð¸Ð¹",
+DlgDocMeIndex		: "ÐšÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ðµ ÑÐ»Ð¾Ð²Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° (Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð½Ñ‹Ðµ Ð·Ð°Ð¿ÑÑ‚Ð¾Ð¹)",
+DlgDocMeDescr		: "ÐžÐ¿Ð¸ÑÐ°Ð½Ð¸Ðµ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocMeAuthor		: "ÐÐ²Ñ‚Ð¾Ñ€",
+DlgDocMeCopy		: "ÐÐ²Ñ‚Ð¾Ñ€ÑÐºÐ¸Ðµ Ð¿Ñ€Ð°Ð²Ð°",
+DlgDocPreview		: "ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ Ð¿Ñ€Ð¾ÑÐ¼Ð¾Ñ‚Ñ€",
+
+// Templates Dialog
+Templates			: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ‹",
+DlgTemplatesTitle	: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ‹ ÑÐ¾Ð´ÐµÑ€Ð¶Ð¸Ð¼Ð¾Ð³Ð¾",
+DlgTemplatesSelMsg	: "ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ñ‹Ð±ÐµÑ€ÐµÑ‚Ðµ ÑˆÐ°Ð±Ð»Ð¾Ð½ Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð² Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ðµ<br>(Ñ‚ÐµÐºÑƒÑ‰ÐµÐµ ÑÐ¾Ð´ÐµÑ€Ð¶Ð¸Ð¼Ð¾Ðµ Ð±ÑƒÐ´ÐµÑ‚ Ð¿Ð¾Ñ‚ÐµÑ€ÑÐ½Ð¾):",
+DlgTemplatesLoading	: "Ð—Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° ÑÐ¿Ð¸ÑÐºÐ° ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð². ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð¸Ñ‚Ðµ...",
+DlgTemplatesNoTpl	: "(ÐÐ¸ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð½Ðµ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¾)",
+DlgTemplatesReplace	: "Ð—Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ñ‚ÐµÐºÑƒÑ‰ÐµÐµ ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ðµ",
+
+// About Dialog
+DlgAboutAboutTab	: "Ðž Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ðµ",
+DlgAboutBrowserInfoTab	: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°",
+DlgAboutLicenseTab	: "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ",
+DlgAboutVersion		: "Ð’ÐµÑ€ÑÐ¸Ñ",
+DlgAboutInfo		: "Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ¹ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸, Ð¿Ð¾ÑÐµÑ‚Ð¸Ñ‚Ðµ"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/af.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/af.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/af.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Afrikaans language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Vou Gereedskaps balk toe",
+ToolbarExpand		: "Vou Gereedskaps balk oop",
+
+// Toolbar Items and Context Menu
+Save				: "Bewaar",
+NewPage				: "Nuwe Bladsy",
+Preview				: "Voorskou",
+Cut					: "Uitsny ",
+Copy				: "Kopieer",
+Paste				: "Byvoeg",
+PasteText			: "Slegs inhoud byvoeg",
+PasteWord			: "Van Word af byvoeg",
+Print				: "Druk",
+SelectAll			: "Selekteer alles",
+RemoveFormat		: "Formaat verweider",
+InsertLinkLbl		: "Skakel",
+InsertLink			: "Skakel byvoeg/verander",
+RemoveLink			: "Skakel verweider",
+Anchor				: "Plekhouer byvoeg/verander",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Beeld",
+InsertImage			: "Beeld byvoeg/verander",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash byvoeg/verander",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Tabel byvoeg/verander",
+InsertLineLbl		: "Lyn",
+InsertLine			: "Horisontale lyn byvoeg",
+InsertSpecialCharLbl: "Spesiaale karakter",
+InsertSpecialChar	: "Spesiaale Karakter byvoeg",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley byvoeg",
+About				: "Meer oor FCKeditor",
+Bold				: "Vet",
+Italic				: "Skuins",
+Underline			: "Onderstreep",
+StrikeThrough		: "Gestreik",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Links rig",
+CenterJustify		: "Rig Middel",
+RightJustify		: "Regs rig",
+BlockJustify		: "Blok paradeer",
+DecreaseIndent		: "Paradeering verkort",
+IncreaseIndent		: "Paradeering verleng",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Ont-skep",
+Redo				: "Her-skep",
+NumberedListLbl		: "Genommerde lys",
+NumberedList		: "Genommerde lys byvoeg/verweider",
+BulletedListLbl		: "Gepunkte lys",
+BulletedList		: "Gepunkte lys byvoeg/verweider",
+ShowTableBorders	: "Wys tabel kante",
+ShowDetails			: "Wys informasie",
+Style				: "Styl",
+FontFormat			: "Karakter formaat",
+Font				: "Karakters",
+FontSize			: "Karakter grote",
+TextColor			: "Karakter kleur",
+BGColor				: "Agtergrond kleur",
+Source				: "Source",
+Find				: "Vind",
+Replace				: "Vervang",
+SpellCheck			: "Spelling nagaan",
+UniversalKeyboard	: "Universeele Sleutelbord",
+PageBreakLbl		: "Bladsy breek",
+PageBreak			: "Bladsy breek byvoeg",
+
+Form			: "Form",
+Checkbox		: "HakBox",
+RadioButton		: "PuntBox",
+TextField		: "Byvoegbare karakter strook",
+Textarea		: "Byvoegbare karakter area",
+HiddenField		: "Blinde strook",
+Button			: "Knop",
+SelectionField	: "Opklapbare keuse strook",
+ImageButton		: "Beeld knop",
+
+FitWindow		: "Maksimaliseer venster grote",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Verander skakel",
+CellCM				: "Cell",
+RowCM				: "Ry",
+ColumnCM			: "Kolom",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Ry verweider",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Kolom verweider",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Cell verweider",
+MergeCells			: "Cell verenig",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Tabel verweider",
+CellProperties		: "Cell eienskappe",
+TableProperties		: "Tabel eienskappe",
+ImageProperties		: "Beeld eienskappe",
+FlashProperties		: "Flash eienskappe",
+
+AnchorProp			: "Plekhouer eienskappe",
+ButtonProp			: "Knop eienskappe",
+CheckboxProp		: "HakBox eienskappe",
+HiddenFieldProp		: "Blinde strook eienskappe",
+RadioButtonProp		: "PuntBox eienskappe",
+ImageButtonProp		: "Beeld knop eienskappe",
+TextFieldProp		: "Karakter strook eienskappe",
+SelectionFieldProp	: "Opklapbare keuse strook eienskappe",
+TextareaProp		: "Karakter area eienskappe",
+FormProp			: "Form eienskappe",
+
+FontFormats			: "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML word verarbeit. U geduld asseblief...",
+Done				: "Kompleet",
+PasteWordConfirm	: "Die informasie wat U probeer byvoeg is warskynlik van Word. Wil U dit reinig voor die byvoeging?",
+NotCompatiblePaste	: "Die instruksie is beskikbaar vir Internet Explorer weergawe 5.5 of hor. Wil U dir byvoeg sonder reiniging?",
+UnknownToolbarItem	: "Unbekende gereedskaps balk item \"%1\"",
+UnknownCommand		: "Unbekende instruksie naam \"%1\"",
+NotImplemented		: "Instruksie is nie geimplementeer nie.",
+UnknownToolbarSet	: "Gereedskaps balk \"%1\" bestaan nie",
+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.",
+BrowseServerBlocked : "Die vorraad venster word geblok! Verseker asseblief dat U die \"popup blocker\" instelling verander.",
+DialogBlocked		: "Die dialoog venster vir verdere informasie word geblok. De-aktiveer asseblief die \"popup blocker\" instellings wat dit behinder.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Kanseleer",
+DlgBtnClose			: "Sluit",
+DlgBtnBrowseServer	: "Server deurblaai",
+DlgAdvancedTag		: "Ingewikkeld",
+DlgOpOther			: "<Ander>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Voeg asseblief die URL in",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<geen instelling>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Taal rigting",
+DlgGenLangDirLtr	: "Links na regs (LTR)",
+DlgGenLangDirRtl	: "Regs na links (RTL)",
+DlgGenLangCode		: "Taal kode",
+DlgGenAccessKey		: "Toegang sleutel",
+DlgGenName			: "Naam",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Lang beskreiwing URL",
+DlgGenClass			: "Skakel Tiepe",
+DlgGenTitle			: "Voorbeveelings Titel",
+DlgGenContType		: "Voorbeveelings inhoud soort",
+DlgGenLinkCharset	: "Geskakelde voorbeeld karakterstel",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "Beeld eienskappe",
+DlgImgInfoTab		: "Beeld informasie",
+DlgImgBtnUpload		: "Stuur dit na die Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Uplaai",
+DlgImgAlt			: "Alternatiewe beskrywing",
+DlgImgWidth			: "Weidte",
+DlgImgHeight		: "Hoogde",
+DlgImgLockRatio		: "Behou preporsie",
+DlgBtnResetSize		: "Herstel groote",
+DlgImgBorder		: "Kant",
+DlgImgHSpace		: "HSpasie",
+DlgImgVSpace		: "VSpasie",
+DlgImgAlign			: "Paradeer",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Abs Onder",
+DlgImgAlignAbsMiddle: "Abs Middel",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Onder",
+DlgImgAlignMiddle	: "Middel",
+DlgImgAlignRight	: "Regs",
+DlgImgAlignTextTop	: "Text Bo",
+DlgImgAlignTop		: "Bo",
+DlgImgPreview		: "Voorskou",
+DlgImgAlertUrl		: "Voeg asseblief Beeld URL in.",
+DlgImgLinkTab		: "Skakel",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash eienskappe",
+DlgFlashChkPlay		: "Automaties Speel",
+DlgFlashChkLoop		: "Herhaling",
+DlgFlashChkMenu		: "Laat Flash Menu toe",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Wys alles",
+DlgFlashScaleNoBorder	: "Geen kante",
+DlgFlashScaleFit	: "Presiese pas",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Skakel",
+DlgLnkInfoTab		: "Skakel informasie",
+DlgLnkTargetTab		: "Mikpunt",
+
+DlgLnkType			: "Skakel soort",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Skakel na plekhouers in text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<ander>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Kies 'n plekhouer",
+DlgLnkAnchorByName	: "Volgens plekhouer naam",
+DlgLnkAnchorById	: "Volgens element Id",
+DlgLnkNoAnchors		: "(Geen plekhouers beskikbaar in dokument}",
+DlgLnkEMail			: "E-Mail Adres",
+DlgLnkEMailSubject	: "Boodskap Opskrif",
+DlgLnkEMailBody		: "Boodskap Inhoud",
+DlgLnkUpload		: "Oplaai",
+DlgLnkBtnUpload		: "Stuur na Server",
+
+DlgLnkTarget		: "Mikpunt",
+DlgLnkTargetFrame	: "<raam>",
+DlgLnkTargetPopup	: "<popup venster>",
+DlgLnkTargetBlank	: "Nuwe Venster (_blank)",
+DlgLnkTargetParent	: "Vorige Venster (_parent)",
+DlgLnkTargetSelf	: "Selfde Venster (_self)",
+DlgLnkTargetTop		: "Boonste Venster (_top)",
+DlgLnkTargetFrameName	: "Mikpunt Venster Naam",
+DlgLnkPopWinName	: "Popup Venster Naam",
+DlgLnkPopWinFeat	: "Popup Venster Geaartheid",
+DlgLnkPopResize		: "Verstelbare Groote",
+DlgLnkPopLocation	: "Adres Balk",
+DlgLnkPopMenu		: "Menu Balk",
+DlgLnkPopScroll		: "Gleibalkstuk",
+DlgLnkPopStatus		: "Status Balk",
+DlgLnkPopToolbar	: "Gereedskap Balk",
+DlgLnkPopFullScrn	: "Voll Skerm (IE)",
+DlgLnkPopDependent	: "Afhanklik (Netscape)",
+DlgLnkPopWidth		: "Weite",
+DlgLnkPopHeight		: "Hoogde",
+DlgLnkPopLeft		: "Links Posisie",
+DlgLnkPopTop		: "Bo Posisie",
+
+DlnLnkMsgNoUrl		: "Voeg asseblief die URL in",
+DlnLnkMsgNoEMail	: "Voeg asseblief die e-mail adres in",
+DlnLnkMsgNoAnchor	: "Kies asseblief 'n plekhouer",
+DlnLnkMsgInvPopName	: "Die popup naam moet begin met alphabetiese karakters sonder spasies.",
+
+// Color Dialog
+DlgColorTitle		: "Kies Kleur",
+DlgColorBtnClear	: "Maak skoon",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Geselekteer",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Voeg Smiley by",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Kies spesiale karakter",
+
+// Table Dialog
+DlgTableTitle		: "Tabel eienskappe",
+DlgTableRows		: "Reie",
+DlgTableColumns		: "Kolome",
+DlgTableBorder		: "Kant groote",
+DlgTableAlign		: "Parideering",
+DlgTableAlignNotSet	: "<geen instelling>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Middel",
+DlgTableAlignRight	: "Regs",
+DlgTableWidth		: "Weite",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Hoogde",
+DlgTableCellSpace	: "Cell spasieering",
+DlgTableCellPad		: "Cell buffer",
+DlgTableCaption		: "Beskreiwing",
+DlgTableSummary		: "Opsomming",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell eienskappe",
+DlgCellWidth		: "Weite",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Hoogde",
+DlgCellWordWrap		: "Woord Wrap",
+DlgCellWordWrapNotSet	: "<geen instelling>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nee",
+DlgCellHorAlign		: "Horisontale rigting",
+DlgCellHorAlignNotSet	: "<geen instelling>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Middel",
+DlgCellHorAlignRight: "Regs",
+DlgCellVerAlign		: "Vertikale rigting",
+DlgCellVerAlignNotSet	: "<geen instelling>",
+DlgCellVerAlignTop	: "Bo",
+DlgCellVerAlignMiddle	: "Middel",
+DlgCellVerAlignBottom	: "Onder",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rei strekking",
+DlgCellCollSpan		: "Kolom strekking",
+DlgCellBackColor	: "Agtergrond Kleur",
+DlgCellBorderColor	: "Kant Kleur",
+DlgCellBtnSelect	: "Keuse...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Vind",
+DlgFindFindBtn		: "Vind",
+DlgFindNotFoundMsg	: "Die gespesifiseerde karakters word nie gevind nie.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Vervang",
+DlgReplaceFindLbl		: "Soek wat:",
+DlgReplaceReplaceLbl	: "Vervang met:",
+DlgReplaceCaseChk		: "Vergelyk karakter skryfweise",
+DlgReplaceReplaceBtn	: "Vervang",
+DlgReplaceReplAllBtn	: "Vervang alles",
+DlgReplaceWordChk		: "Vergelyk komplete woord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).",
+PasteErrorCopy	: "U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).",
+
+PasteAsText		: "Voeg slegs karakters by",
+PasteFromWord	: "Byvoeging uit Word",
+
+DlgPasteMsg2	: "Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignoreer karakter soort defenisies",
+DlgPasteRemoveStyles	: "Verweider Styl defenisies",
+
+// Color Picker
+ColorAutomatic	: "Automaties",
+ColorMoreColors	: "Meer Kleure...",
+
+// Document Properties
+DocProps		: "Dokument Eienskappe",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Plekhouer Eienskappe",
+DlgAnchorName		: "Plekhouer Naam",
+DlgAnchorErrorName	: "Voltooi die plekhouer naam asseblief",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nie in woordeboek nie",
+DlgSpellChangeTo		: "Verander na",
+DlgSpellBtnIgnore		: "Ignoreer",
+DlgSpellBtnIgnoreAll	: "Ignoreer na-volgende",
+DlgSpellBtnReplace		: "Vervang",
+DlgSpellBtnReplaceAll	: "vervang na-volgende",
+DlgSpellBtnUndo			: "Ont-skep",
+DlgSpellNoSuggestions	: "- Geen voorstel -",
+DlgSpellProgress		: "Spelling word beproef...",
+DlgSpellNoMispell		: "Spellproef kompleet: Geen foute",
+DlgSpellNoChanges		: "Spellproef kompleet: Geen woord veranderings",
+DlgSpellOneChange		: "Spellproef kompleet: Een woord verander",
+DlgSpellManyChanges		: "Spellproef kompleet: %1 woorde verander",
+
+IeSpellDownload			: "Geen Spellproefer geinstaleer nie. Wil U dit aflaai?",
+
+// Button Dialog
+DlgButtonText		: "Karakters (Waarde)",
+DlgButtonType		: "Soort",
+DlgButtonTypeBtn	: "Knop",
+DlgButtonTypeSbm	: "Indien",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naam",
+DlgCheckboxValue	: "Waarde",
+DlgCheckboxSelected	: "Uitgekies",
+
+// Form Dialog
+DlgFormName		: "Naam",
+DlgFormAction	: "Aksie",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Naam",
+DlgSelectValue		: "Waarde",
+DlgSelectSize		: "Grote",
+DlgSelectLines		: "lyne",
+DlgSelectChkMulti	: "Laat meerere keuses toe",
+DlgSelectOpAvail	: "Beskikbare Opsies",
+DlgSelectOpText		: "Karakters",
+DlgSelectOpValue	: "Waarde",
+DlgSelectBtnAdd		: "Byvoeg",
+DlgSelectBtnModify	: "Verander",
+DlgSelectBtnUp		: "Op",
+DlgSelectBtnDown	: "Af",
+DlgSelectBtnSetValue : "Stel as uitgekiesde waarde",
+DlgSelectBtnDelete	: "Verweider",
+
+// Textarea Dialog
+DlgTextareaName	: "Naam",
+DlgTextareaCols	: "Kolom",
+DlgTextareaRows	: "Reie",
+
+// Text Field Dialog
+DlgTextName			: "Naam",
+DlgTextValue		: "Waarde",
+DlgTextCharWidth	: "Karakter weite",
+DlgTextMaxChars		: "Maximale karakters",
+DlgTextType			: "Soort",
+DlgTextTypeText		: "Karakters",
+DlgTextTypePass		: "Wagwoord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naam",
+DlgHiddenValue	: "Waarde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Gepunkte lys eienskappe",
+NumberedListProp	: "Genommerde lys eienskappe",
+DlgLstStart			: "Begin",
+DlgLstType			: "Soort",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Skyf",
+DlgLstTypeSquare	: "Vierkant",
+DlgLstTypeNumbers	: "Nommer (1, 2, 3)",
+DlgLstTypeLCase		: "Klein Letters (a, b, c)",
+DlgLstTypeUCase		: "Hoof Letters (A, B, C)",
+DlgLstTypeSRoman	: "Klein Romeinse nommers (i, ii, iii)",
+DlgLstTypeLRoman	: "Groot Romeinse nommers (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Algemeen",
+DlgDocBackTab		: "Agtergrond",
+DlgDocColorsTab		: "Kleure en Rante",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Bladsy Opskrif",
+DlgDocLangDir		: "Taal rigting",
+DlgDocLangDirLTR	: "Link na Regs (LTR)",
+DlgDocLangDirRTL	: "Regs na Links (RTL)",
+DlgDocLangCode		: "Taal Kode",
+DlgDocCharSet		: "Karakterstel Kodeering",
+DlgDocCharSetCE		: "Sentraal Europa",
+DlgDocCharSetCT		: "Chinees Traditioneel (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Grieks",
+DlgDocCharSetJP		: "Japanees",
+DlgDocCharSetKR		: "Koreans",
+DlgDocCharSetTR		: "Turks",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Ander Karakterstel Kodeering",
+
+DlgDocDocType		: "Dokument Opskrif Soort",
+DlgDocDocTypeOther	: "Ander Dokument Opskrif Soort",
+DlgDocIncXHTML		: "Voeg XHTML verklaring by",
+DlgDocBgColor		: "Agtergrond kleur",
+DlgDocBgImage		: "Agtergrond Beeld URL",
+DlgDocBgNoScroll	: "Vasgeklemde Agtergrond",
+DlgDocCText			: "Karakters",
+DlgDocCLink			: "Skakel",
+DlgDocCVisited		: "Besoekte Skakel",
+DlgDocCActive		: "Aktiewe Skakel",
+DlgDocMargins		: "Bladsy Rante",
+DlgDocMaTop			: "Bo",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Regs",
+DlgDocMaBottom		: "Onder",
+DlgDocMeIndex		: "Dokument Index Sleutelwoorde(comma verdeelt)",
+DlgDocMeDescr		: "Dokument Beskrywing",
+DlgDocMeAuthor		: "Skrywer",
+DlgDocMeCopy		: "Kopiereg",
+DlgDocPreview		: "Voorskou",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Inhoud Templates",
+DlgTemplatesSelMsg	: "Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):",
+DlgTemplatesLoading	: "Templates word gelaai. U geduld asseblief...",
+DlgTemplatesNoTpl	: "(Geen templates gedefinieerd)",
+DlgTemplatesReplace	: "Vervang bestaande inhoud",
+
+// About Dialog
+DlgAboutAboutTab	: "Meer oor",
+DlgAboutBrowserInfoTab	: "Blaai Informasie deur",
+DlgAboutLicenseTab	: "Lesensie",
+DlgAboutVersion		: "weergawe",
+DlgAboutInfo		: "Vir meer informasie gaan na "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr-ca.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Canadian French language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Masquer Outils",
+ToolbarExpand		: "Afficher Outils",
+
+// Toolbar Items and Context Menu
+Save				: "Sauvegarder",
+NewPage				: "Nouvelle page",
+Preview				: "Previsualiser",
+Cut					: "Couper",
+Copy				: "Copier",
+Paste				: "Coller",
+PasteText			: "Coller en tant que texte",
+PasteWord			: "Coller en tant que Word (formatÃ©)",
+Print				: "Imprimer",
+SelectAll			: "Tout sÃ©lectionner",
+RemoveFormat		: "Supprimer le formatage",
+InsertLinkLbl		: "Lien",
+InsertLink			: "InsÃ©rer/modifier le lien",
+RemoveLink			: "Supprimer le lien",
+Anchor				: "InsÃ©rer/modifier l'ancre",
+AnchorDelete		: "Supprimer l'ancre",
+InsertImageLbl		: "Image",
+InsertImage			: "InsÃ©rer/modifier l'image",
+InsertFlashLbl		: "Animation Flash",
+InsertFlash			: "InsÃ©rer/modifier l'animation Flash",
+InsertTableLbl		: "Tableau",
+InsertTable			: "InsÃ©rer/modifier le tableau",
+InsertLineLbl		: "SÃ©parateur",
+InsertLine			: "InsÃ©rer un sÃ©parateur",
+InsertSpecialCharLbl: "CaractÃ¨res spÃ©ciaux",
+InsertSpecialChar	: "InsÃ©rer un caractÃ¨re spÃ©cial",
+InsertSmileyLbl		: "Emoticon",
+InsertSmiley		: "InsÃ©rer un Emoticon",
+About				: "A propos de FCKeditor",
+Bold				: "Gras",
+Italic				: "Italique",
+Underline			: "SoulignÃ©",
+StrikeThrough		: "Barrer",
+Subscript			: "Indice",
+Superscript			: "Exposant",
+LeftJustify			: "Aligner Ã  gauche",
+CenterJustify		: "Centrer",
+RightJustify		: "Aligner Ã  Droite",
+BlockJustify		: "Texte justifiÃ©",
+DecreaseIndent		: "Diminuer le retrait",
+IncreaseIndent		: "Augmenter le retrait",
+Blockquote			: "Citation",
+Undo				: "Annuler",
+Redo				: "Refaire",
+NumberedListLbl		: "Liste numÃ©rotÃ©e",
+NumberedList		: "InsÃ©rer/supprimer la liste numÃ©rotÃ©e",
+BulletedListLbl		: "Liste Ã  puces",
+BulletedList		: "InsÃ©rer/supprimer la liste Ã  puces",
+ShowTableBorders	: "Afficher les bordures du tableau",
+ShowDetails			: "Afficher les caractÃ¨res invisibles",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Police",
+FontSize			: "Taille",
+TextColor			: "Couleur de caractÃ¨re",
+BGColor				: "Couleur de fond",
+Source				: "Source",
+Find				: "Chercher",
+Replace				: "Remplacer",
+SpellCheck			: "Orthographe",
+UniversalKeyboard	: "Clavier universel",
+PageBreakLbl		: "Saut de page",
+PageBreak			: "InsÃ©rer un saut de page",
+
+Form			: "Formulaire",
+Checkbox		: "Case Ã  cocher",
+RadioButton		: "Bouton radio",
+TextField		: "Champ texte",
+Textarea		: "Zone de texte",
+HiddenField		: "Champ cachÃ©",
+Button			: "Bouton",
+SelectionField	: "Champ de sÃ©lection",
+ImageButton		: "Bouton image",
+
+FitWindow		: "Edition pleine page",
+ShowBlocks		: "Afficher les blocs",
+
+// Context Menu
+EditLink			: "Modifier le lien",
+CellCM				: "Cellule",
+RowCM				: "Ligne",
+ColumnCM			: "Colonne",
+InsertRowAfter		: "InsÃ©rer une ligne aprÃ¨s",
+InsertRowBefore		: "InsÃ©rer une ligne avant",
+DeleteRows			: "Supprimer des lignes",
+InsertColumnAfter	: "InsÃ©rer une colonne aprÃ¨s",
+InsertColumnBefore	: "InsÃ©rer une colonne avant",
+DeleteColumns		: "Supprimer des colonnes",
+InsertCellAfter		: "InsÃ©rer une cellule aprÃ¨s",
+InsertCellBefore	: "InsÃ©rer une cellule avant",
+DeleteCells			: "Supprimer des cellules",
+MergeCells			: "Fusionner les cellules",
+MergeRight			: "Fusionner Ã  droite",
+MergeDown			: "Fusionner en bas",
+HorizontalSplitCell	: "Scinder la cellule horizontalement",
+VerticalSplitCell	: "Scinder la cellule verticalement",
+TableDelete			: "Supprimer le tableau",
+CellProperties		: "PropriÃ©tÃ©s de cellule",
+TableProperties		: "PropriÃ©tÃ©s du tableau",
+ImageProperties		: "PropriÃ©tÃ©s de l'image",
+FlashProperties		: "PropriÃ©tÃ©s de l'animation Flash",
+
+AnchorProp			: "PropriÃ©tÃ©s de l'ancre",
+ButtonProp			: "PropriÃ©tÃ©s du bouton",
+CheckboxProp		: "PropriÃ©tÃ©s de la case Ã  cocher",
+HiddenFieldProp		: "PropriÃ©tÃ©s du champ cachÃ©",
+RadioButtonProp		: "PropriÃ©tÃ©s du bouton radio",
+ImageButtonProp		: "PropriÃ©tÃ©s du bouton image",
+TextFieldProp		: "PropriÃ©tÃ©s du champ texte",
+SelectionFieldProp	: "PropriÃ©tÃ©s de la liste/du menu",
+TextareaProp		: "PropriÃ©tÃ©s de la zone de texte",
+FormProp			: "PropriÃ©tÃ©s du formulaire",
+
+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)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Calcul XHTML. Veuillez patienter...",
+Done				: "TerminÃ©",
+PasteWordConfirm	: "Le texte Ã  coller semble provenir de Word. DÃ©sirez-vous le nettoyer avant de coller?",
+NotCompatiblePaste	: "Cette commande nÃ©cessite Internet Explorer version 5.5 et plus. Souhaitez-vous coller sans nettoyage?",
+UnknownToolbarItem	: "Ã‰lÃ©ment de barre d'outil inconnu \"%1\"",
+UnknownCommand		: "Nom de commande inconnu \"%1\"",
+NotImplemented		: "Commande indisponible",
+UnknownToolbarSet	: "La barre d'outils \"%1\" n'existe pas",
+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.",
+BrowseServerBlocked : "Le navigateur n'a pas pu Ãªtre ouvert. Assurez-vous que les bloqueurs de popups soient dÃ©sactivÃ©s.",
+DialogBlocked		: "La fenÃªtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient dÃ©sactivÃ©s.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuler",
+DlgBtnClose			: "Fermer",
+DlgBtnBrowseServer	: "Parcourir le serveur",
+DlgAdvancedTag		: "AvancÃ©e",
+DlgOpOther			: "<autre>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Veuillez saisir l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Par dÃ©faut>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Sens d'Ã©criture",
+DlgGenLangDirLtr	: "De gauche Ã  droite (LTR)",
+DlgGenLangDirRtl	: "De droite Ã  gauche (RTL)",
+DlgGenLangCode		: "Code langue",
+DlgGenAccessKey		: "Ã‰quivalent clavier",
+DlgGenName			: "Nom",
+DlgGenTabIndex		: "Ordre de tabulation",
+DlgGenLongDescr		: "URL de description longue",
+DlgGenClass			: "Classes de feuilles de style",
+DlgGenTitle			: "Titre",
+DlgGenContType		: "Type de contenu",
+DlgGenLinkCharset	: "Encodage de caractÃ¨re",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "PropriÃ©tÃ©s de l'image",
+DlgImgInfoTab		: "Informations sur l'image",
+DlgImgBtnUpload		: "Envoyer sur le serveur",
+DlgImgURL			: "URL",
+DlgImgUpload		: "TÃ©lÃ©charger",
+DlgImgAlt			: "Texte de remplacement",
+DlgImgWidth			: "Largeur",
+DlgImgHeight		: "Hauteur",
+DlgImgLockRatio		: "Garder les proportions",
+DlgBtnResetSize		: "Taille originale",
+DlgImgBorder		: "Bordure",
+DlgImgHSpace		: "Espacement horizontal",
+DlgImgVSpace		: "Espacement vertical",
+DlgImgAlign			: "Alignement",
+DlgImgAlignLeft		: "Gauche",
+DlgImgAlignAbsBottom: "Abs Bas",
+DlgImgAlignAbsMiddle: "Abs Milieu",
+DlgImgAlignBaseline	: "Bas du texte",
+DlgImgAlignBottom	: "Bas",
+DlgImgAlignMiddle	: "Milieu",
+DlgImgAlignRight	: "Droite",
+DlgImgAlignTextTop	: "Haut du texte",
+DlgImgAlignTop		: "Haut",
+DlgImgPreview		: "PrÃ©visualisation",
+DlgImgAlertUrl		: "Veuillez saisir l'URL de l'image",
+DlgImgLinkTab		: "Lien",
+
+// Flash Dialog
+DlgFlashTitle		: "PropriÃ©tÃ©s de l'animation Flash",
+DlgFlashChkPlay		: "Lecture automatique",
+DlgFlashChkLoop		: "Boucle",
+DlgFlashChkMenu		: "Activer le menu Flash",
+DlgFlashScale		: "Affichage",
+DlgFlashScaleAll	: "Par dÃ©faut (tout montrer)",
+DlgFlashScaleNoBorder	: "Sans bordure",
+DlgFlashScaleFit	: "Ajuster aux dimensions",
+
+// Link Dialog
+DlgLnkWindowTitle	: "PropriÃ©tÃ©s du lien",
+DlgLnkInfoTab		: "Informations sur le lien",
+DlgLnkTargetTab		: "Destination",
+
+DlgLnkType			: "Type de lien",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancre dans cette page",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocole",
+DlgLnkProtoOther	: "<autre>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "SÃ©lectionner une ancre",
+DlgLnkAnchorByName	: "Par nom",
+DlgLnkAnchorById	: "Par id",
+DlgLnkNoAnchors		: "(Pas d'ancre disponible dans le document)",
+DlgLnkEMail			: "Adresse E-Mail",
+DlgLnkEMailSubject	: "Sujet du message",
+DlgLnkEMailBody		: "Corps du message",
+DlgLnkUpload		: "TÃ©lÃ©charger",
+DlgLnkBtnUpload		: "Envoyer sur le serveur",
+
+DlgLnkTarget		: "Destination",
+DlgLnkTargetFrame	: "<Cadre>",
+DlgLnkTargetPopup	: "<fenÃªtre popup>",
+DlgLnkTargetBlank	: "Nouvelle fenÃªtre (_blank)",
+DlgLnkTargetParent	: "FenÃªtre mÃ¨re (_parent)",
+DlgLnkTargetSelf	: "MÃªme fenÃªtre (_self)",
+DlgLnkTargetTop		: "FenÃªtre supÃ©rieure (_top)",
+DlgLnkTargetFrameName	: "Nom du cadre de destination",
+DlgLnkPopWinName	: "Nom de la fenÃªtre popup",
+DlgLnkPopWinFeat	: "CaractÃ©ristiques de la fenÃªtre popup",
+DlgLnkPopResize		: "Taille modifiable",
+DlgLnkPopLocation	: "Barre d'adresses",
+DlgLnkPopMenu		: "Barre de menu",
+DlgLnkPopScroll		: "Barres de dÃ©filement",
+DlgLnkPopStatus		: "Barre d'Ã©tat",
+DlgLnkPopToolbar	: "Barre d'outils",
+DlgLnkPopFullScrn	: "Plein Ã©cran (IE)",
+DlgLnkPopDependent	: "DÃ©pendante (Netscape)",
+DlgLnkPopWidth		: "Largeur",
+DlgLnkPopHeight		: "Hauteur",
+DlgLnkPopLeft		: "Position Ã  partir de la gauche",
+DlgLnkPopTop		: "Position Ã  partir du haut",
+
+DlnLnkMsgNoUrl		: "Veuillez saisir l'URL",
+DlnLnkMsgNoEMail	: "Veuillez saisir l'adresse e-mail",
+DlnLnkMsgNoAnchor	: "Veuillez sÃ©lectionner une ancre",
+DlnLnkMsgInvPopName	: "Le nom de la fenÃªtre popup doit commencer par une lettre et ne doit pas contenir d'espace",
+
+// Color Dialog
+DlgColorTitle		: "SÃ©lectionner",
+DlgColorBtnClear	: "Effacer",
+DlgColorHighlight	: "PrÃ©visualisation",
+DlgColorSelected	: "SÃ©lectionnÃ©",
+
+// Smiley Dialog
+DlgSmileyTitle		: "InsÃ©rer un Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "InsÃ©rer un caractÃ¨re spÃ©cial",
+
+// Table Dialog
+DlgTableTitle		: "PropriÃ©tÃ©s du tableau",
+DlgTableRows		: "Lignes",
+DlgTableColumns		: "Colonnes",
+DlgTableBorder		: "Taille de la bordure",
+DlgTableAlign		: "Alignement",
+DlgTableAlignNotSet	: "<Par dÃ©faut>",
+DlgTableAlignLeft	: "Gauche",
+DlgTableAlignCenter	: "CentrÃ©",
+DlgTableAlignRight	: "Droite",
+DlgTableWidth		: "Largeur",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "pourcentage",
+DlgTableHeight		: "Hauteur",
+DlgTableCellSpace	: "Espacement",
+DlgTableCellPad		: "Contour",
+DlgTableCaption		: "Titre",
+DlgTableSummary		: "RÃ©sumÃ©",
+
+// Table Cell Dialog
+DlgCellTitle		: "PropriÃ©tÃ©s de la cellule",
+DlgCellWidth		: "Largeur",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "pourcentage",
+DlgCellHeight		: "Hauteur",
+DlgCellWordWrap		: "Retour Ã  la ligne",
+DlgCellWordWrapNotSet	: "<Par dÃ©faut>",
+DlgCellWordWrapYes	: "Oui",
+DlgCellWordWrapNo	: "Non",
+DlgCellHorAlign		: "Alignement horizontal",
+DlgCellHorAlignNotSet	: "<Par dÃ©faut>",
+DlgCellHorAlignLeft	: "Gauche",
+DlgCellHorAlignCenter	: "CentrÃ©",
+DlgCellHorAlignRight: "Droite",
+DlgCellVerAlign		: "Alignement vertical",
+DlgCellVerAlignNotSet	: "<Par dÃ©faut>",
+DlgCellVerAlignTop	: "Haut",
+DlgCellVerAlignMiddle	: "Milieu",
+DlgCellVerAlignBottom	: "Bas",
+DlgCellVerAlignBaseline	: "Bas du texte",
+DlgCellRowSpan		: "Lignes fusionnÃ©es",
+DlgCellCollSpan		: "Colonnes fusionnÃ©es",
+DlgCellBackColor	: "Couleur de fond",
+DlgCellBorderColor	: "Couleur de bordure",
+DlgCellBtnSelect	: "SÃ©lectionner...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Chercher et Remplacer",
+
+// Find Dialog
+DlgFindTitle		: "Chercher",
+DlgFindFindBtn		: "Chercher",
+DlgFindNotFoundMsg	: "Le texte indiquÃ© est introuvable.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Remplacer",
+DlgReplaceFindLbl		: "Rechercher:",
+DlgReplaceReplaceLbl	: "Remplacer par:",
+DlgReplaceCaseChk		: "Respecter la casse",
+DlgReplaceReplaceBtn	: "Remplacer",
+DlgReplaceReplAllBtn	: "Tout remplacer",
+DlgReplaceWordChk		: "Mot entier",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Coller comme texte",
+PasteFromWord	: "Coller Ã  partir de Word",
+
+DlgPasteMsg2	: "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.",
+DlgPasteSec		: "A cause des paramÃ¨tres de sÃ©curitÃ© de votre navigateur, l'Ã©diteur ne peut accÃ©der au presse-papier directement. Vous devez coller Ã  nouveau le contenu dans cette fenÃªtre.",
+DlgPasteIgnoreFont		: "Ignorer les polices de caractÃ¨res",
+DlgPasteRemoveStyles	: "Supprimer les styles",
+
+// Color Picker
+ColorAutomatic	: "Automatique",
+ColorMoreColors	: "Plus de couleurs...",
+
+// Document Properties
+DocProps		: "PropriÃ©tÃ©s du document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "PropriÃ©tÃ©s de l'ancre",
+DlgAnchorName		: "Nom de l'ancre",
+DlgAnchorErrorName	: "Veuillez saisir le nom de l'ancre",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Pas dans le dictionnaire",
+DlgSpellChangeTo		: "Changer en",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer tout",
+DlgSpellBtnReplace		: "Remplacer",
+DlgSpellBtnReplaceAll	: "Remplacer tout",
+DlgSpellBtnUndo			: "Annuler",
+DlgSpellNoSuggestions	: "- Pas de suggestion -",
+DlgSpellProgress		: "VÃ©rification d'orthographe en cours...",
+DlgSpellNoMispell		: "VÃ©rification d'orthographe terminÃ©e: pas d'erreur trouvÃ©e",
+DlgSpellNoChanges		: "VÃ©rification d'orthographe terminÃ©e: Pas de modifications",
+DlgSpellOneChange		: "VÃ©rification d'orthographe terminÃ©e: Un mot modifiÃ©",
+DlgSpellManyChanges		: "VÃ©rification d'orthographe terminÃ©e: %1 mots modifiÃ©s",
+
+IeSpellDownload			: "Le Correcteur d'orthographe n'est pas installÃ©. Souhaitez-vous le tÃ©lÃ©charger maintenant?",
+
+// Button Dialog
+DlgButtonText		: "Texte (Valeur)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Bouton",
+DlgButtonTypeSbm	: "Soumettre",
+DlgButtonTypeRst	: "RÃ©initialiser",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nom",
+DlgCheckboxValue	: "Valeur",
+DlgCheckboxSelected	: "SÃ©lectionnÃ©",
+
+// Form Dialog
+DlgFormName		: "Nom",
+DlgFormAction	: "Action",
+DlgFormMethod	: "MÃ©thode",
+
+// Select Field Dialog
+DlgSelectName		: "Nom",
+DlgSelectValue		: "Valeur",
+DlgSelectSize		: "Taille",
+DlgSelectLines		: "lignes",
+DlgSelectChkMulti	: "SÃ©lection multiple",
+DlgSelectOpAvail	: "Options disponibles",
+DlgSelectOpText		: "Texte",
+DlgSelectOpValue	: "Valeur",
+DlgSelectBtnAdd		: "Ajouter",
+DlgSelectBtnModify	: "Modifier",
+DlgSelectBtnUp		: "Monter",
+DlgSelectBtnDown	: "Descendre",
+DlgSelectBtnSetValue : "Valeur sÃ©lectionnÃ©e",
+DlgSelectBtnDelete	: "Supprimer",
+
+// Textarea Dialog
+DlgTextareaName	: "Nom",
+DlgTextareaCols	: "Colonnes",
+DlgTextareaRows	: "Lignes",
+
+// Text Field Dialog
+DlgTextName			: "Nom",
+DlgTextValue		: "Valeur",
+DlgTextCharWidth	: "Largeur en caractÃ¨res",
+DlgTextMaxChars		: "Nombre maximum de caractÃ¨res",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Texte",
+DlgTextTypePass		: "Mot de passe",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nom",
+DlgHiddenValue	: "Valeur",
+
+// Bulleted List Dialog
+BulletedListProp	: "PropriÃ©tÃ©s de liste Ã  puces",
+NumberedListProp	: "PropriÃ©tÃ©s de liste numÃ©rotÃ©e",
+DlgLstStart			: "DÃ©but",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Cercle",
+DlgLstTypeDisc		: "Disque",
+DlgLstTypeSquare	: "CarrÃ©",
+DlgLstTypeNumbers	: "Nombres (1, 2, 3)",
+DlgLstTypeLCase		: "Lettres minuscules (a, b, c)",
+DlgLstTypeUCase		: "Lettres majuscules (A, B, C)",
+DlgLstTypeSRoman	: "Chiffres romains minuscules (i, ii, iii)",
+DlgLstTypeLRoman	: "Chiffres romains majuscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "GÃ©nÃ©ral",
+DlgDocBackTab		: "Fond",
+DlgDocColorsTab		: "Couleurs et Marges",
+DlgDocMetaTab		: "MÃ©ta-DonnÃ©es",
+
+DlgDocPageTitle		: "Titre de la page",
+DlgDocLangDir		: "Sens d'Ã©criture",
+DlgDocLangDirLTR	: "De la gauche vers la droite (LTR)",
+DlgDocLangDirRTL	: "De la droite vers la gauche (RTL)",
+DlgDocLangCode		: "Code langue",
+DlgDocCharSet		: "Encodage de caractÃ¨re",
+DlgDocCharSetCE		: "Europe Centrale",
+DlgDocCharSetCT		: "Chinois Traditionnel (Big5)",
+DlgDocCharSetCR		: "Cyrillique",
+DlgDocCharSetGR		: "Grecque",
+DlgDocCharSetJP		: "Japonais",
+DlgDocCharSetKR		: "CorÃ©en",
+DlgDocCharSetTR		: "Turcque",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Occidental",
+DlgDocCharSetOther	: "Autre encodage de caractÃ¨re",
+
+DlgDocDocType		: "Type de document",
+DlgDocDocTypeOther	: "Autre type de document",
+DlgDocIncXHTML		: "Inclure les dÃ©clarations XHTML",
+DlgDocBgColor		: "Couleur de fond",
+DlgDocBgImage		: "Image de fond",
+DlgDocBgNoScroll	: "Image fixe sans dÃ©filement",
+DlgDocCText			: "Texte",
+DlgDocCLink			: "Lien",
+DlgDocCVisited		: "Lien visitÃ©",
+DlgDocCActive		: "Lien activÃ©",
+DlgDocMargins		: "Marges",
+DlgDocMaTop			: "Haut",
+DlgDocMaLeft		: "Gauche",
+DlgDocMaRight		: "Droite",
+DlgDocMaBottom		: "Bas",
+DlgDocMeIndex		: "Mots-clÃ©s (sÃ©parÃ©s par des virgules)",
+DlgDocMeDescr		: "Description",
+DlgDocMeAuthor		: "Auteur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "PrÃ©visualisation",
+
+// Templates Dialog
+Templates			: "ModÃ¨les",
+DlgTemplatesTitle	: "ModÃ¨les de contenu",
+DlgTemplatesSelMsg	: "SÃ©lectionner le modÃ¨le Ã  ouvrir dans l'Ã©diteur<br>(le contenu actuel sera remplacÃ©):",
+DlgTemplatesLoading	: "Chargement de la liste des modÃ¨les. Veuillez patienter...",
+DlgTemplatesNoTpl	: "(Aucun modÃ¨le disponible)",
+DlgTemplatesReplace	: "Remplacer tout le contenu actuel",
+
+// About Dialog
+DlgAboutAboutTab	: "Ã propos de",
+DlgAboutBrowserInfoTab	: "Navigateur",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "Version",
+DlgAboutInfo		: "Pour plus d'informations, visiter"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nb.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nb.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nb.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Norwegian BokmÃ¥l language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul verktÃ¸ylinje",
+ToolbarExpand		: "Vis verktÃ¸ylinje",
+
+// Toolbar Items and Context Menu
+Save				: "Lagre",
+NewPage				: "Ny Side",
+Preview				: "ForhÃ¥ndsvis",
+Cut					: "Klipp ut",
+Copy				: "Kopier",
+Paste				: "Lim inn",
+PasteText			: "Lim inn som ren tekst",
+PasteWord			: "Lim inn fra Word",
+Print				: "Skriv ut",
+SelectAll			: "Merk alt",
+RemoveFormat		: "Fjern format",
+InsertLinkLbl		: "Lenke",
+InsertLink			: "Sett inn/Rediger lenke",
+RemoveLink			: "Fjern lenke",
+Anchor				: "Sett inn/Rediger anker",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Bilde",
+InsertImage			: "Sett inn/Rediger bilde",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sett inn/Rediger Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Sett inn/Rediger tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Sett inn horisontal linje",
+InsertSpecialCharLbl: "Spesielt tegn",
+InsertSpecialChar	: "Sett inn spesielt tegn",
+InsertSmileyLbl		: "Smil",
+InsertSmiley		: "Sett inn smil",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understrek",
+StrikeThrough		: "Gjennomstrek",
+Subscript			: "Senket skrift",
+Superscript			: "Hevet skrift",
+LeftJustify			: "Venstrejuster",
+CenterJustify		: "Midtjuster",
+RightJustify		: "HÃ¸yrejuster",
+BlockJustify		: "Blokkjuster",
+DecreaseIndent		: "Senk nivÃ¥",
+IncreaseIndent		: "Ã˜k nivÃ¥",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Angre",
+Redo				: "GjÃ¸r om",
+NumberedListLbl		: "Numrert liste",
+NumberedList		: "Sett inn/Fjern numrert liste",
+BulletedListLbl		: "Uordnet liste",
+BulletedList		: "Sett inn/Fjern uordnet liste",
+ShowTableBorders	: "Vis tabellrammer",
+ShowDetails			: "Vis detaljer",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Skrift",
+FontSize			: "StÃ¸rrelse",
+TextColor			: "Tekstfarge",
+BGColor				: "Bakgrunnsfarge",
+Source				: "Kilde",
+Find				: "Finn",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Sjekkboks",
+RadioButton		: "Radioknapp",
+TextField		: "Tekstfelt",
+Textarea		: "TekstomrÃ¥de",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Dropdown meny",
+ImageButton		: "Bildeknapp",
+
+FitWindow		: "Maksimer stÃ¸rrelsen pÃ¥ redigeringsverktÃ¸yet",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Slett rader",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Slett kolonner",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Slett celler",
+MergeCells			: "SlÃ¥ sammen celler",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Slett tabell",
+CellProperties		: "Celleegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildeegenskaper",
+FlashProperties		: "Flash Egenskaper",
+
+AnchorProp			: "Ankeregenskaper",
+ButtonProp			: "Knappegenskaper",
+CheckboxProp		: "Sjekkboksegenskaper",
+HiddenFieldProp		: "Skjult felt egenskaper",
+RadioButtonProp		: "Radioknappegenskaper",
+ImageButtonProp		: "Bildeknappegenskaper",
+TextFieldProp		: "Tekstfeltegenskaper",
+SelectionFieldProp	: "Dropdown menyegenskaper",
+TextareaProp		: "Tekstfeltegenskaper",
+FormProp			: "Skjemaegenskaper",
+
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Lager XHTML. Vennligst vent...",
+Done				: "Ferdig",
+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?",
+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)",
+UnknownToolbarItem	: "Ukjent menyvalg \"%1\"",
+UnknownCommand		: "Ukjent kommando \"%1\"",
+NotImplemented		: "Kommando ikke ennÃ¥ implimentert",
+UnknownToolbarSet	: "VerktÃ¸ylinjesett \"%1\" finnes ikke",
+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",
+BrowseServerBlocked : "Kunne ikke Ã¥pne dialogboksen for filarkiv. Pass pÃ¥ at du har slÃ¥tt av popupstoppere.",
+DialogBlocked		: "Kunne ikke Ã¥pne dialogboksen. Pass pÃ¥ at du har slÃ¥tt av popupstoppere.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Lukk",
+DlgBtnBrowseServer	: "Bla igjennom server",
+DlgAdvancedTag		: "Avansert",
+DlgOpOther			: "<Annet>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Vennligst skriv inn URL'en",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikke satt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "SprÃ¥kretning",
+DlgGenLangDirLtr	: "Venstre til hÃ¸yre (VTH)",
+DlgGenLangDirRtl	: "HÃ¸yre til venstre (HTV)",
+DlgGenLangCode		: "SprÃ¥k kode",
+DlgGenAccessKey		: "Aksessknapp",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Utvidet beskrivelse",
+DlgGenClass			: "Stilarkklasser",
+DlgGenTitle			: "Tittel",
+DlgGenContType		: "Type",
+DlgGenLinkCharset	: "Lenket sprÃ¥kkart",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Bildeegenskaper",
+DlgImgInfoTab		: "Bildeinformasjon",
+DlgImgBtnUpload		: "Send det til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Last opp",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "HÃ¸yde",
+DlgImgLockRatio		: "LÃ¥s forhold",
+DlgBtnResetSize		: "Tilbakestill stÃ¸rrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMarg",
+DlgImgVSpace		: "VMarg",
+DlgImgAlign			: "Juster",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Abs bunn",
+DlgImgAlignAbsMiddle: "Abs midten",
+DlgImgAlignBaseline	: "Bunnlinje",
+DlgImgAlignBottom	: "Bunn",
+DlgImgAlignMiddle	: "Midten",
+DlgImgAlignRight	: "HÃ¸yre",
+DlgImgAlignTextTop	: "Tekst topp",
+DlgImgAlignTop		: "Topp",
+DlgImgPreview		: "ForhÃ¥ndsvis",
+DlgImgAlertUrl		: "Vennligst skriv bildeurlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Egenskaper",
+DlgFlashChkPlay		: "Auto Spill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "SlÃ¥ pÃ¥ Flash meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til Ã¥ passeExact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Lenke",
+DlgLnkInfoTab		: "Lenkeinfo",
+DlgLnkTargetTab		: "MÃ¥l",
+
+DlgLnkType			: "Lenketype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Lenke til anker i teksten",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<annet>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Velg ett anker",
+DlgLnkAnchorByName	: "Anker etter navn",
+DlgLnkAnchorById	: "Element etter ID",
+DlgLnkNoAnchors		: "(Ingen anker i dokumentet)",
+DlgLnkEMail			: "E-postadresse",
+DlgLnkEMailSubject	: "Meldingsemne",
+DlgLnkEMailBody		: "Melding",
+DlgLnkUpload		: "Last opp",
+DlgLnkBtnUpload		: "Send til server",
+
+DlgLnkTarget		: "MÃ¥l",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
+DlgLnkTargetBlank	: "Nytt vindu (_blank)",
+DlgLnkTargetParent	: "Foreldre vindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "MÃ¥lramme",
+DlgLnkPopWinName	: "Popup vindus navn",
+DlgLnkPopWinFeat	: "Popup vindus egenskaper",
+DlgLnkPopResize		: "Endre stÃ¸rrelse",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menylinje",
+DlgLnkPopScroll		: "Scrollbar",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "VerktÃ¸ylinje",
+DlgLnkPopFullScrn	: "Full skjerm (IE)",
+DlgLnkPopDependent	: "Avhenging (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "HÃ¸yde",
+DlgLnkPopLeft		: "Venstre posisjon",
+DlgLnkPopTop		: "Topp posisjon",
+
+DlnLnkMsgNoUrl		: "Vennligst skriv inn lenkens url",
+DlnLnkMsgNoEMail	: "Vennligst skriv inn e-postadressen",
+DlnLnkMsgNoAnchor	: "Vennligst velg ett anker",
+DlnLnkMsgInvPopName	: "Popup vinduets navn mÃ¥ begynne med en bokstav, og kan ikke inneholde mellomrom",
+
+// Color Dialog
+DlgColorTitle		: "Velg farge",
+DlgColorBtnClear	: "TÃ¸m",
+DlgColorHighlight	: "Marker",
+DlgColorSelected	: "Velg",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "RammestÃ¸rrelse",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikke satt>",
+DlgTableAlignLeft	: "Venstre",
+DlgTableAlignCenter	: "Midtjuster",
+DlgTableAlignRight	: "HÃ¸yre",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "piksler",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "HÃ¸yde",
+DlgTableCellSpace	: "Celle marg",
+DlgTableCellPad		: "Celle polstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+
+// Table Cell Dialog
+DlgCellTitle		: "Celleegenskaper",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "piksler",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "HÃ¸yde",
+DlgCellWordWrap		: "Tekstbrytning",
+DlgCellWordWrapNotSet	: "<Ikke satt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke satt>",
+DlgCellHorAlignLeft	: "Venstre",
+DlgCellHorAlignCenter	: "Midtjuster",
+DlgCellHorAlignRight: "HÃ¸yre",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ikke satt>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Midten",
+DlgCellVerAlignBottom	: "Bunn",
+DlgCellVerAlignBaseline	: "Bunnlinje",
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Den spesifiserte teksten ble ikke funnet.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Finn hva:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Riktig case",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Finn hele ordet",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
+
+PasteAsText		: "Lim inn som ren tekst",
+PasteFromWord	: "Lim inn fra word",
+
+DlgPasteMsg2	: "Vennligst lim inn i den fÃ¸lgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Fjern skrifttyper",
+DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankeregenskaper",
+DlgAnchorName		: "Ankernavn",
+DlgAnchorErrorName	: "Vennligst skriv inn ankernavnet",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordboken",
+DlgSpellChangeTo		: "Endre til",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstatt",
+DlgSpellBtnReplaceAll	: "Erstatt alle",
+DlgSpellBtnUndo			: "Angre",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontroll pÃ¥gÃ¥r...",
+DlgSpellNoMispell		: "Stavekontroll fullfÃ¸rt: ingen feilstavinger funnet",
+DlgSpellNoChanges		: "Stavekontroll fullfÃ¸rt: ingen ord endret",
+DlgSpellOneChange		: "Stavekontroll fullfÃ¸rt: Ett ord endret",
+DlgSpellManyChanges		: "Stavekontroll fullfÃ¸rt: %1 ord endret",
+
+IeSpellDownload			: "Stavekontroll ikke installert, vil du laste den ned nÃ¥?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Knapp",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstill",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Verdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Verdi",
+DlgSelectSize		: "StÃ¸rrelse",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillat flervalg",
+DlgSelectOpAvail	: "Tilgjenglige alternativer",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Verdi",
+DlgSelectBtnAdd		: "Legg til",
+DlgSelectBtnModify	: "Endre",
+DlgSelectBtnUp		: "Opp",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sett som valgt",
+DlgSelectBtnDelete	: "Slett",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "verdi",
+DlgTextCharWidth	: "Tegnbredde",
+DlgTextMaxChars		: "Maks antall tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Passord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Verdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Uordnet listeegenskaper",
+NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Hel sirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Numre(1, 2, 3)",
+DlgLstTypeLCase		: "SmÃ¥ bokstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bokstaver(A, B, C)",
+DlgLstTypeSRoman	: "SmÃ¥ romerske tall(i, ii, iii)",
+DlgLstTypeLRoman	: "Store romerske tall(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generalt",
+DlgDocBackTab		: "Bakgrunn",
+DlgDocColorsTab		: "Farger og marginer",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Sidetittel",
+DlgDocLangDir		: "SprÃ¥kretning",
+DlgDocLangDirLTR	: "Venstre til hÃ¸yre (LTR)",
+DlgDocLangDirRTL	: "HÃ¸yre til venstre (RTL)",
+DlgDocLangCode		: "SprÃ¥kkode",
+DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Sentraleuropeisk",
+DlgDocCharSetCT		: "Tradisonell kinesisk(Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Gresk",
+DlgDocCharSetJP		: "Japansk",
+DlgDocCharSetKR		: "Koreansk",
+DlgDocCharSetTR		: "Tyrkisk",
+DlgDocCharSetUN		: "Unikode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkulder XHTML deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "Bakgrunnsbilde url",
+DlgDocBgNoScroll	: "Ikke scroll bakgrunnsbilde",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "BesÃ¸kt lenke",
+DlgDocCActive		: "Aktiv lenke",
+DlgDocMargins		: "Sidemargin",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "HÃ¸yre",
+DlgDocMaBottom		: "Bunn",
+DlgDocMeIndex		: "Dokument nÃ¸kkelord (kommaseparert)",
+DlgDocMeDescr		: "Dokumentbeskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Kopirett",
+DlgDocPreview		: "ForhÃ¥ndsvising",
+
+// Templates Dialog
+Templates			: "Maler",
+DlgTemplatesTitle	: "Innholdsmaler",
+DlgTemplatesSelMsg	: "Velg malen du vil Ã¥pne<br>(innholdet du har skrevet blir tapt!):",
+DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
+DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Erstatt faktisk innold",
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
+DlgAboutVersion		: "versjon",
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bn.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bn.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bn.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bengali/Bangla language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "à¦Ÿà§‚à¦²à¦¬à¦¾à¦° à¦—à§à¦Ÿà¦¿à§Ÿà§‡ à¦¦à¦¾à¦“",
+ToolbarExpand		: "à¦Ÿà§‚à¦²à¦¬à¦¾à¦° à¦›à§œà¦¿à§Ÿà§‡ à¦¦à¦¾à¦“",
+
+// Toolbar Items and Context Menu
+Save				: "à¦¸à¦‚à¦°à¦•à§à¦·à¦¨ à¦•à¦°",
+NewPage				: "à¦¨à¦¤à§à¦¨ à¦ªà§‡à¦œ",
+Preview				: "à¦ªà§à¦°à¦¿à¦­à¦¿à¦‰",
+Cut					: "à¦•à¦¾à¦Ÿ",
+Copy				: "à¦•à¦ªà¦¿",
+Paste				: "à¦ªà§‡à¦¸à§à¦Ÿ",
+PasteText			: "à¦ªà§‡à¦¸à§à¦Ÿ (à¦¸à¦¾à¦¦à¦¾ à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ)",
+PasteWord			: "à¦ªà§‡à¦¸à§à¦Ÿ (à¦¶à¦¬à§à¦¦)",
+Print				: "à¦ªà§à¦°à¦¿à¦¨à§à¦Ÿ",
+SelectAll			: "à¦¸à¦¬ à¦¸à¦¿à¦²à§‡à¦•à§à¦Ÿ à¦•à¦°",
+RemoveFormat		: "à¦«à¦°à¦®à§‡à¦Ÿ à¦¸à¦°à¦¾à¦“",
+InsertLinkLbl		: "à¦²à¦¿à¦‚à¦•à§‡à¦° à¦¯à§à¦•à§à¦¤ à¦•à¦°à¦¾à¦° à¦²à§‡à¦¬à§‡à¦²",
+InsertLink			: "à¦²à¦¿à¦‚à¦• à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+RemoveLink			: "à¦²à¦¿à¦‚à¦• à¦¸à¦°à¦¾à¦“",
+Anchor				: "à¦¨à§‹à¦™à§à¦—à¦°",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "à¦›à¦¬à¦¿à¦° à¦²à§‡à¦¬à§‡à¦² à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertImage			: "à¦›à¦¬à¦¿ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertFlashLbl		: "à¦«à§à¦²à¦¾à¦¶ à¦²à§‡à¦¬à§‡à¦² à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertFlash			: "à¦«à§à¦²à¦¾à¦¶ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertTableLbl		: "à¦Ÿà§‡à¦¬à¦¿à¦²à§‡à¦° à¦²à§‡à¦¬à§‡à¦² à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertTable			: "à¦Ÿà§‡à¦¬à¦¿à¦² à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertLineLbl		: "à¦°à§‡à¦–à¦¾ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertLine			: "à¦°à§‡à¦–à¦¾ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertSpecialCharLbl: "à¦¬à¦¿à¦¶à§‡à¦· à¦…à¦•à§à¦·à¦°à§‡à¦° à¦²à§‡à¦¬à§‡à¦² à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertSpecialChar	: "à¦¬à¦¿à¦¶à§‡à¦· à¦…à¦•à§à¦·à¦° à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+InsertSmileyLbl		: "à¦¸à§à¦®à¦¾à¦‡à¦²à§€",
+InsertSmiley		: "à¦¸à§à¦®à¦¾à¦‡à¦²à§€ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+About				: "FCKeditor à¦•à§‡ à¦¬à¦¾à¦¨à¦¿à§Ÿà§‡à¦›à§‡",
+Bold				: "à¦¬à§‹à¦²à§à¦¡",
+Italic				: "à¦‡à¦Ÿà¦¾à¦²à¦¿à¦•",
+Underline			: "à¦†à¦¨à§à¦¡à¦¾à¦°à¦²à¦¾à¦‡à¦¨",
+StrikeThrough		: "à¦¸à§à¦Ÿà§à¦°à¦¾à¦‡à¦• à¦¥à§à¦°à§",
+Subscript			: "à¦…à¦§à§‹à¦²à§‡à¦–",
+Superscript			: "à¦…à¦­à¦¿à¦²à§‡à¦–",
+LeftJustify			: "à¦¬à¦¾ à¦¦à¦¿à¦•à§‡ à¦˜à§‡à¦à¦·à¦¾",
+CenterJustify		: "à¦®à¦¾à¦ à¦¬à¦°à¦¾à¦¬à¦° à¦˜à§‡à¦·à¦¾",
+RightJustify		: "à¦¡à¦¾à¦¨ à¦¦à¦¿à¦•à§‡ à¦˜à§‡à¦à¦·à¦¾",
+BlockJustify		: "à¦¬à§à¦²à¦• à¦œà¦¾à¦¸à§à¦Ÿà¦¿à¦«à¦¾à¦‡",
+DecreaseIndent		: "à¦‡à¦¨à¦¡à§‡à¦¨à§à¦Ÿ à¦•à¦®à¦¾à¦“",
+IncreaseIndent		: "à¦‡à¦¨à¦¡à§‡à¦¨à§à¦Ÿ à¦¬à¦¾à§œà¦¾à¦“",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "à¦†à¦¨à¦¡à§",
+Redo				: "à¦°à¦¿-à¦¡à§",
+NumberedListLbl		: "à¦¸à¦¾à¦‚à¦–à§à¦¯à¦¿à¦• à¦²à¦¿à¦¸à§à¦Ÿà§‡à¦° à¦²à§‡à¦¬à§‡à¦²",
+NumberedList		: "à¦¸à¦¾à¦‚à¦–à§à¦¯à¦¿à¦• à¦²à¦¿à¦¸à§à¦Ÿ",
+BulletedListLbl		: "à¦¬à§à¦²à§‡à¦Ÿ à¦²à¦¿à¦¸à§à¦Ÿ à¦²à§‡à¦¬à§‡à¦²",
+BulletedList		: "à¦¬à§à¦²à§‡à¦Ÿà§‡à¦¡ à¦²à¦¿à¦¸à§à¦Ÿ",
+ShowTableBorders	: "à¦Ÿà§‡à¦¬à¦¿à¦² à¦¬à¦°à§à¦¡à¦¾à¦°",
+ShowDetails			: "à¦¸à¦¬à¦Ÿà§à¦•à§ à¦¦à§‡à¦–à¦¾à¦“",
+Style				: "à¦¸à§à¦Ÿà¦¾à¦‡à¦²",
+FontFormat			: "à¦«à¦¨à§à¦Ÿ à¦«à¦°à¦®à§‡à¦Ÿ",
+Font				: "à¦«à¦¨à§à¦Ÿ",
+FontSize			: "à¦¸à¦¾à¦‡à¦œ",
+TextColor			: "à¦Ÿà§‡à¦•à§à¦¸à§à¦Ÿ à¦°à¦‚",
+BGColor				: "à¦¬à§‡à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ à¦°à¦‚",
+Source				: "à¦¸à§‹à¦°à§à¦¸",
+Find				: "à¦–à§‹à¦œà§‹",
+Replace				: "à¦°à¦¿à¦ªà§à¦²à§‡à¦¸",
+SpellCheck			: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦šà§‡à¦•",
+UniversalKeyboard	: "à¦¸à¦¾à¦°à§à¦¬à¦œà¦¨à§€à¦¨ à¦•à¦¿à¦¬à§‹à¦°à§à¦¡",
+PageBreakLbl		: "à¦ªà§‡à¦œ à¦¬à§à¦°à§‡à¦• à¦²à§‡à¦¬à§‡à¦²",
+PageBreak			: "à¦ªà§‡à¦œ à¦¬à§à¦°à§‡à¦•",
+
+Form			: "à¦«à¦°à§à¦®",
+Checkbox		: "à¦šà§‡à¦• à¦¬à¦¾à¦•à§à¦¸",
+RadioButton		: "à¦°à§‡à¦¡à¦¿à¦“ à¦¬à¦¾à¦Ÿà¦¨",
+TextField		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦«à§€à¦²à§à¦¡",
+Textarea		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦à¦°à¦¿à§Ÿà¦¾",
+HiddenField		: "à¦—à§à¦ªà§à¦¤ à¦«à§€à¦²à§à¦¡",
+Button			: "à¦¬à¦¾à¦Ÿà¦¨",
+SelectionField	: "à¦¬à¦¾à¦›à¦¾à¦‡ à¦«à§€à¦²à§à¦¡",
+ImageButton		: "à¦›à¦¬à¦¿à¦° à¦¬à¦¾à¦Ÿà¦¨",
+
+FitWindow		: "à¦‰à¦‡à¦¨à§à¦¡à§‹ à¦«à¦¿à¦Ÿ à¦•à¦°",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "à¦²à¦¿à¦‚à¦• à¦¸à¦®à§à¦ªà¦¾à¦¦à¦¨",
+CellCM				: "à¦¸à§‡à¦²",
+RowCM				: "à¦°à§‹",
+ColumnCM			: "à¦•à¦²à¦¾à¦®",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "à¦°à§‹ à¦®à§à¦›à§‡ à¦¦à¦¾à¦“",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "à¦•à¦²à¦¾à¦® à¦®à§à¦›à§‡ à¦¦à¦¾à¦“",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "à¦¸à§‡à¦² à¦®à§à¦›à§‡ à¦¦à¦¾à¦“",
+MergeCells			: "à¦¸à§‡à¦² à¦œà§‹à§œà¦¾ à¦¦à¦¾à¦“",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "à¦Ÿà§‡à¦¬à¦¿à¦² à¦¡à¦¿à¦²à§€à¦Ÿ à¦•à¦°",
+CellProperties		: "à¦¸à§‡à¦²à§‡à¦° à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿à¦œ",
+TableProperties		: "à¦Ÿà§‡à¦¬à¦¿à¦² à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+ImageProperties		: "à¦›à¦¬à¦¿ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+FlashProperties		: "à¦«à§à¦²à¦¾à¦¶ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+
+AnchorProp			: "à¦¨à§‹à¦™à¦° à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+ButtonProp			: "à¦¬à¦¾à¦Ÿà¦¨ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+CheckboxProp		: "à¦šà§‡à¦• à¦¬à¦•à§à¦¸ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+HiddenFieldProp		: "à¦—à§à¦ªà§à¦¤ à¦«à§€à¦²à§à¦¡ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+RadioButtonProp		: "à¦°à§‡à¦¡à¦¿à¦“ à¦¬à¦¾à¦Ÿà¦¨ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+ImageButtonProp		: "à¦›à¦¬à¦¿ à¦¬à¦¾à¦Ÿà¦¨ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+TextFieldProp		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦«à§€à¦²à§à¦¡ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+SelectionFieldProp	: "à¦¬à¦¾à¦›à¦¾à¦‡ à¦«à§€à¦²à§à¦¡ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+TextareaProp		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦à¦°à¦¿à§Ÿà¦¾ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+FormProp			: "à¦«à¦°à§à¦® à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+
+FontFormats			: "à¦¸à¦¾à¦§à¦¾à¦°à¦£;à¦«à¦°à§à¦®à§‡à¦Ÿà§‡à¦¡;à¦ à¦¿à¦•à¦¾à¦¨à¦¾;à¦¶à§€à¦°à§à¦·à¦• à§§;à¦¶à§€à¦°à§à¦·à¦• à§¨;à¦¶à§€à¦°à§à¦·à¦• à§©;à¦¶à§€à¦°à§à¦·à¦• à§ª;à¦¶à§€à¦°à§à¦·à¦• à§«;à¦¶à§€à¦°à§à¦·à¦• à§¬;à¦¶à§€à¦°à§à¦·à¦• (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML à¦ªà§à¦°à¦¸à§‡à¦¸ à¦•à¦°à¦¾ à¦¹à¦šà§à¦›à§‡",
+Done				: "à¦¶à§‡à¦· à¦¹à§Ÿà§‡à¦›à§‡",
+PasteWordConfirm	: "à¦¯à§‡ à¦Ÿà§‡à¦•à¦¸à§à¦Ÿà¦Ÿà¦¿ à¦†à¦ªà¦¨à¦¿ à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°à¦¤à§‡ à¦šà¦¾à¦šà§à¦›à§‡à¦¨ à¦®à¦¨à§‡ à¦¹à¦šà§à¦›à§‡ à¦¸à§‡à¦Ÿà¦¿ à¦“à§Ÿà¦¾à¦°à§à¦¡ à¦¥à§‡à¦•à§‡ à¦•à¦ªà¦¿ à¦•à¦°à¦¾à¥¤ à¦†à¦ªà¦¨à¦¿ à¦•à¦¿ à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°à¦¾à¦° à¦†à¦—à§‡ à¦à¦•à§‡ à¦ªà¦°à¦¿à¦·à§à¦•à¦¾à¦° à¦•à¦°à¦¤à§‡ à¦šà¦¾à¦¨?",
+NotCompatiblePaste	: "à¦à¦‡ à¦•à¦®à¦¾à¦¨à§à¦¡à¦Ÿà¦¿ à¦¶à§à¦§à§à¦®à¦¾à¦¤à§à¦° à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ à¦à¦•à§à¦¸à¦ªà§à¦²à§‹à¦°à¦¾à¦° à§«.à§¦ à¦¬à¦¾ à¦¤à¦¾à¦° à¦ªà¦°à§‡à¦° à¦­à¦¾à¦°à§à¦¸à¦¨à§‡ à¦ªà¦¾à¦“à§Ÿà¦¾ à¦¸à¦®à§à¦­à¦¬à¥¤ à¦†à¦ªà¦¨à¦¿ à¦•à¦¿ à¦ªà¦°à¦¿à¦·à§à¦•à¦¾à¦° à¦¨à¦¾ à¦•à¦°à§‡à¦‡ à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°à¦¤à§‡ à¦šà¦¾à¦¨?",
+UnknownToolbarItem	: "à¦…à¦œà¦¾à¦¨à¦¾ à¦Ÿà§à¦²à¦¬à¦¾à¦° à¦†à¦‡à¦Ÿà§‡à¦® \"%1\"",
+UnknownCommand		: "à¦…à¦œà¦¾à¦¨à¦¾ à¦•à¦®à¦¾à¦¨à§à¦¡ \"%1\"",
+NotImplemented		: "à¦•à¦®à¦¾à¦¨à§à¦¡ à¦‡à¦®à¦ªà§à¦²à¦¿à¦®à§‡à¦¨à§à¦Ÿ à¦•à¦°à¦¾ à¦¹à§Ÿà¦¨à¦¿",
+UnknownToolbarSet	: "à¦Ÿà§à¦²à¦¬à¦¾à¦° à¦¸à§‡à¦Ÿ \"%1\" à¦à¦° à¦…à¦¸à§à¦¤à¦¿à¦¤à§à¦¬ à¦¨à§‡à¦‡",
+NoActiveX			: "à¦†à¦ªà¦¨à¦¾à¦° à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° à¦¸à§à¦°à¦•à§à¦·à¦¾ à¦¸à§‡à¦Ÿà¦¿à¦‚à¦¸ à¦•à¦¾à¦°à¦¨à§‡ à¦à¦¡à¦¿à¦Ÿà¦°à§‡à¦° à¦•à¦¿à¦›à§ à¦«à¦¿à¦šà¦¾à¦° à¦ªà¦¾à¦“à§Ÿà¦¾ à¦¨à¦¾à¦“ à¦¯à§‡à¦¤à§‡ à¦ªà¦¾à¦°à§‡à¥¤ à¦†à¦ªà¦¨à¦¾à¦•à§‡ à¦…à¦¬à¦¶à§à¦¯à¦‡ \"Run ActiveX controls and plug-ins\" à¦à¦¨à¦¾à¦¬à§‡à¦² à¦•à¦°à§‡ à¦¨à¦¿à¦¤à§‡ à¦¹à¦¬à§‡à¥¤ à¦†à¦ªà¦¨à¦¿ à¦­à§à¦²à¦­à§à¦°à¦¾à¦¨à§à¦¤à¦¿ à¦•à¦¿à¦›à§ à¦•à¦¿à¦›à§ à¦«à¦¿à¦šà¦¾à¦°à§‡à¦° à¦…à¦¨à§à¦ªà¦¸à§à¦¥à¦¿à¦¤à¦¿ à¦‰à¦ªà¦²à¦¬à§à¦§à¦¿ à¦•à¦°à¦¤à§‡ à¦ªà¦¾à¦°à§‡à¦¨à¥¤",
+BrowseServerBlocked : "à¦°à¦¿à¦¸à§‹à¦°à§à¦¸ à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦° à¦–à§‹à¦²à¦¾ à¦—à§‡à¦² à¦¨à¦¾à¥¤ à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤ à¦•à¦°à§à¦¨ à¦¯à§‡ à¦¸à¦¬ à¦ªà¦ªà¦†à¦ª à¦¬à§à¦²à¦•à¦¾à¦° à¦¬à¦¨à§à¦§ à¦•à¦°à¦¾ à¦†à¦›à§‡à¥¤",
+DialogBlocked		: "à¦¡à¦¾à§Ÿà¦¾à¦²à¦— à¦‡à¦‰à¦¨à§à¦¡à§‹ à¦–à§‹à¦²à¦¾ à¦—à§‡à¦² à¦¨à¦¾à¥¤ à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤ à¦•à¦°à§à¦¨ à¦¯à§‡ à¦¸à¦¬ à¦ªà¦ªà¦†à¦ª à¦¬à§à¦²à¦•à¦¾à¦° à¦¬à¦¨à§à¦§ à¦•à¦°à¦¾ à¦†à¦›à§‡à¥¤",
+
+// Dialogs
+DlgBtnOK			: "à¦“à¦•à§‡",
+DlgBtnCancel		: "à¦¬à¦¾à¦¤à¦¿à¦²",
+DlgBtnClose			: "à¦¬à¦¨à§à¦§ à¦•à¦°",
+DlgBtnBrowseServer	: "à¦¬à§à¦°à¦¾à¦‰à¦œ à¦¸à¦¾à¦°à§à¦­à¦¾à¦°",
+DlgAdvancedTag		: "à¦à¦¡à¦­à¦¾à¦¨à§à¦¸à¦¡",
+DlgOpOther			: "<à¦…à¦¨à§à¦¯>",
+DlgInfoTab			: "à¦¤à¦¥à§à¦¯",
+DlgAlertUrl			: "à¦¦à§Ÿà¦¾ à¦•à¦°à§‡ URL à¦¯à§à¦•à§à¦¤ à¦•à¦°à§à¦¨",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<à¦¸à§‡à¦Ÿ à¦¨à§‡à¦‡>",
+DlgGenId			: "à¦†à¦‡à¦¡à¦¿",
+DlgGenLangDir		: "à¦­à¦¾à¦·à¦¾ à¦²à§‡à¦–à¦¾à¦° à¦¦à¦¿à¦•",
+DlgGenLangDirLtr	: "à¦¬à¦¾à¦® à¦¥à§‡à¦•à§‡ à¦¡à¦¾à¦¨ (LTR)",
+DlgGenLangDirRtl	: "à¦¡à¦¾à¦¨ à¦¥à§‡à¦•à§‡ à¦¬à¦¾à¦® (RTL)",
+DlgGenLangCode		: "à¦­à¦¾à¦·à¦¾ à¦•à§‹à¦¡",
+DlgGenAccessKey		: "à¦à¦•à§à¦¸à§‡à¦¸ à¦•à§€",
+DlgGenName			: "à¦¨à¦¾à¦®",
+DlgGenTabIndex		: "à¦Ÿà§à¦¯à¦¾à¦¬ à¦‡à¦¨à§à¦¡à§‡à¦•à§à¦¸",
+DlgGenLongDescr		: "URL à¦à¦° à¦²à¦®à§à¦¬à¦¾ à¦¬à¦°à§à¦£à¦¨à¦¾",
+DlgGenClass			: "à¦¸à§à¦Ÿà¦¾à¦‡à¦²-à¦¶à§€à¦Ÿ à¦•à§à¦²à¦¾à¦¸",
+DlgGenTitle			: "à¦ªà¦°à¦¾à¦®à¦°à§à¦¶ à¦¶à§€à¦°à§à¦·à¦•",
+DlgGenContType		: "à¦ªà¦°à¦¾à¦®à¦°à§à¦¶ à¦•à¦¨à§à¦Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° à¦ªà§à¦°à¦•à¦¾à¦°",
+DlgGenLinkCharset	: "à¦²à¦¿à¦‚à¦• à¦°à¦¿à¦¸à§‹à¦°à§à¦¸ à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦° à¦¸à§‡à¦Ÿ",
+DlgGenStyle			: "à¦¸à§à¦Ÿà¦¾à¦‡à¦²",
+
+// Image Dialog
+DlgImgTitle			: "à¦›à¦¬à¦¿à¦° à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgImgInfoTab		: "à¦›à¦¬à¦¿à¦° à¦¤à¦¥à§à¦¯",
+DlgImgBtnUpload		: "à¦‡à¦¹à¦¾à¦•à§‡ à¦¸à¦¾à¦°à§à¦­à¦¾à¦°à§‡ à¦ªà§à¦°à§‡à¦°à¦¨ à¦•à¦°",
+DlgImgURL			: "URL",
+DlgImgUpload		: "à¦†à¦ªà¦²à§‹à¦¡",
+DlgImgAlt			: "à¦¬à¦¿à¦•à¦²à§à¦ª à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ",
+DlgImgWidth			: "à¦ªà§à¦°à¦¸à§à¦¥",
+DlgImgHeight		: "à¦¦à§ˆà¦°à§à¦˜à§à¦¯",
+DlgImgLockRatio		: "à¦…à¦¨à§à¦ªà¦¾à¦¤ à¦²à¦• à¦•à¦°",
+DlgBtnResetSize		: "à¦¸à¦¾à¦‡à¦œ à¦ªà§‚à¦°à§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§Ÿ à¦«à¦¿à¦°à¦¿à§Ÿà§‡ à¦¦à¦¾à¦“",
+DlgImgBorder		: "à¦¬à¦°à§à¦¡à¦¾à¦°",
+DlgImgHSpace		: "à¦¹à¦°à¦¾à¦‡à¦œà¦¨à§à¦Ÿà¦¾à¦² à¦¸à§à¦ªà§‡à¦¸",
+DlgImgVSpace		: "à¦­à¦¾à¦°à§à¦Ÿà¦¿à¦•à§‡à¦² à¦¸à§à¦ªà§‡à¦¸",
+DlgImgAlign			: "à¦à¦²à¦¾à¦‡à¦¨",
+DlgImgAlignLeft		: "à¦¬à¦¾à¦®à§‡",
+DlgImgAlignAbsBottom: "Abs à¦¨à§€à¦šà§‡",
+DlgImgAlignAbsMiddle: "Abs à¦‰à¦ªà¦°",
+DlgImgAlignBaseline	: "à¦®à§‚à¦² à¦°à§‡à¦–à¦¾",
+DlgImgAlignBottom	: "à¦¨à§€à¦šà§‡",
+DlgImgAlignMiddle	: "à¦®à¦§à§à¦¯",
+DlgImgAlignRight	: "à¦¡à¦¾à¦¨à§‡",
+DlgImgAlignTextTop	: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦‰à¦ªà¦°",
+DlgImgAlignTop		: "à¦‰à¦ªà¦°",
+DlgImgPreview		: "à¦ªà§à¦°à§€à¦­à¦¿à¦‰",
+DlgImgAlertUrl		: "à¦…à¦¨à§à¦—à§à¦°à¦¹à¦• à¦•à¦°à§‡ à¦›à¦¬à¦¿à¦° URL à¦Ÿà¦¾à¦‡à¦ª à¦•à¦°à§à¦¨",
+DlgImgLinkTab		: "à¦²à¦¿à¦‚à¦•",
+
+// Flash Dialog
+DlgFlashTitle		: "à¦«à§à¦²à§à¦¯à¦¾à¦¶ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgFlashChkPlay		: "à¦…à¦Ÿà§‹ à¦ªà§à¦²à§‡",
+DlgFlashChkLoop		: "à¦²à§‚à¦ª",
+DlgFlashChkMenu		: "à¦«à§à¦²à§à¦¯à¦¾à¦¶ à¦®à§‡à¦¨à§ à¦à¦¨à¦¾à¦¬à¦² à¦•à¦°",
+DlgFlashScale		: "à¦¸à§à¦•à§‡à¦²",
+DlgFlashScaleAll	: "à¦¸à¦¬ à¦¦à§‡à¦–à¦¾à¦“",
+DlgFlashScaleNoBorder	: "à¦•à§‹à¦¨à§‹ à¦¬à¦°à§à¦¡à¦¾à¦° à¦¨à§‡à¦‡",
+DlgFlashScaleFit	: "à¦¨à¦¿à¦–à§à¦à¦¤ à¦«à¦¿à¦Ÿ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "à¦²à¦¿à¦‚à¦•",
+DlgLnkInfoTab		: "à¦²à¦¿à¦‚à¦• à¦¤à¦¥à§à¦¯",
+DlgLnkTargetTab		: "à¦Ÿà¦¾à¦°à§à¦—à§‡à¦Ÿ",
+
+DlgLnkType			: "à¦²à¦¿à¦‚à¦• à¦ªà§à¦°à¦•à¦¾à¦°",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "à¦à¦‡ à¦ªà§‡à¦œà§‡ à¦¨à§‹à¦™à¦° à¦•à¦°",
+DlgLnkTypeEMail		: "à¦‡à¦®à§‡à¦‡à¦²",
+DlgLnkProto			: "à¦ªà§à¦°à§‹à¦Ÿà§‹à¦•à¦²",
+DlgLnkProtoOther	: "<à¦…à¦¨à§à¦¯>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "à¦¨à§‹à¦™à¦° à¦¬à¦¾à¦›à¦¾à¦‡",
+DlgLnkAnchorByName	: "à¦¨à§‹à¦™à¦°à§‡à¦° à¦¨à¦¾à¦® à¦¦à¦¿à§Ÿà§‡",
+DlgLnkAnchorById	: "à¦¨à§‹à¦™à¦°à§‡à¦° à¦†à¦‡à¦¡à¦¿ à¦¦à¦¿à§Ÿà§‡",
+DlgLnkNoAnchors		: "(No anchors available in the document)",	//MISSING
+DlgLnkEMail			: "à¦‡à¦®à§‡à¦‡à¦² à¦ à¦¿à¦•à¦¾à¦¨à¦¾",
+DlgLnkEMailSubject	: "à¦®à§‡à¦¸à§‡à¦œà§‡à¦° à¦¬à¦¿à¦·à§Ÿ",
+DlgLnkEMailBody		: "à¦®à§‡à¦¸à§‡à¦œà§‡à¦° à¦¦à§‡à¦¹",
+DlgLnkUpload		: "à¦†à¦ªà¦²à§‹à¦¡",
+DlgLnkBtnUpload		: "à¦à¦•à§‡ à¦¸à¦¾à¦°à§à¦­à¦¾à¦°à§‡ à¦ªà¦¾à¦ à¦¾à¦“",
+
+DlgLnkTarget		: "à¦Ÿà¦¾à¦°à§à¦—à§‡à¦Ÿ",
+DlgLnkTargetFrame	: "<à¦«à§à¦°à§‡à¦®>",
+DlgLnkTargetPopup	: "<à¦ªà¦ªà¦†à¦ª à¦‰à¦‡à¦¨à§à¦¡à§‹>",
+DlgLnkTargetBlank	: "à¦¨à¦¤à§à¦¨ à¦‰à¦‡à¦¨à§à¦¡à§‹ (_blank)",
+DlgLnkTargetParent	: "à¦®à§‚à¦² à¦‰à¦‡à¦¨à§à¦¡à§‹ (_parent)",
+DlgLnkTargetSelf	: "à¦à¦‡ à¦‰à¦‡à¦¨à§à¦¡à§‹ (_self)",
+DlgLnkTargetTop		: "à¦¶à§€à¦°à§à¦· à¦‰à¦‡à¦¨à§à¦¡à§‹ (_top)",
+DlgLnkTargetFrameName	: "à¦Ÿà¦¾à¦°à§à¦—à§‡à¦Ÿ à¦«à§à¦°à§‡à¦®à§‡à¦° à¦¨à¦¾à¦®",
+DlgLnkPopWinName	: "à¦ªà¦ªà¦†à¦ª à¦‰à¦‡à¦¨à§à¦¡à§‹à¦° à¦¨à¦¾à¦®",
+DlgLnkPopWinFeat	: "à¦ªà¦ªà¦†à¦ª à¦‰à¦‡à¦¨à§à¦¡à§‹ à¦«à§€à¦šà¦¾à¦° à¦¸à¦®à§‚à¦¹",
+DlgLnkPopResize		: "à¦°à¦¿à¦¸à¦¾à¦‡à¦œ à¦•à¦°à¦¾ à¦¸à¦®à§à¦­à¦¬",
+DlgLnkPopLocation	: "à¦²à§‹à¦•à§‡à¦¶à¦¨ à¦¬à¦¾à¦°",
+DlgLnkPopMenu		: "à¦®à§‡à¦¨à§à¦¯à§ à¦¬à¦¾à¦°",
+DlgLnkPopScroll		: "à¦¸à§à¦•à§à¦°à¦² à¦¬à¦¾à¦°",
+DlgLnkPopStatus		: "à¦¸à§à¦Ÿà§à¦¯à¦¾à¦Ÿà¦¾à¦¸ à¦¬à¦¾à¦°",
+DlgLnkPopToolbar	: "à¦Ÿà§à¦² à¦¬à¦¾à¦°",
+DlgLnkPopFullScrn	: "à¦ªà§‚à¦°à§à¦£ à¦ªà¦°à§à¦¦à¦¾ à¦œà§à§œà§‡ (IE)",
+DlgLnkPopDependent	: "à¦¡à¦¿à¦ªà§‡à¦¨à§à¦¡à§‡à¦¨à§à¦Ÿ (Netscape)",
+DlgLnkPopWidth		: "à¦ªà§à¦°à¦¸à§à¦¥",
+DlgLnkPopHeight		: "à¦¦à§ˆà¦°à§à¦˜à§à¦¯",
+DlgLnkPopLeft		: "à¦¬à¦¾à¦®à§‡à¦° à¦ªà¦œà¦¿à¦¶à¦¨",
+DlgLnkPopTop		: "à¦¡à¦¾à¦¨à§‡à¦° à¦ªà¦œà¦¿à¦¶à¦¨",
+
+DlnLnkMsgNoUrl		: "à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ URL à¦²à¦¿à¦‚à¦• à¦Ÿà¦¾à¦‡à¦ª à¦•à¦°à§à¦¨",
+DlnLnkMsgNoEMail	: "à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ à¦‡à¦®à§‡à¦‡à¦² à¦à¦¡à§à¦°à§‡à¦¸ à¦Ÿà¦¾à¦‡à¦ª à¦•à¦°à§à¦¨",
+DlnLnkMsgNoAnchor	: "à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ à¦¨à§‹à¦™à¦° à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°à§à¦¨",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "à¦°à¦‚ à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°",
+DlgColorBtnClear	: "à¦ªà¦°à¦¿à¦·à§à¦•à¦¾à¦° à¦•à¦°",
+DlgColorHighlight	: "à¦¹à¦¾à¦‡à¦²à¦¾à¦‡à¦Ÿ",
+DlgColorSelected	: "à¦¸à¦¿à¦²à§‡à¦•à§à¦Ÿà§‡à¦¡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "à¦¸à§à¦®à¦¾à¦‡à¦²à§€ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "à¦¬à¦¿à¦¶à§‡à¦· à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦° à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°",
+
+// Table Dialog
+DlgTableTitle		: "à¦Ÿà§‡à¦¬à¦¿à¦² à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgTableRows		: "à¦°à§‹",
+DlgTableColumns		: "à¦•à¦²à¦¾à¦®",
+DlgTableBorder		: "à¦¬à¦°à§à¦¡à¦¾à¦° à¦¸à¦¾à¦‡à¦œ",
+DlgTableAlign		: "à¦à¦²à¦¾à¦‡à¦¨à¦®à§‡à¦¨à§à¦Ÿ",
+DlgTableAlignNotSet	: "<à¦¸à§‡à¦Ÿ à¦¨à§‡à¦‡>",
+DlgTableAlignLeft	: "à¦¬à¦¾à¦®à§‡",
+DlgTableAlignCenter	: "à¦®à¦¾à¦à¦–à¦¾à¦¨à§‡",
+DlgTableAlignRight	: "à¦¡à¦¾à¦¨à§‡",
+DlgTableWidth		: "à¦ªà§à¦°à¦¸à§à¦¥",
+DlgTableWidthPx		: "à¦ªà¦¿à¦•à§à¦¸à§‡à¦²",
+DlgTableWidthPc		: "à¦¶à¦¤à¦•à¦°à¦¾",
+DlgTableHeight		: "à¦¦à§ˆà¦°à§à¦˜à§à¦¯",
+DlgTableCellSpace	: "à¦¸à§‡à¦² à¦¸à§à¦ªà§‡à¦¸",
+DlgTableCellPad		: "à¦¸à§‡à¦² à¦ªà§à¦¯à¦¾à¦¡à¦¿à¦‚",
+DlgTableCaption		: "à¦¶à§€à¦°à§à¦·à¦•",
+DlgTableSummary		: "à¦¸à¦¾à¦°à¦¾à¦‚à¦¶",
+
+// Table Cell Dialog
+DlgCellTitle		: "à¦¸à§‡à¦² à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgCellWidth		: "à¦ªà§à¦°à¦¸à§à¦¥",
+DlgCellWidthPx		: "à¦ªà¦¿à¦•à§à¦¸à§‡à¦²",
+DlgCellWidthPc		: "à¦¶à¦¤à¦•à¦°à¦¾",
+DlgCellHeight		: "à¦¦à§ˆà¦°à§à¦˜à§à¦¯",
+DlgCellWordWrap		: "à¦“à§Ÿà¦¾à¦°à§à¦¡ à¦°à§‡à¦ª",
+DlgCellWordWrapNotSet	: "<à¦¸à§‡à¦Ÿ à¦¨à§‡à¦‡>",
+DlgCellWordWrapYes	: "à¦¹à¦¾à¦",
+DlgCellWordWrapNo	: "à¦¨à¦¾",
+DlgCellHorAlign		: "à¦¹à¦°à¦¾à¦‡à¦œà¦¨à§à¦Ÿà¦¾à¦² à¦à¦²à¦¾à¦‡à¦¨à¦®à§‡à¦¨à§à¦Ÿ",
+DlgCellHorAlignNotSet	: "<à¦¸à§‡à¦Ÿ à¦¨à§‡à¦‡>",
+DlgCellHorAlignLeft	: "à¦¬à¦¾à¦®à§‡",
+DlgCellHorAlignCenter	: "à¦®à¦¾à¦à¦–à¦¾à¦¨à§‡",
+DlgCellHorAlignRight: "à¦¡à¦¾à¦¨à§‡",
+DlgCellVerAlign		: "à¦­à¦¾à¦°à§à¦Ÿà¦¿à¦•à§à¦¯à¦¾à¦² à¦à¦²à¦¾à¦‡à¦¨à¦®à§‡à¦¨à§à¦Ÿ",
+DlgCellVerAlignNotSet	: "<à¦¸à§‡à¦Ÿ à¦¨à§‡à¦‡>",
+DlgCellVerAlignTop	: "à¦‰à¦ªà¦°",
+DlgCellVerAlignMiddle	: "à¦®à¦§à§à¦¯",
+DlgCellVerAlignBottom	: "à¦¨à§€à¦šà§‡",
+DlgCellVerAlignBaseline	: "à¦®à§‚à¦²à¦°à§‡à¦–à¦¾",
+DlgCellRowSpan		: "à¦°à§‹ à¦¸à§à¦ªà§à¦¯à¦¾à¦¨",
+DlgCellCollSpan		: "à¦•à¦²à¦¾à¦® à¦¸à§à¦ªà§à¦¯à¦¾à¦¨",
+DlgCellBackColor	: "à¦¬à§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ à¦°à¦‚",
+DlgCellBorderColor	: "à¦¬à¦°à§à¦¡à¦¾à¦°à§‡à¦° à¦°à¦‚",
+DlgCellBtnSelect	: "à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "à¦–à§‹à¦à¦œà§‹",
+DlgFindFindBtn		: "à¦–à§‹à¦à¦œà§‹",
+DlgFindNotFoundMsg	: "à¦†à¦ªà¦¨à¦¾à¦° à¦‰à¦²à§à¦²à§‡à¦–à¦¿à¦¤ à¦Ÿà§‡à¦•à¦¸à§à¦Ÿ à¦ªà¦¾à¦“à§Ÿà¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿",
+
+// Replace Dialog
+DlgReplaceTitle			: "à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgReplaceFindLbl		: "à¦¯à¦¾ à¦–à§à¦à¦œà¦¤à§‡ à¦¹à¦¬à§‡:",
+DlgReplaceReplaceLbl	: "à¦¯à¦¾à¦° à¦¸à¦¾à¦¥à§‡ à¦¬à¦¦à¦²à¦¾à¦¤à§‡ à¦¹à¦¬à§‡:",
+DlgReplaceCaseChk		: "à¦•à§‡à¦¸ à¦®à¦¿à¦²à¦¾à¦“",
+DlgReplaceReplaceBtn	: "à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgReplaceReplAllBtn	: "à¦¸à¦¬ à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgReplaceWordChk		: "à¦ªà§à¦°à¦¾ à¦¶à¦¬à§à¦¦ à¦®à§‡à¦²à¦¾à¦“",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "à¦†à¦ªà¦¨à¦¾à¦° à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° à¦¸à§à¦°à¦•à§à¦·à¦¾ à¦¸à§‡à¦Ÿà¦¿à¦‚à¦¸ à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ à¦…à¦Ÿà§‹à¦®à§‡à¦Ÿà¦¿à¦• à¦•à¦¾à¦Ÿ à¦•à¦°à¦¾à¦° à¦…à¦¨à§à¦®à¦¤à¦¿ à¦¦à§‡à§Ÿà¦¨à¦¿à¥¤ à¦¦à§Ÿà¦¾ à¦•à¦°à§‡ à¦à¦‡ à¦•à¦¾à¦œà§‡à¦° à¦œà¦¨à§à¦¯ à¦•à¦¿à¦¬à§‹à¦°à§à¦¡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à§à¦¨ (Ctrl+X)à¥¤",
+PasteErrorCopy	: "à¦†à¦ªà¦¨à¦¾à¦° à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° à¦¸à§à¦°à¦•à§à¦·à¦¾ à¦¸à§‡à¦Ÿà¦¿à¦‚à¦¸ à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ à¦…à¦Ÿà§‹à¦®à§‡à¦Ÿà¦¿à¦• à¦•à¦ªà¦¿ à¦•à¦°à¦¾à¦° à¦…à¦¨à§à¦®à¦¤à¦¿ à¦¦à§‡à§Ÿà¦¨à¦¿à¥¤ à¦¦à§Ÿà¦¾ à¦•à¦°à§‡ à¦à¦‡ à¦•à¦¾à¦œà§‡à¦° à¦œà¦¨à§à¦¯ à¦•à¦¿à¦¬à§‹à¦°à§à¦¡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à§à¦¨ (Ctrl+C)à¥¤",
+
+PasteAsText		: "à¦¸à¦¾à¦¦à¦¾ à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ à¦¹à¦¿à¦¸à§‡à¦¬à§‡ à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°",
+PasteFromWord	: "à¦“à§Ÿà¦¾à¦°à§à¦¡ à¦¥à§‡à¦•à§‡ à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°",
+
+DlgPasteMsg2	: "à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ à¦¨à§€à¦šà§‡à¦° à¦¬à¦¾à¦•à§à¦¸à§‡ à¦•à¦¿à¦¬à§‹à¦°à§à¦¡ à¦¬à§à¦¯à¦¬à¦¹à¦¾à¦° à¦•à¦°à§‡ (<STRONG>Ctrl+V</STRONG>) à¦ªà§‡à¦¸à§à¦Ÿ à¦•à¦°à§à¦¨ à¦à¦¬à¦‚ <STRONG>OK</STRONG> à¦šà¦¾à¦ª à¦¦à¦¿à¦¨",
+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
+DlgPasteIgnoreFont		: "à¦«à¦¨à§à¦Ÿ à¦«à§‡à¦¸ à¦¡à§‡à¦«à¦¿à¦¨à§‡à¦¶à¦¨ à¦‡à¦—à¦¨à§‹à¦° à¦•à¦°à§à¦¨",
+DlgPasteRemoveStyles	: "à¦¸à§à¦Ÿà¦¾à¦‡à¦² à¦¡à§‡à¦«à¦¿à¦¨à§‡à¦¶à¦¨ à¦¸à¦°à¦¿à§Ÿà§‡ à¦¦à¦¿à¦¨",
+
+// Color Picker
+ColorAutomatic	: "à¦…à¦Ÿà§‹à¦®à§‡à¦Ÿà¦¿à¦•",
+ColorMoreColors	: "à¦†à¦°à¦“ à¦°à¦‚...",
+
+// Document Properties
+DocProps		: "à¦¡à¦•à§à¦¯à§à¦®à§‡à¦¨à§à¦Ÿ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+
+// Anchor Dialog
+DlgAnchorTitle		: "à¦¨à§‹à¦™à¦°à§‡à¦° à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgAnchorName		: "à¦¨à§‹à¦™à¦°à§‡à¦° à¦¨à¦¾à¦®",
+DlgAnchorErrorName	: "à¦¨à§‹à¦™à¦°à§‡à¦° à¦¨à¦¾à¦® à¦Ÿà¦¾à¦‡à¦ª à¦•à¦°à§à¦¨",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "à¦¶à¦¬à§à¦¦à¦•à§‹à¦·à§‡ à¦¨à§‡à¦‡",
+DlgSpellChangeTo		: "à¦à¦¤à§‡ à¦¬à¦¦à¦²à¦¾à¦“",
+DlgSpellBtnIgnore		: "à¦‡à¦—à¦¨à§‹à¦° à¦•à¦°",
+DlgSpellBtnIgnoreAll	: "à¦¸à¦¬ à¦‡à¦—à¦¨à§‹à¦° à¦•à¦°",
+DlgSpellBtnReplace		: "à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgSpellBtnReplaceAll	: "à¦¸à¦¬ à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgSpellBtnUndo			: "à¦†à¦¨à§à¦¡à§",
+DlgSpellNoSuggestions	: "- à¦•à§‹à¦¨ à¦¸à¦¾à¦œà§‡à¦¶à¦¨ à¦¨à§‡à¦‡ -",
+DlgSpellProgress		: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦šà¦²à¦›à§‡...",
+DlgSpellNoMispell		: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦¶à§‡à¦·: à¦•à§‹à¦¨ à¦­à§à¦² à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦¾à¦“à§Ÿà¦¾ à¦¯à¦¾à§Ÿà¦¨à¦¿",
+DlgSpellNoChanges		: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦¶à§‡à¦·: à¦•à§‹à¦¨ à¦¶à¦¬à§à¦¦ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¹à§Ÿà¦¨à¦¿",
+DlgSpellOneChange		: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦¶à§‡à¦·: à¦à¦•à¦Ÿà¦¿ à¦®à¦¾à¦¤à§à¦° à¦¶à¦¬à§à¦¦ à¦ªà¦°à¦¿à¦¬à¦°à§à¦¤à¦¨ à¦•à¦°à¦¾ à¦¹à§Ÿà§‡à¦›à§‡",
+DlgSpellManyChanges		: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦¾ à¦¶à§‡à¦·: %1 à¦—à§à¦²à§‹ à¦¶à¦¬à§à¦¦ à¦¬à¦¦à¦²à§‡ à¦—à§à¦¯à¦¾à¦›à§‡",
+
+IeSpellDownload			: "à¦¬à¦¾à¦¨à¦¾à¦¨ à¦ªà¦°à§€à¦•à§à¦·à¦• à¦‡à¦¨à¦¸à§à¦Ÿà¦² à¦•à¦°à¦¾ à¦¨à§‡à¦‡à¥¤ à¦†à¦ªà¦¨à¦¿ à¦•à¦¿ à¦à¦–à¦¨à¦‡ à¦à¦Ÿà¦¾ à¦¡à¦¾à¦‰à¦¨à¦²à§‹à¦¡ à¦•à¦°à¦¤à§‡ à¦šà¦¾à¦¨?",
+
+// Button Dialog
+DlgButtonText		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ (à¦­à§à¦¯à¦¾à¦²à§)",
+DlgButtonType		: "à¦ªà§à¦°à¦•à¦¾à¦°",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "à¦¨à¦¾à¦®",
+DlgCheckboxValue	: "à¦­à§à¦¯à¦¾à¦²à§",
+DlgCheckboxSelected	: "à¦¸à¦¿à¦²à§‡à¦•à§à¦Ÿà§‡à¦¡",
+
+// Form Dialog
+DlgFormName		: "à¦¨à¦¾à¦®",
+DlgFormAction	: "à¦à¦•à¦¶à§à¦¯à¦¨",
+DlgFormMethod	: "à¦ªà¦¦à§à¦§à¦¤à¦¿",
+
+// Select Field Dialog
+DlgSelectName		: "à¦¨à¦¾à¦®",
+DlgSelectValue		: "à¦­à§à¦¯à¦¾à¦²à§",
+DlgSelectSize		: "à¦¸à¦¾à¦‡à¦œ",
+DlgSelectLines		: "à¦²à¦¾à¦‡à¦¨ à¦¸à¦®à§‚à¦¹",
+DlgSelectChkMulti	: "à¦à¦•à¦¾à¦§à¦¿à¦• à¦¸à¦¿à¦²à§‡à¦•à¦¶à¦¨ à¦à¦²à¦¾à¦‰ à¦•à¦°",
+DlgSelectOpAvail	: "à¦…à¦¨à§à¦¯à¦¾à¦¨à§à¦¯ à¦¬à¦¿à¦•à¦²à§à¦ª",
+DlgSelectOpText		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ",
+DlgSelectOpValue	: "à¦­à§à¦¯à¦¾à¦²à§",
+DlgSelectBtnAdd		: "à¦¯à§à¦•à§à¦¤",
+DlgSelectBtnModify	: "à¦¬à¦¦à¦²à§‡ à¦¦à¦¾à¦“",
+DlgSelectBtnUp		: "à¦‰à¦ªà¦°",
+DlgSelectBtnDown	: "à¦¨à§€à¦šà§‡",
+DlgSelectBtnSetValue : "à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°à¦¾ à¦­à§à¦¯à¦¾à¦²à§ à¦¹à¦¿à¦¸à§‡à¦¬à§‡ à¦¸à§‡à¦Ÿ à¦•à¦°",
+DlgSelectBtnDelete	: "à¦¡à¦¿à¦²à§€à¦Ÿ",
+
+// Textarea Dialog
+DlgTextareaName	: "à¦¨à¦¾à¦®",
+DlgTextareaCols	: "à¦•à¦²à¦¾à¦®",
+DlgTextareaRows	: "à¦°à§‹",
+
+// Text Field Dialog
+DlgTextName			: "à¦¨à¦¾à¦®",
+DlgTextValue		: "à¦­à§à¦¯à¦¾à¦²à§",
+DlgTextCharWidth	: "à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦° à¦ªà§à¦°à¦¶à¦¸à§à¦¤à¦¤à¦¾",
+DlgTextMaxChars		: "à¦¸à¦°à§à¦¬à¦¾à¦§à¦¿à¦• à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦°",
+DlgTextType			: "à¦Ÿà¦¾à¦‡à¦ª",
+DlgTextTypeText		: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ",
+DlgTextTypePass		: "à¦ªà¦¾à¦¸à¦“à§Ÿà¦¾à¦°à§à¦¡",
+
+// Hidden Field Dialog
+DlgHiddenName	: "à¦¨à¦¾à¦®",
+DlgHiddenValue	: "à¦­à§à¦¯à¦¾à¦²à§",
+
+// Bulleted List Dialog
+BulletedListProp	: "à¦¬à§à¦²à§‡à¦Ÿà§‡à¦¡ à¦¸à§‚à¦šà§€ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+NumberedListProp	: "à¦¸à¦¾à¦‚à¦–à§à¦¯à¦¿à¦• à¦¸à§‚à¦šà§€ à¦ªà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "à¦ªà§à¦°à¦•à¦¾à¦°",
+DlgLstTypeCircle	: "à¦—à§‹à¦²",
+DlgLstTypeDisc		: "à¦¡à¦¿à¦¸à§à¦•",
+DlgLstTypeSquare	: "à¦šà§Œà¦•à§‹à¦£à¦¾",
+DlgLstTypeNumbers	: "à¦¸à¦‚à¦–à§à¦¯à¦¾ (1, 2, 3)",
+DlgLstTypeLCase		: "à¦›à§‹à¦Ÿ à¦…à¦•à§à¦·à¦° (a, b, c)",
+DlgLstTypeUCase		: "à¦¬à§œ à¦…à¦•à§à¦·à¦° (A, B, C)",
+DlgLstTypeSRoman	: "à¦›à§‹à¦Ÿ à¦°à§‹à¦®à¦¾à¦¨ à¦¸à¦‚à¦–à§à¦¯à¦¾ (i, ii, iii)",
+DlgLstTypeLRoman	: "à¦¬à§œ à¦°à§‹à¦®à¦¾à¦¨ à¦¸à¦‚à¦–à§à¦¯à¦¾ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "à¦¸à¦¾à¦§à¦¾à¦°à¦¨",
+DlgDocBackTab		: "à¦¬à§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡",
+DlgDocColorsTab		: "à¦°à¦‚ à¦à¦¬à¦‚ à¦®à¦¾à¦°à§à¦œà¦¿à¦¨",
+DlgDocMetaTab		: "à¦®à§‡à¦Ÿà¦¾à¦¡à§‡à¦Ÿà¦¾",
+
+DlgDocPageTitle		: "à¦ªà§‡à¦œ à¦¶à§€à¦°à§à¦·à¦•",
+DlgDocLangDir		: "à¦­à¦¾à¦·à¦¾ à¦²à¦¿à¦–à¦¾à¦° à¦¦à¦¿à¦•",
+DlgDocLangDirLTR	: "à¦¬à¦¾à¦® à¦¥à§‡à¦•à§‡ à¦¡à¦¾à¦¨à§‡ (LTR)",
+DlgDocLangDirRTL	: "à¦¡à¦¾à¦¨ à¦¥à§‡à¦•à§‡ à¦¬à¦¾à¦®à§‡ (RTL)",
+DlgDocLangCode		: "à¦­à¦¾à¦·à¦¾ à¦•à§‹à¦¡",
+DlgDocCharSet		: "à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦° à¦¸à§‡à¦Ÿ à¦à¦¨à¦•à§‹à¦¡à¦¿à¦‚",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "à¦…à¦¨à§à¦¯ à¦•à§à¦¯à¦¾à¦°à§‡à¦•à§à¦Ÿà¦¾à¦° à¦¸à§‡à¦Ÿ à¦à¦¨à¦•à§‹à¦¡à¦¿à¦‚",
+
+DlgDocDocType		: "à¦¡à¦•à§à¦¯à§à¦®à§‡à¦¨à§à¦Ÿ à¦Ÿà¦¾à¦‡à¦ª à¦¹à§‡à¦¡à¦¿à¦‚",
+DlgDocDocTypeOther	: "à¦…à¦¨à§à¦¯ à¦¡à¦•à§à¦¯à§à¦®à§‡à¦¨à§à¦Ÿ à¦Ÿà¦¾à¦‡à¦ª à¦¹à§‡à¦¡à¦¿à¦‚",
+DlgDocIncXHTML		: "XHTML à¦¡à§‡à¦•à§à¦²à¦¾à¦°à§‡à¦¶à¦¨ à¦¯à§à¦•à§à¦¤ à¦•à¦°",
+DlgDocBgColor		: "à¦¬à§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ à¦°à¦‚",
+DlgDocBgImage		: "à¦¬à§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ à¦›à¦¬à¦¿à¦° URL",
+DlgDocBgNoScroll	: "à¦¸à§à¦•à§à¦°à¦²à¦¹à§€à¦¨ à¦¬à§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡",
+DlgDocCText			: "à¦Ÿà§‡à¦•à§à¦¸à¦Ÿ",
+DlgDocCLink			: "à¦²à¦¿à¦‚à¦•",
+DlgDocCVisited		: "à¦­à¦¿à¦œà¦¿à¦Ÿ à¦•à¦°à¦¾ à¦²à¦¿à¦‚à¦•",
+DlgDocCActive		: "à¦¸à¦•à§à¦°à¦¿à§Ÿ à¦²à¦¿à¦‚à¦•",
+DlgDocMargins		: "à¦ªà§‡à¦œ à¦®à¦¾à¦°à§à¦œà¦¿à¦¨",
+DlgDocMaTop			: "à¦‰à¦ªà¦°",
+DlgDocMaLeft		: "à¦¬à¦¾à¦®à§‡",
+DlgDocMaRight		: "à¦¡à¦¾à¦¨à§‡",
+DlgDocMaBottom		: "à¦¨à§€à¦šà§‡",
+DlgDocMeIndex		: "à¦¡à¦•à§à¦¯à§à¦®à§‡à¦¨à§à¦Ÿ à¦‡à¦¨à§à¦¡à§‡à¦•à§à¦¸ à¦•à¦¿à¦“à§Ÿà¦¾à¦°à§à¦¡ (à¦•à¦®à¦¾ à¦¦à§à¦¬à¦¾à¦°à¦¾ à¦¬à¦¿à¦šà§à¦›à¦¿à¦¨à§à¦¨)",
+DlgDocMeDescr		: "à¦¡à¦•à§à¦¯à§‚à¦®à§‡à¦¨à§à¦Ÿ à¦¬à¦°à§à¦£à¦¨à¦¾",
+DlgDocMeAuthor		: "à¦²à§‡à¦–à¦•",
+DlgDocMeCopy		: "à¦•à¦ªà§€à¦°à¦¾à¦‡à¦Ÿ",
+DlgDocPreview		: "à¦ªà§à¦°à§€à¦­à¦¿à¦‰",
+
+// Templates Dialog
+Templates			: "à¦Ÿà§‡à¦®à¦ªà§à¦²à§‡à¦Ÿ",
+DlgTemplatesTitle	: "à¦•à¦¨à¦Ÿà§‡à¦¨à§à¦Ÿ à¦Ÿà§‡à¦®à¦ªà§à¦²à§‡à¦Ÿ",
+DlgTemplatesSelMsg	: "à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ à¦à¦¡à¦¿à¦Ÿà¦°à§‡ à¦“à¦ªà§‡à¦¨ à¦•à¦°à¦¾à¦° à¦œà¦¨à§à¦¯ à¦Ÿà§‡à¦®à¦ªà§à¦²à§‡à¦Ÿ à¦¬à¦¾à¦›à¦¾à¦‡ à¦•à¦°à§à¦¨<br>(à¦†à¦¸à¦² à¦•à¦¨à¦Ÿà§‡à¦¨à§à¦Ÿ à¦¹à¦¾à¦°à¦¿à§Ÿà§‡ à¦¯à¦¾à¦¬à§‡):",
+DlgTemplatesLoading	: "à¦Ÿà§‡à¦®à¦ªà§à¦²à§‡à¦Ÿ à¦²à¦¿à¦¸à§à¦Ÿ à¦¹à¦¾à¦°à¦¿à§Ÿà§‡ à¦¯à¦¾à¦¬à§‡à¥¤ à¦…à¦¨à§à¦—à§à¦°à¦¹ à¦•à¦°à§‡ à¦…à¦ªà§‡à¦•à§à¦·à¦¾ à¦•à¦°à§à¦¨...",
+DlgTemplatesNoTpl	: "(à¦•à§‹à¦¨ à¦Ÿà§‡à¦®à¦ªà§à¦²à§‡à¦Ÿ à¦¡à¦¿à¦«à¦¾à¦‡à¦¨ à¦•à¦°à¦¾ à¦¨à§‡à¦‡)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "à¦•à§‡ à¦¬à¦¾à¦¨à¦¿à§Ÿà§‡à¦›à§‡",
+DlgAboutBrowserInfoTab	: "à¦¬à§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° à¦¬à§à¦¯à¦¾à¦ªà¦¾à¦°à§‡ à¦¤à¦¥à§à¦¯",
+DlgAboutLicenseTab	: "à¦²à¦¾à¦‡à¦¸à§‡à¦¨à§à¦¸",
+DlgAboutVersion		: "à¦­à¦¾à¦°à§à¦¸à¦¨",
+DlgAboutInfo		: "à¦†à¦°à¦“ à¦¤à¦¥à§à¦¯à§‡à¦° à¦œà¦¨à§à¦¯ à¦¯à¦¾à¦¨"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/el.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/el.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/el.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Greek language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Î‘Ï€ÏŒÎºÏÏ…ÏˆÎ· ÎœÏ€Î¬ÏÎ±Ï‚ Î•ÏÎ³Î±Î»ÎµÎ¯Ï‰Î½",
+ToolbarExpand		: "Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· ÎœÏ€Î¬ÏÎ±Ï‚ Î•ÏÎ³Î±Î»ÎµÎ¯Ï‰Î½",
+
+// Toolbar Items and Context Menu
+Save				: "Î‘Ï€Î¿Î¸Î®ÎºÎµÏ…ÏƒÎ·",
+NewPage				: "ÎÎ­Î± Î£ÎµÎ»Î¯Î´Î±",
+Preview				: "Î ÏÎ¿ÎµÏ€Î¹ÏƒÎºÏŒÏ€Î¹ÏƒÎ·",
+Cut					: "Î‘Ï€Î¿ÎºÎ¿Ï€Î®",
+Copy				: "Î‘Î½Ï„Î¹Î³ÏÎ±Ï†Î®",
+Paste				: "Î•Ï€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ·",
+PasteText			: "Î•Ï€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ· (Î±Ï€Î»ÏŒ ÎºÎµÎ¯Î¼ÎµÎ½Î¿)",
+PasteWord			: "Î•Ï€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ· Î±Ï€ÏŒ Ï„Î¿ Word",
+Print				: "Î•ÎºÏ„ÏÏ€Ï‰ÏƒÎ·",
+SelectAll			: "Î•Ï€Î¹Î»Î¿Î³Î® ÏŒÎ»Ï‰Î½",
+RemoveFormat		: "Î‘Ï†Î±Î¯ÏÎµÏƒÎ· ÎœÎ¿ÏÏ†Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚",
+InsertLinkLbl		: "Î£ÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚ (Link)",
+InsertLink			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/ÎœÎµÏ„Î±Î²Î¿Î»Î® Î£Ï…Î½Î´Î­ÏƒÎ¼Î¿Ï… (Link)",
+RemoveLink			: "Î‘Ï†Î±Î¯ÏÎµÏƒÎ· Î£Ï…Î½Î´Î­ÏƒÎ¼Î¿Ï… (Link)",
+Anchor				: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/ÎµÏ€ÎµÎ¾ÎµÏÎ³Î±ÏƒÎ¯Î± Anchor",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Î•Î¹ÎºÏŒÎ½Î±",
+InsertImage			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/ÎœÎµÏ„Î±Î²Î¿Î»Î® Î•Î¹ÎºÏŒÎ½Î±Ï‚",
+InsertFlashLbl		: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® Flash",
+InsertFlash			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/ÎµÏ€ÎµÎ¾ÎµÏÎ³Î±ÏƒÎ¯Î± Flash",
+InsertTableLbl		: "Î Î¯Î½Î±ÎºÎ±Ï‚",
+InsertTable			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/ÎœÎµÏ„Î±Î²Î¿Î»Î® Î Î¯Î½Î±ÎºÎ±",
+InsertLineLbl		: "Î“ÏÎ±Î¼Î¼Î®",
+InsertLine			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® ÎŸÏÎ¹Î¶ÏŒÎ½Ï„Î¹Î±Ï‚ Î“ÏÎ±Î¼Î¼Î®Ï‚",
+InsertSpecialCharLbl: "Î•Î¹Î´Î¹ÎºÏŒ Î£ÏÎ¼Î²Î¿Î»Î¿",
+InsertSpecialChar	: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® Î•Î¹Î´Î¹ÎºÎ¿Ï Î£Ï…Î¼Î²ÏŒÎ»Î¿Ï…",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® Smiley",
+About				: "Î ÎµÏÎ¯ Ï„Î¿Ï… FCKeditor",
+Bold				: "ÎˆÎ½Ï„Î¿Î½Î±",
+Italic				: "Î Î»Î¬Î³Î¹Î±",
+Underline			: "Î¥Ï€Î¿Î³ÏÎ¬Î¼Î¼Î¹ÏƒÎ·",
+StrikeThrough		: "Î”Î¹Î±Î³ÏÎ¬Î¼Î¼Î¹ÏƒÎ·",
+Subscript			: "Î”ÎµÎ¯ÎºÏ„Î·Ï‚",
+Superscript			: "Î•ÎºÎ¸Î­Ï„Î·Ï‚",
+LeftJustify			: "Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ· Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬",
+CenterJustify		: "Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ· ÏƒÏ„Î¿ ÎšÎ­Î½Ï„ÏÎ¿",
+RightJustify		: "Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ· Î”ÎµÎ¾Î¹Î¬",
+BlockJustify		: "Î Î»Î®ÏÎ·Ï‚ Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ· (Block)",
+DecreaseIndent		: "ÎœÎµÎ¯Ï‰ÏƒÎ· Î•ÏƒÎ¿Ï‡Î®Ï‚",
+IncreaseIndent		: "Î‘ÏÎ¾Î·ÏƒÎ· Î•ÏƒÎ¿Ï‡Î®Ï‚",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Î‘Î½Î±Î¯ÏÎµÏƒÎ·",
+Redo				: "Î•Ï€Î±Î½Î±Ï†Î¿ÏÎ¬",
+NumberedListLbl		: "Î›Î¯ÏƒÏ„Î± Î¼Îµ Î‘ÏÎ¹Î¸Î¼Î¿ÏÏ‚",
+NumberedList		: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/Î”Î¹Î±Î³ÏÎ±Ï†Î® Î›Î¯ÏƒÏ„Î±Ï‚ Î¼Îµ Î‘ÏÎ¹Î¸Î¼Î¿ÏÏ‚",
+BulletedListLbl		: "Î›Î¯ÏƒÏ„Î± Î¼Îµ Bullets",
+BulletedList		: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î®/Î”Î¹Î±Î³ÏÎ±Ï†Î® Î›Î¯ÏƒÏ„Î±Ï‚ Î¼Îµ Bullets",
+ShowTableBorders	: "Î ÏÎ¿Î²Î¿Î»Î® ÎŸÏÎ¯Ï‰Î½ Î Î¯Î½Î±ÎºÎ±",
+ShowDetails			: "Î ÏÎ¿Î²Î¿Î»Î® Î›ÎµÏ€Ï„Î¿Î¼ÎµÏÎµÎ¹ÏŽÎ½",
+Style				: "Î£Ï„Ï…Î»",
+FontFormat			: "ÎœÎ¿ÏÏ†Î® Î“ÏÎ±Î¼Î¼Î±Ï„Î¿ÏƒÎµÎ¹ÏÎ¬Ï‚",
+Font				: "Î“ÏÎ±Î¼Î¼Î±Ï„Î¿ÏƒÎµÎ¹ÏÎ¬",
+FontSize			: "ÎœÎ­Î³ÎµÎ¸Î¿Ï‚",
+TextColor			: "Î§ÏÏŽÎ¼Î± Î“ÏÎ±Î¼Î¼Î¬Ï„Ï‰Î½",
+BGColor				: "Î§ÏÏŽÎ¼Î± Î¥Ï€Î¿Î²Î¬Î¸ÏÎ¿Ï…",
+Source				: "HTML ÎºÏŽÎ´Î¹ÎºÎ±Ï‚",
+Find				: "Î‘Î½Î±Î¶Î®Ï„Î·ÏƒÎ·",
+Replace				: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·",
+SpellCheck			: "ÎŸÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚",
+UniversalKeyboard	: "Î”Î¹ÎµÎ¸Î½Î®Ï‚ Ï€Î»Î·ÎºÏ„ÏÎ¿Î»ÏŒÎ³Î¹Î¿",
+PageBreakLbl		: "Î¤Î­Î»Î¿Ï‚ ÏƒÎµÎ»Î¯Î´Î±Ï‚",
+PageBreak			: "Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® Ï„Î­Î»Î¿Ï…Ï‚ ÏƒÎµÎ»Î¯Î´Î±Ï‚",
+
+Form			: "Î¦ÏŒÏÎ¼Î±",
+Checkbox		: "ÎšÎ¿Ï…Ï„Î¯ ÎµÏ€Î¹Î»Î¿Î³Î®Ï‚",
+RadioButton		: "ÎšÎ¿Ï…Î¼Ï€Î¯ Radio",
+TextField		: "Î ÎµÎ´Î¯Î¿ ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…",
+Textarea		: "Î ÎµÏÎ¹Î¿Ï‡Î® ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…",
+HiddenField		: "ÎšÏÏ…Ï†ÏŒ Ï€ÎµÎ´Î¯Î¿",
+Button			: "ÎšÎ¿Ï…Î¼Ï€Î¯",
+SelectionField	: "Î ÎµÎ´Î¯Î¿ ÎµÏ€Î¹Î»Î¿Î³Î®Ï‚",
+ImageButton		: "ÎšÎ¿Ï…Î¼Ï€Î¯ ÎµÎ¹ÎºÏŒÎ½Î±Ï‚",
+
+FitWindow		: "ÎœÎµÎ³Î¹ÏƒÏ„Î¿Ï€Î¿Î¯Î·ÏƒÎ· Ï€ÏÎ¿Î³ÏÎ¬Î¼Î¼Î±Ï„Î¿Ï‚",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "ÎœÎµÏ„Î±Î²Î¿Î»Î® Î£Ï…Î½Î´Î­ÏƒÎ¼Î¿Ï… (Link)",
+CellCM				: "ÎšÎµÎ»Î¯",
+RowCM				: "Î£ÎµÎ¹ÏÎ¬",
+ColumnCM			: "Î£Ï„Î®Î»Î·",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Î”Î¹Î±Î³ÏÎ±Ï†Î® Î“ÏÎ±Î¼Î¼ÏŽÎ½",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Î”Î¹Î±Î³ÏÎ±Ï†Î® ÎšÎ¿Î»Ï‰Î½ÏŽÎ½",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Î”Î¹Î±Î³ÏÎ±Ï†Î® ÎšÎµÎ»Î¹ÏŽÎ½",
+MergeCells			: "Î•Î½Î¿Ï€Î¿Î¯Î·ÏƒÎ· ÎšÎµÎ»Î¹ÏŽÎ½",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Î”Î¹Î±Î³ÏÎ±Ï†Î® Ï€Î¯Î½Î±ÎºÎ±",
+CellProperties		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎšÎµÎ»Î¹Î¿Ï",
+TableProperties		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î Î¯Î½Î±ÎºÎ±",
+ImageProperties		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î•Î¹ÎºÏŒÎ½Î±Ï‚",
+FlashProperties		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Flash",
+
+AnchorProp			: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î¬Î³ÎºÏ…ÏÎ±Ï‚",
+ButtonProp			: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï",
+CheckboxProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎµÏ€Î¹Î»Î¿Î³Î®Ï‚",
+HiddenFieldProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎºÏÏ…Ï†Î¿Ï Ï€ÎµÎ´Î¯Î¿Ï…",
+RadioButtonProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï radio",
+ImageButtonProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎµÎ¹ÎºÏŒÎ½Î±Ï‚",
+TextFieldProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Ï€ÎµÎ´Î¯Î¿Ï… ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…",
+SelectionFieldProp	: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Ï€ÎµÎ´Î¯Î¿Ï… ÎµÏ€Î¹Î»Î¿Î³Î®Ï‚",
+TextareaProp		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Ï€ÎµÏÎ¹Î¿Ï‡Î®Ï‚ ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…",
+FormProp			: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Ï†ÏŒÏÎ¼Î±Ï‚",
+
+FontFormats			: "ÎšÎ±Î½Î¿Î½Î¹ÎºÏŒ;ÎœÎ¿ÏÏ†Î¿Ï€Î¿Î¹Î·Î¼Î­Î½Î¿;Î”Î¹ÎµÏÎ¸Ï…Î½ÏƒÎ·;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 1;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 2;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 3;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 4;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 5;Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Î•Ï€ÎµÎ¾ÎµÏÎ³Î±ÏƒÎ¯Î± XHTML. Î Î±ÏÎ±ÎºÎ±Î»ÏŽ Ï€ÎµÏÎ¹Î¼Î­Î½ÎµÏ„Îµ...",
+Done				: "ÎˆÏ„Î¿Î¹Î¼Î¿",
+PasteWordConfirm	: "Î¤Î¿ ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï€Î¿Ï… Î¸Î­Î»ÎµÏ„Îµ Î½Î± ÎµÏ€Î¹ÎºÎ¿Î»Î®ÏƒÎµÏ„Îµ, Ï†Î±Î¯Î½ÎµÏ„Î±Î¹ Ï€Ï‰Ï‚ Ï€ÏÎ¿Î­ÏÏ‡ÎµÏ„Î±Î¹ Î±Ï€ÏŒ Ï„Î¿ Word. Î˜Î­Î»ÎµÏ„Îµ Î½Î± ÎºÎ±Î¸Î±ÏÎ¹ÏƒÏ„ÎµÎ¯ Ï€ÏÎ¹Î½ ÎµÏ€Î¹ÎºÎ¿Î»Î·Î¸ÎµÎ¯;",
+NotCompatiblePaste	: "Î‘Ï…Ï„Î® Î· ÎµÏ€Î¹Î»Î¿Î³Î® ÎµÎ¯Î½Î±Î¹ Î´Î¹Î±Î¸Î­ÏƒÎ¹Î¼Î· ÏƒÏ„Î¿Î½ Internet Explorer Î­ÎºÎ´Î¿ÏƒÎ· 5.5+. Î˜Î­Î»ÎµÏ„Îµ Î½Î± Î³Î¯Î½ÎµÎ¹ Î· ÎµÏ€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ· Ï‡Ï‰ÏÎ¯Ï‚ ÎºÎ±Î¸Î±ÏÎ¹ÏƒÎ¼ÏŒ;",
+UnknownToolbarItem	: "Î†Î³Î½Ï‰ÏƒÏ„Î¿ Î±Î½Ï„Î¹ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï„Î·Ï‚ Î¼Ï€Î¬ÏÎ±Ï‚ ÎµÏÎ³Î±Î»ÎµÎ¯Ï‰Î½ \"%1\"",
+UnknownCommand		: "Î†Î³Î½Ï‰ÏƒÏ„Î® ÎµÎ½Ï„Î¿Î»Î® \"%1\"",
+NotImplemented		: "Î— ÎµÎ½Ï„Î¿Î»Î® Î´ÎµÎ½ Î­Ï‡ÎµÎ¹ ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î·Î¸ÎµÎ¯",
+UnknownToolbarSet	: "Î— Î¼Ï€Î¬ÏÎ± ÎµÏÎ³Î±Î»ÎµÎ¯Ï‰Î½ \"%1\" Î´ÎµÎ½ Ï…Ï€Î¬ÏÏ‡ÎµÎ¹",
+NoActiveX			: "ÎŸÎ¹ ÏÏ…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚ Î±ÏƒÏ†Î±Î»ÎµÎ¯Î±Ï‚ Ï„Î¿Ï… browser ÏƒÎ±Ï‚ Î¼Ï€Î¿ÏÎµÎ¯ Î½Î± Ï€ÎµÏÎ¹Î¿ÏÎ¯ÏƒÎ¿Ï…Î½ ÎºÎ¬Ï€Î¿Î¹ÎµÏ‚ ÏÏ…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚ Ï„Î¿Ï… Ï€ÏÎ¿Î³ÏÎ¬Î¼Î¼Î±Ï„Î¿Ï‚. Î§ÏÎµÎ¹Î¬Î¶ÎµÏ„Î±Î¹ Î½Î± ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ Ï„Î·Î½ ÎµÏ€Î¹Î»Î¿Î³Î® \"Run ActiveX controls and plug-ins\". ÎŠÏƒÏ‰Ï‚ Ï€Î±ÏÎ¿Ï…ÏƒÎ¹Î±ÏƒÏ„Î¿ÏÎ½ Î»Î¬Î¸Î· ÎºÎ±Î¹ Ï€Î±ÏÎ±Ï„Î·ÏÎ®ÏƒÎµÏ„Îµ ÎµÎ»ÎµÎ¹Ï€ÎµÎ¯Ï‚ Î»ÎµÎ¹Ï„Î¿Ï…ÏÎ³Î¯ÎµÏ‚.",
+BrowseServerBlocked : "ÎŸÎ¹ Ï€ÏŒÏÎ¿Î¹ Ï„Î¿Ï… browser ÏƒÎ±Ï‚ Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Ï€ÏÎ¿ÏƒÏ€ÎµÎ»Î¬ÏƒÎ¹Î¼Î¿Î¹. Î£Î¹Î³Î¿Ï…ÏÎµÏ…Ï„ÎµÎ¯Ï„Îµ ÏŒÏ„Î¹ Î´ÎµÎ½ Ï…Ï€Î¬ÏÏ‡Î¿Ï…Î½ ÎµÎ½ÎµÏÎ³Î¿Î¯ popup blockers.",
+DialogBlocked		: "Î”ÎµÎ½ Î®Ï„Î±Î½ Î´Ï…Î½Î±Ï„ÏŒ Î½Î± Î±Î½Î¿Î¯Î¾ÎµÎ¹ Ï„Î¿ Ï€Î±ÏÎ¬Î¸Ï…ÏÎ¿ Î´Î¹Î±Î»ÏŒÎ³Î¿Ï…. Î£Î¹Î³Î¿Ï…ÏÎµÏ…Ï„ÎµÎ¯Ï„Îµ ÏŒÏ„Î¹ Î´ÎµÎ½ Ï…Ï€Î¬ÏÏ‡Î¿Ï…Î½ ÎµÎ½ÎµÏÎ³Î¿Î¯ popup blockers.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Î‘ÎºÏÏÏ‰ÏƒÎ·",
+DlgBtnClose			: "ÎšÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿",
+DlgBtnBrowseServer	: "Î•Î¾ÎµÏÎµÏÎ½Î·ÏƒÎ· Î´Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î®",
+DlgAdvancedTag		: "Î“Î¹Î± Ï€ÏÎ¿Ï‡Ï‰ÏÎ·Î¼Î­Î½Î¿Ï…Ï‚",
+DlgOpOther			: "<Î†Î»Î»Î±>",
+DlgInfoTab			: "Î Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚",
+DlgAlertUrl			: "Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÎ¹ÏƒÎ¬Î³ÎµÏ„Îµ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ï‡Ï‰ÏÎ¯Ï‚>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "ÎšÎ±Ï„ÎµÏÎ¸Ï…Î½ÏƒÎ· ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…",
+DlgGenLangDirLtr	: "Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬ Ï€ÏÎ¿Ï‚ Î”ÎµÎ¾Î¹Î¬ (LTR)",
+DlgGenLangDirRtl	: "Î”ÎµÎ¾Î¹Î¬ Ï€ÏÎ¿Ï‚ Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬ (RTL)",
+DlgGenLangCode		: "ÎšÏ‰Î´Î¹ÎºÏŒÏ‚ Î“Î»ÏŽÏƒÏƒÎ±Ï‚",
+DlgGenAccessKey		: "Î£Ï…Î½Ï„ÏŒÎ¼ÎµÏ…ÏƒÎ· (Access Key)",
+DlgGenName			: "ÎŒÎ½Î¿Î¼Î±",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Î‘Î½Î±Î»Ï…Ï„Î¹ÎºÎ® Ï€ÎµÏÎ¹Î³ÏÎ±Ï†Î® URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Î£Ï…Î¼Î²Î¿Ï…Î»ÎµÏ…Ï„Î¹ÎºÏŒÏ‚ Ï„Î¯Ï„Î»Î¿Ï‚",
+DlgGenContType		: "Î£Ï…Î¼Î²Î¿Ï…Î»ÎµÏ…Ï„Î¹ÎºÏŒÏ‚ Ï„Î¯Ï„Î»Î¿Ï‚ Ï€ÎµÏÎ¹ÎµÏ‡Î¿Î¼Î­Î½Î¿Ï…",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Î£Ï„ÏÎ»",
+
+// Image Dialog
+DlgImgTitle			: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î•Î¹ÎºÏŒÎ½Î±Ï‚",
+DlgImgInfoTab		: "Î Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ Î•Î¹ÎºÏŒÎ½Î±Ï‚",
+DlgImgBtnUpload		: "Î‘Ï€Î¿ÏƒÏ„Î¿Î»Î® ÏƒÏ„Î¿Î½ Î”Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î®",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Î‘Ï€Î¿ÏƒÏ„Î¿Î»Î®",
+DlgImgAlt			: "Î•Î½Î±Î»Î»Î±ÎºÏ„Î¹ÎºÏŒ ÎšÎµÎ¯Î¼ÎµÎ½Î¿ (ALT)",
+DlgImgWidth			: "Î Î»Î¬Ï„Î¿Ï‚",
+DlgImgHeight		: "ÎŽÏˆÎ¿Ï‚",
+DlgImgLockRatio		: "ÎšÎ»ÎµÎ¯Î´Ï‰Î¼Î± Î‘Î½Î±Î»Î¿Î³Î¯Î±Ï‚",
+DlgBtnResetSize		: "Î•Ï€Î±Î½Î±Ï†Î¿ÏÎ¬ Î‘ÏÏ‡Î¹ÎºÎ¿Ï ÎœÎµÎ³Î­Î¸Î¿Ï…Ï‚",
+DlgImgBorder		: "Î ÎµÏÎ¹Î¸ÏŽÏÎ¹Î¿",
+DlgImgHSpace		: "ÎŸÏÎ¹Î¶ÏŒÎ½Ï„Î¹Î¿Ï‚ Î§ÏŽÏÎ¿Ï‚ (HSpace)",
+DlgImgVSpace		: "ÎšÎ¬Î¸ÎµÏ„Î¿Ï‚ Î§ÏŽÏÎ¿Ï‚ (VSpace)",
+DlgImgAlign			: "Î•Ï…Î¸Ï…Î³ÏÎ¬Î¼Î¼Î¹ÏƒÎ· (Align)",
+DlgImgAlignLeft		: "Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬",
+DlgImgAlignAbsBottom: "Î‘Ï€ÏŒÎ»Ï…Ï„Î± ÎšÎ¬Ï„Ï‰ (Abs Bottom)",
+DlgImgAlignAbsMiddle: "Î‘Ï€ÏŒÎ»Ï…Ï„Î± ÏƒÏ„Î· ÎœÎ­ÏƒÎ· (Abs Middle)",
+DlgImgAlignBaseline	: "Î“ÏÎ±Î¼Î¼Î® Î’Î¬ÏƒÎ·Ï‚ (Baseline)",
+DlgImgAlignBottom	: "ÎšÎ¬Ï„Ï‰ (Bottom)",
+DlgImgAlignMiddle	: "ÎœÎ­ÏƒÎ· (Middle)",
+DlgImgAlignRight	: "Î”ÎµÎ¾Î¹Î¬ (Right)",
+DlgImgAlignTextTop	: "ÎšÎ¿ÏÏ…Ï†Î® ÎšÎµÎ¹Î¼Î­Î½Î¿Ï… (Text Top)",
+DlgImgAlignTop		: "Î Î¬Î½Ï‰ (Top)",
+DlgImgPreview		: "Î ÏÎ¿ÎµÏ€Î¹ÏƒÎºÏŒÏ€Î¹ÏƒÎ·",
+DlgImgAlertUrl		: "Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î·Î½ Ï„Î¿Ï€Î¿Î¸ÎµÏƒÎ¯Î± (URL) Ï„Î·Ï‚ ÎµÎ¹ÎºÏŒÎ½Î±Ï‚",
+DlgImgLinkTab		: "Î£ÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚",
+
+// Flash Dialog
+DlgFlashTitle		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ flash",
+DlgFlashChkPlay		: "Î‘Ï…Ï„ÏŒÎ¼Î±Ï„Î· Î­Î½Î±ÏÎ¾Î·",
+DlgFlashChkLoop		: "Î•Ï€Î±Î½Î¬Î»Î·ÏˆÎ·",
+DlgFlashChkMenu		: "Î•Î½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎ· Flash Menu",
+DlgFlashScale		: "ÎšÎ»Î¯Î¼Î±ÎºÎ±",
+DlgFlashScaleAll	: "Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· ÏŒÎ»Ï‰Î½",
+DlgFlashScaleNoBorder	: "Î§Ï‰ÏÎ¯Ï‚ ÏŒÏÎ¹Î±",
+DlgFlashScaleFit	: "Î‘ÎºÏÎ¹Î²Î®Ï‚ ÎµÏ†Î±ÏÎ¼Î¿Î³Î®",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Î£ÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚ (Link)",
+DlgLnkInfoTab		: "Link",
+DlgLnkTargetTab		: "Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ Î£Ï„ÏŒÏ‡Î¿Ï‚ (Target)",
+
+DlgLnkType			: "Î¤ÏÏ€Î¿Ï‚ ÏƒÏ…Î½Î´Î­ÏƒÎ¼Î¿Ï… (Link)",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Î†Î³ÎºÏ…ÏÎ± ÏƒÎµ Î±Ï…Ï„Î® Ï„Î· ÏƒÎµÎ»Î¯Î´Î±",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Î ÏÎ¿Ï„ÏŒÎºÎ¿Î»Î¿",
+DlgLnkProtoOther	: "<Î¬Î»Î»Î¿>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Î•Ï€Î¹Î»Î­Î¾Ï„Îµ Î¼Î¹Î± Î¬Î³ÎºÏ…ÏÎ±",
+DlgLnkAnchorByName	: "Î’Î¬ÏƒÎµÎ¹ Ï„Î¿Ï… ÎŸÎ½ÏŒÎ¼Î±Ï„Î¿Ï‚ (Name) Ï„Î·Ï‚ Î¬Î³ÎºÏ…ÏÎ±Ï‚",
+DlgLnkAnchorById	: "Î’Î¬ÏƒÎµÎ¹ Ï„Î¿Ï… Element Id",
+DlgLnkNoAnchors		: "(Î”ÎµÎ½ Ï…Ï€Î¬ÏÏ‡Î¿Ï…Î½ Î¬Î³ÎºÏ…ÏÎµÏ‚ ÏƒÏ„Î¿ ÎºÎµÎ¯Î¼ÎµÎ½Î¿)",
+DlgLnkEMail			: "Î”Î¹ÎµÏÎ¸Ï…Î½ÏƒÎ· Î—Î»ÎµÎºÏ„ÏÎ¿Î½Î¹ÎºÎ¿Ï Î¤Î±Ï‡Ï…Î´ÏÎ¿Î¼ÎµÎ¯Î¿Ï…",
+DlgLnkEMailSubject	: "Î˜Î­Î¼Î± ÎœÎ·Î½ÏÎ¼Î±Ï„Î¿Ï‚",
+DlgLnkEMailBody		: "ÎšÎµÎ¯Î¼ÎµÎ½Î¿ ÎœÎ·Î½ÏÎ¼Î±Ï„Î¿Ï‚",
+DlgLnkUpload		: "Î‘Ï€Î¿ÏƒÏ„Î¿Î»Î®",
+DlgLnkBtnUpload		: "Î‘Ï€Î¿ÏƒÏ„Î¿Î»Î® ÏƒÏ„Î¿Î½ Î”Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î®",
+
+DlgLnkTarget		: "Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ Î£Ï„ÏŒÏ‡Î¿Ï‚ (Target)",
+DlgLnkTargetFrame	: "<Ï€Î»Î±Î¯ÏƒÎ¹Î¿>",
+DlgLnkTargetPopup	: "<Ï€Î±ÏÎ¬Î¸Ï…ÏÎ¿ popup>",
+DlgLnkTargetBlank	: "ÎÎ­Î¿ Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ (_blank)",
+DlgLnkTargetParent	: "Î“Î¿Î½Î¹ÎºÏŒ Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ (_parent)",
+DlgLnkTargetSelf	: "ÎŠÎ´Î¹Î¿ Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ (_self)",
+DlgLnkTargetTop		: "Î‘Î½ÏŽÏ„Î±Ï„Î¿ Î Î±ÏÎ¬Î¸Ï…ÏÎ¿ (_top)",
+DlgLnkTargetFrameName	: "ÎŒÎ½Î¿Î¼Î± Ï€Î»Î±Î¹ÏƒÎ¯Î¿Ï… ÏƒÏ„ÏŒÏ‡Î¿Ï…",
+DlgLnkPopWinName	: "ÎŒÎ½Î¿Î¼Î± Popup Window",
+DlgLnkPopWinFeat	: "Î•Ï€Î¹Î»Î¿Î³Î­Ï‚ Popup Window",
+DlgLnkPopResize		: "ÎœÎµ Î±Î»Î»Î±Î³Î® ÎœÎµÎ³Î­Î¸Î¿Ï…Ï‚",
+DlgLnkPopLocation	: "ÎœÏ€Î¬ÏÎ± Î¤Î¿Ï€Î¿Î¸ÎµÏƒÎ¯Î±Ï‚",
+DlgLnkPopMenu		: "ÎœÏ€Î¬ÏÎ± Menu",
+DlgLnkPopScroll		: "ÎœÏ€Î¬ÏÎµÏ‚ ÎšÏÎ»Î¹ÏƒÎ·Ï‚",
+DlgLnkPopStatus		: "ÎœÏ€Î¬ÏÎ± Status",
+DlgLnkPopToolbar	: "ÎœÏ€Î¬ÏÎ± Î•ÏÎ³Î±Î»ÎµÎ¯Ï‰Î½",
+DlgLnkPopFullScrn	: "ÎŸÎ»ÏŒÎºÎ»Î·ÏÎ· Î· ÎŸÎ¸ÏŒÎ½Î· (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Î Î»Î¬Ï„Î¿Ï‚",
+DlgLnkPopHeight		: "ÎŽÏˆÎ¿Ï‚",
+DlgLnkPopLeft		: "Î¤Î¿Ï€Î¿Î¸ÎµÏƒÎ¯Î± Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ®Ï‚ Î†ÎºÏÎ·Ï‚",
+DlgLnkPopTop		: "Î¤Î¿Ï€Î¿Î¸ÎµÏƒÎ¯Î± Î Î¬Î½Ï‰ Î†ÎºÏÎ·Ï‚",
+
+DlnLnkMsgNoUrl		: "Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î·Î½ Ï„Î¿Ï€Î¿Î¸ÎµÏƒÎ¯Î± (URL) Ï„Î¿Ï… Ï…Ï€ÎµÏÏƒÏ…Î½Î´Î­ÏƒÎ¼Î¿Ï… (Link)",
+DlnLnkMsgNoEMail	: "Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î·Î½ Î´Î¹ÎµÏÎ¸Ï…Î½ÏƒÎ· Î·Î»ÎµÎºÏ„ÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´ÏÎ¿Î¼ÎµÎ¯Î¿Ï…",
+DlnLnkMsgNoAnchor	: "Î•Ï€Î¹Î»Î­Î¾Ï„Îµ Î­Î½Î± Anchor",
+DlnLnkMsgInvPopName	: "Î¤Î¿ ÏŒÎ½Î¿Î¼Î± Ï„Î¿Ï… popup Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± Î±ÏÏ‡Î¯Î¶ÎµÎ¹ Î¼Îµ Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÎ± Ï„Î·Ï‚ Î±Î»Ï†Î±Î²Î®Ï„Î¿Ï… ÎºÎ±Î¹ Î½Î± Î¼Î·Î½ Ï€ÎµÏÎ¹Î­Ï‡ÎµÎ¹ ÎºÎµÎ½Î¬",
+
+// Color Dialog
+DlgColorTitle		: "Î•Ï€Î¹Î»Î¿Î³Î® Ï‡ÏÏŽÎ¼Î±Ï„Î¿Ï‚",
+DlgColorBtnClear	: "ÎšÎ±Î¸Î±ÏÎ¹ÏƒÎ¼ÏŒÏ‚",
+DlgColorHighlight	: "Î ÏÎ¿ÎµÏ€Î¹ÏƒÎºÏŒÏ€Î¹ÏƒÎ·",
+DlgColorSelected	: "Î•Ï€Î¹Î»ÎµÎ³Î¼Î­Î½Î¿",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Î•Ï€Î¹Î»Î­Î¾Ï„Îµ Î­Î½Î± Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Î•Ï€Î¹Î»Î­Î¾Ï„Îµ Î­Î½Î± Î•Î¹Î´Î¹ÎºÏŒ Î£ÏÎ¼Î²Î¿Î»Î¿",
+
+// Table Dialog
+DlgTableTitle		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î Î¯Î½Î±ÎºÎ±",
+DlgTableRows		: "Î“ÏÎ±Î¼Î¼Î­Ï‚",
+DlgTableColumns		: "ÎšÎ¿Î»ÏŽÎ½ÎµÏ‚",
+DlgTableBorder		: "ÎœÎ­Î³ÎµÎ¸Î¿Ï‚ Î ÎµÏÎ¹Î¸Ï‰ÏÎ¯Î¿Ï…",
+DlgTableAlign		: "Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ·",
+DlgTableAlignNotSet	: "<Ï‡Ï‰ÏÎ¯Ï‚>",
+DlgTableAlignLeft	: "Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬",
+DlgTableAlignCenter	: "ÎšÎ­Î½Ï„ÏÎ¿",
+DlgTableAlignRight	: "Î”ÎµÎ¾Î¹Î¬",
+DlgTableWidth		: "Î Î»Î¬Ï„Î¿Ï‚",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "\%",
+DlgTableHeight		: "ÎŽÏˆÎ¿Ï‚",
+DlgTableCellSpace	: "Î‘Ï€ÏŒÏƒÏ„Î±ÏƒÎ· ÎºÎµÎ»Î¹ÏŽÎ½",
+DlgTableCellPad		: "Î“Î­Î¼Î¹ÏƒÎ¼Î± ÎºÎµÎ»Î¹ÏŽÎ½",
+DlgTableCaption		: "Î¥Ï€Î­ÏÏ„Î¹Ï„Î»Î¿Ï‚",
+DlgTableSummary		: "Î ÎµÏÎ¯Î»Î·ÏˆÎ·",
+
+// Table Cell Dialog
+DlgCellTitle		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎšÎµÎ»Î¹Î¿Ï",
+DlgCellWidth		: "Î Î»Î¬Ï„Î¿Ï‚",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "\%",
+DlgCellHeight		: "ÎŽÏˆÎ¿Ï‚",
+DlgCellWordWrap		: "ÎœÎµ Î±Î»Î»Î±Î³Î® Î³ÏÎ±Î¼Î¼Î®Ï‚",
+DlgCellWordWrapNotSet	: "<Ï‡Ï‰ÏÎ¯Ï‚>",
+DlgCellWordWrapYes	: "ÎÎ±Î¹",
+DlgCellWordWrapNo	: "ÎŒÏ‡Î¹",
+DlgCellHorAlign		: "ÎŸÏÎ¹Î¶ÏŒÎ½Ï„Î¹Î± Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ·",
+DlgCellHorAlignNotSet	: "<Ï‡Ï‰ÏÎ¯Ï‚>",
+DlgCellHorAlignLeft	: "Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬",
+DlgCellHorAlignCenter	: "ÎšÎ­Î½Ï„ÏÎ¿",
+DlgCellHorAlignRight: "Î”ÎµÎ¾Î¹Î¬",
+DlgCellVerAlign		: "ÎšÎ¬Î¸ÎµÏ„Î· Î£Ï„Î¿Î¯Ï‡Î¹ÏƒÎ·",
+DlgCellVerAlignNotSet	: "<Ï‡Ï‰ÏÎ¯Ï‚>",
+DlgCellVerAlignTop	: "Î Î¬Î½Ï‰ (Top)",
+DlgCellVerAlignMiddle	: "ÎœÎ­ÏƒÎ· (Middle)",
+DlgCellVerAlignBottom	: "ÎšÎ¬Ï„Ï‰ (Bottom)",
+DlgCellVerAlignBaseline	: "Î“ÏÎ±Î¼Î¼Î® Î’Î¬ÏƒÎ·Ï‚ (Baseline)",
+DlgCellRowSpan		: "Î‘ÏÎ¹Î¸Î¼ÏŒÏ‚ Î“ÏÎ±Î¼Î¼ÏŽÎ½ (Rows Span)",
+DlgCellCollSpan		: "Î‘ÏÎ¹Î¸Î¼ÏŒÏ‚ ÎšÎ¿Î»Ï‰Î½ÏŽÎ½ (Columns Span)",
+DlgCellBackColor	: "Î§ÏÏŽÎ¼Î± Î¥Ï€Î¿Î²Î¬Î¸ÏÎ¿Ï…",
+DlgCellBorderColor	: "Î§ÏÏŽÎ¼Î± Î ÎµÏÎ¹Î¸Ï‰ÏÎ¯Î¿Ï…",
+DlgCellBtnSelect	: "Î•Ï€Î¹Î»Î¿Î³Î®...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Î‘Î½Î±Î¶Î®Ï„Î·ÏƒÎ·",
+DlgFindFindBtn		: "Î‘Î½Î±Î¶Î®Ï„Î·ÏƒÎ·",
+DlgFindNotFoundMsg	: "Î¤Î¿ ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Î´ÎµÎ½ Î²ÏÎ­Î¸Î·ÎºÎµ.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·",
+DlgReplaceFindLbl		: "Î‘Î½Î±Î¶Î®Ï„Î·ÏƒÎ·:",
+DlgReplaceReplaceLbl	: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¼Îµ:",
+DlgReplaceCaseChk		: "ÎˆÎ»ÎµÎ³Ï‡Î¿Ï‚ Ï€ÎµÎ¶ÏŽÎ½/ÎºÎµÏ†Î±Î»Î±Î¯Ï‰Î½",
+DlgReplaceReplaceBtn	: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·",
+DlgReplaceReplAllBtn	: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· ÎŒÎ»Ï‰Î½",
+DlgReplaceWordChk		: "Î•ÏÏÎµÏƒÎ· Ï€Î»Î®ÏÎ¿Ï…Ï‚ Î»Î­Î¾Î·Ï‚",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ÎŸÎ¹ ÏÏ…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚ Î±ÏƒÏ†Î±Î»ÎµÎ¯Î±Ï‚ Ï„Î¿Ï… Ï†Ï…Î»Î»Î¿Î¼ÎµÏ„ÏÎ·Ï„Î® ÏƒÎ±Ï‚ Î´ÎµÎ½ ÎµÏ€Î¹Ï„ÏÎ­Ï€Î¿Ï…Î½ Ï„Î·Î½ ÎµÏ€Î¹Î»ÎµÎ³Î¼Î­Î½Î· ÎµÏÎ³Î±ÏƒÎ¯Î± Î±Ï€Î¿ÎºÎ¿Ï€Î®Ï‚. Î§ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹ÎµÎ¯ÏƒÏ„Îµ Ï„Î¿ Ï€Î»Î·ÎºÏ„ÏÎ¿Î»ÏŒÎ³Î¹Î¿ (Ctrl+X).",
+PasteErrorCopy	: "ÎŸÎ¹ ÏÏ…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚ Î±ÏƒÏ†Î±Î»ÎµÎ¯Î±Ï‚ Ï„Î¿Ï… Ï†Ï…Î»Î»Î¿Î¼ÎµÏ„ÏÎ·Ï„Î® ÏƒÎ±Ï‚ Î´ÎµÎ½ ÎµÏ€Î¹Ï„ÏÎ­Ï€Î¿Ï…Î½ Ï„Î·Î½ ÎµÏ€Î¹Î»ÎµÎ³Î¼Î­Î½Î· ÎµÏÎ³Î±ÏƒÎ¯Î± Î±Î½Ï„Î¹Î³ÏÎ±Ï†Î®Ï‚. Î§ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹ÎµÎ¯ÏƒÏ„Îµ Ï„Î¿ Ï€Î»Î·ÎºÏ„ÏÎ¿Î»ÏŒÎ³Î¹Î¿ (Ctrl+C).",
+
+PasteAsText		: "Î•Ï€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ· Ï‰Ï‚ Î‘Ï€Î»ÏŒ ÎšÎµÎ¯Î¼ÎµÎ½Î¿",
+PasteFromWord	: "Î•Ï€Î¹ÎºÏŒÎ»Î»Î·ÏƒÎ· Î±Ï€ÏŒ Ï„Î¿ Word",
+
+DlgPasteMsg2	: "Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÏ€Î¹ÎºÎ¿Î»Î®ÏƒÏ„Îµ ÏƒÏ„Î¿ Î±ÎºÏŒÎ»Î¿Ï…Î¸Î¿ ÎºÎ¿Ï…Ï„Î¯ Ï‡ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹ÏŒÎ½Ï„Î±Ï‚ Ï„Î¿ Ï€Î»Î·ÎºÏ„ÏÎ¿Î»ÏŒÎ³Î¹Î¿ (<STRONG>Ctrl+V</STRONG>) ÎºÎ±Î¹ Ï€Î±Ï„Î®ÏƒÏ„Îµ <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Î‘Î³Î½ÏŒÎ·ÏƒÎ· Ï€ÏÎ¿Î´Î¹Î±Î³ÏÎ±Ï†ÏŽÎ½ Î³ÏÎ±Î¼Î¼Î±Ï„Î¿ÏƒÎµÎ¹ÏÎ¬Ï‚",
+DlgPasteRemoveStyles	: "Î‘Ï†Î±Î¯ÏÎµÏƒÎ· Ï€ÏÎ¿Î´Î¹Î±Î³ÏÎ±Ï†ÏŽÎ½ ÏƒÏ„ÏÎ»",
+
+// Color Picker
+ColorAutomatic	: "Î‘Ï…Ï„ÏŒÎ¼Î±Ï„Î¿",
+ColorMoreColors	: "Î ÎµÏÎ¹ÏƒÏƒÏŒÏ„ÎµÏÎ± Ï‡ÏÏŽÎ¼Î±Ï„Î±...",
+
+// Document Properties
+DocProps		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ ÎµÎ³Î³ÏÎ¬Ï†Î¿Ï…",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î¬Î³ÎºÏ…ÏÎ±Ï‚",
+DlgAnchorName		: "ÎŒÎ½Î¿Î¼Î± Î¬Î³ÎºÏ…ÏÎ±Ï‚",
+DlgAnchorErrorName	: "Î Î±ÏÎ±ÎºÎ±Î»Î¿ÏÎ¼Îµ ÎµÎ¹ÏƒÎ¬Î³ÎµÏ„Îµ ÏŒÎ½Î¿Î¼Î± Î¬Î³ÎºÏ…ÏÎ±Ï‚",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Î”ÎµÎ½ Ï…Ï€Î¬ÏÏ‡ÎµÎ¹ ÏƒÏ„Î¿ Î»ÎµÎ¾Î¹ÎºÏŒ",
+DlgSpellChangeTo		: "Î‘Î»Î»Î±Î³Î® ÏƒÎµ",
+DlgSpellBtnIgnore		: "Î‘Î³Î½ÏŒÎ·ÏƒÎ·",
+DlgSpellBtnIgnoreAll	: "Î‘Î³Î½ÏŒÎ·ÏƒÎ· ÏŒÎ»Ï‰Î½",
+DlgSpellBtnReplace		: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·",
+DlgSpellBtnReplaceAll	: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· ÏŒÎ»Ï‰Î½",
+DlgSpellBtnUndo			: "Î‘Î½Î±Î¯ÏÎµÏƒÎ·",
+DlgSpellNoSuggestions	: "- Î”ÎµÎ½ Ï…Ï€Î¬ÏÏ‡Î¿Ï…Î½ Ï€ÏÎ¿Ï„Î¬ÏƒÎµÎ¹Ï‚ -",
+DlgSpellProgress		: "ÎŸÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚ ÏƒÎµ ÎµÎ¾Î­Î»Î¹Î¾Î·...",
+DlgSpellNoMispell		: "ÎŸ Î¿ÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚ Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ: Î”ÎµÎ½ Î²ÏÎ­Î¸Î·ÎºÎ±Î½ Î»Î¬Î¸Î·",
+DlgSpellNoChanges		: "ÎŸ Î¿ÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚ Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ: Î”ÎµÎ½ Î¬Î»Î»Î±Î¾Î±Î½ Î»Î­Î¾ÎµÎ¹Ï‚",
+DlgSpellOneChange		: "ÎŸ Î¿ÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚ Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ: ÎœÎ¹Î± Î»Î­Î¾Î· Î¬Î»Î»Î±Î¾Îµ",
+DlgSpellManyChanges		: "ÎŸ Î¿ÏÎ¸Î¿Î³ÏÎ±Ï†Î¹ÎºÏŒÏ‚ Î­Î»ÎµÎ³Ï‡Î¿Ï‚ Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ: %1 Î»Î­Î¾ÎµÎ¹Ï‚ Î¬Î»Î»Î±Î¾Î±Î½",
+
+IeSpellDownload			: "Î”ÎµÎ½ Ï…Ï€Î¬ÏÏ‡ÎµÎ¹ ÎµÎ³ÎºÎ±Ï„ÎµÏƒÏ„Î·Î¼Î­Î½Î¿Ï‚ Î¿ÏÎ¸Î¿Î³ÏÎ¬Ï†Î¿Ï‚. Î˜Î­Î»ÎµÏ„Îµ Î½Î± Ï„Î¿Î½ ÎºÎ±Ï„ÎµÎ²Î¬ÏƒÎµÏ„Îµ Ï„ÏŽÏÎ±;",
+
+// Button Dialog
+DlgButtonText		: "ÎšÎµÎ¯Î¼ÎµÎ½Î¿ (Î¤Î¹Î¼Î®)",
+DlgButtonType		: "Î¤ÏÏ€Î¿Ï‚",
+DlgButtonTypeBtn	: "ÎšÎ¿Ï…Î¼Ï€Î¯",
+DlgButtonTypeSbm	: "ÎšÎ±Ï„Î±Ï‡ÏŽÏÎ·ÏƒÎ·",
+DlgButtonTypeRst	: "Î•Ï€Î±Î½Î±Ï†Î¿ÏÎ¬",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ÎŒÎ½Î¿Î¼Î±",
+DlgCheckboxValue	: "Î¤Î¹Î¼Î®",
+DlgCheckboxSelected	: "Î•Ï€Î¹Î»ÎµÎ³Î¼Î­Î½Î¿",
+
+// Form Dialog
+DlgFormName		: "ÎŒÎ½Î¿Î¼Î±",
+DlgFormAction	: "Î”ÏÎ¬ÏƒÎ·",
+DlgFormMethod	: "ÎœÎ¬Î¸Î¿Î´Î¿Ï‚",
+
+// Select Field Dialog
+DlgSelectName		: "ÎŒÎ½Î¿Î¼Î±",
+DlgSelectValue		: "Î¤Î¹Î¼Î®",
+DlgSelectSize		: "ÎœÎ­Î³ÎµÎ¸Î¿Ï‚",
+DlgSelectLines		: "Î³ÏÎ±Î¼Î¼Î­Ï‚",
+DlgSelectChkMulti	: "Î Î¿Î»Î»Î±Ï€Î»Î­Ï‚ ÎµÏ€Î¹Î»Î¿Î³Î­Ï‚",
+DlgSelectOpAvail	: "Î”Î¹Î±Î¸Î­ÏƒÎ¹Î¼ÎµÏ‚ ÎµÏ€Î¹Î»Î¿Î³Î­Ï‚",
+DlgSelectOpText		: "ÎšÎµÎ¯Î¼ÎµÎ½Î¿",
+DlgSelectOpValue	: "Î¤Î¹Î¼Î®",
+DlgSelectBtnAdd		: "Î ÏÎ¿ÏƒÎ¸Î®ÎºÎ·",
+DlgSelectBtnModify	: "Î‘Î»Î»Î±Î³Î®",
+DlgSelectBtnUp		: "Î Î¬Î½Ï‰",
+DlgSelectBtnDown	: "ÎšÎ¬Ï„Ï‰",
+DlgSelectBtnSetValue : "Î ÏÎ¿ÎµÏ€Î¹Î»ÎµÎ³Î¼Î­Î½Î· ÎµÏ€Î¹Î»Î¿Î³Î®",
+DlgSelectBtnDelete	: "Î”Î¹Î±Î³ÏÎ±Ï†Î®",
+
+// Textarea Dialog
+DlgTextareaName	: "ÎŒÎ½Î¿Î¼Î±",
+DlgTextareaCols	: "Î£Ï„Î®Î»ÎµÏ‚",
+DlgTextareaRows	: "Î£ÎµÎ¹ÏÎ­Ï‚",
+
+// Text Field Dialog
+DlgTextName			: "ÎŒÎ½Î¿Î¼Î±",
+DlgTextValue		: "Î¤Î¹Î¼Î®",
+DlgTextCharWidth	: "ÎœÎ®ÎºÎ¿Ï‚ Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÏ‰Î½",
+DlgTextMaxChars		: "ÎœÎ­Î³Î¹ÏƒÏ„Î¿Î¹ Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÎµÏ‚",
+DlgTextType			: "Î¤ÏÏ€Î¿Ï‚",
+DlgTextTypeText		: "ÎšÎµÎ¯Î¼ÎµÎ½Î¿",
+DlgTextTypePass		: "ÎšÏ‰Î´Î¹ÎºÏŒÏ‚",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ÎŒÎ½Î¿Î¼Î±",
+DlgHiddenValue	: "Î¤Î¹Î¼Î®",
+
+// Bulleted List Dialog
+BulletedListProp	: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î»Î¯ÏƒÏ„Î±Ï‚ Bulleted",
+NumberedListProp	: "Î™Î´Î¹ÏŒÏ„Î·Ï„ÎµÏ‚ Î±ÏÎ¹Î¸Î¼Î·Î¼Î­Î½Î·Ï‚ Î»Î¯ÏƒÏ„Î±Ï‚ ",
+DlgLstStart			: "Î‘ÏÏ‡Î®",
+DlgLstType			: "Î¤ÏÏ€Î¿Ï‚",
+DlgLstTypeCircle	: "ÎšÏÎºÎ»Î¿Ï‚",
+DlgLstTypeDisc		: "Î”Î¯ÏƒÎºÎ¿Ï‚",
+DlgLstTypeSquare	: "Î¤ÎµÏ„ÏÎ¬Î³Ï‰Î½Î¿",
+DlgLstTypeNumbers	: "Î‘ÏÎ¹Î¸Î¼Î¿Î¯ (1, 2, 3)",
+DlgLstTypeLCase		: "Î ÎµÎ¶Î¬ Î³ÏÎ¬Î¼Î¼Î±Ï„Î± (a, b, c)",
+DlgLstTypeUCase		: "ÎšÎµÏ†Î±Î»Î±Î¯Î± Î³ÏÎ¬Î¼Î¼Î±Ï„Î± (A, B, C)",
+DlgLstTypeSRoman	: "ÎœÎ¹ÎºÏÎ¬ Î»Î±Ï„Î¹Î½Î¹ÎºÎ¬ Î±ÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¬ (i, ii, iii)",
+DlgLstTypeLRoman	: "ÎœÎµÎ³Î¬Î»Î± Î»Î±Ï„Î¹Î½Î¹ÎºÎ¬ Î±ÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¬ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Î“ÎµÎ½Î¹ÎºÎ¬",
+DlgDocBackTab		: "Î¦ÏŒÎ½Ï„Î¿",
+DlgDocColorsTab		: "Î§ÏÏŽÎ¼Î±Ï„Î± ÎºÎ±Î¹ Ï€ÎµÏÎ¹Î¸ÏŽÏÎ¹Î±",
+DlgDocMetaTab		: "Î”ÎµÎ´Î¿Î¼Î­Î½Î± Meta",
+
+DlgDocPageTitle		: "Î¤Î¯Ï„Î»Î¿Ï‚ ÏƒÎµÎ»Î¯Î´Î±Ï‚",
+DlgDocLangDir		: "ÎšÎ±Ï„ÎµÏÎ¸Ï…Î½ÏƒÎ· Î³ÏÎ±Ï†Î®Ï‚",
+DlgDocLangDirLTR	: "Î±ÏÎ¹ÏƒÏ„ÎµÏÎ¬ Ï€ÏÎ¿Ï‚ Î´ÎµÎ¾Î¹Î¬ (LTR)",
+DlgDocLangDirRTL	: "Î´ÎµÎ¾Î¹Î¬ Ï€ÏÎ¿Ï‚ Î±ÏÎ¹ÏƒÏ„ÎµÏÎ¬ (RTL)",
+DlgDocLangCode		: "ÎšÏ‰Î´Î¹ÎºÏŒÏ‚ Î³Î»ÏŽÏƒÏƒÎ±Ï‚",
+DlgDocCharSet		: "ÎšÏ‰Î´Î¹ÎºÎ¿Ï€Î¿Î¯Î·ÏƒÎ· Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÏ‰Î½",
+DlgDocCharSetCE		: "ÎšÎµÎ½Ï„ÏÎ¹ÎºÎ®Ï‚ Î•Ï…ÏÏŽÏ€Î·Ï‚",
+DlgDocCharSetCT		: "Î Î±ÏÎ±Î´Î¿ÏƒÎ¹Î±ÎºÎ¬ ÎºÎ¹Î½Î­Î¶Î¹ÎºÎ± (Big5)",
+DlgDocCharSetCR		: "ÎšÏ…ÏÎ¹Î»Î»Î¹ÎºÎ®",
+DlgDocCharSetGR		: "Î•Î»Î»Î·Î½Î¹ÎºÎ®",
+DlgDocCharSetJP		: "Î™Î±Ï€Ï‰Î½Î¹ÎºÎ®",
+DlgDocCharSetKR		: "ÎšÎ¿ÏÎµÎ¬Ï„Î¹ÎºÎ·",
+DlgDocCharSetTR		: "Î¤Î¿Ï…ÏÎºÎ¹ÎºÎ®",
+DlgDocCharSetUN		: "Î”Î¹ÎµÎ¸Î½Î®Ï‚ (UTF-8)",
+DlgDocCharSetWE		: "Î”Ï…Ï„Î¹ÎºÎ®Ï‚ Î•Ï…ÏÏŽÏ€Î·Ï‚",
+DlgDocCharSetOther	: "Î†Î»Î»Î· ÎºÏ‰Î´Î¹ÎºÎ¿Ï€Î¿Î¯Î·ÏƒÎ· Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÏ‰Î½",
+
+DlgDocDocType		: "Î•Ï€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± Ï„ÏÏ€Î¿Ï… ÎµÎ³Î³ÏÎ¬Ï†Î¿Ï…",
+DlgDocDocTypeOther	: "Î†Î»Î»Î· ÎµÏ€Î¹ÎºÎµÏ†Î±Î»Î¯Î´Î± Ï„ÏÏ€Î¿Ï… ÎµÎ³Î³ÏÎ¬Ï†Î¿Ï…",
+DlgDocIncXHTML		: "ÎÎ± ÏƒÏ…Î¼Ï€ÎµÏÎ¹Î»Î·Ï†Î¸Î¿ÏÎ½ Î¿Î¹ Î´Î·Î»ÏŽÏƒÎµÎ¹Ï‚ XHTML",
+DlgDocBgColor		: "Î§ÏÏŽÎ¼Î± Ï†ÏŒÎ½Ï„Î¿Ï…",
+DlgDocBgImage		: "Î”Î¹ÎµÏÎ¸Ï…Î½ÏƒÎ· ÎµÎ¹ÎºÏŒÎ½Î±Ï‚ Ï†ÏŒÎ½Ï„Î¿Ï…",
+DlgDocBgNoScroll	: "Î¦ÏŒÎ½Ï„Î¿ Ï‡Ï‰ÏÎ¯Ï‚ ÎºÏÎ»Î¹ÏƒÎ·",
+DlgDocCText			: "ÎšÎµÎ¯Î¼ÎµÎ½Î¿",
+DlgDocCLink			: "Î£ÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚",
+DlgDocCVisited		: "Î£ÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚ Ï€Î¿Ï… Î­Ï‡ÎµÎ¹ ÎµÏ€Î¹ÏƒÎºÎµÏ…Î¸ÎµÎ¯",
+DlgDocCActive		: "Î•Î½ÎµÏÎ³ÏŒÏ‚ ÏƒÏÎ½Î´ÎµÏƒÎ¼Î¿Ï‚",
+DlgDocMargins		: "Î ÎµÏÎ¹Î¸ÏŽÏÎ¹Î± ÏƒÎµÎ»Î¯Î´Î±Ï‚",
+DlgDocMaTop			: "ÎšÎ¿ÏÏ…Ï†Î®",
+DlgDocMaLeft		: "Î‘ÏÎ¹ÏƒÏ„ÎµÏÎ¬",
+DlgDocMaRight		: "Î”ÎµÎ¾Î¹Î¬",
+DlgDocMaBottom		: "ÎšÎ¬Ï„Ï‰",
+DlgDocMeIndex		: "Î›Î­Î¾ÎµÎ¹Ï‚ ÎºÎ»ÎµÎ¹Î´Î¹Î¬ Î´ÎµÎ¯ÎºÏ„ÎµÏ‚ ÎµÎ³Î³ÏÎ¬Ï†Î¿Ï… (Î´Î¹Î±Ï‡Ï‰ÏÎ¹ÏƒÎ¼ÏŒÏ‚ Î¼Îµ ÎºÏŒÎ¼Î¼Î±)",
+DlgDocMeDescr		: "Î ÎµÏÎ¹Î³ÏÎ±Ï†Î® ÎµÎ³Î³ÏÎ¬Ï†Î¿Ï…",
+DlgDocMeAuthor		: "Î£Ï…Î³Î³ÏÎ±Ï†Î­Î±Ï‚",
+DlgDocMeCopy		: "Î Î½ÎµÏ…Î¼Î±Ï„Î¹ÎºÎ¬ Î´Î¹ÎºÎ±Î¹ÏŽÎ¼Î±Ï„Î±",
+DlgDocPreview		: "Î ÏÎ¿ÎµÏ€Î¹ÏƒÎºÏŒÏ€Î·ÏƒÎ·",
+
+// Templates Dialog
+Templates			: "Î ÏÏŒÏ„Ï…Ï€Î±",
+DlgTemplatesTitle	: "Î ÏÏŒÏ„Ï…Ï€Î± Ï€ÎµÏÎ¹ÎµÏ‡Î¿Î¼Î­Î½Î¿Ï…",
+DlgTemplatesSelMsg	: "Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÏ€Î¹Î»Î­Î¾Ï„Îµ Ï€ÏÏŒÏ„Ï…Ï€Î¿ Î³Î¹Î± ÎµÎ¹ÏƒÎ±Î³Ï‰Î³Î® ÏƒÏ„Î¿ Ï€ÏÏŒÎ³ÏÎ±Î¼Î¼Î±<br>(Ï„Î± Ï…Ï€Î¬ÏÏ‡Î¿Î½Ï„Î± Ï€ÎµÏÎ¹ÎµÏ‡ÏŒÎ¼ÎµÎ½Î± Î¸Î± Ï‡Î±Î¸Î¿ÏÎ½):",
+DlgTemplatesLoading	: "Î¦ÏŒÏÏ„Ï‰ÏƒÎ· ÎºÎ±Ï„Î±Î»ÏŒÎ³Î¿Ï… Ï€ÏÎ¿Ï„ÏÏ€Ï‰Î½. Î Î±ÏÎ±ÎºÎ±Î»ÏŽ Ï€ÎµÏÎ¹Î¼Î­Î½ÎµÏ„Îµ...",
+DlgTemplatesNoTpl	: "(Î”ÎµÎ½ Î­Ï‡Î¿Ï…Î½ ÎºÎ±Î¸Î¿ÏÎ¹ÏƒÏ„ÎµÎ¯ Ï€ÏÏŒÏ„Ï…Ï€Î±)",
+DlgTemplatesReplace	: "Î‘Î½Ï„Î¹ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Ï…Ï€Î¬ÏÏ‡Î¿Î½Ï„Ï‰Î½ Ï€ÎµÏÎ¹ÎµÏ‡Î¿Î¼Î­Î½Ï‰Î½",
+
+// About Dialog
+DlgAboutAboutTab	: "Î£Ï‡ÎµÏ„Î¹ÎºÎ¬",
+DlgAboutBrowserInfoTab	: "Î Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ Browser",
+DlgAboutLicenseTab	: "Î†Î´ÎµÎ¹Î±",
+DlgAboutVersion		: "Î­ÎºÎ´Î¿ÏƒÎ·",
+DlgAboutInfo		: "Î“Î¹Î± Ï€ÎµÏÎ¹ÏƒÏƒÏŒÏ„ÎµÏÎµÏ‚ Ï€Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+AnchorDelete		: "Remove Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Center Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Blockquote			: "Blockquote",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Color",
+BGColor				: "Background Color",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+ShowBlocks		: "Show Blocks",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRowAfter		: "Insert Row After",
+InsertRowBefore		: "Insert Row Before",
+DeleteRows			: "Delete Rows",
+InsertColumnAfter	: "Insert Column After",
+InsertColumnBefore	: "Insert Column Before",
+DeleteColumns		: "Delete Columns",
+InsertCellAfter		: "Insert Cell After",
+InsertCellBefore	: "Insert Cell Before",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+MergeRight			: "Merge Right",
+MergeDown			: "Merge Down",
+HorizontalSplitCell	: "Split Cell Horizontally",
+VerticalSplitCell	: "Split Cell Vertically",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Color",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Center",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Center",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Color",
+DlgCellBorderColor	: "Border Color",
+DlgCellBtnSelect	: "Select...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",
+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.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colors...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colors and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Color",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For further information go to"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ar.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ar.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ar.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Arabic language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "Ø¶Ù… Ø´Ø±ÙŠØ· Ø§Ù„Ø£Ø¯ÙˆØ§Øª",
+ToolbarExpand		: "ØªÙ…Ø¯Ø¯ Ø´Ø±ÙŠØ· Ø§Ù„Ø£Ø¯ÙˆØ§Øª",
+
+// Toolbar Items and Context Menu
+Save				: "Ø­ÙØ¸",
+NewPage				: "ØµÙØ­Ø© Ø¬Ø¯ÙŠØ¯Ø©",
+Preview				: "Ù…Ø¹Ø§ÙŠÙ†Ø© Ø§Ù„ØµÙØ­Ø©",
+Cut					: "Ù‚Øµ",
+Copy				: "Ù†Ø³Ø®",
+Paste				: "Ù„ØµÙ‚",
+PasteText			: "Ù„ØµÙ‚ ÙƒÙ†Øµ Ø¨Ø³ÙŠØ·",
+PasteWord			: "Ù„ØµÙ‚ Ù…Ù† ÙˆÙˆØ±Ø¯",
+Print				: "Ø·Ø¨Ø§Ø¹Ø©",
+SelectAll			: "ØªØ­Ø¯ÙŠØ¯ Ø§Ù„ÙƒÙ„",
+RemoveFormat		: "Ø¥Ø²Ø§Ù„Ø© Ø§Ù„ØªÙ†Ø³ÙŠÙ‚Ø§Øª",
+InsertLinkLbl		: "Ø±Ø§Ø¨Ø·",
+InsertLink			: "Ø¥Ø¯Ø±Ø§Ø¬/ØªØ­Ø±ÙŠØ± Ø±Ø§Ø¨Ø·",
+RemoveLink			: "Ø¥Ø²Ø§Ù„Ø© Ø±Ø§Ø¨Ø·",
+Anchor				: "Ø¥Ø¯Ø±Ø§Ø¬/ØªØ­Ø±ÙŠØ± Ø¥Ø´Ø§Ø±Ø© Ù…Ø±Ø¬Ø¹ÙŠØ©",
+AnchorDelete		: "Ø¥Ø²Ø§Ù„Ø© Ø¥Ø´Ø§Ø±Ø© Ù…Ø±Ø¬Ø¹ÙŠØ©",
+InsertImageLbl		: "ØµÙˆØ±Ø©",
+InsertImage			: "Ø¥Ø¯Ø±Ø§Ø¬/ØªØ­Ø±ÙŠØ± ØµÙˆØ±Ø©",
+InsertFlashLbl		: "ÙÙ„Ø§Ø´",
+InsertFlash			: "Ø¥Ø¯Ø±Ø§Ø¬/ØªØ­Ø±ÙŠØ± ÙÙŠÙ„Ù… ÙÙ„Ø§Ø´",
+InsertTableLbl		: "Ø¬Ø¯ÙˆÙ„",
+InsertTable			: "Ø¥Ø¯Ø±Ø§Ø¬/ØªØ­Ø±ÙŠØ± Ø¬Ø¯ÙˆÙ„",
+InsertLineLbl		: "Ø®Ø· ÙØ§ØµÙ„",
+InsertLine			: "Ø¥Ø¯Ø±Ø§Ø¬ Ø®Ø· ÙØ§ØµÙ„",
+InsertSpecialCharLbl: "Ø±Ù…ÙˆØ²",
+InsertSpecialChar	: "Ø¥Ø¯Ø±Ø§Ø¬  Ø±Ù…ÙˆØ²..Ù",
+InsertSmileyLbl		: "Ø§Ø¨ØªØ³Ø§Ù…Ø§Øª",
+InsertSmiley		: "Ø¥Ø¯Ø±Ø§Ø¬ Ø§Ø¨ØªØ³Ø§Ù…Ø§Øª",
+About				: "Ø­ÙˆÙ„ FCKeditor",
+Bold				: "ØºØ§Ù…Ù‚",
+Italic				: "Ù…Ø§Ø¦Ù„",
+Underline			: "ØªØ³Ø·ÙŠØ±",
+StrikeThrough		: "ÙŠØªÙˆØ³Ø·Ù‡ Ø®Ø·",
+Subscript			: "Ù…Ù†Ø®ÙØ¶",
+Superscript			: "Ù…Ø±ØªÙØ¹",
+LeftJustify			: "Ù…Ø­Ø§Ø°Ø§Ø© Ø¥Ù„Ù‰ Ø§Ù„ÙŠØ³Ø§Ø±",
+CenterJustify		: "ØªÙˆØ³ÙŠØ·",
+RightJustify		: "Ù…Ø­Ø§Ø°Ø§Ø© Ø¥Ù„Ù‰ Ø§Ù„ÙŠÙ…ÙŠÙ†",
+BlockJustify		: "Ø¶Ø¨Ø·",
+DecreaseIndent		: "Ø¥Ù†Ù‚Ø§Øµ Ø§Ù„Ù…Ø³Ø§ÙØ© Ø§Ù„Ø¨Ø§Ø¯Ø¦Ø©",
+IncreaseIndent		: "Ø²ÙŠØ§Ø¯Ø© Ø§Ù„Ù…Ø³Ø§ÙØ© Ø§Ù„Ø¨Ø§Ø¯Ø¦Ø©",
+Blockquote			: "Ø§Ù‚ØªØ¨Ø§Ø³",
+Undo				: "ØªØ±Ø§Ø¬Ø¹",
+Redo				: "Ø¥Ø¹Ø§Ø¯Ø©",
+NumberedListLbl		: "ØªØ¹Ø¯Ø§Ø¯ Ø±Ù‚Ù…ÙŠ",
+NumberedList		: "Ø¥Ø¯Ø±Ø§Ø¬/Ø¥Ù„ØºØ§Ø¡ ØªØ¹Ø¯Ø§Ø¯ Ø±Ù‚Ù…ÙŠ",
+BulletedListLbl		: "ØªØ¹Ø¯Ø§Ø¯ Ù†Ù‚Ø·ÙŠ",
+BulletedList		: "Ø¥Ø¯Ø±Ø§Ø¬/Ø¥Ù„ØºØ§Ø¡ ØªØ¹Ø¯Ø§Ø¯ Ù†Ù‚Ø·ÙŠ",
+ShowTableBorders	: "Ù…Ø¹Ø§ÙŠÙ†Ø© Ø­Ø¯ÙˆØ¯ Ø§Ù„Ø¬Ø¯Ø§ÙˆÙ„",
+ShowDetails			: "Ù…Ø¹Ø§ÙŠÙ†Ø© Ø§Ù„ØªÙØ§ØµÙŠÙ„",
+Style				: "Ù†Ù…Ø·",
+FontFormat			: "ØªÙ†Ø³ÙŠÙ‚",
+Font				: "Ø®Ø·",
+FontSize			: "Ø­Ø¬Ù… Ø§Ù„Ø®Ø·",
+TextColor			: "Ù„ÙˆÙ† Ø§Ù„Ù†Øµ",
+BGColor				: "Ù„ÙˆÙ† Ø§Ù„Ø®Ù„ÙÙŠØ©",
+Source				: "Ø´ÙØ±Ø© Ø§Ù„Ù…ØµØ¯Ø±",
+Find				: "Ø¨Ø­Ø«",
+Replace				: "Ø¥Ø³ØªØ¨Ø¯Ø§Ù„",
+SpellCheck			: "ØªØ¯Ù‚ÙŠÙ‚ Ø¥Ù…Ù„Ø§Ø¦ÙŠ",
+UniversalKeyboard	: "Ù„ÙˆØ­Ø© Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Ø§Ù„Ø¹Ø§Ù„Ù…ÙŠØ©",
+PageBreakLbl		: "ÙØµÙ„ Ø§Ù„ØµÙØ­Ø©",
+PageBreak			: "Ø¥Ø¯Ø®Ø§Ù„ ØµÙØ­Ø© Ø¬Ø¯ÙŠØ¯Ø©",
+
+Form			: "Ù†Ù…ÙˆØ°Ø¬",
+Checkbox		: "Ø®Ø§Ù†Ø© Ø¥Ø®ØªÙŠØ§Ø±",
+RadioButton		: "Ø²Ø± Ø®ÙŠØ§Ø±",
+TextField		: "Ù…Ø±Ø¨Ø¹ Ù†Øµ",
+Textarea		: "Ù†Ø§Ø­ÙŠØ© Ù†Øµ",
+HiddenField		: "Ø¥Ø¯Ø±Ø§Ø¬ Ø­Ù‚Ù„ Ø®ÙÙŠ",
+Button			: "Ø²Ø± Ø¶ØºØ·",
+SelectionField	: "Ù‚Ø§Ø¦Ù…Ø© Ù…Ù†Ø³Ø¯Ù„Ø©",
+ImageButton		: "Ø²Ø± ØµÙˆØ±Ø©",
+
+FitWindow		: "ØªÙƒØ¨ÙŠØ± Ø­Ø¬Ù… Ø§Ù„Ù…Ø­Ø±Ø±",
+ShowBlocks		: "Ù…Ø®Ø·Ø· ØªÙØµÙŠÙ„ÙŠ",
+
+// Context Menu
+EditLink			: "ØªØ­Ø±ÙŠØ± Ø±Ø§Ø¨Ø·",
+CellCM				: "Ø®Ù„ÙŠØ©",
+RowCM				: "ØµÙ",
+ColumnCM			: "Ø¹Ù…ÙˆØ¯",
+InsertRowAfter		: "Ø¥Ø¯Ø±Ø§Ø¬ ØµÙ Ø¨Ø¹Ø¯",
+InsertRowBefore		: "Ø¥Ø¯Ø±Ø§Ø¬ ØµÙ Ù‚Ø¨Ù„",
+DeleteRows			: "Ø­Ø°Ù ØµÙÙˆÙ",
+InsertColumnAfter	: "Ø¥Ø¯Ø±Ø§Ø¬ Ø¹Ù…ÙˆØ¯ Ø¨Ø¹Ø¯",
+InsertColumnBefore	: "Ø¥Ø¯Ø±Ø§Ø¬ Ø¹Ù…ÙˆØ¯ Ù‚Ø¨Ù„",
+DeleteColumns		: "Ø­Ø°Ù Ø£Ø¹Ù…Ø¯Ø©",
+InsertCellAfter		: "Ø¥Ø¯Ø±Ø§Ø¬ Ø®Ù„ÙŠØ© Ø¨Ø¹Ø¯",
+InsertCellBefore	: "Ø¥Ø¯Ø±Ø§Ø¬ Ø®Ù„ÙŠØ© Ù‚Ø¨Ù„",
+DeleteCells			: "Ø­Ø°Ù Ø®Ù„Ø§ÙŠØ§",
+MergeCells			: "Ø¯Ù…Ø¬ Ø®Ù„Ø§ÙŠØ§",
+MergeRight			: "Ø¯Ù…Ø¬ Ù„Ù„ÙŠÙ…ÙŠÙ†",
+MergeDown			: "Ø¯Ù…Ø¬ Ù„Ù„Ø£Ø³ÙÙ„",
+HorizontalSplitCell	: "ØªÙ‚Ø³ÙŠÙ… Ø§Ù„Ø®Ù„ÙŠØ© Ø£ÙÙ‚ÙŠØ§Ù‹",
+VerticalSplitCell	: "ØªÙ‚Ø³ÙŠÙ… Ø§Ù„Ø®Ù„ÙŠØ© Ø¹Ù…ÙˆØ¯ÙŠØ§Ù‹",
+TableDelete			: "Ø­Ø°Ù Ø§Ù„Ø¬Ø¯ÙˆÙ„",
+CellProperties		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ø®Ù„ÙŠØ©",
+TableProperties		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ø¬Ø¯ÙˆÙ„",
+ImageProperties		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„ØµÙˆØ±Ø©",
+FlashProperties		: "Ø®ØµØ§Ø¦Øµ ÙÙŠÙ„Ù… Ø§Ù„ÙÙ„Ø§Ø´",
+
+AnchorProp			: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ø¥Ø´Ø§Ø±Ø© Ø§Ù„Ù…Ø±Ø¬Ø¹ÙŠØ©",
+ButtonProp			: "Ø®ØµØ§Ø¦Øµ Ø²Ø± Ø§Ù„Ø¶ØºØ·",
+CheckboxProp		: "Ø®ØµØ§Ø¦Øµ Ø®Ø§Ù†Ø© Ø§Ù„Ø¥Ø®ØªÙŠØ§Ø±",
+HiddenFieldProp		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ø­Ù‚Ù„ Ø§Ù„Ø®ÙÙŠ",
+RadioButtonProp		: "Ø®ØµØ§Ø¦Øµ Ø²Ø± Ø§Ù„Ø®ÙŠØ§Ø±",
+ImageButtonProp		: "Ø®ØµØ§Ø¦Øµ Ø²Ø± Ø§Ù„ØµÙˆØ±Ø©",
+TextFieldProp		: "Ø®ØµØ§Ø¦Øµ Ù…Ø±Ø¨Ø¹ Ø§Ù„Ù†Øµ",
+SelectionFieldProp	: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ù…Ù†Ø³Ø¯Ù„Ø©",
+TextareaProp		: "Ø®ØµØ§Ø¦Øµ Ù†Ø§Ø­ÙŠØ© Ø§Ù„Ù†Øµ",
+FormProp			: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ù†Ù…ÙˆØ°Ø¬",
+
+FontFormats			: "Ø¹Ø§Ø¯ÙŠ;Ù…Ù†Ø³Ù‘Ù‚;Ø¯ÙˆØ³;Ø§Ù„Ø¹Ù†ÙˆØ§Ù† 1;Ø§Ù„Ø¹Ù†ÙˆØ§Ù†  2;Ø§Ù„Ø¹Ù†ÙˆØ§Ù†  3;Ø§Ù„Ø¹Ù†ÙˆØ§Ù†  4;Ø§Ù„Ø¹Ù†ÙˆØ§Ù†  5;Ø§Ù„Ø¹Ù†ÙˆØ§Ù†  6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Ø¥Ù†ØªØ¸Ø± Ù‚Ù„ÙŠÙ„Ø§Ù‹ Ø±ÙŠØ«Ù…Ø§ ØªØªÙ…   Ù…Ø¹Ø§Ù„ÙŽØ¬Ø©â€ XHTML. Ù„Ù† ÙŠØ³ØªØºØ±Ù‚ Ø·ÙˆÙŠÙ„Ø§Ù‹...",
+Done				: "ØªÙ…",
+PasteWordConfirm	: "ÙŠØ¨Ø¯Ùˆ Ø£Ù† Ø§Ù„Ù†Øµ Ø§Ù„Ù…Ø±Ø§Ø¯ Ù„ØµÙ‚Ù‡ Ù…Ù†Ø³ÙˆØ® Ù…Ù† Ø¨Ø±Ù†Ø§Ù…Ø¬ ÙˆÙˆØ±Ø¯. Ù‡Ù„ ØªÙˆØ¯ ØªÙ†Ø¸ÙŠÙÙ‡ Ù‚Ø¨Ù„ Ø§Ù„Ø´Ø±ÙˆØ¹ ÙÙŠ Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ù„ØµÙ‚ØŸ",
+NotCompatiblePaste	: "Ù‡Ø°Ù‡ Ø§Ù„Ù…ÙŠØ²Ø© ØªØ­ØªØ§Ø¬ Ù„Ù…ØªØµÙØ­ Ù…Ù† Ø§Ù„Ù†ÙˆØ¹Internet Explorer Ø¥ØµØ¯Ø§Ø± 5.5 ÙÙ…Ø§ ÙÙˆÙ‚. Ù‡Ù„ ØªÙˆØ¯ Ø§Ù„Ù„ØµÙ‚ Ø¯ÙˆÙ† ØªÙ†Ø¸ÙŠÙ Ø§Ù„ÙƒÙˆØ¯ØŸ",
+UnknownToolbarItem	: "Ø¹Ù†ØµØ± Ø´Ø±ÙŠØ· Ø£Ø¯ÙˆØ§Øª ØºÙŠØ± Ù…Ø¹Ø±ÙˆÙ \"%1\"",
+UnknownCommand		: "Ø£Ù…Ø± ØºÙŠØ± Ù…Ø¹Ø±ÙˆÙ \"%1\"",
+NotImplemented		: "Ù„Ù… ÙŠØªÙ… Ø¯Ø¹Ù… Ù‡Ø°Ø§ Ø§Ù„Ø£Ù…Ø±",
+UnknownToolbarSet	: "Ù„Ù… Ø£ØªÙ…ÙƒÙ† Ù…Ù† Ø§Ù„Ø¹Ø«ÙˆØ± Ø¹Ù„Ù‰ Ø·Ù‚Ù… Ø§Ù„Ø£Ø¯ÙˆØ§Øª \"%1\" ",
+NoActiveX			: "Ù„ØªØ£Ù…ÙŠÙ† Ù…ØªØµÙØ­Ùƒ ÙŠØ¬Ø¨ Ø£Ù† ØªØ­Ø¯Ø¯ Ø¨Ø¹Ø¶ Ù…Ù…ÙŠØ²Ø§Øª Ø§Ù„Ù…Ø­Ø±Ø±. ÙŠØªÙˆØ¬Ø¨ Ø¹Ù„ÙŠÙƒ ØªÙ…ÙƒÙŠÙ† Ø§Ù„Ø®ÙŠØ§Ø± \"Run ActiveX controls and plug-ins\". Ù‚Ø¯ ØªÙˆØ§Ø¬Ø© Ø£Ø®Ø·Ø§Ø¡ ÙˆØªÙ„Ø§Ø­Ø¸ Ù…Ù…ÙŠØ²Ø§Øª Ù…ÙÙ‚ÙˆØ¯Ø©",
+BrowseServerBlocked : "Ù„Ø§ÙŠÙ…ÙƒÙ† ÙØªØ­ Ù…ØµØ¯Ø± Ø§Ù„Ù…ØªØµÙØ­. ÙØ¶Ù„Ø§ ÙŠØ¬Ø¨ Ø§Ù„ØªØ£ÙƒØ¯ Ø¨Ø£Ù† Ø¬Ù…ÙŠØ¹ Ù…ÙˆØ§Ù†Ø¹ Ø§Ù„Ù†ÙˆØ§ÙØ° Ø§Ù„Ù…Ù†Ø¨Ø«Ù‚Ø© Ù…Ø¹Ø·Ù„Ø©",
+DialogBlocked		: "Ù„Ø§ÙŠÙ…ÙƒÙ† ÙØªØ­ Ù†Ø§ÙØ°Ø© Ø§Ù„Ø­ÙˆØ§Ø± . ÙØ¶Ù„Ø§ ØªØ£ÙƒØ¯ Ù…Ù† Ø£Ù†  Ù…Ø§Ù†Ø¹ Ø§Ù„Ù†ÙˆØ§ÙØ° Ø§Ù„Ù…Ù†Ø¨Ø«Ø© Ù…Ø¹Ø·Ù„ .",
+
+// Dialogs
+DlgBtnOK			: "Ù…ÙˆØ§ÙÙ‚",
+DlgBtnCancel		: "Ø¥Ù„ØºØ§Ø¡ Ø§Ù„Ø£Ù…Ø±",
+DlgBtnClose			: "Ø¥ØºÙ„Ø§Ù‚",
+DlgBtnBrowseServer	: "ØªØµÙØ­ Ø§Ù„Ø®Ø§Ø¯Ù…",
+DlgAdvancedTag		: "Ù…ØªÙ‚Ø¯Ù…",
+DlgOpOther			: "<Ø£Ø®Ø±Ù‰>",
+DlgInfoTab			: "Ù…Ø¹Ù„ÙˆÙ…Ø§Øª",
+DlgAlertUrl			: "Ø§Ù„Ø±Ø¬Ø§Ø¡ ÙƒØªØ§Ø¨Ø© Ø¹Ù†ÙˆØ§Ù† Ø§Ù„Ø¥Ù†ØªØ±Ù†Øª",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ø¨Ø¯ÙˆÙ† ØªØ­Ø¯ÙŠØ¯>",
+DlgGenId			: "Ø§Ù„Ø±Ù‚Ù…",
+DlgGenLangDir		: "Ø¥ØªØ¬Ø§Ù‡ Ø§Ù„Ù†Øµ",
+DlgGenLangDirLtr	: "Ø§Ù„ÙŠØ³Ø§Ø± Ù„Ù„ÙŠÙ…ÙŠÙ† (LTR)",
+DlgGenLangDirRtl	: "Ø§Ù„ÙŠÙ…ÙŠÙ† Ù„Ù„ÙŠØ³Ø§Ø± (RTL)",
+DlgGenLangCode		: "Ø±Ù…Ø² Ø§Ù„Ù„ØºØ©",
+DlgGenAccessKey		: "Ù…ÙØ§ØªÙŠØ­ Ø§Ù„Ø¥Ø®ØªØµØ§Ø±",
+DlgGenName			: "Ø§Ù„Ø§Ø³Ù…",
+DlgGenTabIndex		: "Ø§Ù„ØªØ±ØªÙŠØ¨",
+DlgGenLongDescr		: "Ø¹Ù†ÙˆØ§Ù† Ø§Ù„ÙˆØµÙ Ø§Ù„Ù…ÙØµÙ‘Ù„",
+DlgGenClass			: "ÙØ¦Ø§Øª Ø§Ù„ØªÙ†Ø³ÙŠÙ‚",
+DlgGenTitle			: "ØªÙ„Ù…ÙŠØ­ Ø§Ù„Ø´Ø§Ø´Ø©",
+DlgGenContType		: "Ù†ÙˆØ¹ Ø§Ù„ØªÙ„Ù…ÙŠØ­",
+DlgGenLinkCharset	: "ØªØ±Ù…ÙŠØ² Ø§Ù„Ù…Ø§Ø¯Ø© Ø§Ù„Ù…Ø·Ù„ÙˆØ¨Ø©",
+DlgGenStyle			: "Ù†Ù…Ø·",
+
+// Image Dialog
+DlgImgTitle			: "Ø®ØµØ§Ø¦Øµ Ø§Ù„ØµÙˆØ±Ø©",
+DlgImgInfoTab		: "Ù…Ø¹Ù„ÙˆÙ…Ø§Øª Ø§Ù„ØµÙˆØ±Ø©",
+DlgImgBtnUpload		: "Ø£Ø±Ø³Ù„Ù‡Ø§ Ù„Ù„Ø®Ø§Ø¯Ù…",
+DlgImgURL			: "Ù…ÙˆÙ‚Ø¹ Ø§Ù„ØµÙˆØ±Ø©",
+DlgImgUpload		: "Ø±ÙØ¹",
+DlgImgAlt			: "Ø§Ù„ÙˆØµÙ",
+DlgImgWidth			: "Ø§Ù„Ø¹Ø±Ø¶",
+DlgImgHeight		: "Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹",
+DlgImgLockRatio		: "ØªÙ†Ø§Ø³Ù‚ Ø§Ù„Ø­Ø¬Ù…",
+DlgBtnResetSize		: "Ø¥Ø³ØªØ¹Ø§Ø¯Ø© Ø§Ù„Ø­Ø¬Ù… Ø§Ù„Ø£ØµÙ„ÙŠ",
+DlgImgBorder		: "Ø³Ù…Ùƒ Ø§Ù„Ø­Ø¯ÙˆØ¯",
+DlgImgHSpace		: "ØªØ¨Ø§Ø¹Ø¯ Ø£ÙÙ‚ÙŠ",
+DlgImgVSpace		: "ØªØ¨Ø§Ø¹Ø¯ Ø¹Ù…ÙˆØ¯ÙŠ",
+DlgImgAlign			: "Ù…Ø­Ø§Ø°Ø§Ø©",
+DlgImgAlignLeft		: "ÙŠØ³Ø§Ø±",
+DlgImgAlignAbsBottom: "Ø£Ø³ÙÙ„ Ø§Ù„Ù†Øµ",
+DlgImgAlignAbsMiddle: "ÙˆØ³Ø· Ø§Ù„Ø³Ø·Ø±",
+DlgImgAlignBaseline	: "Ø¹Ù„Ù‰ Ø§Ù„Ø³Ø·Ø±",
+DlgImgAlignBottom	: "Ø£Ø³ÙÙ„",
+DlgImgAlignMiddle	: "ÙˆØ³Ø·",
+DlgImgAlignRight	: "ÙŠÙ…ÙŠÙ†",
+DlgImgAlignTextTop	: "Ø£Ø¹Ù„Ù‰ Ø§Ù„Ù†Øµ",
+DlgImgAlignTop		: "Ø£Ø¹Ù„Ù‰",
+DlgImgPreview		: "Ù…Ø¹Ø§ÙŠÙ†Ø©",
+DlgImgAlertUrl		: "ÙØ¶Ù„Ø§Ù‹ Ø£ÙƒØªØ¨ Ø§Ù„Ù…ÙˆÙ‚Ø¹ Ø§Ù„Ø°ÙŠ ØªÙˆØ¬Ø¯ Ø¹Ù„ÙŠÙ‡ Ù‡Ø°Ù‡ Ø§Ù„ØµÙˆØ±Ø©.",
+DlgImgLinkTab		: "Ø§Ù„Ø±Ø§Ø¨Ø·",
+
+// Flash Dialog
+DlgFlashTitle		: "Ø®ØµØ§Ø¦Øµ ÙÙŠÙ„Ù… Ø§Ù„ÙÙ„Ø§Ø´",
+DlgFlashChkPlay		: "ØªØ´ØºÙŠÙ„ ØªÙ„Ù‚Ø§Ø¦ÙŠ",
+DlgFlashChkLoop		: "ØªÙƒØ±Ø§Ø±",
+DlgFlashChkMenu		: "ØªÙ…ÙƒÙŠÙ† Ù‚Ø§Ø¦Ù…Ø© ÙÙŠÙ„Ù… Ø§Ù„ÙÙ„Ø§Ø´",
+DlgFlashScale		: "Ø§Ù„Ø­Ø¬Ù…",
+DlgFlashScaleAll	: "Ø¥Ø¸Ù‡Ø§Ø± Ø§Ù„ÙƒÙ„",
+DlgFlashScaleNoBorder	: "Ø¨Ù„Ø§ Ø­Ø¯ÙˆØ¯",
+DlgFlashScaleFit	: "Ø¶Ø¨Ø· ØªØ§Ù…",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ø¥Ø±ØªØ¨Ø§Ø· ØªØ´Ø¹Ø¨ÙŠ",
+DlgLnkInfoTab		: "Ù…Ø¹Ù„ÙˆÙ…Ø§Øª Ø§Ù„Ø±Ø§Ø¨Ø·",
+DlgLnkTargetTab		: "Ø§Ù„Ù‡Ø¯Ù",
+
+DlgLnkType			: "Ù†ÙˆØ¹ Ø§Ù„Ø±Ø¨Ø·",
+DlgLnkTypeURL		: "Ø§Ù„Ø¹Ù†ÙˆØ§Ù†",
+DlgLnkTypeAnchor	: "Ù…ÙƒØ§Ù† ÙÙŠ Ù‡Ø°Ø§ Ø§Ù„Ù…Ø³ØªÙ†Ø¯",
+DlgLnkTypeEMail		: "Ø¨Ø±ÙŠØ¯ Ø¥Ù„ÙƒØªØ±ÙˆÙ†ÙŠ",
+DlgLnkProto			: "Ø§Ù„Ø¨Ø±ÙˆØªÙˆÙƒÙˆÙ„",
+DlgLnkProtoOther	: "<Ø£Ø®Ø±Ù‰>",
+DlgLnkURL			: "Ø§Ù„Ù…ÙˆÙ‚Ø¹",
+DlgLnkAnchorSel		: "Ø§Ø®ØªØ± Ø¹Ù„Ø§Ù…Ø© Ù…Ø±Ø¬Ø¹ÙŠØ©",
+DlgLnkAnchorByName	: "Ø­Ø³Ø¨ Ø§Ø³Ù… Ø§Ù„Ø¹Ù„Ø§Ù…Ø©",
+DlgLnkAnchorById	: "Ø­Ø³Ø¨ ØªØ¹Ø±ÙŠÙ Ø§Ù„Ø¹Ù†ØµØ±",
+DlgLnkNoAnchors		: "(Ù„Ø§ ÙŠÙˆØ¬Ø¯ Ø¹Ù„Ø§Ù…Ø§Øª Ù…Ø±Ø¬Ø¹ÙŠØ© ÙÙŠ Ù‡Ø°Ø§ Ø§Ù„Ù…Ø³ØªÙ†Ø¯)",
+DlgLnkEMail			: "Ø¹Ù†ÙˆØ§Ù† Ø¨Ø±ÙŠØ¯ Ø¥Ù„ÙƒØªØ±ÙˆÙ†ÙŠ",
+DlgLnkEMailSubject	: "Ù…ÙˆØ¶ÙˆØ¹ Ø§Ù„Ø±Ø³Ø§Ù„Ø©",
+DlgLnkEMailBody		: "Ù…Ø­ØªÙˆÙ‰ Ø§Ù„Ø±Ø³Ø§Ù„Ø©",
+DlgLnkUpload		: "Ø±ÙØ¹",
+DlgLnkBtnUpload		: "Ø£Ø±Ø³Ù„Ù‡Ø§ Ù„Ù„Ø®Ø§Ø¯Ù…",
+
+DlgLnkTarget		: "Ø§Ù„Ù‡Ø¯Ù",
+DlgLnkTargetFrame	: "<Ø¥Ø·Ø§Ø±>",
+DlgLnkTargetPopup	: "<Ù†Ø§ÙØ°Ø© Ù…Ù†Ø¨Ø«Ù‚Ø©>",
+DlgLnkTargetBlank	: "Ø¥Ø·Ø§Ø± Ø¬Ø¯ÙŠØ¯ (_blank)",
+DlgLnkTargetParent	: "Ø§Ù„Ø¥Ø·Ø§Ø± Ø§Ù„Ø£ØµÙ„ (_parent)",
+DlgLnkTargetSelf	: "Ù†ÙØ³ Ø§Ù„Ø¥Ø·Ø§Ø± (_self)",
+DlgLnkTargetTop		: "ØµÙØ­Ø© ÙƒØ§Ù…Ù„Ø© (_top)",
+DlgLnkTargetFrameName	: "Ø§Ø³Ù… Ø§Ù„Ø¥Ø·Ø§Ø± Ø§Ù„Ù‡Ø¯Ù",
+DlgLnkPopWinName	: "ØªØ³Ù…ÙŠØ© Ø§Ù„Ù†Ø§ÙØ°Ø© Ø§Ù„Ù…Ù†Ø¨Ø«Ù‚Ø©",
+DlgLnkPopWinFeat	: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ù†Ø§ÙØ°Ø© Ø§Ù„Ù…Ù†Ø¨Ø«Ù‚Ø©",
+DlgLnkPopResize		: "Ù‚Ø§Ø¨Ù„Ø© Ù„Ù„ØªØ­Ø¬ÙŠÙ…",
+DlgLnkPopLocation	: "Ø´Ø±ÙŠØ· Ø§Ù„Ø¹Ù†ÙˆØ§Ù†",
+DlgLnkPopMenu		: "Ø§Ù„Ù‚ÙˆØ§Ø¦Ù… Ø§Ù„Ø±Ø¦ÙŠØ³ÙŠØ©",
+DlgLnkPopScroll		: "Ø£Ø´Ø±Ø·Ø© Ø§Ù„ØªÙ…Ø±ÙŠØ±",
+DlgLnkPopStatus		: "Ø´Ø±ÙŠØ· Ø§Ù„Ø­Ø§Ù„Ø© Ø§Ù„Ø³ÙÙ„ÙŠ",
+DlgLnkPopToolbar	: "Ø´Ø±ÙŠØ· Ø§Ù„Ø£Ø¯ÙˆØ§Øª",
+DlgLnkPopFullScrn	: "Ù…Ù„Ø¦ Ø§Ù„Ø´Ø§Ø´Ø© (IE)",
+DlgLnkPopDependent	: "ØªØ§Ø¨Ø¹ (Netscape)",
+DlgLnkPopWidth		: "Ø§Ù„Ø¹Ø±Ø¶",
+DlgLnkPopHeight		: "Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹",
+DlgLnkPopLeft		: "Ø§Ù„ØªÙ…Ø±ÙƒØ² Ù„Ù„ÙŠØ³Ø§Ø±",
+DlgLnkPopTop		: "Ø§Ù„ØªÙ…Ø±ÙƒØ² Ù„Ù„Ø£Ø¹Ù„Ù‰",
+
+DlnLnkMsgNoUrl		: "ÙØ¶Ù„Ø§Ù‹ Ø£Ø¯Ø®Ù„ Ø¹Ù†ÙˆØ§Ù† Ø§Ù„Ù…ÙˆÙ‚Ø¹ Ø§Ù„Ø°ÙŠ ÙŠØ´ÙŠØ± Ø¥Ù„ÙŠÙ‡ Ø§Ù„Ø±Ø§Ø¨Ø·",
+DlnLnkMsgNoEMail	: "ÙØ¶Ù„Ø§Ù‹ Ø£Ø¯Ø®Ù„ Ø¹Ù†ÙˆØ§Ù† Ø§Ù„Ø¨Ø±ÙŠØ¯ Ø§Ù„Ø¥Ù„ÙƒØªØ±ÙˆÙ†ÙŠ",
+DlnLnkMsgNoAnchor	: "ÙØ¶Ù„Ø§Ù‹ Ø­Ø¯Ø¯ Ø§Ù„Ø¹Ù„Ø§Ù…Ø© Ø§Ù„Ù…Ø±Ø¬Ø¹ÙŠØ© Ø§Ù„Ù…Ø±ØºÙˆØ¨Ø©",
+DlnLnkMsgInvPopName	: "Ø§Ø³Ù… Ø§Ù„Ù†Ø§ÙØ°Ø© Ø§Ù„Ù…Ù†Ø¨Ø«Ù‚Ø© ÙŠØ¬Ø¨ Ø£Ù† ÙŠØ¨Ø¯Ø£ Ø¨Ø­Ø±Ù Ø£Ø¨Ø¬Ø¯ÙŠ Ø¯ÙˆÙ† Ù…Ø³Ø§ÙØ§Øª",
+
+// Color Dialog
+DlgColorTitle		: "Ø§Ø®ØªØ± Ù„ÙˆÙ†Ø§Ù‹",
+DlgColorBtnClear	: "Ù…Ø³Ø­",
+DlgColorHighlight	: "ØªØ­Ø¯ÙŠØ¯",
+DlgColorSelected	: "Ø¥Ø®ØªÙŠØ§Ø±",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ø¥Ø¯Ø±Ø§Ø¬ Ø¥Ø¨ØªØ³Ø§Ù…Ø§Øª ",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ø¥Ø¯Ø±Ø§Ø¬ Ø±Ù…Ø²",
+
+// Table Dialog
+DlgTableTitle		: "Ø¥Ø¯Ø±Ø§Ø¬ Ø¬Ø¯ÙˆÙ„",
+DlgTableRows		: "ØµÙÙˆÙ",
+DlgTableColumns		: "Ø£Ø¹Ù…Ø¯Ø©",
+DlgTableBorder		: "Ø³Ù…Ùƒ Ø§Ù„Ø­Ø¯ÙˆØ¯",
+DlgTableAlign		: "Ø§Ù„Ù…Ø­Ø§Ø°Ø§Ø©",
+DlgTableAlignNotSet	: "<Ø¨Ø¯ÙˆÙ† ØªØ­Ø¯ÙŠØ¯>",
+DlgTableAlignLeft	: "ÙŠØ³Ø§Ø±",
+DlgTableAlignCenter	: "ÙˆØ³Ø·",
+DlgTableAlignRight	: "ÙŠÙ…ÙŠÙ†",
+DlgTableWidth		: "Ø§Ù„Ø¹Ø±Ø¶",
+DlgTableWidthPx		: "Ø¨ÙƒØ³Ù„",
+DlgTableWidthPc		: "Ø¨Ø§Ù„Ù…Ø¦Ø©",
+DlgTableHeight		: "Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹",
+DlgTableCellSpace	: "ØªØ¨Ø§Ø¹Ø¯ Ø§Ù„Ø®Ù„Ø§ÙŠØ§",
+DlgTableCellPad		: "Ø§Ù„Ù…Ø³Ø§ÙØ© Ø§Ù„Ø¨Ø§Ø¯Ø¦Ø©",
+DlgTableCaption		: "Ø§Ù„ÙˆØµÙ",
+DlgTableSummary		: "Ø§Ù„Ø®Ù„Ø§ØµØ©",
+
+// Table Cell Dialog
+DlgCellTitle		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„Ø®Ù„ÙŠØ©",
+DlgCellWidth		: "Ø§Ù„Ø¹Ø±Ø¶",
+DlgCellWidthPx		: "Ø¨ÙƒØ³Ù„",
+DlgCellWidthPc		: "Ø¨Ø§Ù„Ù…Ø¦Ø©",
+DlgCellHeight		: "Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹",
+DlgCellWordWrap		: "Ø§Ù„ØªÙØ§Ù Ø§Ù„Ù†Øµ",
+DlgCellWordWrapNotSet	: "<Ø¨Ø¯ÙˆÙ† ØªØ­Ø¯ÙŠØ¯>",
+DlgCellWordWrapYes	: "Ù†Ø¹Ù…",
+DlgCellWordWrapNo	: "Ù„Ø§",
+DlgCellHorAlign		: "Ø§Ù„Ù…Ø­Ø§Ø°Ø§Ø© Ø§Ù„Ø£ÙÙ‚ÙŠØ©",
+DlgCellHorAlignNotSet	: "<Ø¨Ø¯ÙˆÙ† ØªØ­Ø¯ÙŠØ¯>",
+DlgCellHorAlignLeft	: "ÙŠØ³Ø§Ø±",
+DlgCellHorAlignCenter	: "ÙˆØ³Ø·",
+DlgCellHorAlignRight: "ÙŠÙ…ÙŠÙ†",
+DlgCellVerAlign		: "Ø§Ù„Ù…Ø­Ø§Ø°Ø§Ø© Ø§Ù„Ø¹Ù…ÙˆØ¯ÙŠØ©",
+DlgCellVerAlignNotSet	: "<Ø¨Ø¯ÙˆÙ† ØªØ­Ø¯ÙŠØ¯>",
+DlgCellVerAlignTop	: "Ø£Ø¹Ù„Ù‰",
+DlgCellVerAlignMiddle	: "ÙˆØ³Ø·",
+DlgCellVerAlignBottom	: "Ø£Ø³ÙÙ„",
+DlgCellVerAlignBaseline	: "Ø¹Ù„Ù‰ Ø§Ù„Ø³Ø·Ø±",
+DlgCellRowSpan		: "Ø¥Ù…ØªØ¯Ø§Ø¯ Ø§Ù„ØµÙÙˆÙ",
+DlgCellCollSpan		: "Ø¥Ù…ØªØ¯Ø§Ø¯ Ø§Ù„Ø£Ø¹Ù…Ø¯Ø©",
+DlgCellBackColor	: "Ù„ÙˆÙ† Ø§Ù„Ø®Ù„ÙÙŠØ©",
+DlgCellBorderColor	: "Ù„ÙˆÙ† Ø§Ù„Ø­Ø¯ÙˆØ¯",
+DlgCellBtnSelect	: "Ø­Ø¯Ù‘Ø¯...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Ø¨Ø­Ø« ÙˆØ§Ø³ØªØ¨Ø¯Ø§Ù„",
+
+// Find Dialog
+DlgFindTitle		: "Ø¨Ø­Ø«",
+DlgFindFindBtn		: "Ø§Ø¨Ø­Ø«",
+DlgFindNotFoundMsg	: "Ù„Ù… ÙŠØªÙ… Ø§Ù„Ø¹Ø«ÙˆØ± Ø¹Ù„Ù‰ Ø§Ù„Ù†Øµ Ø§Ù„Ù…Ø­Ø¯Ø¯.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ø¥Ø³ØªØ¨Ø¯Ø§Ù„",
+DlgReplaceFindLbl		: "Ø§Ù„Ø¨Ø­Ø« Ø¹Ù†:",
+DlgReplaceReplaceLbl	: "Ø¥Ø³ØªØ¨Ø¯Ø§Ù„ Ø¨Ù€:",
+DlgReplaceCaseChk		: "Ù…Ø·Ø§Ø¨Ù‚Ø© Ø­Ø§Ù„Ø© Ø§Ù„Ø£Ø­Ø±Ù",
+DlgReplaceReplaceBtn	: "Ø¥Ø³ØªØ¨Ø¯Ø§Ù„",
+DlgReplaceReplAllBtn	: "Ø¥Ø³ØªØ¨Ø¯Ø§Ù„ Ø§Ù„ÙƒÙ„",
+DlgReplaceWordChk		: "Ø§Ù„ÙƒÙ„Ù…Ø© Ø¨Ø§Ù„ÙƒØ§Ù…Ù„ ÙÙ‚Ø·",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Ø§Ù„Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§Ù„Ø£Ù…Ù†ÙŠØ© Ù„Ù„Ù…ØªØµÙØ­ Ø§Ù„Ø°ÙŠ ØªØ³ØªØ®Ø¯Ù…Ù‡ ØªÙ…Ù†Ø¹ Ø§Ù„Ù‚Øµ Ø§Ù„ØªÙ„Ù‚Ø§Ø¦ÙŠ. ÙØ¶Ù„Ø§Ù‹ Ø¥Ø³ØªØ®Ø¯Ù… Ù„ÙˆØ­Ø© Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Ù„ÙØ¹Ù„ Ø°Ù„Ùƒ (Ctrl+X).",
+PasteErrorCopy	: "Ø§Ù„Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§Ù„Ø£Ù…Ù†ÙŠØ© Ù„Ù„Ù…ØªØµÙØ­ Ø§Ù„Ø°ÙŠ ØªØ³ØªØ®Ø¯Ù…Ù‡ ØªÙ…Ù†Ø¹ Ø§Ù„Ù†Ø³Ø® Ø§Ù„ØªÙ„Ù‚Ø§Ø¦ÙŠ. ÙØ¶Ù„Ø§Ù‹ Ø¥Ø³ØªØ®Ø¯Ù… Ù„ÙˆØ­Ø© Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Ù„ÙØ¹Ù„ Ø°Ù„Ùƒ (Ctrl+C).",
+
+PasteAsText		: "Ù„ØµÙ‚ ÙƒÙ†Øµ Ø¨Ø³ÙŠØ·",
+PasteFromWord	: "Ù„ØµÙ‚ Ù…Ù† ÙˆÙˆØ±Ø¯",
+
+DlgPasteMsg2	: "Ø§Ù„ØµÙ‚ Ø¯Ø§Ø®Ù„ Ø§Ù„ØµÙ†Ø¯ÙˆÙ‚ Ø¨Ø¥Ø³ØªØ®Ø¯Ø§Ù… Ø²Ø±Ù‘ÙŠ (<STRONG>Ctrl+V</STRONG>) ÙÙŠ Ù„ÙˆØ­Ø© Ø§Ù„Ù…ÙØ§ØªÙŠØ­ØŒ Ø«Ù… Ø§Ø¶ØºØ· Ø²Ø±  <STRONG>Ù…ÙˆØ§ÙÙ‚</STRONG>.",
+DlgPasteSec		: "Ù†Ø¸Ø±Ø§Ù‹ Ù„Ø¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§Ù„Ø£Ù…Ø§Ù† Ø§Ù„Ø®Ø§ØµØ© Ø¨Ù…ØªØµÙØ­ÙƒØŒ Ù„Ù† ÙŠØªÙ…ÙƒÙ† Ù‡Ø°Ø§ Ø§Ù„Ù…Ø­Ø±Ø± Ù…Ù† Ø§Ù„ÙˆØµÙˆÙ„ Ù„Ù…Ø­ØªÙˆÙ‰ Ø­Ø§ÙØ¸ØªÙƒØŒ Ù„Ø°Ø§ ÙˆØ¬Ø¨ Ø¹Ù„ÙŠÙƒ Ù„ØµÙ‚ Ø§Ù„Ù…Ø­ØªÙˆÙ‰ Ù…Ø±Ø© Ø£Ø®Ø±Ù‰ ÙÙŠ Ù‡Ø°Ù‡ Ø§Ù„Ù†Ø§ÙØ°Ø©.",
+DlgPasteIgnoreFont		: "ØªØ¬Ø§Ù‡Ù„ ØªØ¹Ø±ÙŠÙØ§Øª Ø£Ø³Ù…Ø§Ø¡ Ø§Ù„Ø®Ø·ÙˆØ·",
+DlgPasteRemoveStyles	: "Ø¥Ø²Ø§Ù„Ø© ØªØ¹Ø±ÙŠÙØ§Øª Ø§Ù„Ø£Ù†Ù…Ø§Ø·",
+
+// Color Picker
+ColorAutomatic	: "ØªÙ„Ù‚Ø§Ø¦ÙŠ",
+ColorMoreColors	: "Ø£Ù„ÙˆØ§Ù† Ø¥Ø¶Ø§ÙÙŠØ©...",
+
+// Document Properties
+DocProps		: "Ø®ØµØ§Ø¦Øµ Ø§Ù„ØµÙØ­Ø©",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ø®ØµØ§Ø¦Øµ Ø¥Ø´Ø§Ø±Ø© Ù…Ø±Ø¬Ø¹ÙŠØ©",
+DlgAnchorName		: "Ø§Ø³Ù… Ø§Ù„Ø¥Ø´Ø§Ø±Ø© Ø§Ù„Ù…Ø±Ø¬Ø¹ÙŠØ©",
+DlgAnchorErrorName	: "Ø§Ù„Ø±Ø¬Ø§Ø¡ ÙƒØªØ§Ø¨Ø© Ø§Ø³Ù… Ø§Ù„Ø¥Ø´Ø§Ø±Ø© Ø§Ù„Ù…Ø±Ø¬Ø¹ÙŠØ©",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ù„ÙŠØ³Øª ÙÙŠ Ø§Ù„Ù‚Ø§Ù…ÙˆØ³",
+DlgSpellChangeTo		: "Ø§Ù„ØªØºÙŠÙŠØ± Ø¥Ù„Ù‰",
+DlgSpellBtnIgnore		: "ØªØ¬Ø§Ù‡Ù„",
+DlgSpellBtnIgnoreAll	: "ØªØ¬Ø§Ù‡Ù„ Ø§Ù„ÙƒÙ„",
+DlgSpellBtnReplace		: "ØªØºÙŠÙŠØ±",
+DlgSpellBtnReplaceAll	: "ØªØºÙŠÙŠØ± Ø§Ù„ÙƒÙ„",
+DlgSpellBtnUndo			: "ØªØ±Ø§Ø¬Ø¹",
+DlgSpellNoSuggestions	: "- Ù„Ø§ ØªÙˆØ¬Ø¯ Ø¥Ù‚ØªØ±Ø§Ø­Ø§Øª -",
+DlgSpellProgress		: "Ø¬Ø§Ø±ÙŠ Ø§Ù„ØªØ¯Ù‚ÙŠÙ‚ Ø¥Ù…Ù„Ø§Ø¦ÙŠØ§Ù‹",
+DlgSpellNoMispell		: "ØªÙ… Ø¥ÙƒÙ…Ø§Ù„ Ø§Ù„ØªØ¯Ù‚ÙŠÙ‚ Ø§Ù„Ø¥Ù…Ù„Ø§Ø¦ÙŠ: Ù„Ù… ÙŠØªÙ… Ø§Ù„Ø¹Ø«ÙˆØ± Ø¹Ù„Ù‰ Ø£ÙŠ Ø£Ø®Ø·Ø§Ø¡ Ø¥Ù…Ù„Ø§Ø¦ÙŠØ©",
+DlgSpellNoChanges		: "ØªÙ… Ø¥ÙƒÙ…Ø§Ù„ Ø§Ù„ØªØ¯Ù‚ÙŠÙ‚ Ø§Ù„Ø¥Ù…Ù„Ø§Ø¦ÙŠ: Ù„Ù… ÙŠØªÙ… ØªØºÙŠÙŠØ± Ø£ÙŠ ÙƒÙ„Ù…Ø©",
+DlgSpellOneChange		: "ØªÙ… Ø¥ÙƒÙ…Ø§Ù„ Ø§Ù„ØªØ¯Ù‚ÙŠÙ‚ Ø§Ù„Ø¥Ù…Ù„Ø§Ø¦ÙŠ: ØªÙ… ØªØºÙŠÙŠØ± ÙƒÙ„Ù…Ø© ÙˆØ§Ø­Ø¯Ø© ÙÙ‚Ø·",
+DlgSpellManyChanges		: "ØªÙ… Ø¥ÙƒÙ…Ø§Ù„ Ø§Ù„ØªØ¯Ù‚ÙŠÙ‚ Ø§Ù„Ø¥Ù…Ù„Ø§Ø¦ÙŠ: ØªÙ… ØªØºÙŠÙŠØ± %1 ÙƒÙ„Ù…Ø§Øª\ÙƒÙ„Ù…Ø©",
+
+IeSpellDownload			: "Ø§Ù„Ù…Ø¯Ù‚Ù‚ Ø§Ù„Ø¥Ù…Ù„Ø§Ø¦ÙŠ (Ø§Ù„Ø¥Ù†Ø¬Ù„ÙŠØ²ÙŠ) ØºÙŠØ± Ù…Ø«Ø¨Ù‘Øª. Ù‡Ù„ ØªÙˆØ¯ ØªØ­Ù…ÙŠÙ„Ù‡ Ø§Ù„Ø¢Ù†ØŸ",
+
+// Button Dialog
+DlgButtonText		: "Ø§Ù„Ù‚ÙŠÙ…Ø©/Ø§Ù„ØªØ³Ù…ÙŠØ©",
+DlgButtonType		: "Ù†ÙˆØ¹ Ø§Ù„Ø²Ø±",
+DlgButtonTypeBtn	: "Ø²Ø±",
+DlgButtonTypeSbm	: "Ø¥Ø±Ø³Ø§Ù„",
+DlgButtonTypeRst	: "Ø¥Ø¹Ø§Ø¯Ø© ØªØ¹ÙŠÙŠÙ†",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ø§Ù„Ø§Ø³Ù…",
+DlgCheckboxValue	: "Ø§Ù„Ù‚ÙŠÙ…Ø©",
+DlgCheckboxSelected	: "Ù…Ø­Ø¯Ø¯",
+
+// Form Dialog
+DlgFormName		: "Ø§Ù„Ø§Ø³Ù…",
+DlgFormAction	: "Ø§Ø³Ù… Ø§Ù„Ù…Ù„Ù",
+DlgFormMethod	: "Ø§Ù„Ø£Ø³Ù„ÙˆØ¨",
+
+// Select Field Dialog
+DlgSelectName		: "Ø§Ù„Ø§Ø³Ù…",
+DlgSelectValue		: "Ø§Ù„Ù‚ÙŠÙ…Ø©",
+DlgSelectSize		: "Ø§Ù„Ø­Ø¬Ù…",
+DlgSelectLines		: "Ø§Ù„Ø£Ø³Ø·Ø±",
+DlgSelectChkMulti	: "Ø§Ù„Ø³Ù…Ø§Ø­ Ø¨ØªØ­Ø¯ÙŠØ¯Ø§Øª Ù…ØªØ¹Ø¯Ø¯Ø©",
+DlgSelectOpAvail	: "Ø§Ù„Ø®ÙŠØ§Ø±Ø§Øª Ø§Ù„Ù…ØªØ§Ø­Ø©",
+DlgSelectOpText		: "Ø§Ù„Ù†Øµ",
+DlgSelectOpValue	: "Ø§Ù„Ù‚ÙŠÙ…Ø©",
+DlgSelectBtnAdd		: "Ø¥Ø¶Ø§ÙØ©",
+DlgSelectBtnModify	: "ØªØ¹Ø¯ÙŠÙ„",
+DlgSelectBtnUp		: "ØªØ­Ø±ÙŠÙƒ Ù„Ø£Ø¹Ù„Ù‰",
+DlgSelectBtnDown	: "ØªØ­Ø±ÙŠÙƒ Ù„Ø£Ø³ÙÙ„",
+DlgSelectBtnSetValue : "Ø¥Ø¬Ø¹Ù„Ù‡Ø§ Ù…Ø­Ø¯Ø¯Ø©",
+DlgSelectBtnDelete	: "Ø¥Ø²Ø§Ù„Ø©",
+
+// Textarea Dialog
+DlgTextareaName	: "Ø§Ù„Ø§Ø³Ù…",
+DlgTextareaCols	: "Ø§Ù„Ø£Ø¹Ù…Ø¯Ø©",
+DlgTextareaRows	: "Ø§Ù„ØµÙÙˆÙ",
+
+// Text Field Dialog
+DlgTextName			: "Ø§Ù„Ø§Ø³Ù…",
+DlgTextValue		: "Ø§Ù„Ù‚ÙŠÙ…Ø©",
+DlgTextCharWidth	: "Ø§Ù„Ø¹Ø±Ø¶ Ø¨Ø§Ù„Ø£Ø­Ø±Ù",
+DlgTextMaxChars		: "Ø¹Ø¯Ø¯ Ø§Ù„Ø­Ø±ÙˆÙ Ø§Ù„Ø£Ù‚ØµÙ‰",
+DlgTextType			: "Ù†ÙˆØ¹ Ø§Ù„Ù…Ø­ØªÙˆÙ‰",
+DlgTextTypeText		: "Ù†Øµ",
+DlgTextTypePass		: "ÙƒÙ„Ù…Ø© Ù…Ø±ÙˆØ±",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ø§Ù„Ø§Ø³Ù…",
+DlgHiddenValue	: "Ø§Ù„Ù‚ÙŠÙ…Ø©",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ø®ØµØ§Ø¦Øµ Ø§Ù„ØªØ¹Ø¯Ø§Ø¯ Ø§Ù„Ù†Ù‚Ø·ÙŠ",
+NumberedListProp	: "Ø®ØµØ§Ø¦Øµ Ø§Ù„ØªØ¹Ø¯Ø§Ø¯ Ø§Ù„Ø±Ù‚Ù…ÙŠ",
+DlgLstStart			: "Ø§Ù„Ø¨Ø¯Ø¡ Ø¹Ù†Ø¯",
+DlgLstType			: "Ø§Ù„Ù†ÙˆØ¹",
+DlgLstTypeCircle	: "Ø¯Ø§Ø¦Ø±Ø©",
+DlgLstTypeDisc		: "Ù‚Ø±Øµ",
+DlgLstTypeSquare	: "Ù…Ø±Ø¨Ø¹",
+DlgLstTypeNumbers	: "Ø£Ø±Ù‚Ø§Ù… (1ØŒ 2ØŒ 3)ÙŽ",
+DlgLstTypeLCase		: "Ø­Ø±ÙˆÙ ØµØºÙŠØ±Ø© (a, b, c)ÙŽ",
+DlgLstTypeUCase		: "Ø­Ø±ÙˆÙ ÙƒØ¨ÙŠØ±Ø© (A, B, C)ÙŽ",
+DlgLstTypeSRoman	: "ØªØ±Ù‚ÙŠÙ… Ø±ÙˆÙ…Ø§Ù†ÙŠ ØµØºÙŠØ± (i, ii, iii)ÙŽ",
+DlgLstTypeLRoman	: "ØªØ±Ù‚ÙŠÙ… Ø±ÙˆÙ…Ø§Ù†ÙŠ ÙƒØ¨ÙŠØ± (I, II, III)ÙŽ",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ø¹Ø§Ù…",
+DlgDocBackTab		: "Ø§Ù„Ø®Ù„ÙÙŠØ©",
+DlgDocColorsTab		: "Ø§Ù„Ø£Ù„ÙˆØ§Ù† ÙˆØ§Ù„Ù‡ÙˆØ§Ù…Ø´",
+DlgDocMetaTab		: "Ø§Ù„Ù…Ø¹Ø±Ù‘ÙØ§Øª Ø§Ù„Ø±Ø£Ø³ÙŠØ©",
+
+DlgDocPageTitle		: "Ø¹Ù†ÙˆØ§Ù† Ø§Ù„ØµÙØ­Ø©",
+DlgDocLangDir		: "Ø¥ØªØ¬Ø§Ù‡ Ø§Ù„Ù„ØºØ©",
+DlgDocLangDirLTR	: "Ø§Ù„ÙŠØ³Ø§Ø± Ù„Ù„ÙŠÙ…ÙŠÙ† (LTR)",
+DlgDocLangDirRTL	: "Ø§Ù„ÙŠÙ…ÙŠÙ† Ù„Ù„ÙŠØ³Ø§Ø± (RTL)",
+DlgDocLangCode		: "Ø±Ù…Ø² Ø§Ù„Ù„ØºØ©",
+DlgDocCharSet		: "ØªØ±Ù…ÙŠØ² Ø§Ù„Ø­Ø±ÙˆÙ",
+DlgDocCharSetCE		: "Ø£ÙˆØ±ÙˆØ¨Ø§ Ø§Ù„ÙˆØ³Ø·Ù‰",
+DlgDocCharSetCT		: "Ø§Ù„ØµÙŠÙ†ÙŠØ© Ø§Ù„ØªÙ‚Ù„ÙŠØ¯ÙŠØ© (Big5)",
+DlgDocCharSetCR		: "Ø§Ù„Ø³ÙŠØ±ÙŠÙ„ÙŠØ©",
+DlgDocCharSetGR		: "Ø§Ù„ÙŠÙˆÙ†Ø§Ù†ÙŠØ©",
+DlgDocCharSetJP		: "Ø§Ù„ÙŠØ§Ø¨Ø§Ù†ÙŠØ©",
+DlgDocCharSetKR		: "Ø§Ù„ÙƒÙˆØ±ÙŠØ©",
+DlgDocCharSetTR		: "Ø§Ù„ØªØ±ÙƒÙŠØ©",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Ø£ÙˆØ±ÙˆØ¨Ø§ Ø§Ù„ØºØ±Ø¨ÙŠØ©",
+DlgDocCharSetOther	: "ØªØ±Ù…ÙŠØ² Ø¢Ø®Ø±",
+
+DlgDocDocType		: "ØªØ±ÙˆÙŠØ³Ø© Ù†ÙˆØ¹  Ø§Ù„ØµÙØ­Ø©",
+DlgDocDocTypeOther	: "ØªØ±ÙˆÙŠØ³Ø© Ù†ÙˆØ¹  ØµÙØ­Ø© Ø£Ø®Ø±Ù‰",
+DlgDocIncXHTML		: "ØªØ¶Ù…ÙŠÙ†   Ø¥Ø¹Ù„Ø§Ù†Ø§Øªâ€ Ù„ØºØ© XHTMLÙŽ",
+DlgDocBgColor		: "Ù„ÙˆÙ† Ø§Ù„Ø®Ù„ÙÙŠØ©",
+DlgDocBgImage		: "Ø±Ø§Ø¨Ø· Ø§Ù„ØµÙˆØ±Ø© Ø§Ù„Ø®Ù„ÙÙŠØ©",
+DlgDocBgNoScroll	: "Ø¬Ø¹Ù„Ù‡Ø§ Ø¹Ù„Ø§Ù…Ø© Ù…Ø§Ø¦ÙŠØ©",
+DlgDocCText			: "Ø§Ù„Ù†Øµ",
+DlgDocCLink			: "Ø§Ù„Ø±ÙˆØ§Ø¨Ø·",
+DlgDocCVisited		: "Ø§Ù„Ù…Ø²Ø§Ø±Ø©",
+DlgDocCActive		: "Ø§Ù„Ù†Ø´Ø·Ø©",
+DlgDocMargins		: "Ù‡ÙˆØ§Ù…Ø´ Ø§Ù„ØµÙØ­Ø©",
+DlgDocMaTop			: "Ø¹Ù„ÙˆÙŠ",
+DlgDocMaLeft		: "Ø£ÙŠØ³Ø±",
+DlgDocMaRight		: "Ø£ÙŠÙ…Ù†",
+DlgDocMaBottom		: "Ø³ÙÙ„ÙŠ",
+DlgDocMeIndex		: "Ø§Ù„ÙƒÙ„Ù…Ø§Øª Ø§Ù„Ø£Ø³Ø§Ø³ÙŠØ© (Ù…ÙØµÙˆÙ„Ø© Ø¨ÙÙˆØ§ØµÙ„)ÙŽ",
+DlgDocMeDescr		: "ÙˆØµÙ Ø§Ù„ØµÙØ­Ø©",
+DlgDocMeAuthor		: "Ø§Ù„ÙƒØ§ØªØ¨",
+DlgDocMeCopy		: "Ø§Ù„Ù…Ø§Ù„Ùƒ",
+DlgDocPreview		: "Ù…Ø¹Ø§ÙŠÙ†Ø©",
+
+// Templates Dialog
+Templates			: "Ø§Ù„Ù‚ÙˆØ§Ù„Ø¨",
+DlgTemplatesTitle	: "Ù‚ÙˆØ§Ù„Ø¨ Ø§Ù„Ù…Ø­ØªÙˆÙ‰",
+DlgTemplatesSelMsg	: "Ø§Ø®ØªØ± Ø§Ù„Ù‚Ø§Ù„Ø¨ Ø§Ù„Ø°ÙŠ ØªÙˆØ¯ ÙˆØ¶Ø¹Ù‡ ÙÙŠ Ø§Ù„Ù…Ø­Ø±Ø± <br>(Ø³ÙŠØªÙ… ÙÙ‚Ø¯Ø§Ù† Ø§Ù„Ù…Ø­ØªÙˆÙ‰ Ø§Ù„Ø­Ø§Ù„ÙŠ):",
+DlgTemplatesLoading	: "Ø¬Ø§Ø±ÙŠ ØªØ­Ù…ÙŠÙ„ Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ù‚ÙˆØ§Ù„Ø¨ØŒ Ø§Ù„Ø±Ø¬Ø§Ø¡ Ø§Ù„Ø¥Ù†ØªØ¸Ø§Ø±...",
+DlgTemplatesNoTpl	: "(Ù„Ù… ÙŠØªÙ… ØªØ¹Ø±ÙŠÙ Ø£ÙŠ Ù‚Ø§Ù„Ø¨)",
+DlgTemplatesReplace	: "Ø§Ø³ØªØ¨Ø¯Ø§Ù„ Ø§Ù„Ù…Ø­ØªÙˆÙ‰",
+
+// About Dialog
+DlgAboutAboutTab	: "Ù†Ø¨Ø°Ø©",
+DlgAboutBrowserInfoTab	: "Ù…Ø¹Ù„ÙˆÙ…Ø§Øª Ù…ØªØµÙØ­Ùƒ",
+DlgAboutLicenseTab	: "Ø§Ù„ØªØ±Ø®ÙŠØµ",
+DlgAboutVersion		: "Ø§Ù„Ø¥ØµØ¯Ø§Ø±",
+DlgAboutInfo		: "Ù„Ù…Ø²ÙŠØ¯ Ù…Ù† Ø§Ù„Ù…Ø¹Ù„ÙˆÙ…Ø§Øª ØªÙØ¶Ù„ Ø¨Ø²ÙŠØ§Ø±Ø©"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/gl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/gl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/gl.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Galician language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ocultar Ferramentas",
+ToolbarExpand		: "Mostrar Ferramentas",
+
+// Toolbar Items and Context Menu
+Save				: "Gardar",
+NewPage				: "Nova PÃ¡xina",
+Preview				: "Vista Previa",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Pegar",
+PasteText			: "Pegar como texto plano",
+PasteWord			: "Pegar dende Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar todo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "LigazÃ³n",
+InsertLink			: "Inserir/Editar LigazÃ³n",
+RemoveLink			: "Eliminar LigazÃ³n",
+Anchor				: "Inserir/Editar Referencia",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Imaxe",
+InsertImage			: "Inserir/Editar Imaxe",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Inserir/Editar Flash",
+InsertTableLbl		: "Tabla",
+InsertTable			: "Inserir/Editar Tabla",
+InsertLineLbl		: "LiÃ±a",
+InsertLine			: "Inserir LiÃ±a Horizontal",
+InsertSpecialCharLbl: "CarÃ¡cter Special",
+InsertSpecialChar	: "Inserir CarÃ¡cter Especial",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Inserir Smiley",
+About				: "Acerca de FCKeditor",
+Bold				: "Negrita",
+Italic				: "Cursiva",
+Underline			: "Sub-raiado",
+StrikeThrough		: "Tachado",
+Subscript			: "SubÃ­ndice",
+Superscript			: "SuperÃ­ndice",
+LeftJustify			: "AliÃ±ar Ã¡ Esquerda",
+CenterJustify		: "Centrado",
+RightJustify		: "AliÃ±ar Ã¡ Dereita",
+BlockJustify		: "Xustificado",
+DecreaseIndent		: "Disminuir SangrÃ­a",
+IncreaseIndent		: "Aumentar SangrÃ­a",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Desfacer",
+Redo				: "Refacer",
+NumberedListLbl		: "Lista Numerada",
+NumberedList		: "Inserir/Eliminar Lista Numerada",
+BulletedListLbl		: "Marcas",
+BulletedList		: "Inserir/Eliminar Marcas",
+ShowTableBorders	: "Mostrar Bordes das TÃ¡boas",
+ShowDetails			: "Mostrar Marcas ParÃ¡grafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Tipo",
+FontSize			: "TamaÃ±o",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor do Fondo",
+Source				: "CÃ³digo Fonte",
+Find				: "Procurar",
+Replace				: "Substituir",
+SpellCheck			: "CorrecciÃ³n OrtogrÃ¡fica",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de PÃ¡xina",
+PageBreak			: "Inserir Salto de PÃ¡xina",
+
+Form			: "Formulario",
+Checkbox		: "Cadro de VerificaciÃ³n",
+RadioButton		: "BotÃ³n de Radio",
+TextField		: "Campo de Texto",
+Textarea		: "Ãrea de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "BotÃ³n",
+SelectionField	: "Campo de SelecciÃ³n",
+ImageButton		: "BotÃ³n de Imaxe",
+
+FitWindow		: "Maximizar o tamaÃ±o do editor",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Editar LigazÃ³n",
+CellCM				: "Cela",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Borrar Filas",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Borrar Columnas",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Borrar Cela",
+MergeCells			: "Unir Celas",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Borrar TÃ¡boa",
+CellProperties		: "Propriedades da Cela",
+TableProperties		: "Propriedades da TÃ¡boa",
+ImageProperties		: "Propriedades Imaxe",
+FlashProperties		: "Propriedades Flash",
+
+AnchorProp			: "Propriedades da Referencia",
+ButtonProp			: "Propriedades do BotÃ³n",
+CheckboxProp		: "Propriedades do Cadro de VerificaciÃ³n",
+HiddenFieldProp		: "Propriedades do Campo Oculto",
+RadioButtonProp		: "Propriedades do BotÃ³n de Radio",
+ImageButtonProp		: "Propriedades do BotÃ³n de Imaxe",
+TextFieldProp		: "Propriedades do Campo de Texto",
+SelectionFieldProp	: "Propriedades do Campo de SelecciÃ³n",
+TextareaProp		: "Propriedades da Ãrea de Texto",
+FormProp			: "Propriedades do Formulario",
+
+FontFormats			: "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesando XHTML. Por facor, agarde...",
+Done				: "Feiro",
+PasteWordConfirm	: "Parece que o texto que quere pegar estÃ¡ copiado do Word.Â¿Quere limpar o formato antes de pegalo?",
+NotCompatiblePaste	: "Este comando estÃ¡ disponible para Internet Explorer versiÃ³n 5.5 ou superior. Â¿Quere pegalo sen limpar o formato?",
+UnknownToolbarItem	: "Ãtem de ferramentas descoÃ±ecido \"%1\"",
+UnknownCommand		: "Nome de comando descoÃ±ecido \"%1\"",
+NotImplemented		: "Comando non implementado",
+UnknownToolbarSet	: "O conxunto de ferramentas \"%1\" non existe",
+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",
+BrowseServerBlocked : "Non se poido abrir o navegador de recursos. AsegÃºrese de que estÃ¡n desactivados os bloqueadores de xanelas emerxentes",
+DialogBlocked		: "Non foi posible abrir a xanela de diÃ¡logo. AsegÃºrese de que estÃ¡n desactivados os bloqueadores de xanelas emerxentes",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Pechar",
+DlgBtnBrowseServer	: "Navegar no Servidor",
+DlgAdvancedTag		: "Advanzado",
+DlgOpOther			: "<Outro>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Por favor, insira a URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<non definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "OrientaciÃ³n do Idioma",
+DlgGenLangDirLtr	: "Esquerda a Dereita (LTR)",
+DlgGenLangDirRtl	: "Dereita a Esquerda (RTL)",
+DlgGenLangCode		: "CÃ³digo do Idioma",
+DlgGenAccessKey		: "Chave de Acceso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Ãndice de TabulaciÃ³n",
+DlgGenLongDescr		: "DescriciÃ³n Completa da URL",
+DlgGenClass			: "Clases da Folla de Estilos",
+DlgGenTitle			: "TÃ­tulo",
+DlgGenContType		: "Tipo de Contido",
+DlgGenLinkCharset	: "Fonte de Caracteres Vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propriedades da Imaxe",
+DlgImgInfoTab		: "InformaciÃ³n da Imaxe",
+DlgImgBtnUpload		: "Enviar Ã³ Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carregar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "TamaÃ±o Orixinal",
+DlgImgBorder		: "LÃ­mite",
+DlgImgHSpace		: "Esp. Horiz.",
+DlgImgVSpace		: "Esp. Vert.",
+DlgImgAlign			: "AliÃ±amento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Abs Inferior",
+DlgImgAlignAbsMiddle: "Abs Centro",
+DlgImgAlignBaseline	: "LiÃ±a Base",
+DlgImgAlignBottom	: "PÃ©",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Dereita",
+DlgImgAlignTextTop	: "Tope do Texto",
+DlgImgAlignTop		: "Tope",
+DlgImgPreview		: "Vista Previa",
+DlgImgAlertUrl		: "Por favor, escriba a URL da imaxe",
+DlgImgLinkTab		: "LigazÃ³n",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades Flash",
+DlgFlashChkPlay		: "Auto ExecuciÃ³n",
+DlgFlashChkLoop		: "Bucle",
+DlgFlashChkMenu		: "Activar MenÃº Flash",
+DlgFlashScale		: "Escalar",
+DlgFlashScaleAll	: "Amosar Todo",
+DlgFlashScaleNoBorder	: "Sen Borde",
+DlgFlashScaleFit	: "Encaixar axustando",
+
+// Link Dialog
+DlgLnkWindowTitle	: "LigazÃ³n",
+DlgLnkInfoTab		: "InformaciÃ³n da LigazÃ³n",
+DlgLnkTargetTab		: "Referencia a esta pÃ¡xina",
+
+DlgLnkType			: "Tipo de LigazÃ³n",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Referencia nesta pÃ¡xina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar unha Referencia",
+DlgLnkAnchorByName	: "Por Nome de Referencia",
+DlgLnkAnchorById	: "Por Element Id",
+DlgLnkNoAnchors		: "(Non hai referencias disponibles no documento)",
+DlgLnkEMail			: "Enderezo de E-Mail",
+DlgLnkEMailSubject	: "Asunto do Mensaxe",
+DlgLnkEMailBody		: "Corpo do Mensaxe",
+DlgLnkUpload		: "Carregar",
+DlgLnkBtnUpload		: "Enviar Ã³ servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<Xanela Emerxente>",
+DlgLnkTargetBlank	: "Nova Xanela (_blank)",
+DlgLnkTargetParent	: "Xanela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma Xanela (_self)",
+DlgLnkTargetTop		: "Xanela Primaria (_top)",
+DlgLnkTargetFrameName	: "Nome do Marco Destino",
+DlgLnkPopWinName	: "Nome da Xanela Emerxente",
+DlgLnkPopWinFeat	: "CaracterÃ­sticas da Xanela Emerxente",
+DlgLnkPopResize		: "Axustable",
+DlgLnkPopLocation	: "Barra de LocalizaciÃ³n",
+DlgLnkPopMenu		: "Barra de MenÃº",
+DlgLnkPopScroll		: "Barras de Desplazamento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "A Toda Pantalla (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "PosiciÃ³n Esquerda",
+DlgLnkPopTop		: "PosiciÃ³n dende Arriba",
+
+DlnLnkMsgNoUrl		: "Por favor, escriba a ligazÃ³n URL",
+DlnLnkMsgNoEMail	: "Por favor, escriba o enderezo de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor, seleccione un destino",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Color",
+DlgColorBtnClear	: "Nengunha",
+DlgColorHighlight	: "Destacado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserte un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione Caracter Especial",
+
+// Table Dialog
+DlgTableTitle		: "Propiedades da TÃ¡boa",
+DlgTableRows		: "Filas",
+DlgTableColumns		: "Columnas",
+DlgTableBorder		: "TamaÃ±o do Borde",
+DlgTableAlign		: "AliÃ±amento",
+DlgTableAlignNotSet	: "<Non Definido>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centro",
+DlgTableAlignRight	: "Ereita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Marxe entre Celas",
+DlgTableCellPad		: "Marxe interior",
+DlgTableCaption		: "TÃ­tulo",
+DlgTableSummary		: "Sumario",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propriedades da Cela",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Axustar LiÃ±as",
+DlgCellWordWrapNotSet	: "<Non Definido>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "Non",
+DlgCellHorAlign		: "AliÃ±amento Horizontal",
+DlgCellHorAlignNotSet	: "<Non definido>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centro",
+DlgCellHorAlignRight: "Dereita",
+DlgCellVerAlign		: "AliÃ±amento Vertical",
+DlgCellVerAlignNotSet	: "<Non definido>",
+DlgCellVerAlignTop	: "Arriba",
+DlgCellVerAlignMiddle	: "Medio",
+DlgCellVerAlignBottom	: "Abaixo",
+DlgCellVerAlignBaseline	: "LiÃ±a de Base",
+DlgCellRowSpan		: "Ocupar Filas",
+DlgCellCollSpan		: "Ocupar Columnas",
+DlgCellBackColor	: "Color de Fondo",
+DlgCellBorderColor	: "Color de Borde",
+DlgCellBtnSelect	: "Seleccionar...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Procurar",
+DlgFindFindBtn		: "Procurar",
+DlgFindNotFoundMsg	: "Non te atopou o texto indicado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Texto a procurar:",
+DlgReplaceReplaceLbl	: "Substituir con:",
+DlgReplaceCaseChk		: "Coincidir Mai./min.",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substitiur Todo",
+DlgReplaceWordChk		: "Coincidir con toda a palabra",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Pegar como texto plano",
+PasteFromWord	: "Pegar dende Word",
+
+DlgPasteMsg2	: "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignorar as definiciÃ³ns de TipografÃ­a",
+DlgPasteRemoveStyles	: "Eliminar as definiciÃ³ns de Estilos",
+
+// Color Picker
+ColorAutomatic	: "AutomÃ¡tico",
+ColorMoreColors	: "MÃ¡is Cores...",
+
+// Document Properties
+DocProps		: "Propriedades do Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propriedades da Referencia",
+DlgAnchorName		: "Nome da Referencia",
+DlgAnchorErrorName	: "Por favor, escriba o nome da referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Non estÃ¡ no diccionario",
+DlgSpellChangeTo		: "Cambiar a",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Todas",
+DlgSpellBtnReplace		: "Substituir",
+DlgSpellBtnReplaceAll	: "Substituir Todas",
+DlgSpellBtnUndo			: "Desfacer",
+DlgSpellNoSuggestions	: "- Sen candidatos -",
+DlgSpellProgress		: "CorrecciÃ³n ortogrÃ¡fica en progreso...",
+DlgSpellNoMispell		: "CorrecciÃ³n ortogrÃ¡fica rematada: Non se atoparon erros",
+DlgSpellNoChanges		: "CorrecciÃ³n ortogrÃ¡fica rematada: Non se substituiu nengunha verba",
+DlgSpellOneChange		: "CorrecciÃ³n ortogrÃ¡fica rematada: Unha verba substituida",
+DlgSpellManyChanges		: "CorrecciÃ³n ortogrÃ¡fica rematada: %1 verbas substituidas",
+
+IeSpellDownload			: "O corrector ortogrÃ¡fico non estÃ¡ instalado. Â¿Quere descargalo agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "AcciÃ³n",
+DlgFormMethod	: "MÃ©todo",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "TamaÃ±o",
+DlgSelectLines		: "liÃ±as",
+DlgSelectChkMulti	: "Permitir mÃºltiples selecciÃ³ns",
+DlgSelectOpAvail	: "OpciÃ³ns Disponibles",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Engadir",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Subir",
+DlgSelectBtnDown	: "Baixar",
+DlgSelectBtnSetValue : "Definir como valor por defecto",
+DlgSelectBtnDelete	: "Borrar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Columnas",
+DlgTextareaRows	: "Filas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "TamaÃ±o do Caracter",
+DlgTextMaxChars		: "MÃ¡ximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Chave",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propriedades das Marcas",
+NumberedListProp	: "Propriedades da Lista de NumeraciÃ³n",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "CÃ­rculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Cuadrado",
+DlgLstTypeNumbers	: "NÃºmeros (1, 2, 3)",
+DlgLstTypeLCase		: "Letras MinÃºsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras MaiÃºsculas (A, B, C)",
+DlgLstTypeSRoman	: "NÃºmeros Romanos en minÃºscula (i, ii, iii)",
+DlgLstTypeLRoman	: "NÃºmeros Romanos en MaiÃºscula (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Xeral",
+DlgDocBackTab		: "Fondo",
+DlgDocColorsTab		: "Cores e Marxes",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "TÃ­tulo da PÃ¡xina",
+DlgDocLangDir		: "OrientaciÃ³n do Idioma",
+DlgDocLangDirLTR	: "Esquerda a Dereita (LTR)",
+DlgDocLangDirRTL	: "Dereita a Esquerda (RTL)",
+DlgDocLangCode		: "CÃ³digo de Idioma",
+DlgDocCharSet		: "CodificaciÃ³n do Xogo de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Outra CodificaciÃ³n do Xogo de Caracteres",
+
+DlgDocDocType		: "Encabezado do Tipo de Documento",
+DlgDocDocTypeOther	: "Outro Encabezado do Tipo de Documento",
+DlgDocIncXHTML		: "Incluir DeclaraciÃ³ns XHTML",
+DlgDocBgColor		: "Cor de Fondo",
+DlgDocBgImage		: "URL da Imaxe de Fondo",
+DlgDocBgNoScroll	: "Fondo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "LigazÃ³ns",
+DlgDocCVisited		: "LigazÃ³n Visitada",
+DlgDocCActive		: "LigazÃ³n Activa",
+DlgDocMargins		: "Marxes da PÃ¡xina",
+DlgDocMaTop			: "Arriba",
+DlgDocMaLeft		: "Esquerda",
+DlgDocMaRight		: "Dereita",
+DlgDocMaBottom		: "Abaixo",
+DlgDocMeIndex		: "Palabras Chave de IndexaciÃ³n do Documento (separadas por comas)",
+DlgDocMeDescr		: "DescripciÃ³n do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista Previa",
+
+// Templates Dialog
+Templates			: "Plantillas",
+DlgTemplatesTitle	: "Plantillas de Contido",
+DlgTemplatesSelMsg	: "Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):",
+DlgTemplatesLoading	: "Cargando listado de plantillas. Por favor, espere...",
+DlgTemplatesNoTpl	: "(Non hai plantillas definidas)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca de",
+DlgAboutBrowserInfoTab	: "InformaciÃ³n do Navegador",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "versiÃ³n",
+DlgAboutInfo		: "Para mÃ¡is informaciÃ³n visitar:"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/_translationstatus.txt	(revision 838)
@@ -0,0 +1,77 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Translations Status.
+ */
+
+af.js      Found: 396   Missing: 15
+ar.js      Found: 411   Missing: 0
+bg.js      Found: 373   Missing: 38
+bn.js      Found: 380   Missing: 31
+bs.js      Found: 226   Missing: 185
+ca.js      Found: 411   Missing: 0
+cs.js      Found: 411   Missing: 0
+da.js      Found: 381   Missing: 30
+de.js      Found: 411   Missing: 0
+el.js      Found: 396   Missing: 15
+en-au.js   Found: 411   Missing: 0
+en-ca.js   Found: 411   Missing: 0
+en-uk.js   Found: 411   Missing: 0
+eo.js      Found: 346   Missing: 65
+es.js      Found: 411   Missing: 0
+et.js      Found: 411   Missing: 0
+eu.js      Found: 411   Missing: 0
+fa.js      Found: 397   Missing: 14
+fi.js      Found: 411   Missing: 0
+fo.js      Found: 396   Missing: 15
+fr-ca.js   Found: 411   Missing: 0
+fr.js      Found: 411   Missing: 0
+gl.js      Found: 381   Missing: 30
+he.js      Found: 411   Missing: 0
+hi.js      Found: 411   Missing: 0
+hr.js      Found: 411   Missing: 0
+hu.js      Found: 411   Missing: 0
+it.js      Found: 396   Missing: 15
+ja.js      Found: 411   Missing: 0
+km.js      Found: 370   Missing: 41
+ko.js      Found: 390   Missing: 21
+lt.js      Found: 376   Missing: 35
+lv.js      Found: 381   Missing: 30
+mn.js      Found: 411   Missing: 0
+ms.js      Found: 352   Missing: 59
+nb.js      Found: 395   Missing: 16
+nl.js      Found: 411   Missing: 0
+no.js      Found: 395   Missing: 16
+pl.js      Found: 411   Missing: 0
+pt-br.js   Found: 411   Missing: 0
+pt.js      Found: 381   Missing: 30
+ro.js      Found: 410   Missing: 1
+ru.js      Found: 411   Missing: 0
+sk.js      Found: 396   Missing: 15
+sl.js      Found: 411   Missing: 0
+sr-latn.js Found: 368   Missing: 43
+sr.js      Found: 368   Missing: 43
+sv.js      Found: 396   Missing: 15
+th.js      Found: 393   Missing: 18
+tr.js      Found: 396   Missing: 15
+uk.js      Found: 397   Missing: 14
+vi.js      Found: 396   Missing: 15
+zh-cn.js   Found: 411   Missing: 0
+zh.js      Found: 411   Missing: 0
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fr.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * French language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Masquer Outils",
+ToolbarExpand		: "Afficher Outils",
+
+// Toolbar Items and Context Menu
+Save				: "Enregistrer",
+NewPage				: "Nouvelle page",
+Preview				: "PrÃ©visualisation",
+Cut					: "Couper",
+Copy				: "Copier",
+Paste				: "Coller",
+PasteText			: "Coller comme texte",
+PasteWord			: "Coller de Word",
+Print				: "Imprimer",
+SelectAll			: "Tout sÃ©lectionner",
+RemoveFormat		: "Supprimer le format",
+InsertLinkLbl		: "Lien",
+InsertLink			: "InsÃ©rer/modifier le lien",
+RemoveLink			: "Supprimer le lien",
+Anchor				: "InsÃ©rer/modifier l'ancre",
+AnchorDelete		: "Supprimer l'ancre",
+InsertImageLbl		: "Image",
+InsertImage			: "InsÃ©rer/modifier l'image",
+InsertFlashLbl		: "Animation Flash",
+InsertFlash			: "InsÃ©rer/modifier l'animation Flash",
+InsertTableLbl		: "Tableau",
+InsertTable			: "InsÃ©rer/modifier le tableau",
+InsertLineLbl		: "SÃ©parateur",
+InsertLine			: "InsÃ©rer un sÃ©parateur",
+InsertSpecialCharLbl: "CaractÃ¨res spÃ©ciaux",
+InsertSpecialChar	: "InsÃ©rer un caractÃ¨re spÃ©cial",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "InsÃ©rer un Smiley",
+About				: "A propos de FCKeditor",
+Bold				: "Gras",
+Italic				: "Italique",
+Underline			: "SoulignÃ©",
+StrikeThrough		: "BarrÃ©",
+Subscript			: "Indice",
+Superscript			: "Exposant",
+LeftJustify			: "AlignÃ© Ã  gauche",
+CenterJustify		: "CentrÃ©",
+RightJustify		: "AlignÃ© Ã  Droite",
+BlockJustify		: "Texte justifiÃ©",
+DecreaseIndent		: "Diminuer le retrait",
+IncreaseIndent		: "Augmenter le retrait",
+Blockquote			: "Citation",
+Undo				: "Annuler",
+Redo				: "Refaire",
+NumberedListLbl		: "Liste numÃ©rotÃ©e",
+NumberedList		: "InsÃ©rer/supprimer la liste numÃ©rotÃ©e",
+BulletedListLbl		: "Liste Ã  puces",
+BulletedList		: "InsÃ©rer/supprimer la liste Ã  puces",
+ShowTableBorders	: "Afficher les bordures du tableau",
+ShowDetails			: "Afficher les caractÃ¨res invisibles",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Police",
+FontSize			: "Taille",
+TextColor			: "Couleur de caractÃ¨re",
+BGColor				: "Couleur de fond",
+Source				: "Source",
+Find				: "Chercher",
+Replace				: "Remplacer",
+SpellCheck			: "Orthographe",
+UniversalKeyboard	: "Clavier universel",
+PageBreakLbl		: "Saut de page",
+PageBreak			: "InsÃ©rer un saut de page",
+
+Form			: "Formulaire",
+Checkbox		: "Case Ã  cocher",
+RadioButton		: "Bouton radio",
+TextField		: "Champ texte",
+Textarea		: "Zone de texte",
+HiddenField		: "Champ cachÃ©",
+Button			: "Bouton",
+SelectionField	: "Liste/menu",
+ImageButton		: "Bouton image",
+
+FitWindow		: "Edition pleine page",
+ShowBlocks		: "Afficher les blocs",
+
+// Context Menu
+EditLink			: "Modifier le lien",
+CellCM				: "Cellule",
+RowCM				: "Ligne",
+ColumnCM			: "Colonne",
+InsertRowAfter		: "InsÃ©rer une ligne aprÃ¨s",
+InsertRowBefore		: "InsÃ©rer une ligne avant",
+DeleteRows			: "Supprimer des lignes",
+InsertColumnAfter	: "InsÃ©rer une colonne aprÃ¨s",
+InsertColumnBefore	: "InsÃ©rer une colonne avant",
+DeleteColumns		: "Supprimer des colonnes",
+InsertCellAfter		: "InsÃ©rer une cellule aprÃ¨s",
+InsertCellBefore	: "InsÃ©rer une cellule avant",
+DeleteCells			: "Supprimer des cellules",
+MergeCells			: "Fusionner les cellules",
+MergeRight			: "Fusionner Ã  droite",
+MergeDown			: "Fusionner en bas",
+HorizontalSplitCell	: "Scinder la cellule horizontalement",
+VerticalSplitCell	: "Scinder la cellule verticalement",
+TableDelete			: "Supprimer le tableau",
+CellProperties		: "PropriÃ©tÃ©s de cellule",
+TableProperties		: "PropriÃ©tÃ©s du tableau",
+ImageProperties		: "PropriÃ©tÃ©s de l'image",
+FlashProperties		: "PropriÃ©tÃ©s de l'animation Flash",
+
+AnchorProp			: "PropriÃ©tÃ©s de l'ancre",
+ButtonProp			: "PropriÃ©tÃ©s du bouton",
+CheckboxProp		: "PropriÃ©tÃ©s de la case Ã  cocher",
+HiddenFieldProp		: "PropriÃ©tÃ©s du champ cachÃ©",
+RadioButtonProp		: "PropriÃ©tÃ©s du bouton radio",
+ImageButtonProp		: "PropriÃ©tÃ©s du bouton image",
+TextFieldProp		: "PropriÃ©tÃ©s du champ texte",
+SelectionFieldProp	: "PropriÃ©tÃ©s de la liste/du menu",
+TextareaProp		: "PropriÃ©tÃ©s de la zone de texte",
+FormProp			: "PropriÃ©tÃ©s du formulaire",
+
+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)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Calcul XHTML. Veuillez patienter...",
+Done				: "TerminÃ©",
+PasteWordConfirm	: "Le texte Ã  coller semble provenir de Word. DÃ©sirez-vous le nettoyer avant de coller?",
+NotCompatiblePaste	: "Cette commande nÃ©cessite Internet Explorer version 5.5 minimum. Souhaitez-vous coller sans nettoyage?",
+UnknownToolbarItem	: "ElÃ©ment de barre d'outil inconnu \"%1\"",
+UnknownCommand		: "Nom de commande inconnu \"%1\"",
+NotImplemented		: "Commande non encore Ã©crite",
+UnknownToolbarSet	: "La barre d'outils \"%1\" n'existe pas",
+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.",
+BrowseServerBlocked : "Le navigateur n'a pas pu Ãªtre ouvert. Assurez-vous que les bloqueurs de popups soient dÃ©sactivÃ©s.",
+DialogBlocked		: "La fenÃªtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient dÃ©sactivÃ©s.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuler",
+DlgBtnClose			: "Fermer",
+DlgBtnBrowseServer	: "Parcourir le serveur",
+DlgAdvancedTag		: "AvancÃ©",
+DlgOpOther			: "<Autre>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Veuillez saisir l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Par dÃ©faut>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Sens d'Ã©criture",
+DlgGenLangDirLtr	: "De gauche Ã  droite (LTR)",
+DlgGenLangDirRtl	: "De droite Ã  gauche (RTL)",
+DlgGenLangCode		: "Code langue",
+DlgGenAccessKey		: "Equivalent clavier",
+DlgGenName			: "Nom",
+DlgGenTabIndex		: "Ordre de tabulation",
+DlgGenLongDescr		: "URL de description longue",
+DlgGenClass			: "Classes de feuilles de style",
+DlgGenTitle			: "Titre",
+DlgGenContType		: "Type de contenu",
+DlgGenLinkCharset	: "Encodage de caractÃ¨re",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "PropriÃ©tÃ©s de l'image",
+DlgImgInfoTab		: "Informations sur l'image",
+DlgImgBtnUpload		: "Envoyer sur le serveur",
+DlgImgURL			: "URL",
+DlgImgUpload		: "TÃ©lÃ©charger",
+DlgImgAlt			: "Texte de remplacement",
+DlgImgWidth			: "Largeur",
+DlgImgHeight		: "Hauteur",
+DlgImgLockRatio		: "Garder les proportions",
+DlgBtnResetSize		: "Taille originale",
+DlgImgBorder		: "Bordure",
+DlgImgHSpace		: "Espacement horizontal",
+DlgImgVSpace		: "Espacement vertical",
+DlgImgAlign			: "Alignement",
+DlgImgAlignLeft		: "Gauche",
+DlgImgAlignAbsBottom: "Abs Bas",
+DlgImgAlignAbsMiddle: "Abs Milieu",
+DlgImgAlignBaseline	: "Bas du texte",
+DlgImgAlignBottom	: "Bas",
+DlgImgAlignMiddle	: "Milieu",
+DlgImgAlignRight	: "Droite",
+DlgImgAlignTextTop	: "Haut du texte",
+DlgImgAlignTop		: "Haut",
+DlgImgPreview		: "PrÃ©visualisation",
+DlgImgAlertUrl		: "Veuillez saisir l'URL de l'image",
+DlgImgLinkTab		: "Lien",
+
+// Flash Dialog
+DlgFlashTitle		: "PropriÃ©tÃ©s de l'animation Flash",
+DlgFlashChkPlay		: "Lecture automatique",
+DlgFlashChkLoop		: "Boucle",
+DlgFlashChkMenu		: "Activer le menu Flash",
+DlgFlashScale		: "Affichage",
+DlgFlashScaleAll	: "Par dÃ©faut (tout montrer)",
+DlgFlashScaleNoBorder	: "Sans bordure",
+DlgFlashScaleFit	: "Ajuster aux dimensions",
+
+// Link Dialog
+DlgLnkWindowTitle	: "PropriÃ©tÃ©s du lien",
+DlgLnkInfoTab		: "Informations sur le lien",
+DlgLnkTargetTab		: "Destination",
+
+DlgLnkType			: "Type de lien",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancre dans cette page",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocole",
+DlgLnkProtoOther	: "<autre>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "SÃ©lectionner une ancre",
+DlgLnkAnchorByName	: "Par nom",
+DlgLnkAnchorById	: "Par id",
+DlgLnkNoAnchors		: "(Pas d'ancre disponible dans le document)",
+DlgLnkEMail			: "Adresse E-Mail",
+DlgLnkEMailSubject	: "Sujet du message",
+DlgLnkEMailBody		: "Corps du message",
+DlgLnkUpload		: "TÃ©lÃ©charger",
+DlgLnkBtnUpload		: "Envoyer sur le serveur",
+
+DlgLnkTarget		: "Destination",
+DlgLnkTargetFrame	: "<Cadre>",
+DlgLnkTargetPopup	: "<fenÃªtre popup>",
+DlgLnkTargetBlank	: "Nouvelle fenÃªtre (_blank)",
+DlgLnkTargetParent	: "FenÃªtre mÃ¨re (_parent)",
+DlgLnkTargetSelf	: "MÃªme fenÃªtre (_self)",
+DlgLnkTargetTop		: "FenÃªtre supÃ©rieure (_top)",
+DlgLnkTargetFrameName	: "Nom du cadre de destination",
+DlgLnkPopWinName	: "Nom de la fenÃªtre popup",
+DlgLnkPopWinFeat	: "CaractÃ©ristiques de la fenÃªtre popup",
+DlgLnkPopResize		: "Taille modifiable",
+DlgLnkPopLocation	: "Barre d'adresses",
+DlgLnkPopMenu		: "Barre de menu",
+DlgLnkPopScroll		: "Barres de dÃ©filement",
+DlgLnkPopStatus		: "Barre d'Ã©tat",
+DlgLnkPopToolbar	: "Barre d'outils",
+DlgLnkPopFullScrn	: "Plein Ã©cran (IE)",
+DlgLnkPopDependent	: "DÃ©pendante (Netscape)",
+DlgLnkPopWidth		: "Largeur",
+DlgLnkPopHeight		: "Hauteur",
+DlgLnkPopLeft		: "Position Ã  partir de la gauche",
+DlgLnkPopTop		: "Position Ã  partir du haut",
+
+DlnLnkMsgNoUrl		: "Veuillez saisir l'URL",
+DlnLnkMsgNoEMail	: "Veuillez saisir l'adresse e-mail",
+DlnLnkMsgNoAnchor	: "Veuillez sÃ©lectionner une ancre",
+DlnLnkMsgInvPopName	: "Le nom de la fenÃªtre popup doit commencer par une lettre et ne doit pas contenir d'espace",
+
+// Color Dialog
+DlgColorTitle		: "SÃ©lectionner",
+DlgColorBtnClear	: "Effacer",
+DlgColorHighlight	: "PrÃ©visualisation",
+DlgColorSelected	: "SÃ©lectionnÃ©",
+
+// Smiley Dialog
+DlgSmileyTitle		: "InsÃ©rer un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "InsÃ©rer un caractÃ¨re spÃ©cial",
+
+// Table Dialog
+DlgTableTitle		: "PropriÃ©tÃ©s du tableau",
+DlgTableRows		: "Lignes",
+DlgTableColumns		: "Colonnes",
+DlgTableBorder		: "Bordure",
+DlgTableAlign		: "Alignement",
+DlgTableAlignNotSet	: "<Par dÃ©faut>",
+DlgTableAlignLeft	: "Gauche",
+DlgTableAlignCenter	: "CentrÃ©",
+DlgTableAlignRight	: "Droite",
+DlgTableWidth		: "Largeur",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "pourcentage",
+DlgTableHeight		: "Hauteur",
+DlgTableCellSpace	: "Espacement",
+DlgTableCellPad		: "Contour",
+DlgTableCaption		: "Titre",
+DlgTableSummary		: "RÃ©sumÃ©",
+
+// Table Cell Dialog
+DlgCellTitle		: "PropriÃ©tÃ©s de la cellule",
+DlgCellWidth		: "Largeur",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "pourcentage",
+DlgCellHeight		: "Hauteur",
+DlgCellWordWrap		: "Retour Ã  la ligne",
+DlgCellWordWrapNotSet	: "<Par dÃ©faut>",
+DlgCellWordWrapYes	: "Oui",
+DlgCellWordWrapNo	: "Non",
+DlgCellHorAlign		: "Alignement horizontal",
+DlgCellHorAlignNotSet	: "<Par dÃ©faut>",
+DlgCellHorAlignLeft	: "Gauche",
+DlgCellHorAlignCenter	: "CentrÃ©",
+DlgCellHorAlignRight: "Droite",
+DlgCellVerAlign		: "Alignement vertical",
+DlgCellVerAlignNotSet	: "<Par dÃ©faut>",
+DlgCellVerAlignTop	: "Haut",
+DlgCellVerAlignMiddle	: "Milieu",
+DlgCellVerAlignBottom	: "Bas",
+DlgCellVerAlignBaseline	: "Bas du texte",
+DlgCellRowSpan		: "Lignes fusionnÃ©es",
+DlgCellCollSpan		: "Colonnes fusionnÃ©es",
+DlgCellBackColor	: "Fond",
+DlgCellBorderColor	: "Bordure",
+DlgCellBtnSelect	: "Choisir...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Chercher et Remplacer",
+
+// Find Dialog
+DlgFindTitle		: "Chercher",
+DlgFindFindBtn		: "Chercher",
+DlgFindNotFoundMsg	: "Le texte indiquÃ© est introuvable.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Remplacer",
+DlgReplaceFindLbl		: "Rechercher:",
+DlgReplaceReplaceLbl	: "Remplacer par:",
+DlgReplaceCaseChk		: "Respecter la casse",
+DlgReplaceReplaceBtn	: "Remplacer",
+DlgReplaceReplAllBtn	: "Tout remplacer",
+DlgReplaceWordChk		: "Mot entier",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Coller comme texte",
+PasteFromWord	: "Coller Ã  partir de Word",
+
+DlgPasteMsg2	: "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.",
+DlgPasteSec		: "A cause des paramÃ¨tres de sÃ©curitÃ© de votre navigateur, l'Ã©diteur ne peut accÃ©der au presse-papier directement. Vous devez coller Ã  nouveau le contenu dans cette fenÃªtre.",
+DlgPasteIgnoreFont		: "Ignorer les polices de caractÃ¨res",
+DlgPasteRemoveStyles	: "Supprimer les styles",
+
+// Color Picker
+ColorAutomatic	: "Automatique",
+ColorMoreColors	: "Plus de couleurs...",
+
+// Document Properties
+DocProps		: "PropriÃ©tÃ©s du document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "PropriÃ©tÃ©s de l'ancre",
+DlgAnchorName		: "Nom de l'ancre",
+DlgAnchorErrorName	: "Veuillez saisir le nom de l'ancre",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Pas dans le dictionnaire",
+DlgSpellChangeTo		: "Changer en",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer tout",
+DlgSpellBtnReplace		: "Remplacer",
+DlgSpellBtnReplaceAll	: "Remplacer tout",
+DlgSpellBtnUndo			: "Annuler",
+DlgSpellNoSuggestions	: "- Aucune suggestion -",
+DlgSpellProgress		: "VÃ©rification d'orthographe en cours...",
+DlgSpellNoMispell		: "VÃ©rification d'orthographe terminÃ©e: Aucune erreur trouvÃ©e",
+DlgSpellNoChanges		: "VÃ©rification d'orthographe terminÃ©e: Pas de modifications",
+DlgSpellOneChange		: "VÃ©rification d'orthographe terminÃ©e: Un mot modifiÃ©",
+DlgSpellManyChanges		: "VÃ©rification d'orthographe terminÃ©e: %1 mots modifiÃ©s",
+
+IeSpellDownload			: "Le Correcteur n'est pas installÃ©. Souhaitez-vous le tÃ©lÃ©charger maintenant?",
+
+// Button Dialog
+DlgButtonText		: "Texte (valeur)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Bouton",
+DlgButtonTypeSbm	: "Envoyer",
+DlgButtonTypeRst	: "RÃ©initialiser",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nom",
+DlgCheckboxValue	: "Valeur",
+DlgCheckboxSelected	: "SÃ©lectionnÃ©",
+
+// Form Dialog
+DlgFormName		: "Nom",
+DlgFormAction	: "Action",
+DlgFormMethod	: "MÃ©thode",
+
+// Select Field Dialog
+DlgSelectName		: "Nom",
+DlgSelectValue		: "Valeur",
+DlgSelectSize		: "Taille",
+DlgSelectLines		: "lignes",
+DlgSelectChkMulti	: "SÃ©lection multiple",
+DlgSelectOpAvail	: "Options disponibles",
+DlgSelectOpText		: "Texte",
+DlgSelectOpValue	: "Valeur",
+DlgSelectBtnAdd		: "Ajouter",
+DlgSelectBtnModify	: "Modifier",
+DlgSelectBtnUp		: "Monter",
+DlgSelectBtnDown	: "Descendre",
+DlgSelectBtnSetValue : "Valeur sÃ©lectionnÃ©e",
+DlgSelectBtnDelete	: "Supprimer",
+
+// Textarea Dialog
+DlgTextareaName	: "Nom",
+DlgTextareaCols	: "Colonnes",
+DlgTextareaRows	: "Lignes",
+
+// Text Field Dialog
+DlgTextName			: "Nom",
+DlgTextValue		: "Valeur",
+DlgTextCharWidth	: "Largeur en caractÃ¨res",
+DlgTextMaxChars		: "Nombre maximum de caractÃ¨res",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Texte",
+DlgTextTypePass		: "Mot de passe",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nom",
+DlgHiddenValue	: "Valeur",
+
+// Bulleted List Dialog
+BulletedListProp	: "PropriÃ©tÃ©s de liste Ã  puces",
+NumberedListProp	: "PropriÃ©tÃ©s de liste numÃ©rotÃ©e",
+DlgLstStart			: "DÃ©but",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Cercle",
+DlgLstTypeDisc		: "Disque",
+DlgLstTypeSquare	: "CarrÃ©",
+DlgLstTypeNumbers	: "Nombres (1, 2, 3)",
+DlgLstTypeLCase		: "Lettres minuscules (a, b, c)",
+DlgLstTypeUCase		: "Lettres majuscules (A, B, C)",
+DlgLstTypeSRoman	: "Chiffres romains minuscules (i, ii, iii)",
+DlgLstTypeLRoman	: "Chiffres romains majuscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "GÃ©nÃ©ral",
+DlgDocBackTab		: "Fond",
+DlgDocColorsTab		: "Couleurs et marges",
+DlgDocMetaTab		: "MÃ©tadonnÃ©es",
+
+DlgDocPageTitle		: "Titre de la page",
+DlgDocLangDir		: "Sens d'Ã©criture",
+DlgDocLangDirLTR	: "De la gauche vers la droite (LTR)",
+DlgDocLangDirRTL	: "De la droite vers la gauche (RTL)",
+DlgDocLangCode		: "Code langue",
+DlgDocCharSet		: "Encodage de caractÃ¨re",
+DlgDocCharSetCE		: "Europe Centrale",
+DlgDocCharSetCT		: "Chinois Traditionnel (Big5)",
+DlgDocCharSetCR		: "Cyrillique",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "Japonais",
+DlgDocCharSetKR		: "CorÃ©en",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Occidental",
+DlgDocCharSetOther	: "Autre encodage de caractÃ¨re",
+
+DlgDocDocType		: "Type de document",
+DlgDocDocTypeOther	: "Autre type de document",
+DlgDocIncXHTML		: "Inclure les dÃ©clarations XHTML",
+DlgDocBgColor		: "Couleur de fond",
+DlgDocBgImage		: "Image de fond",
+DlgDocBgNoScroll	: "Image fixe sans dÃ©filement",
+DlgDocCText			: "Texte",
+DlgDocCLink			: "Lien",
+DlgDocCVisited		: "Lien visitÃ©",
+DlgDocCActive		: "Lien activÃ©",
+DlgDocMargins		: "Marges",
+DlgDocMaTop			: "Haut",
+DlgDocMaLeft		: "Gauche",
+DlgDocMaRight		: "Droite",
+DlgDocMaBottom		: "Bas",
+DlgDocMeIndex		: "Mots-clÃ©s (sÃ©parÃ©s par des virgules)",
+DlgDocMeDescr		: "Description",
+DlgDocMeAuthor		: "Auteur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "PrÃ©visualisation",
+
+// Templates Dialog
+Templates			: "ModÃ¨les",
+DlgTemplatesTitle	: "ModÃ¨les de contenu",
+DlgTemplatesSelMsg	: "Veuillez sÃ©lectionner le modÃ¨le Ã  ouvrir dans l'Ã©diteur<br>(le contenu actuel sera remplacÃ©):",
+DlgTemplatesLoading	: "Chargement de la liste des modÃ¨les. Veuillez patienter...",
+DlgTemplatesNoTpl	: "(Aucun modÃ¨le disponible)",
+DlgTemplatesReplace	: "Remplacer tout le contenu",
+
+// About Dialog
+DlgAboutAboutTab	: "A propos de",
+DlgAboutBrowserInfoTab	: "Navigateur",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "Version",
+DlgAboutInfo		: "Pour plus d'informations, aller Ã "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/et.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/et.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/et.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Estonian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Voldi tÃ¶Ã¶riistariba",
+ToolbarExpand		: "Laienda tÃ¶Ã¶riistariba",
+
+// Toolbar Items and Context Menu
+Save				: "Salvesta",
+NewPage				: "Uus leht",
+Preview				: "Eelvaade",
+Cut					: "LÃµika",
+Copy				: "Kopeeri",
+Paste				: "Kleebi",
+PasteText			: "Kleebi tavalise tekstina",
+PasteWord			: "Kleebi Wordist",
+Print				: "Prindi",
+SelectAll			: "Vali kÃµik",
+RemoveFormat		: "Eemalda vorming",
+InsertLinkLbl		: "Link",
+InsertLink			: "Sisesta link / Muuda linki",
+RemoveLink			: "Eemalda link",
+Anchor				: "Sisesta ankur / Muuda ankrut",
+AnchorDelete		: "Eemalda ankur",
+InsertImageLbl		: "Pilt",
+InsertImage			: "Sisesta pilt / Muuda pilti",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sisesta flash / Muuda flashi",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Sisesta tabel / Muuda tabelit",
+InsertLineLbl		: "Joon",
+InsertLine			: "Sisesta horisontaaljoon",
+InsertSpecialCharLbl: "ErimÃ¤rgid",
+InsertSpecialChar	: "Sisesta erimÃ¤rk",
+InsertSmileyLbl		: "Emotikon",
+InsertSmiley		: "Sisesta emotikon",
+About				: "FCKeditor teave",
+Bold				: "Paks",
+Italic				: "Kursiiv",
+Underline			: "Allajoonitud",
+StrikeThrough		: "LÃ¤bijoonitud",
+Subscript			: "Allindeks",
+Superscript			: "Ãœlaindeks",
+LeftJustify			: "Vasakjoondus",
+CenterJustify		: "Keskjoondus",
+RightJustify		: "Paremjoondus",
+BlockJustify		: "RÃ¶Ã¶pjoondus",
+DecreaseIndent		: "VÃ¤henda taanet",
+IncreaseIndent		: "Suurenda taanet",
+Blockquote			: "Blokktsitaat",
+Undo				: "VÃµta tagasi",
+Redo				: "Korda toimingut",
+NumberedListLbl		: "Nummerdatud loetelu",
+NumberedList		: "Sisesta/Eemalda nummerdatud loetelu",
+BulletedListLbl		: "Punktiseeritud loetelu",
+BulletedList		: "Sisesta/Eemalda punktiseeritud loetelu",
+ShowTableBorders	: "NÃ¤ita tabeli jooni",
+ShowDetails			: "NÃ¤ita Ã¼ksikasju",
+Style				: "Laad",
+FontFormat			: "Vorming",
+Font				: "Kiri",
+FontSize			: "Suurus",
+TextColor			: "Teksti vÃ¤rv",
+BGColor				: "Tausta vÃ¤rv",
+Source				: "LÃ¤htekood",
+Find				: "Otsi",
+Replace				: "Asenda",
+SpellCheck			: "Kontrolli Ãµigekirja",
+UniversalKeyboard	: "Universaalne klaviatuur",
+PageBreakLbl		: "Lehepiir",
+PageBreak			: "Sisesta lehevahetuskoht",
+
+Form			: "Vorm",
+Checkbox		: "MÃ¤rkeruut",
+RadioButton		: "Raadionupp",
+TextField		: "Tekstilahter",
+Textarea		: "Tekstiala",
+HiddenField		: "Varjatud lahter",
+Button			: "Nupp",
+SelectionField	: "Valiklahter",
+ImageButton		: "Piltnupp",
+
+FitWindow		: "Maksimeeri redaktori mÃµÃµtmed",
+ShowBlocks		: "NÃ¤ita blokke",
+
+// Context Menu
+EditLink			: "Muuda linki",
+CellCM				: "Lahter",
+RowCM				: "Rida",
+ColumnCM			: "Veerg",
+InsertRowAfter		: "Sisesta rida peale",
+InsertRowBefore		: "Sisesta rida enne",
+DeleteRows			: "Eemalda read",
+InsertColumnAfter	: "Sisesta veerg peale",
+InsertColumnBefore	: "Sisesta veerg enne",
+DeleteColumns		: "Eemalda veerud",
+InsertCellAfter		: "Sisesta lahter peale",
+InsertCellBefore	: "Sisesta lahter enne",
+DeleteCells			: "Eemalda lahtrid",
+MergeCells			: "Ãœhenda lahtrid",
+MergeRight			: "Ãœhenda paremale",
+MergeDown			: "Ãœhenda alla",
+HorizontalSplitCell	: "Poolita lahter horisontaalselt",
+VerticalSplitCell	: "Poolita lahter vertikaalselt",
+TableDelete			: "Kustuta tabel",
+CellProperties		: "Lahtri atribuudid",
+TableProperties		: "Tabeli atribuudid",
+ImageProperties		: "Pildi atribuudid",
+FlashProperties		: "Flash omadused",
+
+AnchorProp			: "Ankru omadused",
+ButtonProp			: "Nupu omadused",
+CheckboxProp		: "MÃ¤rkeruudu omadused",
+HiddenFieldProp		: "Varjatud lahtri omadused",
+RadioButtonProp		: "Raadionupu omadused",
+ImageButtonProp		: "Piltnupu omadused",
+TextFieldProp		: "Tekstilahtri omadused",
+SelectionFieldProp	: "Valiklahtri omadused",
+TextareaProp		: "Tekstiala omadused",
+FormProp			: "Vormi omadused",
+
+FontFormats			: "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6;Tavaline (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "TÃ¶Ã¶tlen XHTML'i. Palun oota...",
+Done				: "Tehtud",
+PasteWordConfirm	: "Tekst, mida soovid lisada paistab pÃ¤rinevat Word'ist. Kas soovid seda enne kleepimist puhastada?",
+NotCompatiblePaste	: "See kÃ¤sk on saadaval ainult Internet Explorer versioon 5.5 vÃµi uuema puhul. Kas soovid kleepida ilma puhastamata?",
+UnknownToolbarItem	: "Tundmatu tÃ¶Ã¶riistarea Ã¼ksus \"%1\"",
+UnknownCommand		: "Tundmatu kÃ¤sunimi \"%1\"",
+NotImplemented		: "KÃ¤sku ei tÃ¤idetud",
+UnknownToolbarSet	: "TÃ¶Ã¶riistariba \"%1\" ei eksisteeri",
+NoActiveX			: "Sinu veebisirvija turvalisuse seaded vÃµivad limiteerida mÃµningaid tekstirdaktori kasutusvÃµimalusi. Sa peaksid vÃµimaldama valiku \"Run ActiveX controls and plug-ins\" oma veebisirvija seadetes. Muidu vÃµid sa tÃ¤heldada vigu tekstiredaktori tÃ¶Ã¶s ja mÃ¤rgata puuduvaid funktsioone.",
+BrowseServerBlocked : "Ressursside sirvija avamine ebaÃµnnestus. VÃµimalda pop-up akende avanemine.",
+DialogBlocked		: "Ei olenud vÃµimalik avada dialoogi akent. VÃµimalda pop-up akende avanemine.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Loobu",
+DlgBtnClose			: "Sulge",
+DlgBtnBrowseServer	: "Sirvi serverit",
+DlgAdvancedTag		: "TÃ¤psemalt",
+DlgOpOther			: "<Teine>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Palun sisesta URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<mÃ¤Ã¤ramata>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Keele suund",
+DlgGenLangDirLtr	: "Vasakult paremale (LTR)",
+DlgGenLangDirRtl	: "Paremalt vasakule (RTL)",
+DlgGenLangCode		: "Keele kood",
+DlgGenAccessKey		: "JuurdepÃ¤Ã¤su vÃµti",
+DlgGenName			: "Nimi",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "Pikk kirjeldus URL",
+DlgGenClass			: "Stiilistiku klassid",
+DlgGenTitle			: "Juhendav tiitel",
+DlgGenContType		: "Juhendava sisu tÃ¼Ã¼p",
+DlgGenLinkCharset	: "Lingitud ressurssi mÃ¤rgistik",
+DlgGenStyle			: "Laad",
+
+// Image Dialog
+DlgImgTitle			: "Pildi atribuudid",
+DlgImgInfoTab		: "Pildi info",
+DlgImgBtnUpload		: "Saada serverissee",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Lae Ã¼les",
+DlgImgAlt			: "Alternatiivne tekst",
+DlgImgWidth			: "Laius",
+DlgImgHeight		: "KÃµrgus",
+DlgImgLockRatio		: "Lukusta kuvasuhe",
+DlgBtnResetSize		: "LÃ¤htesta suurus",
+DlgImgBorder		: "Joon",
+DlgImgHSpace		: "H. vaheruum",
+DlgImgVSpace		: "V. vaheruum",
+DlgImgAlign			: "Joondus",
+DlgImgAlignLeft		: "Vasak",
+DlgImgAlignAbsBottom: "Abs alla",
+DlgImgAlignAbsMiddle: "Abs keskele",
+DlgImgAlignBaseline	: "Baasjoonele",
+DlgImgAlignBottom	: "Alla",
+DlgImgAlignMiddle	: "Keskele",
+DlgImgAlignRight	: "Paremale",
+DlgImgAlignTextTop	: "Tekstit Ã¼les",
+DlgImgAlignTop		: "Ãœles",
+DlgImgPreview		: "Eelvaade",
+DlgImgAlertUrl		: "Palun kirjuta pildi URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash omadused",
+DlgFlashChkPlay		: "Automaatne start ",
+DlgFlashChkLoop		: "Korduv",
+DlgFlashChkMenu		: "VÃµimalda flash menÃ¼Ã¼",
+DlgFlashScale		: "Mastaap",
+DlgFlashScaleAll	: "NÃ¤ita kÃµike",
+DlgFlashScaleNoBorder	: "Ã„Ã¤rist ei ole",
+DlgFlashScaleFit	: "TÃ¤pne sobivus",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Lingi info",
+DlgLnkTargetTab		: "Sihtkoht",
+
+DlgLnkType			: "Lingi tÃ¼Ã¼p",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankur sellel lehel",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<muu>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vali ankur",
+DlgLnkAnchorByName	: "Ankru nime jÃ¤rgi",
+DlgLnkAnchorById	: "Elemendi id jÃ¤rgi",
+DlgLnkNoAnchors		: "(Selles dokumendis ei ole ankruid)",
+DlgLnkEMail			: "E-posti aadress",
+DlgLnkEMailSubject	: "SÃµnumi teema",
+DlgLnkEMailBody		: "SÃµnumi tekst",
+DlgLnkUpload		: "Lae Ã¼les",
+DlgLnkBtnUpload		: "Saada serverisse",
+
+DlgLnkTarget		: "Sihtkoht",
+DlgLnkTargetFrame	: "<raam>",
+DlgLnkTargetPopup	: "<hÃ¼pikaken>",
+DlgLnkTargetBlank	: "Uus aken (_blank)",
+DlgLnkTargetParent	: "Esivanem aken (_parent)",
+DlgLnkTargetSelf	: "Sama aken (_self)",
+DlgLnkTargetTop		: "Pealmine aken (_top)",
+DlgLnkTargetFrameName	: "SihtmÃ¤rk raami nimi",
+DlgLnkPopWinName	: "HÃ¼pikakna nimi",
+DlgLnkPopWinFeat	: "HÃ¼pikakna omadused",
+DlgLnkPopResize		: "Suurendatav",
+DlgLnkPopLocation	: "Aadressiriba",
+DlgLnkPopMenu		: "MenÃ¼Ã¼riba",
+DlgLnkPopScroll		: "Kerimisribad",
+DlgLnkPopStatus		: "Olekuriba",
+DlgLnkPopToolbar	: "TÃ¶Ã¶riistariba",
+DlgLnkPopFullScrn	: "TÃ¤isekraan (IE)",
+DlgLnkPopDependent	: "SÃµltuv (Netscape)",
+DlgLnkPopWidth		: "Laius",
+DlgLnkPopHeight		: "KÃµrgus",
+DlgLnkPopLeft		: "Vasak asukoht",
+DlgLnkPopTop		: "Ãœlemine asukoht",
+
+DlnLnkMsgNoUrl		: "Palun kirjuta lingi URL",
+DlnLnkMsgNoEMail	: "Palun kirjuta E-Posti aadress",
+DlnLnkMsgNoAnchor	: "Palun vali ankur",
+DlnLnkMsgInvPopName	: "HÃ¼pikakna nimi peab algama alfabeetilise tÃ¤hega ja ei tohi sisaldada tÃ¼hikuid",
+
+// Color Dialog
+DlgColorTitle		: "Vali vÃ¤rv",
+DlgColorBtnClear	: "TÃ¼hjenda",
+DlgColorHighlight	: "MÃ¤rgi",
+DlgColorSelected	: "Valitud",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sisesta emotikon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Vali erimÃ¤rk",
+
+// Table Dialog
+DlgTableTitle		: "Tabeli atribuudid",
+DlgTableRows		: "Read",
+DlgTableColumns		: "Veerud",
+DlgTableBorder		: "Joone suurus",
+DlgTableAlign		: "Joondus",
+DlgTableAlignNotSet	: "<MÃ¤Ã¤ramata>",
+DlgTableAlignLeft	: "Vasak",
+DlgTableAlignCenter	: "Kesk",
+DlgTableAlignRight	: "Parem",
+DlgTableWidth		: "Laius",
+DlgTableWidthPx		: "pikslit",
+DlgTableWidthPc		: "protsenti",
+DlgTableHeight		: "KÃµrgus",
+DlgTableCellSpace	: "Lahtri vahe",
+DlgTableCellPad		: "Lahtri tÃ¤idis",
+DlgTableCaption		: "Tabeli tiitel",
+DlgTableSummary		: "KokkuvÃµte",
+
+// Table Cell Dialog
+DlgCellTitle		: "Lahtri atribuudid",
+DlgCellWidth		: "Laius",
+DlgCellWidthPx		: "pikslit",
+DlgCellWidthPc		: "protsenti",
+DlgCellHeight		: "KÃµrgus",
+DlgCellWordWrap		: "SÃµna Ã¼lekanne",
+DlgCellWordWrapNotSet	: "<MÃ¤Ã¤ramata>",
+DlgCellWordWrapYes	: "Jah",
+DlgCellWordWrapNo	: "Ei",
+DlgCellHorAlign		: "Horisontaaljoondus",
+DlgCellHorAlignNotSet	: "<MÃ¤Ã¤ramata>",
+DlgCellHorAlignLeft	: "Vasak",
+DlgCellHorAlignCenter	: "Kesk",
+DlgCellHorAlignRight: "Parem",
+DlgCellVerAlign		: "Vertikaaljoondus",
+DlgCellVerAlignNotSet	: "<MÃ¤Ã¤ramata>",
+DlgCellVerAlignTop	: "Ãœles",
+DlgCellVerAlignMiddle	: "Keskele",
+DlgCellVerAlignBottom	: "Alla",
+DlgCellVerAlignBaseline	: "Baasjoonele",
+DlgCellRowSpan		: "Reaulatus",
+DlgCellCollSpan		: "Veeruulatus",
+DlgCellBackColor	: "Tausta vÃ¤rv",
+DlgCellBorderColor	: "Joone vÃ¤rv",
+DlgCellBtnSelect	: "Vali...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Otsi ja asenda",
+
+// Find Dialog
+DlgFindTitle		: "Otsi",
+DlgFindFindBtn		: "Otsi",
+DlgFindNotFoundMsg	: "Valitud teksti ei leitud.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Asenda",
+DlgReplaceFindLbl		: "Leia mida:",
+DlgReplaceReplaceLbl	: "Asenda millega:",
+DlgReplaceCaseChk		: "Erista suur- ja vÃ¤iketÃ¤hti",
+DlgReplaceReplaceBtn	: "Asenda",
+DlgReplaceReplAllBtn	: "Asenda kÃµik",
+DlgReplaceWordChk		: "Otsi terviklike sÃµnu",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lÃµigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",
+PasteErrorCopy	: "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",
+
+PasteAsText		: "Kleebi tavalise tekstina",
+PasteFromWord	: "Kleebi Wordist",
+
+DlgPasteMsg2	: "Palun kleebi jÃ¤rgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejÃ¤rel <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Sinu veebisirvija turvaseadete tÃµttu, ei oma redaktor otsest ligipÃ¤Ã¤su lÃµikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.",
+DlgPasteIgnoreFont		: "Ignoreeri kirja definitsioone",
+DlgPasteRemoveStyles	: "Eemalda stiilide definitsioonid",
+
+// Color Picker
+ColorAutomatic	: "Automaatne",
+ColorMoreColors	: "Rohkem vÃ¤rve...",
+
+// Document Properties
+DocProps		: "Dokumendi omadused",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankru omadused",
+DlgAnchorName		: "Ankru nimi",
+DlgAnchorErrorName	: "Palun sisest ankru nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Puudub sÃµnastikust",
+DlgSpellChangeTo		: "Muuda",
+DlgSpellBtnIgnore		: "Ignoreeri",
+DlgSpellBtnIgnoreAll	: "Ignoreeri kÃµiki",
+DlgSpellBtnReplace		: "Asenda",
+DlgSpellBtnReplaceAll	: "Asenda kÃµik",
+DlgSpellBtnUndo			: "VÃµta tagasi",
+DlgSpellNoSuggestions	: "- Soovitused puuduvad -",
+DlgSpellProgress		: "Toimub Ãµigekirja kontroll...",
+DlgSpellNoMispell		: "Ã•igekirja kontroll sooritatud: Ãµigekirjuvigu ei leitud",
+DlgSpellNoChanges		: "Ã•igekirja kontroll sooritatud: Ã¼htegi sÃµna ei muudetud",
+DlgSpellOneChange		: "Ã•igekirja kontroll sooritatud: Ã¼ks sÃµna muudeti",
+DlgSpellManyChanges		: "Ã•igekirja kontroll sooritatud: %1 sÃµna muudetud",
+
+IeSpellDownload			: "Ã•igekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (vÃ¤Ã¤rtus)",
+DlgButtonType		: "TÃ¼Ã¼p",
+DlgButtonTypeBtn	: "Nupp",
+DlgButtonTypeSbm	: "Saada",
+DlgButtonTypeRst	: "LÃ¤htesta",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nimi",
+DlgCheckboxValue	: "VÃ¤Ã¤rtus",
+DlgCheckboxSelected	: "Valitud",
+
+// Form Dialog
+DlgFormName		: "Nimi",
+DlgFormAction	: "Toiming",
+DlgFormMethod	: "Meetod",
+
+// Select Field Dialog
+DlgSelectName		: "Nimi",
+DlgSelectValue		: "VÃ¤Ã¤rtus",
+DlgSelectSize		: "Suurus",
+DlgSelectLines		: "ridu",
+DlgSelectChkMulti	: "VÃµimalda mitu valikut",
+DlgSelectOpAvail	: "VÃµimalikud valikud",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "VÃ¤Ã¤rtus",
+DlgSelectBtnAdd		: "Lisa",
+DlgSelectBtnModify	: "Muuda",
+DlgSelectBtnUp		: "Ãœles",
+DlgSelectBtnDown	: "Alla",
+DlgSelectBtnSetValue : "Sea valitud olekuna",
+DlgSelectBtnDelete	: "Kustuta",
+
+// Textarea Dialog
+DlgTextareaName	: "Nimi",
+DlgTextareaCols	: "Veerge",
+DlgTextareaRows	: "Ridu",
+
+// Text Field Dialog
+DlgTextName			: "Nimi",
+DlgTextValue		: "VÃ¤Ã¤rtus",
+DlgTextCharWidth	: "Laius (tÃ¤hemÃ¤rkides)",
+DlgTextMaxChars		: "Maksimaalselt tÃ¤hemÃ¤rke",
+DlgTextType			: "TÃ¼Ã¼p",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Parool",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nimi",
+DlgHiddenValue	: "VÃ¤Ã¤rtus",
+
+// Bulleted List Dialog
+BulletedListProp	: "TÃ¤pitud loetelu omadused",
+NumberedListProp	: "Nummerdatud loetelu omadused",
+DlgLstStart			: "Alusta",
+DlgLstType			: "TÃ¼Ã¼p",
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Ketas",
+DlgLstTypeSquare	: "Ruut",
+DlgLstTypeNumbers	: "Numbrid (1, 2, 3)",
+DlgLstTypeLCase		: "VÃ¤iketÃ¤hed (a, b, c)",
+DlgLstTypeUCase		: "SuurtÃ¤hed (A, B, C)",
+DlgLstTypeSRoman	: "VÃ¤iksed Rooma numbrid (i, ii, iii)",
+DlgLstTypeLRoman	: "Suured Rooma numbrid (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ãœldine",
+DlgDocBackTab		: "Taust",
+DlgDocColorsTab		: "VÃ¤rvid ja veerised",
+DlgDocMetaTab		: "Meta andmed",
+
+DlgDocPageTitle		: "LehekÃ¼lje tiitel",
+DlgDocLangDir		: "Kirja suund",
+DlgDocLangDirLTR	: "Vasakult paremale (LTR)",
+DlgDocLangDirRTL	: "Paremalt vasakule (RTL)",
+DlgDocLangCode		: "Keele kood",
+DlgDocCharSet		: "MÃ¤rgistiku kodeering",
+DlgDocCharSetCE		: "Kesk-Euroopa",
+DlgDocCharSetCT		: "Hiina traditsiooniline (Big5)",
+DlgDocCharSetCR		: "Kirillisa",
+DlgDocCharSetGR		: "Kreeka",
+DlgDocCharSetJP		: "Jaapani",
+DlgDocCharSetKR		: "Korea",
+DlgDocCharSetTR		: "TÃ¼rgi",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "LÃ¤Ã¤ne-Euroopa",
+DlgDocCharSetOther	: "ÃœlejÃ¤Ã¤nud mÃ¤rgistike kodeeringud",
+
+DlgDocDocType		: "Dokumendi tÃ¼Ã¼ppÃ¤is",
+DlgDocDocTypeOther	: "Teised dokumendi tÃ¼Ã¼ppÃ¤ised",
+DlgDocIncXHTML		: "Arva kaasa XHTML deklaratsioonid",
+DlgDocBgColor		: "TaustavÃ¤rv",
+DlgDocBgImage		: "Taustapildi URL",
+DlgDocBgNoScroll	: "Mittekeritav tagataust",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "KÃ¼lastatud link",
+DlgDocCActive		: "Aktiivne link",
+DlgDocMargins		: "LehekÃ¼lje Ã¤Ã¤rised",
+DlgDocMaTop			: "Ãœlaserv",
+DlgDocMaLeft		: "Vasakserv",
+DlgDocMaRight		: "Paremserv",
+DlgDocMaBottom		: "Alaserv",
+DlgDocMeIndex		: "Dokumendi vÃµtmesÃµnad (eraldatud komadega)",
+DlgDocMeDescr		: "Dokumendi kirjeldus",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "AutoriÃµigus",
+DlgDocPreview		: "Eelvaade",
+
+// Templates Dialog
+Templates			: "Å abloon",
+DlgTemplatesTitle	: "Sisu Å¡abloonid",
+DlgTemplatesSelMsg	: "Palun vali Å¡abloon, et avada see redaktoris<br />(praegune sisu lÃ¤heb kaotsi):",
+DlgTemplatesLoading	: "Laen Å¡abloonide nimekirja. Palun oota...",
+DlgTemplatesNoTpl	: "(Ãœhtegi Å¡ablooni ei ole defineeritud)",
+DlgTemplatesReplace	: "Asenda tegelik sisu",
+
+// About Dialog
+DlgAboutAboutTab	: "Teave",
+DlgAboutBrowserInfoTab	: "Veebisirvija info",
+DlgAboutLicenseTab	: "Litsents",
+DlgAboutVersion		: "versioon",
+DlgAboutInfo		: "TÃ¤psema info saamiseks mine"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/nl.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Dutch language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Menubalk inklappen",
+ToolbarExpand		: "Menubalk uitklappen",
+
+// Toolbar Items and Context Menu
+Save				: "Opslaan",
+NewPage				: "Nieuwe pagina",
+Preview				: "Voorbeeld",
+Cut					: "Knippen",
+Copy				: "KopiÃ«ren",
+Paste				: "Plakken",
+PasteText			: "Plakken als platte tekst",
+PasteWord			: "Plakken als Word-gegevens",
+Print				: "Printen",
+SelectAll			: "Alles selecteren",
+RemoveFormat		: "Opmaak verwijderen",
+InsertLinkLbl		: "Link",
+InsertLink			: "Link invoegen/wijzigen",
+RemoveLink			: "Link verwijderen",
+Anchor				: "Interne link",
+AnchorDelete		: "Anker verwijderen",
+InsertImageLbl		: "Afbeelding",
+InsertImage			: "Afbeelding invoegen/wijzigen",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash invoegen/wijzigen",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Tabel invoegen/wijzigen",
+InsertLineLbl		: "Lijn",
+InsertLine			: "Horizontale lijn invoegen",
+InsertSpecialCharLbl: "Speciale tekens",
+InsertSpecialChar	: "Speciaal teken invoegen",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley invoegen",
+About				: "Over FCKeditor",
+Bold				: "Vet",
+Italic				: "Schuingedrukt",
+Underline			: "Onderstreept",
+StrikeThrough		: "Doorhalen",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Links uitlijnen",
+CenterJustify		: "Centreren",
+RightJustify		: "Rechts uitlijnen",
+BlockJustify		: "Uitvullen",
+DecreaseIndent		: "Inspringen verkleinen",
+IncreaseIndent		: "Inspringen vergroten",
+Blockquote			: "Citaatblok",
+Undo				: "Ongedaan maken",
+Redo				: "Opnieuw uitvoeren",
+NumberedListLbl		: "Genummerde lijst",
+NumberedList		: "Genummerde lijst invoegen/verwijderen",
+BulletedListLbl		: "Opsomming",
+BulletedList		: "Opsomming invoegen/verwijderen",
+ShowTableBorders	: "Randen tabel weergeven",
+ShowDetails			: "Details weergeven",
+Style				: "Stijl",
+FontFormat			: "Opmaak",
+Font				: "Lettertype",
+FontSize			: "Grootte",
+TextColor			: "Tekstkleur",
+BGColor				: "Achtergrondkleur",
+Source				: "Code",
+Find				: "Zoeken",
+Replace				: "Vervangen",
+SpellCheck			: "Spellingscontrole",
+UniversalKeyboard	: "Universeel toetsenbord",
+PageBreakLbl		: "Pagina-einde",
+PageBreak			: "Pagina-einde invoegen",
+
+Form			: "Formulier",
+Checkbox		: "Aanvinkvakje",
+RadioButton		: "Selectievakje",
+TextField		: "Tekstveld",
+Textarea		: "Tekstvak",
+HiddenField		: "Verborgen veld",
+Button			: "Knop",
+SelectionField	: "Selectieveld",
+ImageButton		: "Afbeeldingsknop",
+
+FitWindow		: "De editor maximaliseren",
+ShowBlocks		: "Toon blokken",
+
+// Context Menu
+EditLink			: "Link wijzigen",
+CellCM				: "Cel",
+RowCM				: "Rij",
+ColumnCM			: "Kolom",
+InsertRowAfter		: "Voeg rij in achter",
+InsertRowBefore		: "Voeg rij in voor",
+DeleteRows			: "Rijen verwijderen",
+InsertColumnAfter	: "Voeg kolom in achter",
+InsertColumnBefore	: "Voeg kolom in voor",
+DeleteColumns		: "Kolommen verwijderen",
+InsertCellAfter		: "Voeg cel in achter",
+InsertCellBefore	: "Voeg cel in voor",
+DeleteCells			: "Cellen verwijderen",
+MergeCells			: "Cellen samenvoegen",
+MergeRight			: "Voeg samen naar rechts",
+MergeDown			: "Voeg samen naar beneden",
+HorizontalSplitCell	: "Splits cellen horizontaal",
+VerticalSplitCell	: "Splits cellen verticaal",
+TableDelete			: "Tabel verwijderen",
+CellProperties		: "Eigenschappen cel",
+TableProperties		: "Eigenschappen tabel",
+ImageProperties		: "Eigenschappen afbeelding",
+FlashProperties		: "Eigenschappen Flash",
+
+AnchorProp			: "Eigenschappen interne link",
+ButtonProp			: "Eigenschappen knop",
+CheckboxProp		: "Eigenschappen aanvinkvakje",
+HiddenFieldProp		: "Eigenschappen verborgen veld",
+RadioButtonProp		: "Eigenschappen selectievakje",
+ImageButtonProp		: "Eigenschappen afbeeldingsknop",
+TextFieldProp		: "Eigenschappen tekstveld",
+SelectionFieldProp	: "Eigenschappen selectieveld",
+TextareaProp		: "Eigenschappen tekstvak",
+FormProp			: "Eigenschappen formulier",
+
+FontFormats			: "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Bezig met verwerken XHTML. Even geduld aub...",
+Done				: "Klaar",
+PasteWordConfirm	: "De tekst die je plakte lijkt gekopieerd uit te zijn Word. Wil je de tekst opschonen voordat deze geplakt wordt?",
+NotCompatiblePaste	: "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder op te schonen?",
+UnknownToolbarItem	: "Onbekend item op menubalk \"%1\"",
+UnknownCommand		: "Onbekende opdrachtnaam: \"%1\"",
+NotImplemented		: "Opdracht niet geÃ¯mplementeerd.",
+UnknownToolbarSet	: "Menubalk \"%1\" bestaat niet.",
+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.",
+BrowseServerBlocked : "De bestandsbrowser kon niet geopend worden. Zorg ervoor dat pop-up-blokkeerders uit staan.",
+DialogBlocked		: "Kan het dialoogvenster niet weergeven. Zorg ervoor dat pop-up-blokkeerders uit staan.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuleren",
+DlgBtnClose			: "Afsluiten",
+DlgBtnBrowseServer	: "Bladeren op server",
+DlgAdvancedTag		: "Geavanceerd",
+DlgOpOther			: "<Anders>",
+DlgInfoTab			: "Informatie",
+DlgAlertUrl			: "Geef URL op",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<niet ingevuld>",
+DlgGenId			: "Kenmerk",
+DlgGenLangDir		: "Schrijfrichting",
+DlgGenLangDirLtr	: "Links naar rechts (LTR)",
+DlgGenLangDirRtl	: "Rechts naar links (RTL)",
+DlgGenLangCode		: "Taalcode",
+DlgGenAccessKey		: "Toegangstoets",
+DlgGenName			: "Naam",
+DlgGenTabIndex		: "Tabvolgorde",
+DlgGenLongDescr		: "Lange URL-omschrijving",
+DlgGenClass			: "Stylesheet-klassen",
+DlgGenTitle			: "Aanbevolen titel",
+DlgGenContType		: "Aanbevolen content-type",
+DlgGenLinkCharset	: "Karakterset van gelinkte bron",
+DlgGenStyle			: "Stijl",
+
+// Image Dialog
+DlgImgTitle			: "Eigenschappen afbeelding",
+DlgImgInfoTab		: "Informatie afbeelding",
+DlgImgBtnUpload		: "Naar server verzenden",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternatieve tekst",
+DlgImgWidth			: "Breedte",
+DlgImgHeight		: "Hoogte",
+DlgImgLockRatio		: "Afmetingen vergrendelen",
+DlgBtnResetSize		: "Afmetingen resetten",
+DlgImgBorder		: "Rand",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Uitlijning",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Absoluut-onder",
+DlgImgAlignAbsMiddle: "Absoluut-midden",
+DlgImgAlignBaseline	: "Basislijn",
+DlgImgAlignBottom	: "Beneden",
+DlgImgAlignMiddle	: "Midden",
+DlgImgAlignRight	: "Rechts",
+DlgImgAlignTextTop	: "Boven tekst",
+DlgImgAlignTop		: "Boven",
+DlgImgPreview		: "Voorbeeld",
+DlgImgAlertUrl		: "Geef de URL van de afbeelding",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Eigenschappen Flash",
+DlgFlashChkPlay		: "Automatisch afspelen",
+DlgFlashChkLoop		: "Herhalen",
+DlgFlashChkMenu		: "Flashmenu\'s inschakelen",
+DlgFlashScale		: "Schaal",
+DlgFlashScaleAll	: "Alles tonen",
+DlgFlashScaleNoBorder	: "Geen rand",
+DlgFlashScaleFit	: "Precies passend",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Linkomschrijving",
+DlgLnkTargetTab		: "Doel",
+
+DlgLnkType			: "Linktype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Interne link in pagina",
+DlgLnkTypeEMail		: "E-mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<anders>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Kies een interne link",
+DlgLnkAnchorByName	: "Op naam interne link",
+DlgLnkAnchorById	: "Op kenmerk interne link",
+DlgLnkNoAnchors		: "(Geen interne links in document gevonden)",
+DlgLnkEMail			: "E-mailadres",
+DlgLnkEMailSubject	: "Onderwerp bericht",
+DlgLnkEMailBody		: "Inhoud bericht",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Naar de server versturen",
+
+DlgLnkTarget		: "Doel",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "Nieuw venster (_blank)",
+DlgLnkTargetParent	: "Origineel venster (_parent)",
+DlgLnkTargetSelf	: "Zelfde venster (_self)",
+DlgLnkTargetTop		: "Hele venster (_top)",
+DlgLnkTargetFrameName	: "Naam doelframe",
+DlgLnkPopWinName	: "Naam popupvenster",
+DlgLnkPopWinFeat	: "Instellingen popupvenster",
+DlgLnkPopResize		: "Grootte wijzigen",
+DlgLnkPopLocation	: "Locatiemenu",
+DlgLnkPopMenu		: "Menubalk",
+DlgLnkPopScroll		: "Schuifbalken",
+DlgLnkPopStatus		: "Statusbalk",
+DlgLnkPopToolbar	: "Menubalk",
+DlgLnkPopFullScrn	: "Volledig scherm (IE)",
+DlgLnkPopDependent	: "Afhankelijk (Netscape)",
+DlgLnkPopWidth		: "Breedte",
+DlgLnkPopHeight		: "Hoogte",
+DlgLnkPopLeft		: "Positie links",
+DlgLnkPopTop		: "Positie boven",
+
+DlnLnkMsgNoUrl		: "Geef de link van de URL",
+DlnLnkMsgNoEMail	: "Geef een e-mailadres",
+DlnLnkMsgNoAnchor	: "Selecteer een interne link",
+DlnLnkMsgInvPopName	: "De naam van de popup moet met een alfa-numerieke waarde beginnen, en mag geen spaties bevatten.",
+
+// Color Dialog
+DlgColorTitle		: "Selecteer kleur",
+DlgColorBtnClear	: "Opschonen",
+DlgColorHighlight	: "Accentueren",
+DlgColorSelected	: "Geselecteerd",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Smiley invoegen",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecteer speciaal teken",
+
+// Table Dialog
+DlgTableTitle		: "Eigenschappen tabel",
+DlgTableRows		: "Rijen",
+DlgTableColumns		: "Kolommen",
+DlgTableBorder		: "Breedte rand",
+DlgTableAlign		: "Uitlijning",
+DlgTableAlignNotSet	: "<Niet ingevoerd>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Centreren",
+DlgTableAlignRight	: "Rechts",
+DlgTableWidth		: "Breedte",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "Hoogte",
+DlgTableCellSpace	: "Afstand tussen cellen",
+DlgTableCellPad		: "Afstand vanaf rand cel",
+DlgTableCaption		: "Naam",
+DlgTableSummary		: "Samenvatting",
+
+// Table Cell Dialog
+DlgCellTitle		: "Eigenschappen cel",
+DlgCellWidth		: "Breedte",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "Hoogte",
+DlgCellWordWrap		: "Afbreken woorden",
+DlgCellWordWrapNotSet	: "<Niet ingevoerd>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nee",
+DlgCellHorAlign		: "Horizontale uitlijning",
+DlgCellHorAlignNotSet	: "<Niet ingevoerd>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Centreren",
+DlgCellHorAlignRight: "Rechts",
+DlgCellVerAlign		: "Verticale uitlijning",
+DlgCellVerAlignNotSet	: "<Niet ingevoerd>",
+DlgCellVerAlignTop	: "Boven",
+DlgCellVerAlignMiddle	: "Midden",
+DlgCellVerAlignBottom	: "Beneden",
+DlgCellVerAlignBaseline	: "Basislijn",
+DlgCellRowSpan		: "Overkoepeling rijen",
+DlgCellCollSpan		: "Overkoepeling kolommen",
+DlgCellBackColor	: "Achtergrondkleur",
+DlgCellBorderColor	: "Randkleur",
+DlgCellBtnSelect	: "Selecteren...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Zoeken en vervangen",
+
+// Find Dialog
+DlgFindTitle		: "Zoeken",
+DlgFindFindBtn		: "Zoeken",
+DlgFindNotFoundMsg	: "De opgegeven tekst is niet gevonden.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Vervangen",
+DlgReplaceFindLbl		: "Zoeken naar:",
+DlgReplaceReplaceLbl	: "Vervangen met:",
+DlgReplaceCaseChk		: "Hoofdlettergevoelig",
+DlgReplaceReplaceBtn	: "Vervangen",
+DlgReplaceReplAllBtn	: "Alles vervangen",
+DlgReplaceWordChk		: "Hele woord moet voorkomen",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.",
+PasteErrorCopy	: "De beveiligingsinstelling van de browser verhinderen het automatisch kopiÃ«ren. Gebruik de sneltoets Ctrl+C van het toetsenbord.",
+
+PasteAsText		: "Plakken als platte tekst",
+PasteFromWord	: "Plakken als Word-gegevens",
+
+DlgPasteMsg2	: "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<strong>Ctrl+V</strong>) en klik op <strong>OK</strong>.",
+DlgPasteSec		: "Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.",
+DlgPasteIgnoreFont		: "Negeer \"Font Face\"-definities",
+DlgPasteRemoveStyles	: "Verwijder \"Style\"-definities",
+
+// Color Picker
+ColorAutomatic	: "Automatisch",
+ColorMoreColors	: "Meer kleuren...",
+
+// Document Properties
+DocProps		: "Eigenschappen document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Eigenschappen interne link",
+DlgAnchorName		: "Naam interne link",
+DlgAnchorErrorName	: "Geef de naam van de interne link op",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Niet in het woordenboek",
+DlgSpellChangeTo		: "Wijzig in",
+DlgSpellBtnIgnore		: "Negeren",
+DlgSpellBtnIgnoreAll	: "Alles negeren",
+DlgSpellBtnReplace		: "Vervangen",
+DlgSpellBtnReplaceAll	: "Alles vervangen",
+DlgSpellBtnUndo			: "Ongedaan maken",
+DlgSpellNoSuggestions	: "-Geen suggesties-",
+DlgSpellProgress		: "Bezig met spellingscontrole...",
+DlgSpellNoMispell		: "Klaar met spellingscontrole: geen fouten gevonden",
+DlgSpellNoChanges		: "Klaar met spellingscontrole: geen woorden aangepast",
+DlgSpellOneChange		: "Klaar met spellingscontrole: Ã©Ã©n woord aangepast",
+DlgSpellManyChanges		: "Klaar met spellingscontrole: %1 woorden aangepast",
+
+IeSpellDownload			: "De spellingscontrole niet geÃ¯nstalleerd. Wil je deze nu downloaden?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (waarde)",
+DlgButtonType		: "Soort",
+DlgButtonTypeBtn	: "Knop",
+DlgButtonTypeSbm	: "Versturen",
+DlgButtonTypeRst	: "Leegmaken",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naam",
+DlgCheckboxValue	: "Waarde",
+DlgCheckboxSelected	: "Geselecteerd",
+
+// Form Dialog
+DlgFormName		: "Naam",
+DlgFormAction	: "Actie",
+DlgFormMethod	: "Methode",
+
+// Select Field Dialog
+DlgSelectName		: "Naam",
+DlgSelectValue		: "Waarde",
+DlgSelectSize		: "Grootte",
+DlgSelectLines		: "Regels",
+DlgSelectChkMulti	: "Gecombineerde selecties toestaan",
+DlgSelectOpAvail	: "Beschikbare opties",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Waarde",
+DlgSelectBtnAdd		: "Toevoegen",
+DlgSelectBtnModify	: "Wijzigen",
+DlgSelectBtnUp		: "Omhoog",
+DlgSelectBtnDown	: "Omlaag",
+DlgSelectBtnSetValue : "Als geselecteerde waarde instellen",
+DlgSelectBtnDelete	: "Verwijderen",
+
+// Textarea Dialog
+DlgTextareaName	: "Naam",
+DlgTextareaCols	: "Kolommen",
+DlgTextareaRows	: "Rijen",
+
+// Text Field Dialog
+DlgTextName			: "Naam",
+DlgTextValue		: "Waarde",
+DlgTextCharWidth	: "Breedte (tekens)",
+DlgTextMaxChars		: "Maximum aantal tekens",
+DlgTextType			: "Soort",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Wachtwoord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naam",
+DlgHiddenValue	: "Waarde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Eigenschappen opsommingslijst",
+NumberedListProp	: "Eigenschappen genummerde opsommingslijst",
+DlgLstStart			: "Start",
+DlgLstType			: "Soort",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Schijf",
+DlgLstTypeSquare	: "Vierkant",
+DlgLstTypeNumbers	: "Nummers (1, 2, 3)",
+DlgLstTypeLCase		: "Kleine letters (a, b, c)",
+DlgLstTypeUCase		: "Hoofdletters (A, B, C)",
+DlgLstTypeSRoman	: "Klein Romeins (i, ii, iii)",
+DlgLstTypeLRoman	: "Groot Romeins (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Algemeen",
+DlgDocBackTab		: "Achtergrond",
+DlgDocColorsTab		: "Kleuring en marges",
+DlgDocMetaTab		: "META-data",
+
+DlgDocPageTitle		: "Paginatitel",
+DlgDocLangDir		: "Schrijfrichting",
+DlgDocLangDirLTR	: "Links naar rechts",
+DlgDocLangDirRTL	: "Rechts naar links",
+DlgDocLangCode		: "Taalcode",
+DlgDocCharSet		: "Karakterset-encoding",
+DlgDocCharSetCE		: "Centraal Europees",
+DlgDocCharSetCT		: "Traditioneel Chinees (Big5)",
+DlgDocCharSetCR		: "Cyriliaans",
+DlgDocCharSetGR		: "Grieks",
+DlgDocCharSetJP		: "Japans",
+DlgDocCharSetKR		: "Koreaans",
+DlgDocCharSetTR		: "Turks",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "West europees",
+DlgDocCharSetOther	: "Andere karakterset-encoding",
+
+DlgDocDocType		: "Opschrift documentsoort",
+DlgDocDocTypeOther	: "Ander opschrift documentsoort",
+DlgDocIncXHTML		: "XHTML-declaraties meenemen",
+DlgDocBgColor		: "Achtergrondkleur",
+DlgDocBgImage		: "URL achtergrondplaatje",
+DlgDocBgNoScroll	: "Vaste achtergrond",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Bezochte link",
+DlgDocCActive		: "Active link",
+DlgDocMargins		: "Afstandsinstellingen document",
+DlgDocMaTop			: "Boven",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Rechts",
+DlgDocMaBottom		: "Onder",
+DlgDocMeIndex		: "Trefwoorden betreffende document (kommagescheiden)",
+DlgDocMeDescr		: "Beschrijving document",
+DlgDocMeAuthor		: "Auteur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Voorbeeld",
+
+// Templates Dialog
+Templates			: "Sjablonen",
+DlgTemplatesTitle	: "Inhoud sjabonen",
+DlgTemplatesSelMsg	: "Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",
+DlgTemplatesLoading	: "Bezig met laden sjabonen. Even geduld alstublieft...",
+DlgTemplatesNoTpl	: "(Geen sjablonen gedefinieerd)",
+DlgTemplatesReplace	: "Vervang de huidige inhoud",
+
+// About Dialog
+DlgAboutAboutTab	: "Over",
+DlgAboutBrowserInfoTab	: "Browserinformatie",
+DlgAboutLicenseTab	: "Licentie",
+DlgAboutVersion		: "Versie",
+DlgAboutInfo		: "Voor meer informatie ga naar "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hr.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hr.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Croatian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Smanji trake s alatima",
+ToolbarExpand		: "ProÅ¡iri trake s alatima",
+
+// Toolbar Items and Context Menu
+Save				: "Snimi",
+NewPage				: "Nova stranica",
+Preview				: "Pregledaj",
+Cut					: "IzreÅ¾i",
+Copy				: "Kopiraj",
+Paste				: "Zalijepi",
+PasteText			: "Zalijepi kao Äisti tekst",
+PasteWord			: "Zalijepi iz Worda",
+Print				: "IspiÅ¡i",
+SelectAll			: "Odaberi sve",
+RemoveFormat		: "Ukloni formatiranje",
+InsertLinkLbl		: "Link",
+InsertLink			: "Ubaci/promijeni link",
+RemoveLink			: "Ukloni link",
+Anchor				: "Ubaci/promijeni sidro",
+AnchorDelete		: "Ukloni sidro",
+InsertImageLbl		: "Slika",
+InsertImage			: "Ubaci/promijeni sliku",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ubaci/promijeni Flash",
+InsertTableLbl		: "Tablica",
+InsertTable			: "Ubaci/promijeni tablicu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Ubaci vodoravnu liniju",
+InsertSpecialCharLbl: "Posebni karakteri",
+InsertSpecialChar	: "Ubaci posebne znakove",
+InsertSmileyLbl		: "SmjeÅ¡ko",
+InsertSmiley		: "Ubaci smjeÅ¡ka",
+About				: "O FCKeditoru",
+Bold				: "Podebljaj",
+Italic				: "Ukosi",
+Underline			: "Potcrtano",
+StrikeThrough		: "Precrtano",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Lijevo poravnanje",
+CenterJustify		: "SrediÅ¡nje poravnanje",
+RightJustify		: "Desno poravnanje",
+BlockJustify		: "Blok poravnanje",
+DecreaseIndent		: "Pomakni ulijevo",
+IncreaseIndent		: "Pomakni udesno",
+Blockquote			: "Blockquote",
+Undo				: "PoniÅ¡ti",
+Redo				: "Ponovi",
+NumberedListLbl		: "BrojÄana lista",
+NumberedList		: "Ubaci/ukloni brojÄanu listu",
+BulletedListLbl		: "ObiÄna lista",
+BulletedList		: "Ubaci/ukloni obiÄnu listu",
+ShowTableBorders	: "PrikaÅ¾i okvir tablice",
+ShowDetails			: "PrikaÅ¾i detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "VeliÄina",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "KÃ´d",
+Find				: "PronaÄ‘i",
+Replace				: "Zamijeni",
+SpellCheck			: "Provjeri pravopis",
+UniversalKeyboard	: "Univerzalna tipkovnica",
+PageBreakLbl		: "Prijelom stranice",
+PageBreak			: "Ubaci prijelom stranice",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "PoveÄ‡aj veliÄinu editora",
+ShowBlocks		: "PrikaÅ¾i blokove",
+
+// Context Menu
+EditLink			: "Promijeni link",
+CellCM				: "Ä†elija",
+RowCM				: "Red",
+ColumnCM			: "Kolona",
+InsertRowAfter		: "Ubaci red poslije",
+InsertRowBefore		: "Ubaci red prije",
+DeleteRows			: "IzbriÅ¡i redove",
+InsertColumnAfter	: "Ubaci kolonu poslije",
+InsertColumnBefore	: "Ubaci kolonu prije",
+DeleteColumns		: "IzbriÅ¡i kolone",
+InsertCellAfter		: "Ubaci Ä‡eliju poslije",
+InsertCellBefore	: "Ubaci Ä‡eliju prije",
+DeleteCells			: "IzbriÅ¡i Ä‡elije",
+MergeCells			: "Spoji Ä‡elije",
+MergeRight			: "Spoji desno",
+MergeDown			: "Spoji dolje",
+HorizontalSplitCell	: "Podijeli Ä‡eliju vodoravno",
+VerticalSplitCell	: "Podijeli Ä‡eliju okomito",
+TableDelete			: "IzbriÅ¡i tablicu",
+CellProperties		: "Svojstva Ä‡elije",
+TableProperties		: "Svojstva tablice",
+ImageProperties		: "Svojstva slike",
+FlashProperties		: "Flash svojstva",
+
+AnchorProp			: "Svojstva sidra",
+ButtonProp			: "Image Button svojstva",
+CheckboxProp		: "Checkbox svojstva",
+HiddenFieldProp		: "Hidden Field svojstva",
+RadioButtonProp		: "Radio Button svojstva",
+ImageButtonProp		: "Image Button svojstva",
+TextFieldProp		: "Text Field svojstva",
+SelectionFieldProp	: "Selection svojstva",
+TextareaProp		: "Textarea svojstva",
+FormProp			: "Form svojstva",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "ObraÄ‘ujem XHTML. Molimo priÄekajte...",
+Done				: "ZavrÅ¡io",
+PasteWordConfirm	: "Tekst koji Å¾elite zalijepiti Äini se da je kopiran iz Worda. Å½elite li prije oÄistiti tekst?",
+NotCompatiblePaste	: "Ova naredba je dostupna samo u Internet Exploreru 5.5 ili novijem. Å½elite li nastaviti bez ÄiÅ¡Ä‡enja?",
+UnknownToolbarItem	: "Nepoznati Älan trake s alatima \"%1\"",
+UnknownCommand		: "Nepoznata naredba \"%1\"",
+NotImplemented		: "Naredba nije implementirana",
+UnknownToolbarSet	: "Traka s alatima \"%1\" ne postoji",
+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.",
+BrowseServerBlocked : "PretraivaÄ nije moguÄ‡e otvoriti. Provjerite da li je ukljuÄeno blokiranje pop-up prozora.",
+DialogBlocked		: "Nije moguÄ‡e otvoriti novi prozor. Provjerite da li je ukljuÄeno blokiranje pop-up prozora.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "PoniÅ¡ti",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "PretraÅ¾i server",
+DlgAdvancedTag		: "Napredno",
+DlgOpOther			: "<Drugo>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Molimo unesite URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije postavljeno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smjer jezika",
+DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na lijevo (RTL)",
+DlgGenLangCode		: "KÃ´d jezika",
+DlgGenAccessKey		: "Pristupna tipka",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "DugaÄki opis URL",
+DlgGenClass			: "Stylesheet klase",
+DlgGenTitle			: "Advisory naslov",
+DlgGenContType		: "Advisory vrsta sadrÅ¾aja",
+DlgGenLinkCharset	: "Kodna stranica povezanih resursa",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Svojstva slika",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "PoÅ¡alji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "PoÅ¡alji",
+DlgImgAlt			: "Alternativni tekst",
+DlgImgWidth			: "Å irina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "ZakljuÄaj odnos",
+DlgBtnResetSize		: "ObriÅ¡i veliÄinu",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Poravnaj",
+DlgImgAlignLeft		: "Lijevo",
+DlgImgAlignAbsBottom: "Abs dolje",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dolje",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Pregledaj",
+DlgImgAlertUrl		: "Unesite URL slike",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash svojstva",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Ponavljaj",
+DlgFlashChkMenu		: "OmoguÄ‡i Flash izbornik",
+DlgFlashScale		: "Omjer",
+DlgFlashScaleAll	: "PrikaÅ¾i sve",
+DlgFlashScaleNoBorder	: "Bez okvira",
+DlgFlashScaleFit	: "ToÄna veliÄina",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Meta",
+
+DlgLnkType			: "Link vrsta",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Odaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id elementa",
+DlgLnkNoAnchors		: "(Nema dostupnih sidra)",
+DlgLnkEMail			: "E-Mail adresa",
+DlgLnkEMailSubject	: "Naslov",
+DlgLnkEMailBody		: "SadrÅ¾aj poruke",
+DlgLnkUpload		: "PoÅ¡alji",
+DlgLnkBtnUpload		: "PoÅ¡alji na server",
+
+DlgLnkTarget		: "Meta",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "VrÅ¡ni prozor (_top)",
+DlgLnkTargetFrameName	: "Ime ciljnog okvira",
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "MoguÄ‡nosti popup prozora",
+DlgLnkPopResize		: "Promjenljive veliÄine",
+DlgLnkPopLocation	: "Traka za lokaciju",
+DlgLnkPopMenu		: "Izborna traka",
+DlgLnkPopScroll		: "Scroll traka",
+DlgLnkPopStatus		: "Statusna traka",
+DlgLnkPopToolbar	: "Traka s alatima",
+DlgLnkPopFullScrn	: "Cijeli ekran (IE)",
+DlgLnkPopDependent	: "Ovisno (Netscape)",
+DlgLnkPopWidth		: "Å irina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Lijeva pozicija",
+DlgLnkPopTop		: "Gornja pozicija",
+
+DlnLnkMsgNoUrl		: "Molimo upiÅ¡ite URL link",
+DlnLnkMsgNoEMail	: "Molimo upiÅ¡ite e-mail adresu",
+DlnLnkMsgNoAnchor	: "Molimo odaberite sidro",
+DlnLnkMsgInvPopName	: "Ime popup prozora mora poÄeti sa slovom i ne smije sadrÅ¾avati razmake",
+
+// Color Dialog
+DlgColorTitle		: "Odaberite boju",
+DlgColorBtnClear	: "ObriÅ¡i",
+DlgColorHighlight	: "Osvijetli",
+DlgColorSelected	: "Odaberi",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ubaci smjeÅ¡ka",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Odaberite posebni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Svojstva tablice",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "VeliÄina okvira",
+DlgTableAlign		: "Poravnanje",
+DlgTableAlignNotSet	: "<nije postavljeno>",
+DlgTableAlignLeft	: "Lijevo",
+DlgTableAlignCenter	: "SrediÅ¡nje",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Å irina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "postotaka",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Prostornost Ä‡elija",
+DlgTableCellPad		: "Razmak Ä‡elija",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "SaÅ¾etak",
+
+// Table Cell Dialog
+DlgCellTitle		: "Svojstva Ä‡elije",
+DlgCellWidth		: "Å irina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "postotaka",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravno poravnanje",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
+DlgCellHorAlignLeft	: "Lijevo",
+DlgCellHorAlignCenter	: "SrediÅ¡nje",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Okomito poravnanje",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
+DlgCellVerAlignTop	: "Gornje",
+DlgCellVerAlignMiddle	: "SredniÅ¡nje",
+DlgCellVerAlignBottom	: "Donje",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje redova",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Odaberi...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "PronaÄ‘i i zamijeni",
+
+// Find Dialog
+DlgFindTitle		: "PronaÄ‘i",
+DlgFindFindBtn		: "PronaÄ‘i",
+DlgFindNotFoundMsg	: "TraÅ¾eni tekst nije pronaÄ‘en.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamijeni",
+DlgReplaceFindLbl		: "PronaÄ‘i:",
+DlgReplaceReplaceLbl	: "Zamijeni s:",
+DlgReplaceCaseChk		: "Usporedi mala/velika slova",
+DlgReplaceReplaceBtn	: "Zamijeni",
+DlgReplaceReplAllBtn	: "Zamijeni sve",
+DlgReplaceWordChk		: "Usporedi cijele rijeÄi",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Sigurnosne postavke VaÅ¡eg pretraÅ¾ivaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).",
+PasteErrorCopy	: "Sigurnosne postavke VaÅ¡eg pretraÅ¾ivaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).",
+
+PasteAsText		: "Zalijepi kao Äisti tekst",
+PasteFromWord	: "Zalijepi iz Worda",
+
+DlgPasteMsg2	: "Molimo zaljepite unutar doljnjeg okvira koristeÄ‡i tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Zbog sigurnosnih postavki VaÅ¡eg pretraÅ¾ivaÄa, editor nema direktan pristup VaÅ¡em meÄ‘uspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.",
+DlgPasteIgnoreFont		: "Zanemari definiciju vrste fonta",
+DlgPasteRemoveStyles	: "Ukloni definicije stilova",
+
+// Color Picker
+ColorAutomatic	: "Automatski",
+ColorMoreColors	: "ViÅ¡e boja...",
+
+// Document Properties
+DocProps		: "Svojstva dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Svojstva sidra",
+DlgAnchorName		: "Ime sidra",
+DlgAnchorErrorName	: "Molimo unesite ime sidra",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nije u rjeÄniku",
+DlgSpellChangeTo		: "Promijeni u",
+DlgSpellBtnIgnore		: "Zanemari",
+DlgSpellBtnIgnoreAll	: "Zanemari sve",
+DlgSpellBtnReplace		: "Zamijeni",
+DlgSpellBtnReplaceAll	: "Zamijeni sve",
+DlgSpellBtnUndo			: "Vrati",
+DlgSpellNoSuggestions	: "-Nema preporuke-",
+DlgSpellProgress		: "Provjera u tijeku...",
+DlgSpellNoMispell		: "Provjera zavrÅ¡ena: Nema greÅ¡aka",
+DlgSpellNoChanges		: "Provjera zavrÅ¡ena: Nije napravljena promjena",
+DlgSpellOneChange		: "Provjera zavrÅ¡ena: Jedna rijeÄ promjenjena",
+DlgSpellManyChanges		: "Provjera zavrÅ¡ena: Promijenjeno %1 rijeÄi",
+
+IeSpellDownload			: "Provjera pravopisa nije instalirana. Å½elite li skinuti provjeru pravopisa?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (vrijednost)",
+DlgButtonType		: "Vrsta",
+DlgButtonTypeBtn	: "Gumb",
+DlgButtonTypeSbm	: "PoÅ¡alji",
+DlgButtonTypeRst	: "PoniÅ¡ti",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ime",
+DlgCheckboxValue	: "Vrijednost",
+DlgCheckboxSelected	: "Odabrano",
+
+// Form Dialog
+DlgFormName		: "Ime",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Ime",
+DlgSelectValue		: "Vrijednost",
+DlgSelectSize		: "VeliÄina",
+DlgSelectLines		: "linija",
+DlgSelectChkMulti	: "Dozvoli viÅ¡estruki odabir",
+DlgSelectOpAvail	: "Dostupne opcije",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Vrijednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Promijeni",
+DlgSelectBtnUp		: "Gore",
+DlgSelectBtnDown	: "Dolje",
+DlgSelectBtnSetValue : "Postavi kao odabranu vrijednost",
+DlgSelectBtnDelete	: "ObriÅ¡i",
+
+// Textarea Dialog
+DlgTextareaName	: "Ime",
+DlgTextareaCols	: "Kolona",
+DlgTextareaRows	: "Redova",
+
+// Text Field Dialog
+DlgTextName			: "Ime",
+DlgTextValue		: "Vrijednost",
+DlgTextCharWidth	: "Å irina",
+DlgTextMaxChars		: "NajviÅ¡e karaktera",
+DlgTextType			: "Vrsta",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Å ifra",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ime",
+DlgHiddenValue	: "Vrijednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Svojstva liste",
+NumberedListProp	: "Svojstva brojÄane liste",
+DlgLstStart			: "PoÄetak",
+DlgLstType			: "Vrsta",
+DlgLstTypeCircle	: "Krug",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Kvadrat",
+DlgLstTypeNumbers	: "Brojevi (1, 2, 3)",
+DlgLstTypeLCase		: "Mala slova (a, b, c)",
+DlgLstTypeUCase		: "Velika slova (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske brojke (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske brojke (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "OpÄ‡enito",
+DlgDocBackTab		: "Pozadina",
+DlgDocColorsTab		: "Boje i margine",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Naslov stranice",
+DlgDocLangDir		: "Smjer jezika",
+DlgDocLangDirLTR	: "S lijeva na desno",
+DlgDocLangDirRTL	: "S desna na lijevo",
+DlgDocLangCode		: "KÃ´d jezika",
+DlgDocCharSet		: "Enkodiranje znakova",
+DlgDocCharSetCE		: "SrediÅ¡nja Europa",
+DlgDocCharSetCT		: "Tradicionalna kineska (Big5)",
+DlgDocCharSetCR		: "Ä†irilica",
+DlgDocCharSetGR		: "GrÄka",
+DlgDocCharSetJP		: "Japanska",
+DlgDocCharSetKR		: "Koreanska",
+DlgDocCharSetTR		: "Turska",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Zapadna Europa",
+DlgDocCharSetOther	: "Ostalo enkodiranje znakova",
+
+DlgDocDocType		: "Zaglavlje vrste dokumenta",
+DlgDocDocTypeOther	: "Ostalo zaglavlje vrste dokumenta",
+DlgDocIncXHTML		: "Ubaci XHTML deklaracije",
+DlgDocBgColor		: "Boja pozadine",
+DlgDocBgImage		: "URL slike pozadine",
+DlgDocBgNoScroll	: "Pozadine se ne pomiÄe",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "PosjeÄ‡eni link",
+DlgDocCActive		: "Aktivni link",
+DlgDocMargins		: "Margine stranice",
+DlgDocMaTop			: "Vrh",
+DlgDocMaLeft		: "Lijevo",
+DlgDocMaRight		: "Desno",
+DlgDocMaBottom		: "Dolje",
+DlgDocMeIndex		: "KljuÄne rijeÄi dokumenta (odvojene zarezom)",
+DlgDocMeDescr		: "Opis dokumenta",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorska prava",
+DlgDocPreview		: "Pregledaj",
+
+// Templates Dialog
+Templates			: "PredloÅ¡ci",
+DlgTemplatesTitle	: "PredloÅ¡ci sadrÅ¾aja",
+DlgTemplatesSelMsg	: "Molimo odaberite predloÅ¾ak koji Å¾elite otvoriti<br>(stvarni sadrÅ¾aj Ä‡e biti izgubljen):",
+DlgTemplatesLoading	: "UÄitavam listu predloÅ¾aka. Molimo priÄekajte...",
+DlgTemplatesNoTpl	: "(Nema definiranih predloÅ¾aka)",
+DlgTemplatesReplace	: "Zamijeni trenutne sadrÅ¾aje",
+
+// About Dialog
+DlgAboutAboutTab	: "O FCKEditoru",
+DlgAboutBrowserInfoTab	: "Podaci o pretraÅ¾ivaÄu",
+DlgAboutLicenseTab	: "Licenca",
+DlgAboutVersion		: "inaÄica",
+DlgAboutInfo		: "Za viÅ¡e informacija posjetite"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/mn.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/mn.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/mn.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Mongolian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ð‘Ð°Ð³Ð°Ð¶Ð½Ñ‹ Ñ…ÑÑÑÐ³ ÑÐ²Ð´ÑÑ…",
+ToolbarExpand		: "Ð‘Ð°Ð³Ð°Ð¶Ð½Ñ‹ Ñ…ÑÑÑÐ³ Ó©Ñ€Ð³Ó©Ñ‚Ð³Ó©Ñ…",
+
+// Toolbar Items and Context Menu
+Save				: "Ð¥Ð°Ð´Ð³Ð°Ð»Ð°Ñ…",
+NewPage				: "Ð¨Ð¸Ð½Ñ Ñ…ÑƒÑƒÐ´Ð°Ñ",
+Preview				: "Ð£Ñ€Ð¸Ð´Ñ‡Ð»Ð°Ð½ Ñ…Ð°Ñ€Ð°Ñ…",
+Cut					: "Ð¥Ð°Ð¹Ñ‡Ð»Ð°Ñ…",
+Copy				: "Ð¥ÑƒÑƒÐ»Ð°Ñ…",
+Paste				: "Ð‘ÑƒÑƒÐ»Ð³Ð°Ñ…",
+PasteText			: "plain text-ÑÑÑ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
+PasteWord			: "Word-Ð¾Ð¾Ñ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
+Print				: "Ð¥ÑÐ²Ð»ÑÑ…",
+SelectAll			: "Ð‘Ò¯Ð³Ð´Ð¸Ð¹Ð³ Ð½ÑŒ ÑÐ¾Ð½Ð³Ð¾Ñ…",
+RemoveFormat		: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ð°Ð²Ñ‡ Ñ…Ð°ÑÑ…",
+InsertLinkLbl		: "Ð›Ð¸Ð½Ðº",
+InsertLink			: "Ð›Ð¸Ð½Ðº ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/Ð—Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+RemoveLink			: "Ð›Ð¸Ð½Ðº Ð°Ð²Ñ‡ Ñ…Ð°ÑÑ…",
+Anchor				: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/Ð—Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+AnchorDelete		: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐÐ²Ð°Ñ…",
+InsertImageLbl		: "Ð—ÑƒÑ€Ð°Ð³",
+InsertImage			: "Ð—ÑƒÑ€Ð°Ð³ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/Ð—Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+InsertFlashLbl		: "Ð¤Ð»Ð°Ñˆ",
+InsertFlash			: "Ð¤Ð»Ð°Ñˆ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/Ð—Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+InsertTableLbl		: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚",
+InsertTable			: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/Ð—Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+InsertLineLbl		: "Ð—ÑƒÑ€Ð°Ð°Ñ",
+InsertLine			: "Ð¥Ó©Ð½Ð´Ð»Ó©Ð½ Ð·ÑƒÑ€Ð°Ð°Ñ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+InsertSpecialCharLbl: "ÐžÐ½Ñ†Ð³Ð¾Ð¹ Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚",
+InsertSpecialChar	: "ÐžÐ½Ñ†Ð³Ð¾Ð¹ Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+InsertSmileyLbl		: "Ð¢Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð»Ñ‚",
+InsertSmiley		: "Ð¢Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð»Ñ‚ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+About				: "FCKeditor-Ð½ Ñ‚ÑƒÑ…Ð°Ð¹",
+Bold				: "Ð¢Ð¾Ð´ Ð±Ò¯Ð´Ò¯Ò¯Ð½",
+Italic				: "ÐÐ°Ð»ÑƒÑƒ",
+Underline			: "Ð”Ð¾Ð¾Ð³ÑƒÑƒÑ€ Ð½ÑŒ Ð·ÑƒÑ€Ð°Ð°ÑÑ‚Ð°Ð¹ Ð±Ð¾Ð»Ð³Ð¾Ñ…",
+StrikeThrough		: "Ð”ÑƒÐ½Ð´ÑƒÑƒÑ€ Ð½ÑŒ Ð·ÑƒÑ€Ð°Ð°ÑÑ‚Ð°Ð¹ Ð±Ð¾Ð»Ð³Ð¾Ñ…",
+Subscript			: "Ð¡ÑƒÑƒÑ€ÑŒ Ð±Ð¾Ð»Ð³Ð¾Ñ…",
+Superscript			: "Ð—ÑÑ€ÑÐ³ Ð±Ð¾Ð»Ð³Ð¾Ñ…",
+LeftJustify			: "Ð—Ò¯Ò¯Ð½ Ñ‚Ð°Ð»Ð´ Ð±Ð°Ð¹Ñ€Ð»ÑƒÑƒÐ»Ð°Ñ…",
+CenterJustify		: "Ð¢Ó©Ð²Ð´ Ð±Ð°Ð¹Ñ€Ð»ÑƒÑƒÐ»Ð°Ñ…",
+RightJustify		: "Ð‘Ð°Ñ€ÑƒÑƒÐ½ Ñ‚Ð°Ð»Ð´ Ð±Ð°Ð¹Ñ€Ð»ÑƒÑƒÐ»Ð°Ñ…",
+BlockJustify		: "Ð‘Ð»Ð¾Ðº Ñ…ÑÐ»Ð±ÑÑ€ÑÑÑ€ Ð±Ð°Ð¹Ñ€Ð»ÑƒÑƒÐ»Ð°Ñ…",
+DecreaseIndent		: "Ð”Ð¾Ð³Ð¾Ð» Ð¼Ó©Ñ€ Ð½ÑÐ¼ÑÑ…",
+IncreaseIndent		: "Ð”Ð¾Ð³Ð¾Ð» Ð¼Ó©Ñ€ Ñ…Ð°ÑÐ°Ñ…",
+Blockquote			: "Ð¥Ð°Ð¹Ñ€Ñ†Ð°Ð³Ð»Ð°Ñ…",
+Undo				: "Ð¥Ò¯Ñ‡Ð¸Ð½Ð³Ò¯Ð¹ Ð±Ð¾Ð»Ð³Ð¾Ñ…",
+Redo				: "Ó¨Ð¼Ð½Ó©Ñ… Ò¯Ð¹Ð»Ð´Ð»ÑÑ ÑÑÑ€Ð³ÑÑÑ…",
+NumberedListLbl		: "Ð”ÑƒÐ³Ð°Ð°Ñ€Ð»Ð°Ð³Ð´ÑÐ°Ð½ Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‚",
+NumberedList		: "Ð”ÑƒÐ³Ð°Ð°Ñ€Ð»Ð°Ð³Ð´ÑÐ°Ð½ Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‚ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/ÐÐ²Ð°Ñ…",
+BulletedListLbl		: "Ð¦ÑÐ³Ñ‚ÑÐ¹ Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‚",
+BulletedList		: "Ð¦ÑÐ³Ñ‚ÑÐ¹ Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‚ ÐžÑ€ÑƒÑƒÐ»Ð°Ñ…/ÐÐ²Ð°Ñ…",
+ShowTableBorders	: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚Ð¸Ð¹Ð½ Ñ…Ò¯Ñ€ÑÑÐ³ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…",
+ShowDetails			: "Ð”ÐµÑ‚Ð°Ð»Ñ‡Ð»Ð°Ð½ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…",
+Style				: "Ð—Ð°Ð³Ð²Ð°Ñ€",
+FontFormat			: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚",
+Font				: "Ð¤Ð¾Ð½Ñ‚",
+FontSize			: "Ð¥ÑÐ¼Ð¶ÑÑ",
+TextColor			: "Ð¤Ð¾Ð½Ñ‚Ð½Ñ‹ Ó©Ð½Ð³Ó©",
+BGColor				: "Ð¤Ð¾Ð½Ð½Ñ‹ Ó©Ð½Ð³Ó©",
+Source				: "ÐšÐ¾Ð´",
+Find				: "Ð¥Ð°Ð¹Ñ…",
+Replace				: "Ð¡Ð¾Ð»Ð¸Ñ…",
+SpellCheck			: "Ò®Ð³Ð¸Ð¹Ð½ Ð´Ò¯Ñ€ÑÑ… ÑˆÐ°Ð»Ð³Ð°Ñ…",
+UniversalKeyboard	: "Ð£Ð½Ð¸Ð²Ð°Ñ€ÑÐ°Ð» Ð³Ð°Ñ€",
+PageBreakLbl		: "Ð¥ÑƒÑƒÐ´Ð°Ñ Ñ‚ÑƒÑÐ³Ð°Ð°Ñ€Ð»Ð°Ñ…",
+PageBreak			: "Ð¥ÑƒÑƒÐ´Ð°Ñ Ñ‚ÑƒÑÐ³Ð°Ð°Ñ€Ð»Ð°Ð³Ñ‡ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+
+Form			: "Ð¤Ð¾Ñ€Ð¼",
+Checkbox		: "Ð§ÐµÐºÐ±Ð¾ÐºÑ",
+RadioButton		: "Ð Ð°Ð´Ð¸Ð¾ Ñ‚Ð¾Ð²Ñ‡",
+TextField		: "Ð¢ÐµÑ…Ñ‚ Ñ‚Ð°Ð»Ð±Ð°Ñ€",
+Textarea		: "Ð¢ÐµÑ…Ñ‚ Ð¾Ñ€Ñ‡Ð¸Ð½",
+HiddenField		: "ÐÑƒÑƒÑ† Ñ‚Ð°Ð»Ð±Ð°Ñ€",
+Button			: "Ð¢Ð¾Ð²Ñ‡",
+SelectionField	: "Ð¡Ð¾Ð½Ð³Ð¾Ð³Ñ‡ Ñ‚Ð°Ð»Ð±Ð°Ñ€",
+ImageButton		: "Ð—ÑƒÑ€Ð°Ð³Ñ‚Ð°Ð¹ Ñ‚Ð¾Ð²Ñ‡",
+
+FitWindow		: "editor-Ð½ Ñ…ÑÐ¼Ð¶ÑÑÐ³ Ñ‚Ð¾Ð¼Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+ShowBlocks		: "Block-ÑƒÑƒÐ´Ñ‹Ð³ Ò¯Ð·Ò¯Ò¯Ð»ÑÑ…",
+
+// Context Menu
+EditLink			: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°ÑÐ²Ð°Ñ€Ð»Ð°Ñ…",
+CellCM				: "ÐÒ¯Ñ…/Ð·Ð°Ð¹",
+RowCM				: "ÐœÓ©Ñ€",
+ColumnCM			: "Ð‘Ð°Ð³Ð°Ð½Ð°",
+InsertRowAfter		: "ÐœÓ©Ñ€ Ð´Ð°Ñ€Ð°Ð° Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+InsertRowBefore		: "ÐœÓ©Ñ€ Ó©Ð¼Ð½Ó© Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+DeleteRows			: "ÐœÓ©Ñ€ ÑƒÑÑ‚Ð³Ð°Ñ…",
+InsertColumnAfter	: "Ð‘Ð°Ð³Ð°Ð½Ð° Ð´Ð°Ñ€Ð°Ð° Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+InsertColumnBefore	: "Ð‘Ð°Ð³Ð°Ð½Ð° Ó©Ð¼Ð½Ó© Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+DeleteColumns		: "Ð‘Ð°Ð³Ð°Ð½Ð° ÑƒÑÑ‚Ð³Ð°Ñ…",
+InsertCellAfter		: "ÐÒ¯Ñ…/Ð·Ð°Ð¹ Ð´Ð°Ñ€Ð°Ð° Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+InsertCellBefore	: "ÐÒ¯Ñ…/Ð·Ð°Ð¹ Ó©Ð¼Ð½Ó© Ð½ÑŒ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+DeleteCells			: "ÐÒ¯Ñ… ÑƒÑÑ‚Ð³Ð°Ñ…",
+MergeCells			: "ÐÒ¯Ñ… Ð½ÑÐ³Ñ‚ÑÑ…",
+MergeRight			: "Ð‘Ð°Ñ€ÑƒÑƒÐ½ Ñ‚Ð¸Ð¹Ñˆ Ð½ÑÐ³Ñ‚Ð³ÑÑ…",
+MergeDown			: "Ð”Ð¾Ð¾Ñˆ Ð½ÑÐ³Ñ‚Ð³ÑÑ…",
+HorizontalSplitCell	: "ÐÒ¯Ñ…/Ð·Ð°Ð¹Ð³ Ð±Ð¾ÑÐ¾Ð¾Ð³Ð¾Ð¾Ñ€ Ð½ÑŒ Ñ‚ÑƒÑÐ³Ð°Ð°Ñ€Ð»Ð°Ñ…",
+VerticalSplitCell	: "ÐÒ¯Ñ…/Ð·Ð°Ð¹Ð³ Ñ…Ó©Ð½Ð´Ð»Ó©Ð½Ð³Ó©Ó©Ñ€ Ð½ÑŒ Ñ‚ÑƒÑÐ³Ð°Ð°Ñ€Ð»Ð°Ñ…",
+TableDelete			: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚ ÑƒÑÑ‚Ð³Ð°Ñ…",
+CellProperties		: "ÐÒ¯Ñ…/Ð·Ð°Ð¹ Ð·Ð°Ð¹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+TableProperties		: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚",
+ImageProperties		: "Ð—ÑƒÑ€Ð°Ð³",
+FlashProperties		: "Ð¤Ð»Ð°Ñˆ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+
+AnchorProp			: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+ButtonProp			: "Ð¢Ð¾Ð²Ñ‡Ð½Ñ‹ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+CheckboxProp		: "Ð§ÐµÐºÐ±Ð¾ÐºÑÐ½Ñ‹ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+HiddenFieldProp		: "ÐÑƒÑƒÑ† Ñ‚Ð°Ð»Ð±Ð°Ñ€Ñ‹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+RadioButtonProp		: "Ð Ð°Ð´Ð¸Ð¾ Ñ‚Ð¾Ð²Ñ‡Ð½Ñ‹ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+ImageButtonProp		: "Ð—ÑƒÑ€Ð³Ð°Ð½ Ñ‚Ð¾Ð²Ñ‡Ð½Ñ‹ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+TextFieldProp		: "Ð¢ÐµÐºÑÑ‚ Ñ‚Ð°Ð»Ð±Ð°Ñ€Ñ‹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+SelectionFieldProp	: "Ð¡Ð¾Ð³Ð¾Ð³Ñ‡ Ñ‚Ð°Ð»Ð±Ð°Ñ€Ñ‹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+TextareaProp		: "Ð¢ÐµÐºÑÑ‚ Ð¾Ñ€Ñ‡Ð½Ñ‹ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+FormProp			: "Ð¤Ð¾Ñ€Ð¼ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+
+FontFormats			: "Ð¥ÑÐ²Ð¸Ð¹Ð½;Formatted;Ð¥Ð°ÑÐ³;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML Ò¯Ð¹Ð» ÑÐ²Ñ† ÑÐ²Ð°Ð³Ð´Ð°Ð¶ Ð±Ð°Ð¹Ð½Ð°. Ð¥Ò¯Ð»ÑÑÐ½Ñ Ò¯Ò¯...",
+Done				: "Ð¥Ð¸Ð¹Ñ…",
+PasteWordConfirm	: "Word-Ð¾Ð¾Ñ Ñ…ÑƒÑƒÐ»ÑÐ°Ð½ Ñ‚ÐµÐºÑÑ‚ÑÑ ÑÐ°Ð½Ð°Ð¶ Ð±Ð°Ð¹Ð³Ð°Ð°Ð³ Ð½ÑŒ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…Ñ‹Ð³ Ñ‚Ð° Ñ…Ò¯ÑÑ‡ Ð±Ð°Ð¹Ð½Ð° ÑƒÑƒ. Ð¢Ð° Ñ‚ÐµÐºÑÑ‚-ÑÑ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…Ñ‹Ð½ Ó©Ð¼Ð½Ó© Ñ†ÑÐ²ÑÑ€Ð»ÑÑ… Ò¯Ò¯?",
+NotCompatiblePaste	: "Ð­Ð½Ñ ÐºÐ¾Ð¼Ð¼Ð°Ð½Ð´ Internet Explorer-Ñ‹Ð½ 5.5 Ð±ÑƒÑŽÑƒ Ñ‚Ò¯Ò¯Ð½ÑÑÑ Ð´ÑÑÑˆ Ñ…ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€Ñ‚ Ð¸Ð´Ð²ÑÑ…ÑˆÐ¸Ð½Ñ. Ð¢Ð° Ñ†ÑÐ²ÑÑ€Ð»ÑÑ…Ð³Ò¯Ð¹Ð³ÑÑÑ€ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…Ñ‹Ð³ Ñ…Ò¯ÑÑ‡ Ð±Ð°Ð¹Ð½Ð°?",
+UnknownToolbarItem	: "Ð‘Ð°Ð³Ð°Ð¶Ð½Ñ‹ Ñ…ÑÑÐ³Ð¸Ð¹Ð½ \"%1\" item Ð¼ÑÐ´ÑÐ³Ð´ÑÑ…Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°",
+UnknownCommand		: "\"%1\" ÐºÐ¾Ð¼Ð¼Ð°Ð½Ð´ Ð½ÑÑ€ Ð¼ÑÐ´Ð°Ð³Ð´ÑÑ…Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°",
+NotImplemented		: "Ð—Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ð³Ð´Ó©Ñ…Ð³Ò¯Ð¹ ÐºÐ¾Ð¼Ð¼Ð°Ð½Ð´",
+UnknownToolbarSet	: "Ð‘Ð°Ð³Ð°Ð¶Ð½Ñ‹ Ñ…ÑÑÑÐ³Ñ‚ \"%1\" Ð¾Ð½Ð¾Ð¾Ñ…, Ò¯Ò¯ÑÑÑÐ³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°",
+NoActiveX			: "Ð¢Ð°Ð½Ñ‹ Ò¯Ð·Ò¯Ò¯Ð»ÑÐ³Ñ‡/browser-Ð½ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð»Ñ‚Ñ‹Ð½ Ñ‚Ð¾Ñ…Ð¸Ñ€Ð³Ð¾Ð¾ editor-Ð½ Ð·Ð°Ñ€Ð¸Ð¼ Ð±Ð¾Ð»Ð¾Ð¼Ð¶Ð¸Ð¹Ð³ Ñ…ÑÐ·Ð³Ð°Ð°Ñ€Ð»Ð°Ð¶ Ð±Ð°Ð¹Ð½Ð°. Ð¢Ð° \"Run ActiveX controls Ð±Ð° plug-ins\" ÑÐ¾Ð½Ð³Ð¾Ð»Ñ‹Ð³ Ð¸Ð´Ð²ÑÑ…Ð¸Ñ‚ÑÐ¹ Ð±Ð¾Ð»Ð³Ð¾.",
+BrowseServerBlocked : "ÐÓ©Ó©Ñ† Ò¯Ð·Ò¯Ò¯Ð³Ñ‡ Ð½ÑÑÐ¶ Ñ‡Ð°Ð´ÑÐ°Ð½Ð³Ò¯Ð¹. Ð‘Ò¯Ñ… popup blocker-Ð³ disabled Ð±Ð¾Ð»Ð³Ð¾Ð½Ð¾ ÑƒÑƒ.",
+DialogBlocked		: "Ð¥Ð°Ñ€Ð¸Ð»Ñ†Ð°Ñ… Ñ†Ð¾Ð½Ñ…Ð¾Ð½Ð´ ÑÐ½Ð¸Ð¹Ð³ Ð½ÑÑÑ…ÑÐ´ Ð±Ð¾Ð»Ð¾Ð¼Ð¶Ð³Ò¯Ð¹ ÑÑ. Ð‘Ò¯Ñ… popup blocker-Ð³ disabled Ð±Ð¾Ð»Ð³Ð¾Ð½Ð¾ ÑƒÑƒ.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Ð‘Ð¾Ð»Ð¸Ñ…",
+DlgBtnClose			: "Ð¥Ð°Ð°Ñ…",
+DlgBtnBrowseServer	: "Ð¡ÐµÑ€Ð²ÐµÑ€ Ñ…Ð°Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+DlgAdvancedTag		: "ÐÑÐ¼ÑÐ»Ñ‚",
+DlgOpOther			: "<Ð‘ÑƒÑÐ°Ð´>",
+DlgInfoTab			: "ÐœÑÐ´ÑÑÐ»ÑÐ»",
+DlgAlertUrl			: "URL Ð¾Ñ€ÑƒÑƒÐ»Ð½Ð° ÑƒÑƒ",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ÐžÐ½Ð¾Ð¾Ñ…Ð³Ò¯Ð¹>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Ð¥ÑÐ»Ð½Ð¸Ð¹ Ñ‡Ð¸Ð³Ð»ÑÐ»",
+DlgGenLangDirLtr	: "Ð—Ò¯Ò¯Ð½ÑÑÑ Ð±Ð°Ñ€ÑƒÑƒÐ½ (LTR)",
+DlgGenLangDirRtl	: "Ð‘Ð°Ñ€ÑƒÑƒÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)",
+DlgGenLangCode		: "Ð¥ÑÐ»Ð½Ð¸Ð¹ ÐºÐ¾Ð´",
+DlgGenAccessKey		: "Ð¥Ð¾Ð»Ð±Ð¾Ñ… Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€",
+DlgGenName			: "ÐÑÑ€",
+DlgGenTabIndex		: "Tab Ð¸Ð½Ð´ÐµÐºÑ",
+DlgGenLongDescr		: "URL-Ñ‹Ð½ Ñ‚Ð°Ð¹Ð»Ð±Ð°Ñ€",
+DlgGenClass			: "Stylesheet ÐºÐ»Ð°ÑÑÑƒÑƒÐ´",
+DlgGenTitle			: "Ð—Ó©Ð²Ð»Ó©Ð»Ð´Ó©Ñ… Ð³Ð°Ñ€Ñ‡Ð¸Ð³",
+DlgGenContType		: "Ð—Ó©Ð²Ð»Ó©Ð»Ð´Ó©Ñ… Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ Ð°Ð³ÑƒÑƒÐ»Ð³Ð°",
+DlgGenLinkCharset	: "Ð¢ÑÐ¼Ð´ÑÐ³Ñ‚ Ð¾Ð½Ð¾Ð¾Ñ… Ð½Ó©Ó©Ñ†Ó©Ð´ Ñ…Ð¾Ð»Ð±Ð¾Ð³Ð´ÑÐ¾Ð½",
+DlgGenStyle			: "Ð—Ð°Ð³Ð²Ð°Ñ€",
+
+// Image Dialog
+DlgImgTitle			: "Ð—ÑƒÑ€Ð°Ð³",
+DlgImgInfoTab		: "Ð—ÑƒÑ€Ð°Ð³Ð½Ñ‹ Ð¼ÑÐ´ÑÑÐ»ÑÐ»",
+DlgImgBtnUpload		: "Ò®Ò¯Ð½Ð¸Ð¹Ð³ ÑÐµÑ€Ð²ÑÑ€Ñ€Ò¯Ò¯ Ð¸Ð»Ð³ÑÑ",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ð¥ÑƒÑƒÐ»Ð°Ñ…",
+DlgImgAlt			: "Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ€ Ñ‚ÐµÐºÑÑ‚",
+DlgImgWidth			: "Ó¨Ñ€Ð³Ó©Ð½",
+DlgImgHeight		: "Ó¨Ð½Ð´Ó©Ñ€",
+DlgImgLockRatio		: "Ð Ð°Ð´Ð¸Ð¾ Ñ‚Ò¯Ð³Ð¶Ð¸Ñ…",
+DlgBtnResetSize		: "Ñ…ÑÐ¼Ð¶ÑÑ Ð´Ð°Ñ…Ð¸Ð½ Ð¾Ð½Ð¾Ð¾Ñ…",
+DlgImgBorder		: "Ð¥Ò¯Ñ€ÑÑ",
+DlgImgHSpace		: "Ð¥Ó©Ð½Ð´Ð»Ó©Ð½ Ð·Ð°Ð¹",
+DlgImgVSpace		: "Ð‘Ð¾ÑÐ¾Ð¾ Ð·Ð°Ð¹",
+DlgImgAlign			: "Ð­Ð³Ð½ÑÑ",
+DlgImgAlignLeft		: "Ð—Ò¯Ò¯Ð½",
+DlgImgAlignAbsBottom: "Abs Ð´Ð¾Ð¾Ð´ Ñ‚Ð°Ð»Ð´",
+DlgImgAlignAbsMiddle: "Abs Ð”ÑƒÐ½Ð´ Ñ‚Ð°Ð»Ð´",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Ð”Ð¾Ð¾Ð´ Ñ‚Ð°Ð»Ð´",
+DlgImgAlignMiddle	: "Ð”ÑƒÐ½Ð´ Ñ‚Ð°Ð»Ð´",
+DlgImgAlignRight	: "Ð‘Ð°Ñ€ÑƒÑƒÐ½",
+DlgImgAlignTextTop	: "Ð¢ÐµÐºÑÑ‚ Ð´ÑÑÑ€",
+DlgImgAlignTop		: "Ð”ÑÑÐ´ Ñ‚Ð°Ð»Ð´",
+DlgImgPreview		: "Ð£Ñ€Ð¸Ð´Ñ‡Ð»Ð°Ð½ Ñ…Ð°Ñ€Ð°Ñ…",
+DlgImgAlertUrl		: "Ð—ÑƒÑ€Ð°Ð³Ð½Ñ‹ URL-Ñ‹Ð½ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ ÑÐ¾Ð½Ð³Ð¾Ð½Ð¾ ÑƒÑƒ",
+DlgImgLinkTab		: "Ð›Ð¸Ð½Ðº",
+
+// Flash Dialog
+DlgFlashTitle		: "Ð¤Ð»Ð°Ñˆ  ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+DlgFlashChkPlay		: "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð°Ð°Ñ€ Ñ‚Ð¾Ð³Ð»Ð¾Ñ…",
+DlgFlashChkLoop		: "Ð”Ð°Ð²Ñ‚Ð°Ñ…",
+DlgFlashChkMenu		: "Ð¤Ð»Ð°Ñˆ Ñ†ÑÑ Ð¸Ð´Ð²ÑÑ…Ð¶Ò¯Ò¯Ð»ÑÑ…",
+DlgFlashScale		: "Ó¨Ñ€Ð³Ó©Ð³Ñ‚Ð³Ó©Ñ…",
+DlgFlashScaleAll	: "Ð‘Ò¯Ð³Ð´Ð¸Ð¹Ð³ Ñ…Ð°Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+DlgFlashScaleNoBorder	: "Ð¥Ò¯Ñ€ÑÑÐ³Ò¯Ð¹",
+DlgFlashScaleFit	: "Ð¯Ð³ Ñ‚Ð°Ð°Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ð›Ð¸Ð½Ðº",
+DlgLnkInfoTab		: "Ð›Ð¸Ð½ÐºÐ¸Ð¹Ð½ Ð¼ÑÐ´ÑÑÐ»ÑÐ»",
+DlgLnkTargetTab		: "Ð‘Ð°Ð¹Ñ€Ð»Ð°Ð»",
+
+DlgLnkType			: "Ð›Ð¸Ð½ÐºÐ¸Ð¹Ð½ Ñ‚Ó©Ñ€Ó©Ð»",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ð­Ð½Ñ Ñ…ÑƒÑƒÐ´Ð°ÑÐ°Ð½Ð´Ð°Ñ… Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "ÐŸÑ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»",
+DlgLnkProtoOther	: "<Ð±ÑƒÑÐ°Ð´>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑÐ¾Ð½Ð³Ð¾Ñ…",
+DlgLnkAnchorByName	: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾ÑÑ‹Ð½ Ð½ÑÑ€ÑÑÑ€",
+DlgLnkAnchorById	: "Ð­Ð»ÐµÐ¼ÑÐ½Ñ‚ Id-Ð³Ð°Ð°Ñ€",
+DlgLnkNoAnchors		: "(Ð‘Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð¸Ð³ Ñ…Ð¾Ð»Ð±Ð¾Ð¾ÑÐ³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°)",
+DlgLnkEMail			: "E-Mail Ð¥Ð°ÑÐ³",
+DlgLnkEMailSubject	: "Message Ð³Ð°Ñ€Ñ‡Ð¸Ð³",
+DlgLnkEMailBody		: "Message-Ð¸Ð¹Ð½ Ð°Ð³ÑƒÑƒÐ»Ð³Ð°",
+DlgLnkUpload		: "Ð¥ÑƒÑƒÐ»Ð°Ñ…",
+DlgLnkBtnUpload		: "Ò®Ò¯Ð½Ð¸Ð¹Ð³ ÑÐµÑ€Ð²ÐµÑ€Ñ€Ò¯Ò¯ Ð¸Ð»Ð³ÑÑ",
+
+DlgLnkTarget		: "Ð‘Ð°Ð¹Ñ€Ð»Ð°Ð»",
+DlgLnkTargetFrame	: "<ÐÐ³ÑƒÑƒÐ»Ð°Ñ… Ñ…Ò¯Ñ€ÑÑ>",
+DlgLnkTargetPopup	: "<popup Ñ†Ð¾Ð½Ñ…>",
+DlgLnkTargetBlank	: "Ð¨Ð¸Ð½Ñ Ñ†Ð¾Ð½Ñ… (_blank)",
+DlgLnkTargetParent	: "Ð­Ñ†ÑÐ³ Ñ†Ð¾Ð½Ñ… (_parent)",
+DlgLnkTargetSelf	: "Ð¢Ó©ÑÑ‚ÑÐ¹ Ñ†Ð¾Ð½Ñ… (_self)",
+DlgLnkTargetTop		: "Ð¥Ð°Ð¼Ð³Ð¸Ð¹Ð½ Ñ‚Ò¯Ñ€Ò¯Ò¯Ð½ Ð±Ð°Ð¹Ñ… Ñ†Ð¾Ð½Ñ… (_top)",
+DlgLnkTargetFrameName	: "ÐžÑ‡Ð¸Ñ… Ñ„Ñ€ÐµÐ¼Ñ‹Ð½ Ð½ÑÑ€",
+DlgLnkPopWinName	: "Popup Ñ†Ð¾Ð½Ñ…Ð½Ñ‹ Ð½ÑÑ€",
+DlgLnkPopWinFeat	: "Popup Ñ†Ð¾Ð½Ñ…Ð½Ñ‹ Ð¾Ð½Ñ†Ð»Ð¾Ð³",
+DlgLnkPopResize		: "Ð¥ÑÐ¼Ð¶ÑÑ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ñ…",
+DlgLnkPopLocation	: "Location Ñ…ÑÑÑÐ³",
+DlgLnkPopMenu		: "MeÐ½ÑŽ Ñ…ÑÑÑÐ³",
+DlgLnkPopScroll		: "Ð¡ÐºÑ€Ð¾Ð» Ñ…ÑÑÑÐ³Ò¯Ò¯Ð´",
+DlgLnkPopStatus		: "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ…ÑÑÑÐ³",
+DlgLnkPopToolbar	: "Ð‘Ð°Ð³Ð°Ð¶Ð½Ñ‹ Ñ…ÑÑÑÐ³",
+DlgLnkPopFullScrn	: "Ð¦Ð¾Ð½Ñ… Ð´Ò¯Ò¯Ñ€Ð³ÑÑ… (IE)",
+DlgLnkPopDependent	: "Ð¥Ð°Ð¼Ð°Ð°Ñ‚Ð°Ð¹ (Netscape)",
+DlgLnkPopWidth		: "Ó¨Ñ€Ð³Ó©Ð½",
+DlgLnkPopHeight		: "Ó¨Ð½Ð´Ó©Ñ€",
+DlgLnkPopLeft		: "Ð—Ò¯Ò¯Ð½ Ð±Ð°Ð¹Ñ€Ð»Ð°Ð»",
+DlgLnkPopTop		: "Ð”ÑÑÐ´ Ð±Ð°Ð¹Ñ€Ð»Ð°Ð»",
+
+DlnLnkMsgNoUrl		: "Ð›Ð¸Ð½Ðº URL-ÑÑ Ñ‚Ó©Ñ€Ó©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯",
+DlnLnkMsgNoEMail	: "Ð•-mail Ñ…Ð°ÑÐ³Ð°Ð° Ñ‚Ó©Ñ€Ó©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯",
+DlnLnkMsgNoAnchor	: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾ÑÐ¾Ð¾ ÑÐ¾Ð½Ð³Ð¾Ð½Ð¾ ÑƒÑƒ",
+DlnLnkMsgInvPopName	: "popup Ð½ÑÑ€ Ð½ÑŒ Ò¯ÑÐ³ÑÐ½ Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚ÑÑÑ€ ÑÑ…ÑÐ»ÑÑÐ½ Ð±Ð°Ð¹Ñ… Ð±Ð° Ñ…Ð¾Ð¾ÑÐ¾Ð½ Ð·Ð°Ð¹ Ð°Ð³ÑƒÑƒÐ»Ð°Ð°Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ñ… Ñ‘ÑÑ‚Ð¾Ð¹.",
+
+// Color Dialog
+DlgColorTitle		: "Ó¨Ð½Ð³Ó© ÑÐ¾Ð½Ð³Ð¾Ñ…",
+DlgColorBtnClear	: "Ð¦ÑÐ²ÑÑ€Ð»ÑÑ…",
+DlgColorHighlight	: "Ó¨Ð½Ð³Ó©",
+DlgColorSelected	: "Ð¡Ð¾Ð½Ð³Ð¾Ð³Ð´ÑÐ¾Ð½",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ð¢Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð»Ñ‚ Ð¾Ñ€ÑƒÑƒÐ»Ð°Ñ…",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "ÐžÐ½Ñ†Ð³Ð¾Ð¹ Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚ ÑÐ¾Ð½Ð³Ð¾Ñ…",
+
+// Table Dialog
+DlgTableTitle		: "Ð¥Ò¯ÑÐ½ÑÐ³Ñ‚",
+DlgTableRows		: "ÐœÓ©Ñ€",
+DlgTableColumns		: "Ð‘Ð°Ð³Ð°Ð½Ð°",
+DlgTableBorder		: "Ð¥Ò¯Ñ€ÑÑÐ½Ð¸Ð¹ Ñ…ÑÐ¼Ð¶ÑÑ",
+DlgTableAlign		: "Ð­Ð³Ð½ÑÑ",
+DlgTableAlignNotSet	: "<ÐžÐ½Ð¾Ð¾Ñ…Ð³Ò¯Ð¹>",
+DlgTableAlignLeft	: "Ð—Ò¯Ò¯Ð½ Ñ‚Ð°Ð»Ð´",
+DlgTableAlignCenter	: "Ð¢Ó©Ð²Ð´",
+DlgTableAlignRight	: "Ð‘Ð°Ñ€ÑƒÑƒÐ½ Ñ‚Ð°Ð»Ð´",
+DlgTableWidth		: "Ó¨Ñ€Ð³Ó©Ð½",
+DlgTableWidthPx		: "Ñ†ÑÐ³",
+DlgTableWidthPc		: "Ñ…ÑƒÐ²ÑŒ",
+DlgTableHeight		: "Ó¨Ð½Ð´Ó©Ñ€",
+DlgTableCellSpace	: "ÐÒ¯Ñ… Ñ…Ð¾Ð¾Ñ€Ð¾Ð½Ð´Ñ‹Ð½ Ð·Ð°Ð¹ (spacing)",
+DlgTableCellPad		: "ÐÒ¯Ñ… Ð´Ð¾Ñ‚Ð¾Ñ€Ð»Ð¾Ñ…(padding)",
+DlgTableCaption		: "Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ€",
+DlgTableSummary		: "Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ€",
+
+// Table Cell Dialog
+DlgCellTitle		: "Ð¥Ð¾Ð¾ÑÐ¾Ð½ Ð·Ð°Ð¹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+DlgCellWidth		: "Ó¨Ñ€Ð³Ó©Ð½",
+DlgCellWidthPx		: "Ñ†ÑÐ³",
+DlgCellWidthPc		: "Ñ…ÑƒÐ²ÑŒ",
+DlgCellHeight		: "Ó¨Ð½Ð´Ó©Ñ€",
+DlgCellWordWrap		: "Ò®Ð³ Ñ‚Ð°ÑÐ»Ð°Ñ…",
+DlgCellWordWrapNotSet	: "<ÐžÐ½Ð¾Ð¾Ñ…Ð³Ò¯Ð¹>",
+DlgCellWordWrapYes	: "Ð¢Ð¸Ð¹Ð¼",
+DlgCellWordWrapNo	: "Ò®Ð³Ò¯Ð¹",
+DlgCellHorAlign		: "Ð‘Ð¾ÑÐ¾Ð¾ ÑÐ³Ð½ÑÑ",
+DlgCellHorAlignNotSet	: "<ÐžÐ½Ð¾Ð¾Ñ…Ð³Ò¯Ð¹>",
+DlgCellHorAlignLeft	: "Ð—Ò¯Ò¯Ð½",
+DlgCellHorAlignCenter	: "Ð¢Ó©Ð²",
+DlgCellHorAlignRight: "Ð‘Ð°Ñ€ÑƒÑƒÐ½",
+DlgCellVerAlign		: "Ð¥Ó©Ð½Ð´Ð»Ó©Ð½ ÑÐ³Ð½ÑÑ",
+DlgCellVerAlignNotSet	: "<ÐžÐ½Ð¾Ð¾Ñ…Ð³Ò¯Ð¹>",
+DlgCellVerAlignTop	: "Ð”ÑÑÐ´ Ñ‚Ð°Ð»",
+DlgCellVerAlignMiddle	: "Ð”ÑƒÐ½Ð´",
+DlgCellVerAlignBottom	: "Ð”Ð¾Ð¾Ð´ Ñ‚Ð°Ð»",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "ÐÐ¸Ð¹Ñ‚ Ð¼Ó©Ñ€ (span)",
+DlgCellCollSpan		: "ÐÐ¸Ð¹Ñ‚ Ð±Ð°Ð³Ð°Ð½Ð° (span)",
+DlgCellBackColor	: "Ð¤Ð¾Ð½Ð½Ñ‹ Ó©Ð½Ð³Ó©",
+DlgCellBorderColor	: "Ð¥Ò¯Ñ€ÑÑÐ½Ð¸Ð¹ Ó©Ð½Ð³Ó©",
+DlgCellBtnSelect	: "Ð¡Ð¾Ð½Ð³Ð¾...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Ð¥Ð°Ð¹ Ð¼Ó©Ð½ Ð”Ð°Ñ€Ð¶ Ð±Ð¸Ñ‡",
+
+// Find Dialog
+DlgFindTitle		: "Ð¥Ð°Ð¹Ñ…",
+DlgFindFindBtn		: "Ð¥Ð°Ð¹Ñ…",
+DlgFindNotFoundMsg	: "Ð¥Ð°Ð¹ÑÐ°Ð½ Ñ‚ÐµÐºÑÑ‚ Ð¾Ð»ÑÐ¾Ð½Ð³Ò¯Ð¹.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ð¡Ð¾Ð»Ð¸Ñ…",
+DlgReplaceFindLbl		: "Ð¥Ð°Ð¹Ñ… Ò¯Ð³/Ò¯ÑÑÐ³:",
+DlgReplaceReplaceLbl	: "Ð¡Ð¾Ð»Ð¸Ñ… Ò¯Ð³:",
+DlgReplaceCaseChk		: "Ð¢ÑÐ½Ñ†ÑÑ… Ñ‚Ó©Ð»Ó©Ð²",
+DlgReplaceReplaceBtn	: "Ð¡Ð¾Ð»Ð¸Ñ…",
+DlgReplaceReplAllBtn	: "Ð‘Ò¯Ð³Ð´Ð¸Ð¹Ð³ Ð½ÑŒ Ð¡Ð¾Ð»Ð¸Ñ…",
+DlgReplaceWordChk		: "Ð¢ÑÐ½Ñ†ÑÑ… Ð±Ò¯Ñ‚ÑÐ½ Ò¯Ð³",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Ð¢Ð°Ð½Ñ‹ browser-Ñ‹Ð½ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð»Ñ‚Ñ‹Ð½ Ñ‚Ð¾Ñ…Ð¸Ñ€Ð³Ð¾Ð¾ editor-Ð´ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð°Ð°Ñ€ Ñ…Ð°Ð¹Ñ‡Ð»Ð°Ñ… Ò¯Ð¹Ð»Ð´ÑÐ»Ð¸Ð¹Ð³ Ð·Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ñ…Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°. (Ctrl+X) Ñ‚Ð¾Ð²Ñ‡Ð½Ñ‹ Ñ…Ð¾ÑÐ»Ð¾Ð»Ñ‹Ð³ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð½Ð° ÑƒÑƒ.",
+PasteErrorCopy	: "Ð¢Ð°Ð½Ñ‹ browser-Ñ‹Ð½ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð»Ñ‚Ñ‹Ð½ Ñ‚Ð¾Ñ…Ð¸Ñ€Ð³Ð¾Ð¾ editor-Ð´ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð°Ð°Ñ€ Ñ…ÑƒÑƒÐ»Ð°Ñ… Ò¯Ð¹Ð»Ð´ÑÐ»Ð¸Ð¹Ð³ Ð·Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ñ…Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°. (Ctrl+C) Ñ‚Ð¾Ð²Ñ‡Ð½Ñ‹ Ñ…Ð¾ÑÐ»Ð¾Ð»Ñ‹Ð³ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð½Ð° ÑƒÑƒ.",
+
+PasteAsText		: "Plain Text-ÑÑÑ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
+PasteFromWord	: "Word-Ð¾Ð¾Ñ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
+
+DlgPasteMsg2	: "(<strong>Ctrl+V</strong>) Ñ‚Ð¾Ð²Ñ‡Ð¸Ð¹Ð³ Ð°ÑˆÐ¸Ð³Ð»Ð°Ð½ paste Ñ…Ð¸Ð¹Ð½Ñ Ò¯Ò¯. ÐœÓ©Ð½ <strong>OK</strong> Ð´Ð°Ñ€.",
+DlgPasteSec		: "Ð¢Ð°Ð½Ñ‹ Ò¯Ð·Ò¯Ò¯Ð»ÑÐ³Ñ‡/browser/-Ð½ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð»Ñ‚Ñ‹Ð½ Ñ‚Ð¾Ñ…Ð¸Ñ€Ð³Ð¾Ð¾Ð½Ð¾Ð¾Ñ Ð±Ð¾Ð»Ð¾Ð¾Ð´ editor clipboard Ó©Ð³Ó©Ð³Ð´Ó©Ð»Ñ€Ò¯Ò¯ ÑˆÑƒÑƒÐ´ Ñ…Ð°Ð½Ð´Ð°Ñ… Ð±Ð¾Ð»Ð¾Ð¼Ð¶Ð³Ò¯Ð¹. Ð­Ð½Ñ Ñ†Ð¾Ð½Ñ…Ð¾Ð´ Ð´Ð°Ñ…Ð¸Ð½ paste Ñ…Ð¸Ð¹Ñ…Ð¸Ð¹Ð³ Ð¾Ñ€Ð¾Ð»Ð´.",
+DlgPasteIgnoreFont		: "Ð¢Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð³Ð´ÑÐ¾Ð½ Font Face Ð·Ó©Ð²ÑˆÓ©Ó©Ñ€Ð½Ó©",
+DlgPasteRemoveStyles	: "Ð¢Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð³Ð´ÑÐ¾Ð½ Ð·Ð°Ð³Ð²Ð°Ñ€Ñ‹Ð³ Ð°Ð²Ð°Ñ…",
+
+// Color Picker
+ColorAutomatic	: "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð°Ð°Ñ€",
+ColorMoreColors	: "ÐÑÐ¼ÑÐ»Ñ‚ Ó©Ð½Ð³Ó©Ð½Ò¯Ò¯Ð´...",
+
+// Document Properties
+DocProps		: "Ð‘Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð¸Ð³ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+DlgAnchorName		: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð½ÑÑ€",
+DlgAnchorErrorName	: "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ‚Ó©Ñ€Ó©Ð» Ð¾Ñ€ÑƒÑƒÐ»Ð½Ð° ÑƒÑƒ",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ð¢Ð¾Ð»ÑŒ Ð±Ð¸Ñ‡Ð¸Ð³Ð³Ò¯Ð¹",
+DlgSpellChangeTo		: "Ó¨Ó©Ñ€Ñ‡Ð»Ó©Ñ…",
+DlgSpellBtnIgnore		: "Ð—Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ñ…",
+DlgSpellBtnIgnoreAll	: "Ð‘Ò¯Ð³Ð´Ð¸Ð¹Ð³ Ð·Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ñ…",
+DlgSpellBtnReplace		: "Ð”Ð°Ñ€Ð¶ Ð±Ð¸Ñ‡Ð¸Ñ…",
+DlgSpellBtnReplaceAll	: "Ð‘Ò¯Ð³Ð´Ð¸Ð¹Ð³ Ð”Ð°Ñ€Ð¶ Ð±Ð¸Ñ‡Ð¸Ñ…",
+DlgSpellBtnUndo			: "Ð‘ÑƒÑ†Ð°Ð°Ñ…",
+DlgSpellNoSuggestions	: "- Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ€Ð³Ò¯Ð¹ -",
+DlgSpellProgress		: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð¶ Ð±Ð°Ð¹Ð³Ð°Ð° Ò¯Ð¹Ð» ÑÐ²Ñ†...",
+DlgSpellNoMispell		: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð°Ð´ Ð´ÑƒÑƒÑÑÐ°Ð½: ÐÐ»Ð´Ð°Ð° Ð¾Ð»Ð´ÑÐ¾Ð½Ð³Ò¯Ð¹",
+DlgSpellNoChanges		: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð°Ð´ Ð´ÑƒÑƒÑÑÐ°Ð½: Ò¯Ð³ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ð³Ð´Ó©Ó©Ð³Ò¯Ð¹",
+DlgSpellOneChange		: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð°Ð´ Ð´ÑƒÑƒÑÑÐ°Ð½: 1 Ò¯Ð³ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ð³Ð´ÑÓ©Ð½",
+DlgSpellManyChanges		: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð°Ð´ Ð´ÑƒÑƒÑÑÐ°Ð½: %1 Ò¯Ð³ Ó©Ó©Ñ€Ñ‡Ð»Ó©Ð³Ð´ÑÓ©Ð½",
+
+IeSpellDownload			: "Ð”Ò¯Ñ€ÑÐ¼ ÑˆÐ°Ð»Ð³Ð°Ð³Ñ‡ ÑÑƒÑƒÐ³Ð°Ð°Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°. Ð¢Ð°Ñ‚Ð°Ð¶ Ð°Ð²Ð°Ñ…Ñ‹Ð³ Ñ…Ò¯ÑÑ‡ Ð±Ð°Ð¹Ð½Ð° ÑƒÑƒ?",
+
+// Button Dialog
+DlgButtonText		: "Ð¢ÑÐºÑÑ‚ (Ð£Ñ‚Ð³Ð°)",
+DlgButtonType		: "Ð¢Ó©Ñ€Ó©Ð»",
+DlgButtonTypeBtn	: "Ð¢Ð¾Ð²Ñ‡",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Ð‘Ð¾Ð»Ð¸Ñ…",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ÐÑÑ€",
+DlgCheckboxValue	: "Ð£Ñ‚Ð³Ð°",
+DlgCheckboxSelected	: "Ð¡Ð¾Ð½Ð³Ð¾Ð³Ð´ÑÐ¾Ð½",
+
+// Form Dialog
+DlgFormName		: "ÐÑÑ€",
+DlgFormAction	: "Ò®Ð¹Ð»Ð´ÑÐ»",
+DlgFormMethod	: "ÐÑ€Ð³Ð°",
+
+// Select Field Dialog
+DlgSelectName		: "ÐÑÑ€",
+DlgSelectValue		: "Ð£Ñ‚Ð³Ð°",
+DlgSelectSize		: "Ð¥ÑÐ¼Ð¶ÑÑ",
+DlgSelectLines		: "ÐœÓ©Ñ€",
+DlgSelectChkMulti	: "ÐžÐ»Ð¾Ð½ ÑÐ¾Ð½Ð³Ð¾Ð»Ñ‚ Ð·Ó©Ð²ÑˆÓ©Ó©Ñ€Ó©Ñ…",
+DlgSelectOpAvail	: "Ð˜Ð´Ð²ÑÑ…Ñ‚ÑÐ¹ ÑÐ¾Ð½Ð³Ð¾Ð»Ñ‚",
+DlgSelectOpText		: "Ð¢ÑÐºÑÑ‚",
+DlgSelectOpValue	: "Ð£Ñ‚Ð³Ð°",
+DlgSelectBtnAdd		: "ÐÑÐ¼ÑÑ…",
+DlgSelectBtnModify	: "Ó¨Ó©Ñ€Ñ‡Ð»Ó©Ñ…",
+DlgSelectBtnUp		: "Ð”ÑÑÑˆ",
+DlgSelectBtnDown	: "Ð”Ð¾Ð¾Ñˆ",
+DlgSelectBtnSetValue : "Ð¡Ð¾Ð½Ð³Ð¾Ð³Ð´ÑÐ°Ð½ ÑƒÑ‚Ð³Ð° Ð¾Ð½Ð¾Ð¾Ñ…",
+DlgSelectBtnDelete	: "Ð£ÑÑ‚Ð³Ð°Ñ…",
+
+// Textarea Dialog
+DlgTextareaName	: "ÐÑÑ€",
+DlgTextareaCols	: "Ð‘Ð°Ð³Ð°Ð½Ð°",
+DlgTextareaRows	: "ÐœÓ©Ñ€",
+
+// Text Field Dialog
+DlgTextName			: "ÐÑÑ€",
+DlgTextValue		: "Ð£Ñ‚Ð³Ð°",
+DlgTextCharWidth	: "Ð¢ÑÐ¼Ð´ÑÐ³Ñ‚Ñ‹Ð½ Ó©Ñ€Ð³Ó©Ð½",
+DlgTextMaxChars		: "Ð¥Ð°Ð¼Ð³Ð¸Ð¹Ð½ Ð¸Ñ… Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚",
+DlgTextType			: "Ð¢Ó©Ñ€Ó©Ð»",
+DlgTextTypeText		: "Ð¢ÐµÐºÑÑ‚",
+DlgTextTypePass		: "ÐÑƒÑƒÑ† Ò¯Ð³",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ÐÑÑ€",
+DlgHiddenValue	: "Ð£Ñ‚Ð³Ð°",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+NumberedListProp	: "Ð”ÑƒÐ³Ð°Ð°Ñ€Ð»Ð°ÑÐ°Ð½ Ð¶Ð°Ð³ÑÐ°Ð°Ð»Ñ‹Ð½ ÑˆÐ¸Ð½Ð¶ Ñ‡Ð°Ð½Ð°Ñ€",
+DlgLstStart			: "Ð­Ñ…Ð»ÑÑ…",
+DlgLstType			: "Ð¢Ó©Ñ€Ó©Ð»",
+DlgLstTypeCircle	: "Ð¢Ð¾Ð¹Ñ€Ð¾Ð³",
+DlgLstTypeDisc		: "Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ€",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Ð¢Ð¾Ð¾ (1, 2, 3)",
+DlgLstTypeLCase		: "Ð–Ð¸Ð¶Ð¸Ð³ Ò¯ÑÑÐ³ (a, b, c)",
+DlgLstTypeUCase		: "Ð¢Ð¾Ð¼ Ò¯ÑÑÐ³ (A, B, C)",
+DlgLstTypeSRoman	: "Ð–Ð¸Ð¶Ð¸Ð³ Ð Ð¾Ð¼ Ñ‚Ð¾Ð¾ (i, ii, iii)",
+DlgLstTypeLRoman	: "Ð¢Ð¾Ð¼ Ð Ð¾Ð¼ Ñ‚Ð¾Ð¾ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ð•Ñ€Ó©Ð½Ñ…Ð¸Ð¹",
+DlgDocBackTab		: "Ð¤Ð¾Ð½Ð¾",
+DlgDocColorsTab		: "Ð—Ð°Ñ…Ñ‹Ð½ Ð·Ð°Ð¹ Ð±Ð° Ó¨Ð½Ð³Ó©",
+DlgDocMetaTab		: "Meta Ó©Ð³Ó©Ð³Ð´Ó©Ð»",
+
+DlgDocPageTitle		: "Ð¥ÑƒÑƒÐ´Ð°ÑÐ½Ñ‹ Ð³Ð°Ñ€Ñ‡Ð¸Ð³",
+DlgDocLangDir		: "Ð¥ÑÐ»Ð½Ð¸Ð¹ Ñ‡Ð¸Ð³Ð»ÑÐ»",
+DlgDocLangDirLTR	: "Ð—Ò¯Ò¯Ð½ÑÑÑ Ð±Ð°Ñ€ÑƒÑƒÐ½Ñ€ÑƒÑƒ (LTR)",
+DlgDocLangDirRTL	: "Ð‘Ð°Ñ€ÑƒÑƒÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½Ñ€Ò¯Ò¯ (RTL)",
+DlgDocLangCode		: "Ð¥ÑÐ»Ð½Ð¸Ð¹ ÐºÐ¾Ð´",
+DlgDocCharSet		: "Encoding Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚",
+DlgDocCharSetCE		: "Ð¢Ó©Ð² ÐµÐ²Ñ€Ð¾Ð¿",
+DlgDocCharSetCT		: "Ð¥ÑÑ‚Ð°Ð´Ñ‹Ð½ ÑƒÐ»Ð°Ð¼Ð¶Ð»Ð°Ð»Ñ‚ (Big5)",
+DlgDocCharSetCR		: "ÐšÑ€Ð¸Ð»",
+DlgDocCharSetGR		: "Ð“Ñ€ÐµÐ´",
+DlgDocCharSetJP		: "Ð¯Ð¿Ð¾Ð½",
+DlgDocCharSetKR		: "Ð¡Ð¾Ð»Ð¾Ð½Ð³Ð¾Ñ",
+DlgDocCharSetTR		: "TÑƒÑ€Ðº",
+DlgDocCharSetUN		: "Ð®Ð½Ð¸ÐºÐ¾Ð´ (UTF-8)",
+DlgDocCharSetWE		: "Ð‘Ð°Ñ€ÑƒÑƒÐ½ ÐµÐ²Ñ€Ð¾Ð¿",
+DlgDocCharSetOther	: "Encoding-Ð´ Ó©Ó©Ñ€ Ñ‚ÑÐ¼Ð´ÑÐ³Ñ‚ Ð¾Ð½Ð¾Ð¾Ñ…",
+
+DlgDocDocType		: "Ð‘Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð³Ð¸Ð¹Ð½ Ñ‚Ó©Ñ€Ó©Ð» Heading",
+DlgDocDocTypeOther	: "Ð‘ÑƒÑÐ°Ð´ Ð±Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð³Ð¸Ð¹Ð½ Ñ‚Ó©Ñ€Ó©Ð» Heading",
+DlgDocIncXHTML		: "XHTML Ð°Ð³ÑƒÑƒÐ»Ð¶ Ð·Ð°Ñ€Ð»Ð°Ñ…",
+DlgDocBgColor		: "Ð¤Ð¾Ð½Ð¾ Ó©Ð½Ð³Ó©",
+DlgDocBgImage		: "Ð¤Ð¾Ð½Ð¾ Ð·ÑƒÑ€Ð°Ð³Ð½Ñ‹ URL",
+DlgDocBgNoScroll	: "Ð“Ò¯Ð¹Ð´ÑÐ³Ð³Ò¯Ð¹ Ñ„Ð¾Ð½Ð¾",
+DlgDocCText			: "Ð¢ÐµÐºÑÑ‚",
+DlgDocCLink			: "Ð›Ð¸Ð½Ðº",
+DlgDocCVisited		: "Ð—Ð¾Ñ‡Ð¸Ð»ÑÐ¾Ð½ Ð»Ð¸Ð½Ðº",
+DlgDocCActive		: "Ð˜Ð´Ð²ÑÑ…Ð¸Ñ‚ÑÐ¹ Ð»Ð¸Ð½Ðº",
+DlgDocMargins		: "Ð¥ÑƒÑƒÐ´Ð°ÑÐ½Ñ‹ Ð·Ð°Ñ…Ñ‹Ð½ Ð·Ð°Ð¹",
+DlgDocMaTop			: "Ð”ÑÑÐ´ Ñ‚Ð°Ð»",
+DlgDocMaLeft		: "Ð—Ò¯Ò¯Ð½ Ñ‚Ð°Ð»",
+DlgDocMaRight		: "Ð‘Ð°Ñ€ÑƒÑƒÐ½ Ñ‚Ð°Ð»",
+DlgDocMaBottom		: "Ð”Ð¾Ð¾Ð´ Ñ‚Ð°Ð»",
+DlgDocMeIndex		: "Ð‘Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð³Ð¸Ð¹Ð½ Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ Ò¯Ð³ (Ñ‚Ð°ÑÐ»Ð°Ð»Ð°Ð°Ñ€ Ñ‚ÑƒÑÐ³Ð°Ð°Ñ€Ð»Ð°Ð³Ð´Ð°Ð½Ð°)",
+DlgDocMeDescr		: "Ð‘Ð°Ñ€Ð¸Ð¼Ñ‚ Ð±Ð¸Ñ‡Ð³Ð¸Ð¹Ð½ Ñ‚Ð°Ð¹Ð»Ð±Ð°Ñ€",
+DlgDocMeAuthor		: "Ð—Ð¾Ñ…Ð¸Ð¾Ð³Ñ‡",
+DlgDocMeCopy		: "Ð—Ð¾Ñ…Ð¸Ð¾Ð³Ñ‡Ð¸Ð¹Ð½ ÑÑ€Ñ…",
+DlgDocPreview		: "Ð¥Ð°Ñ€Ð°Ñ…",
+
+// Templates Dialog
+Templates			: "Ð—Ð°Ð³Ð²Ð°Ñ€ÑƒÑƒÐ´",
+DlgTemplatesTitle	: "Ð—Ð°Ð³Ð²Ð°Ñ€Ñ‹Ð½ Ð°Ð³ÑƒÑƒÐ»Ð³Ð°",
+DlgTemplatesSelMsg	: "Ð—Ð°Ð³Ð²Ð°Ñ€Ñ‹Ð³ Ð½ÑÑÐ¶ editor-Ñ€Ò¯Ò¯ ÑÐ¾Ð½Ð³Ð¾Ð¶ Ð¾Ñ€ÑƒÑƒÐ»Ð½Ð° ÑƒÑƒ<br />(ÐžÐ´Ð¾Ð¾Ð³Ð¸Ð¹Ð½ Ð°Ð³ÑƒÑƒÐ»Ð»Ð°Ð³Ñ‹Ð³ ÑƒÑÑ‚Ð°Ð¶ Ð¼Ð°Ð³Ð°Ð´Ð³Ò¯Ð¹):",
+DlgTemplatesLoading	: "Ð—Ð°Ð³Ð²Ð°Ñ€ÑƒÑƒÐ´Ñ‹Ð³ Ð°Ñ‡Ð°Ð°Ð»Ð»Ð°Ð¶ Ð±Ð°Ð¹Ð½Ð°. Ð¢Ò¯Ñ€ Ñ…Ò¯Ð»ÑÑÐ½Ñ Ò¯Ò¯...",
+DlgTemplatesNoTpl	: "(Ð—Ð°Ð³Ð²Ð°Ñ€ Ñ‚Ð¾Ð´Ð¾Ñ€Ñ…Ð¾Ð¹Ð»Ð¾Ð³Ð´Ð¾Ð¾Ð³Ò¯Ð¹ Ð±Ð°Ð¹Ð½Ð°)",
+DlgTemplatesReplace	: "ÐžÐ´Ð¾Ð¾Ð³Ð¸Ð¹Ð½ Ð°Ð³ÑƒÑƒÐ»Ð»Ð°Ð³Ñ‹Ð³ Ð´Ð°Ñ€Ð¶ Ð±Ð¸Ñ‡Ð¸Ñ…",
+
+// About Dialog
+DlgAboutAboutTab	: "Ð¢ÑƒÑ…Ð°Ð¹",
+DlgAboutBrowserInfoTab	: "ÐœÑÐ´ÑÑÐ»ÑÐ» Ò¯Ð·Ò¯Ò¯Ð»ÑÐ³Ñ‡",
+DlgAboutLicenseTab	: "Ð›Ð¸Ñ†ÐµÐ½Ð·",
+DlgAboutVersion		: "Ð¥ÑƒÐ²Ð¸Ð»Ð±Ð°Ñ€",
+DlgAboutInfo		: "ÐœÑÐ´ÑÑÐ»Ð»ÑÑÑ€ Ñ‚ÑƒÑÐ»Ð°Ñ…"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pl.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Polish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "ZwiÅ„ pasek narzÄ™dzi",
+ToolbarExpand		: "RozwiÅ„ pasek narzÄ™dzi",
+
+// Toolbar Items and Context Menu
+Save				: "Zapisz",
+NewPage				: "Nowa strona",
+Preview				: "PodglÄ…d",
+Cut					: "Wytnij",
+Copy				: "Kopiuj",
+Paste				: "Wklej",
+PasteText			: "Wklej jako czysty tekst",
+PasteWord			: "Wklej z Worda",
+Print				: "Drukuj",
+SelectAll			: "Zaznacz wszystko",
+RemoveFormat		: "UsuÅ„ formatowanie",
+InsertLinkLbl		: "HiperÅ‚Ä…cze",
+InsertLink			: "Wstaw/edytuj hiperÅ‚Ä…cze",
+RemoveLink			: "UsuÅ„ hiperÅ‚Ä…cze",
+Anchor				: "Wstaw/edytuj kotwicÄ™",
+AnchorDelete		: "UsuÅ„ kotwicÄ™",
+InsertImageLbl		: "Obrazek",
+InsertImage			: "Wstaw/edytuj obrazek",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Dodaj/Edytuj element Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Wstaw/edytuj tabelÄ™",
+InsertLineLbl		: "Linia pozioma",
+InsertLine			: "Wstaw poziomÄ… liniÄ™",
+InsertSpecialCharLbl: "Znak specjalny",
+InsertSpecialChar	: "Wstaw znak specjalny",
+InsertSmileyLbl		: "Emotikona",
+InsertSmiley		: "Wstaw emotikonÄ™",
+About				: "O programie FCKeditor",
+Bold				: "Pogrubienie",
+Italic				: "Kursywa",
+Underline			: "PodkreÅ›lenie",
+StrikeThrough		: "PrzekreÅ›lenie",
+Subscript			: "Indeks dolny",
+Superscript			: "Indeks gÃ³rny",
+LeftJustify			: "WyrÃ³wnaj do lewej",
+CenterJustify		: "WyrÃ³wnaj do Å›rodka",
+RightJustify		: "WyrÃ³wnaj do prawej",
+BlockJustify		: "WyrÃ³wnaj do lewej i prawej",
+DecreaseIndent		: "Zmniejsz wciÄ™cie",
+IncreaseIndent		: "ZwiÄ™ksz wciÄ™cie",
+Blockquote			: "Cytat",
+Undo				: "Cofnij",
+Redo				: "PonÃ³w",
+NumberedListLbl		: "Lista numerowana",
+NumberedList		: "Wstaw/usuÅ„ numerowanie listy",
+BulletedListLbl		: "Lista wypunktowana",
+BulletedList		: "Wstaw/usuÅ„ wypunktowanie listy",
+ShowTableBorders	: "Pokazuj ramkÄ™ tabeli",
+ShowDetails			: "PokaÅ¼ szczegÃ³Å‚y",
+Style				: "Styl",
+FontFormat			: "Format",
+Font				: "Czcionka",
+FontSize			: "Rozmiar",
+TextColor			: "Kolor tekstu",
+BGColor				: "Kolor tÅ‚a",
+Source				: "Å¹rÃ³dÅ‚o dokumentu",
+Find				: "ZnajdÅº",
+Replace				: "ZamieÅ„",
+SpellCheck			: "SprawdÅº pisowniÄ™",
+UniversalKeyboard	: "Klawiatura Uniwersalna",
+PageBreakLbl		: "OdstÄ™p",
+PageBreak			: "Wstaw odstÄ™p",
+
+Form			: "Formularz",
+Checkbox		: "Pole wyboru (checkbox)",
+RadioButton		: "Pole wyboru (radio)",
+TextField		: "Pole tekstowe",
+Textarea		: "Obszar tekstowy",
+HiddenField		: "Pole ukryte",
+Button			: "Przycisk",
+SelectionField	: "Lista wyboru",
+ImageButton		: "Przycisk-obrazek",
+
+FitWindow		: "Maksymalizuj rozmiar edytora",
+ShowBlocks		: "PokaÅ¼ bloki",
+
+// Context Menu
+EditLink			: "Edytuj hiperÅ‚Ä…cze",
+CellCM				: "KomÃ³rka",
+RowCM				: "Wiersz",
+ColumnCM			: "Kolumna",
+InsertRowAfter		: "Wstaw wiersz poniÅ¼ej",
+InsertRowBefore		: "Wstaw wiersz powyÅ¼ej",
+DeleteRows			: "UsuÅ„ wiersze",
+InsertColumnAfter	: "Wstaw kolumnÄ™ z prawej",
+InsertColumnBefore	: "Wstaw kolumnÄ™ z lewej",
+DeleteColumns		: "UsuÅ„ kolumny",
+InsertCellAfter		: "Wstaw komÃ³rkÄ™ z prawej",
+InsertCellBefore	: "Wstaw komÃ³rkÄ™ z lewej",
+DeleteCells			: "UsuÅ„ komÃ³rki",
+MergeCells			: "PoÅ‚Ä…cz komÃ³rki",
+MergeRight			: "PoÅ‚Ä…cz z komÃ³rkÄ… z prawej",
+MergeDown			: "PoÅ‚Ä…cz z komÃ³rkÄ… poniÅ¼ej",
+HorizontalSplitCell	: "Podziel komÃ³rkÄ™ poziomo",
+VerticalSplitCell	: "Podziel komÃ³rkÄ™ pionowo",
+TableDelete			: "UsuÅ„ tabelÄ™",
+CellProperties		: "WÅ‚aÅ›ciwoÅ›ci komÃ³rki",
+TableProperties		: "WÅ‚aÅ›ciwoÅ›ci tabeli",
+ImageProperties		: "WÅ‚aÅ›ciwoÅ›ci obrazka",
+FlashProperties		: "WÅ‚aÅ›ciwoÅ›ci elementu Flash",
+
+AnchorProp			: "WÅ‚aÅ›ciwoÅ›ci kotwicy",
+ButtonProp			: "WÅ‚aÅ›ciwoÅ›ci przycisku",
+CheckboxProp		: "WÅ‚aÅ›ciwoÅ›ci pola wyboru (checkbox)",
+HiddenFieldProp		: "WÅ‚aÅ›ciwoÅ›ci pola ukrytego",
+RadioButtonProp		: "WÅ‚aÅ›ciwoÅ›ci pola wyboru (radio)",
+ImageButtonProp		: "WÅ‚aÅ›ciwoÅ›ci przycisku obrazka",
+TextFieldProp		: "WÅ‚aÅ›ciwoÅ›ci pola tekstowego",
+SelectionFieldProp	: "WÅ‚aÅ›ciwoÅ›ci listy wyboru",
+TextareaProp		: "WÅ‚aÅ›ciwoÅ›ci obszaru tekstowego",
+FormProp			: "WÅ‚aÅ›ciwoÅ›ci formularza",
+
+FontFormats			: "Normalny;Tekst sformatowany;Adres;NagÅ‚Ã³wek 1;NagÅ‚Ã³wek 2;NagÅ‚Ã³wek 3;NagÅ‚Ã³wek 4;NagÅ‚Ã³wek 5;NagÅ‚Ã³wek 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Przetwarzanie XHTML. ProszÄ™ czekaÄ‡...",
+Done				: "Gotowe",
+PasteWordConfirm	: "Tekst, ktÃ³ry chcesz wkleiÄ‡, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyÅ›cic przed wklejeniem?",
+NotCompatiblePaste	: "Ta funkcja jest dostÄ™pna w programie Internet Explorer w wersji 5.5 lub wyÅ¼szej. Czy chcesz wkleiÄ‡ tekst bez czyszczenia?",
+UnknownToolbarItem	: "Nieznany element paska narzÄ™dzi \"%1\"",
+UnknownCommand		: "Nieznana komenda \"%1\"",
+NotImplemented		: "Komenda niezaimplementowana",
+UnknownToolbarSet	: "Pasek narzÄ™dzi \"%1\" nie istnieje",
+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.",
+BrowseServerBlocked : "Nie moÅ¼na otworzyÄ‡ okno menadÅ¼era plikÃ³w. Upewnij siÄ™, Å¼e wszystkie blokady wyskakujÄ…cych okienek sÄ… wyÅ‚Ä…czone.",
+DialogBlocked		: "Nie moÅ¼na otworzyÄ‡ okna dialogowego. Upewnij siÄ™, Å¼e wszystkie blokady wyskakujÄ…cych okienek sÄ… wyÅ‚Ä…czone.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Anuluj",
+DlgBtnClose			: "Zamknij",
+DlgBtnBrowseServer	: "PrzeglÄ…daj",
+DlgAdvancedTag		: "Zaawansowane",
+DlgOpOther			: "<Inny>",
+DlgInfoTab			: "Informacje",
+DlgAlertUrl			: "ProszÄ™ podaÄ‡ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nie ustawione>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Kierunek tekstu",
+DlgGenLangDirLtr	: "Od lewej do prawej (LTR)",
+DlgGenLangDirRtl	: "Od prawej do lewej (RTL)",
+DlgGenLangCode		: "Kod jÄ™zyka",
+DlgGenAccessKey		: "Klawisz dostÄ™pu",
+DlgGenName			: "Nazwa",
+DlgGenTabIndex		: "Indeks tabeli",
+DlgGenLongDescr		: "DÅ‚ugi opis hiperÅ‚Ä…cza",
+DlgGenClass			: "Nazwa klasy CSS",
+DlgGenTitle			: "Opis obiektu docelowego",
+DlgGenContType		: "Typ MIME obiektu docelowego",
+DlgGenLinkCharset	: "Kodowanie znakÃ³w obiektu docelowego",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "WÅ‚aÅ›ciwoÅ›ci obrazka",
+DlgImgInfoTab		: "Informacje o obrazku",
+DlgImgBtnUpload		: "WyÅ›lij",
+DlgImgURL			: "Adres URL",
+DlgImgUpload		: "WyÅ›lij",
+DlgImgAlt			: "Tekst zastÄ™pczy",
+DlgImgWidth			: "SzerokoÅ›Ä‡",
+DlgImgHeight		: "WysokoÅ›Ä‡",
+DlgImgLockRatio		: "Zablokuj proporcje",
+DlgBtnResetSize		: "PrzywrÃ³Ä‡ rozmiar",
+DlgImgBorder		: "Ramka",
+DlgImgHSpace		: "OdstÄ™p poziomy",
+DlgImgVSpace		: "OdstÄ™p pionowy",
+DlgImgAlign			: "WyrÃ³wnaj",
+DlgImgAlignLeft		: "Do lewej",
+DlgImgAlignAbsBottom: "Do doÅ‚u",
+DlgImgAlignAbsMiddle: "Do Å›rodka w pionie",
+DlgImgAlignBaseline	: "Do linii bazowej",
+DlgImgAlignBottom	: "Do doÅ‚u",
+DlgImgAlignMiddle	: "Do Å›rodka",
+DlgImgAlignRight	: "Do prawej",
+DlgImgAlignTextTop	: "Do gÃ³ry tekstu",
+DlgImgAlignTop		: "Do gÃ³ry",
+DlgImgPreview		: "PodglÄ…d",
+DlgImgAlertUrl		: "Podaj adres obrazka.",
+DlgImgLinkTab		: "HiperÅ‚Ä…cze",
+
+// Flash Dialog
+DlgFlashTitle		: "WÅ‚aÅ›ciwoÅ›ci elementu Flash",
+DlgFlashChkPlay		: "Auto Odtwarzanie",
+DlgFlashChkLoop		: "PÄ™tla",
+DlgFlashChkMenu		: "WÅ‚Ä…cz menu",
+DlgFlashScale		: "Skaluj",
+DlgFlashScaleAll	: "PokaÅ¼ wszystko",
+DlgFlashScaleNoBorder	: "Bez Ramki",
+DlgFlashScaleFit	: "DokÅ‚adne dopasowanie",
+
+// Link Dialog
+DlgLnkWindowTitle	: "HiperÅ‚Ä…cze",
+DlgLnkInfoTab		: "Informacje ",
+DlgLnkTargetTab		: "Cel",
+
+DlgLnkType			: "Typ hiperÅ‚Ä…cza",
+DlgLnkTypeURL		: "Adres URL",
+DlgLnkTypeAnchor	: "OdnoÅ›nik wewnÄ…trz strony",
+DlgLnkTypeEMail		: "Adres e-mail",
+DlgLnkProto			: "ProtokÃ³Å‚",
+DlgLnkProtoOther	: "<inny>",
+DlgLnkURL			: "Adres URL",
+DlgLnkAnchorSel		: "Wybierz etykietÄ™",
+DlgLnkAnchorByName	: "Wg etykiety",
+DlgLnkAnchorById	: "Wg identyfikatora elementu",
+DlgLnkNoAnchors		: "(W dokumencie nie zdefiniowano Å¼adnych etykiet)",
+DlgLnkEMail			: "Adres e-mail",
+DlgLnkEMailSubject	: "Temat",
+DlgLnkEMailBody		: "TreÅ›Ä‡",
+DlgLnkUpload		: "WyÅ›lij",
+DlgLnkBtnUpload		: "WyÅ›lij",
+
+DlgLnkTarget		: "Cel",
+DlgLnkTargetFrame	: "<ramka>",
+DlgLnkTargetPopup	: "<wyskakujÄ…ce okno>",
+DlgLnkTargetBlank	: "Nowe okno (_blank)",
+DlgLnkTargetParent	: "Okno nadrzÄ™dne (_parent)",
+DlgLnkTargetSelf	: "To samo okno (_self)",
+DlgLnkTargetTop		: "Okno najwyÅ¼sze w hierarchii (_top)",
+DlgLnkTargetFrameName	: "Nazwa Ramki Docelowej",
+DlgLnkPopWinName	: "Nazwa wyskakujÄ…cego okna",
+DlgLnkPopWinFeat	: "WÅ‚aÅ›ciwoÅ›ci wyskakujÄ…cego okna",
+DlgLnkPopResize		: "MoÅ¼liwa zmiana rozmiaru",
+DlgLnkPopLocation	: "Pasek adresu",
+DlgLnkPopMenu		: "Pasek menu",
+DlgLnkPopScroll		: "Paski przewijania",
+DlgLnkPopStatus		: "Pasek statusu",
+DlgLnkPopToolbar	: "Pasek narzÄ™dzi",
+DlgLnkPopFullScrn	: "PeÅ‚ny ekran (IE)",
+DlgLnkPopDependent	: "Okno zaleÅ¼ne (Netscape)",
+DlgLnkPopWidth		: "SzerokoÅ›Ä‡",
+DlgLnkPopHeight		: "WysokoÅ›Ä‡",
+DlgLnkPopLeft		: "Pozycja w poziomie",
+DlgLnkPopTop		: "Pozycja w pionie",
+
+DlnLnkMsgNoUrl		: "Podaj adres URL",
+DlnLnkMsgNoEMail	: "Podaj adres e-mail",
+DlnLnkMsgNoAnchor	: "Wybierz etykietÄ™",
+DlnLnkMsgInvPopName	: "Nazwa wyskakujÄ…cego okienka musi zaczynaÄ‡ siÄ™ od znaku alfanumerycznego i nie moÅ¼e zawieraÄ‡ spacji",
+
+// Color Dialog
+DlgColorTitle		: "Wybierz kolor",
+DlgColorBtnClear	: "WyczyÅ›Ä‡",
+DlgColorHighlight	: "PodglÄ…d",
+DlgColorSelected	: "Wybrane",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Wstaw emotikonÄ™",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Wybierz znak specjalny",
+
+// Table Dialog
+DlgTableTitle		: "WÅ‚aÅ›ciwoÅ›ci tabeli",
+DlgTableRows		: "Liczba wierszy",
+DlgTableColumns		: "Liczba kolumn",
+DlgTableBorder		: "GruboÅ›Ä‡ ramki",
+DlgTableAlign		: "WyrÃ³wnanie",
+DlgTableAlignNotSet	: "<brak ustawieÅ„>",
+DlgTableAlignLeft	: "Do lewej",
+DlgTableAlignCenter	: "Do Å›rodka",
+DlgTableAlignRight	: "Do prawej",
+DlgTableWidth		: "SzerokoÅ›Ä‡",
+DlgTableWidthPx		: "piksele",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "WysokoÅ›Ä‡",
+DlgTableCellSpace	: "OdstÄ™p pomiÄ™dzy komÃ³rkami",
+DlgTableCellPad		: "Margines wewnÄ™trzny komÃ³rek",
+DlgTableCaption		: "TytuÅ‚",
+DlgTableSummary		: "Podsumowanie",
+
+// Table Cell Dialog
+DlgCellTitle		: "WÅ‚aÅ›ciwoÅ›ci komÃ³rki",
+DlgCellWidth		: "SzerokoÅ›Ä‡",
+DlgCellWidthPx		: "piksele",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "WysokoÅ›Ä‡",
+DlgCellWordWrap		: "Zawijanie tekstu",
+DlgCellWordWrapNotSet	: "<brak ustawieÅ„>",
+DlgCellWordWrapYes	: "Tak",
+DlgCellWordWrapNo	: "Nie",
+DlgCellHorAlign		: "WyrÃ³wnanie poziome",
+DlgCellHorAlignNotSet	: "<brak ustawieÅ„>",
+DlgCellHorAlignLeft	: "Do lewej",
+DlgCellHorAlignCenter	: "Do Å›rodka",
+DlgCellHorAlignRight: "Do prawej",
+DlgCellVerAlign		: "WyrÃ³wnanie pionowe",
+DlgCellVerAlignNotSet	: "<brak ustawieÅ„>",
+DlgCellVerAlignTop	: "Do gÃ³ry",
+DlgCellVerAlignMiddle	: "Do Å›rodka",
+DlgCellVerAlignBottom	: "Do doÅ‚u",
+DlgCellVerAlignBaseline	: "Do linii bazowej",
+DlgCellRowSpan		: "ZajÄ™toÅ›Ä‡ wierszy",
+DlgCellCollSpan		: "ZajÄ™toÅ›Ä‡ kolumn",
+DlgCellBackColor	: "Kolor tÅ‚a",
+DlgCellBorderColor	: "Kolor ramki",
+DlgCellBtnSelect	: "Wybierz...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "ZnajdÅº i zamieÅ„",
+
+// Find Dialog
+DlgFindTitle		: "ZnajdÅº",
+DlgFindFindBtn		: "ZnajdÅº",
+DlgFindNotFoundMsg	: "Nie znaleziono szukanego hasÅ‚a.",
+
+// Replace Dialog
+DlgReplaceTitle			: "ZamieÅ„",
+DlgReplaceFindLbl		: "ZnajdÅº:",
+DlgReplaceReplaceLbl	: "ZastÄ…p przez:",
+DlgReplaceCaseChk		: "UwzglÄ™dnij wielkoÅ›Ä‡ liter",
+DlgReplaceReplaceBtn	: "ZastÄ…p",
+DlgReplaceReplAllBtn	: "ZastÄ…p wszystko",
+DlgReplaceWordChk		: "CaÅ‚e sÅ‚owa",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Ustawienia bezpieczeÅ„stwa Twojej przeglÄ…darki nie pozwalajÄ… na automatyczne wycinanie tekstu. UÅ¼yj skrÃ³tu klawiszowego Ctrl+X.",
+PasteErrorCopy	: "Ustawienia bezpieczeÅ„stwa Twojej przeglÄ…darki nie pozwalajÄ… na automatyczne kopiowanie tekstu. UÅ¼yj skrÃ³tu klawiszowego Ctrl+C.",
+
+PasteAsText		: "Wklej jako czysty tekst",
+PasteFromWord	: "Wklej z Worda",
+
+DlgPasteMsg2	: "ProszÄ™ wkleiÄ‡ w poniÅ¼szym polu uÅ¼ywajÄ…c klawiaturowego skrÃ³tu (<STRONG>Ctrl+V</STRONG>) i kliknÄ…Ä‡ <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Zabezpieczenia przeglÄ…darki uniemoÅ¼liwiajÄ… wklejenie danych bezpoÅ›rednio do edytora. ProszÄ™ dane wkleiÄ‡ ponownie w tym okienku.",
+DlgPasteIgnoreFont		: "Ignoruj definicje 'Font Face'",
+DlgPasteRemoveStyles	: "UsuÅ„ definicje StylÃ³w",
+
+// Color Picker
+ColorAutomatic	: "Automatycznie",
+ColorMoreColors	: "WiÄ™cej kolorÃ³w...",
+
+// Document Properties
+DocProps		: "WÅ‚aÅ›ciwoÅ›ci dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "WÅ‚aÅ›ciwoÅ›ci kotwicy",
+DlgAnchorName		: "Nazwa kotwicy",
+DlgAnchorErrorName	: "Wpisz nazwÄ™ kotwicy",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "SÅ‚owa nie ma w sÅ‚owniku",
+DlgSpellChangeTo		: "ZmieÅ„ na",
+DlgSpellBtnIgnore		: "Ignoruj",
+DlgSpellBtnIgnoreAll	: "Ignoruj wszystkie",
+DlgSpellBtnReplace		: "ZmieÅ„",
+DlgSpellBtnReplaceAll	: "ZmieÅ„ wszystkie",
+DlgSpellBtnUndo			: "Cofnij",
+DlgSpellNoSuggestions	: "- Brak sugestii -",
+DlgSpellProgress		: "Trwa sprawdzanie ...",
+DlgSpellNoMispell		: "Sprawdzanie zakoÅ„czone: nie znaleziono bÅ‚Ä™dÃ³w",
+DlgSpellNoChanges		: "Sprawdzanie zakoÅ„czone: nie zmieniono Å¼adnego sÅ‚owa",
+DlgSpellOneChange		: "Sprawdzanie zakoÅ„czone: zmieniono jedno sÅ‚owo",
+DlgSpellManyChanges		: "Sprawdzanie zakoÅ„czone: zmieniono %l sÅ‚Ã³w",
+
+IeSpellDownload			: "SÅ‚ownik nie jest zainstalowany. Chcesz go Å›ciÄ…gnÄ…Ä‡?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (WartoÅ›Ä‡)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Przycisk",
+DlgButtonTypeSbm	: "WyÅ›lij",
+DlgButtonTypeRst	: "Wyzeruj",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nazwa",
+DlgCheckboxValue	: "WartoÅ›Ä‡",
+DlgCheckboxSelected	: "Zaznaczone",
+
+// Form Dialog
+DlgFormName		: "Nazwa",
+DlgFormAction	: "Akcja",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Nazwa",
+DlgSelectValue		: "WartoÅ›Ä‡",
+DlgSelectSize		: "Rozmiar",
+DlgSelectLines		: "linii",
+DlgSelectChkMulti	: "Wielokrotny wybÃ³r",
+DlgSelectOpAvail	: "DostÄ™pne opcje",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "WartoÅ›Ä‡",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "ZmieÅ„",
+DlgSelectBtnUp		: "Do gÃ³ry",
+DlgSelectBtnDown	: "Do doÅ‚u",
+DlgSelectBtnSetValue : "Ustaw wartoÅ›Ä‡ zaznaczonÄ…",
+DlgSelectBtnDelete	: "UsuÅ„",
+
+// Textarea Dialog
+DlgTextareaName	: "Nazwa",
+DlgTextareaCols	: "Kolumnu",
+DlgTextareaRows	: "Wiersze",
+
+// Text Field Dialog
+DlgTextName			: "Nazwa",
+DlgTextValue		: "WartoÅ›Ä‡",
+DlgTextCharWidth	: "SzerokoÅ›Ä‡ w znakach",
+DlgTextMaxChars		: "Max. szerokoÅ›Ä‡",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "HasÅ‚o",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nazwa",
+DlgHiddenValue	: "WartoÅ›Ä‡",
+
+// Bulleted List Dialog
+BulletedListProp	: "WÅ‚aÅ›ciwoÅ›ci listy punktowanej",
+NumberedListProp	: "WÅ‚aÅ›ciwoÅ›ci listy numerowanej",
+DlgLstStart			: "PoczÄ…tek",
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "KoÅ‚o",
+DlgLstTypeDisc		: "Dysk",
+DlgLstTypeSquare	: "Kwadrat",
+DlgLstTypeNumbers	: "Cyfry (1, 2, 3)",
+DlgLstTypeLCase		: "MaÅ‚e litery (a, b, c)",
+DlgLstTypeUCase		: "DuÅ¼e litery (A, B, C)",
+DlgLstTypeSRoman	: "Numeracja rzymska (i, ii, iii)",
+DlgLstTypeLRoman	: "Numeracja rzymska (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "OgÃ³lne",
+DlgDocBackTab		: "TÅ‚o",
+DlgDocColorsTab		: "Kolory i marginesy",
+DlgDocMetaTab		: "Meta Dane",
+
+DlgDocPageTitle		: "TytuÅ‚ strony",
+DlgDocLangDir		: "Kierunek pisania",
+DlgDocLangDirLTR	: "Od lewej do prawej (LTR)",
+DlgDocLangDirRTL	: "Od prawej do lewej (RTL)",
+DlgDocLangCode		: "Kod jÄ™zyka",
+DlgDocCharSet		: "Kodowanie znakÃ³w",
+DlgDocCharSetCE		: "Åšrodkowoeuropejskie",
+DlgDocCharSetCT		: "ChiÅ„skie tradycyjne (Big5)",
+DlgDocCharSetCR		: "Cyrylica",
+DlgDocCharSetGR		: "Greckie",
+DlgDocCharSetJP		: "JapoÅ„skie",
+DlgDocCharSetKR		: "KoreaÅ„skie",
+DlgDocCharSetTR		: "Tureckie",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Zachodnioeuropejskie",
+DlgDocCharSetOther	: "Inne kodowanie znakÃ³w",
+
+DlgDocDocType		: "NagÅ‚Ã³wek typu dokumentu",
+DlgDocDocTypeOther	: "Inny typ dokumentu",
+DlgDocIncXHTML		: "DoÅ‚Ä…cz deklaracjÄ™ XHTML",
+DlgDocBgColor		: "Kolor tÅ‚a",
+DlgDocBgImage		: "Obrazek tÅ‚a",
+DlgDocBgNoScroll	: "TÅ‚o nieruchome",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "HiperÅ‚Ä…cze",
+DlgDocCVisited		: "Odwiedzane hiperÅ‚Ä…cze",
+DlgDocCActive		: "Aktywne hiperÅ‚Ä…cze",
+DlgDocMargins		: "Marginesy strony",
+DlgDocMaTop			: "GÃ³rny",
+DlgDocMaLeft		: "Lewy",
+DlgDocMaRight		: "Prawy",
+DlgDocMaBottom		: "Dolny",
+DlgDocMeIndex		: "SÅ‚owa kluczowe (oddzielone przecinkami)",
+DlgDocMeDescr		: "Opis dokumentu",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Prawa autorskie",
+DlgDocPreview		: "PodglÄ…d",
+
+// Templates Dialog
+Templates			: "Sablony",
+DlgTemplatesTitle	: "Szablony zawartoÅ›ci",
+DlgTemplatesSelMsg	: "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartoÅ›Ä‡ okna edytora zostanie utracona):",
+DlgTemplatesLoading	: "Åadowanie listy szablonÃ³w. ProszÄ™ czekaÄ‡...",
+DlgTemplatesNoTpl	: "(Brak zdefiniowanych szablonÃ³w)",
+DlgTemplatesReplace	: "ZastÄ…p aktualnÄ… zawartoÅ›Ä‡",
+
+// About Dialog
+DlgAboutAboutTab	: "O ...",
+DlgAboutBrowserInfoTab	: "O przeglÄ…darce",
+DlgAboutLicenseTab	: "Licencja",
+DlgAboutVersion		: "wersja",
+DlgAboutInfo		: "WiÄ™cej informacji uzyskasz pod adresem"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/th.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/th.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/th.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Thai language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "à¸‹à¹ˆà¸­à¸™à¹à¸–à¸šà¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­",
+ToolbarExpand		: "à¹à¸ªà¸”à¸‡à¹à¸–à¸šà¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­",
+
+// Toolbar Items and Context Menu
+Save				: "à¸šà¸±à¸™à¸—à¸¶à¸",
+NewPage				: "à¸ªà¸£à¹‰à¸²à¸‡à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£à¹ƒà¸«à¸¡à¹ˆ",
+Preview				: "à¸”à¸¹à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£à¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡",
+Cut					: "à¸•à¸±à¸”",
+Copy				: "à¸ªà¸³à¹€à¸™à¸²",
+Paste				: "à¸§à¸²à¸‡",
+PasteText			: "à¸§à¸²à¸‡à¸ªà¸³à¹€à¸™à¸²à¸ˆà¸²à¸à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸˜à¸£à¸£à¸¡à¸”à¸²",
+PasteWord			: "à¸§à¸²à¸‡à¸ªà¸³à¹€à¸™à¸²à¸ˆà¸²à¸à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¹€à¸§à¸´à¸£à¹Œà¸”",
+Print				: "à¸ªà¸±à¹ˆà¸‡à¸žà¸´à¸¡à¸žà¹Œ",
+SelectAll			: "à¹€à¸¥à¸·à¸­à¸à¸—à¸±à¹‰à¸‡à¸«à¸¡à¸”",
+RemoveFormat		: "à¸¥à¹‰à¸²à¸‡à¸£à¸¹à¸›à¹à¸šà¸š",
+InsertLinkLbl		: "à¸¥à¸´à¸‡à¸„à¹Œà¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡à¹€à¸§à¹‡à¸š à¸­à¸µà¹€à¸¡à¸¥à¹Œ à¸£à¸¹à¸›à¸ à¸²à¸ž à¸«à¸£à¸·à¸­à¹„à¸Ÿà¸¥à¹Œà¸­à¸·à¹ˆà¸™à¹†",
+InsertLink			: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¸¥à¸´à¸‡à¸„à¹Œ",
+RemoveLink			: "à¸¥à¸š à¸¥à¸´à¸‡à¸„à¹Œ",
+Anchor				: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ Anchor",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "à¸£à¸¹à¸›à¸ à¸²à¸ž",
+InsertImage			: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¸£à¸¹à¸›à¸ à¸²à¸ž",
+InsertFlashLbl		: "à¹„à¸Ÿà¸¥à¹Œ Flash",
+InsertFlash			: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¹„à¸Ÿà¸¥à¹Œ Flash",
+InsertTableLbl		: "à¸•à¸²à¸£à¸²à¸‡",
+InsertTable			: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¸•à¸²à¸£à¸²à¸‡",
+InsertLineLbl		: "à¹€à¸ªà¹‰à¸™à¸„à¸±à¹ˆà¸™à¸šà¸£à¸£à¸—à¸±à¸”",
+InsertLine			: "à¹à¸—à¸£à¸à¹€à¸ªà¹‰à¸™à¸„à¸±à¹ˆà¸™à¸šà¸£à¸£à¸—à¸±à¸”",
+InsertSpecialCharLbl: "à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸žà¸´à¹€à¸¨à¸©",
+InsertSpecialChar	: "à¹à¸—à¸£à¸à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸žà¸´à¹€à¸¨à¸©",
+InsertSmileyLbl		: "à¸£à¸¹à¸›à¸ªà¸·à¹ˆà¸­à¸­à¸²à¸£à¸¡à¸“à¹Œ",
+InsertSmiley		: "à¹à¸—à¸£à¸à¸£à¸¹à¸›à¸ªà¸·à¹ˆà¸­à¸­à¸²à¸£à¸¡à¸“à¹Œ",
+About				: "à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚à¸›à¸£à¹à¸à¸£à¸¡ FCKeditor",
+Bold				: "à¸•à¸±à¸§à¸«à¸™à¸²",
+Italic				: "à¸•à¸±à¸§à¹€à¸­à¸µà¸¢à¸‡",
+Underline			: "à¸•à¸±à¸§à¸‚à¸µà¸”à¹€à¸ªà¹‰à¸™à¹ƒà¸•à¹‰",
+StrikeThrough		: "à¸•à¸±à¸§à¸‚à¸µà¸”à¹€à¸ªà¹‰à¸™à¸—à¸±à¸š",
+Subscript			: "à¸•à¸±à¸§à¸«à¹‰à¸­à¸¢",
+Superscript			: "à¸•à¸±à¸§à¸¢à¸",
+LeftJustify			: "à¸ˆà¸±à¸”à¸Šà¸´à¸”à¸‹à¹‰à¸²à¸¢",
+CenterJustify		: "à¸ˆà¸±à¸”à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+RightJustify		: "à¸ˆà¸±à¸”à¸Šà¸´à¸”à¸‚à¸§à¸²",
+BlockJustify		: "à¸ˆà¸±à¸”à¸žà¸­à¸”à¸µà¸«à¸™à¹‰à¸²à¸à¸£à¸°à¸”à¸²à¸©",
+DecreaseIndent		: "à¸¥à¸”à¸£à¸°à¸¢à¸°à¸¢à¹ˆà¸­à¸«à¸™à¹‰à¸²",
+IncreaseIndent		: "à¹€à¸žà¸´à¹ˆà¸¡à¸£à¸°à¸¢à¸°à¸¢à¹ˆà¸­à¸«à¸™à¹‰à¸²",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "à¸¢à¸à¹€à¸¥à¸´à¸à¸„à¸³à¸ªà¸±à¹ˆà¸‡",
+Redo				: "à¸—à¸³à¸‹à¹‰à¸³à¸„à¸³à¸ªà¸±à¹ˆà¸‡",
+NumberedListLbl		: "à¸¥à¸³à¸”à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¹à¸šà¸šà¸•à¸±à¸§à¹€à¸¥à¸‚",
+NumberedList		: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¸¥à¸³à¸”à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¹à¸šà¸šà¸•à¸±à¸§à¹€à¸¥à¸‚",
+BulletedListLbl		: "à¸¥à¸³à¸”à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¹à¸šà¸šà¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“à¹Œ",
+BulletedList		: "à¹à¸—à¸£à¸/à¹à¸à¹‰à¹„à¸‚ à¸¥à¸³à¸”à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¹à¸šà¸šà¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“à¹Œ",
+ShowTableBorders	: "à¹à¸ªà¸”à¸‡à¸‚à¸­à¸šà¸‚à¸­à¸‡à¸•à¸²à¸£à¸²à¸‡",
+ShowDetails			: "à¹à¸ªà¸”à¸‡à¸£à¸²à¸¢à¸¥à¸°à¹€à¸­à¸µà¸¢à¸”",
+Style				: "à¸¥à¸±à¸à¸©à¸“à¸°",
+FontFormat			: "à¸£à¸¹à¸›à¹à¸šà¸š",
+Font				: "à¹à¸šà¸šà¸­à¸±à¸à¸©à¸£",
+FontSize			: "à¸‚à¸™à¸²à¸”",
+TextColor			: "à¸ªà¸µà¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£",
+BGColor				: "à¸ªà¸µà¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡",
+Source				: "à¸”à¸¹à¸£à¸«à¸±à¸ª HTML",
+Find				: "à¸„à¹‰à¸™à¸«à¸²",
+Replace				: "à¸„à¹‰à¸™à¸«à¸²à¹à¸¥à¸°à¹à¸—à¸™à¸—à¸µà¹ˆ",
+SpellCheck			: "à¸•à¸£à¸§à¸ˆà¸à¸²à¸£à¸ªà¸°à¸à¸”à¸„à¸³",
+UniversalKeyboard	: "à¸„à¸µà¸¢à¹Œà¸šà¸­à¸£à¹Œà¸”à¸«à¸¥à¸²à¸à¸ à¸²à¸©à¸²",
+PageBreakLbl		: "à¹ƒà¸ªà¹ˆà¸•à¸±à¸§à¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break",
+PageBreak			: "à¹à¸—à¸£à¸à¸•à¸±à¸§à¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break",
+
+Form			: "à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡",
+Checkbox		: "à¹€à¸Šà¹‡à¸„à¸šà¹Šà¸­à¸",
+RadioButton		: "à¹€à¸£à¸”à¸´à¹‚à¸­à¸šà¸±à¸•à¸•à¸­à¸™",
+TextField		: "à¹€à¸—à¹‡à¸à¸‹à¹Œà¸Ÿà¸´à¸¥à¸”à¹Œ",
+Textarea		: "à¹€à¸—à¹‡à¸à¸‹à¹Œà¹à¸­à¹€à¸£à¸µà¸¢",
+HiddenField		: "à¸®à¸´à¸”à¹€à¸”à¸™à¸Ÿà¸´à¸¥à¸”à¹Œ",
+Button			: "à¸›à¸¸à¹ˆà¸¡",
+SelectionField	: "à¹à¸–à¸šà¸•à¸±à¸§à¹€à¸¥à¸·à¸­à¸",
+ImageButton		: "à¸›à¸¸à¹ˆà¸¡à¹à¸šà¸šà¸£à¸¹à¸›à¸ à¸²à¸ž",
+
+FitWindow		: "à¸‚à¸¢à¸²à¸¢à¸‚à¸™à¸²à¸”à¸•à¸±à¸§à¸­à¸µà¸”à¸´à¸•à¹€à¸•à¸­à¸£à¹Œ",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "à¹à¸à¹‰à¹„à¸‚ à¸¥à¸´à¸‡à¸„à¹Œ",
+CellCM				: "à¸Šà¹ˆà¸­à¸‡à¸•à¸²à¸£à¸²à¸‡",
+RowCM				: "à¹à¸–à¸§",
+ColumnCM			: "à¸„à¸­à¸¥à¸±à¸¡à¸™à¹Œ",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "à¸¥à¸šà¹à¸–à¸§",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "à¸¥à¸šà¸ªà¸”à¸¡à¸™à¹Œ",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "à¸¥à¸šà¸Šà¹ˆà¸­à¸‡",
+MergeCells			: "à¸œà¸ªà¸²à¸™à¸Šà¹ˆà¸­à¸‡",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "à¸¥à¸šà¸•à¸²à¸£à¸²à¸‡",
+CellProperties		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¸Šà¹ˆà¸­à¸‡",
+TableProperties		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¸•à¸²à¸£à¸²à¸‡",
+ImageProperties		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¸£à¸¹à¸›à¸ à¸²à¸ž",
+FlashProperties		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¹„à¸Ÿà¸¥à¹Œ Flash",
+
+AnchorProp			: "à¸£à¸²à¸¢à¸¥à¸°à¹€à¸­à¸µà¸¢à¸” Anchor",
+ButtonProp			: "à¸£à¸²à¸¢à¸¥à¸°à¹€à¸­à¸µà¸¢à¸”à¸‚à¸­à¸‡ à¸›à¸¸à¹ˆà¸¡",
+CheckboxProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹€à¸Šà¹‡à¸„à¸šà¹Šà¸­à¸",
+HiddenFieldProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸®à¸´à¸”à¹€à¸”à¸™à¸Ÿà¸´à¸¥à¸”à¹Œ",
+RadioButtonProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹€à¸£à¸”à¸´à¹‚à¸­à¸šà¸±à¸•à¸•à¸­à¸™",
+ImageButtonProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸›à¸¸à¹ˆà¸¡à¹à¸šà¸šà¸£à¸¹à¸›à¸ à¸²à¸ž",
+TextFieldProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹€à¸—à¹‡à¸à¸‹à¹Œà¸Ÿà¸´à¸¥à¸”à¹Œ",
+SelectionFieldProp	: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹à¸–à¸šà¸•à¸±à¸§à¹€à¸¥à¸·à¸­à¸",
+TextareaProp		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹€à¸—à¹‡à¸à¹à¸­à¹€à¸£à¸µà¸¢",
+FormProp			: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸à¸³à¸¥à¸±à¸‡à¸—à¸³à¸‡à¸²à¸™à¸”à¹‰à¸§à¸¢à¹€à¸—à¸„à¹‚à¸™à¹‚à¸¥à¸¢à¸µ XHTML à¸à¸£à¸¸à¸“à¸²à¸£à¸­à¸ªà¸±à¸à¸„à¸£à¸¹à¹ˆ...",
+Done				: "à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¸³à¸‡à¸²à¸™à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸¡à¸šà¸¹à¸£à¸“à¹Œ",
+PasteWordConfirm	: "à¸‚à¹‰à¸­à¸¡à¸¹à¸¥à¸—à¸µà¹ˆà¸—à¹ˆà¸²à¸™à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸§à¸²à¸‡à¸¥à¸‡à¹ƒà¸™à¹à¸œà¹ˆà¸™à¸‡à¸²à¸™ à¸–à¸¹à¸à¸ˆà¸±à¸”à¸£à¸¹à¸›à¹à¸šà¸šà¸ˆà¸²à¸à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”. à¸—à¹ˆà¸²à¸™à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸¥à¹‰à¸²à¸‡à¸£à¸¹à¸›à¹à¸šà¸šà¸—à¸µà¹ˆà¸¡à¸²à¸ˆà¸²à¸à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”à¸«à¸£à¸·à¸­à¹„à¸¡à¹ˆ?",
+NotCompatiblePaste	: "à¸„à¸³à¸ªà¸±à¹ˆà¸‡à¸™à¸µà¹‰à¸—à¸³à¸‡à¸²à¸™à¹ƒà¸™à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¹ˆà¸­à¸‡à¹€à¸§à¹‡à¸š Internet Explorer version à¸£à¸¸à¹ˆà¸™ 5.5 à¸«à¸£à¸·à¸­à¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™. à¸—à¹ˆà¸²à¸™à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸§à¸²à¸‡à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¹‚à¸”à¸¢à¹„à¸¡à¹ˆà¸¥à¹‰à¸²à¸‡à¸£à¸¹à¸›à¹à¸šà¸šà¸—à¸µà¹ˆà¸¡à¸²à¸ˆà¸²à¸à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”à¸«à¸£à¸·à¸­à¹„à¸¡à¹ˆ?",
+UnknownToolbarItem	: "à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¸£à¸°à¸šà¸¸à¸›à¸¸à¹ˆà¸¡à¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­à¹„à¸”à¹‰ \"%1\"",
+UnknownCommand		: "à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¸£à¸°à¸šà¸¸à¸Šà¸·à¹ˆà¸­à¸„à¸³à¸ªà¸±à¹ˆà¸‡à¹„à¸”à¹‰ \"%1\"",
+NotImplemented		: "à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸„à¸³à¸ªà¸±à¹ˆà¸‡à¹„à¸”à¹‰",
+UnknownToolbarSet	: "à¹„à¸¡à¹ˆà¸¡à¸µà¸à¸²à¸£à¸•à¸´à¸”à¸•à¸±à¹‰à¸‡à¸Šà¸¸à¸”à¸„à¸³à¸ªà¸±à¹ˆà¸‡à¹ƒà¸™à¹à¸–à¸šà¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­ \"%1\" à¸à¸£à¸¸à¸“à¸²à¸•à¸´à¸”à¸•à¹ˆà¸­à¸œà¸¹à¹‰à¸”à¸¹à¹à¸¥à¸£à¸°à¸šà¸š",
+NoActiveX			: "à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¹ˆà¸­à¸‡à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸­à¸‡à¸—à¹ˆà¸²à¸™à¹„à¸¡à¹ˆà¸­à¸™à¸¸à¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¸­à¸µà¸”à¸´à¸•à¹€à¸•à¸­à¸£à¹Œà¸—à¸³à¸‡à¸²à¸™ \"Run ActiveX controls and plug-ins\". à¸«à¸²à¸à¹„à¸¡à¹ˆà¸­à¸™à¸¸à¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ ActiveX controls à¸—à¹ˆà¸²à¸™à¸ˆà¸°à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„à¸”à¹‰à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸•à¹‡à¸¡à¸›à¸£à¸°à¸ªà¸´à¸—à¸˜à¸´à¸ à¸²à¸ž.",
+BrowseServerBlocked : "à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹€à¸žà¸·à¹ˆà¸­à¸—à¸³à¸‡à¸²à¸™à¸•à¹ˆà¸­à¹„à¸¡à¹ˆà¹„à¸”à¹‰ à¸à¸£à¸¸à¸“à¸²à¸›à¸´à¸”à¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹ƒà¸™à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¹ˆà¸­à¸‡à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸­à¸‡à¸—à¹ˆà¸²à¸™à¸”à¹‰à¸§à¸¢",
+DialogBlocked		: "à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹€à¸žà¸·à¹ˆà¸­à¸—à¸³à¸‡à¸²à¸™à¸•à¹ˆà¸­à¹„à¸¡à¹ˆà¹„à¸”à¹‰ à¸à¸£à¸¸à¸“à¸²à¸›à¸´à¸”à¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹ƒà¸™à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¹ˆà¸­à¸‡à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸­à¸‡à¸—à¹ˆà¸²à¸™à¸”à¹‰à¸§à¸¢",
+
+// Dialogs
+DlgBtnOK			: "à¸•à¸à¸¥à¸‡",
+DlgBtnCancel		: "à¸¢à¸à¹€à¸¥à¸´à¸",
+DlgBtnClose			: "à¸›à¸´à¸”",
+DlgBtnBrowseServer	: "à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¸ˆà¸±à¸”à¸à¸²à¸£à¹„à¸Ÿà¸¥à¹Œà¸­à¸±à¸žà¹‚à¸«à¸¥à¸”",
+DlgAdvancedTag		: "à¸‚à¸±à¹‰à¸™à¸ªà¸¹à¸‡",
+DlgOpOther			: "<à¸­à¸·à¹ˆà¸™à¹†>",
+DlgInfoTab			: "à¸­à¸´à¸™à¹‚à¸Ÿ",
+DlgAlertUrl			: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<à¹„à¸¡à¹ˆà¸£à¸°à¸šà¸¸>",
+DlgGenId			: "à¹„à¸­à¸”à¸µ",
+DlgGenLangDir		: "à¸à¸²à¸£à¹€à¸‚à¸µà¸¢à¸™-à¸­à¹ˆà¸²à¸™à¸ à¸²à¸©à¸²",
+DlgGenLangDirLtr	: "à¸ˆà¸²à¸à¸‹à¹‰à¸²à¸¢à¹„à¸›à¸‚à¸§à¸² (LTR)",
+DlgGenLangDirRtl	: "à¸ˆà¸²à¸à¸‚à¸§à¸²à¸¡à¸²à¸‹à¹‰à¸²à¸¢ (RTL)",
+DlgGenLangCode		: "à¸£à¸«à¸±à¸ªà¸ à¸²à¸©à¸²",
+DlgGenAccessKey		: "à¹à¸­à¸„à¹€à¸‹à¸ª à¸„à¸µà¸¢à¹Œ",
+DlgGenName			: "à¸Šà¸·à¹ˆà¸­",
+DlgGenTabIndex		: "à¸¥à¸³à¸”à¸±à¸šà¸‚à¸­à¸‡ à¹à¸—à¹‡à¸š",
+DlgGenLongDescr		: "à¸„à¸³à¸­à¸˜à¸´à¸šà¸²à¸¢à¸›à¸£à¸°à¸à¸­à¸š URL",
+DlgGenClass			: "à¸„à¸¥à¸²à¸ªà¸‚à¸­à¸‡à¹„à¸Ÿà¸¥à¹Œà¸à¸³à¸«à¸™à¸”à¸¥à¸±à¸à¸©à¸“à¸°à¸à¸²à¸£à¹à¸ªà¸”à¸‡à¸œà¸¥",
+DlgGenTitle			: "à¸„à¸³à¹€à¸à¸£à¸´à¹ˆà¸™à¸™à¸³",
+DlgGenContType		: "à¸Šà¸™à¸´à¸”à¸‚à¸­à¸‡à¸„à¸³à¹€à¸à¸£à¸´à¹ˆà¸™à¸™à¸³",
+DlgGenLinkCharset	: "à¸¥à¸´à¸‡à¸„à¹Œà¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡à¹„à¸›à¸¢à¸±à¸‡à¸Šà¸¸à¸”à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£",
+DlgGenStyle			: "à¸¥à¸±à¸à¸©à¸“à¸°à¸à¸²à¸£à¹à¸ªà¸”à¸‡à¸œà¸¥",
+
+// Image Dialog
+DlgImgTitle			: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸£à¸¹à¸›à¸ à¸²à¸ž",
+DlgImgInfoTab		: "à¸‚à¹‰à¸­à¸¡à¸¹à¸¥à¸‚à¸­à¸‡à¸£à¸¹à¸›à¸ à¸²à¸ž",
+DlgImgBtnUpload		: "à¸­à¸±à¸žà¹‚à¸«à¸¥à¸”à¹„à¸Ÿà¸¥à¹Œà¹„à¸›à¹€à¸à¹‡à¸šà¹„à¸§à¹‰à¸—à¸µà¹ˆà¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¹à¸¡à¹ˆà¸‚à¹ˆà¸²à¸¢ (à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œ)",
+DlgImgURL			: "à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡ URL",
+DlgImgUpload		: "à¸­à¸±à¸žà¹‚à¸«à¸¥à¸”à¹„à¸Ÿà¸¥à¹Œ",
+DlgImgAlt			: "à¸„à¸³à¸›à¸£à¸°à¸à¸­à¸šà¸£à¸¹à¸›à¸ à¸²à¸ž",
+DlgImgWidth			: "à¸„à¸§à¸²à¸¡à¸à¸§à¹‰à¸²à¸‡",
+DlgImgHeight		: "à¸„à¸§à¸²à¸¡à¸ªà¸¹à¸‡",
+DlgImgLockRatio		: "à¸à¸³à¸«à¸™à¸”à¸­à¸±à¸•à¸£à¸²à¸ªà¹ˆà¸§à¸™ à¸à¸§à¹‰à¸²à¸‡-à¸ªà¸¹à¸‡ à¹à¸šà¸šà¸„à¸‡à¸—à¸µà¹ˆ",
+DlgBtnResetSize		: "à¸à¸³à¸«à¸™à¸”à¸£à¸¹à¸›à¹€à¸—à¹ˆà¸²à¸‚à¸™à¸²à¸”à¸ˆà¸£à¸´à¸‡",
+DlgImgBorder		: "à¸‚à¸™à¸²à¸”à¸‚à¸­à¸šà¸£à¸¹à¸›",
+DlgImgHSpace		: "à¸£à¸°à¸¢à¸°à¹à¸™à¸§à¸™à¸­à¸™",
+DlgImgVSpace		: "à¸£à¸°à¸¢à¸°à¹à¸™à¸§à¸•à¸±à¹‰à¸‡",
+DlgImgAlign			: "à¸à¸²à¸£à¸ˆà¸±à¸”à¸§à¸²à¸‡",
+DlgImgAlignLeft		: "à¸Šà¸´à¸”à¸‹à¹‰à¸²à¸¢",
+DlgImgAlignAbsBottom: "à¸Šà¸´à¸”à¸”à¹‰à¸²à¸™à¸¥à¹ˆà¸²à¸‡à¸ªà¸¸à¸”",
+DlgImgAlignAbsMiddle: "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+DlgImgAlignBaseline	: "à¸Šà¸´à¸”à¸šà¸£à¸£à¸—à¸±à¸”",
+DlgImgAlignBottom	: "à¸Šà¸´à¸”à¸”à¹‰à¸²à¸™à¸¥à¹ˆà¸²à¸‡",
+DlgImgAlignMiddle	: "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡à¹à¸™à¸§à¸•à¸±à¹‰à¸‡",
+DlgImgAlignRight	: "à¸Šà¸´à¸”à¸‚à¸§à¸²",
+DlgImgAlignTextTop	: "à¹ƒà¸•à¹‰à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£",
+DlgImgAlignTop		: "à¸šà¸™à¸ªà¸¸à¸”",
+DlgImgPreview		: "à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£à¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡",
+DlgImgAlertUrl		: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸­à¸­à¸™à¹„à¸¥à¸™à¹Œà¸‚à¸­à¸‡à¹„à¸Ÿà¸¥à¹Œà¸£à¸¹à¸›à¸ à¸²à¸ž (URL)",
+DlgImgLinkTab		: "à¸¥à¸´à¹‰à¸‡à¸„à¹Œ",
+
+// Flash Dialog
+DlgFlashTitle		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¹„à¸Ÿà¸¥à¹Œ Flash",
+DlgFlashChkPlay		: "à¹€à¸¥à¹ˆà¸™à¸­à¸±à¸•à¹‚à¸™à¸¡à¸±à¸•à¸´ Auto Play",
+DlgFlashChkLoop		: "à¹€à¸¥à¹ˆà¸™à¸§à¸™à¸£à¸­à¸š Loop",
+DlgFlashChkMenu		: "à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹€à¸¡à¸™à¸¹à¸‚à¸­à¸‡ Flash",
+DlgFlashScale		: "à¸­à¸±à¸•à¸£à¸²à¸ªà¹ˆà¸§à¸™ Scale",
+DlgFlashScaleAll	: "à¹à¸ªà¸”à¸‡à¹ƒà¸«à¹‰à¹€à¸«à¹‡à¸™à¸—à¸±à¹‰à¸‡à¸«à¸¡à¸” Show all",
+DlgFlashScaleNoBorder	: "à¹„à¸¡à¹ˆà¹à¸ªà¸”à¸‡à¹€à¸ªà¹‰à¸™à¸‚à¸­à¸š No Border",
+DlgFlashScaleFit	: "à¹à¸ªà¸”à¸‡à¹ƒà¸«à¹‰à¸žà¸­à¸”à¸µà¸à¸±à¸šà¸žà¸·à¹‰à¸™à¸—à¸µà¹ˆ Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "à¸¥à¸´à¸‡à¸„à¹Œà¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡à¹€à¸§à¹‡à¸š à¸­à¸µà¹€à¸¡à¸¥à¹Œ à¸£à¸¹à¸›à¸ à¸²à¸ž à¸«à¸£à¸·à¸­à¹„à¸Ÿà¸¥à¹Œà¸­à¸·à¹ˆà¸™à¹†",
+DlgLnkInfoTab		: "à¸£à¸²à¸¢à¸¥à¸°à¹€à¸­à¸µà¸¢à¸”",
+DlgLnkTargetTab		: "à¸à¸²à¸£à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸ˆà¸­",
+
+DlgLnkType			: "à¸›à¸£à¸°à¹€à¸ à¸—à¸‚à¸­à¸‡à¸¥à¸´à¸‡à¸„à¹Œ",
+DlgLnkTypeURL		: "à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸­à¸­à¸™à¹„à¸¥à¸™à¹Œ (URL)",
+DlgLnkTypeAnchor	: "à¸ˆà¸¸à¸”à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡ (Anchor)",
+DlgLnkTypeEMail		: "à¸ªà¹ˆà¸‡à¸­à¸µà¹€à¸¡à¸¥à¹Œ (E-Mail)",
+DlgLnkProto			: "à¹‚à¸›à¸£à¹‚à¸•à¸„à¸­à¸¥",
+DlgLnkProtoOther	: "<à¸­à¸·à¹ˆà¸™à¹†>",
+DlgLnkURL			: "à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸­à¸­à¸™à¹„à¸¥à¸™à¹Œ (URL)",
+DlgLnkAnchorSel		: "à¸£à¸°à¸šà¸¸à¸‚à¹‰à¸­à¸¡à¸¹à¸¥à¸‚à¸­à¸‡à¸ˆà¸¸à¸”à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡ (Anchor)",
+DlgLnkAnchorByName	: "à¸Šà¸·à¹ˆà¸­",
+DlgLnkAnchorById	: "à¹„à¸­à¸”à¸µ",
+DlgLnkNoAnchors		: "(à¸¢à¸±à¸‡à¹„à¸¡à¹ˆà¸¡à¸µà¸ˆà¸¸à¸”à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡à¸ à¸²à¸¢à¹ƒà¸™à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£à¸™à¸µà¹‰)",
+DlgLnkEMail			: "à¸­à¸µà¹€à¸¡à¸¥à¹Œ (E-Mail)",
+DlgLnkEMailSubject	: "à¸«à¸±à¸§à¹€à¸£à¸·à¹ˆà¸­à¸‡",
+DlgLnkEMailBody		: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡",
+DlgLnkUpload		: "à¸­à¸±à¸žà¹‚à¸«à¸¥à¸”à¹„à¸Ÿà¸¥à¹Œ",
+DlgLnkBtnUpload		: "à¸šà¸±à¸™à¸—à¸¶à¸à¹„à¸Ÿà¸¥à¹Œà¹„à¸§à¹‰à¸šà¸™à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œ",
+
+DlgLnkTarget		: "à¸à¸²à¸£à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸¥à¸´à¸‡à¸„à¹Œ",
+DlgLnkTargetFrame	: "<à¹€à¸›à¸´à¸”à¹ƒà¸™à¹€à¸Ÿà¸£à¸¡>",
+DlgLnkTargetPopup	: "<à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸ˆà¸­à¹€à¸¥à¹‡à¸ (Pop-up)>",
+DlgLnkTargetBlank	: "à¹€à¸›à¸´à¸”à¸«à¸™à¹‰à¸²à¸ˆà¸­à¹ƒà¸«à¸¡à¹ˆ (_blank)",
+DlgLnkTargetParent	: "à¹€à¸›à¸´à¸”à¹ƒà¸™à¸«à¸™à¹‰à¸²à¸«à¸¥à¸±à¸ (_parent)",
+DlgLnkTargetSelf	: "à¹€à¸›à¸´à¸”à¹ƒà¸™à¸«à¸™à¹‰à¸²à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™ (_self)",
+DlgLnkTargetTop		: "à¹€à¸›à¸´à¸”à¹ƒà¸™à¸«à¸™à¹‰à¸²à¸šà¸™à¸ªà¸¸à¸” (_top)",
+DlgLnkTargetFrameName	: "à¸Šà¸·à¹ˆà¸­à¸—à¸²à¸£à¹Œà¹€à¸à¹‡à¸•à¹€à¸Ÿà¸£à¸¡",
+DlgLnkPopWinName	: "à¸£à¸°à¸šà¸¸à¸Šà¸·à¹ˆà¸­à¸«à¸™à¹‰à¸²à¸ˆà¸­à¹€à¸¥à¹‡à¸ (Pop-up)",
+DlgLnkPopWinFeat	: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¸«à¸™à¹‰à¸²à¸ˆà¸­à¹€à¸¥à¹‡à¸ (Pop-up)",
+DlgLnkPopResize		: "à¸›à¸£à¸±à¸šà¸‚à¸™à¸²à¸”à¸«à¸™à¹‰à¸²à¸ˆà¸­",
+DlgLnkPopLocation	: "à¹à¸ªà¸”à¸‡à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸‚à¸­à¸‡à¹„à¸Ÿà¸¥à¹Œ",
+DlgLnkPopMenu		: "à¹à¸ªà¸”à¸‡à¹à¸–à¸šà¹€à¸¡à¸™à¸¹",
+DlgLnkPopScroll		: "à¹à¸ªà¸”à¸‡à¹à¸–à¸šà¹€à¸¥à¸·à¹ˆà¸­à¸™",
+DlgLnkPopStatus		: "à¹à¸ªà¸”à¸‡à¹à¸–à¸šà¸ªà¸–à¸²à¸™à¸°",
+DlgLnkPopToolbar	: "à¹à¸ªà¸”à¸‡à¹à¸–à¸šà¹€à¸„à¸£à¸·à¹ˆà¸­à¸‡à¸¡à¸·à¸­",
+DlgLnkPopFullScrn	: "à¹à¸ªà¸”à¸‡à¹€à¸•à¹‡à¸¡à¸«à¸™à¹‰à¸²à¸ˆà¸­ (IE5.5++ à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™)",
+DlgLnkPopDependent	: "à¹à¸ªà¸”à¸‡à¹€à¸•à¹‡à¸¡à¸«à¸™à¹‰à¸²à¸ˆà¸­ (Netscape)",
+DlgLnkPopWidth		: "à¸à¸§à¹‰à¸²à¸‡",
+DlgLnkPopHeight		: "à¸ªà¸¹à¸‡",
+DlgLnkPopLeft		: "à¸žà¸´à¸à¸±à¸”à¸‹à¹‰à¸²à¸¢ (Left Position)",
+DlgLnkPopTop		: "à¸žà¸´à¸à¸±à¸”à¸šà¸™ (Top Position)",
+
+DlnLnkMsgNoUrl		: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸­à¸­à¸™à¹„à¸¥à¸™à¹Œ (URL)",
+DlnLnkMsgNoEMail	: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸à¸­à¸µà¹€à¸¡à¸¥à¹Œ (E-mail)",
+DlnLnkMsgNoAnchor	: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸à¸ˆà¸¸à¸”à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚à¸¢à¸‡ (Anchor)",
+DlnLnkMsgInvPopName	: "à¸Šà¸·à¹ˆà¸­à¸‚à¸­à¸‡à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¸›à¹Šà¸­à¸šà¸­à¸±à¸ž à¸ˆà¸°à¸•à¹‰à¸­à¸‡à¸‚à¸¶à¹‰à¸™à¸•à¹‰à¸™à¸”à¹‰à¸§à¸¢à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™ à¹à¸¥à¸°à¸•à¹‰à¸­à¸‡à¹„à¸¡à¹ˆà¸¡à¸µà¸Šà¹ˆà¸­à¸‡à¸§à¹ˆà¸²à¸‡à¹ƒà¸™à¸Šà¸·à¹ˆà¸­",
+
+// Color Dialog
+DlgColorTitle		: "à¹€à¸¥à¸·à¸­à¸à¸ªà¸µ",
+DlgColorBtnClear	: "à¸¥à¹‰à¸²à¸‡à¸„à¹ˆà¸²à¸£à¸«à¸±à¸ªà¸ªà¸µ",
+DlgColorHighlight	: "à¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡à¸ªà¸µ",
+DlgColorSelected	: "à¸ªà¸µà¸—à¸µà¹ˆà¹€à¸¥à¸·à¸­à¸",
+
+// Smiley Dialog
+DlgSmileyTitle		: "à¹à¸—à¸£à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“à¹Œà¸ªà¸·à¹ˆà¸­à¸­à¸²à¸£à¸¡à¸“à¹Œ",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "à¹à¸—à¸£à¸à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸žà¸´à¹€à¸¨à¸©",
+
+// Table Dialog
+DlgTableTitle		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸•à¸²à¸£à¸²à¸‡",
+DlgTableRows		: "à¹à¸–à¸§",
+DlgTableColumns		: "à¸ªà¸”à¸¡à¸™à¹Œ",
+DlgTableBorder		: "à¸‚à¸™à¸²à¸”à¹€à¸ªà¹‰à¸™à¸‚à¸­à¸š",
+DlgTableAlign		: "à¸à¸²à¸£à¸ˆà¸±à¸”à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡",
+DlgTableAlignNotSet	: "<à¹„à¸¡à¹ˆà¸£à¸°à¸šà¸¸>",
+DlgTableAlignLeft	: "à¸Šà¸´à¸”à¸‹à¹‰à¸²à¸¢",
+DlgTableAlignCenter	: "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+DlgTableAlignRight	: "à¸Šà¸´à¸”à¸‚à¸§à¸²",
+DlgTableWidth		: "à¸à¸§à¹‰à¸²à¸‡",
+DlgTableWidthPx		: "à¸ˆà¸¸à¸”à¸ªà¸µ",
+DlgTableWidthPc		: "à¹€à¸›à¸­à¸£à¹Œà¹€à¸‹à¹‡à¸™",
+DlgTableHeight		: "à¸ªà¸¹à¸‡",
+DlgTableCellSpace	: "à¸£à¸°à¸¢à¸°à¹à¸™à¸§à¸™à¸­à¸™à¸™",
+DlgTableCellPad		: "à¸£à¸°à¸¢à¸°à¹à¸™à¸§à¸•à¸±à¹‰à¸‡",
+DlgTableCaption		: "à¸«à¸±à¸§à¹€à¸£à¸·à¹ˆà¸­à¸‡à¸‚à¸­à¸‡à¸•à¸²à¸£à¸²à¸‡",
+DlgTableSummary		: "à¸ªà¸£à¸¸à¸›à¸„à¸§à¸²à¸¡",
+
+// Table Cell Dialog
+DlgCellTitle		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸Šà¹ˆà¸­à¸‡",
+DlgCellWidth		: "à¸à¸§à¹‰à¸²à¸‡",
+DlgCellWidthPx		: "à¸ˆà¸¸à¸”à¸ªà¸µ",
+DlgCellWidthPc		: "à¹€à¸›à¸­à¸£à¹Œà¹€à¸‹à¹‡à¸™",
+DlgCellHeight		: "à¸ªà¸¹à¸‡",
+DlgCellWordWrap		: "à¸•à¸±à¸”à¸šà¸£à¸£à¸—à¸±à¸”à¸­à¸±à¸•à¹‚à¸™à¸¡à¸±à¸•à¸´",
+DlgCellWordWrapNotSet	: "<à¹„à¸¡à¹ˆà¸£à¸°à¸šà¸¸>",
+DlgCellWordWrapYes	: "à¹ƒà¹ˆà¸Šà¹ˆ",
+DlgCellWordWrapNo	: "à¹„à¸¡à¹ˆ",
+DlgCellHorAlign		: "à¸à¸²à¸£à¸ˆà¸±à¸”à¸§à¸²à¸‡à¹à¸™à¸§à¸™à¸­à¸™",
+DlgCellHorAlignNotSet	: "<à¹„à¸¡à¹ˆà¸£à¸°à¸šà¸¸>",
+DlgCellHorAlignLeft	: "à¸Šà¸´à¸”à¸‹à¹‰à¸²à¸¢",
+DlgCellHorAlignCenter	: "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+DlgCellHorAlignRight: "à¸Šà¸´à¸”à¸‚à¸§à¸²",
+DlgCellVerAlign		: "à¸à¸²à¸£à¸ˆà¸±à¸”à¸§à¸²à¸‡à¹à¸™à¸§à¸•à¸±à¹‰à¸‡",
+DlgCellVerAlignNotSet	: "<à¹„à¸¡à¹ˆà¸£à¸°à¸šà¸¸>",
+DlgCellVerAlignTop	: "à¸šà¸™à¸ªà¸¸à¸”",
+DlgCellVerAlignMiddle	: "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+DlgCellVerAlignBottom	: "à¸¥à¹ˆà¸²à¸‡à¸ªà¸¸à¸”",
+DlgCellVerAlignBaseline	: "à¸­à¸´à¸‡à¸šà¸£à¸£à¸—à¸±à¸”",
+DlgCellRowSpan		: "à¸ˆà¸³à¸™à¸§à¸™à¹à¸–à¸§à¸—à¸µà¹ˆà¸„à¸£à¹ˆà¸­à¸¡à¸à¸±à¸™",
+DlgCellCollSpan		: "à¸ˆà¸³à¸™à¸§à¸™à¸ªà¸”à¸¡à¸™à¹Œà¸—à¸µà¹ˆà¸„à¸£à¹ˆà¸­à¸¡à¸à¸±à¸™",
+DlgCellBackColor	: "à¸ªà¸µà¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡",
+DlgCellBorderColor	: "à¸ªà¸µà¹€à¸ªà¹‰à¸™à¸‚à¸­à¸š",
+DlgCellBtnSelect	: "à¹€à¸¥à¸·à¸­à¸..",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "à¸„à¹‰à¸™à¸«à¸²",
+DlgFindFindBtn		: "à¸„à¹‰à¸™à¸«à¸²",
+DlgFindNotFoundMsg	: "à¹„à¸¡à¹ˆà¸žà¸šà¸„à¸³à¸—à¸µà¹ˆà¸„à¹‰à¸™à¸«à¸².",
+
+// Replace Dialog
+DlgReplaceTitle			: "à¸„à¹‰à¸™à¸«à¸²à¹à¸¥à¸°à¹à¸—à¸™à¸—à¸µà¹ˆ",
+DlgReplaceFindLbl		: "à¸„à¹‰à¸™à¸«à¸²à¸„à¸³à¸§à¹ˆà¸²:",
+DlgReplaceReplaceLbl	: "à¹à¸—à¸™à¸—à¸µà¹ˆà¸”à¹‰à¸§à¸¢:",
+DlgReplaceCaseChk		: "à¸•à¸±à¸§à¹‚à¸«à¸à¹ˆ-à¹€à¸¥à¹‡à¸ à¸•à¹‰à¸­à¸‡à¸•à¸£à¸‡à¸à¸±à¸™",
+DlgReplaceReplaceBtn	: "à¹à¸—à¸™à¸—à¸µà¹ˆ",
+DlgReplaceReplAllBtn	: "à¹à¸—à¸™à¸—à¸µà¹ˆà¸—à¸±à¹‰à¸‡à¸«à¸¡à¸”à¸—à¸µà¹ˆà¸žà¸š",
+DlgReplaceWordChk		: "à¸•à¹‰à¸­à¸‡à¸•à¸£à¸‡à¸à¸±à¸™à¸—à¸¸à¸à¸„à¸³",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¸•à¸±à¸”à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡à¸—à¸µà¹ˆà¹€à¸¥à¸·à¸­à¸à¹„à¸§à¹‰à¹„à¸”à¹‰à¹€à¸™à¸·à¹ˆà¸­à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”à¸„à¹ˆà¸²à¸£à¸°à¸”à¸±à¸šà¸„à¸§à¸²à¸¡à¸›à¸¥à¸­à¸”à¸ à¸±à¸¢. à¸à¸£à¸¸à¸“à¸²à¹ƒà¸Šà¹‰à¸›à¸¸à¹ˆà¸¡à¸¥à¸±à¸”à¹€à¸žà¸·à¹ˆà¸­à¸§à¸²à¸‡à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡à¹à¸—à¸™ (à¸à¸”à¸›à¸¸à¹ˆà¸¡ Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ X à¸žà¸£à¹‰à¸­à¸¡à¸à¸±à¸™).",
+PasteErrorCopy	: "à¹„à¸¡à¹ˆà¸ªà¸²à¸¡à¸²à¸£à¸–à¸ªà¸³à¹€à¸™à¸²à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡à¸—à¸µà¹ˆà¹€à¸¥à¸·à¸­à¸à¹„à¸§à¹‰à¹„à¸”à¹‰à¹€à¸™à¸·à¹ˆà¸­à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”à¸„à¹ˆà¸²à¸£à¸°à¸”à¸±à¸šà¸„à¸§à¸²à¸¡à¸›à¸¥à¸­à¸”à¸ à¸±à¸¢. à¸à¸£à¸¸à¸“à¸²à¹ƒà¸Šà¹‰à¸›à¸¸à¹ˆà¸¡à¸¥à¸±à¸”à¹€à¸žà¸·à¹ˆà¸­à¸§à¸²à¸‡à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡à¹à¸—à¸™ (à¸à¸”à¸›à¸¸à¹ˆà¸¡ Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ C à¸žà¸£à¹‰à¸­à¸¡à¸à¸±à¸™).",
+
+PasteAsText		: "à¸§à¸²à¸‡à¹à¸šà¸šà¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸˜à¸£à¸£à¸¡à¸”à¸²",
+PasteFromWord	: "à¸§à¸²à¸‡à¹à¸šà¸šà¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸ˆà¸²à¸à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”",
+
+DlgPasteMsg2	: "à¸à¸£à¸¸à¸“à¸²à¹ƒà¸Šà¹‰à¸„à¸µà¸¢à¹Œà¸šà¸­à¸£à¹Œà¸”à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™ à¹‚à¸”à¸¢à¸à¸”à¸›à¸¸à¹‹à¸¡ (<strong>Ctrl à¹à¸¥à¸° V</strong>)à¸žà¸£à¹‰à¸­à¸¡à¹†à¸à¸±à¸™ à¹à¸¥à¸°à¸à¸” <strong>OK</strong>.",
+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
+DlgPasteIgnoreFont		: "à¹„à¸¡à¹ˆà¸ªà¸™à¹ƒà¸ˆ Font Face definitions",
+DlgPasteRemoveStyles	: "à¸¥à¸š Styles definitions",
+
+// Color Picker
+ColorAutomatic	: "à¸ªà¸µà¸­à¸±à¸•à¹‚à¸™à¸¡à¸±à¸•à¸´",
+ColorMoreColors	: "à¹€à¸¥à¸·à¸­à¸à¸ªà¸µà¸­à¸·à¹ˆà¸™à¹†...",
+
+// Document Properties
+DocProps		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡à¹€à¸­à¸à¸ªà¸²à¸£",
+
+// Anchor Dialog
+DlgAnchorTitle		: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ Anchor",
+DlgAnchorName		: "à¸Šà¸·à¹ˆà¸­ Anchor",
+DlgAnchorErrorName	: "à¸à¸£à¸¸à¸“à¸²à¸£à¸°à¸šà¸¸à¸Šà¸·à¹ˆà¸­à¸‚à¸­à¸‡ Anchor",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "à¹„à¸¡à¹ˆà¸žà¸šà¹ƒà¸™à¸”à¸´à¸à¸Šà¸±à¸™à¸™à¸²à¸£à¸µ",
+DlgSpellChangeTo		: "à¹à¸à¹‰à¹„à¸‚à¹€à¸›à¹‡à¸™",
+DlgSpellBtnIgnore		: "à¸¢à¸à¹€à¸§à¹‰à¸™",
+DlgSpellBtnIgnoreAll	: "à¸¢à¸à¹€à¸§à¹‰à¸™à¸—à¸±à¹‰à¸‡à¸«à¸¡à¸”",
+DlgSpellBtnReplace		: "à¹à¸—à¸™à¸—à¸µà¹ˆ",
+DlgSpellBtnReplaceAll	: "à¹à¸—à¸™à¸—à¸µà¹ˆà¸—à¸±à¹‰à¸‡à¸«à¸¡à¸”",
+DlgSpellBtnUndo			: "à¸¢à¸à¹€à¸¥à¸´à¸",
+DlgSpellNoSuggestions	: "- à¹„à¸¡à¹ˆà¸¡à¸µà¸„à¸³à¹à¸™à¸°à¸™à¸³à¹ƒà¸”à¹† -",
+DlgSpellProgress		: "à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”...",
+DlgSpellNoMispell		: "à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸´à¹‰à¸™: à¹„à¸¡à¹ˆà¸žà¸šà¸„à¸³à¸ªà¸°à¸à¸”à¸œà¸´à¸”",
+DlgSpellNoChanges		: "à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸´à¹‰à¸™: à¹„à¸¡à¹ˆà¸¡à¸µà¸à¸²à¸£à¹à¸à¹‰à¸„à¸³à¹ƒà¸”à¹†",
+DlgSpellOneChange		: "à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸´à¹‰à¸™: à¹à¸à¹‰à¹„à¸‚1à¸„à¸³",
+DlgSpellManyChanges		: "à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸´à¹‰à¸™:: à¹à¸à¹‰à¹„à¸‚ %1 à¸„à¸³",
+
+IeSpellDownload			: "à¹„à¸¡à¹ˆà¹„à¸”à¹‰à¸•à¸´à¸”à¸•à¸±à¹‰à¸‡à¸£à¸°à¸šà¸šà¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„à¸³à¸ªà¸°à¸à¸”. à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸•à¸´à¸”à¸•à¸±à¹‰à¸‡à¹„à¸«à¸¡à¸„à¸£à¸±à¸š?",
+
+// Button Dialog
+DlgButtonText		: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡ (à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£)",
+DlgButtonType		: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "à¸Šà¸·à¹ˆà¸­",
+DlgCheckboxValue	: "à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£",
+DlgCheckboxSelected	: "à¹€à¸¥à¸·à¸­à¸à¹€à¸›à¹‡à¸™à¸„à¹ˆà¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™",
+
+// Form Dialog
+DlgFormName		: "à¸Šà¸·à¹ˆà¸­",
+DlgFormAction	: "à¹à¸­à¸„à¸Šà¸±à¹ˆà¸™",
+DlgFormMethod	: "à¹€à¸¡à¸˜à¸­à¸”",
+
+// Select Field Dialog
+DlgSelectName		: "à¸Šà¸·à¹ˆà¸­",
+DlgSelectValue		: "à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£",
+DlgSelectSize		: "à¸‚à¸™à¸²à¸”",
+DlgSelectLines		: "à¸šà¸£à¸£à¸—à¸±à¸”",
+DlgSelectChkMulti	: "à¹€à¸¥à¸·à¸­à¸à¸«à¸¥à¸²à¸¢à¸„à¹ˆà¸²à¹„à¸”à¹‰",
+DlgSelectOpAvail	: "à¸£à¸²à¸¢à¸à¸²à¸£à¸•à¸±à¸§à¹€à¸¥à¸·à¸­à¸",
+DlgSelectOpText		: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡",
+DlgSelectOpValue	: "à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£",
+DlgSelectBtnAdd		: "à¹€à¸žà¸´à¹ˆà¸¡",
+DlgSelectBtnModify	: "à¹à¸à¹‰à¹„à¸‚",
+DlgSelectBtnUp		: "à¸šà¸™",
+DlgSelectBtnDown	: "à¸¥à¹ˆà¸²à¸‡",
+DlgSelectBtnSetValue : "à¹€à¸¥à¸·à¸­à¸à¹€à¸›à¹‡à¸™à¸„à¹ˆà¸²à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™",
+DlgSelectBtnDelete	: "à¸¥à¸š",
+
+// Textarea Dialog
+DlgTextareaName	: "à¸Šà¸·à¹ˆà¸­",
+DlgTextareaCols	: "à¸ªà¸”à¸¡à¸ à¹Œ",
+DlgTextareaRows	: "à¹à¸–à¸§",
+
+// Text Field Dialog
+DlgTextName			: "à¸Šà¸·à¹ˆà¸­",
+DlgTextValue		: "à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£",
+DlgTextCharWidth	: "à¸„à¸§à¸²à¸¡à¸à¸§à¹‰à¸²à¸‡",
+DlgTextMaxChars		: "à¸ˆà¸³à¸™à¸§à¸™à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸ªà¸¹à¸‡à¸ªà¸¸à¸”",
+DlgTextType			: "à¸Šà¸™à¸´à¸”",
+DlgTextTypeText		: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡",
+DlgTextTypePass		: "à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™",
+
+// Hidden Field Dialog
+DlgHiddenName	: "à¸Šà¸·à¹ˆà¸­",
+DlgHiddenValue	: "à¸„à¹ˆà¸²à¸•à¸±à¸§à¹à¸›à¸£",
+
+// Bulleted List Dialog
+BulletedListProp	: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸šà¸¹à¸¥à¹€à¸¥à¹‡à¸•à¸¥à¸´à¸ªà¸•à¹Œ",
+NumberedListProp	: "à¸„à¸¸à¸“à¸ªà¸¡à¸šà¸±à¸•à¸´à¸‚à¸­à¸‡ à¸™à¸±à¸¡à¹€à¸šà¸­à¸£à¹Œà¸¥à¸´à¸ªà¸•à¹Œ",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "à¸Šà¸™à¸´à¸”",
+DlgLstTypeCircle	: "à¸£à¸¹à¸›à¸§à¸‡à¸à¸¥à¸¡",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "à¸£à¸¹à¸›à¸ªà¸µà¹ˆà¹€à¸«à¸¥à¸µà¹ˆà¸¢à¸¡",
+DlgLstTypeNumbers	: "à¸«à¸¡à¸²à¸¢à¹€à¸¥à¸‚ (1, 2, 3)",
+DlgLstTypeLCase		: "à¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹€à¸¥à¹‡à¸ (a, b, c)",
+DlgLstTypeUCase		: "à¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ (A, B, C)",
+DlgLstTypeSRoman	: "à¹€à¸¥à¸‚à¹‚à¸£à¸¡à¸±à¸™à¸žà¸´à¸¡à¸žà¹Œà¹€à¸¥à¹‡à¸ (i, ii, iii)",
+DlgLstTypeLRoman	: "à¹€à¸¥à¸‚à¹‚à¸£à¸¡à¸±à¸™à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "à¸¥à¸±à¸à¸©à¸“à¸°à¸—à¸±à¹ˆà¸§à¹„à¸›à¸‚à¸­à¸‡à¹€à¸­à¸à¸ªà¸²à¸£",
+DlgDocBackTab		: "à¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡",
+DlgDocColorsTab		: "à¸ªà¸µà¹à¸¥à¸°à¸£à¸°à¸¢à¸°à¸‚à¸­à¸š",
+DlgDocMetaTab		: "à¸‚à¹‰à¸­à¸¡à¸¹à¸¥à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸ªà¸´à¸£à¹Œà¸Šà¹€à¸­à¸™à¸ˆà¸´à¹‰à¸™",
+
+DlgDocPageTitle		: "à¸Šà¸·à¹ˆà¸­à¹„à¸•à¹€à¸•à¸´à¹‰à¸¥",
+DlgDocLangDir		: "à¸à¸²à¸£à¸­à¹ˆà¸²à¸™à¸ à¸²à¸©à¸²",
+DlgDocLangDirLTR	: "à¸ˆà¸²à¸à¸‹à¹‰à¸²à¸¢à¹„à¸›à¸‚à¸§à¸² (LTR)",
+DlgDocLangDirRTL	: "à¸ˆà¸²à¸à¸‚à¸§à¸²à¹„à¸›à¸‹à¹‰à¸²à¸¢ (RTL)",
+DlgDocLangCode		: "à¸£à¸«à¸±à¸ªà¸ à¸²à¸©à¸²",
+DlgDocCharSet		: "à¸Šà¸¸à¸”à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "à¸Šà¸¸à¸”à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸­à¸·à¹ˆà¸™à¹†",
+
+DlgDocDocType		: "à¸›à¸£à¸°à¹€à¸ à¸—à¸‚à¸­à¸‡à¹€à¸­à¸à¸ªà¸²à¸£",
+DlgDocDocTypeOther	: "à¸›à¸£à¸°à¹€à¸ à¸—à¹€à¸­à¸à¸ªà¸²à¸£à¸­à¸·à¹ˆà¸™à¹†",
+DlgDocIncXHTML		: "à¸£à¸§à¸¡à¹€à¸­à¸²  XHTML Declarations à¹„à¸§à¹‰à¸”à¹‰à¸§à¸¢",
+DlgDocBgColor		: "à¸ªà¸µà¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡",
+DlgDocBgImage		: "à¸—à¸µà¹ˆà¸­à¸¢à¸¹à¹ˆà¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸­à¸­à¸™à¹„à¸¥à¸™à¹Œà¸‚à¸­à¸‡à¸£à¸¹à¸›à¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡ (Image URL)",
+DlgDocBgNoScroll	: "à¸žà¸·à¹‰à¸™à¸«à¸¥à¸±à¸‡à¹à¸šà¸šà¹„à¸¡à¹ˆà¸¡à¸µà¹à¸–à¸šà¹€à¸¥à¸·à¹ˆà¸­à¸™",
+DlgDocCText			: "à¸‚à¹‰à¸­à¸„à¸§à¸²à¸¡",
+DlgDocCLink			: "à¸¥à¸´à¸‡à¸„à¹Œ",
+DlgDocCVisited		: "à¸¥à¸´à¸‡à¸„à¹Œà¸—à¸µà¹ˆà¹€à¸„à¸¢à¸„à¸¥à¸´à¹‰à¸à¹à¸¥à¹‰à¸§ Visited Link",
+DlgDocCActive		: "à¸¥à¸´à¸‡à¸„à¹Œà¸—à¸µà¹ˆà¸à¸³à¸¥à¸±à¸‡à¸„à¸¥à¸´à¹‰à¸ Active Link",
+DlgDocMargins		: "à¸£à¸°à¸¢à¸°à¸‚à¸­à¸šà¸‚à¸­à¸‡à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£",
+DlgDocMaTop			: "à¸”à¹‰à¸²à¸™à¸šà¸™",
+DlgDocMaLeft		: "à¸”à¹‰à¸²à¸™à¸‹à¹‰à¸²à¸¢",
+DlgDocMaRight		: "à¸”à¹‰à¸²à¸™à¸‚à¸§à¸²",
+DlgDocMaBottom		: "à¸”à¹‰à¸²à¸™à¸¥à¹ˆà¸²à¸‡",
+DlgDocMeIndex		: "à¸„à¸³à¸ªà¸³à¸„à¸±à¸à¸­à¸˜à¸´à¸šà¸²à¸¢à¹€à¸­à¸à¸ªà¸²à¸£ (à¸„à¸±à¹ˆà¸™à¸„à¸³à¸”à¹‰à¸§à¸¢ à¸„à¸­à¸¡à¸¡à¹ˆà¸²)",
+DlgDocMeDescr		: "à¸›à¸£à¸°à¹‚à¸¢à¸„à¸­à¸˜à¸´à¸šà¸²à¸¢à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹€à¸­à¸à¸ªà¸²à¸£",
+DlgDocMeAuthor		: "à¸œà¸¹à¹‰à¸ªà¸£à¹‰à¸²à¸‡à¹€à¸­à¸à¸ªà¸²à¸£",
+DlgDocMeCopy		: "à¸ªà¸‡à¸§à¸™à¸¥à¸´à¸‚à¸ªà¸´à¸—à¸˜à¸´à¹Œ",
+DlgDocPreview		: "à¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡à¸«à¸™à¹‰à¸²à¹€à¸­à¸à¸ªà¸²à¸£",
+
+// Templates Dialog
+Templates			: "à¹€à¸—à¸¡à¹€à¸žà¸¥à¸•",
+DlgTemplatesTitle	: "à¹€à¸—à¸¡à¹€à¸žà¸¥à¸•à¸‚à¸­à¸‡à¸ªà¹ˆà¸§à¸™à¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¹€à¸§à¹‡à¸šà¹„à¸‹à¸•à¹Œ",
+DlgTemplatesSelMsg	: "à¸à¸£à¸¸à¸“à¸²à¹€à¸¥à¸·à¸­à¸ à¹€à¸—à¸¡à¹€à¸žà¸¥à¸• à¹€à¸žà¸·à¹ˆà¸­à¸™à¸³à¹„à¸›à¹à¸à¹‰à¹„à¸‚à¹ƒà¸™à¸­à¸µà¸”à¸´à¸•à¹€à¸•à¸­à¸£à¹Œ<br />(à¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¸ªà¹ˆà¸§à¸™à¸™à¸µà¹‰à¸ˆà¸°à¸«à¸²à¸¢à¹„à¸›):",
+DlgTemplatesLoading	: "à¸à¸³à¸¥à¸±à¸‡à¹‚à¸«à¸¥à¸”à¸£à¸²à¸¢à¸à¸²à¸£à¹€à¸—à¸¡à¹€à¸žà¸¥à¸•à¸—à¸±à¹‰à¸‡à¸«à¸¡à¸”...",
+DlgTemplatesNoTpl	: "(à¸¢à¸±à¸‡à¹„à¸¡à¹ˆà¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”à¹€à¸—à¸¡à¹€à¸žà¸¥à¸•)",
+DlgTemplatesReplace	: "à¹à¸—à¸™à¸—à¸µà¹ˆà¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¹€à¸§à¹‡à¸šà¹„à¸‹à¸•à¹Œà¸—à¸µà¹ˆà¹€à¸¥à¸·à¸­à¸",
+
+// About Dialog
+DlgAboutAboutTab	: "à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚à¸›à¸£à¹à¸à¸£à¸¡",
+DlgAboutBrowserInfoTab	: "à¹‚à¸›à¸£à¹à¸à¸£à¸¡à¸—à¹ˆà¸­à¸‡à¹€à¸§à¹‡à¸šà¸—à¸µà¹ˆà¸—à¹ˆà¸²à¸™à¹ƒà¸Šà¹‰",
+DlgAboutLicenseTab	: "à¸¥à¸´à¸‚à¸ªà¸´à¸—à¸˜à¸´à¹Œ",
+DlgAboutVersion		: "à¸£à¸¸à¹ˆà¸™",
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/it.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/it.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/it.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Italian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Nascondi la barra degli strumenti",
+ToolbarExpand		: "Mostra la barra degli strumenti",
+
+// Toolbar Items and Context Menu
+Save				: "Salva",
+NewPage				: "Nuova pagina vuota",
+Preview				: "Anteprima",
+Cut					: "Taglia",
+Copy				: "Copia",
+Paste				: "Incolla",
+PasteText			: "Incolla come testo semplice",
+PasteWord			: "Incolla da Word",
+Print				: "Stampa",
+SelectAll			: "Seleziona tutto",
+RemoveFormat		: "Elimina formattazione",
+InsertLinkLbl		: "Collegamento",
+InsertLink			: "Inserisci/Modifica collegamento",
+RemoveLink			: "Elimina collegamento",
+Anchor				: "Inserisci/Modifica Ancora",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Immagine",
+InsertImage			: "Inserisci/Modifica immagine",
+InsertFlashLbl		: "Oggetto Flash",
+InsertFlash			: "Inserisci/Modifica Oggetto Flash",
+InsertTableLbl		: "Tabella",
+InsertTable			: "Inserisci/Modifica tabella",
+InsertLineLbl		: "Riga orizzontale",
+InsertLine			: "Inserisci riga orizzontale",
+InsertSpecialCharLbl: "Caratteri speciali",
+InsertSpecialChar	: "Inserisci carattere speciale",
+InsertSmileyLbl		: "Emoticon",
+InsertSmiley		: "Inserisci emoticon",
+About				: "Informazioni su FCKeditor",
+Bold				: "Grassetto",
+Italic				: "Corsivo",
+Underline			: "Sottolineato",
+StrikeThrough		: "Barrato",
+Subscript			: "Pedice",
+Superscript			: "Apice",
+LeftJustify			: "Allinea a sinistra",
+CenterJustify		: "Centra",
+RightJustify		: "Allinea a destra",
+BlockJustify		: "Giustifica",
+DecreaseIndent		: "Riduci rientro",
+IncreaseIndent		: "Aumenta rientro",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Annulla",
+Redo				: "Ripristina",
+NumberedListLbl		: "Elenco numerato",
+NumberedList		: "Inserisci/Modifica elenco numerato",
+BulletedListLbl		: "Elenco puntato",
+BulletedList		: "Inserisci/Modifica elenco puntato",
+ShowTableBorders	: "Mostra bordi tabelle",
+ShowDetails			: "Mostra dettagli",
+Style				: "Stile",
+FontFormat			: "Formato",
+Font				: "Font",
+FontSize			: "Dimensione",
+TextColor			: "Colore testo",
+BGColor				: "Colore sfondo",
+Source				: "Codice Sorgente",
+Find				: "Trova",
+Replace				: "Sostituisci",
+SpellCheck			: "Correttore ortografico",
+UniversalKeyboard	: "Tastiera universale",
+PageBreakLbl		: "Interruzione di pagina",
+PageBreak			: "Inserisci interruzione di pagina",
+
+Form			: "Modulo",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Campo di testo",
+Textarea		: "Area di testo",
+HiddenField		: "Campo nascosto",
+Button			: "Bottone",
+SelectionField	: "Menu di selezione",
+ImageButton		: "Bottone immagine",
+
+FitWindow		: "Massimizza l'area dell'editor",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Modifica collegamento",
+CellCM				: "Cella",
+RowCM				: "Riga",
+ColumnCM			: "Colonna",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Elimina righe",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Elimina colonne",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Elimina celle",
+MergeCells			: "Unisce celle",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Cancella Tabella",
+CellProperties		: "ProprietÃ  cella",
+TableProperties		: "ProprietÃ  tabella",
+ImageProperties		: "ProprietÃ  immagine",
+FlashProperties		: "ProprietÃ  Oggetto Flash",
+
+AnchorProp			: "ProprietÃ  ancora",
+ButtonProp			: "ProprietÃ  bottone",
+CheckboxProp		: "ProprietÃ  checkbox",
+HiddenFieldProp		: "ProprietÃ  campo nascosto",
+RadioButtonProp		: "ProprietÃ  radio button",
+ImageButtonProp		: "ProprietÃ  bottone immagine",
+TextFieldProp		: "ProprietÃ  campo di testo",
+SelectionFieldProp	: "ProprietÃ  menu di selezione",
+TextareaProp		: "ProprietÃ  area di testo",
+FormProp			: "ProprietÃ  modulo",
+
+FontFormats			: "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Elaborazione XHTML in corso. Attendere prego...",
+Done				: "Completato",
+PasteWordConfirm	: "Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?",
+NotCompatiblePaste	: "Questa funzione Ã¨ disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?",
+UnknownToolbarItem	: "Elemento della barra strumenti sconosciuto \"%1\"",
+UnknownCommand		: "Comando sconosciuto \"%1\"",
+NotImplemented		: "Comando non implementato",
+UnknownToolbarSet	: "La barra di strumenti \"%1\" non esiste",
+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.",
+BrowseServerBlocked : "Non Ã¨ possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",
+DialogBlocked		: "Non Ã¨ possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annulla",
+DlgBtnClose			: "Chiudi",
+DlgBtnBrowseServer	: "Cerca sul server",
+DlgAdvancedTag		: "Avanzate",
+DlgOpOther			: "<Altro>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Devi inserire l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<non impostato>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Direzione scrittura",
+DlgGenLangDirLtr	: "Da Sinistra a Destra (LTR)",
+DlgGenLangDirRtl	: "Da Destra a Sinistra (RTL)",
+DlgGenLangCode		: "Codice Lingua",
+DlgGenAccessKey		: "Scorciatoia<br />da tastiera",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Ordine di tabulazione",
+DlgGenLongDescr		: "URL descrizione estesa",
+DlgGenClass			: "Nome classe CSS",
+DlgGenTitle			: "Titolo",
+DlgGenContType		: "Tipo della risorsa collegata",
+DlgGenLinkCharset	: "Set di caretteri della risorsa collegata",
+DlgGenStyle			: "Stile",
+
+// Image Dialog
+DlgImgTitle			: "ProprietÃ  immagine",
+DlgImgInfoTab		: "Informazioni immagine",
+DlgImgBtnUpload		: "Invia al server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carica",
+DlgImgAlt			: "Testo alternativo",
+DlgImgWidth			: "Larghezza",
+DlgImgHeight		: "Altezza",
+DlgImgLockRatio		: "Blocca rapporto",
+DlgBtnResetSize		: "Reimposta dimensione",
+DlgImgBorder		: "Bordo",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Allineamento",
+DlgImgAlignLeft		: "Sinistra",
+DlgImgAlignAbsBottom: "In basso assoluto",
+DlgImgAlignAbsMiddle: "Centrato assoluto",
+DlgImgAlignBaseline	: "Linea base",
+DlgImgAlignBottom	: "In Basso",
+DlgImgAlignMiddle	: "Centrato",
+DlgImgAlignRight	: "Destra",
+DlgImgAlignTextTop	: "In alto al testo",
+DlgImgAlignTop		: "In Alto",
+DlgImgPreview		: "Anteprima",
+DlgImgAlertUrl		: "Devi inserire l'URL per l'immagine",
+DlgImgLinkTab		: "Collegamento",
+
+// Flash Dialog
+DlgFlashTitle		: "ProprietÃ  Oggetto Flash",
+DlgFlashChkPlay		: "Avvio Automatico",
+DlgFlashChkLoop		: "Cicla",
+DlgFlashChkMenu		: "Abilita Menu di Flash",
+DlgFlashScale		: "Ridimensiona",
+DlgFlashScaleAll	: "Mostra Tutto",
+DlgFlashScaleNoBorder	: "Senza Bordo",
+DlgFlashScaleFit	: "Dimensione Esatta",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Collegamento",
+DlgLnkInfoTab		: "Informazioni collegamento",
+DlgLnkTargetTab		: "Destinazione",
+
+DlgLnkType			: "Tipo di Collegamento",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancora nella pagina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocollo",
+DlgLnkProtoOther	: "<altro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Scegli Ancora",
+DlgLnkAnchorByName	: "Per Nome",
+DlgLnkAnchorById	: "Per id elemento",
+DlgLnkNoAnchors		: "(Nessuna ancora disponibile nel documento)",
+DlgLnkEMail			: "Indirizzo E-Mail",
+DlgLnkEMailSubject	: "Oggetto del messaggio",
+DlgLnkEMailBody		: "Corpo del messaggio",
+DlgLnkUpload		: "Carica",
+DlgLnkBtnUpload		: "Invia al Server",
+
+DlgLnkTarget		: "Destinazione",
+DlgLnkTargetFrame	: "<riquadro>",
+DlgLnkTargetPopup	: "<finestra popup>",
+DlgLnkTargetBlank	: "Nuova finestra (_blank)",
+DlgLnkTargetParent	: "Finestra padre (_parent)",
+DlgLnkTargetSelf	: "Stessa finestra (_self)",
+DlgLnkTargetTop		: "Finestra superiore (_top)",
+DlgLnkTargetFrameName	: "Nome del riquadro di destinazione",
+DlgLnkPopWinName	: "Nome finestra popup",
+DlgLnkPopWinFeat	: "Caratteristiche finestra popup",
+DlgLnkPopResize		: "Ridimensionabile",
+DlgLnkPopLocation	: "Barra degli indirizzi",
+DlgLnkPopMenu		: "Barra del menu",
+DlgLnkPopScroll		: "Barre di scorrimento",
+DlgLnkPopStatus		: "Barra di stato",
+DlgLnkPopToolbar	: "Barra degli strumenti",
+DlgLnkPopFullScrn	: "A tutto schermo (IE)",
+DlgLnkPopDependent	: "Dipendente (Netscape)",
+DlgLnkPopWidth		: "Larghezza",
+DlgLnkPopHeight		: "Altezza",
+DlgLnkPopLeft		: "Posizione da sinistra",
+DlgLnkPopTop		: "Posizione dall'alto",
+
+DlnLnkMsgNoUrl		: "Devi inserire l'URL del collegamento",
+DlnLnkMsgNoEMail	: "Devi inserire un'indirizzo e-mail",
+DlnLnkMsgNoAnchor	: "Devi selezionare un'ancora",
+DlnLnkMsgInvPopName	: "Il nome del popup deve iniziare con una lettera, e non puÃ² contenere spazi",
+
+// Color Dialog
+DlgColorTitle		: "Seleziona colore",
+DlgColorBtnClear	: "Vuota",
+DlgColorHighlight	: "Evidenziato",
+DlgColorSelected	: "Selezionato",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserisci emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleziona carattere speciale",
+
+// Table Dialog
+DlgTableTitle		: "ProprietÃ  tabella",
+DlgTableRows		: "Righe",
+DlgTableColumns		: "Colonne",
+DlgTableBorder		: "Dimensione bordo",
+DlgTableAlign		: "Allineamento",
+DlgTableAlignNotSet	: "<non impostato>",
+DlgTableAlignLeft	: "Sinistra",
+DlgTableAlignCenter	: "Centrato",
+DlgTableAlignRight	: "Destra",
+DlgTableWidth		: "Larghezza",
+DlgTableWidthPx		: "pixel",
+DlgTableWidthPc		: "percento",
+DlgTableHeight		: "Altezza",
+DlgTableCellSpace	: "Spaziatura celle",
+DlgTableCellPad		: "Padding celle",
+DlgTableCaption		: "Intestazione",
+DlgTableSummary		: "Indice",
+
+// Table Cell Dialog
+DlgCellTitle		: "ProprietÃ  cella",
+DlgCellWidth		: "Larghezza",
+DlgCellWidthPx		: "pixel",
+DlgCellWidthPc		: "percento",
+DlgCellHeight		: "Altezza",
+DlgCellWordWrap		: "A capo automatico",
+DlgCellWordWrapNotSet	: "<non impostato>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Allineamento orizzontale",
+DlgCellHorAlignNotSet	: "<non impostato>",
+DlgCellHorAlignLeft	: "Sinistra",
+DlgCellHorAlignCenter	: "Centrato",
+DlgCellHorAlignRight: "Destra",
+DlgCellVerAlign		: "Allineamento verticale",
+DlgCellVerAlignNotSet	: "<non impostato>",
+DlgCellVerAlignTop	: "In Alto",
+DlgCellVerAlignMiddle	: "Centrato",
+DlgCellVerAlignBottom	: "In Basso",
+DlgCellVerAlignBaseline	: "Linea base",
+DlgCellRowSpan		: "Righe occupate",
+DlgCellCollSpan		: "Colonne occupate",
+DlgCellBackColor	: "Colore sfondo",
+DlgCellBorderColor	: "Colore bordo",
+DlgCellBtnSelect	: "Scegli...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Trova",
+DlgFindFindBtn		: "Trova",
+DlgFindNotFoundMsg	: "L'elemento cercato non Ã¨ stato trovato.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Sostituisci",
+DlgReplaceFindLbl		: "Trova:",
+DlgReplaceReplaceLbl	: "Sostituisci con:",
+DlgReplaceCaseChk		: "Maiuscole/minuscole",
+DlgReplaceReplaceBtn	: "Sostituisci",
+DlgReplaceReplAllBtn	: "Sostituisci tutto",
+DlgReplaceWordChk		: "Solo parole intere",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).",
+PasteErrorCopy	: "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).",
+
+PasteAsText		: "Incolla come testo semplice",
+PasteFromWord	: "Incolla da Word",
+
+DlgPasteMsg2	: "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignora le definizioni di Font",
+DlgPasteRemoveStyles	: "Rimuovi le definizioni di Stile",
+
+// Color Picker
+ColorAutomatic	: "Automatico",
+ColorMoreColors	: "Altri colori...",
+
+// Document Properties
+DocProps		: "ProprietÃ  del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ProprietÃ  ancora",
+DlgAnchorName		: "Nome ancora",
+DlgAnchorErrorName	: "Inserici il nome dell'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Non nel dizionario",
+DlgSpellChangeTo		: "Cambia in",
+DlgSpellBtnIgnore		: "Ignora",
+DlgSpellBtnIgnoreAll	: "Ignora tutto",
+DlgSpellBtnReplace		: "Cambia",
+DlgSpellBtnReplaceAll	: "Cambia tutto",
+DlgSpellBtnUndo			: "Annulla",
+DlgSpellNoSuggestions	: "- Nessun suggerimento -",
+DlgSpellProgress		: "Controllo ortografico in corso",
+DlgSpellNoMispell		: "Controllo ortografico completato: nessun errore trovato",
+DlgSpellNoChanges		: "Controllo ortografico completato: nessuna parola cambiata",
+DlgSpellOneChange		: "Controllo ortografico completato: 1 parola cambiata",
+DlgSpellManyChanges		: "Controllo ortografico completato: %1 parole cambiate",
+
+IeSpellDownload			: "Contollo ortografico non installato. Lo vuoi scaricare ora?",
+
+// Button Dialog
+DlgButtonText		: "Testo (Value)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Bottone",
+DlgButtonTypeSbm	: "Invio",
+DlgButtonTypeRst	: "Annulla",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valore",
+DlgCheckboxSelected	: "Selezionato",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Azione",
+DlgFormMethod	: "Metodo",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valore",
+DlgSelectSize		: "Dimensione",
+DlgSelectLines		: "righe",
+DlgSelectChkMulti	: "Permetti selezione multipla",
+DlgSelectOpAvail	: "Opzioni disponibili",
+DlgSelectOpText		: "Testo",
+DlgSelectOpValue	: "Valore",
+DlgSelectBtnAdd		: "Aggiungi",
+DlgSelectBtnModify	: "Modifica",
+DlgSelectBtnUp		: "Su",
+DlgSelectBtnDown	: "Gi",
+DlgSelectBtnSetValue : "Imposta come predefinito",
+DlgSelectBtnDelete	: "Rimuovi",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colonne",
+DlgTextareaRows	: "Righe",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valore",
+DlgTextCharWidth	: "Larghezza",
+DlgTextMaxChars		: "Numero massimo di caratteri",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Testo",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valore",
+
+// Bulleted List Dialog
+BulletedListProp	: "ProprietÃ  lista puntata",
+NumberedListProp	: "ProprietÃ  lista numerata",
+DlgLstStart			: "Inizio",
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Tondo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrato",
+DlgLstTypeNumbers	: "Numeri (1, 2, 3)",
+DlgLstTypeLCase		: "Caratteri minuscoli (a, b, c)",
+DlgLstTypeUCase		: "Caratteri maiuscoli (A, B, C)",
+DlgLstTypeSRoman	: "Numeri Romani minuscoli (i, ii, iii)",
+DlgLstTypeLRoman	: "Numeri Romani maiuscoli (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Genarale",
+DlgDocBackTab		: "Sfondo",
+DlgDocColorsTab		: "Colori e margini",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titolo pagina",
+DlgDocLangDir		: "Direzione scrittura",
+DlgDocLangDirLTR	: "Da Sinistra a Destra (LTR)",
+DlgDocLangDirRTL	: "Da Destra a Sinistra (RTL)",
+DlgDocLangCode		: "Codice Lingua",
+DlgDocCharSet		: "Set di caretteri",
+DlgDocCharSetCE		: "Europa Centrale",
+DlgDocCharSetCT		: "Cinese Tradizionale (Big5)",
+DlgDocCharSetCR		: "Cirillico",
+DlgDocCharSetGR		: "Greco",
+DlgDocCharSetJP		: "Giapponese",
+DlgDocCharSetKR		: "Coreano",
+DlgDocCharSetTR		: "Turco",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europa Occidentale",
+DlgDocCharSetOther	: "Altro set di caretteri",
+
+DlgDocDocType		: "Intestazione DocType",
+DlgDocDocTypeOther	: "Altra intestazione DocType",
+DlgDocIncXHTML		: "Includi dichiarazione XHTML",
+DlgDocBgColor		: "Colore di sfondo",
+DlgDocBgImage		: "Immagine di sfondo",
+DlgDocBgNoScroll	: "Sfondo fissato",
+DlgDocCText			: "Testo",
+DlgDocCLink			: "Collegamento",
+DlgDocCVisited		: "Collegamento visitato",
+DlgDocCActive		: "Collegamento attivo",
+DlgDocMargins		: "Margini",
+DlgDocMaTop			: "In Alto",
+DlgDocMaLeft		: "A Sinistra",
+DlgDocMaRight		: "A Destra",
+DlgDocMaBottom		: "In Basso",
+DlgDocMeIndex		: "Chiavi di indicizzazione documento (separate da virgola)",
+DlgDocMeDescr		: "Descrizione documento",
+DlgDocMeAuthor		: "Autore",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Anteprima",
+
+// Templates Dialog
+Templates			: "Modelli",
+DlgTemplatesTitle	: "Contenuto dei modelli",
+DlgTemplatesSelMsg	: "Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrÃ  eliminato):",
+DlgTemplatesLoading	: "Caricamento modelli in corso. Attendere prego...",
+DlgTemplatesNoTpl	: "(Nessun modello definito)",
+DlgTemplatesReplace	: "Cancella il contenuto corrente",
+
+// About Dialog
+DlgAboutAboutTab	: "Informazioni",
+DlgAboutBrowserInfoTab	: "Informazioni Browser",
+DlgAboutLicenseTab	: "Licenza",
+DlgAboutVersion		: "versione",
+DlgAboutInfo		: "Per maggiori informazioni visitare"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sl.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sl.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sl.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Slovenian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "ZloÅ¾i orodno vrstico",
+ToolbarExpand		: "RazÅ¡iri orodno vrstico",
+
+// Toolbar Items and Context Menu
+Save				: "Shrani",
+NewPage				: "Nova stran",
+Preview				: "Predogled",
+Cut					: "IzreÅ¾i",
+Copy				: "Kopiraj",
+Paste				: "Prilepi",
+PasteText			: "Prilepi kot golo besedilo",
+PasteWord			: "Prilepi iz Worda",
+Print				: "Natisni",
+SelectAll			: "Izberi vse",
+RemoveFormat		: "Odstrani oblikovanje",
+InsertLinkLbl		: "Povezava",
+InsertLink			: "Vstavi/uredi povezavo",
+RemoveLink			: "Odstrani povezavo",
+Anchor				: "Vstavi/uredi zaznamek",
+AnchorDelete		: "Odstrani zaznamek",
+InsertImageLbl		: "Slika",
+InsertImage			: "Vstavi/uredi sliko",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Vstavi/Uredi Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Vstavi/uredi tabelo",
+InsertLineLbl		: "ÄŒrta",
+InsertLine			: "Vstavi vodoravno Ärto",
+InsertSpecialCharLbl: "Posebni znak",
+InsertSpecialChar	: "Vstavi posebni znak",
+InsertSmileyLbl		: "SmeÅ¡ko",
+InsertSmiley		: "Vstavi smeÅ¡ka",
+About				: "O FCKeditorju",
+Bold				: "Krepko",
+Italic				: "LeÅ¾eÄe",
+Underline			: "PodÄrtano",
+StrikeThrough		: "PreÄrtano",
+Subscript			: "Podpisano",
+Superscript			: "Nadpisano",
+LeftJustify			: "Leva poravnava",
+CenterJustify		: "Sredinska poravnava",
+RightJustify		: "Desna poravnava",
+BlockJustify		: "Obojestranska poravnava",
+DecreaseIndent		: "ZmanjÅ¡aj zamik",
+IncreaseIndent		: "PoveÄaj zamik",
+Blockquote			: "Citat",
+Undo				: "Razveljavi",
+Redo				: "Ponovi",
+NumberedListLbl		: "OÅ¡tevilÄen seznam",
+NumberedList		: "Vstavi/odstrani oÅ¡tevilÄevanje",
+BulletedListLbl		: "OznaÄen seznam",
+BulletedList		: "Vstavi/odstrani oznaÄevanje",
+ShowTableBorders	: "PokaÅ¾i meje tabele",
+ShowDetails			: "PokaÅ¾i podrobnosti",
+Style				: "Slog",
+FontFormat			: "Oblika",
+Font				: "Pisava",
+FontSize			: "Velikost",
+TextColor			: "Barva besedila",
+BGColor				: "Barva ozadja",
+Source				: "Izvorna koda",
+Find				: "Najdi",
+Replace				: "Zamenjaj",
+SpellCheck			: "Preveri Ärkovanje",
+UniversalKeyboard	: "VeÄjeziÄna tipkovnica",
+PageBreakLbl		: "Prelom strani",
+PageBreak			: "Vstavi prelom strani",
+
+Form			: "Obrazec",
+Checkbox		: "Potrditveno polje",
+RadioButton		: "Izbirno polje",
+TextField		: "Vnosno polje",
+Textarea		: "Vnosno obmoÄje",
+HiddenField		: "Skrito polje",
+Button			: "Gumb",
+SelectionField	: "Spustni seznam",
+ImageButton		: "Gumb s sliko",
+
+FitWindow		: "RazÅ¡iri velikost urejevalnika Äez cel zaslon",
+ShowBlocks		: "PrikaÅ¾i ograde",
+
+// Context Menu
+EditLink			: "Uredi povezavo",
+CellCM				: "Celica",
+RowCM				: "Vrstica",
+ColumnCM			: "Stolpec",
+InsertRowAfter		: "Vstavi vrstico za",
+InsertRowBefore		: "Vstavi vrstico pred",
+DeleteRows			: "IzbriÅ¡i vrstice",
+InsertColumnAfter	: "Vstavi stolpec za",
+InsertColumnBefore	: "Vstavi stolpec pred",
+DeleteColumns		: "IzbriÅ¡i stolpce",
+InsertCellAfter		: "Vstavi celico za",
+InsertCellBefore	: "Vstavi celico pred",
+DeleteCells			: "IzbriÅ¡i celice",
+MergeCells			: "ZdruÅ¾i celice",
+MergeRight			: "ZdruÅ¾i desno",
+MergeDown			: "DruÅ¾i navzdol",
+HorizontalSplitCell	: "Razdeli celico vodoravno",
+VerticalSplitCell	: "Razdeli celico navpiÄno",
+TableDelete			: "IzbriÅ¡i tabelo",
+CellProperties		: "Lastnosti celice",
+TableProperties		: "Lastnosti tabele",
+ImageProperties		: "Lastnosti slike",
+FlashProperties		: "Lastnosti Flash",
+
+AnchorProp			: "Lastnosti zaznamka",
+ButtonProp			: "Lastnosti gumba",
+CheckboxProp		: "Lastnosti potrditvenega polja",
+HiddenFieldProp		: "Lastnosti skritega polja",
+RadioButtonProp		: "Lastnosti izbirnega polja",
+ImageButtonProp		: "Lastnosti gumba s sliko",
+TextFieldProp		: "Lastnosti vnosnega polja",
+SelectionFieldProp	: "Lastnosti spustnega seznama",
+TextareaProp		: "Lastnosti vnosnega obmoÄja",
+FormProp			: "Lastnosti obrazca",
+
+FontFormats			: "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Obdelujem XHTML. Prosim poÄakajte...",
+Done				: "Narejeno",
+PasteWordConfirm	: "Izgleda, da Å¾elite prilepiti besedilo iz Worda. Ali ga Å¾elite oÄistiti, preden ga prilepite?",
+NotCompatiblePaste	: "Ta ukaz deluje le v Internet Explorerje razliÄice 5.5 ali viÅ¡je. Ali Å¾elite prilepiti brez ÄiÅ¡Äenja?",
+UnknownToolbarItem	: "Neznan element orodne vrstice \"%1\"",
+UnknownCommand		: "Neznano ime ukaza \"%1\"",
+NotImplemented		: "Ukaz ni izdelan",
+UnknownToolbarSet	: "Skupina orodnih vrstic \"%1\" ne obstoja",
+NoActiveX			: "Varnostne nastavitve vaÅ¡ega brskalnika lahko omejijo delovanje nekaterih zmoÅ¾nosti urejevalnika. ÄŒe ne Å¾elite zaznavati napak in sporoÄil o manjkajoÄih zmoÅ¾nostih, omogoÄite moÅ¾nost \"ZaÅ¾eni ActiveX kontrolnike in vtiÄnike\".",
+BrowseServerBlocked : "Brskalnik virov se ne more odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.",
+DialogBlocked		: "Pogovorno okno se ni moglo odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.",
+
+// Dialogs
+DlgBtnOK			: "V redu",
+DlgBtnCancel		: "PrekliÄi",
+DlgBtnClose			: "Zapri",
+DlgBtnBrowseServer	: "Prebrskaj na streÅ¾niku",
+DlgAdvancedTag		: "Napredno",
+DlgOpOther			: "<Ostalo>",
+DlgInfoTab			: "Podatki",
+DlgAlertUrl			: "Prosim vpiÅ¡i spletni naslov",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ni postavljen>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smer jezika",
+DlgGenLangDirLtr	: "Od leve proti desni (LTR)",
+DlgGenLangDirRtl	: "Od desne proti levi (RTL)",
+DlgGenLangCode		: "Oznaka jezika",
+DlgGenAccessKey		: "Vstopno geslo",
+DlgGenName			: "Ime",
+DlgGenTabIndex		: "Å tevilka tabulatorja",
+DlgGenLongDescr		: "Dolg opis URL-ja",
+DlgGenClass			: "Razred stilne predloge",
+DlgGenTitle			: "Predlagani naslov",
+DlgGenContType		: "Predlagani tip vsebine (content-type)",
+DlgGenLinkCharset	: "Kodna tabela povezanega vira",
+DlgGenStyle			: "Slog",
+
+// Image Dialog
+DlgImgTitle			: "Lastnosti slike",
+DlgImgInfoTab		: "Podatki o sliki",
+DlgImgBtnUpload		: "PoÅ¡lji na streÅ¾nik",
+DlgImgURL			: "URL",
+DlgImgUpload		: "PoÅ¡lji",
+DlgImgAlt			: "Nadomestno besedilo",
+DlgImgWidth			: "Å irina",
+DlgImgHeight		: "ViÅ¡ina",
+DlgImgLockRatio		: "Zakleni razmerje",
+DlgBtnResetSize		: "Ponastavi velikost",
+DlgImgBorder		: "Obroba",
+DlgImgHSpace		: "Vodoravni razmik",
+DlgImgVSpace		: "NavpiÄni razmik",
+DlgImgAlign			: "Poravnava",
+DlgImgAlignLeft		: "Levo",
+DlgImgAlignAbsBottom: "Popolnoma na dno",
+DlgImgAlignAbsMiddle: "Popolnoma v sredino",
+DlgImgAlignBaseline	: "Na osnovno Ärto",
+DlgImgAlignBottom	: "Na dno",
+DlgImgAlignMiddle	: "V sredino",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Besedilo na vrh",
+DlgImgAlignTop		: "Na vrh",
+DlgImgPreview		: "Predogled",
+DlgImgAlertUrl		: "Vnesite URL slike",
+DlgImgLinkTab		: "Povezava",
+
+// Flash Dialog
+DlgFlashTitle		: "Lastnosti Flash",
+DlgFlashChkPlay		: "Samodejno predvajaj",
+DlgFlashChkLoop		: "Ponavljanje",
+DlgFlashChkMenu		: "OmogoÄi Flash Meni",
+DlgFlashScale		: "PoveÄava",
+DlgFlashScaleAll	: "PokaÅ¾i vse",
+DlgFlashScaleNoBorder	: "Brez obrobe",
+DlgFlashScaleFit	: "NatanÄno prileganje",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Povezava",
+DlgLnkInfoTab		: "Podatki o povezavi",
+DlgLnkTargetTab		: "Cilj",
+
+DlgLnkType			: "Vrsta povezave",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Zaznamek na tej strani",
+DlgLnkTypeEMail		: "Elektronski naslov",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izberi zaznamek",
+DlgLnkAnchorByName	: "Po imenu zaznamka",
+DlgLnkAnchorById	: "Po ID-ju elementa",
+DlgLnkNoAnchors		: "(V tem dokumentu ni zaznamkov)",
+DlgLnkEMail			: "Elektronski naslov",
+DlgLnkEMailSubject	: "Predmet sporoÄila",
+DlgLnkEMailBody		: "Vsebina sporoÄila",
+DlgLnkUpload		: "Prenesi",
+DlgLnkBtnUpload		: "PoÅ¡lji na streÅ¾nik",
+
+DlgLnkTarget		: "Cilj",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<pojavno okno>",
+DlgLnkTargetBlank	: "Novo okno (_blank)",
+DlgLnkTargetParent	: "StarÅ¡evsko okno (_parent)",
+DlgLnkTargetSelf	: "Isto okno (_self)",
+DlgLnkTargetTop		: "NajviÅ¡je okno (_top)",
+DlgLnkTargetFrameName	: "Ime ciljnega okvirja",
+DlgLnkPopWinName	: "Ime pojavnega okna",
+DlgLnkPopWinFeat	: "ZnaÄilnosti pojavnega okna",
+DlgLnkPopResize		: "Spremenljive velikosti",
+DlgLnkPopLocation	: "Naslovna vrstica",
+DlgLnkPopMenu		: "Menijska vrstica",
+DlgLnkPopScroll		: "Drsniki",
+DlgLnkPopStatus		: "Vrstica stanja",
+DlgLnkPopToolbar	: "Orodna vrstica",
+DlgLnkPopFullScrn	: "Celozaslonska slika (IE)",
+DlgLnkPopDependent	: "Podokno (Netscape)",
+DlgLnkPopWidth		: "Å irina",
+DlgLnkPopHeight		: "ViÅ¡ina",
+DlgLnkPopLeft		: "Lega levo",
+DlgLnkPopTop		: "Lega na vrhu",
+
+DlnLnkMsgNoUrl		: "Vnesite URL povezave",
+DlnLnkMsgNoEMail	: "Vnesite elektronski naslov",
+DlnLnkMsgNoAnchor	: "Izberite zaznamek",
+DlnLnkMsgInvPopName	: "Ime pojavnega okna se mora zaÄeti s Ärko ali Å¡tevilko in ne sme vsebovati presledkov",
+
+// Color Dialog
+DlgColorTitle		: "Izberite barvo",
+DlgColorBtnClear	: "PoÄisti",
+DlgColorHighlight	: "OznaÄi",
+DlgColorSelected	: "Izbrano",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vstavi smeÅ¡ka",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Izberi posebni znak",
+
+// Table Dialog
+DlgTableTitle		: "Lastnosti tabele",
+DlgTableRows		: "Vrstice",
+DlgTableColumns		: "Stolpci",
+DlgTableBorder		: "Velikost obrobe",
+DlgTableAlign		: "Poravnava",
+DlgTableAlignNotSet	: "<Ni nastavljeno>",
+DlgTableAlignLeft	: "Levo",
+DlgTableAlignCenter	: "Sredinsko",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Å irina",
+DlgTableWidthPx		: "pik",
+DlgTableWidthPc		: "procentov",
+DlgTableHeight		: "ViÅ¡ina",
+DlgTableCellSpace	: "Razmik med celicami",
+DlgTableCellPad		: "Polnilo med celicami",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Povzetek",
+
+// Table Cell Dialog
+DlgCellTitle		: "Lastnosti celice",
+DlgCellWidth		: "Å irina",
+DlgCellWidthPx		: "pik",
+DlgCellWidthPc		: "procentov",
+DlgCellHeight		: "ViÅ¡ina",
+DlgCellWordWrap		: "Pomikanje besedila",
+DlgCellWordWrapNotSet	: "<Ni nastavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravna poravnava",
+DlgCellHorAlignNotSet	: "<Ni nastavljeno>",
+DlgCellHorAlignLeft	: "Levo",
+DlgCellHorAlignCenter	: "Sredinsko",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "NavpiÄna poravnava",
+DlgCellVerAlignNotSet	: "<Ni nastavljeno>",
+DlgCellVerAlignTop	: "Na vrh",
+DlgCellVerAlignMiddle	: "V sredino",
+DlgCellVerAlignBottom	: "Na dno",
+DlgCellVerAlignBaseline	: "Na osnovno Ärto",
+DlgCellRowSpan		: "Spojenih vrstic (row-span)",
+DlgCellCollSpan		: "Spojenih stolpcev (col-span)",
+DlgCellBackColor	: "Barva ozadja",
+DlgCellBorderColor	: "Barva obrobe",
+DlgCellBtnSelect	: "Izberi...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Najdi in zamenjaj",
+
+// Find Dialog
+DlgFindTitle		: "Najdi",
+DlgFindFindBtn		: "Najdi",
+DlgFindNotFoundMsg	: "Navedeno besedilo ni bilo najdeno.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamenjaj",
+DlgReplaceFindLbl		: "Najdi:",
+DlgReplaceReplaceLbl	: "Zamenjaj z:",
+DlgReplaceCaseChk		: "Razlikuj velike in male Ärke",
+DlgReplaceReplaceBtn	: "Zamenjaj",
+DlgReplaceReplAllBtn	: "Zamenjaj vse",
+DlgReplaceWordChk		: "Samo cele besede",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).",
+PasteErrorCopy	: "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).",
+
+PasteAsText		: "Prilepi kot golo besedilo",
+PasteFromWord	: "Prilepi iz Worda",
+
+DlgPasteMsg2	: "Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.",
+DlgPasteSec		: "Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odloÅ¾iÅ¡Äa. Vsebino odloÅ¾iÅ¡Äa ponovno prilepite v to okno.",
+DlgPasteIgnoreFont		: "Prezri obliko pisave",
+DlgPasteRemoveStyles	: "Odstrani nastavitve stila",
+
+// Color Picker
+ColorAutomatic	: "Samodejno",
+ColorMoreColors	: "VeÄ barv...",
+
+// Document Properties
+DocProps		: "Lastnosti dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Lastnosti zaznamka",
+DlgAnchorName		: "Ime zaznamka",
+DlgAnchorErrorName	: "Prosim vnesite ime zaznamka",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ni v slovarju",
+DlgSpellChangeTo		: "Spremeni v",
+DlgSpellBtnIgnore		: "Prezri",
+DlgSpellBtnIgnoreAll	: "Prezri vse",
+DlgSpellBtnReplace		: "Zamenjaj",
+DlgSpellBtnReplaceAll	: "Zamenjaj vse",
+DlgSpellBtnUndo			: "Razveljavi",
+DlgSpellNoSuggestions	: "- Ni predlogov -",
+DlgSpellProgress		: "Preverjanje Ärkovanja se izvaja...",
+DlgSpellNoMispell		: "ÄŒrkovanje je konÄano: Brez napak",
+DlgSpellNoChanges		: "ÄŒrkovanje je konÄano: Nobena beseda ni bila spremenjena",
+DlgSpellOneChange		: "ÄŒrkovanje je konÄano: Spremenjena je bila ena beseda",
+DlgSpellManyChanges		: "ÄŒrkovanje je konÄano: Spremenjenih je bilo %1 besed",
+
+IeSpellDownload			: "ÄŒrkovalnik ni nameÅ¡Äen. Ali ga Å¾elite prenesti sedaj?",
+
+// Button Dialog
+DlgButtonText		: "Besedilo (Vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Gumb",
+DlgButtonTypeSbm	: "Potrdi",
+DlgButtonTypeRst	: "Ponastavi",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ime",
+DlgCheckboxValue	: "Vrednost",
+DlgCheckboxSelected	: "Izbrano",
+
+// Form Dialog
+DlgFormName		: "Ime",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Ime",
+DlgSelectValue		: "Vrednost",
+DlgSelectSize		: "Velikost",
+DlgSelectLines		: "vrstic",
+DlgSelectChkMulti	: "Dovoli izbor veÄih vrstic",
+DlgSelectOpAvail	: "RazpoloÅ¾ljive izbire",
+DlgSelectOpText		: "Besedilo",
+DlgSelectOpValue	: "Vrednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Spremeni",
+DlgSelectBtnUp		: "Gor",
+DlgSelectBtnDown	: "Dol",
+DlgSelectBtnSetValue : "Postavi kot privzeto izbiro",
+DlgSelectBtnDelete	: "IzbriÅ¡i",
+
+// Textarea Dialog
+DlgTextareaName	: "Ime",
+DlgTextareaCols	: "Stolpcev",
+DlgTextareaRows	: "Vrstic",
+
+// Text Field Dialog
+DlgTextName			: "Ime",
+DlgTextValue		: "Vrednost",
+DlgTextCharWidth	: "DolÅ¾ina",
+DlgTextMaxChars		: "NajveÄje Å¡tevilo znakov",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Besedilo",
+DlgTextTypePass		: "Geslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ime",
+DlgHiddenValue	: "Vrednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Lastnosti oznaÄenega seznama",
+NumberedListProp	: "Lastnosti oÅ¡tevilÄenega seznama",
+DlgLstStart			: "ZaÄetek",
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Pikica",
+DlgLstTypeDisc		: "Kroglica",
+DlgLstTypeSquare	: "Kvadratek",
+DlgLstTypeNumbers	: "Å tevilke (1, 2, 3)",
+DlgLstTypeLCase		: "Male Ärke (a, b, c)",
+DlgLstTypeUCase		: "Velike Ärke (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske Å¡tevilke (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske Å¡tevilke (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "SploÅ¡no",
+DlgDocBackTab		: "Ozadje",
+DlgDocColorsTab		: "Barve in zamiki",
+DlgDocMetaTab		: "Meta podatki",
+
+DlgDocPageTitle		: "Naslov strani",
+DlgDocLangDir		: "Smer jezika",
+DlgDocLangDirLTR	: "Od leve proti desni (LTR)",
+DlgDocLangDirRTL	: "Od desne proti levi (RTL)",
+DlgDocLangCode		: "Oznaka jezika",
+DlgDocCharSet		: "Kodna tabela",
+DlgDocCharSetCE		: "Srednjeevropsko",
+DlgDocCharSetCT		: "Tradicionalno Kitajsko (Big5)",
+DlgDocCharSetCR		: "Cirilica",
+DlgDocCharSetGR		: "GrÅ¡ko",
+DlgDocCharSetJP		: "Japonsko",
+DlgDocCharSetKR		: "Korejsko",
+DlgDocCharSetTR		: "TurÅ¡ko",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Zahodnoevropsko",
+DlgDocCharSetOther	: "Druga kodna tabela",
+
+DlgDocDocType		: "Glava tipa dokumenta",
+DlgDocDocTypeOther	: "Druga glava tipa dokumenta",
+DlgDocIncXHTML		: "Vstavi XHTML deklaracije",
+DlgDocBgColor		: "Barva ozadja",
+DlgDocBgImage		: "URL slike za ozadje",
+DlgDocBgNoScroll	: "NepremiÄno ozadje",
+DlgDocCText			: "Besedilo",
+DlgDocCLink			: "Povezava",
+DlgDocCVisited		: "Obiskana povezava",
+DlgDocCActive		: "Aktivna povezava",
+DlgDocMargins		: "Zamiki strani",
+DlgDocMaTop			: "Na vrhu",
+DlgDocMaLeft		: "Levo",
+DlgDocMaRight		: "Desno",
+DlgDocMaBottom		: "Spodaj",
+DlgDocMeIndex		: "KljuÄne besede (loÄene z vejicami)",
+DlgDocMeDescr		: "Opis strani",
+DlgDocMeAuthor		: "Avtor",
+DlgDocMeCopy		: "Avtorske pravice",
+DlgDocPreview		: "Predogled",
+
+// Templates Dialog
+Templates			: "Predloge",
+DlgTemplatesTitle	: "Vsebinske predloge",
+DlgTemplatesSelMsg	: "Izberite predlogo, ki jo Å¾elite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):",
+DlgTemplatesLoading	: "Nalagam seznam predlog. Prosim poÄakajte...",
+DlgTemplatesNoTpl	: "(Ni pripravljenih predlog)",
+DlgTemplatesReplace	: "Zamenjaj trenutno vsebino",
+
+// About Dialog
+DlgAboutAboutTab	: "Vizitka",
+DlgAboutBrowserInfoTab	: "Informacije o brskalniku",
+DlgAboutLicenseTab	: "Dovoljenja",
+DlgAboutVersion		: "razliÄica",
+DlgAboutInfo		: "Za veÄ informacij obiÅ¡Äite"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lt.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lt.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lt.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Lithuanian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Sutraukti mygtukÅ³ juostÄ…",
+ToolbarExpand		: "IÅ¡plÄ—sti mygtukÅ³ juostÄ…",
+
+// Toolbar Items and Context Menu
+Save				: "IÅ¡saugoti",
+NewPage				: "Naujas puslapis",
+Preview				: "PerÅ¾iÅ«ra",
+Cut					: "IÅ¡kirpti",
+Copy				: "Kopijuoti",
+Paste				: "Ä®dÄ—ti",
+PasteText			: "Ä®dÄ—ti kaip grynÄ… tekstÄ…",
+PasteWord			: "Ä®dÄ—ti iÅ¡ Word",
+Print				: "Spausdinti",
+SelectAll			: "PaÅ¾ymÄ—ti viskÄ…",
+RemoveFormat		: "Panaikinti formatÄ…",
+InsertLinkLbl		: "Nuoroda",
+InsertLink			: "Ä®terpti/taisyti nuorodÄ…",
+RemoveLink			: "Panaikinti nuorodÄ…",
+Anchor				: "Ä®terpti/modifikuoti Å¾ymÄ™",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Vaizdas",
+InsertImage			: "Ä®terpti/taisyti vaizdÄ…",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ä®terpti/taisyti Flash",
+InsertTableLbl		: "LentelÄ—",
+InsertTable			: "Ä®terpti/taisyti lentelÄ™",
+InsertLineLbl		: "Linija",
+InsertLine			: "Ä®terpti horizontaliÄ… linijÄ…",
+InsertSpecialCharLbl: "Spec. simbolis",
+InsertSpecialChar	: "Ä®terpti specialÅ³ simbolÄ¯",
+InsertSmileyLbl		: "Veideliai",
+InsertSmiley		: "Ä®terpti veidelÄ¯",
+About				: "Apie FCKeditor",
+Bold				: "Pusjuodis",
+Italic				: "Kursyvas",
+Underline			: "Pabrauktas",
+StrikeThrough		: "Perbrauktas",
+Subscript			: "Apatinis indeksas",
+Superscript			: "VirÅ¡utinis indeksas",
+LeftJustify			: "Lygiuoti kairÄ™",
+CenterJustify		: "Centruoti",
+RightJustify		: "Lygiuoti deÅ¡inÄ™",
+BlockJustify		: "Lygiuoti abi puses",
+DecreaseIndent		: "SumaÅ¾inti Ä¯traukÄ…",
+IncreaseIndent		: "Padidinti Ä¯traukÄ…",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "AtÅ¡aukti",
+Redo				: "Atstatyti",
+NumberedListLbl		: "Numeruotas sÄ…raÅ¡as",
+NumberedList		: "Ä®terpti/Panaikinti numeruotÄ… sÄ…raÅ¡Ä…",
+BulletedListLbl		: "SuÅ¾enklintas sÄ…raÅ¡as",
+BulletedList		: "Ä®terpti/Panaikinti suÅ¾enklintÄ… sÄ…raÅ¡Ä…",
+ShowTableBorders	: "Rodyti lentelÄ—s rÄ—mus",
+ShowDetails			: "Rodyti detales",
+Style				: "Stilius",
+FontFormat			: "Å rifto formatas",
+Font				: "Å riftas",
+FontSize			: "Å rifto dydis",
+TextColor			: "Teksto spalva",
+BGColor				: "Fono spalva",
+Source				: "Å altinis",
+Find				: "Rasti",
+Replace				: "Pakeisti",
+SpellCheck			: "RaÅ¡ybos tikrinimas",
+UniversalKeyboard	: "Universali klaviatÅ«ra",
+PageBreakLbl		: "PuslapiÅ³ skirtukas",
+PageBreak			: "Ä®terpti puslapiÅ³ skirtukÄ…",
+
+Form			: "Forma",
+Checkbox		: "Å½ymimasis langelis",
+RadioButton		: "Å½ymimoji akutÄ—",
+TextField		: "Teksto laukas",
+Textarea		: "Teksto sritis",
+HiddenField		: "Nerodomas laukas",
+Button			: "Mygtukas",
+SelectionField	: "Atrankos laukas",
+ImageButton		: "Vaizdinis mygtukas",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Taisyti nuorodÄ…",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Å alinti eilutes",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Å alinti stulpelius",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Å alinti langelius",
+MergeCells			: "Sujungti langelius",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Å alinti lentelÄ™",
+CellProperties		: "Langelio savybÄ—s",
+TableProperties		: "LentelÄ—s savybÄ—s",
+ImageProperties		: "Vaizdo savybÄ—s",
+FlashProperties		: "Flash savybÄ—s",
+
+AnchorProp			: "Å½ymÄ—s savybÄ—s",
+ButtonProp			: "Mygtuko savybÄ—s",
+CheckboxProp		: "Å½ymimojo langelio savybÄ—s",
+HiddenFieldProp		: "Nerodomo lauko savybÄ—s",
+RadioButtonProp		: "Å½ymimosios akutÄ—s savybÄ—s",
+ImageButtonProp		: "Vaizdinio mygtuko savybÄ—s",
+TextFieldProp		: "Teksto lauko savybÄ—s",
+SelectionFieldProp	: "Atrankos lauko savybÄ—s",
+TextareaProp		: "Teksto srities savybÄ—s",
+FormProp			: "Formos savybÄ—s",
+
+FontFormats			: "Normalus;Formuotas;Kreipinio;AntraÅ¡tinis 1;AntraÅ¡tinis 2;AntraÅ¡tinis 3;AntraÅ¡tinis 4;AntraÅ¡tinis 5;AntraÅ¡tinis 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Apdorojamas XHTML. PraÅ¡ome palaukti...",
+Done				: "Baigta",
+PasteWordConfirm	: "Ä®dedamas tekstas yra panaÅ¡us Ä¯ kopijÄ… iÅ¡ Word. Ar JÅ«s norite prieÅ¡ Ä¯dÄ—jimÄ… iÅ¡valyti jÄ¯?",
+NotCompatiblePaste	: "Å i komanda yra prieinama tik per Internet Explorer 5.5 ar aukÅ¡tesnÄ™ versijÄ…. Ar JÅ«s norite Ä¯terpti be valymo?",
+UnknownToolbarItem	: "NeÅ¾inomas mygtukÅ³ juosta elementas \"%1\"",
+UnknownCommand		: "NeÅ¾inomas komandos vardas \"%1\"",
+NotImplemented		: "Komanda nÄ—ra Ä¯gyvendinta",
+UnknownToolbarSet	: "MygtukÅ³ juostos rinkinys \"%1\" neegzistuoja",
+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.",
+BrowseServerBlocked : "NeÄ¯manoma atidaryti naujo narÅ¡yklÄ—s lango. Ä®sitikinkite, kad iÅ¡kylanÄiÅ³ langÅ³ blokavimo programos neveiksnios.",
+DialogBlocked		: "NeÄ¯manoma atidaryti dialogo lango. Ä®sitikinkite, kad iÅ¡kylanÄiÅ³ langÅ³ blokavimo programos neveiksnios.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Nutraukti",
+DlgBtnClose			: "UÅ¾daryti",
+DlgBtnBrowseServer	: "NarÅ¡yti po serverÄ¯",
+DlgAdvancedTag		: "Papildomas",
+DlgOpOther			: "<Kita>",
+DlgInfoTab			: "Informacija",
+DlgAlertUrl			: "PraÅ¡ome Ä¯raÅ¡yti URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nÄ—ra nustatyta>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Teksto kryptis",
+DlgGenLangDirLtr	: "IÅ¡ kairÄ—s Ä¯ deÅ¡inÄ™ (LTR)",
+DlgGenLangDirRtl	: "IÅ¡ deÅ¡inÄ—s Ä¯ kairÄ™ (RTL)",
+DlgGenLangCode		: "Kalbos kodas",
+DlgGenAccessKey		: "Prieigos raktas",
+DlgGenName			: "Vardas",
+DlgGenTabIndex		: "Tabuliavimo indeksas",
+DlgGenLongDescr		: "Ilgas apraÅ¡ymas URL",
+DlgGenClass			: "StiliÅ³ lentelÄ—s klasÄ—s",
+DlgGenTitle			: "KonsultacinÄ— antraÅ¡tÄ—",
+DlgGenContType		: "Konsultacinio turinio tipas",
+DlgGenLinkCharset	: "SusietÅ³ iÅ¡tekliÅ³ simboliÅ³ lentelÄ—",
+DlgGenStyle			: "Stilius",
+
+// Image Dialog
+DlgImgTitle			: "Vaizdo savybÄ—s",
+DlgImgInfoTab		: "Vaizdo informacija",
+DlgImgBtnUpload		: "SiÅ³sti Ä¯ serverÄ¯",
+DlgImgURL			: "URL",
+DlgImgUpload		: "NusiÅ³sti",
+DlgImgAlt			: "Alternatyvus Tekstas",
+DlgImgWidth			: "Plotis",
+DlgImgHeight		: "AukÅ¡tis",
+DlgImgLockRatio		: "IÅ¡laikyti proporcijÄ…",
+DlgBtnResetSize		: "Atstatyti dydÄ¯",
+DlgImgBorder		: "RÄ—melis",
+DlgImgHSpace		: "Hor.ErdvÄ—",
+DlgImgVSpace		: "Vert.ErdvÄ—",
+DlgImgAlign			: "Lygiuoti",
+DlgImgAlignLeft		: "KairÄ™",
+DlgImgAlignAbsBottom: "AbsoliuÄiÄ… apaÄiÄ…",
+DlgImgAlignAbsMiddle: "AbsoliutÅ³ vidurÄ¯",
+DlgImgAlignBaseline	: "ApatinÄ™ linijÄ…",
+DlgImgAlignBottom	: "ApaÄiÄ…",
+DlgImgAlignMiddle	: "VidurÄ¯",
+DlgImgAlignRight	: "DeÅ¡inÄ™",
+DlgImgAlignTextTop	: "Teksto virÅ¡Å«nÄ™",
+DlgImgAlignTop		: "VirÅ¡Å«nÄ™",
+DlgImgPreview		: "PerÅ¾iÅ«ra",
+DlgImgAlertUrl		: "PraÅ¡ome Ä¯vesti vaizdo URL",
+DlgImgLinkTab		: "Nuoroda",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash savybÄ—s",
+DlgFlashChkPlay		: "Automatinis paleidimas",
+DlgFlashChkLoop		: "Ciklas",
+DlgFlashChkMenu		: "Leisti Flash meniu",
+DlgFlashScale		: "Mastelis",
+DlgFlashScaleAll	: "Rodyti visÄ…",
+DlgFlashScaleNoBorder	: "Be rÄ—melio",
+DlgFlashScaleFit	: "Tikslus atitikimas",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Nuoroda",
+DlgLnkInfoTab		: "Nuorodos informacija",
+DlgLnkTargetTab		: "Paskirtis",
+
+DlgLnkType			: "Nuorodos tipas",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Å½ymÄ— Å¡iame puslapyje",
+DlgLnkTypeEMail		: "El.paÅ¡tas",
+DlgLnkProto			: "Protokolas",
+DlgLnkProtoOther	: "<kitas>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Pasirinkite Å¾ymÄ™",
+DlgLnkAnchorByName	: "Pagal Å¾ymÄ—s vardÄ…",
+DlgLnkAnchorById	: "Pagal Å¾ymÄ—s Id",
+DlgLnkNoAnchors		: "(Å iame dokumente Å¾ymiÅ³ nÄ—ra)",
+DlgLnkEMail			: "El.paÅ¡to adresas",
+DlgLnkEMailSubject	: "Å½inutÄ—s tema",
+DlgLnkEMailBody		: "Å½inutÄ—s turinys",
+DlgLnkUpload		: "SiÅ³sti",
+DlgLnkBtnUpload		: "SiÅ³sti Ä¯ serverÄ¯",
+
+DlgLnkTarget		: "Paskirties vieta",
+DlgLnkTargetFrame	: "<kadras>",
+DlgLnkTargetPopup	: "<iÅ¡skleidÅ¾iamas langas>",
+DlgLnkTargetBlank	: "Naujas langas (_blank)",
+DlgLnkTargetParent	: "Pirminis langas (_parent)",
+DlgLnkTargetSelf	: "Tas pats langas (_self)",
+DlgLnkTargetTop		: "Svarbiausias langas (_top)",
+DlgLnkTargetFrameName	: "Paskirties kadro vardas",
+DlgLnkPopWinName	: "Paskirties lango vardas",
+DlgLnkPopWinFeat	: "IÅ¡skleidÅ¾iamo lango savybÄ—s",
+DlgLnkPopResize		: "KeiÄiamas dydis",
+DlgLnkPopLocation	: "Adreso juosta",
+DlgLnkPopMenu		: "Meniu juosta",
+DlgLnkPopScroll		: "Slinkties juostos",
+DlgLnkPopStatus		: "BÅ«senos juosta",
+DlgLnkPopToolbar	: "MygtukÅ³ juosta",
+DlgLnkPopFullScrn	: "Visas ekranas (IE)",
+DlgLnkPopDependent	: "Priklausomas (Netscape)",
+DlgLnkPopWidth		: "Plotis",
+DlgLnkPopHeight		: "AukÅ¡tis",
+DlgLnkPopLeft		: "KairÄ— pozicija",
+DlgLnkPopTop		: "VirÅ¡utinÄ— pozicija",
+
+DlnLnkMsgNoUrl		: "PraÅ¡ome Ä¯vesti nuorodos URL",
+DlnLnkMsgNoEMail	: "PraÅ¡ome Ä¯vesti el.paÅ¡to adresÄ…",
+DlnLnkMsgNoAnchor	: "PraÅ¡ome pasirinkti Å¾ymÄ™",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Pasirinkite spalvÄ…",
+DlgColorBtnClear	: "Trinti",
+DlgColorHighlight	: "ParyÅ¡kinta",
+DlgColorSelected	: "PaÅ¾ymÄ—ta",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ä®terpti veidelÄ¯",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Pasirinkite specialÅ³ simbolÄ¯",
+
+// Table Dialog
+DlgTableTitle		: "LentelÄ—s savybÄ—s",
+DlgTableRows		: "EilutÄ—s",
+DlgTableColumns		: "Stulpeliai",
+DlgTableBorder		: "RÄ—melio dydis",
+DlgTableAlign		: "Lygiuoti",
+DlgTableAlignNotSet	: "<Nenustatyta>",
+DlgTableAlignLeft	: "KairÄ™",
+DlgTableAlignCenter	: "CentrÄ…",
+DlgTableAlignRight	: "DeÅ¡inÄ™",
+DlgTableWidth		: "Plotis",
+DlgTableWidthPx		: "taÅ¡kais",
+DlgTableWidthPc		: "procentais",
+DlgTableHeight		: "AukÅ¡tis",
+DlgTableCellSpace	: "Tarpas tarp langeliÅ³",
+DlgTableCellPad		: "Trapas nuo langelio rÄ—mo iki teksto",
+DlgTableCaption		: "AntraÅ¡tÄ—",
+DlgTableSummary		: "Santrauka",
+
+// Table Cell Dialog
+DlgCellTitle		: "Langelio savybÄ—s",
+DlgCellWidth		: "Plotis",
+DlgCellWidthPx		: "taÅ¡kais",
+DlgCellWidthPc		: "procentais",
+DlgCellHeight		: "AukÅ¡tis",
+DlgCellWordWrap		: "Teksto lauÅ¾ymas",
+DlgCellWordWrapNotSet	: "<Nenustatyta>",
+DlgCellWordWrapYes	: "Taip",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizontaliai lygiuoti",
+DlgCellHorAlignNotSet	: "<Nenustatyta>",
+DlgCellHorAlignLeft	: "KairÄ™",
+DlgCellHorAlignCenter	: "CentrÄ…",
+DlgCellHorAlignRight: "DeÅ¡inÄ™",
+DlgCellVerAlign		: "Vertikaliai lygiuoti",
+DlgCellVerAlignNotSet	: "<Nenustatyta>",
+DlgCellVerAlignTop	: "VirÅ¡Å³",
+DlgCellVerAlignMiddle	: "VidurÄ¯",
+DlgCellVerAlignBottom	: "ApaÄiÄ…",
+DlgCellVerAlignBaseline	: "ApatinÄ™ linijÄ…",
+DlgCellRowSpan		: "EiluÄiÅ³ apjungimas",
+DlgCellCollSpan		: "StulpeliÅ³ apjungimas",
+DlgCellBackColor	: "Fono spalva",
+DlgCellBorderColor	: "RÄ—melio spalva",
+DlgCellBtnSelect	: "PaÅ¾ymÄ—ti...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "PaieÅ¡ka",
+DlgFindFindBtn		: "Surasti",
+DlgFindNotFoundMsg	: "Nurodytas tekstas nerastas.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Pakeisti",
+DlgReplaceFindLbl		: "Surasti tekstÄ…:",
+DlgReplaceReplaceLbl	: "Pakeisti tekstu:",
+DlgReplaceCaseChk		: "Skirti didÅ¾iÄ…sias ir maÅ¾Ä…sias raides",
+DlgReplaceReplaceBtn	: "Pakeisti",
+DlgReplaceReplAllBtn	: "Pakeisti viskÄ…",
+DlgReplaceWordChk		: "Atitikti pilnÄ… Å¾odÄ¯",
+
+// Paste Operations / Dialog
+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).",
+PasteErrorCopy	: "JÅ«sÅ³ narÅ¡yklÄ—s saugumo nustatymai neleidÅ¾ia redaktoriui automatiÅ¡kai Ä¯vykdyti kopijavimo operacijÅ³. Tam praÅ¡ome naudoti klaviatÅ«rÄ… (Ctrl+C).",
+
+PasteAsText		: "Ä®dÄ—ti kaip grynÄ… tekstÄ…",
+PasteFromWord	: "Ä®dÄ—ti iÅ¡ Word",
+
+DlgPasteMsg2	: "Å½emiau esanÄiame Ä¯vedimo lauke Ä¯dÄ—kite tekstÄ…, naudodami klaviatÅ«rÄ… (<STRONG>Ctrl+V</STRONG>) ir spÅ«stelkite mygtukÄ… <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignoruoti Å¡riftÅ³ nustatymus",
+DlgPasteRemoveStyles	: "PaÅ¡alinti stiliÅ³ nustatymus",
+
+// Color Picker
+ColorAutomatic	: "Automatinis",
+ColorMoreColors	: "Daugiau spalvÅ³...",
+
+// Document Properties
+DocProps		: "Dokumento savybÄ—s",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Å½ymÄ—s savybÄ—s",
+DlgAnchorName		: "Å½ymÄ—s vardas",
+DlgAnchorErrorName	: "PraÅ¡ome Ä¯vesti Å¾ymÄ—s vardÄ…",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Å½odyne nerastas",
+DlgSpellChangeTo		: "Pakeisti Ä¯",
+DlgSpellBtnIgnore		: "Ignoruoti",
+DlgSpellBtnIgnoreAll	: "Ignoruoti visus",
+DlgSpellBtnReplace		: "Pakeisti",
+DlgSpellBtnReplaceAll	: "Pakeisti visus",
+DlgSpellBtnUndo			: "AtÅ¡aukti",
+DlgSpellNoSuggestions	: "- NÄ—ra pasiÅ«lymÅ³ -",
+DlgSpellProgress		: "Vyksta raÅ¡ybos tikrinimas...",
+DlgSpellNoMispell		: "RaÅ¡ybos tikrinimas baigtas: Nerasta raÅ¡ybos klaidÅ³",
+DlgSpellNoChanges		: "RaÅ¡ybos tikrinimas baigtas: NÄ—ra pakeistÅ³ Å¾odÅ¾iÅ³",
+DlgSpellOneChange		: "RaÅ¡ybos tikrinimas baigtas: Vienas Å¾odis pakeistas",
+DlgSpellManyChanges		: "RaÅ¡ybos tikrinimas baigtas: Pakeista %1 Å¾odÅ¾iÅ³",
+
+IeSpellDownload			: "RaÅ¡ybos tikrinimas neinstaliuotas. Ar JÅ«s norite jÄ¯ dabar atsisiÅ³sti?",
+
+// Button Dialog
+DlgButtonText		: "Tekstas (ReikÅ¡mÄ—)",
+DlgButtonType		: "Tipas",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Vardas",
+DlgCheckboxValue	: "ReikÅ¡mÄ—",
+DlgCheckboxSelected	: "PaÅ¾ymÄ—tas",
+
+// Form Dialog
+DlgFormName		: "Vardas",
+DlgFormAction	: "Veiksmas",
+DlgFormMethod	: "Metodas",
+
+// Select Field Dialog
+DlgSelectName		: "Vardas",
+DlgSelectValue		: "ReikÅ¡mÄ—",
+DlgSelectSize		: "Dydis",
+DlgSelectLines		: "eiluÄiÅ³",
+DlgSelectChkMulti	: "Leisti daugeriopÄ… atrankÄ…",
+DlgSelectOpAvail	: "Galimos parinktys",
+DlgSelectOpText		: "Tekstas",
+DlgSelectOpValue	: "ReikÅ¡mÄ—",
+DlgSelectBtnAdd		: "Ä®traukti",
+DlgSelectBtnModify	: "Modifikuoti",
+DlgSelectBtnUp		: "AukÅ¡tyn",
+DlgSelectBtnDown	: "Å½emyn",
+DlgSelectBtnSetValue : "Laikyti paÅ¾ymÄ—ta reikÅ¡me",
+DlgSelectBtnDelete	: "Trinti",
+
+// Textarea Dialog
+DlgTextareaName	: "Vardas",
+DlgTextareaCols	: "Ilgis",
+DlgTextareaRows	: "Plotis",
+
+// Text Field Dialog
+DlgTextName			: "Vardas",
+DlgTextValue		: "ReikÅ¡mÄ—",
+DlgTextCharWidth	: "Ilgis simboliais",
+DlgTextMaxChars		: "Maksimalus simboliÅ³ skaiÄius",
+DlgTextType			: "Tipas",
+DlgTextTypeText		: "Tekstas",
+DlgTextTypePass		: "SlaptaÅ¾odis",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Vardas",
+DlgHiddenValue	: "ReikÅ¡mÄ—",
+
+// Bulleted List Dialog
+BulletedListProp	: "SuÅ¾enklinto sÄ…raÅ¡o savybÄ—s",
+NumberedListProp	: "Numeruoto sÄ…raÅ¡o savybÄ—s",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipas",
+DlgLstTypeCircle	: "Apskritimas",
+DlgLstTypeDisc		: "Diskas",
+DlgLstTypeSquare	: "Kvadratas",
+DlgLstTypeNumbers	: "SkaiÄiai (1, 2, 3)",
+DlgLstTypeLCase		: "MaÅ¾osios raidÄ—s (a, b, c)",
+DlgLstTypeUCase		: "DidÅ¾iosios raidÄ—s (A, B, C)",
+DlgLstTypeSRoman	: "RomÄ—nÅ³ maÅ¾ieji skaiÄiai (i, ii, iii)",
+DlgLstTypeLRoman	: "RomÄ—nÅ³ didieji skaiÄiai (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Bendros savybÄ—s",
+DlgDocBackTab		: "Fonas",
+DlgDocColorsTab		: "Spalvos ir kraÅ¡tinÄ—s",
+DlgDocMetaTab		: "Meta duomenys",
+
+DlgDocPageTitle		: "Puslapio antraÅ¡tÄ—",
+DlgDocLangDir		: "Kalbos kryptis",
+DlgDocLangDirLTR	: "IÅ¡ kairÄ—s Ä¯ deÅ¡inÄ™ (LTR)",
+DlgDocLangDirRTL	: "IÅ¡ deÅ¡inÄ—s Ä¯ kairÄ™ (RTL)",
+DlgDocLangCode		: "Kalbos kodas",
+DlgDocCharSet		: "SimboliÅ³ kodavimo lentelÄ—",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Kita simboliÅ³ kodavimo lentelÄ—",
+
+DlgDocDocType		: "Dokumento tipo antraÅ¡tÄ—",
+DlgDocDocTypeOther	: "Kita dokumento tipo antraÅ¡tÄ—",
+DlgDocIncXHTML		: "Ä®traukti XHTML deklaracijas",
+DlgDocBgColor		: "Fono spalva",
+DlgDocBgImage		: "Fono paveikslÄ—lio nuoroda (URL)",
+DlgDocBgNoScroll	: "Neslenkantis fonas",
+DlgDocCText			: "Tekstas",
+DlgDocCLink			: "Nuoroda",
+DlgDocCVisited		: "Aplankyta nuoroda",
+DlgDocCActive		: "Aktyvi nuoroda",
+DlgDocMargins		: "Puslapio kraÅ¡tinÄ—s",
+DlgDocMaTop			: "VirÅ¡uje",
+DlgDocMaLeft		: "KairÄ—je",
+DlgDocMaRight		: "DeÅ¡inÄ—je",
+DlgDocMaBottom		: "ApaÄioje",
+DlgDocMeIndex		: "Dokumento indeksavimo raktiniai Å¾odÅ¾iai (atskirti kableliais)",
+DlgDocMeDescr		: "Dokumento apibÅ«dinimas",
+DlgDocMeAuthor		: "Autorius",
+DlgDocMeCopy		: "AutorinÄ—s teisÄ—s",
+DlgDocPreview		: "PerÅ¾iÅ«ra",
+
+// Templates Dialog
+Templates			: "Å ablonai",
+DlgTemplatesTitle	: "Turinio Å¡ablonai",
+DlgTemplatesSelMsg	: "Pasirinkite norimÄ… Å¡ablonÄ…<br>(<b>DÄ—mesio!</b> esamas turinys bus prarastas):",
+DlgTemplatesLoading	: "Ä®keliamas Å¡ablonÅ³ sÄ…raÅ¡as. PraÅ¡ome palaukti...",
+DlgTemplatesNoTpl	: "(Å ablonÅ³ sÄ…raÅ¡as tuÅ¡Äias)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Apie",
+DlgAboutBrowserInfoTab	: "NarÅ¡yklÄ—s informacija",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versija",
+DlgAboutInfo		: "PapildomÄ… informacijÄ… galima gauti"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr-latn.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Serbian (Latin) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Smanji liniju sa alatkama",
+ToolbarExpand		: "Proiri liniju sa alatkama",
+
+// Toolbar Items and Context Menu
+Save				: "SaÄuvaj",
+NewPage				: "Nova stranica",
+Preview				: "Izgled stranice",
+Cut					: "Iseci",
+Copy				: "Kopiraj",
+Paste				: "Zalepi",
+PasteText			: "Zalepi kao neformatiran tekst",
+PasteWord			: "Zalepi iz Worda",
+Print				: "Å tampa",
+SelectAll			: "OznaÄi sve",
+RemoveFormat		: "Ukloni formatiranje",
+InsertLinkLbl		: "Link",
+InsertLink			: "Unesi/izmeni link",
+RemoveLink			: "Ukloni link",
+Anchor				: "Unesi/izmeni sidro",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Slika",
+InsertImage			: "Unesi/izmeni sliku",
+InsertFlashLbl		: "FleÅ¡",
+InsertFlash			: "Unesi/izmeni fleÅ¡",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Unesi/izmeni tabelu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Unesi horizontalnu liniju",
+InsertSpecialCharLbl: "Specijalni karakteri",
+InsertSpecialChar	: "Unesi specijalni karakter",
+InsertSmileyLbl		: "Smajli",
+InsertSmiley		: "Unesi smajlija",
+About				: "O FCKeditoru",
+Bold				: "Podebljano",
+Italic				: "Kurziv",
+Underline			: "PodvuÄeno",
+StrikeThrough		: "Precrtano",
+Subscript			: "Indeks",
+Superscript			: "Stepen",
+LeftJustify			: "Levo ravnanje",
+CenterJustify		: "Centriran tekst",
+RightJustify		: "Desno ravnanje",
+BlockJustify		: "Obostrano ravnanje",
+DecreaseIndent		: "Smanji levu marginu",
+IncreaseIndent		: "UveÄ‡aj levu marginu",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Poniï¿½ti akciju",
+Redo				: "Ponovi akciju",
+NumberedListLbl		: "Nabrojiva lista",
+NumberedList		: "Unesi/ukloni nabrojivu listu",
+BulletedListLbl		: "Nenabrojiva lista",
+BulletedList		: "Unesi/ukloni nenabrojivu listu",
+ShowTableBorders	: "PrikaÅ¾i okvir tabele",
+ShowDetails			: "PrikaÅ¾i detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "VeliÄina fonta",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "KÃ´d",
+Find				: "Pretraga",
+Replace				: "Zamena",
+SpellCheck			: "Proveri spelovanje",
+UniversalKeyboard	: "Univerzalna tastatura",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Forma",
+Checkbox		: "Polje za potvrdu",
+RadioButton		: "Radio-dugme",
+TextField		: "Tekstualno polje",
+Textarea		: "Zona teksta",
+HiddenField		: "Skriveno polje",
+Button			: "Dugme",
+SelectionField	: "Izborno polje",
+ImageButton		: "Dugme sa slikom",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Izmeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "ObriÅ¡i redove",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "ObriÅ¡i kolone",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "ObriÅ¡i Ä‡elije",
+MergeCells			: "Spoj celije",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Osobine celije",
+TableProperties		: "Osobine tabele",
+ImageProperties		: "Osobine slike",
+FlashProperties		: "Osobine fleÅ¡a",
+
+AnchorProp			: "Osobine sidra",
+ButtonProp			: "Osobine dugmeta",
+CheckboxProp		: "Osobine polja za potvrdu",
+HiddenFieldProp		: "Osobine skrivenog polja",
+RadioButtonProp		: "Osobine radio-dugmeta",
+ImageButtonProp		: "Osobine dugmeta sa slikom",
+TextFieldProp		: "Osobine tekstualnog polja",
+SelectionFieldProp	: "Osobine izbornog polja",
+TextareaProp		: "Osobine zone teksta",
+FormProp			: "Osobine forme",
+
+FontFormats			: "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Obradujem XHTML. Malo strpljenja...",
+Done				: "ZavrÅ¡io",
+PasteWordConfirm	: "Tekst koji Å¾elite da nalepite kopiran je iz Worda. Da li Å¾elite da bude oÄiÅ¡Ä‡en od formata pre lepljenja?",
+NotCompatiblePaste	: "Ova komanda je dostupna samo za Internet Explorer od verzije 5.5. Da li Å¾elite da nalepim tekst bez ÄiÅ¡Ä‡enja?",
+UnknownToolbarItem	: "Nepoznata stavka toolbara \"%1\"",
+UnknownCommand		: "Nepoznata naredba \"%1\"",
+NotImplemented		: "Naredba nije implementirana",
+UnknownToolbarSet	: "Toolbar \"%1\" ne postoji",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "OtkaÅ¾i",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "PretraÅ¾i server",
+DlgAdvancedTag		: "Napredni tagovi",
+DlgOpOther			: "<Ostali>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Molimo Vas, unesite URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije postavljeno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smer jezika",
+DlgGenLangDirLtr	: "S leva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na levo (RTL)",
+DlgGenLangCode		: "KÃ´d jezika",
+DlgGenAccessKey		: "Pristupni taster",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "Pun opis URL",
+DlgGenClass			: "Stylesheet klase",
+DlgGenTitle			: "Advisory naslov",
+DlgGenContType		: "Advisory vrsta sadrÅ¾aja",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Osobine slika",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "PoÅ¡alji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "PoÅ¡alji",
+DlgImgAlt			: "Alternativni tekst",
+DlgImgWidth			: "Å irina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "ZakljuÄaj odnos",
+DlgBtnResetSize		: "Resetuj veliÄinu",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Ravnanje",
+DlgImgAlignLeft		: "Levo",
+DlgImgAlignAbsBottom: "Abs dole",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dole",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Izgled",
+DlgImgAlertUrl		: "Unesite URL slike",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Osobine fleÅ¡a",
+DlgFlashChkPlay		: "Automatski start",
+DlgFlashChkLoop		: "Ponavljaj",
+DlgFlashChkMenu		: "UkljuÄi fleÅ¡ meni",
+DlgFlashScale		: "Skaliraj",
+DlgFlashScaleAll	: "PrikaÅ¾i sve",
+DlgFlashScaleNoBorder	: "Bez ivice",
+DlgFlashScaleFit	: "Popuni povrÅ¡inu",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Meta",
+
+DlgLnkType			: "Vrsta linka",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Odaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id-ju elementa",
+DlgLnkNoAnchors		: "(Nema dostupnih sidra)",
+DlgLnkEMail			: "E-Mail adresa",
+DlgLnkEMailSubject	: "Naslov",
+DlgLnkEMailBody		: "SadrÅ¾aj poruke",
+DlgLnkUpload		: "PoÅ¡alji",
+DlgLnkBtnUpload		: "PoÅ¡alji na server",
+
+DlgLnkTarget		: "Meta",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "Prozor na vrhu (_top)",
+DlgLnkTargetFrameName	: "Naziv odrediÅ¡nog frejma",
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "MoguÄ‡nosti popup prozora",
+DlgLnkPopResize		: "Promenljiva velicina",
+DlgLnkPopLocation	: "Lokacija",
+DlgLnkPopMenu		: "Kontekstni meni",
+DlgLnkPopScroll		: "Scroll bar",
+DlgLnkPopStatus		: "Statusna linija",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Prikaz preko celog ekrana (IE)",
+DlgLnkPopDependent	: "Zavisno (Netscape)",
+DlgLnkPopWidth		: "Å irina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Od leve ivice ekrana (px)",
+DlgLnkPopTop		: "Od vrha ekrana (px)",
+
+DlnLnkMsgNoUrl		: "Unesite URL linka",
+DlnLnkMsgNoEMail	: "Otkucajte adresu elektronske pote",
+DlnLnkMsgNoAnchor	: "Odaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Odaberite boju",
+DlgColorBtnClear	: "ObriÅ¡i",
+DlgColorHighlight	: "Posvetli",
+DlgColorSelected	: "Odaberi",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Unesi smajlija",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Odaberite specijalni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Osobine tabele",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "VeliÄina okvira",
+DlgTableAlign		: "Ravnanje",
+DlgTableAlignNotSet	: "<nije postavljeno>",
+DlgTableAlignLeft	: "Levo",
+DlgTableAlignCenter	: "Sredina",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Å irina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "procenata",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Ä†elijski prostor",
+DlgTableCellPad		: "Razmak Ä‡elija",
+DlgTableCaption		: "Naslov tabele",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Osobine Ä‡elije",
+DlgCellWidth		: "Å irina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "procenata",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Deljenje reÄi",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravno ravnanje",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
+DlgCellHorAlignLeft	: "Levo",
+DlgCellHorAlignCenter	: "Sredina",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Vertikalno ravnanje",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
+DlgCellVerAlignTop	: "Gornje",
+DlgCellVerAlignMiddle	: "Sredina",
+DlgCellVerAlignBottom	: "Donje",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje redova",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Odaberi...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "PronaÄ‘i",
+DlgFindFindBtn		: "PronaÄ‘i",
+DlgFindNotFoundMsg	: "TraÅ¾eni tekst nije pronaÄ‘en.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zameni",
+DlgReplaceFindLbl		: "Pronadi:",
+DlgReplaceReplaceLbl	: "Zameni sa:",
+DlgReplaceCaseChk		: "Razlikuj mala i velika slova",
+DlgReplaceReplaceBtn	: "Zameni",
+DlgReplaceReplAllBtn	: "Zameni sve",
+DlgReplaceWordChk		: "Uporedi cele reci",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Zalepi kao Äist tekst",
+PasteFromWord	: "Zalepi iz Worda",
+
+DlgPasteMsg2	: "Molimo Vas da zalepite unutar donje povrine koristeÄ‡i tastaturnu preÄicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "IgnoriÅ¡i definicije fontova",
+DlgPasteRemoveStyles	: "Ukloni definicije stilova",
+
+// Color Picker
+ColorAutomatic	: "Automatski",
+ColorMoreColors	: "ViÅ¡e boja...",
+
+// Document Properties
+DocProps		: "Osobine dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Osobine sidra",
+DlgAnchorName		: "Ime sidra",
+DlgAnchorErrorName	: "Unesite ime sidra",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nije u reÄniku",
+DlgSpellChangeTo		: "Izmeni",
+DlgSpellBtnIgnore		: "IgnoriÅ¡i",
+DlgSpellBtnIgnoreAll	: "IgnoriÅ¡i sve",
+DlgSpellBtnReplace		: "Zameni",
+DlgSpellBtnReplaceAll	: "Zameni sve",
+DlgSpellBtnUndo			: "Vrati akciju",
+DlgSpellNoSuggestions	: "- Bez sugestija -",
+DlgSpellProgress		: "Provera spelovanja u toku...",
+DlgSpellNoMispell		: "Provera spelovanja zavrÅ¡ena: greÅ¡ke nisu pronadene",
+DlgSpellNoChanges		: "Provera spelovanja zavrÅ¡ena: Nije izmenjena nijedna rec",
+DlgSpellOneChange		: "Provera spelovanja zavrÅ¡ena: Izmenjena je jedna reÄ",
+DlgSpellManyChanges		: "Provera spelovanja zavrÅ¡ena: %1 reÄ(i) je izmenjeno",
+
+IeSpellDownload			: "Provera spelovanja nije instalirana. Da li Å¾elite da je skinete sa Interneta?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naziv",
+DlgCheckboxValue	: "Vrednost",
+DlgCheckboxSelected	: "OznaÄeno",
+
+// Form Dialog
+DlgFormName		: "Naziv",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Naziv",
+DlgSelectValue		: "Vrednost",
+DlgSelectSize		: "VeliÄina",
+DlgSelectLines		: "linija",
+DlgSelectChkMulti	: "Dozvoli viÅ¡estruku selekciju",
+DlgSelectOpAvail	: "Dostupne opcije",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Vrednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Izmeni",
+DlgSelectBtnUp		: "Gore",
+DlgSelectBtnDown	: "Dole",
+DlgSelectBtnSetValue : "Podesi kao oznaÄenu vrednost",
+DlgSelectBtnDelete	: "ObriÅ¡i",
+
+// Textarea Dialog
+DlgTextareaName	: "Naziv",
+DlgTextareaCols	: "Broj kolona",
+DlgTextareaRows	: "Broj redova",
+
+// Text Field Dialog
+DlgTextName			: "Naziv",
+DlgTextValue		: "Vrednost",
+DlgTextCharWidth	: "Å irina (karaktera)",
+DlgTextMaxChars		: "Maksimalno karaktera",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Lozinka",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naziv",
+DlgHiddenValue	: "Vrednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Osobine nenabrojive liste",
+NumberedListProp	: "Osobine nabrojive liste",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Krug",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Kvadrat",
+DlgLstTypeNumbers	: "Brojevi (1, 2, 3)",
+DlgLstTypeLCase		: "mala slova (a, b, c)",
+DlgLstTypeUCase		: "VELIKA slova (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske cifre (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske cifre (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "OpÅ¡te osobine",
+DlgDocBackTab		: "Pozadina",
+DlgDocColorsTab		: "Boje i margine",
+DlgDocMetaTab		: "Metapodaci",
+
+DlgDocPageTitle		: "Naslov stranice",
+DlgDocLangDir		: "Smer jezika",
+DlgDocLangDirLTR	: "Sleva nadesno (LTR)",
+DlgDocLangDirRTL	: "Zdesna nalevo (RTL)",
+DlgDocLangCode		: "Å ifra jezika",
+DlgDocCharSet		: "Kodiranje skupa karaktera",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Ostala kodiranja skupa karaktera",
+
+DlgDocDocType		: "Zaglavlje tipa dokumenta",
+DlgDocDocTypeOther	: "Ostala zaglavlja tipa dokumenta",
+DlgDocIncXHTML		: "Ukljuci XHTML deklaracije",
+DlgDocBgColor		: "Boja pozadine",
+DlgDocBgImage		: "URL pozadinske slike",
+DlgDocBgNoScroll	: "Fiksirana pozadina",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "PoseÄ‡eni link",
+DlgDocCActive		: "Aktivni link",
+DlgDocMargins		: "Margine stranice",
+DlgDocMaTop			: "Gornja",
+DlgDocMaLeft		: "Leva",
+DlgDocMaRight		: "Desna",
+DlgDocMaBottom		: "Donja",
+DlgDocMeIndex		: "KljuÄne reci za indeksiranje dokumenta (razdvojene zarezima)",
+DlgDocMeDescr		: "Opis dokumenta",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorska prava",
+DlgDocPreview		: "Izgled stranice",
+
+// Templates Dialog
+Templates			: "Obrasci",
+DlgTemplatesTitle	: "Obrasci za sadrÅ¾aj",
+DlgTemplatesSelMsg	: "Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadrÅ¾aj ce biti obrisan):",
+DlgTemplatesLoading	: "UÄitavam listu obrazaca. Malo strpljenja...",
+DlgTemplatesNoTpl	: "(Nema definisanih obrazaca)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "O editoru",
+DlgAboutBrowserInfoTab	: "Informacije o pretraÅ¾ivacu",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "verzija",
+DlgAboutInfo		: "Za viÅ¡e informacija posetite"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lv.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lv.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/lv.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Latvian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "SamazinÄt rÄ«ku joslu",
+ToolbarExpand		: "PaplaÅ¡inÄt rÄ«ku joslu",
+
+// Toolbar Items and Context Menu
+Save				: "SaglabÄt",
+NewPage				: "Jauna lapa",
+Preview				: "PÄrskatÄ«t",
+Cut					: "Izgriezt",
+Copy				: "KopÄ“t",
+Paste				: "Ievietot",
+PasteText			: "Ievietot kÄ vienkÄrÅ¡u tekstu",
+PasteWord			: "Ievietot no Worda",
+Print				: "DrukÄt",
+SelectAll			: "IezÄ«mÄ“t visu",
+RemoveFormat		: "NoÅ†emt stilus",
+InsertLinkLbl		: "Hipersaite",
+InsertLink			: "Ievietot/Labot hipersaiti",
+RemoveLink			: "NoÅ†emt hipersaiti",
+Anchor				: "Ievietot/Labot iezÄ«mi",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "AttÄ“ls",
+InsertImage			: "Ievietot/Labot AttÄ“lu",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ievietot/Labot Flash",
+InsertTableLbl		: "Tabula",
+InsertTable			: "Ievietot/Labot Tabulu",
+InsertLineLbl		: "AtdalÄ«tÄjsvÄ«tra",
+InsertLine			: "Ievietot horizontÄlu AtdalÄ«tÄjsvÄ«tru",
+InsertSpecialCharLbl: "ÄªpaÅ¡s simbols",
+InsertSpecialChar	: "Ievietot speciÄlo simbolu",
+InsertSmileyLbl		: "SmaidiÅ†i",
+InsertSmiley		: "Ievietot smaidiÅ†u",
+About				: "ÄªsumÄ par FCKeditor",
+Bold				: "Treknu Å¡riftu",
+Italic				: "SlÄ«prakstÄ",
+Underline			: "ApakÅ¡svÄ«tra",
+StrikeThrough		: "PÄrsvÄ«trots",
+Subscript			: "ZemrakstÄ",
+Superscript			: "AugÅ¡rakstÄ",
+LeftJustify			: "IzlÄ«dzinÄt pa kreisi",
+CenterJustify		: "IzlÄ«dzinÄt pret centru",
+RightJustify		: "IzlÄ«dzinÄt pa labi",
+BlockJustify		: "IzlÄ«dzinÄt malas",
+DecreaseIndent		: "SamazinÄt atkÄpi",
+IncreaseIndent		: "PalielinÄt atkÄpi",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Atcelt",
+Redo				: "AtkÄrtot",
+NumberedListLbl		: "NumurÄ“ts saraksts",
+NumberedList		: "Ievietot/NoÅ†emt numerÄ“to sarakstu",
+BulletedListLbl		: "Izcelts saraksts",
+BulletedList		: "Ievietot/NoÅ†emt izceltu sarakstu",
+ShowTableBorders	: "ParÄdÄ«t tabulas robeÅ¾as",
+ShowDetails			: "ParÄdÄ«t sÄ«kÄku informÄciju",
+Style				: "Stils",
+FontFormat			: "FormÄts",
+Font				: "Å rifts",
+FontSize			: "IzmÄ“rs",
+TextColor			: "Teksta krÄsa",
+BGColor				: "Fona krÄsa",
+Source				: "HTML kods",
+Find				: "MeklÄ“t",
+Replace				: "NomainÄ«t",
+SpellCheck			: "PareizrakstÄ«bas pÄrbaude",
+UniversalKeyboard	: "UniversÄla klaviatÅ«ra",
+PageBreakLbl		: "Lapas pÄrtraukums",
+PageBreak			: "Ievietot lapas pÄrtraukumu",
+
+Form			: "Forma",
+Checkbox		: "AtzÄ«mÄ“Å¡anas kastÄ«te",
+RadioButton		: "IzvÄ“les poga",
+TextField		: "Teksta rinda",
+Textarea		: "Teksta laukums",
+HiddenField		: "PaslÄ“pta teksta rinda",
+Button			: "Poga",
+SelectionField	: "IezÄ«mÄ“Å¡anas lauks",
+ImageButton		: "AttÄ“lpoga",
+
+FitWindow		: "MaksimizÄ“t redaktora izmÄ“ru",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Labot hipersaiti",
+CellCM				: "Å Å«na",
+RowCM				: "Rinda",
+ColumnCM			: "Kolonna",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "DzÄ“st rindas",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "DzÄ“st kolonnas",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "DzÄ“st rÅ«tiÅ†as",
+MergeCells			: "Apvienot rÅ«tiÅ†as",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "DzÄ“st tabulu",
+CellProperties		: "RÅ«tiÅ†as Ä«paÅ¡Ä«bas",
+TableProperties		: "Tabulas Ä«paÅ¡Ä«bas",
+ImageProperties		: "AttÄ“la Ä«paÅ¡Ä«bas",
+FlashProperties		: "Flash Ä«paÅ¡Ä«bas",
+
+AnchorProp			: "IezÄ«mes Ä«paÅ¡Ä«bas",
+ButtonProp			: "Pogas Ä«paÅ¡Ä«bas",
+CheckboxProp		: "AtzÄ«mÄ“Å¡anas kastÄ«tes Ä«paÅ¡Ä«bas",
+HiddenFieldProp		: "PaslÄ“ptÄs teksta rindas Ä«paÅ¡Ä«bas",
+RadioButtonProp		: "IzvÄ“les poga Ä«paÅ¡Ä«bas",
+ImageButtonProp		: "AttÄ“lpogas Ä«paÅ¡Ä«bas",
+TextFieldProp		: "Teksta rindas  Ä«paÅ¡Ä«bas",
+SelectionFieldProp	: "IezÄ«mÄ“Å¡anas lauka Ä«paÅ¡Ä«bas",
+TextareaProp		: "Teksta laukuma Ä«paÅ¡Ä«bas",
+FormProp			: "Formas Ä«paÅ¡Ä«bas",
+
+FontFormats			: "NormÄls teksts;FormatÄ“ts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Tiek apstrÄdÄts XHTML. LÅ«dzu uzgaidiet...",
+Done				: "DarÄ«ts",
+PasteWordConfirm	: "Teksta fragments, kas tiek ievietots, izskatÄs, ka bÅ«tu sagatavots Word'Ä. Vai vÄ“laties to apstrÄdÄt pirms ievietoÅ¡anas?",
+NotCompatiblePaste	: "Å Ä« darbÄ«ba ir pieejama Internet Explorer'Ä«, kas jaunÄks par 5.5 versiju. Vai vÄ“laties ievietot bez apstrÄdes?",
+UnknownToolbarItem	: "NezinÄms rÄ«ku joslas objekts \"%1\"",
+UnknownCommand		: "NezinÄmas darbÄ«bas nosaukums \"%1\"",
+NotImplemented		: "DarbÄ«ba netika paveikta",
+UnknownToolbarSet	: "RÄ«ku joslas komplekts \"%1\" neeksistÄ“",
+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.",
+BrowseServerBlocked : "Resursu pÄrlÅ«ks nevar tikt atvÄ“rts. PÄrliecinieties, ka uznirstoÅ¡o logu bloÄ·Ä“tÄji ir atslÄ“gti.",
+DialogBlocked		: "Nav iespÄ“jams atvÄ“rt dialoglogu. PÄrliecinieties, ka uznirstoÅ¡o logu bloÄ·Ä“tÄji ir atslÄ“gti.",
+
+// Dialogs
+DlgBtnOK			: "DarÄ«ts!",
+DlgBtnCancel		: "Atcelt",
+DlgBtnClose			: "AizvÄ“rt",
+DlgBtnBrowseServer	: "SkatÄ«t servera saturu",
+DlgAdvancedTag		: "IzvÄ“rstais",
+DlgOpOther			: "<Cits>",
+DlgInfoTab			: "InformÄcija",
+DlgAlertUrl			: "LÅ«dzu, ievietojiet hipersaiti",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nav iestatÄ«ts>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Valodas lasÄ«Å¡anas virziens",
+DlgGenLangDirLtr	: "No kreisÄs uz labo (LTR)",
+DlgGenLangDirRtl	: "No labÄs uz kreiso (RTL)",
+DlgGenLangCode		: "Valodas kods",
+DlgGenAccessKey		: "Pieejas kods",
+DlgGenName			: "Nosaukums",
+DlgGenTabIndex		: "CiÄ¼Å†u indekss",
+DlgGenLongDescr		: "Gara apraksta Hipersaite",
+DlgGenClass			: "Stilu saraksta klases",
+DlgGenTitle			: "KonsultatÄ«vs virsraksts",
+DlgGenContType		: "KonsultatÄ«vs satura tips",
+DlgGenLinkCharset	: "PievienotÄ resursa kodu tabula",
+DlgGenStyle			: "Stils",
+
+// Image Dialog
+DlgImgTitle			: "AttÄ“la Ä«paÅ¡Ä«bas",
+DlgImgInfoTab		: "InformÄcija par attÄ“lu",
+DlgImgBtnUpload		: "NosÅ«tÄ«t serverim",
+DlgImgURL			: "URL",
+DlgImgUpload		: "AugÅ¡upielÄdÄ“t",
+DlgImgAlt			: "AlternatÄ«vais teksts",
+DlgImgWidth			: "Platums",
+DlgImgHeight		: "Augstums",
+DlgImgLockRatio		: "NemainÄ«ga Augstuma/Platuma attiecÄ«ba",
+DlgBtnResetSize		: "Atjaunot sÄkotnÄ“jo izmÄ“ru",
+DlgImgBorder		: "RÄmis",
+DlgImgHSpace		: "HorizontÄlÄ telpa",
+DlgImgVSpace		: "VertikÄlÄ telpa",
+DlgImgAlign			: "NolÄ«dzinÄt",
+DlgImgAlignLeft		: "Pa kreisi",
+DlgImgAlignAbsBottom: "AbsolÅ«ti apakÅ¡Ä",
+DlgImgAlignAbsMiddle: "AbsolÅ«ti vertikÄli centrÄ“ts",
+DlgImgAlignBaseline	: "PamatrindÄ",
+DlgImgAlignBottom	: "ApakÅ¡Ä",
+DlgImgAlignMiddle	: "VertikÄli centrÄ“ts",
+DlgImgAlignRight	: "Pa labi",
+DlgImgAlignTextTop	: "Teksta augÅ¡Ä",
+DlgImgAlignTop		: "AugÅ¡Ä",
+DlgImgPreview		: "PÄrskats",
+DlgImgAlertUrl		: "LÅ«dzu norÄdÄ«t attÄ“la hipersaiti",
+DlgImgLinkTab		: "Hipersaite",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Ä«paÅ¡Ä«bas",
+DlgFlashChkPlay		: "AutomÄtiska atskaÅ†oÅ¡ana",
+DlgFlashChkLoop		: "NepÄrtraukti",
+DlgFlashChkMenu		: "AtÄ¼aut Flash izvÄ“lni",
+DlgFlashScale		: "MainÄ«t izmÄ“ru",
+DlgFlashScaleAll	: "RÄdÄ«t visu",
+DlgFlashScaleNoBorder	: "Bez rÄmja",
+DlgFlashScaleFit	: "PrecÄ«zs izmÄ“rs",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hipersaite",
+DlgLnkInfoTab		: "Hipersaites informÄcija",
+DlgLnkTargetTab		: "MÄ“rÄ·is",
+
+DlgLnkType			: "Hipersaites tips",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "IezÄ«me Å¡ajÄ lapÄ",
+DlgLnkTypeEMail		: "E-pasts",
+DlgLnkProto			: "Protokols",
+DlgLnkProtoOther	: "<cits>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "IzvÄ“lÄ“ties iezÄ«mi",
+DlgLnkAnchorByName	: "PÄ“c iezÄ«mes nosaukuma",
+DlgLnkAnchorById	: "PÄ“c elementa ID",
+DlgLnkNoAnchors		: "(Å ajÄ dokumentÄ nav iezÄ«mju)",
+DlgLnkEMail			: "E-pasta adrese",
+DlgLnkEMailSubject	: "ZiÅ†as tÄ“ma",
+DlgLnkEMailBody		: "ZiÅ†as saturs",
+DlgLnkUpload		: "AugÅ¡upielÄdÄ“t",
+DlgLnkBtnUpload		: "NosÅ«tÄ«t serverim",
+
+DlgLnkTarget		: "MÄ“rÄ·is",
+DlgLnkTargetFrame	: "<ietvars>",
+DlgLnkTargetPopup	: "<uznirstoÅ¡Ä logÄ>",
+DlgLnkTargetBlank	: "JaunÄ logÄ (_blank)",
+DlgLnkTargetParent	: "EsoÅ¡ajÄ logÄ (_parent)",
+DlgLnkTargetSelf	: "TajÄ paÅ¡Ä logÄ (_self)",
+DlgLnkTargetTop		: "VisredzamÄkajÄ logÄ (_top)",
+DlgLnkTargetFrameName	: "MÄ“rÄ·a ietvara nosaukums",
+DlgLnkPopWinName	: "UznirstoÅ¡Ä loga nosaukums",
+DlgLnkPopWinFeat	: "UznirstoÅ¡Ä loga nosaukums Ä«paÅ¡Ä«bas",
+DlgLnkPopResize		: "Ar mainÄmu izmÄ“ru",
+DlgLnkPopLocation	: "AtraÅ¡anÄs vietas josla",
+DlgLnkPopMenu		: "IzvÄ“lnes josla",
+DlgLnkPopScroll		: "Ritjoslas",
+DlgLnkPopStatus		: "Statusa josla",
+DlgLnkPopToolbar	: "RÄ«ku josla",
+DlgLnkPopFullScrn	: "PilnÄ ekrÄnÄ (IE)",
+DlgLnkPopDependent	: "AtkarÄ«gs (Netscape)",
+DlgLnkPopWidth		: "Platums",
+DlgLnkPopHeight		: "Augstums",
+DlgLnkPopLeft		: "KreisÄ koordinÄte",
+DlgLnkPopTop		: "AugÅ¡Ä“jÄ koordinÄte",
+
+DlnLnkMsgNoUrl		: "LÅ«dzu norÄdi hipersaiti",
+DlnLnkMsgNoEMail	: "LÅ«dzu norÄdi e-pasta adresi",
+DlnLnkMsgNoAnchor	: "LÅ«dzu norÄdi iezÄ«mi",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "IzvÄ“lies krÄsu",
+DlgColorBtnClear	: "DzÄ“st",
+DlgColorHighlight	: "Izcelt",
+DlgColorSelected	: "IezÄ«mÄ“tais",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ievietot smaidiÅ†u",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ievietot Ä«paÅ¡u simbolu",
+
+// Table Dialog
+DlgTableTitle		: "Tabulas Ä«paÅ¡Ä«bas",
+DlgTableRows		: "Rindas",
+DlgTableColumns		: "Kolonnas",
+DlgTableBorder		: "RÄmja izmÄ“rs",
+DlgTableAlign		: "Novietojums",
+DlgTableAlignNotSet	: "<nav norÄdÄ«ts>",
+DlgTableAlignLeft	: "Pa kreisi",
+DlgTableAlignCenter	: "CentrÄ“ti",
+DlgTableAlignRight	: "Pa labi",
+DlgTableWidth		: "Platums",
+DlgTableWidthPx		: "pikseÄ¼os",
+DlgTableWidthPc		: "procentuÄli",
+DlgTableHeight		: "Augstums",
+DlgTableCellSpace	: "RÅ«tiÅ†u atstatums",
+DlgTableCellPad		: "RÅ«tiÅ†u nobÄ«de",
+DlgTableCaption		: "LeÄ£enda",
+DlgTableSummary		: "AnotÄcija",
+
+// Table Cell Dialog
+DlgCellTitle		: "RÅ«tiÅ†as Ä«paÅ¡Ä«bas",
+DlgCellWidth		: "Platums",
+DlgCellWidthPx		: "pikseÄ¼i",
+DlgCellWidthPc		: "procentos",
+DlgCellHeight		: "Augstums",
+DlgCellWordWrap		: "Teksta pÄrnese",
+DlgCellWordWrapNotSet	: "<nav norÄdÄ«ta>",
+DlgCellWordWrapYes	: "JÄ",
+DlgCellWordWrapNo	: "NÄ“",
+DlgCellHorAlign		: "HorizontÄla novietojums",
+DlgCellHorAlignNotSet	: "<Nav norÄdÄ«ts>",
+DlgCellHorAlignLeft	: "Pa kreisi",
+DlgCellHorAlignCenter	: "CentrÄ“ti",
+DlgCellHorAlignRight: "Pa labi",
+DlgCellVerAlign		: "VertikÄlais novietojums",
+DlgCellVerAlignNotSet	: "<nav norÄdÄ«ts>",
+DlgCellVerAlignTop	: "AugÅ¡a",
+DlgCellVerAlignMiddle	: "Vidus",
+DlgCellVerAlignBottom	: "ApakÅ¡a",
+DlgCellVerAlignBaseline	: "PamatrindÄ",
+DlgCellRowSpan		: "Rindu pÄrnese",
+DlgCellCollSpan		: "Kolonnu pÄrnese",
+DlgCellBackColor	: "Fona krÄsa",
+DlgCellBorderColor	: "RÄmja krÄsa",
+DlgCellBtnSelect	: "IezÄ«mÄ“...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "MeklÄ“tÄjs",
+DlgFindFindBtn		: "MeklÄ“t",
+DlgFindNotFoundMsg	: "NorÄdÄ«tÄ frÄze netika atrasta.",
+
+// Replace Dialog
+DlgReplaceTitle			: "AizvietoÅ¡ana",
+DlgReplaceFindLbl		: "MeklÄ“t:",
+DlgReplaceReplaceLbl	: "NomainÄ«t uz:",
+DlgReplaceCaseChk		: "ReÄ£istrjÅ«tÄ«gs",
+DlgReplaceReplaceBtn	: "Aizvietot",
+DlgReplaceReplAllBtn	: "Aizvietot visu",
+DlgReplaceWordChk		: "JÄsakrÄ«t pilnÄ«bÄ",
+
+// Paste Operations / Dialog
+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.",
+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.",
+
+PasteAsText		: "Ievietot kÄ vienkÄrÅ¡u tekstu",
+PasteFromWord	: "Ievietot no Worda",
+
+DlgPasteMsg2	: "LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.",
+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
+DlgPasteIgnoreFont		: "IgnorÄ“t iepriekÅ¡ norÄdÄ«tos fontus",
+DlgPasteRemoveStyles	: "NoÅ†emt norÄdÄ«tos stilus",
+
+// Color Picker
+ColorAutomatic	: "AutomÄtiska",
+ColorMoreColors	: "PlaÅ¡Äka palete...",
+
+// Document Properties
+DocProps		: "Dokumenta Ä«paÅ¡Ä«bas",
+
+// Anchor Dialog
+DlgAnchorTitle		: "IezÄ«mes Ä«paÅ¡Ä«bas",
+DlgAnchorName		: "IezÄ«mes nosaukums",
+DlgAnchorErrorName	: "LÅ«dzu norÄdiet iezÄ«mes nosaukumu",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Netika atrasts vÄrdnÄ«cÄ",
+DlgSpellChangeTo		: "NomainÄ«t uz",
+DlgSpellBtnIgnore		: "IgnorÄ“t",
+DlgSpellBtnIgnoreAll	: "IgnorÄ“t visu",
+DlgSpellBtnReplace		: "Aizvietot",
+DlgSpellBtnReplaceAll	: "Aizvietot visu",
+DlgSpellBtnUndo			: "Atcelt",
+DlgSpellNoSuggestions	: "- Nav ieteikumu -",
+DlgSpellProgress		: "Notiek pareizrakstÄ«bas pÄrbaude...",
+DlgSpellNoMispell		: "PareizrakstÄ«bas pÄrbaude pabeigta: kÄ¼Å«das netika atrastas",
+DlgSpellNoChanges		: "PareizrakstÄ«bas pÄrbaude pabeigta: nekas netika labots",
+DlgSpellOneChange		: "PareizrakstÄ«bas pÄrbaude pabeigta: 1 vÄrds izmainÄ«ts",
+DlgSpellManyChanges		: "PareizrakstÄ«bas pÄrbaude pabeigta: %1 vÄrdi tika mainÄ«ti",
+
+IeSpellDownload			: "PareizrakstÄ«bas pÄrbaudÄ«tÄjs nav pievienots. Vai vÄ“laties to lejupielÄdÄ“t tagad?",
+
+// Button Dialog
+DlgButtonText		: "Teksts (vÄ“rtÄ«ba)",
+DlgButtonType		: "Tips",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nosaukums",
+DlgCheckboxValue	: "VÄ“rtÄ«ba",
+DlgCheckboxSelected	: "IezÄ«mÄ“ts",
+
+// Form Dialog
+DlgFormName		: "Nosaukums",
+DlgFormAction	: "DarbÄ«ba",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Nosaukums",
+DlgSelectValue		: "VÄ“rtÄ«ba",
+DlgSelectSize		: "IzmÄ“rs",
+DlgSelectLines		: "rindas",
+DlgSelectChkMulti	: "AtÄ¼aut vairÄkus iezÄ«mÄ“jumus",
+DlgSelectOpAvail	: "PieejamÄs iespÄ“jas",
+DlgSelectOpText		: "Teksts",
+DlgSelectOpValue	: "VÄ“rtÄ«ba",
+DlgSelectBtnAdd		: "Pievienot",
+DlgSelectBtnModify	: "Veikt izmaiÅ†as",
+DlgSelectBtnUp		: "AugÅ¡up",
+DlgSelectBtnDown	: "Lejup",
+DlgSelectBtnSetValue : "Noteikt kÄ iezÄ«mÄ“to vÄ“rtÄ«bu",
+DlgSelectBtnDelete	: "DzÄ“st",
+
+// Textarea Dialog
+DlgTextareaName	: "Nosaukums",
+DlgTextareaCols	: "Kolonnas",
+DlgTextareaRows	: "Rindas",
+
+// Text Field Dialog
+DlgTextName			: "Nosaukums",
+DlgTextValue		: "VÄ“rtÄ«ba",
+DlgTextCharWidth	: "Simbolu platums",
+DlgTextMaxChars		: "Simbolu maksimÄlais daudzums",
+DlgTextType			: "Tips",
+DlgTextTypeText		: "Teksts",
+DlgTextTypePass		: "Parole",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nosaukums",
+DlgHiddenValue	: "VÄ“rtÄ«ba",
+
+// Bulleted List Dialog
+BulletedListProp	: "AizzÄ«mju saraksta Ä«paÅ¡Ä«bas",
+NumberedListProp	: "NumerÄ“tÄ saraksta Ä«paÅ¡Ä«bas",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tips",
+DlgLstTypeCircle	: "Aplis",
+DlgLstTypeDisc		: "Disks",
+DlgLstTypeSquare	: "KvadrÄts",
+DlgLstTypeNumbers	: "SkaitÄ¼i (1, 2, 3)",
+DlgLstTypeLCase		: "Maziem burtiem (a, b, c)",
+DlgLstTypeUCase		: "Lieliem burtiem (A, B, C)",
+DlgLstTypeSRoman	: "Maziem romieÅ¡u cipariem (i, ii, iii)",
+DlgLstTypeLRoman	: "Lieliem romieÅ¡u cipariem (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "VispÄrÄ«ga informÄcija",
+DlgDocBackTab		: "Fons",
+DlgDocColorsTab		: "KrÄsas un robeÅ¾u nobÄ«des",
+DlgDocMetaTab		: "META dati",
+
+DlgDocPageTitle		: "Dokumenta virsraksts <Title>",
+DlgDocLangDir		: "Valodas lasÄ«Å¡anas virziens",
+DlgDocLangDirLTR	: "No kreisÄs uz labo (LTR)",
+DlgDocLangDirRTL	: "No labÄs uz kreiso (RTL)",
+DlgDocLangCode		: "Valodas kods",
+DlgDocCharSet		: "Simbolu kodÄ“jums",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Cits simbolu kodÄ“jums",
+
+DlgDocDocType		: "Dokumenta tips",
+DlgDocDocTypeOther	: "Cits dokumenta tips",
+DlgDocIncXHTML		: "Ietvert XHTML deklarÄcijas",
+DlgDocBgColor		: "Fona krÄsa",
+DlgDocBgImage		: "Fona attÄ“la hipersaite",
+DlgDocBgNoScroll	: "Fona attÄ“ls ir fiksÄ“ts",
+DlgDocCText			: "Teksts",
+DlgDocCLink			: "Hipersaite",
+DlgDocCVisited		: "ApmeklÄ“ta hipersaite",
+DlgDocCActive		: "AktÄ«va hipersaite",
+DlgDocMargins		: "Lapas robeÅ¾as",
+DlgDocMaTop			: "AugÅ¡Ä",
+DlgDocMaLeft		: "Pa kreisi",
+DlgDocMaRight		: "Pa labi",
+DlgDocMaBottom		: "ApakÅ¡Ä",
+DlgDocMeIndex		: "Dokumentu aprakstoÅ¡i atslÄ“gvÄrdi (atdalÄ«ti ar komatu)",
+DlgDocMeDescr		: "Dokumenta apraksts",
+DlgDocMeAuthor		: "Autors",
+DlgDocMeCopy		: "AutortiesÄ«bas",
+DlgDocPreview		: "PriekÅ¡skats",
+
+// Templates Dialog
+Templates			: "Sagataves",
+DlgTemplatesTitle	: "Satura sagataves",
+DlgTemplatesSelMsg	: "LÅ«dzu, norÄdiet sagatavi, ko atvÄ“rt editorÄ<br>(patreizÄ“jie dati tiks zaudÄ“ti):",
+DlgTemplatesLoading	: "Notiek sagatavju saraksta ielÄde. LÅ«dzu, uzgaidiet...",
+DlgTemplatesNoTpl	: "(Nav norÄdÄ«tas sagataves)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Par",
+DlgAboutBrowserInfoTab	: "InformÄcija par pÄrlÅ«kprogrammu",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "versija",
+DlgAboutInfo		: "Papildus informÄcija ir pieejama"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/zh.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Chinese Traditional language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "éš±è—é¢æ¿",
+ToolbarExpand		: "é¡¯ç¤ºé¢æ¿",
+
+// Toolbar Items and Context Menu
+Save				: "å„²å­˜",
+NewPage				: "é–‹æ–°æª”æ¡ˆ",
+Preview				: "é è¦½",
+Cut					: "å‰ªä¸‹",
+Copy				: "è¤‡è£½",
+Paste				: "è²¼ä¸Š",
+PasteText			: "è²¼ç‚ºç´”æ–‡å­—æ ¼å¼",
+PasteWord			: "è‡ª Word è²¼ä¸Š",
+Print				: "åˆ—å°",
+SelectAll			: "å…¨é¸",
+RemoveFormat		: "æ¸…é™¤æ ¼å¼",
+InsertLinkLbl		: "è¶…é€£çµ",
+InsertLink			: "æ’å…¥/ç·¨è¼¯è¶…é€£çµ",
+RemoveLink			: "ç§»é™¤è¶…é€£çµ",
+Anchor				: "æ’å…¥/ç·¨è¼¯éŒ¨é»ž",
+AnchorDelete		: "ç§»é™¤éŒ¨é»ž",
+InsertImageLbl		: "å½±åƒ",
+InsertImage			: "æ’å…¥/ç·¨è¼¯å½±åƒ",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "æ’å…¥/ç·¨è¼¯ Flash",
+InsertTableLbl		: "è¡¨æ ¼",
+InsertTable			: "æ’å…¥/ç·¨è¼¯è¡¨æ ¼",
+InsertLineLbl		: "æ°´å¹³ç·š",
+InsertLine			: "æ’å…¥æ°´å¹³ç·š",
+InsertSpecialCharLbl: "ç‰¹æ®Šç¬¦è™Ÿ",
+InsertSpecialChar	: "æ’å…¥ç‰¹æ®Šç¬¦è™Ÿ",
+InsertSmileyLbl		: "è¡¨æƒ…ç¬¦è™Ÿ",
+InsertSmiley		: "æ’å…¥è¡¨æƒ…ç¬¦è™Ÿ",
+About				: "é—œæ–¼ FCKeditor",
+Bold				: "ç²—é«”",
+Italic				: "æ–œé«”",
+Underline			: "åº•ç·š",
+StrikeThrough		: "åˆªé™¤ç·š",
+Subscript			: "ä¸‹æ¨™",
+Superscript			: "ä¸Šæ¨™",
+LeftJustify			: "é å·¦å°é½Š",
+CenterJustify		: "ç½®ä¸­",
+RightJustify		: "é å³å°é½Š",
+BlockJustify		: "å·¦å³å°é½Š",
+DecreaseIndent		: "æ¸›å°‘ç¸®æŽ’",
+IncreaseIndent		: "å¢žåŠ ç¸®æŽ’",
+Blockquote			: "å—å¼•ç”¨",
+Undo				: "å¾©åŽŸ",
+Redo				: "é‡è¤‡",
+NumberedListLbl		: "ç·¨è™Ÿæ¸…å–®",
+NumberedList		: "æ’å…¥/ç§»é™¤ç·¨è™Ÿæ¸…å–®",
+BulletedListLbl		: "é …ç›®æ¸…å–®",
+BulletedList		: "æ’å…¥/ç§»é™¤é …ç›®æ¸…å–®",
+ShowTableBorders	: "é¡¯ç¤ºè¡¨æ ¼é‚Šæ¡†",
+ShowDetails			: "é¡¯ç¤ºè©³ç´°è³‡æ–™",
+Style				: "æ¨£å¼",
+FontFormat			: "æ ¼å¼",
+Font				: "å­—é«”",
+FontSize			: "å¤§å°",
+TextColor			: "æ–‡å­—é¡è‰²",
+BGColor				: "èƒŒæ™¯é¡è‰²",
+Source				: "åŽŸå§‹ç¢¼",
+Find				: "å°‹æ‰¾",
+Replace				: "å–ä»£",
+SpellCheck			: "æ‹¼å­—æª¢æŸ¥",
+UniversalKeyboard	: "è¬åœ‹éµç›¤",
+PageBreakLbl		: "åˆ†é ç¬¦è™Ÿ",
+PageBreak			: "æ’å…¥åˆ†é ç¬¦è™Ÿ",
+
+Form			: "è¡¨å–®",
+Checkbox		: "æ ¸å–æ–¹å¡Š",
+RadioButton		: "é¸é …æŒ‰éˆ•",
+TextField		: "æ–‡å­—æ–¹å¡Š",
+Textarea		: "æ–‡å­—å€åŸŸ",
+HiddenField		: "éš±è—æ¬„ä½",
+Button			: "æŒ‰éˆ•",
+SelectionField	: "æ¸…å–®/é¸å–®",
+ImageButton		: "å½±åƒæŒ‰éˆ•",
+
+FitWindow		: "ç·¨è¼¯å™¨æœ€å¤§åŒ–",
+ShowBlocks		: "é¡¯ç¤ºå€å¡Š",
+
+// Context Menu
+EditLink			: "ç·¨è¼¯è¶…é€£çµ",
+CellCM				: "å„²å­˜æ ¼",
+RowCM				: "åˆ—",
+ColumnCM			: "æ¬„",
+InsertRowAfter		: "å‘ä¸‹æ’å…¥åˆ—",
+InsertRowBefore		: "å‘ä¸Šæ’å…¥åˆ—",
+DeleteRows			: "åˆªé™¤åˆ—",
+InsertColumnAfter	: "å‘å³æ’å…¥æ¬„",
+InsertColumnBefore	: "å‘å·¦æ’å…¥æ¬„",
+DeleteColumns		: "åˆªé™¤æ¬„",
+InsertCellAfter		: "å‘å³æ’å…¥å„²å­˜æ ¼",
+InsertCellBefore	: "å‘å·¦æ’å…¥å„²å­˜æ ¼",
+DeleteCells			: "åˆªé™¤å„²å­˜æ ¼",
+MergeCells			: "åˆä½µå„²å­˜æ ¼",
+MergeRight			: "å‘å³åˆä½µå„²å­˜æ ¼",
+MergeDown			: "å‘ä¸‹åˆä½µå„²å­˜æ ¼",
+HorizontalSplitCell	: "æ©«å‘åˆ†å‰²å„²å­˜æ ¼",
+VerticalSplitCell	: "ç¸±å‘åˆ†å‰²å„²å­˜æ ¼",
+TableDelete			: "åˆªé™¤è¡¨æ ¼",
+CellProperties		: "å„²å­˜æ ¼å±¬æ€§",
+TableProperties		: "è¡¨æ ¼å±¬æ€§",
+ImageProperties		: "å½±åƒå±¬æ€§",
+FlashProperties		: "Flash å±¬æ€§",
+
+AnchorProp			: "éŒ¨é»žå±¬æ€§",
+ButtonProp			: "æŒ‰éˆ•å±¬æ€§",
+CheckboxProp		: "æ ¸å–æ–¹å¡Šå±¬æ€§",
+HiddenFieldProp		: "éš±è—æ¬„ä½å±¬æ€§",
+RadioButtonProp		: "é¸é …æŒ‰éˆ•å±¬æ€§",
+ImageButtonProp		: "å½±åƒæŒ‰éˆ•å±¬æ€§",
+TextFieldProp		: "æ–‡å­—æ–¹å¡Šå±¬æ€§",
+SelectionFieldProp	: "æ¸…å–®/é¸å–®å±¬æ€§",
+TextareaProp		: "æ–‡å­—å€åŸŸå±¬æ€§",
+FormProp			: "è¡¨å–®å±¬æ€§",
+
+FontFormats			: "ä¸€èˆ¬;å·²æ ¼å¼åŒ–;ä½å€;æ¨™é¡Œ 1;æ¨™é¡Œ 2;æ¨™é¡Œ 3;æ¨™é¡Œ 4;æ¨™é¡Œ 5;æ¨™é¡Œ 6;ä¸€èˆ¬ (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "è™•ç† XHTML ä¸­ï¼Œè«‹ç¨å€™â€¦",
+Done				: "å®Œæˆ",
+PasteWordConfirm	: "æ‚¨æƒ³è²¼ä¸Šçš„æ–‡å­—ä¼¼ä¹Žæ˜¯è‡ª Word è¤‡è£½è€Œä¾†ï¼Œè«‹å•æ‚¨æ˜¯å¦è¦å…ˆæ¸…é™¤ Word çš„æ ¼å¼å¾Œå†è¡Œè²¼ä¸Šï¼Ÿ",
+NotCompatiblePaste	: "æ­¤æŒ‡ä»¤åƒ…åœ¨ Internet Explorer 5.5 æˆ–ä»¥ä¸Šçš„ç‰ˆæœ¬æœ‰æ•ˆã€‚è«‹å•æ‚¨æ˜¯å¦åŒæ„ä¸æ¸…é™¤æ ¼å¼å³è²¼ä¸Šï¼Ÿ",
+UnknownToolbarItem	: "æœªçŸ¥å·¥å…·åˆ—é …ç›® \"%1\"",
+UnknownCommand		: "æœªçŸ¥æŒ‡ä»¤åç¨± \"%1\"",
+NotImplemented		: "å°šæœªå®‰è£æ­¤æŒ‡ä»¤",
+UnknownToolbarSet	: "å·¥å…·åˆ—è¨­å®š \"%1\" ä¸å­˜åœ¨",
+NoActiveX			: "ç€è¦½å™¨çš„å®‰å…¨æ€§è¨­å®šé™åˆ¶äº†æœ¬ç·¨è¼¯å™¨çš„æŸäº›åŠŸèƒ½ã€‚æ‚¨å¿…é ˆå•Ÿç”¨å®‰å…¨æ€§è¨­å®šä¸­çš„ã€ŒåŸ·è¡ŒActiveXæŽ§åˆ¶é …èˆ‡å¤–æŽ›ç¨‹å¼ã€é …ç›®ï¼Œå¦å‰‡æœ¬ç·¨è¼¯å™¨å°‡æœƒå‡ºç¾éŒ¯èª¤ä¸¦ç¼ºå°‘æŸäº›åŠŸèƒ½",
+BrowseServerBlocked : "ç„¡æ³•é–‹å•Ÿè³‡æºç€è¦½å™¨ï¼Œè«‹ç¢ºå®šæ‰€æœ‰å¿«é¡¯è¦–çª—å°éŽ–ç¨‹å¼æ˜¯å¦é—œé–‰",
+DialogBlocked		: "ç„¡æ³•é–‹å•Ÿå°è©±è¦–çª—ï¼Œè«‹ç¢ºå®šæ‰€æœ‰å¿«é¡¯è¦–çª—å°éŽ–ç¨‹å¼æ˜¯å¦é—œé–‰",
+
+// Dialogs
+DlgBtnOK			: "ç¢ºå®š",
+DlgBtnCancel		: "å–æ¶ˆ",
+DlgBtnClose			: "é—œé–‰",
+DlgBtnBrowseServer	: "ç€è¦½ä¼ºæœå™¨ç«¯",
+DlgAdvancedTag		: "é€²éšŽ",
+DlgOpOther			: "<å…¶ä»–>",
+DlgInfoTab			: "è³‡è¨Š",
+DlgAlertUrl			: "è«‹æ’å…¥ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<å°šæœªè¨­å®š>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "èªžè¨€æ–¹å‘",
+DlgGenLangDirLtr	: "ç”±å·¦è€Œå³ (LTR)",
+DlgGenLangDirRtl	: "ç”±å³è€Œå·¦ (RTL)",
+DlgGenLangCode		: "èªžè¨€ä»£ç¢¼",
+DlgGenAccessKey		: "å­˜å–éµ",
+DlgGenName			: "åç¨±",
+DlgGenTabIndex		: "å®šä½é †åº",
+DlgGenLongDescr		: "è©³ç´° URL",
+DlgGenClass			: "æ¨£å¼è¡¨é¡žåˆ¥",
+DlgGenTitle			: "æ¨™é¡Œ",
+DlgGenContType		: "å…§å®¹é¡žåž‹",
+DlgGenLinkCharset	: "é€£çµè³‡æºä¹‹ç·¨ç¢¼",
+DlgGenStyle			: "æ¨£å¼",
+
+// Image Dialog
+DlgImgTitle			: "å½±åƒå±¬æ€§",
+DlgImgInfoTab		: "å½±åƒè³‡è¨Š",
+DlgImgBtnUpload		: "ä¸Šå‚³è‡³ä¼ºæœå™¨",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ä¸Šå‚³",
+DlgImgAlt			: "æ›¿ä»£æ–‡å­—",
+DlgImgWidth			: "å¯¬åº¦",
+DlgImgHeight		: "é«˜åº¦",
+DlgImgLockRatio		: "ç­‰æ¯”ä¾‹",
+DlgBtnResetSize		: "é‡è¨­ç‚ºåŽŸå¤§å°",
+DlgImgBorder		: "é‚Šæ¡†",
+DlgImgHSpace		: "æ°´å¹³è·é›¢",
+DlgImgVSpace		: "åž‚ç›´è·é›¢",
+DlgImgAlign			: "å°é½Š",
+DlgImgAlignLeft		: "é å·¦å°é½Š",
+DlgImgAlignAbsBottom: "çµ•å°ä¸‹æ–¹",
+DlgImgAlignAbsMiddle: "çµ•å°ä¸­é–“",
+DlgImgAlignBaseline	: "åŸºæº–ç·š",
+DlgImgAlignBottom	: "é ä¸‹å°é½Š",
+DlgImgAlignMiddle	: "ç½®ä¸­å°é½Š",
+DlgImgAlignRight	: "é å³å°é½Š",
+DlgImgAlignTextTop	: "æ–‡å­—ä¸Šæ–¹",
+DlgImgAlignTop		: "é ä¸Šå°é½Š",
+DlgImgPreview		: "é è¦½",
+DlgImgAlertUrl		: "è«‹è¼¸å…¥å½±åƒ URL",
+DlgImgLinkTab		: "è¶…é€£çµ",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash å±¬æ€§",
+DlgFlashChkPlay		: "è‡ªå‹•æ’­æ”¾",
+DlgFlashChkLoop		: "é‡è¤‡",
+DlgFlashChkMenu		: "é–‹å•Ÿé¸å–®",
+DlgFlashScale		: "ç¸®æ”¾",
+DlgFlashScaleAll	: "å…¨éƒ¨é¡¯ç¤º",
+DlgFlashScaleNoBorder	: "ç„¡é‚Šæ¡†",
+DlgFlashScaleFit	: "ç²¾ç¢ºç¬¦åˆ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "è¶…é€£çµ",
+DlgLnkInfoTab		: "è¶…é€£çµè³‡è¨Š",
+DlgLnkTargetTab		: "ç›®æ¨™",
+
+DlgLnkType			: "è¶…é€£æŽ¥é¡žåž‹",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "æœ¬é éŒ¨é»ž",
+DlgLnkTypeEMail		: "é›»å­éƒµä»¶",
+DlgLnkProto			: "é€šè¨Šå”å®š",
+DlgLnkProtoOther	: "<å…¶ä»–>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "è«‹é¸æ“‡éŒ¨é»ž",
+DlgLnkAnchorByName	: "ä¾éŒ¨é»žåç¨±",
+DlgLnkAnchorById	: "ä¾å…ƒä»¶ ID",
+DlgLnkNoAnchors		: "(æœ¬æ–‡ä»¶å°šç„¡å¯ç”¨ä¹‹éŒ¨é»ž)",
+DlgLnkEMail			: "é›»å­éƒµä»¶",
+DlgLnkEMailSubject	: "éƒµä»¶ä¸»æ—¨",
+DlgLnkEMailBody		: "éƒµä»¶å…§å®¹",
+DlgLnkUpload		: "ä¸Šå‚³",
+DlgLnkBtnUpload		: "å‚³é€è‡³ä¼ºæœå™¨",
+
+DlgLnkTarget		: "ç›®æ¨™",
+DlgLnkTargetFrame	: "<æ¡†æž¶>",
+DlgLnkTargetPopup	: "<å¿«é¡¯è¦–çª—>",
+DlgLnkTargetBlank	: "æ–°è¦–çª— (_blank)",
+DlgLnkTargetParent	: "çˆ¶è¦–çª— (_parent)",
+DlgLnkTargetSelf	: "æœ¬è¦–çª— (_self)",
+DlgLnkTargetTop		: "æœ€ä¸Šå±¤è¦–çª— (_top)",
+DlgLnkTargetFrameName	: "ç›®æ¨™æ¡†æž¶åç¨±",
+DlgLnkPopWinName	: "å¿«é¡¯è¦–çª—åç¨±",
+DlgLnkPopWinFeat	: "å¿«é¡¯è¦–çª—å±¬æ€§",
+DlgLnkPopResize		: "å¯èª¿æ•´å¤§å°",
+DlgLnkPopLocation	: "ç¶²å€åˆ—",
+DlgLnkPopMenu		: "é¸å–®åˆ—",
+DlgLnkPopScroll		: "æ²è»¸",
+DlgLnkPopStatus		: "ç‹€æ…‹åˆ—",
+DlgLnkPopToolbar	: "å·¥å…·åˆ—",
+DlgLnkPopFullScrn	: "å…¨èž¢å¹• (IE)",
+DlgLnkPopDependent	: "å¾žå±¬ (NS)",
+DlgLnkPopWidth		: "å¯¬",
+DlgLnkPopHeight		: "é«˜",
+DlgLnkPopLeft		: "å·¦",
+DlgLnkPopTop		: "å³",
+
+DlnLnkMsgNoUrl		: "è«‹è¼¸å…¥æ¬²é€£çµçš„ URL",
+DlnLnkMsgNoEMail	: "è«‹è¼¸å…¥é›»å­éƒµä»¶ä½å€",
+DlnLnkMsgNoAnchor	: "è«‹é¸æ“‡éŒ¨é»ž",
+DlnLnkMsgInvPopName	: "å¿«é¡¯åç¨±å¿…é ˆä»¥ã€Œè‹±æ–‡å­—æ¯ã€ç‚ºé–‹é ­ï¼Œä¸”ä¸å¾—å«æœ‰ç©ºç™½",
+
+// Color Dialog
+DlgColorTitle		: "è«‹é¸æ“‡é¡è‰²",
+DlgColorBtnClear	: "æ¸…é™¤",
+DlgColorHighlight	: "é è¦½",
+DlgColorSelected	: "é¸æ“‡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "æ’å…¥è¡¨æƒ…ç¬¦è™Ÿ",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "è«‹é¸æ“‡ç‰¹æ®Šç¬¦è™Ÿ",
+
+// Table Dialog
+DlgTableTitle		: "è¡¨æ ¼å±¬æ€§",
+DlgTableRows		: "åˆ—æ•¸",
+DlgTableColumns		: "æ¬„æ•¸",
+DlgTableBorder		: "é‚Šæ¡†",
+DlgTableAlign		: "å°é½Š",
+DlgTableAlignNotSet	: "<æœªè¨­å®š>",
+DlgTableAlignLeft	: "é å·¦å°é½Š",
+DlgTableAlignCenter	: "ç½®ä¸­",
+DlgTableAlignRight	: "é å³å°é½Š",
+DlgTableWidth		: "å¯¬åº¦",
+DlgTableWidthPx		: "åƒç´ ",
+DlgTableWidthPc		: "ç™¾åˆ†æ¯”",
+DlgTableHeight		: "é«˜åº¦",
+DlgTableCellSpace	: "é–“è·",
+DlgTableCellPad		: "å…§è·",
+DlgTableCaption		: "æ¨™é¡Œ",
+DlgTableSummary		: "æ‘˜è¦",
+
+// Table Cell Dialog
+DlgCellTitle		: "å„²å­˜æ ¼å±¬æ€§",
+DlgCellWidth		: "å¯¬åº¦",
+DlgCellWidthPx		: "åƒç´ ",
+DlgCellWidthPc		: "ç™¾åˆ†æ¯”",
+DlgCellHeight		: "é«˜åº¦",
+DlgCellWordWrap		: "è‡ªå‹•æ›è¡Œ",
+DlgCellWordWrapNotSet	: "<å°šæœªè¨­å®š>",
+DlgCellWordWrapYes	: "æ˜¯",
+DlgCellWordWrapNo	: "å¦",
+DlgCellHorAlign		: "æ°´å¹³å°é½Š",
+DlgCellHorAlignNotSet	: "<å°šæœªè¨­å®š>",
+DlgCellHorAlignLeft	: "é å·¦å°é½Š",
+DlgCellHorAlignCenter	: "ç½®ä¸­",
+DlgCellHorAlignRight: "é å³å°é½Š",
+DlgCellVerAlign		: "åž‚ç›´å°é½Š",
+DlgCellVerAlignNotSet	: "<å°šæœªè¨­å®š>",
+DlgCellVerAlignTop	: "é ä¸Šå°é½Š",
+DlgCellVerAlignMiddle	: "ç½®ä¸­",
+DlgCellVerAlignBottom	: "é ä¸‹å°é½Š",
+DlgCellVerAlignBaseline	: "åŸºæº–ç·š",
+DlgCellRowSpan		: "åˆä½µåˆ—æ•¸",
+DlgCellCollSpan		: "åˆä½µæ¬„æ•°",
+DlgCellBackColor	: "èƒŒæ™¯é¡è‰²",
+DlgCellBorderColor	: "é‚Šæ¡†é¡è‰²",
+DlgCellBtnSelect	: "è«‹é¸æ“‡â€¦",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "å°‹æ‰¾èˆ‡å–ä»£",
+
+// Find Dialog
+DlgFindTitle		: "å°‹æ‰¾",
+DlgFindFindBtn		: "å°‹æ‰¾",
+DlgFindNotFoundMsg	: "æœªæ‰¾åˆ°æŒ‡å®šçš„æ–‡å­—ã€‚",
+
+// Replace Dialog
+DlgReplaceTitle			: "å–ä»£",
+DlgReplaceFindLbl		: "å°‹æ‰¾:",
+DlgReplaceReplaceLbl	: "å–ä»£:",
+DlgReplaceCaseChk		: "å¤§å°å¯«é ˆç›¸ç¬¦",
+DlgReplaceReplaceBtn	: "å–ä»£",
+DlgReplaceReplAllBtn	: "å…¨éƒ¨å–ä»£",
+DlgReplaceWordChk		: "å…¨å­—ç›¸ç¬¦",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ç€è¦½å™¨çš„å®‰å…¨æ€§è¨­å®šä¸å…è¨±ç·¨è¼¯å™¨è‡ªå‹•åŸ·è¡Œå‰ªä¸‹å‹•ä½œã€‚è«‹ä½¿ç”¨å¿«æ·éµ (Ctrl+X) å‰ªä¸‹ã€‚",
+PasteErrorCopy	: "ç€è¦½å™¨çš„å®‰å…¨æ€§è¨­å®šä¸å…è¨±ç·¨è¼¯å™¨è‡ªå‹•åŸ·è¡Œè¤‡è£½å‹•ä½œã€‚è«‹ä½¿ç”¨å¿«æ·éµ (Ctrl+C) è¤‡è£½ã€‚",
+
+PasteAsText		: "è²¼ç‚ºç´”æ–‡å­—æ ¼å¼",
+PasteFromWord	: "è‡ª Word è²¼ä¸Š",
+
+DlgPasteMsg2	: "è«‹ä½¿ç”¨å¿«æ·éµ (<strong>Ctrl+V</strong>) è²¼åˆ°ä¸‹æ–¹å€åŸŸä¸­ä¸¦æŒ‰ä¸‹ <strong>ç¢ºå®š</strong>",
+DlgPasteSec		: "å› ç‚ºç€è¦½å™¨çš„å®‰å…¨æ€§è¨­å®šï¼Œæœ¬ç·¨è¼¯å™¨ç„¡æ³•ç›´æŽ¥å­˜å–æ‚¨çš„å‰ªè²¼ç°¿è³‡æ–™ï¼Œè«‹æ‚¨è‡ªè¡Œåœ¨æœ¬è¦–çª—é€²è¡Œè²¼ä¸Šå‹•ä½œã€‚",
+DlgPasteIgnoreFont		: "ç§»é™¤å­—åž‹è¨­å®š",
+DlgPasteRemoveStyles	: "ç§»é™¤æ¨£å¼è¨­å®š",
+
+// Color Picker
+ColorAutomatic	: "è‡ªå‹•",
+ColorMoreColors	: "æ›´å¤šé¡è‰²â€¦",
+
+// Document Properties
+DocProps		: "æ–‡ä»¶å±¬æ€§",
+
+// Anchor Dialog
+DlgAnchorTitle		: "å‘½åéŒ¨é»ž",
+DlgAnchorName		: "éŒ¨é»žåç¨±",
+DlgAnchorErrorName	: "è«‹è¼¸å…¥éŒ¨é»žåç¨±",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ä¸åœ¨å­—å…¸ä¸­",
+DlgSpellChangeTo		: "æ›´æ”¹ç‚º",
+DlgSpellBtnIgnore		: "å¿½ç•¥",
+DlgSpellBtnIgnoreAll	: "å…¨éƒ¨å¿½ç•¥",
+DlgSpellBtnReplace		: "å–ä»£",
+DlgSpellBtnReplaceAll	: "å…¨éƒ¨å–ä»£",
+DlgSpellBtnUndo			: "å¾©åŽŸ",
+DlgSpellNoSuggestions	: "- ç„¡å»ºè­°å€¼ -",
+DlgSpellProgress		: "é€²è¡Œæ‹¼å­—æª¢æŸ¥ä¸­â€¦",
+DlgSpellNoMispell		: "æ‹¼å­—æª¢æŸ¥å®Œæˆï¼šæœªç™¼ç¾æ‹¼å­—éŒ¯èª¤",
+DlgSpellNoChanges		: "æ‹¼å­—æª¢æŸ¥å®Œæˆï¼šæœªæ›´æ”¹ä»»ä½•å–®å­—",
+DlgSpellOneChange		: "æ‹¼å­—æª¢æŸ¥å®Œæˆï¼šæ›´æ”¹äº† 1 å€‹å–®å­—",
+DlgSpellManyChanges		: "æ‹¼å­—æª¢æŸ¥å®Œæˆï¼šæ›´æ”¹äº† %1 å€‹å–®å­—",
+
+IeSpellDownload			: "å°šæœªå®‰è£æ‹¼å­—æª¢æŸ¥å…ƒä»¶ã€‚æ‚¨æ˜¯å¦æƒ³è¦ç¾åœ¨ä¸‹è¼‰ï¼Ÿ",
+
+// Button Dialog
+DlgButtonText		: "é¡¯ç¤ºæ–‡å­— (å€¼)",
+DlgButtonType		: "é¡žåž‹",
+DlgButtonTypeBtn	: "æŒ‰éˆ• (Button)",
+DlgButtonTypeSbm	: "é€å‡º (Submit)",
+DlgButtonTypeRst	: "é‡è¨­ (Reset)",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "åç¨±",
+DlgCheckboxValue	: "é¸å–å€¼",
+DlgCheckboxSelected	: "å·²é¸å–",
+
+// Form Dialog
+DlgFormName		: "åç¨±",
+DlgFormAction	: "å‹•ä½œ",
+DlgFormMethod	: "æ–¹æ³•",
+
+// Select Field Dialog
+DlgSelectName		: "åç¨±",
+DlgSelectValue		: "é¸å–å€¼",
+DlgSelectSize		: "å¤§å°",
+DlgSelectLines		: "è¡Œ",
+DlgSelectChkMulti	: "å¯å¤šé¸",
+DlgSelectOpAvail	: "å¯ç”¨é¸é …",
+DlgSelectOpText		: "é¡¯ç¤ºæ–‡å­—",
+DlgSelectOpValue	: "å€¼",
+DlgSelectBtnAdd		: "æ–°å¢ž",
+DlgSelectBtnModify	: "ä¿®æ”¹",
+DlgSelectBtnUp		: "ä¸Šç§»",
+DlgSelectBtnDown	: "ä¸‹ç§»",
+DlgSelectBtnSetValue : "è¨­ç‚ºé è¨­å€¼",
+DlgSelectBtnDelete	: "åˆªé™¤",
+
+// Textarea Dialog
+DlgTextareaName	: "åç¨±",
+DlgTextareaCols	: "å­—å…ƒå¯¬åº¦",
+DlgTextareaRows	: "åˆ—æ•¸",
+
+// Text Field Dialog
+DlgTextName			: "åç¨±",
+DlgTextValue		: "å€¼",
+DlgTextCharWidth	: "å­—å…ƒå¯¬åº¦",
+DlgTextMaxChars		: "æœ€å¤šå­—å…ƒæ•¸",
+DlgTextType			: "é¡žåž‹",
+DlgTextTypeText		: "æ–‡å­—",
+DlgTextTypePass		: "å¯†ç¢¼",
+
+// Hidden Field Dialog
+DlgHiddenName	: "åç¨±",
+DlgHiddenValue	: "å€¼",
+
+// Bulleted List Dialog
+BulletedListProp	: "é …ç›®æ¸…å–®å±¬æ€§",
+NumberedListProp	: "ç·¨è™Ÿæ¸…å–®å±¬æ€§",
+DlgLstStart			: "èµ·å§‹ç·¨è™Ÿ",
+DlgLstType			: "æ¸…å–®é¡žåž‹",
+DlgLstTypeCircle	: "åœ“åœˆ",
+DlgLstTypeDisc		: "åœ“é»ž",
+DlgLstTypeSquare	: "æ–¹å¡Š",
+DlgLstTypeNumbers	: "æ•¸å­— (1, 2, 3)",
+DlgLstTypeLCase		: "å°å¯«å­—æ¯ (a, b, c)",
+DlgLstTypeUCase		: "å¤§å¯«å­—æ¯ (A, B, C)",
+DlgLstTypeSRoman	: "å°å¯«ç¾…é¦¬æ•¸å­— (i, ii, iii)",
+DlgLstTypeLRoman	: "å¤§å¯«ç¾…é¦¬æ•¸å­— (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ä¸€èˆ¬",
+DlgDocBackTab		: "èƒŒæ™¯",
+DlgDocColorsTab		: "é¡¯è‰²èˆ‡é‚Šç•Œ",
+DlgDocMetaTab		: "Meta è³‡æ–™",
+
+DlgDocPageTitle		: "é é¢æ¨™é¡Œ",
+DlgDocLangDir		: "èªžè¨€æ–¹å‘",
+DlgDocLangDirLTR	: "ç”±å·¦è€Œå³ (LTR)",
+DlgDocLangDirRTL	: "ç”±å³è€Œå·¦ (RTL)",
+DlgDocLangCode		: "èªžè¨€ä»£ç¢¼",
+DlgDocCharSet		: "å­—å…ƒç·¨ç¢¼",
+DlgDocCharSetCE		: "ä¸­æ­èªžç³»",
+DlgDocCharSetCT		: "æ­£é«”ä¸­æ–‡ (Big5)",
+DlgDocCharSetCR		: "æ–¯æ‹‰å¤«æ–‡",
+DlgDocCharSetGR		: "å¸Œè‡˜æ–‡",
+DlgDocCharSetJP		: "æ—¥æ–‡",
+DlgDocCharSetKR		: "éŸ“æ–‡",
+DlgDocCharSetTR		: "åœŸè€³å…¶æ–‡",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "è¥¿æ­èªžç³»",
+DlgDocCharSetOther	: "å…¶ä»–å­—å…ƒç·¨ç¢¼",
+
+DlgDocDocType		: "æ–‡ä»¶é¡žåž‹",
+DlgDocDocTypeOther	: "å…¶ä»–æ–‡ä»¶é¡žåž‹",
+DlgDocIncXHTML		: "åŒ…å« XHTML å®šç¾©",
+DlgDocBgColor		: "èƒŒæ™¯é¡è‰²",
+DlgDocBgImage		: "èƒŒæ™¯å½±åƒ",
+DlgDocBgNoScroll	: "æµ®æ°´å°",
+DlgDocCText			: "æ–‡å­—",
+DlgDocCLink			: "è¶…é€£çµ",
+DlgDocCVisited		: "å·²ç€è¦½éŽçš„è¶…é€£çµ",
+DlgDocCActive		: "ä½œç”¨ä¸­çš„è¶…é€£çµ",
+DlgDocMargins		: "é é¢é‚Šç•Œ",
+DlgDocMaTop			: "ä¸Š",
+DlgDocMaLeft		: "å·¦",
+DlgDocMaRight		: "å³",
+DlgDocMaBottom		: "ä¸‹",
+DlgDocMeIndex		: "æ–‡ä»¶ç´¢å¼•é—œéµå­— (ç”¨åŠå½¢é€—è™Ÿ[,]åˆ†éš”)",
+DlgDocMeDescr		: "æ–‡ä»¶èªªæ˜Ž",
+DlgDocMeAuthor		: "ä½œè€…",
+DlgDocMeCopy		: "ç‰ˆæ¬Šæ‰€æœ‰",
+DlgDocPreview		: "é è¦½",
+
+// Templates Dialog
+Templates			: "æ¨£ç‰ˆ",
+DlgTemplatesTitle	: "å…§å®¹æ¨£ç‰ˆ",
+DlgTemplatesSelMsg	: "è«‹é¸æ“‡æ¬²é–‹å•Ÿçš„æ¨£ç‰ˆ<br> (åŽŸæœ‰çš„å…§å®¹å°‡æœƒè¢«æ¸…é™¤):",
+DlgTemplatesLoading	: "è®€å–æ¨£ç‰ˆæ¸…å–®ä¸­ï¼Œè«‹ç¨å€™â€¦",
+DlgTemplatesNoTpl	: "(ç„¡æ¨£ç‰ˆ)",
+DlgTemplatesReplace	: "å–ä»£åŽŸæœ‰å…§å®¹",
+
+// About Dialog
+DlgAboutAboutTab	: "é—œæ–¼",
+DlgAboutBrowserInfoTab	: "ç€è¦½å™¨è³‡è¨Š",
+DlgAboutLicenseTab	: "è¨±å¯è­‰",
+DlgAboutVersion		: "ç‰ˆæœ¬",
+DlgAboutInfo		: "æƒ³ç²å¾—æ›´å¤šè³‡è¨Šè«‹è‡³ "
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ca.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ca.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ca.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Catalan language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Redueix la barra d'eines",
+ToolbarExpand		: "Amplia la barra d'eines",
+
+// Toolbar Items and Context Menu
+Save				: "Desa",
+NewPage				: "Nova PÃ gina",
+Preview				: "VisualitzaciÃ³ prÃ¨via",
+Cut					: "Retalla",
+Copy				: "Copia",
+Paste				: "Enganxa",
+PasteText			: "Enganxa com a text no formatat",
+PasteWord			: "Enganxa des del Word",
+Print				: "Imprimeix",
+SelectAll			: "Selecciona-ho tot",
+RemoveFormat		: "Elimina Format",
+InsertLinkLbl		: "EnllaÃ§",
+InsertLink			: "Insereix/Edita enllaÃ§",
+RemoveLink			: "Elimina enllaÃ§",
+Anchor				: "Insereix/Edita Ã ncora",
+AnchorDelete		: "Elimina Ã ncora",
+InsertImageLbl		: "Imatge",
+InsertImage			: "Insereix/Edita imatge",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insereix/Edita Flash",
+InsertTableLbl		: "Taula",
+InsertTable			: "Insereix/Edita taula",
+InsertLineLbl		: "LÃ­nia",
+InsertLine			: "Insereix lÃ­nia horitzontal",
+InsertSpecialCharLbl: "CarÃ cter Especial",
+InsertSpecialChar	: "Insereix carÃ cter especial",
+InsertSmileyLbl		: "Icona",
+InsertSmiley		: "Insereix icona",
+About				: "Quant a l'FCKeditor",
+Bold				: "Negreta",
+Italic				: "Cursiva",
+Underline			: "Subratllat",
+StrikeThrough		: "Barrat",
+Subscript			: "SubÃ­ndex",
+Superscript			: "SuperÃ­ndex",
+LeftJustify			: "Alinia a l'esquerra",
+CenterJustify		: "Centrat",
+RightJustify		: "Alinia a la dreta",
+BlockJustify		: "Justificat",
+DecreaseIndent		: "Redueix el sagnat",
+IncreaseIndent		: "Augmenta el sagnat",
+Blockquote			: "Bloc de cita",
+Undo				: "DesfÃ©s",
+Redo				: "RefÃ©s",
+NumberedListLbl		: "Llista numerada",
+NumberedList		: "NumeraciÃ³ activada/desactivada",
+BulletedListLbl		: "Llista de pics",
+BulletedList		: "Pics activats/descativats",
+ShowTableBorders	: "Mostra les vores de les taules",
+ShowDetails			: "Mostra detalls",
+Style				: "Estil",
+FontFormat			: "Format",
+Font				: "Tipus de lletra",
+FontSize			: "Mida",
+TextColor			: "Color de Text",
+BGColor				: "Color de Fons",
+Source				: "Codi font",
+Find				: "Cerca",
+Replace				: "ReemplaÃ§a",
+SpellCheck			: "Revisa l'ortografia",
+UniversalKeyboard	: "Teclat universal",
+PageBreakLbl		: "Salt de pÃ gina",
+PageBreak			: "Insereix salt de pÃ gina",
+
+Form			: "Formulari",
+Checkbox		: "Casella de verificaciÃ³",
+RadioButton		: "BotÃ³ d'opciÃ³",
+TextField		: "Camp de text",
+Textarea		: "Ã€rea de text",
+HiddenField		: "Camp ocult",
+Button			: "BotÃ³",
+SelectionField	: "Camp de selecciÃ³",
+ImageButton		: "BotÃ³ d'imatge",
+
+FitWindow		: "Maximiza la mida de l'editor",
+ShowBlocks		: "Mostra els blocs",
+
+// Context Menu
+EditLink			: "Edita l'enllaÃ§",
+CellCM				: "CelÂ·la",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRowAfter		: "Insereix fila darrera",
+InsertRowBefore		: "Insereix fila abans de",
+DeleteRows			: "Suprimeix una fila",
+InsertColumnAfter	: "Insereix columna darrera",
+InsertColumnBefore	: "Insereix columna abans de",
+DeleteColumns		: "Suprimeix una columna",
+InsertCellAfter		: "Insereix celÂ·la darrera",
+InsertCellBefore	: "Insereix celÂ·la abans de",
+DeleteCells			: "Suprimeix les celÂ·les",
+MergeCells			: "Fusiona les celÂ·les",
+MergeRight			: "Fusiona cap a la dreta",
+MergeDown			: "Fusiona cap avall",
+HorizontalSplitCell	: "Divideix la celÂ·la horitzontalment",
+VerticalSplitCell	: "Divideix la celÂ·la verticalment",
+TableDelete			: "Suprimeix la taula",
+CellProperties		: "Propietats de la celÂ·la",
+TableProperties		: "Propietats de la taula",
+ImageProperties		: "Propietats de la imatge",
+FlashProperties		: "Propietats del Flash",
+
+AnchorProp			: "Propietats de l'Ã ncora",
+ButtonProp			: "Propietats del botÃ³",
+CheckboxProp		: "Propietats de la casella de verificaciÃ³",
+HiddenFieldProp		: "Propietats del camp ocult",
+RadioButtonProp		: "Propietats del botÃ³ d'opciÃ³",
+ImageButtonProp		: "Propietats del botÃ³ d'imatge",
+TextFieldProp		: "Propietats del camp de text",
+SelectionFieldProp	: "Propietats del camp de selecciÃ³",
+TextareaProp		: "Propietats de l'Ã rea de text",
+FormProp			: "Propietats del formulari",
+
+FontFormats			: "Normal;Formatejat;AdreÃ§a;EncapÃ§alament 1;EncapÃ§alament 2;EncapÃ§alament 3;EncapÃ§alament 4;EncapÃ§alament 5;EncapÃ§alament 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processant XHTML. Si us plau esperi...",
+Done				: "Fet",
+PasteWordConfirm	: "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?",
+NotCompatiblePaste	: "Aquesta funciÃ³ Ã©s disponible per a Internet Explorer versiÃ³ 5.5 o superior. Voleu enganxar sense netejar?",
+UnknownToolbarItem	: "Element de la barra d'eines desconegut \"%1\"",
+UnknownCommand		: "Nom de comanda desconegut \"%1\"",
+NotImplemented		: "MÃ¨tode no implementat",
+UnknownToolbarSet	: "Conjunt de barra d'eines \"%1\" inexistent",
+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.",
+BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+DialogBlocked		: "No ha estat possible obrir una finestra de diÃ leg. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+
+// Dialogs
+DlgBtnOK			: "D'acord",
+DlgBtnCancel		: "CancelÂ·la",
+DlgBtnClose			: "Tanca",
+DlgBtnBrowseServer	: "Veure servidor",
+DlgAdvancedTag		: "AvanÃ§at",
+DlgOpOther			: "Altres",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Si us plau, afegiu la URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<no definit>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "DirecciÃ³ de l'idioma",
+DlgGenLangDirLtr	: "D'esquerra a dreta (LTR)",
+DlgGenLangDirRtl	: "De dreta a esquerra (RTL)",
+DlgGenLangCode		: "Codi d'idioma",
+DlgGenAccessKey		: "Clau d'accÃ©s",
+DlgGenName			: "Nom",
+DlgGenTabIndex		: "Index de Tab",
+DlgGenLongDescr		: "DescripciÃ³ llarga de la URL",
+DlgGenClass			: "Classes del full d'estil",
+DlgGenTitle			: "TÃ­tol consultiu",
+DlgGenContType		: "Tipus de contingut consultiu",
+DlgGenLinkCharset	: "Conjunt de carÃ cters font enllaÃ§at",
+DlgGenStyle			: "Estil",
+
+// Image Dialog
+DlgImgTitle			: "Propietats de la imatge",
+DlgImgInfoTab		: "InformaciÃ³ de la imatge",
+DlgImgBtnUpload		: "Envia-la al servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Puja",
+DlgImgAlt			: "Text alternatiu",
+DlgImgWidth			: "Amplada",
+DlgImgHeight		: "AlÃ§ada",
+DlgImgLockRatio		: "Bloqueja les proporcions",
+DlgBtnResetSize		: "Restaura la mida",
+DlgImgBorder		: "Vora",
+DlgImgHSpace		: "Espaiat horit.",
+DlgImgVSpace		: "Espaiat vert.",
+DlgImgAlign			: "AlineaciÃ³",
+DlgImgAlignLeft		: "Ajusta a l'esquerra",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Ajusta a la dreta",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Vista prÃ¨via",
+DlgImgAlertUrl		: "Si us plau, escriviu la URL de la imatge",
+DlgImgLinkTab		: "EnllaÃ§",
+
+// Flash Dialog
+DlgFlashTitle		: "Propietats del Flash",
+DlgFlashChkPlay		: "ReproduciÃ³ automÃ tica",
+DlgFlashChkLoop		: "Bucle",
+DlgFlashChkMenu		: "Habilita menÃº Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostra-ho tot",
+DlgFlashScaleNoBorder	: "Sense vores",
+DlgFlashScaleFit	: "Mida exacta",
+
+// Link Dialog
+DlgLnkWindowTitle	: "EnllaÃ§",
+DlgLnkInfoTab		: "InformaciÃ³ de l'enllaÃ§",
+DlgLnkTargetTab		: "DestÃ­",
+
+DlgLnkType			: "Tipus d'enllaÃ§",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ã€ncora en aquesta pÃ gina",
+DlgLnkTypeEMail		: "Correu electrÃ²nic",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<altra>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Selecciona una Ã ncora",
+DlgLnkAnchorByName	: "Per nom d'Ã ncora",
+DlgLnkAnchorById	: "Per Id d'element",
+DlgLnkNoAnchors		: "(No hi ha Ã ncores disponibles en aquest document)",
+DlgLnkEMail			: "AdreÃ§a de correu electrÃ²nic",
+DlgLnkEMailSubject	: "Assumpte del missatge",
+DlgLnkEMailBody		: "Cos del missatge",
+DlgLnkUpload		: "Puja",
+DlgLnkBtnUpload		: "Envia al servidor",
+
+DlgLnkTarget		: "DestÃ­",
+DlgLnkTargetFrame	: "<marc>",
+DlgLnkTargetPopup	: "<finestra emergent>",
+DlgLnkTargetBlank	: "Nova finestra (_blank)",
+DlgLnkTargetParent	: "Finestra pare (_parent)",
+DlgLnkTargetSelf	: "Mateixa finestra (_self)",
+DlgLnkTargetTop		: "Finestra Major (_top)",
+DlgLnkTargetFrameName	: "Nom del marc de destÃ­",
+DlgLnkPopWinName	: "Nom finestra popup",
+DlgLnkPopWinFeat	: "CaracterÃ­stiques finestra popup",
+DlgLnkPopResize		: "Redimensionable",
+DlgLnkPopLocation	: "Barra d'adreÃ§a",
+DlgLnkPopMenu		: "Barra de menÃº",
+DlgLnkPopScroll		: "Barres d'scroll",
+DlgLnkPopStatus		: "Barra d'estat",
+DlgLnkPopToolbar	: "Barra d'eines",
+DlgLnkPopFullScrn	: "Pantalla completa (IE)",
+DlgLnkPopDependent	: "Depenent (Netscape)",
+DlgLnkPopWidth		: "Amplada",
+DlgLnkPopHeight		: "AlÃ§ada",
+DlgLnkPopLeft		: "PosiciÃ³ esquerra",
+DlgLnkPopTop		: "PosiciÃ³ dalt",
+
+DlnLnkMsgNoUrl		: "Si us plau, escrigui l'enllaÃ§ URL",
+DlnLnkMsgNoEMail	: "Si us plau, escrigui l'adreÃ§a correu electrÃ²nic",
+DlnLnkMsgNoAnchor	: "Si us plau, escrigui l'Ã ncora",
+DlnLnkMsgInvPopName	: "El nom de la finestra emergent ha de comenÃ§ar amb una lletra i no pot tenir espais",
+
+// Color Dialog
+DlgColorTitle		: "Selecciona el color",
+DlgColorBtnClear	: "Neteja",
+DlgColorHighlight	: "RealÃ§a",
+DlgColorSelected	: "Selecciona",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insereix una icona",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecciona el carÃ cter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propietats de la taula",
+DlgTableRows		: "Files",
+DlgTableColumns		: "Columnes",
+DlgTableBorder		: "Mida vora",
+DlgTableAlign		: "AlineaciÃ³",
+DlgTableAlignNotSet	: "<No Definit>",
+DlgTableAlignLeft	: "Esquerra",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Dreta",
+DlgTableWidth		: "Amplada",
+DlgTableWidthPx		: "pÃ­xels",
+DlgTableWidthPc		: "percentatge",
+DlgTableHeight		: "AlÃ§ada",
+DlgTableCellSpace	: "Espaiat de celÂ·les",
+DlgTableCellPad		: "Encoixinament de celÂ·les",
+DlgTableCaption		: "TÃ­tol",
+DlgTableSummary		: "Resum",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propietats de la celÂ·la",
+DlgCellWidth		: "Amplada",
+DlgCellWidthPx		: "pÃ­xels",
+DlgCellWidthPc		: "percentatge",
+DlgCellHeight		: "AlÃ§ada",
+DlgCellWordWrap		: "Ajust de paraula",
+DlgCellWordWrapNotSet	: "<No Definit>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "AlineaciÃ³ horitzontal",
+DlgCellHorAlignNotSet	: "<No Definit>",
+DlgCellHorAlignLeft	: "Esquerra",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Dreta",
+DlgCellVerAlign		: "AlineaciÃ³ vertical",
+DlgCellVerAlignNotSet	: "<No definit>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Color de fons",
+DlgCellBorderColor	: "Color de la vora",
+DlgCellBtnSelect	: "Seleccioneu...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Cerca i reemplaÃ§a",
+
+// Find Dialog
+DlgFindTitle		: "Cerca",
+DlgFindFindBtn		: "Cerca",
+DlgFindNotFoundMsg	: "El text especificat no s'ha trobat.",
+
+// Replace Dialog
+DlgReplaceTitle			: "ReemplaÃ§a",
+DlgReplaceFindLbl		: "Cerca:",
+DlgReplaceReplaceLbl	: "RemplaÃ§a amb:",
+DlgReplaceCaseChk		: "Distingeix majÃºscules/minÃºscules",
+DlgReplaceReplaceBtn	: "ReemplaÃ§a",
+DlgReplaceReplAllBtn	: "ReemplaÃ§a-ho tot",
+DlgReplaceWordChk		: "NomÃ©s paraules completes",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "La seguretat del vostre navegador no permet executar automÃ ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
+PasteErrorCopy	: "La seguretat del vostre navegador no permet executar automÃ ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
+
+PasteAsText		: "Enganxa com a text no formatat",
+PasteFromWord	: "Enganxa com a Word",
+
+DlgPasteMsg2	: "Si us plau, enganxeu dins del segÃ¼ent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.",
+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.",
+DlgPasteIgnoreFont		: "Ignora definicions de font",
+DlgPasteRemoveStyles	: "Elimina definicions d'estil",
+
+// Color Picker
+ColorAutomatic	: "AutomÃ tic",
+ColorMoreColors	: "MÃ©s colors...",
+
+// Document Properties
+DocProps		: "Propietats del document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propietats de l'Ã ncora",
+DlgAnchorName		: "Nom de l'Ã ncora",
+DlgAnchorErrorName	: "Si us plau, escriviu el nom de l'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "No Ã©s al diccionari",
+DlgSpellChangeTo		: "ReemplaÃ§a amb",
+DlgSpellBtnIgnore		: "Ignora",
+DlgSpellBtnIgnoreAll	: "Ignora-les totes",
+DlgSpellBtnReplace		: "Canvia",
+DlgSpellBtnReplaceAll	: "Canvia-les totes",
+DlgSpellBtnUndo			: "DesfÃ©s",
+DlgSpellNoSuggestions	: "Cap suggeriment",
+DlgSpellProgress		: "VerificaciÃ³ ortogrÃ fica en curs...",
+DlgSpellNoMispell		: "VerificaciÃ³ ortogrÃ fica acabada: no hi ha cap paraula mal escrita",
+DlgSpellNoChanges		: "VerificaciÃ³ ortogrÃ fica: no s'ha canviat cap paraula",
+DlgSpellOneChange		: "VerificaciÃ³ ortogrÃ fica: s'ha canviat una paraula",
+DlgSpellManyChanges		: "VerificaciÃ³ ortogrÃ fica: s'han canviat %1 paraules",
+
+IeSpellDownload			: "VerificaciÃ³ ortogrÃ fica no instalÂ·lada. Voleu descarregar-ho ara?",
+
+// Button Dialog
+DlgButtonText		: "Text (Valor)",
+DlgButtonType		: "Tipus",
+DlgButtonTypeBtn	: "BotÃ³",
+DlgButtonTypeSbm	: "Transmet formulari",
+DlgButtonTypeRst	: "Reinicia formulari",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nom",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionat",
+
+// Form Dialog
+DlgFormName		: "Nom",
+DlgFormAction	: "AcciÃ³",
+DlgFormMethod	: "MÃ¨tode",
+
+// Select Field Dialog
+DlgSelectName		: "Nom",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Mida",
+DlgSelectLines		: "LÃ­nies",
+DlgSelectChkMulti	: "Permet mÃºltiples seleccions",
+DlgSelectOpAvail	: "Opcions disponibles",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Afegeix",
+DlgSelectBtnModify	: "Modifica",
+DlgSelectBtnUp		: "Amunt",
+DlgSelectBtnDown	: "Avall",
+DlgSelectBtnSetValue : "Selecciona per defecte",
+DlgSelectBtnDelete	: "Elimina",
+
+// Textarea Dialog
+DlgTextareaName	: "Nom",
+DlgTextareaCols	: "Columnes",
+DlgTextareaRows	: "Files",
+
+// Text Field Dialog
+DlgTextName			: "Nom",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Amplada",
+DlgTextMaxChars		: "Nombre mÃ xim de carÃ cters",
+DlgTextType			: "Tipus",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Contrasenya",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nom",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propietats de la llista de pics",
+NumberedListProp	: "Propietats de llista numerada",
+DlgLstStart			: "Inici",
+DlgLstType			: "Tipus",
+DlgLstTypeCircle	: "Cercle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Quadrat",
+DlgLstTypeNumbers	: "NÃºmeros (1, 2, 3)",
+DlgLstTypeLCase		: "Lletres minÃºscules (a, b, c)",
+DlgLstTypeUCase		: "Lletres majÃºscules (A, B, C)",
+DlgLstTypeSRoman	: "NÃºmeros romans en minÃºscules (i, ii, iii)",
+DlgLstTypeLRoman	: "NÃºmeros romans en majÃºscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fons",
+DlgDocColorsTab		: "Colors i marges",
+DlgDocMetaTab		: "Metadades",
+
+DlgDocPageTitle		: "TÃ­tol de la pÃ gina",
+DlgDocLangDir		: "DirecciÃ³ idioma",
+DlgDocLangDirLTR	: "Esquerra a dreta (LTR)",
+DlgDocLangDirRTL	: "Dreta a esquerra (RTL)",
+DlgDocLangCode		: "Codi d'idioma",
+DlgDocCharSet		: "CodificaciÃ³ de conjunt de carÃ cters",
+DlgDocCharSetCE		: "Centreeuropeu",
+DlgDocCharSetCT		: "XinÃ¨s tradicional (Big5)",
+DlgDocCharSetCR		: "CirÃ­lÂ·lic",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "JaponÃ¨s",
+DlgDocCharSetKR		: "CoreÃ ",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europeu occidental",
+DlgDocCharSetOther	: "Una altra codificaciÃ³ de carÃ cters",
+
+DlgDocDocType		: "CapÃ§alera de tipus de document",
+DlgDocDocTypeOther	: "Un altra capÃ§alera de tipus de document",
+DlgDocIncXHTML		: "Incloure declaracions XHTML",
+DlgDocBgColor		: "Color de fons",
+DlgDocBgImage		: "URL de la imatge de fons",
+DlgDocBgNoScroll	: "Fons fixe",
+DlgDocCText			: "Text",
+DlgDocCLink			: "EnllaÃ§",
+DlgDocCVisited		: "EnllaÃ§ visitat",
+DlgDocCActive		: "EnllaÃ§ actiu",
+DlgDocMargins		: "Marges de pÃ gina",
+DlgDocMaTop			: "Cap",
+DlgDocMaLeft		: "Esquerra",
+DlgDocMaRight		: "Dreta",
+DlgDocMaBottom		: "Peu",
+DlgDocMeIndex		: "Mots clau per a indexaciÃ³ (separats per coma)",
+DlgDocMeDescr		: "DescripciÃ³ del document",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista prÃ¨via",
+
+// Templates Dialog
+Templates			: "Plantilles",
+DlgTemplatesTitle	: "Contingut plantilles",
+DlgTemplatesSelMsg	: "Si us plau, seleccioneu la plantilla per obrir a l'editor<br>(el contingut actual no serÃ  enregistrat):",
+DlgTemplatesLoading	: "Carregant la llista de plantilles. Si us plau, espereu...",
+DlgTemplatesNoTpl	: "(No hi ha plantilles definides)",
+DlgTemplatesReplace	: "ReemplaÃ§a el contingut actual",
+
+// About Dialog
+DlgAboutAboutTab	: "Quant a",
+DlgAboutBrowserInfoTab	: "InformaciÃ³ del navegador",
+DlgAboutLicenseTab	: "LlicÃ¨ncia",
+DlgAboutVersion		: "versiÃ³",
+DlgAboutInfo		: "Per a mÃ©s informaciÃ³ aneu a"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/en-ca.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (Canadian) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+AnchorDelete		: "Remove Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Blockquote			: "Blockquote",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+ShowBlocks		: "Show Blocks",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRowAfter		: "Insert Row After",
+InsertRowBefore		: "Insert Row Before",
+DeleteRows			: "Delete Rows",
+InsertColumnAfter	: "Insert Column After",
+InsertColumnBefore	: "Insert Column Before",
+DeleteColumns		: "Delete Columns",
+InsertCellAfter		: "Insert Cell After",
+InsertCellBefore	: "Insert Cell Before",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+MergeRight			: "Merge Right",
+MergeDown			: "Merge Down",
+HorizontalSplitCell	: "Split Cell Horizontally",
+VerticalSplitCell	: "Split Cell Vertically",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+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.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For further information go to"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/pt.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Portuguese language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Fechar Barra",
+ToolbarExpand		: "Expandir Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Guardar",
+NewPage				: "Nova PÃ¡gina",
+Preview				: "PrÃ©-visualizar",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Colar",
+PasteText			: "Colar como texto nÃ£o formatado",
+PasteWord			: "Colar do Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar Tudo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "HiperligaÃ§Ã£o",
+InsertLink			: "Inserir/Editar HiperligaÃ§Ã£o",
+RemoveLink			: "Eliminar HiperligaÃ§Ã£o",
+Anchor				: " Inserir/Editar Ã‚ncora",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Imagem",
+InsertImage			: "Inserir/Editar Imagem",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Inserir/Editar Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Inserir/Editar Tabela",
+InsertLineLbl		: "Linha",
+InsertLine			: "Inserir Linha Horizontal",
+InsertSpecialCharLbl: "Caracter Especial",
+InsertSpecialChar	: "Inserir Caracter Especial",
+InsertSmileyLbl		: "Emoticons",
+InsertSmiley		: "Inserir Emoticons",
+About				: "Acerca do FCKeditor",
+Bold				: "Negrito",
+Italic				: "ItÃ¡lico",
+Underline			: "Sublinhado",
+StrikeThrough		: "Rasurado",
+Subscript			: "Superior Ã  Linha",
+Superscript			: "Inferior Ã  Linha",
+LeftJustify			: "Alinhar Ã  Esquerda",
+CenterJustify		: "Alinhar ao Centro",
+RightJustify		: "Alinhar Ã  Direita",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Diminuir AvanÃ§o",
+IncreaseIndent		: "Aumentar AvanÃ§o",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Anular",
+Redo				: "Repetir",
+NumberedListLbl		: "NumeraÃ§Ã£o",
+NumberedList		: "Inserir/Eliminar NumeraÃ§Ã£o",
+BulletedListLbl		: "Marcas",
+BulletedList		: "Inserir/Eliminar Marcas",
+ShowTableBorders	: "Mostrar Limites da Tabelas",
+ShowDetails			: "Mostrar ParÃ¡grafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Tipo de Letra",
+FontSize			: "Tamanho",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor de Fundo",
+Source				: "Fonte",
+Find				: "Procurar",
+Replace				: "Substituir",
+SpellCheck			: "VerificaÃ§Ã£o OrtogrÃ¡fica",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de PÃ¡gina",
+PageBreak			: "Inserir Quebra de PÃ¡gina",
+
+Form			: "FormulÃ¡rio",
+Checkbox		: "Caixa de VerificaÃ§Ã£o",
+RadioButton		: "BotÃ£o de OpÃ§Ã£o",
+TextField		: "Campo de Texto",
+Textarea		: "Ãrea de Texto",
+HiddenField		: "Campo Escondido",
+Button			: "BotÃ£o",
+SelectionField	: "Caixa de CombinaÃ§Ã£o",
+ImageButton		: "BotÃ£o de Imagem",
+
+FitWindow		: "Maximizar o tamanho do editor",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Editar HiperligaÃ§Ã£o",
+CellCM				: "CÃ©lula",
+RowCM				: "Linha",
+ColumnCM			: "Coluna",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Eliminar Linhas",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Eliminar Coluna",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Eliminar CÃ©lula",
+MergeCells			: "Unir CÃ©lulas",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Eliminar Tabela",
+CellProperties		: "Propriedades da CÃ©lula",
+TableProperties		: "Propriedades da Tabela",
+ImageProperties		: "Propriedades da Imagem",
+FlashProperties		: "Propriedades do Flash",
+
+AnchorProp			: "Propriedades da Ã‚ncora",
+ButtonProp			: "Propriedades do BotÃ£o",
+CheckboxProp		: "Propriedades da Caixa de VerificaÃ§Ã£o",
+HiddenFieldProp		: "Propriedades do Campo Escondido",
+RadioButtonProp		: "Propriedades do BotÃ£o de OpÃ§Ã£o",
+ImageButtonProp		: "Propriedades do BotÃ£o de imagens",
+TextFieldProp		: "Propriedades do Campo de Texto",
+SelectionFieldProp	: "Propriedades da Caixa de CombinaÃ§Ã£o",
+TextareaProp		: "Propriedades da Ãrea de Texto",
+FormProp			: "Propriedades do FormulÃ¡rio",
+
+FontFormats			: "Normal;Formatado;EndereÃ§o;TÃ­tulo 1;TÃ­tulo 2;TÃ­tulo 3;TÃ­tulo 4;TÃ­tulo 5;TÃ­tulo 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "A Processar XHTML. Por favor, espere...",
+Done				: "ConcluÃ­do",
+PasteWordConfirm	: "O texto que deseja parece ter sido copiado do Word. Deseja limpar a formataÃ§Ã£o antes de colar?",
+NotCompatiblePaste	: "Este comando sÃ³ estÃ¡ disponÃ­vel para Internet Explorer versÃ£o 5.5 ou superior. Deseja colar sem limpar a formataÃ§Ã£o?",
+UnknownToolbarItem	: "Item de barra desconhecido \"%1\"",
+UnknownCommand		: "Nome de comando desconhecido \"%1\"",
+NotImplemented		: "Comando nÃ£o implementado",
+UnknownToolbarSet	: "Nome de barra \"%1\" nÃ£o definido",
+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.",
+BrowseServerBlocked : "NÃ£o foi possÃ­vel abrir o navegador de recursos. Certifique-se que todos os bloqueadores de popup estÃ£o desactivados.",
+DialogBlocked		: "NÃ£o foi possÃ­vel abrir a janela de diÃ¡logo. Certifique-se que todos os bloqueadores de popup estÃ£o desactivados.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Fechar",
+DlgBtnBrowseServer	: "Navegar no Servidor",
+DlgAdvancedTag		: "AvanÃ§ado",
+DlgOpOther			: "<Outro>",
+DlgInfoTab			: "InformaÃ§Ã£o",
+DlgAlertUrl			: "Por favor introduza o URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<NÃ£o definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "OrientaÃ§Ã£o de idioma",
+DlgGenLangDirLtr	: "Esquerda Ã  Direita (LTR)",
+DlgGenLangDirRtl	: "Direita a Esquerda (RTL)",
+DlgGenLangCode		: "CÃ³digo de Idioma",
+DlgGenAccessKey		: "Chave de Acesso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Ãndice de TubulaÃ§Ã£o",
+DlgGenLongDescr		: "DescriÃ§Ã£o Completa do URL",
+DlgGenClass			: "Classes de Estilo de Folhas Classes",
+DlgGenTitle			: "TÃ­tulo",
+DlgGenContType		: "Tipo de ConteÃºdo",
+DlgGenLinkCharset	: "Fonte de caracteres vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propriedades da Imagem",
+DlgImgInfoTab		: "InformaÃ§Ã£o da Imagem",
+DlgImgBtnUpload		: "Enviar para o Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carregar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "Tamanho Original",
+DlgImgBorder		: "Limite",
+DlgImgHSpace		: "Esp.Horiz",
+DlgImgVSpace		: "Esp.Vert",
+DlgImgAlign			: "Alinhamento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Abs inferior",
+DlgImgAlignAbsMiddle: "Abs centro",
+DlgImgAlignBaseline	: "Linha de base",
+DlgImgAlignBottom	: "Fundo",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Direita",
+DlgImgAlignTextTop	: "Topo do texto",
+DlgImgAlignTop		: "Topo",
+DlgImgPreview		: "PrÃ©-visualizar",
+DlgImgAlertUrl		: "Por favor introduza o URL da imagem",
+DlgImgLinkTab		: "HiperligaÃ§Ã£o",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades do Flash",
+DlgFlashChkPlay		: "Reproduzir automaticamente",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Permitir Menu do Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar tudo",
+DlgFlashScaleNoBorder	: "Sem Limites",
+DlgFlashScaleFit	: "Tamanho Exacto",
+
+// Link Dialog
+DlgLnkWindowTitle	: "HiperligaÃ§Ã£o",
+DlgLnkInfoTab		: "InformaÃ§Ã£o de HiperligaÃ§Ã£o",
+DlgLnkTargetTab		: "Destino",
+
+DlgLnkType			: "Tipo de HiperligaÃ§Ã£o",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "ReferÃªncia a esta pÃ¡gina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar una referÃªncia",
+DlgLnkAnchorByName	: "Por Nome de ReferÃªncia",
+DlgLnkAnchorById	: "Por ID de elemento",
+DlgLnkNoAnchors		: "(NÃ£o hÃ¡ referÃªncias disponÃ­veis no documento)",
+DlgLnkEMail			: "EndereÃ§o de E-Mail",
+DlgLnkEMailSubject	: "TÃ­tulo de Mensagem",
+DlgLnkEMailBody		: "Corpo da Mensagem",
+DlgLnkUpload		: "Carregar",
+DlgLnkBtnUpload		: "Enviar ao Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Janela de popup>",
+DlgLnkTargetBlank	: "Nova Janela(_blank)",
+DlgLnkTargetParent	: "Janela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma janela (_self)",
+DlgLnkTargetTop		: "Janela primaria (_top)",
+DlgLnkTargetFrameName	: "Nome do Frame Destino",
+DlgLnkPopWinName	: "Nome da Janela de Popup",
+DlgLnkPopWinFeat	: "CaracterÃ­sticas de Janela de Popup",
+DlgLnkPopResize		: "AjustÃ¡vel",
+DlgLnkPopLocation	: "Barra de localizaÃ§Ã£o",
+DlgLnkPopMenu		: "Barra de Menu",
+DlgLnkPopScroll		: "Barras de deslocamento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "Janela Completa (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "PosiÃ§Ã£o Esquerda",
+DlgLnkPopTop		: "PosiÃ§Ã£o Direita",
+
+DlnLnkMsgNoUrl		: "Por favor introduza a hiperligaÃ§Ã£o URL",
+DlnLnkMsgNoEMail	: "Por favor introduza o endereÃ§o de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor seleccione uma referÃªncia",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Cor",
+DlgColorBtnClear	: "Nenhuma",
+DlgColorHighlight	: "Destacado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserir um Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione um caracter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propriedades da Tabela",
+DlgTableRows		: "Linhas",
+DlgTableColumns		: "Colunas",
+DlgTableBorder		: "Tamanho do Limite",
+DlgTableAlign		: "Alinhamento",
+DlgTableAlignNotSet	: "<NÃ£o definido>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centrado",
+DlgTableAlignRight	: "Direita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixeis",
+DlgTableWidthPc		: "percentagem",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Esp. e/cÃ©lulas",
+DlgTableCellPad		: "Esp. interior",
+DlgTableCaption		: "TÃ­tulo",
+DlgTableSummary		: "SumÃ¡rio",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propriedades da CÃ©lula",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixeis",
+DlgCellWidthPc		: "percentagem",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Moldar Texto",
+DlgCellWordWrapNotSet	: "<NÃ£o definido>",
+DlgCellWordWrapYes	: "Sim",
+DlgCellWordWrapNo	: "NÃ£o",
+DlgCellHorAlign		: "Alinhamento Horizontal",
+DlgCellHorAlignNotSet	: "<NÃ£o definido>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centrado",
+DlgCellHorAlignRight: "Direita",
+DlgCellVerAlign		: "Alinhamento Vertical",
+DlgCellVerAlignNotSet	: "<NÃ£o definido>",
+DlgCellVerAlignTop	: "Topo",
+DlgCellVerAlignMiddle	: "MÃ©dio",
+DlgCellVerAlignBottom	: "Fundi",
+DlgCellVerAlignBaseline	: "Linha de Base",
+DlgCellRowSpan		: "Unir Linhas",
+DlgCellCollSpan		: "Unir Colunas",
+DlgCellBackColor	: "Cor do Fundo",
+DlgCellBorderColor	: "Cor do Limite",
+DlgCellBtnSelect	: "Seleccione...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Procurar",
+DlgFindFindBtn		: "Procurar",
+DlgFindNotFoundMsg	: "O texto especificado nÃ£o foi encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Texto a Procurar:",
+DlgReplaceReplaceLbl	: "Substituir por:",
+DlgReplaceCaseChk		: "MaiÃºsculas/MinÃºsculas",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substituir Tudo",
+DlgReplaceWordChk		: "Coincidir com toda a palavra",
+
+// Paste Operations / Dialog
+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).",
+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).",
+
+PasteAsText		: "Colar como Texto Simples",
+PasteFromWord	: "Colar do Word",
+
+DlgPasteMsg2	: "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignorar da definiÃ§Ãµes do Tipo de Letra ",
+DlgPasteRemoveStyles	: "Remover as definiÃ§Ãµes de Estilos",
+
+// Color Picker
+ColorAutomatic	: "AutomÃ¡tico",
+ColorMoreColors	: "Mais Cores...",
+
+// Document Properties
+DocProps		: "Propriedades do Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propriedades da Ã‚ncora",
+DlgAnchorName		: "Nome da Ã‚ncora",
+DlgAnchorErrorName	: "Por favor, introduza o nome da Ã¢ncora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "NÃ£o estÃ¡ num directÃ³rio",
+DlgSpellChangeTo		: "Mudar para",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Tudo",
+DlgSpellBtnReplace		: "Substituir",
+DlgSpellBtnReplaceAll	: "Substituir Tudo",
+DlgSpellBtnUndo			: "Anular",
+DlgSpellNoSuggestions	: "- Sem sugestÃµes -",
+DlgSpellProgress		: "VerificaÃ§Ã£o ortogrÃ¡fica em progressoâ€¦",
+DlgSpellNoMispell		: "VerificaÃ§Ã£o ortogrÃ¡fica completa: nÃ£o foram encontrados erros",
+DlgSpellNoChanges		: "VerificaÃ§Ã£o ortogrÃ¡fica completa: nÃ£o houve alteraÃ§Ã£o de palavras",
+DlgSpellOneChange		: "VerificaÃ§Ã£o ortogrÃ¡fica completa: uma palavra alterada",
+DlgSpellManyChanges		: "VerificaÃ§Ã£o ortogrÃ¡fica completa: %1 palavras alteradas",
+
+IeSpellDownload			: " VerificaÃ§Ã£o ortogrÃ¡fica nÃ£o instalada. Quer descarregar agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "AcÃ§Ã£o",
+DlgFormMethod	: "MÃ©todo",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamanho",
+DlgSelectLines		: "linhas",
+DlgSelectChkMulti	: "Permitir selecÃ§Ãµes mÃºltiplas",
+DlgSelectOpAvail	: "OpÃ§Ãµes PossÃ­veis",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Adicionar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Para cima",
+DlgSelectBtnDown	: "Para baixo",
+DlgSelectBtnSetValue : "Definir um valor por defeito",
+DlgSelectBtnDelete	: "Apagar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colunas",
+DlgTextareaRows	: "Linhas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Tamanho do caracter",
+DlgTextMaxChars		: "Nr. MÃ¡ximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Palavra-chave",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propriedades da Marca",
+NumberedListProp	: "Propriedades da NumeraÃ§Ã£o",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Circulo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrado",
+DlgLstTypeNumbers	: "NÃºmeros (1, 2, 3)",
+DlgLstTypeLCase		: "Letras MinÃºsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras MaiÃºsculas (A, B, C)",
+DlgLstTypeSRoman	: "NumeraÃ§Ã£o Romana em MinÃºsculas (i, ii, iii)",
+DlgLstTypeLRoman	: "NumeraÃ§Ã£o Romana em MaiÃºsculas (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Geral",
+DlgDocBackTab		: "Fundo",
+DlgDocColorsTab		: "Cores e Margens",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "TÃ­tulo da PÃ¡gina",
+DlgDocLangDir		: "OrientaÃ§Ã£o de idioma",
+DlgDocLangDirLTR	: "Esquerda Ã  Direita (LTR)",
+DlgDocLangDirRTL	: "Direita Ã  Esquerda (RTL)",
+DlgDocLangCode		: "CÃ³digo de Idioma",
+DlgDocCharSet		: "CodificaÃ§Ã£o de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Outra CodificaÃ§Ã£o de Caracteres",
+
+DlgDocDocType		: "Tipo de CabeÃ§alho do Documento",
+DlgDocDocTypeOther	: "Outro Tipo de CabeÃ§alho do Documento",
+DlgDocIncXHTML		: "Incluir DeclaraÃ§Ãµes XHTML",
+DlgDocBgColor		: "Cor de Fundo",
+DlgDocBgImage		: "Caminho para a Imagem de Fundo",
+DlgDocBgNoScroll	: "Fundo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "HiperligaÃ§Ã£o",
+DlgDocCVisited		: "HiperligaÃ§Ã£o Visitada",
+DlgDocCActive		: "HiperligaÃ§Ã£o Activa",
+DlgDocMargins		: "Margem das PÃ¡ginas",
+DlgDocMaTop			: "Topo",
+DlgDocMaLeft		: "Esquerda",
+DlgDocMaRight		: "Direita",
+DlgDocMaBottom		: "Fundo",
+DlgDocMeIndex		: "Palavras de IndexaÃ§Ã£o do Documento (separadas por virgula)",
+DlgDocMeDescr		: "DescriÃ§Ã£o do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Direitos de Autor",
+DlgDocPreview		: "PrÃ©-visualizar",
+
+// Templates Dialog
+Templates			: "Modelos",
+DlgTemplatesTitle	: "Modelo de ConteÃºdo",
+DlgTemplatesSelMsg	: "Por favor, seleccione o modelo a abrir no editor<br>(o conteÃºdo actual serÃ¡ perdido):",
+DlgTemplatesLoading	: "A carregar a lista de modelos. Aguarde por favor...",
+DlgTemplatesNoTpl	: "(Sem modelos definidos)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca",
+DlgAboutBrowserInfoTab	: "InformaÃ§Ã£o do Nevegador",
+DlgAboutLicenseTab	: "LicenÃ§a",
+DlgAboutVersion		: "versÃ£o",
+DlgAboutInfo		: "Para mais informaÃ§Ãµes por favor dirija-se a"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/da.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/da.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/da.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Danish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul vÃ¦rktÃ¸jslinier",
+ToolbarExpand		: "Vis vÃ¦rktÃ¸jslinier",
+
+// Toolbar Items and Context Menu
+Save				: "Gem",
+NewPage				: "Ny side",
+Preview				: "Vis eksempel",
+Cut					: "Klip",
+Copy				: "Kopier",
+Paste				: "IndsÃ¦t",
+PasteText			: "IndsÃ¦t som ikke-formateret tekst",
+PasteWord			: "IndsÃ¦t fra Word",
+Print				: "Udskriv",
+SelectAll			: "VÃ¦lg alt",
+RemoveFormat		: "Fjern formatering",
+InsertLinkLbl		: "Hyperlink",
+InsertLink			: "IndsÃ¦t/rediger hyperlink",
+RemoveLink			: "Fjern hyperlink",
+Anchor				: "IndsÃ¦t/rediger bogmÃ¦rke",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "IndsÃ¦t billede",
+InsertImage			: "IndsÃ¦t/rediger billede",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "IndsÃ¦t/rediger Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "IndsÃ¦t/rediger tabel",
+InsertLineLbl		: "Linie",
+InsertLine			: "IndsÃ¦t vandret linie",
+InsertSpecialCharLbl: "Symbol",
+InsertSpecialChar	: "IndsÃ¦t symbol",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "IndsÃ¦t smiley",
+About				: "Om FCKeditor",
+Bold				: "Fed",
+Italic				: "Kursiv",
+Underline			: "Understreget",
+StrikeThrough		: "Overstreget",
+Subscript			: "SÃ¦nket skrift",
+Superscript			: "HÃ¦vet skrift",
+LeftJustify			: "Venstrestillet",
+CenterJustify		: "Centreret",
+RightJustify		: "HÃ¸jrestillet",
+BlockJustify		: "Lige margener",
+DecreaseIndent		: "Formindsk indrykning",
+IncreaseIndent		: "ForÃ¸g indrykning",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Fortryd",
+Redo				: "Annuller fortryd",
+NumberedListLbl		: "Talopstilling",
+NumberedList		: "IndsÃ¦t/fjern talopstilling",
+BulletedListLbl		: "Punktopstilling",
+BulletedList		: "IndsÃ¦t/fjern punktopstilling",
+ShowTableBorders	: "Vis tabelkanter",
+ShowDetails			: "Vis detaljer",
+Style				: "Typografi",
+FontFormat			: "Formatering",
+Font				: "Skrifttype",
+FontSize			: "SkriftstÃ¸rrelse",
+TextColor			: "Tekstfarve",
+BGColor				: "Baggrundsfarve",
+Source				: "Kilde",
+Find				: "SÃ¸g",
+Replace				: "Erstat",
+SpellCheck			: "Stavekontrol",
+UniversalKeyboard	: "Universaltastatur",
+PageBreakLbl		: "Sidskift",
+PageBreak			: "IndsÃ¦t sideskift",
+
+Form			: "IndsÃ¦t formular",
+Checkbox		: "IndsÃ¦t afkrydsningsfelt",
+RadioButton		: "IndsÃ¦t alternativknap",
+TextField		: "IndsÃ¦t tekstfelt",
+Textarea		: "IndsÃ¦t tekstboks",
+HiddenField		: "IndsÃ¦t skjult felt",
+Button			: "IndsÃ¦t knap",
+SelectionField	: "IndsÃ¦t liste",
+ImageButton		: "IndsÃ¦t billedknap",
+
+FitWindow		: "Maksimer editor vinduet",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Rediger hyperlink",
+CellCM				: "Celle",
+RowCM				: "RÃ¦kke",
+ColumnCM			: "Kolonne",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Slet rÃ¦kke",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Slet kolonne",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Slet celle",
+MergeCells			: "Flet celler",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Slet tabel",
+CellProperties		: "Egenskaber for celle",
+TableProperties		: "Egenskaber for tabel",
+ImageProperties		: "Egenskaber for billede",
+FlashProperties		: "Egenskaber for Flash",
+
+AnchorProp			: "Egenskaber for bogmÃ¦rke",
+ButtonProp			: "Egenskaber for knap",
+CheckboxProp		: "Egenskaber for afkrydsningsfelt",
+HiddenFieldProp		: "Egenskaber for skjult felt",
+RadioButtonProp		: "Egenskaber for alternativknap",
+ImageButtonProp		: "Egenskaber for billedknap",
+TextFieldProp		: "Egenskaber for tekstfelt",
+SelectionFieldProp	: "Egenskaber for liste",
+TextareaProp		: "Egenskaber for tekstboks",
+FormProp			: "Egenskaber for formular",
+
+FontFormats			: "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Behandler XHTML...",
+Done				: "FÃ¦rdig",
+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?",
+NotCompatiblePaste	: "Denne kommando er tilgÃ¦ndelig i Internet Explorer 5.5 eller senere.<br>Vil du indsÃ¦tte teksten uden at rense den ?",
+UnknownToolbarItem	: "Ukendt vÃ¦rktÃ¸jslinjeobjekt \"%1\"!",
+UnknownCommand		: "Ukendt kommandonavn \"%1\"!",
+NotImplemented		: "Kommandoen er ikke implementeret!",
+UnknownToolbarSet	: "VÃ¦rktÃ¸jslinjen \"%1\" eksisterer ikke!",
+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.",
+BrowseServerBlocked : "Browseren kunne ikke Ã¥bne de nÃ¸dvendige ressourcer!<br>SlÃ¥ pop-up blokering fra.",
+DialogBlocked		: "Dialogvinduet kunne ikke Ã¥bnes!<br>SlÃ¥ pop-up blokering fra.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuller",
+DlgBtnClose			: "Luk",
+DlgBtnBrowseServer	: "Gennemse...",
+DlgAdvancedTag		: "Avanceret",
+DlgOpOther			: "<Andet>",
+DlgInfoTab			: "Generelt",
+DlgAlertUrl			: "Indtast URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<intet valgt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Tekstretning",
+DlgGenLangDirLtr	: "Fra venstre mod hÃ¸jre (LTR)",
+DlgGenLangDirRtl	: "Fra hÃ¸jre mod venstre (RTL)",
+DlgGenLangCode		: "Sprogkode",
+DlgGenAccessKey		: "Genvejstast",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tabulator indeks",
+DlgGenLongDescr		: "Udvidet beskrivelse",
+DlgGenClass			: "Typografiark",
+DlgGenTitle			: "Titel",
+DlgGenContType		: "Indholdstype",
+DlgGenLinkCharset	: "TegnsÃ¦t",
+DlgGenStyle			: "Typografi",
+
+// Image Dialog
+DlgImgTitle			: "Egenskaber for billede",
+DlgImgInfoTab		: "Generelt",
+DlgImgBtnUpload		: "Upload",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "HÃ¸jde",
+DlgImgLockRatio		: "LÃ¥s stÃ¸rrelsesforhold",
+DlgBtnResetSize		: "Nulstil stÃ¸rrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMargen",
+DlgImgVSpace		: "VMargen",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Absolut nederst",
+DlgImgAlignAbsMiddle: "Absolut centreret",
+DlgImgAlignBaseline	: "Grundlinje",
+DlgImgAlignBottom	: "Nederst",
+DlgImgAlignMiddle	: "Centreret",
+DlgImgAlignRight	: "HÃ¸jre",
+DlgImgAlignTextTop	: "Toppen af teksten",
+DlgImgAlignTop		: "Ã˜verst",
+DlgImgPreview		: "Vis eksempel",
+DlgImgAlertUrl		: "Indtast stien til billedet",
+DlgImgLinkTab		: "Hyperlink",
+
+// Flash Dialog
+DlgFlashTitle		: "Egenskaber for Flash",
+DlgFlashChkPlay		: "Automatisk afspilning",
+DlgFlashChkLoop		: "Gentagelse",
+DlgFlashChkMenu		: "Vis Flash menu",
+DlgFlashScale		: "SkalÃ©r",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Tilpas stÃ¸rrelse",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Egenskaber for hyperlink",
+DlgLnkInfoTab		: "Generelt",
+DlgLnkTargetTab		: "MÃ¥l",
+
+DlgLnkType			: "Hyperlink type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "BogmÃ¦rke pÃ¥ denne side",
+DlgLnkTypeEMail		: "E-mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<anden>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "VÃ¦lg et anker",
+DlgLnkAnchorByName	: "Efter anker navn",
+DlgLnkAnchorById	: "Efter element Id",
+DlgLnkNoAnchors		: "(Ingen bogmÃ¦rker dokumentet)",
+DlgLnkEMail			: "E-mailadresse",
+DlgLnkEMailSubject	: "Emne",
+DlgLnkEMailBody		: "BrÃ¸dtekst",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Upload",
+
+DlgLnkTarget		: "MÃ¥l",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindue>",
+DlgLnkTargetBlank	: "Nyt vindue (_blank)",
+DlgLnkTargetParent	: "Overordnet ramme (_parent)",
+DlgLnkTargetSelf	: "Samme vindue (_self)",
+DlgLnkTargetTop		: "Hele vinduet (_top)",
+DlgLnkTargetFrameName	: "Destinationsvinduets navn",
+DlgLnkPopWinName	: "Pop-up vinduets navn",
+DlgLnkPopWinFeat	: "Egenskaber for pop-up",
+DlgLnkPopResize		: "Skalering",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menulinje",
+DlgLnkPopScroll		: "Scrollbars",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "VÃ¦rktÃ¸jslinje",
+DlgLnkPopFullScrn	: "Fuld skÃ¦rm (IE)",
+DlgLnkPopDependent	: "Koblet/dependent (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "HÃ¸jde",
+DlgLnkPopLeft		: "Position fra venstre",
+DlgLnkPopTop		: "Position fra toppen",
+
+DlnLnkMsgNoUrl		: "Indtast hyperlink URL!",
+DlnLnkMsgNoEMail	: "Indtast e-mailaddresse!",
+DlnLnkMsgNoAnchor	: "VÃ¦lg bogmÃ¦rke!",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "VÃ¦lg farve",
+DlgColorBtnClear	: "Nulstil",
+DlgColorHighlight	: "Markeret",
+DlgColorSelected	: "Valgt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "VÃ¦lg smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "VÃ¦lg symbol",
+
+// Table Dialog
+DlgTableTitle		: "Egenskaber for tabel",
+DlgTableRows		: "RÃ¦kker",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "Rammebredde",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<intet valgt>",
+DlgTableAlignLeft	: "Venstrestillet",
+DlgTableAlignCenter	: "Centreret",
+DlgTableAlignRight	: "HÃ¸jrestillet",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "HÃ¸jde",
+DlgTableCellSpace	: "Celleafstand",
+DlgTableCellPad		: "Cellemargen",
+DlgTableCaption		: "Titel",
+DlgTableSummary		: "Resume",
+
+// Table Cell Dialog
+DlgCellTitle		: "Egenskaber for celle",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "HÃ¸jde",
+DlgCellWordWrap		: "Orddeling",
+DlgCellWordWrapNotSet	: "<intet valgt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nej",
+DlgCellHorAlign		: "Vandret justering",
+DlgCellHorAlignNotSet	: "<intet valgt>",
+DlgCellHorAlignLeft	: "Venstrestillet",
+DlgCellHorAlignCenter	: "Centreret",
+DlgCellHorAlignRight: "HÃ¸jrestillet",
+DlgCellVerAlign		: "Lodret justering",
+DlgCellVerAlignNotSet	: "<intet valgt>",
+DlgCellVerAlignTop	: "Ã˜verst",
+DlgCellVerAlignMiddle	: "Centreret",
+DlgCellVerAlignBottom	: "Nederst",
+DlgCellVerAlignBaseline	: "Grundlinje",
+DlgCellRowSpan		: "HÃ¸jde i antal rÃ¦kker",
+DlgCellCollSpan		: "Bredde i antal kolonner",
+DlgCellBackColor	: "Baggrundsfarve",
+DlgCellBorderColor	: "Rammefarve",
+DlgCellBtnSelect	: "VÃ¦lg...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "SÃ¸geteksten blev ikke fundet!",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstat",
+DlgReplaceFindLbl		: "SÃ¸g efter:",
+DlgReplaceReplaceLbl	: "Erstat med:",
+DlgReplaceCaseChk		: "Forskel pÃ¥ store og smÃ¥ bogstaver",
+DlgReplaceReplaceBtn	: "Erstat",
+DlgReplaceReplAllBtn	: "Erstat alle",
+DlgReplaceWordChk		: "Kun hele ord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
+PasteErrorCopy	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",
+
+PasteAsText		: "IndsÃ¦t som ikke-formateret tekst",
+PasteFromWord	: "IndsÃ¦t fra Word",
+
+DlgPasteMsg2	: "IndsÃ¦t i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ignorer font definitioner",
+DlgPasteRemoveStyles	: "Ignorer typografi",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farver...",
+
+// Document Properties
+DocProps		: "Egenskaber for dokument",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Egenskaber for bogmÃ¦rke",
+DlgAnchorName		: "BogmÃ¦rke navn",
+DlgAnchorErrorName	: "Indtast bogmÃ¦rke navn!",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordbogen",
+DlgSpellChangeTo		: "Forslag",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstat",
+DlgSpellBtnReplaceAll	: "Erstat alle",
+DlgSpellBtnUndo			: "Tilbage",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontrolen arbejder...",
+DlgSpellNoMispell		: "Stavekontrol fÃ¦rdig: Ingen fejl fundet",
+DlgSpellNoChanges		: "Stavekontrol fÃ¦rdig: Ingen ord Ã¦ndret",
+DlgSpellOneChange		: "Stavekontrol fÃ¦rdig: Et ord Ã¦ndret",
+DlgSpellManyChanges		: "Stavekontrol fÃ¦rdig: %1 ord Ã¦ndret",
+
+IeSpellDownload			: "Stavekontrol ikke installeret.<br>Vil du hente den nu?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "VÃ¦rdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metod",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "VÃ¦rdi",
+DlgSelectSize		: "StÃ¸rrelse",
+DlgSelectLines		: "linier",
+DlgSelectChkMulti	: "Tillad flere valg",
+DlgSelectOpAvail	: "Valgmuligheder",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "VÃ¦rdi",
+DlgSelectBtnAdd		: "TilfÃ¸j",
+DlgSelectBtnModify	: "Rediger",
+DlgSelectBtnUp		: "Op",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "SÃ¦t som valgt",
+DlgSelectBtnDelete	: "Slet",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "RÃ¦kker",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "VÃ¦rdi",
+DlgTextCharWidth	: "Bredde (tegn)",
+DlgTextMaxChars		: "Max antal tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Adgangskode",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "VÃ¦rdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Egenskaber for punktopstilling",
+NumberedListProp	: "Egenskaber for talopstilling",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Udfyldt cirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Nummereret (1, 2, 3)",
+DlgLstTypeLCase		: "SmÃ¥ bogstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bogstaver (A, B, C)",
+DlgLstTypeSRoman	: "SmÃ¥ romertal (i, ii, iii)",
+DlgLstTypeLRoman	: "Store romertal (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generelt",
+DlgDocBackTab		: "Baggrund",
+DlgDocColorsTab		: "Farver og margen",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Sidetitel",
+DlgDocLangDir		: "Sprog",
+DlgDocLangDirLTR	: "Fra venstre mod hÃ¸jre (LTR)",
+DlgDocLangDirRTL	: "Fra hÃ¸jre mod venstre (RTL)",
+DlgDocLangCode		: "Landekode",
+DlgDocCharSet		: "TegnsÃ¦t kode",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Anden tegnsÃ¦t kode",
+
+DlgDocDocType		: "Dokumenttype kategori",
+DlgDocDocTypeOther	: "Anden dokumenttype kategori",
+DlgDocIncXHTML		: "Inkludere XHTML deklartion",
+DlgDocBgColor		: "Baggrundsfarve",
+DlgDocBgImage		: "Baggrundsbillede URL",
+DlgDocBgNoScroll	: "FastlÃ¥st baggrund",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Hyperlink",
+DlgDocCVisited		: "BesÃ¸gt hyperlink",
+DlgDocCActive		: "Aktivt hyperlink",
+DlgDocMargins		: "Sidemargen",
+DlgDocMaTop			: "Ã˜verst",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "HÃ¸jre",
+DlgDocMaBottom		: "Nederst",
+DlgDocMeIndex		: "Dokument index nÃ¸gleord (kommasepareret)",
+DlgDocMeDescr		: "Dokument beskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vis",
+
+// Templates Dialog
+Templates			: "Skabeloner",
+DlgTemplatesTitle	: "Indholdsskabeloner",
+DlgTemplatesSelMsg	: "VÃ¦lg den skabelon, som skal Ã¥bnes i editoren.<br>(NuvÃ¦rende indhold vil blive overskrevet!):",
+DlgTemplatesLoading	: "Henter liste over skabeloner...",
+DlgTemplatesNoTpl	: "(Der er ikke defineret nogen skabelon!)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Generelt",
+DlgAboutLicenseTab	: "Licens",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For yderlig information gÃ¥ til"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sr.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Serbian (Cyrillic) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ð¡Ð¼Ð°ÑšÐ¸ Ð»Ð¸Ð½Ð¸Ñ˜Ñƒ ÑÐ° Ð°Ð»Ð°Ñ‚ÐºÐ°Ð¼Ð°",
+ToolbarExpand		: "ÐŸÑ€Ð¾ÑˆÐ¸Ñ€Ð¸ Ð»Ð¸Ð½Ð¸Ñ˜Ñƒ ÑÐ° Ð°Ð»Ð°Ñ‚ÐºÐ°Ð¼Ð°",
+
+// Toolbar Items and Context Menu
+Save				: "Ð¡Ð°Ñ‡ÑƒÐ²Ð°Ñ˜",
+NewPage				: "ÐÐ¾Ð²Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°",
+Preview				: "Ð˜Ð·Ð³Ð»ÐµÐ´ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ",
+Cut					: "Ð˜ÑÐµÑ†Ð¸",
+Copy				: "ÐšÐ¾Ð¿Ð¸Ñ€Ð°Ñ˜",
+Paste				: "Ð—Ð°Ð»ÐµÐ¿Ð¸",
+PasteText			: "Ð—Ð°Ð»ÐµÐ¿Ð¸ ÐºÐ°Ð¾ Ð½ÐµÑ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½ Ñ‚ÐµÐºÑÑ‚",
+PasteWord			: "Ð—Ð°Ð»ÐµÐ¿Ð¸ Ð¸Ð· Worda",
+Print				: "Ð¨Ñ‚Ð°Ð¼Ð¿Ð°",
+SelectAll			: "ÐžÐ·Ð½Ð°Ñ‡Ð¸ ÑÐ²Ðµ",
+RemoveFormat		: "Ð£ÐºÐ»Ð¾Ð½Ð¸ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°ÑšÐµ",
+InsertLinkLbl		: "Ð›Ð¸Ð½Ðº",
+InsertLink			: "Ð£Ð½ÐµÑÐ¸/Ð¸Ð·Ð¼ÐµÐ½Ð¸ Ð»Ð¸Ð½Ðº",
+RemoveLink			: "Ð£ÐºÐ»Ð¾Ð½Ð¸ Ð»Ð¸Ð½Ðº",
+Anchor				: "Ð£Ð½ÐµÑÐ¸/Ð¸Ð·Ð¼ÐµÐ½Ð¸ ÑÐ¸Ð´Ñ€Ð¾",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Ð¡Ð»Ð¸ÐºÐ°",
+InsertImage			: "Ð£Ð½ÐµÑÐ¸/Ð¸Ð·Ð¼ÐµÐ½Ð¸ ÑÐ»Ð¸ÐºÑƒ",
+InsertFlashLbl		: "Ð¤Ð»ÐµÑˆ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚",
+InsertFlash			: "Ð£Ð½ÐµÑÐ¸/Ð¸Ð·Ð¼ÐµÐ½Ð¸ Ñ„Ð»ÐµÑˆ",
+InsertTableLbl		: "Ð¢Ð°Ð±ÐµÐ»Ð°",
+InsertTable			: "Ð£Ð½ÐµÑÐ¸/Ð¸Ð·Ð¼ÐµÐ½Ð¸ Ñ‚Ð°Ð±ÐµÐ»Ñƒ",
+InsertLineLbl		: "Ð›Ð¸Ð½Ð¸Ñ˜Ð°",
+InsertLine			: "Ð£Ð½ÐµÑÐ¸ Ñ…Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»Ð½Ñƒ Ð»Ð¸Ð½Ð¸Ñ˜Ñƒ",
+InsertSpecialCharLbl: "Ð¡Ð¿ÐµÑ†Ð¸Ñ˜Ð°Ð»Ð½Ð¸ ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸",
+InsertSpecialChar	: "Ð£Ð½ÐµÑÐ¸ ÑÐ¿ÐµÑ†Ð¸Ñ˜Ð°Ð»Ð½Ð¸ ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€",
+InsertSmileyLbl		: "Ð¡Ð¼Ð°Ñ˜Ð»Ð¸",
+InsertSmiley		: "Ð£Ð½ÐµÑÐ¸ ÑÐ¼Ð°Ñ˜Ð»Ð¸Ñ˜Ð°",
+About				: "Ðž Ð¤Ð¦ÐšÐµÐ´Ð¸Ñ‚Ð¾Ñ€Ñƒ",
+Bold				: "ÐŸÐ¾Ð´ÐµÐ±Ñ™Ð°Ð½Ð¾",
+Italic				: "ÐšÑƒÑ€Ð·Ð¸Ð²",
+Underline			: "ÐŸÐ¾Ð´Ð²ÑƒÑ‡ÐµÐ½Ð¾",
+StrikeThrough		: "ÐŸÑ€ÐµÑ†Ñ€Ñ‚Ð°Ð½Ð¾",
+Subscript			: "Ð˜Ð½Ð´ÐµÐºÑ",
+Superscript			: "Ð¡Ñ‚ÐµÐ¿ÐµÐ½",
+LeftJustify			: "Ð›ÐµÐ²Ð¾ Ñ€Ð°Ð²Ð½Ð°ÑšÐµ",
+CenterJustify		: "Ð¦ÐµÐ½Ñ‚Ñ€Ð¸Ñ€Ð°Ð½ Ñ‚ÐµÐºÑÑ‚",
+RightJustify		: "Ð”ÐµÑÐ½Ð¾ Ñ€Ð°Ð²Ð½Ð°ÑšÐµ",
+BlockJustify		: "ÐžÐ±Ð¾ÑÑ‚Ñ€Ð°Ð½Ð¾ Ñ€Ð°Ð²Ð½Ð°ÑšÐµ",
+DecreaseIndent		: "Ð¡Ð¼Ð°ÑšÐ¸ Ð»ÐµÐ²Ñƒ Ð¼Ð°Ñ€Ð³Ð¸Ð½Ñƒ",
+IncreaseIndent		: "Ð£Ð²ÐµÑ›Ð°Ñ˜ Ð»ÐµÐ²Ñƒ Ð¼Ð°Ñ€Ð³Ð¸Ð½Ñƒ",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ÐŸÐ¾Ð½Ð¸ÑˆÑ‚Ð¸ Ð°ÐºÑ†Ð¸Ñ˜Ñƒ",
+Redo				: "ÐŸÐ¾Ð½Ð¾Ð²Ð¸ Ð°ÐºÑ†Ð¸Ñ˜Ñƒ",
+NumberedListLbl		: "ÐÐ°Ð±Ñ€Ð¾Ñ˜Ð¸Ð²Ñƒ Ð»Ð¸ÑÑ‚Ñƒ",
+NumberedList		: "Ð£Ð½ÐµÑÐ¸/ÑƒÐºÐ»Ð¾Ð½Ð¸ Ð½Ð°Ð±Ñ€Ð¾Ñ˜Ð¸Ð²Ñƒ Ð»Ð¸ÑÑ‚Ñƒ",
+BulletedListLbl		: "ÐÐµÐ½Ð°Ð±Ñ€Ð¾Ñ˜Ð¸Ð²Ð° Ð»Ð¸ÑÑ‚Ð°",
+BulletedList		: "Ð£Ð½ÐµÑÐ¸/ÑƒÐºÐ»Ð¾Ð½Ð¸ Ð½ÐµÐ½Ð°Ð±Ñ€Ð¾Ñ˜Ð¸Ð²Ñƒ Ð»Ð¸ÑÑ‚Ñƒ",
+ShowTableBorders	: "ÐŸÑ€Ð¸ÐºÐ°Ð¶Ð¸ Ð¾ÐºÐ²Ð¸Ñ€ Ñ‚Ð°Ð±ÐµÐ»Ðµ",
+ShowDetails			: "ÐŸÑ€Ð¸ÐºÐ°Ð¶Ð¸ Ð´ÐµÑ‚Ð°Ñ™Ðµ",
+Style				: "Ð¡Ñ‚Ð¸Ð»",
+FontFormat			: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚",
+Font				: "Ð¤Ð¾Ð½Ñ‚",
+FontSize			: "Ð’ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð° Ñ„Ð¾Ð½Ñ‚Ð°",
+TextColor			: "Ð‘Ð¾Ñ˜Ð° Ñ‚ÐµÐºÑÑ‚Ð°",
+BGColor				: "Ð‘Ð¾Ñ˜Ð° Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½Ðµ",
+Source				: "KÃ´Ð´",
+Find				: "ÐŸÑ€ÐµÑ‚Ñ€Ð°Ð³Ð°",
+Replace				: "Ð—Ð°Ð¼ÐµÐ½Ð°",
+SpellCheck			: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð¸ ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐµ",
+UniversalKeyboard	: "Ð£Ð½Ð¸Ð²ÐµÑ€Ð·Ð°Ð»Ð½Ð° Ñ‚Ð°ÑÑ‚Ð°Ñ‚ÑƒÑ€Ð°",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Ð¤Ð¾Ñ€Ð¼Ð°",
+Checkbox		: "ÐŸÐ¾Ñ™Ðµ Ð·Ð° Ð¿Ð¾Ñ‚Ð²Ñ€Ð´Ñƒ",
+RadioButton		: "Ð Ð°Ð´Ð¸Ð¾-Ð´ÑƒÐ³Ð¼Ðµ",
+TextField		: "Ð¢ÐµÐºÑÑ‚ÑƒÐ°Ð»Ð½Ð¾ Ð¿Ð¾Ñ™Ðµ",
+Textarea		: "Ð—Ð¾Ð½Ð° Ñ‚ÐµÐºÑÑ‚Ð°",
+HiddenField		: "Ð¡ÐºÑ€Ð¸Ð²ÐµÐ½Ð¾ Ð¿Ð¾Ñ™Ðµ",
+Button			: "Ð”ÑƒÐ³Ð¼Ðµ",
+SelectionField	: "Ð˜Ð·Ð±Ð¾Ñ€Ð½Ð¾ Ð¿Ð¾Ñ™Ðµ",
+ImageButton		: "Ð”ÑƒÐ³Ð¼Ðµ ÑÐ° ÑÐ»Ð¸ÐºÐ¾Ð¼",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸ Ð»Ð¸Ð½Ðº",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "ÐžÐ±Ñ€Ð¸ÑˆÐ¸ Ñ€ÐµÐ´Ð¾Ð²Ðµ",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "ÐžÐ±Ñ€Ð¸ÑˆÐ¸ ÐºÐ¾Ð»Ð¾Ð½Ðµ",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "ÐžÐ±Ñ€Ð¸ÑˆÐ¸ Ñ›ÐµÐ»Ð¸Ñ˜Ðµ",
+MergeCells			: "Ð¡Ð¿Ð¾Ñ˜ Ñ›ÐµÐ»Ð¸Ñ˜Ðµ",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ›ÐµÐ»Ð¸Ñ˜Ðµ",
+TableProperties		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ‚Ð°Ð±ÐµÐ»Ðµ",
+ImageProperties		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ ÑÐ»Ð¸ÐºÐµ",
+FlashProperties		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð¤Ð»ÐµÑˆÐ°",
+
+AnchorProp			: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ ÑÐ¸Ð´Ñ€Ð°",
+ButtonProp			: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð´ÑƒÐ³Ð¼ÐµÑ‚Ð°",
+CheckboxProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð¿Ð¾Ñ™Ð° Ð·Ð° Ð¿Ð¾Ñ‚Ð²Ñ€Ð´Ñƒ",
+HiddenFieldProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ ÑÐºÑ€Ð¸Ð²ÐµÐ½Ð¾Ð³ Ð¿Ð¾Ñ™Ð°",
+RadioButtonProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ€Ð°Ð´Ð¸Ð¾-Ð´ÑƒÐ³Ð¼ÐµÑ‚Ð°",
+ImageButtonProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð´ÑƒÐ³Ð¼ÐµÑ‚Ð° ÑÐ° ÑÐ»Ð¸ÐºÐ¾Ð¼",
+TextFieldProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ‚ÐµÐºÑÑ‚ÑƒÐ°Ð»Ð½Ð¾Ð³ Ð¿Ð¾Ñ™Ð°",
+SelectionFieldProp	: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð¸Ð·Ð±Ð¾Ñ€Ð½Ð¾Ð³ Ð¿Ð¾Ñ™Ð°",
+TextareaProp		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð·Ð¾Ð½Ðµ Ñ‚ÐµÐºÑÑ‚Ð°",
+FormProp			: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ„Ð¾Ñ€Ð¼Ðµ",
+
+FontFormats			: "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "ÐžÐ±Ñ€Ð°Ñ’ÑƒÑ˜ÐµÐ¼ XHTML. MaÐ»o ÑÑ‚Ñ€Ð¿Ñ™ÐµÑšÐ°...",
+Done				: "Ð—Ð°Ð²Ñ€ÑˆÐ¸Ð¾",
+PasteWordConfirm	: "Ð¢ÐµÐºÑÑ‚ ÐºÐ¾Ñ˜Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚Ðµ Ð´Ð° Ð½Ð°Ð»ÐµÐ¿Ð¸Ñ‚Ðµ ÐºÐ¾Ð¿Ð¸Ñ€Ð°Ð½ Ñ˜Ðµ Ð¸Ð· Worda. Ð”Ð° Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚Ðµ Ð´Ð° Ð±ÑƒÐ´Ðµ Ð¾Ñ‡Ð¸ÑˆÑ›ÐµÐ½ Ð¾Ð´ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð° Ð¿Ñ€Ðµ Ð»ÐµÐ¿Ñ™ÐµÑšÐ°?",
+NotCompatiblePaste	: "ÐžÐ²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ñ˜Ðµ Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ð° ÑÐ°Ð¼Ð¾ Ð·Ð° Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚ Ð•ÐºÐ¿Ð»Ð¾Ñ€ÐµÑ€ Ð¾Ð´ Ð²ÐµÑ€Ð·Ð¸Ñ˜Ðµ 5.5. Ð”Ð° Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚Ðµ Ð´Ð° Ð½Ð°Ð»ÐµÐ¿Ð¸Ð¼ Ñ‚ÐµÐºÑÑ‚ Ð±ÐµÐ· Ñ‡Ð¸ÑˆÑ›ÐµÑšÐ°?",
+UnknownToolbarItem	: "ÐÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‚Ð° ÑÑ‚Ð°Ð²ÐºÐ° toolbara \"%1\"",
+UnknownCommand		: "ÐÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‚Ð° Ð½Ð°Ñ€ÐµÐ´Ð±Ð° \"%1\"",
+NotImplemented		: "ÐÐ°Ñ€ÐµÐ´Ð±Ð° Ð½Ð¸Ñ˜Ðµ Ð¸Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð¸Ñ€Ð°Ð½Ð°",
+UnknownToolbarSet	: "Toolbar \"%1\" Ð½Ðµ Ð¿Ð¾ÑÑ‚Ð¾Ñ˜Ð¸",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "OÑ‚ÐºÐ°Ð¶Ð¸",
+DlgBtnClose			: "Ð—Ð°Ñ‚Ð²Ð¾Ñ€Ð¸",
+DlgBtnBrowseServer	: "ÐŸÑ€ÐµÑ‚Ñ€Ð°Ð¶Ð¸ ÑÐµÑ€Ð²ÐµÑ€",
+DlgAdvancedTag		: "ÐÐ°Ð¿Ñ€ÐµÐ´Ð½Ð¸ Ñ‚Ð°Ð³Ð¾Ð²Ð¸",
+DlgOpOther			: "<ÐžÑÑ‚Ð°Ð»Ð¸>",
+DlgInfoTab			: "Ð˜Ð½Ñ„Ð¾",
+DlgAlertUrl			: "ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ, ÑƒÐ½ÐµÑÐ¸Ñ‚Ðµ Ð£Ð Ð›",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ð½Ð¸Ñ˜Ðµ Ð¿Ð¾ÑÑ‚Ð°Ð²Ñ™ÐµÐ½Ð¾>",
+DlgGenId			: "Ð˜Ð´",
+DlgGenLangDir		: "Ð¡Ð¼ÐµÑ€ Ñ˜ÐµÐ·Ð¸ÐºÐ°",
+DlgGenLangDirLtr	: "Ð¡ Ð»ÐµÐ²Ð° Ð½Ð° Ð´ÐµÑÐ½Ð¾ (LTR)",
+DlgGenLangDirRtl	: "Ð¡ Ð´ÐµÑÐ½Ð° Ð½Ð° Ð»ÐµÐ²Ð¾ (RTL)",
+DlgGenLangCode		: "KÃ´Ð´ Ñ˜ÐµÐ·Ð¸ÐºÐ°",
+DlgGenAccessKey		: "ÐŸÑ€Ð¸ÑÑ‚ÑƒÐ¿Ð½Ð¸ Ñ‚Ð°ÑÑ‚ÐµÑ€",
+DlgGenName			: "ÐÐ°Ð·Ð¸Ð²",
+DlgGenTabIndex		: "Ð¢Ð°Ð± Ð¸Ð½Ð´ÐµÐºÑ",
+DlgGenLongDescr		: "ÐŸÑƒÐ½ Ð¾Ð¿Ð¸Ñ Ð£Ð Ð›",
+DlgGenClass			: "Stylesheet ÐºÐ»Ð°ÑÐµ",
+DlgGenTitle			: "Advisory Ð½Ð°ÑÐ»Ð¾Ð²",
+DlgGenContType		: "Advisory Ð²Ñ€ÑÑ‚Ð° ÑÐ°Ð´Ñ€Ð¶Ð°Ñ˜Ð°",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Ð¡Ñ‚Ð¸Ð»",
+
+// Image Dialog
+DlgImgTitle			: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ ÑÐ»Ð¸ÐºÐ°",
+DlgImgInfoTab		: "Ð˜Ð½Ñ„Ð¾ ÑÐ»Ð¸ÐºÐµ",
+DlgImgBtnUpload		: "ÐŸÐ¾ÑˆÐ°Ñ™Ð¸ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+DlgImgURL			: "Ð£Ð Ð›",
+DlgImgUpload		: "ÐŸÐ¾ÑˆÐ°Ñ™Ð¸",
+DlgImgAlt			: "ÐÐ»Ñ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¸ Ñ‚ÐµÐºÑÑ‚",
+DlgImgWidth			: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgImgHeight		: "Ð’Ð¸ÑÐ¸Ð½Ð°",
+DlgImgLockRatio		: "Ð—Ð°ÐºÑ™ÑƒÑ‡Ð°Ñ˜ Ð¾Ð´Ð½Ð¾Ñ",
+DlgBtnResetSize		: "Ð ÐµÑÐµÑ‚ÑƒÑ˜ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ñƒ",
+DlgImgBorder		: "ÐžÐºÐ²Ð¸Ñ€",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Ð Ð°Ð²Ð½Ð°ÑšÐµ",
+DlgImgAlignLeft		: "Ð›ÐµÐ²Ð¾",
+DlgImgAlignAbsBottom: "Abs Ð´Ð¾Ð»Ðµ",
+DlgImgAlignAbsMiddle: "Abs ÑÑ€ÐµÐ´Ð¸Ð½Ð°",
+DlgImgAlignBaseline	: "Ð‘Ð°Ð·Ð½Ð¾",
+DlgImgAlignBottom	: "Ð”Ð¾Ð»Ðµ",
+DlgImgAlignMiddle	: "Ð¡Ñ€ÐµÐ´Ð¸Ð½Ð°",
+DlgImgAlignRight	: "Ð”ÐµÑÐ½Ð¾",
+DlgImgAlignTextTop	: "Ð’Ñ€Ñ… Ñ‚ÐµÐºÑÑ‚Ð°",
+DlgImgAlignTop		: "Ð’Ñ€Ñ…",
+DlgImgPreview		: "Ð˜Ð·Ð³Ð»ÐµÐ´",
+DlgImgAlertUrl		: "Ð£Ð½ÐµÑÐ¸Ñ‚Ðµ Ð£Ð Ð› ÑÐ»Ð¸ÐºÐµ",
+DlgImgLinkTab		: "Ð›Ð¸Ð½Ðº",
+
+// Flash Dialog
+DlgFlashTitle		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ„Ð»ÐµÑˆÐ°",
+DlgFlashChkPlay		: "ÐÑƒÑ‚Ð¾Ð¼Ð°Ñ‚ÑÐºÐ¸ ÑÑ‚Ð°Ñ€Ñ‚",
+DlgFlashChkLoop		: "ÐŸÐ¾Ð½Ð°Ð²Ñ™Ð°Ñ˜",
+DlgFlashChkMenu		: "Ð£ÐºÑ™ÑƒÑ‡Ð¸ Ñ„Ð»ÐµÑˆ Ð¼ÐµÐ½Ð¸",
+DlgFlashScale		: "Ð¡ÐºÐ°Ð»Ð¸Ñ€Ð°Ñ˜",
+DlgFlashScaleAll	: "ÐŸÑ€Ð¸ÐºÐ°Ð¶Ð¸ ÑÐ²Ðµ",
+DlgFlashScaleNoBorder	: "Ð‘ÐµÐ· Ð¸Ð²Ð¸Ñ†Ðµ",
+DlgFlashScaleFit	: "ÐŸÐ¾Ð¿ÑƒÐ½Ð¸ Ð¿Ð¾Ð²Ñ€ÑˆÐ¸Ð½Ñƒ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ð›Ð¸Ð½Ðº",
+DlgLnkInfoTab		: "Ð›Ð¸Ð½Ðº Ð¸Ð½Ñ„Ð¾",
+DlgLnkTargetTab		: "ÐœÐµÑ‚Ð°",
+
+DlgLnkType			: "Ð’Ñ€ÑÑ‚Ð° Ð»Ð¸Ð½ÐºÐ°",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ð¡Ð¸Ð´Ñ€Ð¾ Ð½Ð° Ð¾Ð²Ð¾Ñ˜ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð¸",
+DlgLnkTypeEMail		: "EÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½ÑÐºÐ° Ð¿Ð¾ÑˆÑ‚Ð°",
+DlgLnkProto			: "ÐŸÑ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»",
+DlgLnkProtoOther	: "<Ð´Ñ€ÑƒÐ³Ð¾>",
+DlgLnkURL			: "Ð£Ð Ð›",
+DlgLnkAnchorSel		: "ÐžÐ´Ð°Ð±ÐµÑ€Ð¸ ÑÐ¸Ð´Ñ€Ð¾",
+DlgLnkAnchorByName	: "ÐŸÐ¾ Ð½Ð°Ð·Ð¸Ð²Ñƒ ÑÐ¸Ð´Ñ€Ð°",
+DlgLnkAnchorById	: "ÐŸo Ð˜Ð´-jÑƒ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°",
+DlgLnkNoAnchors		: "(ÐÐµÐ¼Ð° Ð´Ð¾ÑÑ‚ÑƒÐ¿Ð½Ð¸Ñ… ÑÐ¸Ð´Ñ€Ð°)",
+DlgLnkEMail			: "ÐÐ´Ñ€ÐµÑÐ° ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½ÑÐºÐµ Ð¿Ð¾ÑˆÑ‚Ðµ",
+DlgLnkEMailSubject	: "ÐÐ°ÑÐ»Ð¾Ð²",
+DlgLnkEMailBody		: "Ð¡Ð°Ð´Ñ€Ð¶Ð°Ñ˜ Ð¿Ð¾Ñ€ÑƒÐºÐµ",
+DlgLnkUpload		: "ÐŸÐ¾ÑˆÐ°Ñ™Ð¸",
+DlgLnkBtnUpload		: "ÐŸÐ¾ÑˆÐ°Ñ™Ð¸ Ð½Ð° ÑÐµÑ€Ð²ÐµÑ€",
+
+DlgLnkTarget		: "MeÑ‚a",
+DlgLnkTargetFrame	: "<Ð¾ÐºÐ²Ð¸Ñ€>",
+DlgLnkTargetPopup	: "<Ð¸ÑÐºÐ°Ñ‡ÑƒÑ›Ð¸ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€>",
+DlgLnkTargetBlank	: "ÐÐ¾Ð²Ð¸ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ (_blank)",
+DlgLnkTargetParent	: "Ð Ð¾Ð´Ð¸Ñ‚ÐµÑ™ÑÐºÐ¸ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ (_parent)",
+DlgLnkTargetSelf	: "Ð˜ÑÑ‚Ð¸ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ (_self)",
+DlgLnkTargetTop		: "ÐŸÑ€Ð¾Ð·Ð¾Ñ€ Ð½Ð° Ð²Ñ€Ñ…Ñƒ (_top)",
+DlgLnkTargetFrameName	: "ÐÐ°Ð·Ð¸Ð² Ð¾Ð´Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¾Ð³ Ñ„Ñ€ÐµÑ˜Ð¼Ð°",
+DlgLnkPopWinName	: "ÐÐ°Ð·Ð¸Ð² Ð¸ÑÐºÐ°Ñ‡ÑƒÑ›ÐµÐ³ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð°",
+DlgLnkPopWinFeat	: "ÐœÐ¾Ð³ÑƒÑ›Ð½Ð¾ÑÑ‚Ð¸ Ð¸ÑÐºÐ°Ñ‡ÑƒÑ›ÐµÐ³ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð°",
+DlgLnkPopResize		: "ÐŸÑ€Ð¾Ð¼ÐµÐ½Ñ™Ð¸Ð²Ð° Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð°",
+DlgLnkPopLocation	: "Ð›Ð¾ÐºÐ°Ñ†Ð¸Ñ˜Ð°",
+DlgLnkPopMenu		: "ÐšÐ¾Ð½Ñ‚ÐµÐºÑÑ‚Ð½Ð¸ Ð¼ÐµÐ½Ð¸",
+DlgLnkPopScroll		: "Ð¡ÐºÑ€Ð¾Ð» Ð±Ð°Ñ€",
+DlgLnkPopStatus		: "Ð¡Ñ‚Ð°Ñ‚ÑƒÑÐ½Ð° Ð»Ð¸Ð½Ð¸Ñ˜Ð°",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "ÐŸÑ€Ð¸ÐºÐ°Ð· Ð¿Ñ€ÐµÐºÐ¾ Ñ†ÐµÐ»Ð¾Ð³ ÐµÐºÑ€Ð°Ð½Ð° (Ð˜E)",
+DlgLnkPopDependent	: "Ð—Ð°Ð²Ð¸ÑÐ½Ð¾ (Netscape)",
+DlgLnkPopWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgLnkPopHeight		: "Ð’Ð¸ÑÐ¸Ð½Ð°",
+DlgLnkPopLeft		: "ÐžÐ´ Ð»ÐµÐ²Ðµ Ð¸Ð²Ð¸Ñ†Ðµ ÐµÐºÑ€Ð°Ð½Ð° (Ð¿Ð¸ÐºÑÐµÐ»Ð°)",
+DlgLnkPopTop		: "ÐžÐ´ Ð²Ñ€Ñ…Ð° ÐµÐºÑ€Ð°Ð½Ð° (Ð¿Ð¸ÐºÑÐµÐ»Ð°)",
+
+DlnLnkMsgNoUrl		: "Ð£Ð½ÐµÑÐ¸Ñ‚Ðµ Ð£Ð Ð› Ð»Ð¸Ð½ÐºÐ°",
+DlnLnkMsgNoEMail	: "ÐžÑ‚ÐºÑƒÑ†Ð°Ñ˜Ñ‚Ðµ Ð°Ð´Ñ€ÐµÑÑƒ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½ÑÐºÐµ Ð¿Ð¾ÑˆÑ‚Ðµ",
+DlnLnkMsgNoAnchor	: "ÐžÐ´Ð°Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÐ¸Ð´Ñ€Ð¾",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "ÐžÐ´Ð°Ð±ÐµÑ€Ð¸Ñ‚Ðµ Ð±Ð¾Ñ˜Ñƒ",
+DlgColorBtnClear	: "ÐžÐ±Ñ€Ð¸ÑˆÐ¸",
+DlgColorHighlight	: "ÐŸÐ¾ÑÐ²ÐµÑ‚Ð»Ð¸",
+DlgColorSelected	: "ÐžÐ´Ð°Ð±ÐµÑ€Ð¸",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ð£Ð½ÐµÑÐ¸ ÑÐ¼Ð°Ñ˜Ð»Ð¸Ñ˜Ð°",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "ÐžÐ´Ð°Ð±ÐµÑ€Ð¸Ñ‚Ðµ ÑÐ¿ÐµÑ†Ð¸Ñ˜Ð°Ð»Ð½Ð¸ ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€",
+
+// Table Dialog
+DlgTableTitle		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ‚Ð°Ð±ÐµÐ»Ðµ",
+DlgTableRows		: "Ð ÐµÐ´Ð¾Ð²Ð°",
+DlgTableColumns		: "KÐ¾Ð»Ð¾Ð½Ð°",
+DlgTableBorder		: "Ð’ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð° Ð¾ÐºÐ²Ð¸Ñ€Ð°",
+DlgTableAlign		: "Ð Ð°Ð²Ð½Ð°ÑšÐµ",
+DlgTableAlignNotSet	: "<Ð½Ð¸Ñ˜Ðµ Ð¿Ð¾ÑÑ‚Ð°Ð²Ñ™ÐµÐ½Ð¾>",
+DlgTableAlignLeft	: "Ð›ÐµÐ²Ð¾",
+DlgTableAlignCenter	: "Ð¡Ñ€ÐµÐ´Ð¸Ð½Ð°",
+DlgTableAlignRight	: "Ð”ÐµÑÐ½Ð¾",
+DlgTableWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTableWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»Ð°",
+DlgTableWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ð°Ñ‚Ð°",
+DlgTableHeight		: "Ð’Ð¸ÑÐ¸Ð½Ð°",
+DlgTableCellSpace	: "Ð‹ÐµÐ»Ð¸Ñ˜ÑÐºÐ¸ Ð¿Ñ€Ð¾ÑÑ‚Ð¾Ñ€",
+DlgTableCellPad		: "Ð Ð°Ð·Ð¼Ð°Ðº Ñ›ÐµÐ»Ð¸Ñ˜Ð°",
+DlgTableCaption		: "ÐÐ°ÑÐ»Ð¾Ð² Ñ‚Ð°Ð±ÐµÐ»Ðµ",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ñ›ÐµÐ»Ð¸Ñ˜Ðµ",
+DlgCellWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgCellWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»Ð°",
+DlgCellWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ð°Ñ‚Ð°",
+DlgCellHeight		: "Ð’Ð¸ÑÐ¸Ð½Ð°",
+DlgCellWordWrap		: "Ð”ÐµÑ™ÐµÑšÐµ Ñ€ÐµÑ‡Ð¸",
+DlgCellWordWrapNotSet	: "<Ð½Ð¸Ñ˜Ðµ Ð¿Ð¾ÑÑ‚Ð°Ð²Ñ™ÐµÐ½Ð¾>",
+DlgCellWordWrapYes	: "Ð”Ð°",
+DlgCellWordWrapNo	: "ÐÐµ",
+DlgCellHorAlign		: "Ð’Ð¾Ð´Ð¾Ñ€Ð°Ð²Ð½Ð¾ Ñ€Ð°Ð²Ð½Ð°ÑšÐµ",
+DlgCellHorAlignNotSet	: "<Ð½Ð¸Ñ˜Ðµ Ð¿Ð¾ÑÑ‚Ð°Ð²Ñ™ÐµÐ½Ð¾>",
+DlgCellHorAlignLeft	: "Ð›ÐµÐ²Ð¾",
+DlgCellHorAlignCenter	: "Ð¡Ñ€ÐµÐ´Ð¸Ð½Ð°",
+DlgCellHorAlignRight: "Ð”ÐµÑÐ½Ð¾",
+DlgCellVerAlign		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»Ð½Ð¾ Ñ€Ð°Ð²Ð½Ð°ÑšÐµ",
+DlgCellVerAlignNotSet	: "<Ð½Ð¸Ñ˜Ðµ Ð¿Ð¾ÑÑ‚Ð°Ð²Ñ™ÐµÐ½Ð¾>",
+DlgCellVerAlignTop	: "Ð“Ð¾Ñ€ÑšÐµ",
+DlgCellVerAlignMiddle	: "Ð¡Ñ€ÐµÐ´Ð¸Ð½Ð°",
+DlgCellVerAlignBottom	: "Ð”Ð¾ÑšÐµ",
+DlgCellVerAlignBaseline	: "Ð‘Ð°Ð·Ð½Ð¾",
+DlgCellRowSpan		: "Ð¡Ð¿Ð°Ñ˜Ð°ÑšÐµ Ñ€ÐµÐ´Ð¾Ð²Ð°",
+DlgCellCollSpan		: "Ð¡Ð¿Ð°Ñ˜Ð°ÑšÐµ ÐºÐ¾Ð»Ð¾Ð½Ð°",
+DlgCellBackColor	: "Ð‘Ð¾Ñ˜Ð° Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½Ðµ",
+DlgCellBorderColor	: "Ð‘Ð¾Ñ˜Ð° Ð¾ÐºÐ²Ð¸Ñ€Ð°",
+DlgCellBtnSelect	: "OÐ´Ð°Ð±ÐµÑ€Ð¸...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "ÐŸÑ€Ð¾Ð½Ð°Ñ’Ð¸",
+DlgFindFindBtn		: "ÐŸÑ€Ð¾Ð½Ð°Ñ’Ð¸",
+DlgFindNotFoundMsg	: "Ð¢Ñ€Ð°Ð¶ÐµÐ½Ð¸ Ñ‚ÐµÐºÑÑ‚ Ð½Ð¸Ñ˜Ðµ Ð¿Ñ€Ð¾Ð½Ð°Ñ’ÐµÐ½.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ð—Ð°Ð¼ÐµÐ½Ð¸",
+DlgReplaceFindLbl		: "ÐŸÑ€Ð¾Ð½Ð°Ñ’Ð¸:",
+DlgReplaceReplaceLbl	: "Ð—Ð°Ð¼ÐµÐ½Ð¸ ÑÐ°:",
+DlgReplaceCaseChk		: "Ð Ð°Ð·Ð»Ð¸ÐºÑƒÑ˜ Ð²ÐµÐ»Ð¸ÐºÐ° Ð¸ Ð¼Ð°Ð»Ð° ÑÐ»Ð¾Ð²Ð°",
+DlgReplaceReplaceBtn	: "Ð—Ð°Ð¼ÐµÐ½Ð¸",
+DlgReplaceReplAllBtn	: "Ð—Ð°Ð¼ÐµÐ½Ð¸ ÑÐ²Ðµ",
+DlgReplaceWordChk		: "Ð£Ð¿Ð¾Ñ€ÐµÐ´Ð¸ Ñ†ÐµÐ»Ðµ Ñ€ÐµÑ‡Ð¸",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Ð¡Ð¸Ð³ÑƒÑ€Ð½Ð¾ÑÐ½Ð° Ð¿Ð¾Ð´ÐµÑˆÐ°Ð²Ð°ÑšÐ° Ð’Ð°ÑˆÐµÐ³ Ð¿Ñ€ÐµÑ‚Ñ€Ð°Ð¶Ð¸Ð²Ð°Ñ‡Ð° Ð½Ðµ Ð´Ð¾Ð·Ð²Ð¾Ñ™Ð°Ð²Ð°Ñ˜Ñƒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ˜Ðµ Ð°ÑƒÑ‚Ð¾Ð¼Ð°Ñ‚ÑÐºÐ¾Ð³ Ð¸ÑÐµÑ†Ð°ÑšÐ° Ñ‚ÐµÐºÑÑ‚Ð°. ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ Ð´Ð° ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¸Ñ‚Ðµ Ð¿Ñ€ÐµÑ‡Ð¸Ñ†Ñƒ ÑÐ° Ñ‚Ð°ÑÑ‚Ð°Ñ‚ÑƒÑ€Ðµ (Ctrl+X).",
+PasteErrorCopy	: "Ð¡Ð¸Ð³ÑƒÑ€Ð½Ð¾ÑÐ½Ð° Ð¿Ð¾Ð´ÐµÑˆÐ°Ð²Ð°ÑšÐ° Ð’Ð°ÑˆÐµÐ³ Ð¿Ñ€ÐµÑ‚Ñ€Ð°Ð¶Ð¸Ð²Ð°Ñ‡Ð° Ð½Ðµ Ð´Ð¾Ð·Ð²Ð¾Ñ™Ð°Ð²Ð°Ñ˜Ñƒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ˜Ðµ Ð°ÑƒÑ‚Ð¾Ð¼Ð°Ñ‚ÑÐºÐ¾Ð³ ÐºÐ¾Ð¿Ð¸Ñ€Ð°ÑšÐ° Ñ‚ÐµÐºÑÑ‚Ð°. ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ Ð´Ð° ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¸Ñ‚Ðµ Ð¿Ñ€ÐµÑ‡Ð¸Ñ†Ñƒ ÑÐ° Ñ‚Ð°ÑÑ‚Ð°Ñ‚ÑƒÑ€Ðµ (Ctrl+C).",
+
+PasteAsText		: "Ð—Ð°Ð»ÐµÐ¿Ð¸ ÐºÐ°Ð¾ Ñ‡Ð¸ÑÑ‚ Ñ‚ÐµÐºÑÑ‚",
+PasteFromWord	: "Ð—Ð°Ð»ÐµÐ¿Ð¸ Ð¸Ð· Worda",
+
+DlgPasteMsg2	: "ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ Ð´Ð° Ð·Ð°Ð»ÐµÐ¿Ð¸Ñ‚Ðµ ÑƒÐ½ÑƒÑ‚Ð°Ñ€ Ð´Ð¾ÑšÐµ Ð¿Ð¾Ð²Ñ€ÑˆÐ¸Ð½Ðµ ÐºÐ¾Ñ€Ð¸ÑÑ‚ÐµÑ›Ð¸ Ñ‚Ð°ÑÑ‚Ð°Ñ‚ÑƒÑ€Ð½Ñƒ Ð¿Ñ€ÐµÑ‡Ð¸Ñ†Ñƒ (<STRONG>Ctrl+V</STRONG>) Ð¸ Ð´Ð° Ð¿Ñ€Ð¸Ñ‚Ð¸ÑÐ½ÐµÑ‚Ðµ <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸ÑˆÐ¸ Font Face Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ðµ",
+DlgPasteRemoveStyles	: "Ð£ÐºÐ»Ð¾Ð½Ð¸ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ðµ ÑÑ‚Ð¸Ð»Ð¾Ð²Ð°",
+
+// Color Picker
+ColorAutomatic	: "ÐÑƒÑ‚Ð¾Ð¼Ð°Ñ‚ÑÐºÐ¸",
+ColorMoreColors	: "Ð’Ð¸ÑˆÐµ Ð±Ð¾Ñ˜Ð°...",
+
+// Document Properties
+DocProps		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ ÑÐ¸Ð´Ñ€Ð°",
+DlgAnchorName		: "Ð˜Ð¼Ðµ ÑÐ¸Ð´Ñ€Ð°",
+DlgAnchorErrorName	: "ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ Ð´Ð° ÑƒÐ½ÐµÑÐµÑ‚Ðµ Ð¸Ð¼Ðµ ÑÐ¸Ð´Ñ€Ð°",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ÐÐ¸Ñ˜Ðµ Ñƒ Ñ€ÐµÑ‡Ð½Ð¸ÐºÑƒ",
+DlgSpellChangeTo		: "Ð˜Ð·Ð¼ÐµÐ½Ð¸",
+DlgSpellBtnIgnore		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸ÑˆÐ¸",
+DlgSpellBtnIgnoreAll	: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸ÑˆÐ¸ ÑÐ²Ðµ",
+DlgSpellBtnReplace		: "Ð—Ð°Ð¼ÐµÐ½Ð¸",
+DlgSpellBtnReplaceAll	: "Ð—Ð°Ð¼ÐµÐ½Ð¸ ÑÐ²Ðµ",
+DlgSpellBtnUndo			: "Ð’Ñ€Ð°Ñ‚Ð¸ Ð°ÐºÑ†Ð¸Ñ˜Ñƒ",
+DlgSpellNoSuggestions	: "- Ð‘ÐµÐ· ÑÑƒÐ³ÐµÑÑ‚Ð¸Ñ˜Ð° -",
+DlgSpellProgress		: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ñƒ Ñ‚Ð¾ÐºÑƒ...",
+DlgSpellNoMispell		: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ð·Ð°Ð²Ñ€ÑˆÐµÐ½Ð°: Ð³Ñ€ÐµÑˆÐºÐµ Ð½Ð¸ÑÑƒ Ð¿Ñ€Ð¾Ð½Ð°Ñ’ÐµÐ½Ðµ",
+DlgSpellNoChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ð·Ð°Ð²Ñ€ÑˆÐµÐ½Ð°: ÐÐ¸Ñ˜Ðµ Ð¸Ð·Ð¼ÐµÑšÐµÐ½Ð° Ð½Ð¸Ñ˜ÐµÐ´Ð½Ð° Ñ€ÐµÑ‡",
+DlgSpellOneChange		: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ð·Ð°Ð²Ñ€ÑˆÐµÐ½Ð°: Ð˜Ð·Ð¼ÐµÑšÐµÐ½Ð° Ñ˜Ðµ Ñ˜ÐµÐ´Ð½Ð° Ñ€ÐµÑ‡",
+DlgSpellManyChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ð·Ð°Ð²Ñ€ÑˆÐµÐ½Ð°:  %1 Ñ€ÐµÑ‡(Ð¸) Ñ˜Ðµ Ð¸Ð·Ð¼ÐµÑšÐµÐ½Ð¾",
+
+IeSpellDownload			: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð° ÑÐ¿ÐµÐ»Ð¾Ð²Ð°ÑšÐ° Ð½Ð¸Ñ˜Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ð°. Ð”Ð° Ð»Ð¸ Ð¶ÐµÐ»Ð¸Ñ‚Ðµ Ð´Ð° Ñ˜Ðµ ÑÐºÐ¸Ð½ÐµÑ‚Ðµ ÑÐ° Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð°?",
+
+// Button Dialog
+DlgButtonText		: "Ð¢ÐµÐºÑÑ‚ (Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚)",
+DlgButtonType		: "TÐ¸Ð¿",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ÐÐ°Ð·Ð¸Ð²",
+DlgCheckboxValue	: "Ð’Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+DlgCheckboxSelected	: "ÐžÐ·Ð½Ð°Ñ‡ÐµÐ½Ð¾",
+
+// Form Dialog
+DlgFormName		: "ÐÐ°Ð·Ð¸Ð²",
+DlgFormAction	: "AÐºÑ†Ð¸Ñ˜Ð°",
+DlgFormMethod	: "MÐµÑ‚Ð¾Ð´Ð°",
+
+// Select Field Dialog
+DlgSelectName		: "ÐÐ°Ð·Ð¸Ð²",
+DlgSelectValue		: "Ð’Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+DlgSelectSize		: "Ð’ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð°",
+DlgSelectLines		: "Ð»Ð¸Ð½Ð¸Ñ˜Ð°",
+DlgSelectChkMulti	: "Ð”Ð¾Ð·Ð²Ð¾Ð»Ð¸ Ð²Ð¸ÑˆÐµÑÑ‚Ñ€ÑƒÐºÑƒ ÑÐµÐ»ÐµÐºÑ†Ð¸Ñ˜Ñƒ",
+DlgSelectOpAvail	: "Ð”Ð¾ÑÑ‚ÑƒÐ¿Ð½Ðµ Ð¾Ð¿Ñ†Ð¸Ñ˜Ðµ",
+DlgSelectOpText		: "Ð¢ÐµÐºÑÑ‚",
+DlgSelectOpValue	: "Ð’Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+DlgSelectBtnAdd		: "Ð”Ð¾Ð´Ð°Ñ˜",
+DlgSelectBtnModify	: "Ð˜Ð·Ð¼ÐµÐ½Ð¸",
+DlgSelectBtnUp		: "Ð“Ð¾Ñ€Ðµ",
+DlgSelectBtnDown	: "Ð”Ð¾Ð»Ðµ",
+DlgSelectBtnSetValue : "ÐŸÐ¾Ð´ÐµÑÐ¸ ÐºÐ°Ð¾ Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ñƒ Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+DlgSelectBtnDelete	: "ÐžÐ±Ñ€Ð¸ÑˆÐ¸",
+
+// Textarea Dialog
+DlgTextareaName	: "ÐÐ°Ð·Ð¸Ð²",
+DlgTextareaCols	: "Ð‘Ñ€Ð¾Ñ˜ ÐºÐ¾Ð»Ð¾Ð½Ð°",
+DlgTextareaRows	: "Ð‘Ñ€Ð¾Ñ˜ Ñ€ÐµÐ´Ð¾Ð²Ð°",
+
+// Text Field Dialog
+DlgTextName			: "ÐÐ°Ð·Ð¸Ð²",
+DlgTextValue		: "Ð’Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+DlgTextCharWidth	: "Ð¨Ð¸Ñ€Ð¸Ð½Ð° (ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð°)",
+DlgTextMaxChars		: "ÐœÐ°ÐºÑÐ¸Ð¼Ð°Ð»Ð½Ð¾ ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð°",
+DlgTextType			: "Ð¢Ð¸Ð¿",
+DlgTextTypeText		: "Ð¢ÐµÐºÑÑ‚",
+DlgTextTypePass		: "Ð›Ð¾Ð·Ð¸Ð½ÐºÐ°",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ÐÐ°Ð·Ð¸Ð²",
+DlgHiddenValue	: "Ð’Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚",
+
+// Bulleted List Dialog
+BulletedListProp	: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Bulleted Ð»Ð¸ÑÑ‚Ðµ",
+NumberedListProp	: "ÐžÑÐ¾Ð±Ð¸Ð½Ðµ Ð½Ð°Ð±Ñ€Ð¾Ñ˜Ð¸Ð²Ðµ Ð»Ð¸ÑÑ‚Ðµ",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Ð¢Ð¸Ð¿",
+DlgLstTypeCircle	: "ÐšÑ€ÑƒÐ³",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "ÐšÐ²Ð°Ð´Ñ€Ð°Ñ‚",
+DlgLstTypeNumbers	: "Ð‘Ñ€Ð¾Ñ˜ÐµÐ²Ð¸ (1, 2, 3)",
+DlgLstTypeLCase		: "Ð¼Ð°Ð»Ð° ÑÐ»Ð¾Ð²Ð° (a, b, c)",
+DlgLstTypeUCase		: "Ð’Ð•Ð›Ð˜ÐšÐ Ð¡Ð›ÐžÐ’Ð (A, B, C)",
+DlgLstTypeSRoman	: "ÐœÐ°Ð»Ðµ Ñ€Ð¸Ð¼ÑÐºÐµ Ñ†Ð¸Ñ„Ñ€Ðµ (i, ii, iii)",
+DlgLstTypeLRoman	: "Ð’ÐµÐ»Ð¸ÐºÐµ Ñ€Ð¸Ð¼ÑÐºÐµ Ñ†Ð¸Ñ„Ñ€Ðµ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ÐžÐ¿ÑˆÑ‚Ðµ Ð¾ÑÐ¾Ð±Ð¸Ð½Ðµ",
+DlgDocBackTab		: "ÐŸÐ¾Ð·Ð°Ð´Ð¸Ð½Ð°",
+DlgDocColorsTab		: "Ð‘Ð¾Ñ˜Ðµ Ð¸ Ð¼Ð°Ñ€Ð³Ð¸Ð½Ðµ",
+DlgDocMetaTab		: "ÐœÐµÑ‚Ð°Ð¿Ð¾Ð´Ð°Ñ†Ð¸",
+
+DlgDocPageTitle		: "ÐÐ°ÑÐ»Ð¾Ð² ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ",
+DlgDocLangDir		: "Ð¡Ð¼ÐµÑ€ Ñ˜ÐµÐ·Ð¸ÐºÐ°",
+DlgDocLangDirLTR	: "Ð¡Ð»ÐµÐ²Ð° Ð½Ð°Ð´ÐµÑÐ½Ð¾ (LTR)",
+DlgDocLangDirRTL	: "Ð—Ð´ÐµÑÐ½Ð° Ð½Ð°Ð»ÐµÐ²Ð¾ (RTL)",
+DlgDocLangCode		: "Ð¨Ð¸Ñ„Ñ€Ð° Ñ˜ÐµÐ·Ð¸ÐºÐ°",
+DlgDocCharSet		: "ÐšÐ¾Ð´Ð¸Ñ€Ð°ÑšÐµ ÑÐºÑƒÐ¿Ð° ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð°",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "ÐžÑÑ‚Ð°Ð»Ð° ÐºÐ¾Ð´Ð¸Ñ€Ð°ÑšÐ° ÑÐºÑƒÐ¿Ð° ÐºÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð°",
+
+DlgDocDocType		: "Ð—Ð°Ð³Ð»Ð°Ð²Ñ™Ðµ Ñ‚Ð¸Ð¿Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocDocTypeOther	: "ÐžÑÑ‚Ð°Ð»Ð° Ð·Ð°Ð³Ð»Ð°Ð²Ñ™Ð° Ñ‚Ð¸Ð¿Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocIncXHTML		: "Ð£Ð»Ñ™ÑƒÑ‡Ð¸ XHTML Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ˜Ðµ",
+DlgDocBgColor		: "Ð‘Ð¾Ñ˜Ð° Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½Ðµ",
+DlgDocBgImage		: "Ð£Ð Ð› Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½ÑÐºÐµ ÑÐ»Ð¸ÐºÐµ",
+DlgDocBgNoScroll	: "Ð¤Ð¸ÐºÑÐ¸Ñ€Ð°Ð½Ð° Ð¿Ð¾Ð·Ð°Ð´Ð¸Ð½Ð°",
+DlgDocCText			: "Ð¢ÐµÐºÑÑ‚",
+DlgDocCLink			: "Ð›Ð¸Ð½Ðº",
+DlgDocCVisited		: "ÐŸÐ¾ÑÐµÑ›ÐµÐ½Ð¸ Ð»Ð¸Ð½Ðº",
+DlgDocCActive		: "ÐÐºÑ‚Ð¸Ð²Ð½Ð¸ Ð»Ð¸Ð½Ðº",
+DlgDocMargins		: "ÐœÐ°Ñ€Ð³Ð¸Ð½Ðµ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ",
+DlgDocMaTop			: "Ð“Ð¾Ñ€ÑšÐ°",
+DlgDocMaLeft		: "Ð›ÐµÐ²Ð°",
+DlgDocMaRight		: "Ð”ÐµÑÐ½Ð°",
+DlgDocMaBottom		: "Ð”Ð¾ÑšÐ°",
+DlgDocMeIndex		: "ÐšÑ™ÑƒÑ‡Ð½Ðµ Ñ€ÐµÑ‡Ð¸ Ð·Ð° Ð¸Ð½Ð´ÐµÐºÑÐ¸Ñ€Ð°ÑšÐµ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° (Ñ€Ð°Ð·Ð´Ð²Ð¾Ñ˜ÐµÐ½Ðµ Ð·Ð°Ñ€ÐµÐ·Ð¾Ð¼)",
+DlgDocMeDescr		: "ÐžÐ¿Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocMeAuthor		: "ÐÑƒÑ‚Ð¾Ñ€",
+DlgDocMeCopy		: "ÐÑƒÑ‚Ð¾Ñ€ÑÐºÐ° Ð¿Ñ€Ð°Ð²Ð°",
+DlgDocPreview		: "Ð˜Ð·Ð³Ð»ÐµÐ´ ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ",
+
+// Templates Dialog
+Templates			: "ÐžÐ±Ñ€Ð°ÑÑ†Ð¸",
+DlgTemplatesTitle	: "ÐžÐ±Ñ€Ð°ÑÑ†Ð¸ Ð·Ð° ÑÐ°Ð´Ñ€Ð¶Ð°Ñ˜",
+DlgTemplatesSelMsg	: "ÐœÐ¾Ð»Ð¸Ð¼Ð¾ Ð’Ð°Ñ Ð´Ð° Ð¾Ð´Ð°Ð±ÐµÑ€ÐµÑ‚Ðµ Ð¾Ð±Ñ€Ð°Ð·Ð°Ñ† ÐºÐ¾Ñ˜Ð¸ Ñ›Ðµ Ð±Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¸Ð¼ÐµÑšÐµÐ½ Ð½Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ (Ñ‚Ñ€ÐµÐ½ÑƒÑ‚Ð½Ð¸ ÑÐ°Ð´Ñ€Ð¶Ð°Ñ˜ Ñ›Ðµ Ð±Ð¸Ñ‚Ð¸ Ð¾Ð±Ñ€Ð¸ÑÐ°Ð½):",
+DlgTemplatesLoading	: "Ð£Ñ‡Ð¸Ñ‚Ð°Ð²Ð°Ð¼ Ð»Ð¸ÑÑ‚Ñƒ Ð¾Ð±Ñ€Ð°Ð·Ð°Ñ†Ð°. ÐœÐ°Ð»Ð¾ ÑÑ‚Ñ€Ð¿Ñ™ÐµÑšÐ°...",
+DlgTemplatesNoTpl	: "(ÐÐµÐ¼Ð° Ð´ÐµÑ„Ð¸Ð½Ð¸ÑÐ°Ð½Ð¸Ñ… Ð¾Ð±Ñ€Ð°Ð·Ð°Ñ†Ð°)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Ðž ÐµÐ´Ð¸Ñ‚Ð¾Ñ€Ñƒ",
+DlgAboutBrowserInfoTab	: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ˜Ðµ Ð¾ Ð¿Ñ€ÐµÑ‚Ñ€Ð°Ð¶Ð¸Ð²Ð°Ñ‡Ñƒ",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "Ð²ÐµÑ€Ð·Ð¸Ñ˜Ð°",
+DlgAboutInfo		: "Ð—Ð° Ð²Ð¸ÑˆÐµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ˜Ð° Ð¿Ð¾ÑÐµÑ‚Ð¸Ñ‚Ðµ"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/tr.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/tr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/tr.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Turkish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "AraÃ§ Ã‡ubuÄŸunu Kapat",
+ToolbarExpand		: "AraÃ§ Ã‡ubuÄŸunu AÃ§",
+
+// Toolbar Items and Context Menu
+Save				: "Kaydet",
+NewPage				: "Yeni Sayfa",
+Preview				: "Ã–n Ä°zleme",
+Cut					: "Kes",
+Copy				: "Kopyala",
+Paste				: "YapÄ±ÅŸtÄ±r",
+PasteText			: "DÃ¼zyazÄ± Olarak YapÄ±ÅŸtÄ±r",
+PasteWord			: "Word'den YapÄ±ÅŸtÄ±r",
+Print				: "YazdÄ±r",
+SelectAll			: "TÃ¼mÃ¼nÃ¼ SeÃ§",
+RemoveFormat		: "BiÃ§imi KaldÄ±r",
+InsertLinkLbl		: "KÃ¶prÃ¼",
+InsertLink			: "KÃ¶prÃ¼ Ekle/DÃ¼zenle",
+RemoveLink			: "KÃ¶prÃ¼ KaldÄ±r",
+Anchor				: "Ã‡apa Ekle/DÃ¼zenle",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Resim",
+InsertImage			: "Resim Ekle/DÃ¼zenle",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash Ekle/DÃ¼zenle",
+InsertTableLbl		: "Tablo",
+InsertTable			: "Tablo Ekle/DÃ¼zenle",
+InsertLineLbl		: "SatÄ±r",
+InsertLine			: "Yatay SatÄ±r Ekle",
+InsertSpecialCharLbl: "Ã–zel Karakter",
+InsertSpecialChar	: "Ã–zel Karakter Ekle",
+InsertSmileyLbl		: "Ä°fade",
+InsertSmiley		: "Ä°fade Ekle",
+About				: "FCKeditor HakkÄ±nda",
+Bold				: "KalÄ±n",
+Italic				: "Ä°talik",
+Underline			: "AltÄ± Ã‡izgili",
+StrikeThrough		: "ÃœstÃ¼ Ã‡izgili",
+Subscript			: "Alt Simge",
+Superscript			: "Ãœst Simge",
+LeftJustify			: "Sola DayalÄ±",
+CenterJustify		: "OrtalanmÄ±ÅŸ",
+RightJustify		: "SaÄŸa DayalÄ±",
+BlockJustify		: "Ä°ki Kenara YaslanmÄ±ÅŸ",
+DecreaseIndent		: "Sekme Azalt",
+IncreaseIndent		: "Sekme ArttÄ±r",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Geri Al",
+Redo				: "Tekrarla",
+NumberedListLbl		: "NumaralÄ± Liste",
+NumberedList		: "NumaralÄ± Liste Ekle/KaldÄ±r",
+BulletedListLbl		: "Simgeli Liste",
+BulletedList		: "Simgeli Liste Ekle/KaldÄ±r",
+ShowTableBorders	: "Tablo KenarlarÄ±nÄ± GÃ¶ster",
+ShowDetails			: "DetaylarÄ± GÃ¶ster",
+Style				: "BiÃ§em",
+FontFormat			: "BiÃ§im",
+Font				: "YazÄ± TÃ¼rÃ¼",
+FontSize			: "Boyut",
+TextColor			: "YazÄ± Rengi",
+BGColor				: "Arka Renk",
+Source				: "Kaynak",
+Find				: "Bul",
+Replace				: "DeÄŸiÅŸtir",
+SpellCheck			: "YazÄ±m Denetimi",
+UniversalKeyboard	: "Evrensel Klavye",
+PageBreakLbl		: "Sayfa sonu",
+PageBreak			: "Sayfa Sonu Ekle",
+
+Form			: "Form",
+Checkbox		: "Onay Kutusu",
+RadioButton		: "SeÃ§enek DÃ¼ÄŸmesi",
+TextField		: "Metin GiriÅŸi",
+Textarea		: "Ã‡ok SatÄ±rlÄ± Metin",
+HiddenField		: "Gizli Veri",
+Button			: "DÃ¼ÄŸme",
+SelectionField	: "SeÃ§im MenÃ¼sÃ¼",
+ImageButton		: "Resimli DÃ¼ÄŸme",
+
+FitWindow		: "DÃ¼zenleyici boyutunu bÃ¼yÃ¼t",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "KÃ¶prÃ¼ DÃ¼zenle",
+CellCM				: "HÃ¼cre",
+RowCM				: "SatÄ±r",
+ColumnCM			: "SÃ¼tun",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "SatÄ±r Sil",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "SÃ¼tun Sil",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "HÃ¼cre Sil",
+MergeCells			: "HÃ¼creleri BirleÅŸtir",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Tabloyu Sil",
+CellProperties		: "HÃ¼cre Ã–zellikleri",
+TableProperties		: "Tablo Ã–zellikleri",
+ImageProperties		: "Resim Ã–zellikleri",
+FlashProperties		: "Flash Ã–zellikleri",
+
+AnchorProp			: "Ã‡apa Ã–zellikleri",
+ButtonProp			: "DÃ¼ÄŸme Ã–zellikleri",
+CheckboxProp		: "Onay Kutusu Ã–zellikleri",
+HiddenFieldProp		: "Gizli Veri Ã–zellikleri",
+RadioButtonProp		: "SeÃ§enek DÃ¼ÄŸmesi Ã–zellikleri",
+ImageButtonProp		: "Resimli DÃ¼ÄŸme Ã–zellikleri",
+TextFieldProp		: "Metin GiriÅŸi Ã–zellikleri",
+SelectionFieldProp	: "SeÃ§im MenÃ¼sÃ¼ Ã–zellikleri",
+TextareaProp		: "Ã‡ok SatÄ±rlÄ± Metin Ã–zellikleri",
+FormProp			: "Form Ã–zellikleri",
+
+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)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML iÅŸleniyor. LÃ¼tfen bekleyin...",
+Done				: "Bitti",
+PasteWordConfirm	: "YapÄ±ÅŸtÄ±rdÄ±ÄŸÄ±nÄ±z yazÄ± Word'den gelmiÅŸe benziyor. YapÄ±ÅŸtÄ±rmadan Ã¶nce gereksiz eklentileri silmek ister misiniz?",
+NotCompatiblePaste	: "Bu komut Internet Explorer 5.5 ve ileriki sÃ¼rÃ¼mleri iÃ§in mevcuttur. Temizlenmeden yapÄ±ÅŸtÄ±rÄ±lmasÄ±nÄ± ister misiniz ?",
+UnknownToolbarItem	: "Bilinmeyen araÃ§ Ã§ubugu Ã¶ÄŸesi \"%1\"",
+UnknownCommand		: "Bilinmeyen komut \"%1\"",
+NotImplemented		: "Komut uyarlanamadÄ±",
+UnknownToolbarSet	: "\"%1\" araÃ§ Ã§ubuÄŸu Ã¶ÄŸesi mevcut deÄŸil",
+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.",
+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)",
+DialogBlocked		: "Diyalog aÃ§mak mÃ¼mkÃ¼n olmadÄ±. TÃ¼m \"Popup Blocker\" programlarÄ±nÄ±n devre dÄ±ÅŸÄ± olduÄŸundan emin olun.",
+
+// Dialogs
+DlgBtnOK			: "Tamam",
+DlgBtnCancel		: "Ä°ptal",
+DlgBtnClose			: "Kapat",
+DlgBtnBrowseServer	: "Sunucuyu Gez",
+DlgAdvancedTag		: "GeliÅŸmiÅŸ",
+DlgOpOther			: "<DiÄŸer>",
+DlgInfoTab			: "Bilgi",
+DlgAlertUrl			: "LÃ¼tfen URL girin",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<tanÄ±mlanmamÄ±ÅŸ>",
+DlgGenId			: "Kimlik",
+DlgGenLangDir		: "Dil YÃ¶nÃ¼",
+DlgGenLangDirLtr	: "Soldan SaÄŸa (LTR)",
+DlgGenLangDirRtl	: "SaÄŸdan Sola (RTL)",
+DlgGenLangCode		: "Dil KodlamasÄ±",
+DlgGenAccessKey		: "EriÅŸim TuÅŸu",
+DlgGenName			: "Ad",
+DlgGenTabIndex		: "Sekme Ä°ndeksi",
+DlgGenLongDescr		: "Uzun TanÄ±mlÄ± URL",
+DlgGenClass			: "BiÃ§em SayfasÄ± SÄ±nÄ±flarÄ±",
+DlgGenTitle			: "DanÄ±ÅŸma BaÅŸlÄ±ÄŸÄ±",
+DlgGenContType		: "DanÄ±ÅŸma Ä°Ã§erik TÃ¼rÃ¼",
+DlgGenLinkCharset	: "BaÄŸlÄ± Kaynak Karakter Gurubu",
+DlgGenStyle			: "BiÃ§em",
+
+// Image Dialog
+DlgImgTitle			: "Resim Ã–zellikleri",
+DlgImgInfoTab		: "Resim Bilgisi",
+DlgImgBtnUpload		: "Sunucuya Yolla",
+DlgImgURL			: "URL",
+DlgImgUpload		: "KarÅŸÄ±ya YÃ¼kle",
+DlgImgAlt			: "Alternatif YazÄ±",
+DlgImgWidth			: "GeniÅŸlik",
+DlgImgHeight		: "YÃ¼kseklik",
+DlgImgLockRatio		: "OranÄ± Kilitle",
+DlgBtnResetSize		: "Boyutu BaÅŸa DÃ¶ndÃ¼r",
+DlgImgBorder		: "Kenar",
+DlgImgHSpace		: "Yatay BoÅŸluk",
+DlgImgVSpace		: "Dikey BoÅŸluk",
+DlgImgAlign			: "Hizalama",
+DlgImgAlignLeft		: "Sol",
+DlgImgAlignAbsBottom: "Tam AltÄ±",
+DlgImgAlignAbsMiddle: "Tam OrtasÄ±",
+DlgImgAlignBaseline	: "Taban Ã‡izgisi",
+DlgImgAlignBottom	: "Alt",
+DlgImgAlignMiddle	: "Orta",
+DlgImgAlignRight	: "SaÄŸ",
+DlgImgAlignTextTop	: "YazÄ± Tepeye",
+DlgImgAlignTop		: "Tepe",
+DlgImgPreview		: "Ã–n Ä°zleme",
+DlgImgAlertUrl		: "LÃ¼tfen resmin URL'sini yazÄ±nÄ±z",
+DlgImgLinkTab		: "KÃ¶prÃ¼",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Ã–zellikleri",
+DlgFlashChkPlay		: "Otomatik Oynat",
+DlgFlashChkLoop		: "DÃ¶ngÃ¼",
+DlgFlashChkMenu		: "Flash MenÃ¼sÃ¼nÃ¼ Kullan",
+DlgFlashScale		: "BoyutlandÄ±r",
+DlgFlashScaleAll	: "Hepsini GÃ¶ster",
+DlgFlashScaleNoBorder	: "Kenar Yok",
+DlgFlashScaleFit	: "Tam SÄ±ÄŸdÄ±r",
+
+// Link Dialog
+DlgLnkWindowTitle	: "KÃ¶prÃ¼",
+DlgLnkInfoTab		: "KÃ¶prÃ¼ Bilgisi",
+DlgLnkTargetTab		: "Hedef",
+
+DlgLnkType			: "KÃ¶prÃ¼ TÃ¼rÃ¼",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Bu sayfada Ã§apa",
+DlgLnkTypeEMail		: "E-Posta",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<diÄŸer>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Ã‡apa SeÃ§",
+DlgLnkAnchorByName	: "Ã‡apa AdÄ± ile",
+DlgLnkAnchorById	: "Eleman Kimlik NumarasÄ± ile",
+DlgLnkNoAnchors		: "(Bu belgede hiÃ§ Ã§apa yok)",
+DlgLnkEMail			: "E-Posta Adresi",
+DlgLnkEMailSubject	: "Ä°leti Konusu",
+DlgLnkEMailBody		: "Ä°leti GÃ¶vdesi",
+DlgLnkUpload		: "KarÅŸÄ±ya YÃ¼kle",
+DlgLnkBtnUpload		: "Sunucuya GÃ¶nder",
+
+DlgLnkTarget		: "Hedef",
+DlgLnkTargetFrame	: "<Ã§erÃ§eve>",
+DlgLnkTargetPopup	: "<yeni aÃ§Ä±lan pencere>",
+DlgLnkTargetBlank	: "Yeni Pencere(_blank)",
+DlgLnkTargetParent	: "Anne Pencere (_parent)",
+DlgLnkTargetSelf	: "Kendi Penceresi (_self)",
+DlgLnkTargetTop		: "En Ãœst Pencere (_top)",
+DlgLnkTargetFrameName	: "Hedef Ã‡erÃ§eve AdÄ±",
+DlgLnkPopWinName	: "Yeni AÃ§Ä±lan Pencere AdÄ±",
+DlgLnkPopWinFeat	: "Yeni AÃ§Ä±lan Pencere Ã–zellikleri",
+DlgLnkPopResize		: "BoyutlandÄ±rÄ±labilir",
+DlgLnkPopLocation	: "Yer Ã‡ubuÄŸu",
+DlgLnkPopMenu		: "MenÃ¼ Ã‡ubuÄŸu",
+DlgLnkPopScroll		: "KaydÄ±rma Ã‡ubuklarÄ±",
+DlgLnkPopStatus		: "Durum Ã‡ubuÄŸu",
+DlgLnkPopToolbar	: "AraÃ§ Ã‡ubuÄŸu",
+DlgLnkPopFullScrn	: "Tam Ekran (IE)",
+DlgLnkPopDependent	: "BaÄŸÄ±mlÄ± (Netscape)",
+DlgLnkPopWidth		: "GeniÅŸlik",
+DlgLnkPopHeight		: "YÃ¼kseklik",
+DlgLnkPopLeft		: "Sola GÃ¶re Konum",
+DlgLnkPopTop		: "YukarÄ±ya GÃ¶re Konum",
+
+DlnLnkMsgNoUrl		: "LÃ¼tfen kÃ¶prÃ¼ URL'sini yazÄ±n",
+DlnLnkMsgNoEMail	: "LÃ¼tfen E-posta adresini yazÄ±n",
+DlnLnkMsgNoAnchor	: "LÃ¼tfen bir Ã§apa seÃ§in",
+DlnLnkMsgInvPopName	: "AÃ§Ä±lÄ±r pencere adÄ± abecesel bir karakterle baÅŸlamalÄ± ve boÅŸluk iÃ§ermemelidir",
+
+// Color Dialog
+DlgColorTitle		: "Renk SeÃ§",
+DlgColorBtnClear	: "Temizle",
+DlgColorHighlight	: "Vurgula",
+DlgColorSelected	: "SeÃ§ilmiÅŸ",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ä°fade Ekle",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ã–zel Karakter SeÃ§",
+
+// Table Dialog
+DlgTableTitle		: "Tablo Ã–zellikleri",
+DlgTableRows		: "SatÄ±rlar",
+DlgTableColumns		: "SÃ¼tunlar",
+DlgTableBorder		: "Kenar KalÄ±nlÄ±ÄŸÄ±",
+DlgTableAlign		: "Hizalama",
+DlgTableAlignNotSet	: "<TanÄ±mlanmamÄ±ÅŸ>",
+DlgTableAlignLeft	: "Sol",
+DlgTableAlignCenter	: "Merkez",
+DlgTableAlignRight	: "SaÄŸ",
+DlgTableWidth		: "GeniÅŸlik",
+DlgTableWidthPx		: "piksel",
+DlgTableWidthPc		: "yÃ¼zde",
+DlgTableHeight		: "YÃ¼kseklik",
+DlgTableCellSpace	: "Izgara kalÄ±nlÄ±ÄŸÄ±",
+DlgTableCellPad		: "Izgara yazÄ± arasÄ±",
+DlgTableCaption		: "BaÅŸlÄ±k",
+DlgTableSummary		: "Ã–zet",
+
+// Table Cell Dialog
+DlgCellTitle		: "HÃ¼cre Ã–zellikleri",
+DlgCellWidth		: "GeniÅŸlik",
+DlgCellWidthPx		: "piksel",
+DlgCellWidthPc		: "yÃ¼zde",
+DlgCellHeight		: "YÃ¼kseklik",
+DlgCellWordWrap		: "SÃ¶zcÃ¼k KaydÄ±r",
+DlgCellWordWrapNotSet	: "<TanÄ±mlanmamÄ±ÅŸ>",
+DlgCellWordWrapYes	: "Evet",
+DlgCellWordWrapNo	: "HayÄ±r",
+DlgCellHorAlign		: "Yatay Hizalama",
+DlgCellHorAlignNotSet	: "<TanÄ±mlanmamÄ±ÅŸ>",
+DlgCellHorAlignLeft	: "Sol",
+DlgCellHorAlignCenter	: "Merkez",
+DlgCellHorAlignRight: "SaÄŸ",
+DlgCellVerAlign		: "Dikey Hizalama",
+DlgCellVerAlignNotSet	: "<TanÄ±mlanmamÄ±ÅŸ>",
+DlgCellVerAlignTop	: "Tepe",
+DlgCellVerAlignMiddle	: "Orta",
+DlgCellVerAlignBottom	: "Alt",
+DlgCellVerAlignBaseline	: "Taban Ã‡izgisi",
+DlgCellRowSpan		: "SatÄ±r Kapla",
+DlgCellCollSpan		: "SÃ¼tun Kapla",
+DlgCellBackColor	: "Arka Plan Rengi",
+DlgCellBorderColor	: "Kenar Rengi",
+DlgCellBtnSelect	: "SeÃ§...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Bul",
+DlgFindFindBtn		: "Bul",
+DlgFindNotFoundMsg	: "Belirtilen yazÄ± bulunamadÄ±.",
+
+// Replace Dialog
+DlgReplaceTitle			: "DeÄŸiÅŸtir",
+DlgReplaceFindLbl		: "Aranan:",
+DlgReplaceReplaceLbl	: "Bununla deÄŸiÅŸtir:",
+DlgReplaceCaseChk		: "BÃ¼yÃ¼k/kÃ¼Ã§Ã¼k harf duyarlÄ±",
+DlgReplaceReplaceBtn	: "DeÄŸiÅŸtir",
+DlgReplaceReplAllBtn	: "TÃ¼mÃ¼nÃ¼ DeÄŸiÅŸtir",
+DlgReplaceWordChk		: "Kelimenin tamamÄ± uysun",
+
+// Paste Operations / Dialog
+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.",
+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.",
+
+PasteAsText		: "DÃ¼z Metin Olarak YapÄ±ÅŸtÄ±r",
+PasteFromWord	: "Word'den yapÄ±ÅŸtÄ±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.",
+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
+DlgPasteIgnoreFont		: "YazÄ± Tipi tanÄ±mlarÄ±nÄ± yoksay",
+DlgPasteRemoveStyles	: "BiÃ§em TanÄ±mlarÄ±nÄ± Ã§Ä±kar",
+
+// Color Picker
+ColorAutomatic	: "Otomatik",
+ColorMoreColors	: "DiÄŸer renkler...",
+
+// Document Properties
+DocProps		: "Belge Ã–zellikleri",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ã‡apa Ã–zellikleri",
+DlgAnchorName		: "Ã‡apa AdÄ±",
+DlgAnchorErrorName	: "LÃ¼tfen Ã§apa iÃ§in ad giriniz",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "SÃ¶zlÃ¼kte Yok",
+DlgSpellChangeTo		: "Åžuna deÄŸiÅŸtir:",
+DlgSpellBtnIgnore		: "Yoksay",
+DlgSpellBtnIgnoreAll	: "TÃ¼mÃ¼nÃ¼ Yoksay",
+DlgSpellBtnReplace		: "DeÄŸiÅŸtir",
+DlgSpellBtnReplaceAll	: "TÃ¼mÃ¼nÃ¼ DeÄŸiÅŸtir",
+DlgSpellBtnUndo			: "Geri Al",
+DlgSpellNoSuggestions	: "- Ã–neri Yok -",
+DlgSpellProgress		: "YazÄ±m denetimi iÅŸlemde...",
+DlgSpellNoMispell		: "YazÄ±m denetimi tamamlandÄ±: YanlÄ±ÅŸ yazÄ±ma rastlanmadÄ±",
+DlgSpellNoChanges		: "YazÄ±m denetimi tamamlandÄ±: HiÃ§bir kelime deÄŸiÅŸtirilmedi",
+DlgSpellOneChange		: "YazÄ±m denetimi tamamlandÄ±: Bir kelime deÄŸiÅŸtirildi",
+DlgSpellManyChanges		: "YazÄ±m denetimi tamamlandÄ±: %1 kelime deÄŸiÅŸtirildi",
+
+IeSpellDownload			: "YazÄ±m denetimi yÃ¼klenmemiÅŸ. Åžimdi yÃ¼klemek ister misiniz?",
+
+// Button Dialog
+DlgButtonText		: "Metin (DeÄŸer)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "DÃ¼ÄŸme",
+DlgButtonTypeSbm	: "GÃ¶nder",
+DlgButtonTypeRst	: "SÄ±fÄ±rla",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ad",
+DlgCheckboxValue	: "DeÄŸer",
+DlgCheckboxSelected	: "SeÃ§ili",
+
+// Form Dialog
+DlgFormName		: "Ad",
+DlgFormAction	: "Ä°ÅŸlem",
+DlgFormMethod	: "YÃ¶ntem",
+
+// Select Field Dialog
+DlgSelectName		: "Ad",
+DlgSelectValue		: "DeÄŸer",
+DlgSelectSize		: "Boyut",
+DlgSelectLines		: "satÄ±r",
+DlgSelectChkMulti	: "Ã‡oklu seÃ§ime izin ver",
+DlgSelectOpAvail	: "Mevcut SeÃ§enekler",
+DlgSelectOpText		: "Metin",
+DlgSelectOpValue	: "DeÄŸer",
+DlgSelectBtnAdd		: "Ekle",
+DlgSelectBtnModify	: "DÃ¼zenle",
+DlgSelectBtnUp		: "YukarÄ±",
+DlgSelectBtnDown	: "AÅŸaÄŸÄ±",
+DlgSelectBtnSetValue : "SeÃ§ili deÄŸer olarak ata",
+DlgSelectBtnDelete	: "Sil",
+
+// Textarea Dialog
+DlgTextareaName	: "Ad",
+DlgTextareaCols	: "SÃ¼tunlar",
+DlgTextareaRows	: "SatÄ±rlar",
+
+// Text Field Dialog
+DlgTextName			: "Ad",
+DlgTextValue		: "DeÄŸer",
+DlgTextCharWidth	: "Karakter GeniÅŸliÄŸi",
+DlgTextMaxChars		: "En Fazla Karakter",
+DlgTextType			: "TÃ¼r",
+DlgTextTypeText		: "Metin",
+DlgTextTypePass		: "Parola",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ad",
+DlgHiddenValue	: "DeÄŸer",
+
+// Bulleted List Dialog
+BulletedListProp	: "Simgeli Liste Ã–zellikleri",
+NumberedListProp	: "NumaralÄ± Liste Ã–zellikleri",
+DlgLstStart			: "BaÅŸlangÄ±Ã§",
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Ã‡ember",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Kare",
+DlgLstTypeNumbers	: "SayÄ±lar (1, 2, 3)",
+DlgLstTypeLCase		: "KÃ¼Ã§Ã¼k Harfler (a, b, c)",
+DlgLstTypeUCase		: "BÃ¼yÃ¼k Harfler (A, B, C)",
+DlgLstTypeSRoman	: "KÃ¼Ã§Ã¼k Romen RakamlarÄ± (i, ii, iii)",
+DlgLstTypeLRoman	: "BÃ¼yÃ¼k Romen RakamlarÄ± (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Genel",
+DlgDocBackTab		: "Arka Plan",
+DlgDocColorsTab		: "Renkler ve Kenar BoÅŸluklarÄ±",
+DlgDocMetaTab		: "TanÄ±m Bilgisi (Meta)",
+
+DlgDocPageTitle		: "Sayfa BaÅŸlÄ±ÄŸÄ±",
+DlgDocLangDir		: "Dil YÃ¶nÃ¼",
+DlgDocLangDirLTR	: "Soldan SaÄŸa (LTR)",
+DlgDocLangDirRTL	: "SaÄŸdan Sola (RTL)",
+DlgDocLangCode		: "Dil Kodu",
+DlgDocCharSet		: "Karakter KÃ¼mesi KodlamasÄ±",
+DlgDocCharSetCE		: "Orta Avrupa",
+DlgDocCharSetCT		: "Geleneksel Ã‡ince (Big5)",
+DlgDocCharSetCR		: "Kiril",
+DlgDocCharSetGR		: "Yunanca",
+DlgDocCharSetJP		: "Japonca",
+DlgDocCharSetKR		: "Korece",
+DlgDocCharSetTR		: "TÃ¼rkÃ§e",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "BatÄ± Avrupa",
+DlgDocCharSetOther	: "DiÄŸer Karakter KÃ¼mesi KodlamasÄ±",
+
+DlgDocDocType		: "Belge TÃ¼rÃ¼ BaÅŸlÄ±ÄŸÄ±",
+DlgDocDocTypeOther	: "DiÄŸer Belge TÃ¼rÃ¼ BaÅŸlÄ±ÄŸÄ±",
+DlgDocIncXHTML		: "XHTML Bildirimlerini Dahil Et",
+DlgDocBgColor		: "Arka Plan Rengi",
+DlgDocBgImage		: "Arka Plan Resim URLsi",
+DlgDocBgNoScroll	: "Sabit Arka Plan",
+DlgDocCText			: "Metin",
+DlgDocCLink			: "KÃ¶prÃ¼",
+DlgDocCVisited		: "Ziyaret EdilmiÅŸ KÃ¶prÃ¼",
+DlgDocCActive		: "Etkin KÃ¶prÃ¼",
+DlgDocMargins		: "Kenar BoÅŸluklarÄ±",
+DlgDocMaTop			: "Tepe",
+DlgDocMaLeft		: "Sol",
+DlgDocMaRight		: "SaÄŸ",
+DlgDocMaBottom		: "Alt",
+DlgDocMeIndex		: "Belge Dizinleme Anahtar Kelimeleri (virgÃ¼lle ayrÄ±lmÄ±ÅŸ)",
+DlgDocMeDescr		: "Belge TanÄ±mÄ±",
+DlgDocMeAuthor		: "Yazar",
+DlgDocMeCopy		: "Telif",
+DlgDocPreview		: "Ã–n Ä°zleme",
+
+// Templates Dialog
+Templates			: "Åžablonlar",
+DlgTemplatesTitle	: "Ä°Ã§erik ÅžablonlarÄ±",
+DlgTemplatesSelMsg	: "DÃ¼zenleyicide aÃ§mak iÃ§in lÃ¼tfen bir ÅŸablon seÃ§in.<br>(hali hazÄ±rdaki iÃ§erik kaybolacaktÄ±r.):",
+DlgTemplatesLoading	: "Åžablon listesi yÃ¼klenmekte. LÃ¼tfen bekleyiniz...",
+DlgTemplatesNoTpl	: "(Belirli bir ÅŸablon seÃ§ilmedi)",
+DlgTemplatesReplace	: "Mevcut iÃ§erik ile deÄŸiÅŸtir",
+
+// About Dialog
+DlgAboutAboutTab	: "HakkÄ±nda",
+DlgAboutBrowserInfoTab	: "Gezgin Bilgisi",
+DlgAboutLicenseTab	: "Lisans",
+DlgAboutVersion		: "sÃ¼rÃ¼m",
+DlgAboutInfo		: "Daha fazla bilgi iÃ§in:"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fa.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fa.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fa.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Persian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "Ø¨Ø±Ú†ÛŒØ¯Ù† Ù†ÙˆØ§Ø±Ø§Ø¨Ø²Ø§Ø±",
+ToolbarExpand		: "Ú¯Ø³ØªØ±Ø¯Ù† Ù†ÙˆØ§Ø±Ø§Ø¨Ø²Ø§Ø±",
+
+// Toolbar Items and Context Menu
+Save				: "Ø°Ø®ÛŒØ±Ù‡",
+NewPage				: "Ø¨Ø±Ú¯Ù‡Ù´ ØªØ§Ø²Ù‡",
+Preview				: "Ù¾ÛŒØ´â€ŒÙ†Ù…Ø§ÛŒØ´",
+Cut					: "Ø¨Ø±Ø´",
+Copy				: "Ú©Ù¾ÛŒ",
+Paste				: "Ú†Ø³Ø¨Ø§Ù†Ø¯Ù†",
+PasteText			: "Ú†Ø³Ø¨Ø§Ù†Ø¯Ù† Ø¨Ù‡ Ø¹Ù†ÙˆØ§Ù† Ù…ØªÙ† ÙØ³Ø§Ø¯Ù‡",
+PasteWord			: "Ú†Ø³Ø¨Ø§Ù†Ø¯Ù† Ø§Ø² Word",
+Print				: "Ú†Ø§Ù¾",
+SelectAll			: "Ú¯Ø²ÛŒÙ†Ø´ Ù‡Ù…Ù‡",
+RemoveFormat		: "Ø¨Ø±Ø¯Ø§Ø´ØªÙ† ÙØ±Ù…Øª",
+InsertLinkLbl		: "Ù¾ÛŒÙˆÙ†Ø¯",
+InsertLink			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/ÙˆÛŒØ±Ø§ÛŒØ´ ÙÙ¾ÛŒÙˆÙ†Ø¯",
+RemoveLink			: "Ø¨Ø±Ø¯Ø§Ø´ØªÙ† Ù¾ÛŒÙˆÙ†Ø¯",
+Anchor				: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/ÙˆÛŒØ±Ø§ÛŒØ´ ÙÙ„Ù†Ú¯Ø±",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "ØªØµÙˆÛŒØ±",
+InsertImage			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/ÙˆÛŒØ±Ø§ÛŒØ´ ÙØªØµÙˆÛŒØ±",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/ÙˆÛŒØ±Ø§ÛŒØ´ ÙFlash",
+InsertTableLbl		: "Ø¬Ø¯ÙˆÙ„",
+InsertTable			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/ÙˆÛŒØ±Ø§ÛŒØ´ ÙØ¬Ø¯ÙˆÙ„",
+InsertLineLbl		: "Ø®Ø·",
+InsertLine			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù† Ø®Ø· ÙØ§ÙÙ‚ÛŒ",
+InsertSpecialCharLbl: "Ù†ÙˆÛŒØ³Ù‡Ù´ ÙˆÛŒÚ˜Ù‡",
+InsertSpecialChar	: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù† Ù†ÙˆÛŒØ³Ù‡Ù´ ÙˆÛŒÚ˜Ù‡",
+InsertSmileyLbl		: "Ø®Ù†Ø¯Ø§Ù†Ú©",
+InsertSmiley		: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù† Ø®Ù†Ø¯Ø§Ù†Ú©",
+About				: "Ø¯Ø±Ø¨Ø§Ø±Ù‡Ù´ FCKeditor",
+Bold				: "Ø¯Ø±Ø´Øª",
+Italic				: "Ø®Ù…ÛŒØ¯Ù‡",
+Underline			: "Ø®Ø·â€ŒØ²ÛŒØ±Ø¯Ø§Ø±",
+StrikeThrough		: "Ù…ÛŒØ§Ù†â€ŒØ®Ø·",
+Subscript			: "Ø²ÛŒØ±Ù†ÙˆÛŒØ³",
+Superscript			: "Ø¨Ø§Ù„Ø§Ù†ÙˆÛŒØ³",
+LeftJustify			: "Ú†Ù¾â€ŒÚ†ÛŒÙ†",
+CenterJustify		: "Ù…ÛŒØ§Ù†â€ŒÚ†ÛŒÙ†",
+RightJustify		: "Ø±Ø§Ø³Øªâ€ŒÚ†ÛŒÙ†",
+BlockJustify		: "Ø¨Ù„ÙˆÚ©â€ŒÚ†ÛŒÙ†",
+DecreaseIndent		: "Ú©Ø§Ù‡Ø´ ØªÙˆØ±ÙØªÚ¯ÛŒ",
+IncreaseIndent		: "Ø§ÙØ²Ø§ÛŒØ´ ØªÙˆØ±ÙØªÚ¯ÛŒ",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ÙˆØ§Ú†ÛŒØ¯Ù†",
+Redo				: "Ø¨Ø§Ø²Ú†ÛŒØ¯Ù†",
+NumberedListLbl		: "ÙÙ‡Ø±Ø³Øª Ø´Ù…Ø§Ø±Ù‡â€ŒØ¯Ø§Ø±",
+NumberedList		: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/Ø¨Ø±Ø¯Ø§Ø´ØªÙ† ÙÙ‡Ø±Ø³Øª Ø´Ù…Ø§Ø±Ù‡â€ŒØ¯Ø§Ø±",
+BulletedListLbl		: "ÙÙ‡Ø±Ø³Øª Ù†Ù‚Ø·Ù‡â€ŒØ§ÛŒ",
+BulletedList		: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù†/Ø¨Ø±Ø¯Ø§Ø´ØªÙ† ÙÙ‡Ø±Ø³Øª Ù†Ù‚Ø·Ù‡â€ŒØ§ÛŒ",
+ShowTableBorders	: "Ù†Ù…Ø§ÛŒØ´ Ù„Ø¨Ù‡Ù´ Ø¬Ø¯ÙˆÙ„",
+ShowDetails			: "Ù†Ù…Ø§ÛŒØ´ Ø¬Ø²Ø¦ÛŒØ§Øª",
+Style				: "Ø³Ø¨Ú©",
+FontFormat			: "ÙØ±Ù…Øª",
+Font				: "Ù‚Ù„Ù…",
+FontSize			: "Ø§Ù†Ø¯Ø§Ø²Ù‡",
+TextColor			: "Ø±Ù†Ú¯ Ù…ØªÙ†",
+BGColor				: "Ø±Ù†Ú¯ Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡",
+Source				: "Ù…Ù†Ø¨Ø¹",
+Find				: "Ø¬Ø³ØªØ¬Ùˆ",
+Replace				: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ",
+SpellCheck			: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§",
+UniversalKeyboard	: "ØµÙØ­Ù‡â€ŒÚ©Ù„ÛŒØ¯ Ø¬Ù‡Ø§Ù†ÛŒ",
+PageBreakLbl		: "Ø´Ú©Ø³ØªÚ¯ÛŒ ÙÙ¾Ø§ÛŒØ§Ù† ÙØ¨Ø±Ú¯Ù‡",
+PageBreak			: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù† Ø´Ú©Ø³ØªÚ¯ÛŒ ÙÙ¾Ø§ÛŒØ§Ù† ÙØ¨Ø±Ú¯Ù‡",
+
+Form			: "ÙØ±Ù…",
+Checkbox		: "Ø®Ø§Ù†Ù‡Ù´ Ú¯Ø²ÛŒÙ†Ù‡â€ŒØ§ÛŒ",
+RadioButton		: "Ø¯Ú©Ù…Ù‡Ù´ Ø±Ø§Ø¯ÛŒÙˆÛŒÛŒ",
+TextField		: "ÙÛŒÙ„Ø¯ Ù…ØªÙ†ÛŒ",
+Textarea		: "Ù†Ø§Ø­ÛŒÙ‡Ù´ Ù…ØªÙ†ÛŒ",
+HiddenField		: "ÙÛŒÙ„Ø¯ Ù¾Ù†Ù‡Ø§Ù†",
+Button			: "Ø¯Ú©Ù…Ù‡",
+SelectionField	: "ÙÛŒÙ„Ø¯ Ú†Ù†Ø¯Ú¯Ø²ÛŒÙ†Ù‡â€ŒØ§ÛŒ",
+ImageButton		: "Ø¯Ú©Ù…Ù‡Ù´ ØªØµÙˆÛŒØ±ÛŒ",
+
+FitWindow		: "Ø¨ÛŒØ´ÛŒÙ†Ù‡â€ŒØ³Ø§Ø²ÛŒ ÙØ§Ù†Ø¯Ø§Ø²Ù‡Ù´ ÙˆÛŒØ±Ø§ÛŒØ´Ú¯Ø±",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "ÙˆÛŒØ±Ø§ÛŒØ´ Ù¾ÛŒÙˆÙ†Ø¯",
+CellCM				: "Ø³Ù„ÙˆÙ„",
+RowCM				: "Ø³Ø·Ø±",
+ColumnCM			: "Ø³ØªÙˆÙ†",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Ø­Ø°Ù Ø³Ø·Ø±Ù‡Ø§",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Ø­Ø°Ù Ø³ØªÙˆÙ†Ù‡Ø§",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Ø­Ø°Ù Ø³Ù„ÙˆÙ„Ù‡Ø§",
+MergeCells			: "Ø§Ø¯ØºØ§Ù… Ø³Ù„ÙˆÙ„Ù‡Ø§",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Ù¾Ø§Ú©â€ŒÚ©Ø±Ø¯Ù† Ø¬Ø¯ÙˆÙ„",
+CellProperties		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø³Ù„ÙˆÙ„",
+TableProperties		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø¬Ø¯ÙˆÙ„",
+ImageProperties		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ØªØµÙˆÛŒØ±",
+FlashProperties		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Flash",
+
+AnchorProp			: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ù„Ù†Ú¯Ø±",
+ButtonProp			: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø¯Ú©Ù…Ù‡",
+CheckboxProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø®Ø§Ù†Ù‡Ù´ Ú¯Ø²ÛŒÙ†Ù‡â€ŒØ§ÛŒ",
+HiddenFieldProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙÛŒÙ„Ø¯ Ù¾Ù†Ù‡Ø§Ù†",
+RadioButtonProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø¯Ú©Ù…Ù‡Ù´ Ø±Ø§Ø¯ÛŒÙˆÛŒÛŒ",
+ImageButtonProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø¯Ú©Ù…Ù‡Ù´ ØªØµÙˆÛŒØ±ÛŒ",
+TextFieldProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙÛŒÙ„Ø¯ Ù…ØªÙ†ÛŒ",
+SelectionFieldProp	: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙÛŒÙ„Ø¯ Ú†Ù†Ø¯Ú¯Ø²ÛŒÙ†Ù‡â€ŒØ§ÛŒ",
+TextareaProp		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ù†Ø§Ø­ÛŒÙ‡Ù´ Ù…ØªÙ†ÛŒ",
+FormProp			: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙØ±Ù…",
+
+FontFormats			: "Ù†Ø±Ù…Ø§Ù„;ÙØ±Ù…Øªâ€ŒØ´Ø¯Ù‡;Ø¢Ø¯Ø±Ø³;Ø³Ø±Ù†ÙˆÛŒØ³ 1;Ø³Ø±Ù†ÙˆÛŒØ³ 2;Ø³Ø±Ù†ÙˆÛŒØ³ 3;Ø³Ø±Ù†ÙˆÛŒØ³ 4;Ø³Ø±Ù†ÙˆÛŒØ³ 5;Ø³Ø±Ù†ÙˆÛŒØ³ 6;Ø¨Ù†Ø¯;(DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Ù¾Ø±Ø¯Ø§Ø²Ø´ XHTML. Ù„Ø·ÙØ§ ØµØ¨Ø± Ú©Ù†ÛŒØ¯...",
+Done				: "Ø§Ù†Ø¬Ø§Ù… Ø´Ø¯",
+PasteWordConfirm	: "Ù…ØªÙ†ÛŒ Ú©Ù‡ Ù…ÛŒâ€ŒØ®ÙˆØ§Ù‡ÛŒØ¯ Ø¨Ú†Ø³Ø¨Ø§Ù†ÛŒØ¯ Ø¨Ù‡ Ù†Ø¸Ø± Ù…ÛŒâ€ŒØ±Ø³Ø¯ Ø§Ø² Word Ú©Ù¾ÛŒ Ø´Ø¯Ù‡ Ø§Ø³Øª. Ø¢ÛŒØ§ Ù…ÛŒâ€ŒØ®ÙˆØ§Ù‡ÛŒØ¯ Ù‚Ø¨Ù„ Ø§Ø² Ú†Ø³Ø¨Ø§Ù†Ø¯Ù† Ø¢Ù† Ø±Ø§ Ù¾Ø§Ú©â€ŒØ³Ø§Ø²ÛŒ Ú©Ù†ÛŒØ¯ØŸ",
+NotCompatiblePaste	: "Ø§ÛŒÙ† ÙØ±Ù…Ø§Ù† Ø¨Ø±Ø§ÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Internet Explorer Ø§Ø² Ù†Ú¯Ø§Ø±Ø´ 5.5 ÛŒØ§ Ø¨Ø§Ù„Ø§ØªØ± Ø¯Ø± Ø¯Ø³ØªØ±Ø³ Ø§Ø³Øª. Ø¢ÛŒØ§ Ù…ÛŒâ€ŒØ®ÙˆØ§Ù‡ÛŒØ¯ Ø¨Ø¯ÙˆÙ† Ù¾Ø§Ú©â€ŒØ³Ø§Ø²ÛŒØŒ Ù…ØªÙ† Ø±Ø§ Ø¨Ú†Ø³Ø¨Ø§Ù†ÛŒØ¯ØŸ",
+UnknownToolbarItem	: "ÙÙ‚Ø±Ù‡Ù´ Ù†ÙˆØ§Ø±Ø§Ø¨Ø²Ø§Ø± Ù†Ø§Ø´Ù†Ø§Ø®ØªÙ‡ \"%1\"",
+UnknownCommand		: "Ù†Ø§Ù… Ø¯Ø³ØªÙˆØ± Ù†Ø§Ø´Ù†Ø§Ø®ØªÙ‡ \"%1\"",
+NotImplemented		: "Ø¯Ø³ØªÙˆØ± Ù¾ÛŒØ§Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒâ€ŒÙ†Ø´Ø¯Ù‡",
+UnknownToolbarSet	: "Ù…Ø¬Ù…ÙˆØ¹Ù‡Ù´ Ù†ÙˆØ§Ø±Ø§Ø¨Ø²Ø§Ø± \"%1\" ÙˆØ¬ÙˆØ¯ Ù†Ø¯Ø§Ø±Ø¯",
+NoActiveX			: "ØªÙ†Ø¸ÛŒÙ…Ø§Øª Ø§Ù…Ù†ÛŒØªÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ø´Ù…Ø§ Ù…Ù…Ú©Ù† Ø§Ø³Øª Ø¯Ø± Ø¨Ø¹Ø¶ÛŒ Ø§Ø² ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ù…Ø­Ø¯ÙˆØ¯ÛŒØª Ø§ÛŒØ¬Ø§Ø¯ Ú©Ù†Ø¯. Ø´Ù…Ø§ Ø¨Ø§ÛŒØ¯ Ú¯Ø²ÛŒÙ†Ù‡Ù´ \"Run ActiveX controls and plug-ins\" Ø±Ø§ ÙØ¹Ø§Ù„ Ú©Ù†ÛŒØ¯. Ù…Ù…Ú©Ù† Ø§Ø³Øª Ø´Ù…Ø§ Ø¨Ø§ Ø®Ø·Ø§Ù‡Ø§ÛŒÛŒ Ø±ÙˆØ¨Ø±Ùˆ Ø¨Ø§Ø´ÛŒØ¯ Ùˆ Ù…ØªÙˆØ¬Ù‡ Ú©Ù…Ø¨ÙˆØ¯ ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒÛŒ Ø´ÙˆÛŒØ¯.",
+BrowseServerBlocked : "ØªÙˆØ§Ù†Ø§ÛŒÛŒ Ø¨Ø§Ø²Ú¯Ø´Ø§ÛŒÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ù…Ù†Ø§Ø¨Ø¹ ÙØ±Ø§Ù‡Ù… Ù†ÛŒØ³Øª. Ø§Ø·Ù…ÛŒÙ†Ø§Ù† Ø­Ø§ØµÙ„ Ú©Ù†ÛŒØ¯ Ú©Ù‡ ØªÙ…Ø§Ù…ÛŒ Ø¨Ø±Ù†Ø§Ù…Ù‡â€ŒÙ‡Ø§ÛŒ Ù¾ÛŒØ´Ú¯ÛŒØ±ÛŒ Ø§Ø² Ù†Ù…Ø§ÛŒØ´ popup Ø±Ø§ Ø§Ø² Ú©Ø§Ø± Ø¨Ø§Ø²Ø¯Ø§Ø´ØªÙ‡â€ŒØ§ÛŒØ¯.",
+DialogBlocked		: "ØªÙˆØ§Ù†Ø§ÛŒÛŒ Ø¨Ø§Ø²Ú¯Ø´Ø§ÛŒÛŒ Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ú©ÙˆÚ†Ú© ÙÚ¯ÙØªÚ¯Ùˆ ÙØ±Ø§Ù‡Ù… Ù†ÛŒØ³Øª. Ø§Ø·Ù…ÛŒÙ†Ø§Ù† Ø­Ø§ØµÙ„ Ú©Ù†ÛŒØ¯ Ú©Ù‡ ØªÙ…Ø§Ù…ÛŒ Ø¨Ø±Ù†Ø§Ù…Ù‡â€ŒÙ‡Ø§ÛŒ Ù¾ÛŒØ´Ú¯ÛŒØ±ÛŒ Ø§Ø² Ù†Ù…Ø§ÛŒØ´ popup Ø±Ø§ Ø§Ø² Ú©Ø§Ø± Ø¨Ø§Ø²Ø¯Ø§Ø´ØªÙ‡â€ŒØ§ÛŒØ¯.",
+
+// Dialogs
+DlgBtnOK			: "Ù¾Ø°ÛŒØ±Ø´",
+DlgBtnCancel		: "Ø§Ù†ØµØ±Ø§Ù",
+DlgBtnClose			: "Ø¨Ø³ØªÙ†",
+DlgBtnBrowseServer	: "ÙÙ‡Ø±Ø³Øªâ€ŒÙ†Ù…Ø§ÛŒÛŒ Ø³Ø±ÙˆØ±",
+DlgAdvancedTag		: "Ù¾ÛŒØ´Ø±ÙØªÙ‡",
+DlgOpOther			: "<ØºÛŒØ±Ù‡>",
+DlgInfoTab			: "Ø§Ø·Ù„Ø§Ø¹Ø§Øª",
+DlgAlertUrl			: "Ù„Ø·ÙØ§Ù‹ URL Ø±Ø§ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ØªØ¹ÛŒÙ†â€ŒÙ†Ø´Ø¯Ù‡>",
+DlgGenId			: "Ø´Ù†Ø§Ø³Ù‡",
+DlgGenLangDir		: "Ø¬Ù‡Øªâ€ŒÙ†Ù…Ø§ÛŒ Ø²Ø¨Ø§Ù†",
+DlgGenLangDirLtr	: "Ú†Ù¾ Ø¨Ù‡ Ø±Ø§Ø³Øª (LTR)",
+DlgGenLangDirRtl	: "Ø±Ø§Ø³Øª Ø¨Ù‡ Ú†Ù¾ (RTL)",
+DlgGenLangCode		: "Ú©Ø¯ Ø²Ø¨Ø§Ù†",
+DlgGenAccessKey		: "Ú©Ù„ÛŒØ¯ Ø¯Ø³ØªÛŒØ§Ø¨ÛŒ",
+DlgGenName			: "Ù†Ø§Ù…",
+DlgGenTabIndex		: "Ù†Ù…Ø§ÛŒÙ‡Ù´ Ø¯Ø³ØªØ±Ø³ÛŒ Ø¨Ø§ Tab",
+DlgGenLongDescr		: "URL ØªÙˆØµÛŒÙ Ø·ÙˆÙ„Ø§Ù†ÛŒ",
+DlgGenClass			: "Ú©Ù„Ø§Ø³Ù‡Ø§ÛŒ Ø´ÛŒÙˆÙ‡â€ŒÙ†Ø§Ù…Ù‡(Stylesheet)",
+DlgGenTitle			: "Ø¹Ù†ÙˆØ§Ù† Ú©Ù…Ú©ÛŒ",
+DlgGenContType		: "Ù†ÙˆØ¹ Ù…Ø­ØªÙˆØ§ÛŒ Ú©Ù…Ú©ÛŒ",
+DlgGenLinkCharset	: "Ù†ÙˆÛŒØ³Ù‡â€ŒÚ¯Ø§Ù† Ù…Ù†Ø¨Ø¹ ÙÙ¾ÛŒÙˆÙ†Ø¯Ø´Ø¯Ù‡",
+DlgGenStyle			: "Ø´ÛŒÙˆÙ‡(style)",
+
+// Image Dialog
+DlgImgTitle			: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ØªØµÙˆÛŒØ±",
+DlgImgInfoTab		: "Ø§Ø·Ù„Ø§Ø¹Ø§Øª ØªØµÙˆÛŒØ±",
+DlgImgBtnUpload		: "Ø¨Ù‡ Ø³Ø±ÙˆØ± Ø¨ÙØ±Ø³Øª",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ø§Ù†ØªÙ‚Ø§Ù„ Ø¨Ù‡ Ø³Ø±ÙˆØ±",
+DlgImgAlt			: "Ù…ØªÙ† Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†",
+DlgImgWidth			: "Ù¾Ù‡Ù†Ø§",
+DlgImgHeight		: "Ø¯Ø±Ø§Ø²Ø§",
+DlgImgLockRatio		: "Ù‚ÙÙ„â€ŒÚ©Ø±Ø¯Ù† ÙÙ†Ø³Ø¨Øª",
+DlgBtnResetSize		: "Ø¨Ø§Ø²Ù†Ø´Ø§Ù†ÛŒ Ø§Ù†Ø¯Ø§Ø²Ù‡",
+DlgImgBorder		: "Ù„Ø¨Ù‡",
+DlgImgHSpace		: "ÙØ§ØµÙ„Ù‡Ù´ Ø§ÙÙ‚ÛŒ",
+DlgImgVSpace		: "ÙØ§ØµÙ„Ù‡Ù´ Ø¹Ù…ÙˆØ¯ÛŒ",
+DlgImgAlign			: "Ú†ÛŒÙ†Ø´",
+DlgImgAlignLeft		: "Ú†Ù¾",
+DlgImgAlignAbsBottom: "Ù¾Ø§Ø¦ÛŒÙ† Ù…Ø·Ù„Ù‚",
+DlgImgAlignAbsMiddle: "ÙˆØ³Ø· Ù…Ø·Ù„Ù‚",
+DlgImgAlignBaseline	: "Ø®Ø·â€ŒÙ¾Ø§ÛŒÙ‡",
+DlgImgAlignBottom	: "Ù¾Ø§Ø¦ÛŒÙ†",
+DlgImgAlignMiddle	: "ÙˆØ³Ø·",
+DlgImgAlignRight	: "Ø±Ø§Ø³Øª",
+DlgImgAlignTextTop	: "Ù…ØªÙ† Ø¨Ø§Ù„Ø§",
+DlgImgAlignTop		: "Ø¨Ø§Ù„Ø§",
+DlgImgPreview		: "Ù¾ÛŒØ´â€ŒÙ†Ù…Ø§ÛŒØ´",
+DlgImgAlertUrl		: "Ù„Ø·ÙØ§ URL ØªØµÙˆÛŒØ± Ø±Ø§ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯",
+DlgImgLinkTab		: "Ù¾ÛŒÙˆÙ†Ø¯",
+
+// Flash Dialog
+DlgFlashTitle		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Flash",
+DlgFlashChkPlay		: "Ø¢ØºØ§Ø² ÙØ®ÙˆØ¯Ú©Ø§Ø±",
+DlgFlashChkLoop		: "Ø§Ø¬Ø±Ø§ÛŒ Ù¾ÛŒØ§Ù¾ÛŒ",
+DlgFlashChkMenu		: "Ø¯Ø±Ø¯Ø³ØªØ±Ø³â€ŒØ¨ÙˆØ¯Ù† Ù…Ù†ÙˆÛŒ Flash",
+DlgFlashScale		: "Ù…Ù‚ÛŒØ§Ø³",
+DlgFlashScaleAll	: "Ù†Ù…Ø§ÛŒØ´ Ù‡Ù…Ù‡",
+DlgFlashScaleNoBorder	: "Ø¨Ø¯ÙˆÙ† Ú©Ø±Ø§Ù†",
+DlgFlashScaleFit	: "Ø¬Ø§ÛŒÚ¯ÛŒØ±ÛŒ Ú©Ø§Ù…Ù„",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ù¾ÛŒÙˆÙ†Ø¯",
+DlgLnkInfoTab		: "Ø§Ø·Ù„Ø§Ø¹Ø§Øª Ù¾ÛŒÙˆÙ†Ø¯",
+DlgLnkTargetTab		: "Ù…Ù‚ØµØ¯",
+
+DlgLnkType			: "Ù†ÙˆØ¹ Ù¾ÛŒÙˆÙ†Ø¯",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ù„Ù†Ú¯Ø± Ø¯Ø± Ù‡Ù…ÛŒÙ† ØµÙØ­Ù‡",
+DlgLnkTypeEMail		: "Ù¾Ø³Øª Ø§Ù„Ú©ØªØ±ÙˆÙ†ÛŒÚ©ÛŒ",
+DlgLnkProto			: "Ù¾Ø±ÙˆØªÚ©Ù„",
+DlgLnkProtoOther	: "<Ø¯ÛŒÚ¯Ø±>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ÛŒÚ© Ù„Ù†Ú¯Ø± Ø¨Ø±Ú¯Ø²ÛŒÙ†ÛŒØ¯",
+DlgLnkAnchorByName	: "Ø¨Ø§ Ù†Ø§Ù… Ù„Ù†Ú¯Ø±",
+DlgLnkAnchorById	: "Ø¨Ø§ Ø´Ù†Ø§Ø³Ù‡Ù´ Ø§Ù„Ù…Ø§Ù†",
+DlgLnkNoAnchors		: "(Ø¯Ø± Ø§ÛŒÙ† Ø³Ù†Ø¯ Ù„Ù†Ú¯Ø±ÛŒ Ø¯Ø±Ø¯Ø³ØªØ±Ø³ Ù†ÛŒØ³Øª)",
+DlgLnkEMail			: "Ù†Ø´Ø§Ù†ÛŒ Ù¾Ø³Øª Ø§Ù„Ú©ØªØ±ÙˆÙ†ÛŒÚ©ÛŒ",
+DlgLnkEMailSubject	: "Ù…ÙˆØ¶ÙˆØ¹ Ù¾ÛŒØ§Ù…",
+DlgLnkEMailBody		: "Ù…ØªÙ† Ù¾ÛŒØ§Ù…",
+DlgLnkUpload		: "Ø§Ù†ØªÙ‚Ø§Ù„ Ø¨Ù‡ Ø³Ø±ÙˆØ±",
+DlgLnkBtnUpload		: "Ø¨Ù‡ Ø³Ø±ÙˆØ± Ø¨ÙØ±Ø³Øª",
+
+DlgLnkTarget		: "Ù…Ù‚ØµØ¯",
+DlgLnkTargetFrame	: "<ÙØ±ÛŒÙ…>",
+DlgLnkTargetPopup	: "<Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ù¾Ø§Ù¾Ø§Ù¾>",
+DlgLnkTargetBlank	: "Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ø¯ÛŒÚ¯Ø± (_blank)",
+DlgLnkTargetParent	: "Ù¾Ù†Ø¬Ø±Ù‡Ù´ ÙˆØ§Ù„Ø¯ (_parent)",
+DlgLnkTargetSelf	: "Ù‡Ù…Ø§Ù† Ù¾Ù†Ø¬Ø±Ù‡ (_self)",
+DlgLnkTargetTop		: "Ø¨Ø§Ù„Ø§ØªØ±ÛŒÙ† Ù¾Ù†Ø¬Ø±Ù‡ (_top)",
+DlgLnkTargetFrameName	: "Ù†Ø§Ù… ÙØ±ÛŒÙ… Ù…Ù‚ØµØ¯",
+DlgLnkPopWinName	: "Ù†Ø§Ù… Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ù¾Ø§Ù¾Ø§Ù¾",
+DlgLnkPopWinFeat	: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ù¾Ø§Ù¾Ø§Ù¾",
+DlgLnkPopResize		: "Ù‚Ø§Ø¨Ù„ ØªØºÛŒÛŒØ± Ø§Ù†Ø¯Ø§Ø²Ù‡",
+DlgLnkPopLocation	: "Ù†ÙˆØ§Ø± Ù…ÙˆÙ‚Ø¹ÛŒØª",
+DlgLnkPopMenu		: "Ù†ÙˆØ§Ø± Ù…Ù†Ùˆ",
+DlgLnkPopScroll		: "Ù…ÛŒÙ„Ù‡â€ŒÙ‡Ø§ÛŒ Ù¾ÛŒÙ…Ø§ÛŒØ´",
+DlgLnkPopStatus		: "Ù†ÙˆØ§Ø± ÙˆØ¶Ø¹ÛŒØª",
+DlgLnkPopToolbar	: "Ù†ÙˆØ§Ø±Ø§Ø¨Ø²Ø§Ø±",
+DlgLnkPopFullScrn	: "ØªÙ…Ø§Ù…â€ŒØµÙØ­Ù‡ (IE)",
+DlgLnkPopDependent	: "ÙˆØ§Ø¨Ø³ØªÙ‡ (Netscape)",
+DlgLnkPopWidth		: "Ù¾Ù‡Ù†Ø§",
+DlgLnkPopHeight		: "Ø¯Ø±Ø§Ø²Ø§",
+DlgLnkPopLeft		: "Ù…ÙˆÙ‚Ø¹ÛŒØª ÙÚ†Ù¾",
+DlgLnkPopTop		: "Ù…ÙˆÙ‚Ø¹ÛŒØª ÙØ¨Ø§Ù„Ø§",
+
+DlnLnkMsgNoUrl		: "Ù„Ø·ÙØ§ URL Ù¾ÛŒÙˆÙ†Ø¯ Ø±Ø§ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯",
+DlnLnkMsgNoEMail	: "Ù„Ø·ÙØ§ Ù†Ø´Ø§Ù†ÛŒ Ù¾Ø³Øª Ø§Ù„Ú©ØªØ±ÙˆÙ†ÛŒÚ©ÛŒ Ø±Ø§ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯",
+DlnLnkMsgNoAnchor	: "Ù„Ø·ÙØ§ Ù„Ù†Ú¯Ø±ÛŒ Ø±Ø§ Ø¨Ø±Ú¯Ø²ÛŒÙ†ÛŒØ¯",
+DlnLnkMsgInvPopName	: "Ù†Ø§Ù… Ù¾Ù†Ø¬Ø±Ù‡Ù´ Ù¾Ø§Ù¾Ø§Ù¾ Ø¨Ø§ÛŒØ¯ Ø¨Ø§ ÛŒÚ© Ù†ÙˆÛŒØ³Ù‡Ù´ Ø§Ù„ÙØ¨Ø§ÛŒÛŒ Ø¢ØºØ§Ø² Ú¯Ø±Ø¯Ø¯ Ùˆ Ù†Ø¨Ø§ÛŒØ¯ ÙØ§ØµÙ„Ù‡â€ŒÙ‡Ø§ÛŒ Ø®Ø§Ù„ÛŒ Ø¯Ø± Ø¢Ù† Ø¨Ø§Ø´Ù†Ø¯",
+
+// Color Dialog
+DlgColorTitle		: "Ú¯Ø²ÛŒÙ†Ø´ Ø±Ù†Ú¯",
+DlgColorBtnClear	: "Ù¾Ø§Ú©â€ŒÚ©Ø±Ø¯Ù†",
+DlgColorHighlight	: "Ù†Ù…ÙˆÙ†Ù‡",
+DlgColorSelected	: "Ø¨Ø±Ú¯Ø²ÛŒØ¯Ù‡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ú¯Ù†Ø¬Ø§Ù†Ø¯Ù† Ø®Ù†Ø¯Ø§Ù†Ú©",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ú¯Ø²ÛŒÙ†Ø´ Ù†ÙˆÛŒØ³Ù‡Ù´â€ŒÙˆÛŒÚ˜Ù‡",
+
+// Table Dialog
+DlgTableTitle		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø¬Ø¯ÙˆÙ„",
+DlgTableRows		: "Ø³Ø·Ø±Ù‡Ø§",
+DlgTableColumns		: "Ø³ØªÙˆÙ†Ù‡Ø§",
+DlgTableBorder		: "Ø§Ù†Ø¯Ø§Ø²Ù‡Ù´ Ù„Ø¨Ù‡",
+DlgTableAlign		: "Ú†ÛŒÙ†Ø´",
+DlgTableAlignNotSet	: "<ØªØ¹ÛŒÙ†â€ŒÙ†Ø´Ø¯Ù‡>",
+DlgTableAlignLeft	: "Ú†Ù¾",
+DlgTableAlignCenter	: "ÙˆØ³Ø·",
+DlgTableAlignRight	: "Ø±Ø§Ø³Øª",
+DlgTableWidth		: "Ù¾Ù‡Ù†Ø§",
+DlgTableWidthPx		: "Ù¾ÛŒÚ©Ø³Ù„",
+DlgTableWidthPc		: "Ø¯Ø±ØµØ¯",
+DlgTableHeight		: "Ø¯Ø±Ø§Ø²Ø§",
+DlgTableCellSpace	: "ÙØ§ØµÙ„Ù‡Ù´ Ù…ÛŒØ§Ù† Ø³Ù„ÙˆÙ„Ù‡Ø§",
+DlgTableCellPad		: "ÙØ§ØµÙ„Ù‡Ù´ Ù¾Ø±Ø´Ø¯Ù‡ Ø¯Ø± Ø³Ù„ÙˆÙ„",
+DlgTableCaption		: "Ø¹Ù†ÙˆØ§Ù†",
+DlgTableSummary		: "Ø®Ù„Ø§ØµÙ‡",
+
+// Table Cell Dialog
+DlgCellTitle		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø³Ù„ÙˆÙ„",
+DlgCellWidth		: "Ù¾Ù‡Ù†Ø§",
+DlgCellWidthPx		: "Ù¾ÛŒÚ©Ø³Ù„",
+DlgCellWidthPc		: "Ø¯Ø±ØµØ¯",
+DlgCellHeight		: "Ø¯Ø±Ø§Ø²Ø§",
+DlgCellWordWrap		: "Ø´Ú©Ø³ØªÙ† ÙˆØ§Ú˜Ù‡â€ŒÙ‡Ø§",
+DlgCellWordWrapNotSet	: "<ØªØ¹ÛŒÙ†â€ŒÙ†Ø´Ø¯Ù‡>",
+DlgCellWordWrapYes	: "Ø¨Ù„Ù‡",
+DlgCellWordWrapNo	: "Ø®ÛŒØ±",
+DlgCellHorAlign		: "Ú†ÛŒÙ†Ø´ ÙØ§ÙÙ‚ÛŒ",
+DlgCellHorAlignNotSet	: "<ØªØ¹ÛŒÙ†â€ŒÙ†Ø´Ø¯Ù‡>",
+DlgCellHorAlignLeft	: "Ú†Ù¾",
+DlgCellHorAlignCenter	: "ÙˆØ³Ø·",
+DlgCellHorAlignRight: "Ø±Ø§Ø³Øª",
+DlgCellVerAlign		: "Ú†ÛŒÙ†Ø´ ÙØ¹Ù…ÙˆØ¯ÛŒ",
+DlgCellVerAlignNotSet	: "<ØªØ¹ÛŒÙ†â€ŒÙ†Ø´Ø¯Ù‡>",
+DlgCellVerAlignTop	: "Ø¨Ø§Ù„Ø§",
+DlgCellVerAlignMiddle	: "Ù…ÛŒØ§Ù†",
+DlgCellVerAlignBottom	: "Ù¾Ø§Ø¦ÛŒÙ†",
+DlgCellVerAlignBaseline	: "Ø®Ø·â€ŒÙ¾Ø§ÛŒÙ‡",
+DlgCellRowSpan		: "Ú¯Ø³ØªØ±Ø¯Ú¯ÛŒ Ø³Ø·Ø±Ù‡Ø§",
+DlgCellCollSpan		: "Ú¯Ø³ØªØ±Ø¯Ú¯ÛŒ Ø³ØªÙˆÙ†Ù‡Ø§",
+DlgCellBackColor	: "Ø±Ù†Ú¯ Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡",
+DlgCellBorderColor	: "Ø±Ù†Ú¯ Ù„Ø¨Ù‡",
+DlgCellBtnSelect	: "Ø¨Ø±Ú¯Ø²ÛŒÙ†ÛŒØ¯...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "ÛŒØ§ÙØªÙ†",
+DlgFindFindBtn		: "ÛŒØ§ÙØªÙ†",
+DlgFindNotFoundMsg	: "Ù…ØªÙ† Ù…ÙˆØ±Ø¯Ù†Ø¸Ø± ÛŒØ§ÙØª Ù†Ø´Ø¯.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ",
+DlgReplaceFindLbl		: "Ú†Ù‡â€ŒÚ†ÛŒØ² Ø±Ø§ Ù…ÛŒâ€ŒÛŒØ§Ø¨ÛŒØ¯:",
+DlgReplaceReplaceLbl	: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ Ø¨Ø§:",
+DlgReplaceCaseChk		: "Ù‡Ù…Ø³Ø§Ù†ÛŒ Ø¯Ø± Ø¨Ø²Ø±Ú¯ÛŒ Ùˆ Ú©ÙˆÚ†Ú©ÛŒ Ù†ÙˆÛŒØ³Ù‡â€ŒÙ‡Ø§",
+DlgReplaceReplaceBtn	: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ",
+DlgReplaceReplAllBtn	: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ Ù‡Ù…Ù‡Ù´ ÛŒØ§ÙØªÙ‡â€ŒÙ‡Ø§",
+DlgReplaceWordChk		: "Ù‡Ù…Ø³Ø§Ù†ÛŒ Ø¨Ø§ ÙˆØ§Ú˜Ù‡Ù´ Ú©Ø§Ù…Ù„",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ØªÙ†Ø¸ÛŒÙ…Ø§Øª Ø§Ù…Ù†ÛŒØªÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ø´Ù…Ø§ Ø§Ø¬Ø§Ø²Ù‡ Ù†Ù…ÛŒâ€ŒØ¯Ù‡Ø¯ Ú©Ù‡ ÙˆÛŒØ±Ø§ÛŒØ´Ú¯Ø± Ø¨Ù‡ Ø·ÙˆØ± Ø®ÙˆØ¯Ú©Ø§Ø± Ø¹Ù…Ù„Ú©Ø±Ø¯Ù‡Ø§ÛŒ Ø¨Ø±Ø´ Ø±Ø§ Ø§Ù†Ø¬Ø§Ù… Ø¯Ù‡Ø¯. Ù„Ø·ÙØ§ Ø¨Ø§ Ø¯Ú©Ù…Ù‡â€ŒÙ‡Ø§ÛŒ ØµÙØ­Ù‡â€ŒÚ©Ù„ÛŒØ¯ Ø§ÛŒÙ† Ú©Ø§Ø± Ø±Ø§ Ø§Ù†Ø¬Ø§Ù… Ø¯Ù‡ÛŒØ¯ (Ctrl+X).",
+PasteErrorCopy	: "ØªÙ†Ø¸ÛŒÙ…Ø§Øª Ø§Ù…Ù†ÛŒØªÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ø´Ù…Ø§ Ø§Ø¬Ø§Ø²Ù‡ Ù†Ù…ÛŒâ€ŒØ¯Ù‡Ø¯ Ú©Ù‡ ÙˆÛŒØ±Ø§ÛŒØ´Ú¯Ø± Ø¨Ù‡ Ø·ÙˆØ± Ø®ÙˆØ¯Ú©Ø§Ø± Ø¹Ù…Ù„Ú©Ø±Ø¯Ù‡Ø§ÛŒ Ú©Ù¾ÛŒâ€ŒÚ©Ø±Ø¯Ù† Ø±Ø§ Ø§Ù†Ø¬Ø§Ù… Ø¯Ù‡Ø¯. Ù„Ø·ÙØ§ Ø¨Ø§ Ø¯Ú©Ù…Ù‡â€ŒÙ‡Ø§ÛŒ ØµÙØ­Ù‡â€ŒÚ©Ù„ÛŒØ¯ Ø§ÛŒÙ† Ú©Ø§Ø± Ø±Ø§ Ø§Ù†Ø¬Ø§Ù… Ø¯Ù‡ÛŒØ¯ (Ctrl+C).",
+
+PasteAsText		: "Ú†Ø³Ø¨Ø§Ù†Ø¯Ù† Ø¨Ù‡ Ø¹Ù†ÙˆØ§Ù† Ù…ØªÙ† ÙØ³Ø§Ø¯Ù‡",
+PasteFromWord	: "Ú†Ø³Ø¨Ø§Ù†Ø¯Ù† Ø§Ø² Word",
+
+DlgPasteMsg2	: "Ù„Ø·ÙØ§ Ù…ØªÙ† Ø±Ø§ Ø¨Ø§ Ú©Ù„ÛŒØ¯Ù‡Ø§ÛŒ (<STRONG>Ctrl+V</STRONG>) Ø¯Ø± Ø§ÛŒÙ† Ø¬Ø¹Ø¨Ù‡Ù´ Ù…ØªÙ†ÛŒ Ø¨Ú†Ø³Ø¨Ø§Ù†ÛŒØ¯ Ùˆ <STRONG>Ù¾Ø°ÛŒØ±Ø´</STRONG> Ø±Ø§ Ø¨Ø²Ù†ÛŒØ¯.",
+DlgPasteSec		: "Ø¨Ù‡ Ø®Ø§Ø·Ø± ØªÙ†Ø¸ÛŒÙ…Ø§Øª Ø§Ù…Ù†ÛŒØªÛŒ Ù…Ø±ÙˆØ±Ú¯Ø± Ø´Ù…Ø§ØŒ ÙˆÛŒØ±Ø§ÛŒØ´Ú¯Ø± Ù†Ù…ÛŒâ€ŒØªÙˆØ§Ù†Ø¯ Ø¯Ø³ØªØ±Ø³ÛŒ Ù…Ø³ØªÙ‚ÛŒÙ… Ø¨Ù‡ Ø¯Ø§Ø¯Ù‡â€ŒÙ‡Ø§ÛŒ clipboard Ø¯Ø§Ø´ØªÙ‡ Ø¨Ø§Ø´Ø¯. Ø´Ù…Ø§ Ø¨Ø§ÛŒØ¯ Ø¯ÙˆØ¨Ø§Ø±Ù‡ Ø¢Ù†Ø±Ø§ Ø¯Ø± Ø§ÛŒÙ† Ù¾Ù†Ø¬Ø±Ù‡ Ø¨Ú†Ø³Ø¨Ø§Ù†ÛŒØ¯.",
+DlgPasteIgnoreFont		: "Ú†Ø´Ù…â€ŒÙ¾ÙˆØ´ÛŒ Ø§Ø² ØªØ¹Ø§Ø±ÛŒÙ Ù†ÙˆØ¹ Ù‚Ù„Ù…",
+DlgPasteRemoveStyles	: "Ú†Ø´Ù…â€ŒÙ¾ÙˆØ´ÛŒ Ø§Ø² ØªØ¹Ø§Ø±ÛŒÙ Ø³Ø¨Ú© (style)",
+
+// Color Picker
+ColorAutomatic	: "Ø®ÙˆØ¯Ú©Ø§Ø±",
+ColorMoreColors	: "Ø±Ù†Ú¯Ù‡Ø§ÛŒ Ø¨ÛŒØ´ØªØ±...",
+
+// Document Properties
+DocProps		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ø³Ù†Ø¯",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ Ù„Ù†Ú¯Ø±",
+DlgAnchorName		: "Ù†Ø§Ù… Ù„Ù†Ú¯Ø±",
+DlgAnchorErrorName	: "Ù„Ø·ÙØ§ Ù†Ø§Ù… Ù„Ù†Ú¯Ø± Ø±Ø§ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ø¯Ø± ÙˆØ§Ú˜Ù‡â€ŒÙ†Ø§Ù…Ù‡ ÛŒØ§ÙØª Ù†Ø´Ø¯",
+DlgSpellChangeTo		: "ØªØºÛŒÛŒØ± Ø¨Ù‡",
+DlgSpellBtnIgnore		: "Ú†Ø´Ù…â€ŒÙ¾ÙˆØ´ÛŒ",
+DlgSpellBtnIgnoreAll	: "Ú†Ø´Ù…â€ŒÙ¾ÙˆØ´ÛŒ Ù‡Ù…Ù‡",
+DlgSpellBtnReplace		: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ",
+DlgSpellBtnReplaceAll	: "Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ†ÛŒ Ù‡Ù…Ù‡",
+DlgSpellBtnUndo			: "ÙˆØ§Ú†ÛŒÙ†Ø´",
+DlgSpellNoSuggestions	: "- Ù¾ÛŒØ´Ù†Ù‡Ø§Ø¯ÛŒ Ù†ÛŒØ³Øª -",
+DlgSpellProgress		: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§ Ø¯Ø± Ø­Ø§Ù„ Ø§Ù†Ø¬Ø§Ù…...",
+DlgSpellNoMispell		: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§ Ø§Ù†Ø¬Ø§Ù… Ø´Ø¯. Ù‡ÛŒÚ† ØºÙ„Ø·â€ŒØ§Ù…Ù„Ø§Ø¦ÛŒ ÛŒØ§ÙØª Ù†Ø´Ø¯",
+DlgSpellNoChanges		: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§ Ø§Ù†Ø¬Ø§Ù… Ø´Ø¯. Ù‡ÛŒÚ† ÙˆØ§Ú˜Ù‡â€ŒØ§ÛŒ ØªØºÛŒÛŒØ± Ù†ÛŒØ§ÙØª",
+DlgSpellOneChange		: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§ Ø§Ù†Ø¬Ø§Ù… Ø´Ø¯. ÛŒÚ© ÙˆØ§Ú˜Ù‡ ØªØºÛŒÛŒØ± ÛŒØ§ÙØª",
+DlgSpellManyChanges		: "Ø¨Ø±Ø±Ø³ÛŒ Ø§Ù…Ù„Ø§ Ø§Ù†Ø¬Ø§Ù… Ø´Ø¯. %1 ÙˆØ§Ú˜Ù‡ ØªØºÛŒÛŒØ± ÛŒØ§ÙØª",
+
+IeSpellDownload			: "Ø¨Ø±Ø±Ø³ÛŒâ€ŒÚ©Ù†Ù†Ø¯Ù‡Ù´ Ø§Ù…Ù„Ø§ Ù†ØµØ¨ Ù†Ø´Ø¯Ù‡ Ø§Ø³Øª. Ø¢ÛŒØ§ Ù…ÛŒâ€ŒØ®ÙˆØ§Ù‡ÛŒØ¯ Ø¢Ù† Ø±Ø§ Ù‡Ù…â€ŒØ§Ú©Ù†ÙˆÙ† Ø¯Ø±ÛŒØ§ÙØª Ú©Ù†ÛŒØ¯ØŸ",
+
+// Button Dialog
+DlgButtonText		: "Ù…ØªÙ† (Ù…Ù‚Ø¯Ø§Ø±)",
+DlgButtonType		: "Ù†ÙˆØ¹",
+DlgButtonTypeBtn	: "Ø¯Ú©Ù…Ù‡",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Ø¨Ø§Ø²Ù†Ø´Ø§Ù†ÛŒ (Reset)",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ù†Ø§Ù…",
+DlgCheckboxValue	: "Ù…Ù‚Ø¯Ø§Ø±",
+DlgCheckboxSelected	: "Ø¨Ø±Ú¯Ø²ÛŒØ¯Ù‡",
+
+// Form Dialog
+DlgFormName		: "Ù†Ø§Ù…",
+DlgFormAction	: "Ø±ÙˆÛŒØ¯Ø§Ø¯",
+DlgFormMethod	: "Ù…ØªØ¯",
+
+// Select Field Dialog
+DlgSelectName		: "Ù†Ø§Ù…",
+DlgSelectValue		: "Ù…Ù‚Ø¯Ø§Ø±",
+DlgSelectSize		: "Ø§Ù†Ø¯Ø§Ø²Ù‡",
+DlgSelectLines		: "Ø®Ø·ÙˆØ·",
+DlgSelectChkMulti	: "Ú¯Ø²ÛŒÙ†Ø´ Ú†Ù†Ø¯Ú¯Ø§Ù†Ù‡ ÙØ±Ø§Ù‡Ù… Ø¨Ø§Ø´Ø¯",
+DlgSelectOpAvail	: "Ú¯Ø²ÛŒÙ†Ù‡â€ŒÙ‡Ø§ÛŒ Ø¯Ø±Ø¯Ø³ØªØ±Ø³",
+DlgSelectOpText		: "Ù…ØªÙ†",
+DlgSelectOpValue	: "Ù…Ù‚Ø¯Ø§Ø±",
+DlgSelectBtnAdd		: "Ø§ÙØ²ÙˆØ¯Ù†",
+DlgSelectBtnModify	: "ÙˆÛŒØ±Ø§ÛŒØ´",
+DlgSelectBtnUp		: "Ø¨Ø§Ù„Ø§",
+DlgSelectBtnDown	: "Ù¾Ø§Ø¦ÛŒÙ†",
+DlgSelectBtnSetValue : "ØªÙ†Ø¸ÛŒÙ… Ø¨Ù‡ Ø¹Ù†ÙˆØ§Ù† Ù…Ù‚Ø¯Ø§Ø± ÙØ¨Ø±Ú¯Ø²ÛŒØ¯Ù‡",
+DlgSelectBtnDelete	: "Ù¾Ø§Ú©â€ŒÚ©Ø±Ø¯Ù†",
+
+// Textarea Dialog
+DlgTextareaName	: "Ù†Ø§Ù…",
+DlgTextareaCols	: "Ø³ØªÙˆÙ†Ù‡Ø§",
+DlgTextareaRows	: "Ø³Ø·Ø±Ù‡Ø§",
+
+// Text Field Dialog
+DlgTextName			: "Ù†Ø§Ù…",
+DlgTextValue		: "Ù…Ù‚Ø¯Ø§Ø±",
+DlgTextCharWidth	: "Ù¾Ù‡Ù†Ø§ÛŒ Ù†ÙˆÛŒØ³Ù‡",
+DlgTextMaxChars		: "Ø¨ÛŒØ´ÛŒÙ†Ù‡Ù´ Ù†ÙˆÛŒØ³Ù‡â€ŒÙ‡Ø§",
+DlgTextType			: "Ù†ÙˆØ¹",
+DlgTextTypeText		: "Ù…ØªÙ†",
+DlgTextTypePass		: "Ú¯Ø°Ø±ÙˆØ§Ú˜Ù‡",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ù†Ø§Ù…",
+DlgHiddenValue	: "Ù…Ù‚Ø¯Ø§Ø±",
+
+// Bulleted List Dialog
+BulletedListProp	: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙÙ‡Ø±Ø³Øª Ù†Ù‚Ø·Ù‡â€ŒØ§ÛŒ",
+NumberedListProp	: "ÙˆÛŒÚ˜Ú¯ÛŒÙ‡Ø§ÛŒ ÙÙ‡Ø±Ø³Øª Ø´Ù…Ø§Ø±Ù‡â€ŒØ¯Ø§Ø±",
+DlgLstStart			: "Ø¢ØºØ§Ø²",
+DlgLstType			: "Ù†ÙˆØ¹",
+DlgLstTypeCircle	: "Ø¯Ø§ÛŒØ±Ù‡",
+DlgLstTypeDisc		: "Ù‚Ø±Øµ",
+DlgLstTypeSquare	: "Ú†Ù‡Ø§Ø±Ú¯ÙˆØ´",
+DlgLstTypeNumbers	: "Ø´Ù…Ø§Ø±Ù‡â€ŒÙ‡Ø§ (1ØŒ 2ØŒ 3)",
+DlgLstTypeLCase		: "Ù†ÙˆÛŒØ³Ù‡â€ŒÙ‡Ø§ÛŒ Ú©ÙˆÚ†Ú© (aØŒ bØŒ c)",
+DlgLstTypeUCase		: "Ù†ÙˆÛŒØ³Ù‡â€ŒÙ‡Ø§ÛŒ Ø¨Ø²Ø±Ú¯ (AØŒ BØŒ C)",
+DlgLstTypeSRoman	: "Ø´Ù…Ø§Ø±Ú¯Ø§Ù† Ø±ÙˆÙ…ÛŒ Ú©ÙˆÚ†Ú© (iØŒ iiØŒ iii)",
+DlgLstTypeLRoman	: "Ø´Ù…Ø§Ø±Ú¯Ø§Ù† Ø±ÙˆÙ…ÛŒ Ø¨Ø²Ø±Ú¯ (IØŒ IIØŒ III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ø¹Ù…ÙˆÙ…ÛŒ",
+DlgDocBackTab		: "Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡",
+DlgDocColorsTab		: "Ø±Ù†Ú¯Ù‡Ø§ Ùˆ Ø­Ø§Ø´ÛŒÙ‡â€ŒÙ‡Ø§",
+DlgDocMetaTab		: "ÙØ±Ø§Ø¯Ø§Ø¯Ù‡",
+
+DlgDocPageTitle		: "Ø¹Ù†ÙˆØ§Ù† ØµÙØ­Ù‡",
+DlgDocLangDir		: "Ø¬Ù‡Øª Ø²Ø¨Ø§Ù†",
+DlgDocLangDirLTR	: "Ú†Ù¾ Ø¨Ù‡ Ø±Ø§Ø³Øª (LTR(",
+DlgDocLangDirRTL	: "Ø±Ø§Ø³Øª Ø¨Ù‡ Ú†Ù¾ (RTL(",
+DlgDocLangCode		: "Ú©Ø¯ Ø²Ø¨Ø§Ù†",
+DlgDocCharSet		: "Ø±Ù…Ø²Ú¯Ø°Ø§Ø±ÛŒ Ù†ÙˆÛŒØ³Ù‡â€ŒÚ¯Ø§Ù†",
+DlgDocCharSetCE		: "Ø§Ø±ÙˆÙ¾Ø§ÛŒ Ù…Ø±Ú©Ø²ÛŒ",
+DlgDocCharSetCT		: "Ú†ÛŒÙ†ÛŒ Ø±Ø³Ù…ÛŒ (Big5)",
+DlgDocCharSetCR		: "Ø³ÛŒØ±ÛŒÙ„ÛŒÚ©",
+DlgDocCharSetGR		: "ÛŒÙˆÙ†Ø§Ù†ÛŒ",
+DlgDocCharSetJP		: "Ú˜Ø§Ù¾Ù†ÛŒ",
+DlgDocCharSetKR		: "Ú©Ø±Ù‡â€ŒØ§ÛŒ",
+DlgDocCharSetTR		: "ØªØ±Ú©ÛŒ",
+DlgDocCharSetUN		: "ÛŒÙˆÙ†ÛŒÚ©ÙØ¯ (UTF-8)",
+DlgDocCharSetWE		: "Ø§Ø±ÙˆÙ¾Ø§ÛŒ ØºØ±Ø¨ÛŒ",
+DlgDocCharSetOther	: "Ø±Ù…Ø²Ú¯Ø°Ø§Ø±ÛŒ Ù†ÙˆÛŒØ³Ù‡â€ŒÚ¯Ø§Ù† Ø¯ÛŒÚ¯Ø±",
+
+DlgDocDocType		: "Ø¹Ù†ÙˆØ§Ù† Ù†ÙˆØ¹ Ø³Ù†Ø¯",
+DlgDocDocTypeOther	: "Ø¹Ù†ÙˆØ§Ù† Ù†ÙˆØ¹ Ø³Ù†Ø¯ Ø¯ÛŒÚ¯Ø±",
+DlgDocIncXHTML		: "Ø´Ø§Ù…Ù„ ØªØ¹Ø§Ø±ÛŒÙ XHTML",
+DlgDocBgColor		: "Ø±Ù†Ú¯ Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡",
+DlgDocBgImage		: "URL ØªØµÙˆÛŒØ± Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡",
+DlgDocBgNoScroll	: "Ù¾Ø³â€ŒØ²Ù…ÛŒÙ†Ù‡Ù´ Ù¾ÛŒÙ…Ø§ÛŒØ´â€ŒÙ†Ø§Ù¾Ø°ÛŒØ±",
+DlgDocCText			: "Ù…ØªÙ†",
+DlgDocCLink			: "Ù¾ÛŒÙˆÙ†Ø¯",
+DlgDocCVisited		: "Ù¾ÛŒÙˆÙ†Ø¯ Ù…Ø´Ø§Ù‡Ø¯Ù‡â€ŒØ´Ø¯Ù‡",
+DlgDocCActive		: "Ù¾ÛŒÙˆÙ†Ø¯ ÙØ¹Ø§Ù„",
+DlgDocMargins		: "Ø­Ø§Ø´ÛŒÙ‡â€ŒÙ‡Ø§ÛŒ ØµÙØ­Ù‡",
+DlgDocMaTop			: "Ø¨Ø§Ù„Ø§",
+DlgDocMaLeft		: "Ú†Ù¾",
+DlgDocMaRight		: "Ø±Ø§Ø³Øª",
+DlgDocMaBottom		: "Ù¾Ø§ÛŒÛŒÙ†",
+DlgDocMeIndex		: "Ú©Ù„ÛŒØ¯ÙˆØ§Ú˜Ú¯Ø§Ù† Ù†Ù…Ø§ÛŒÙ‡â€ŒÚ¯Ø°Ø§Ø±ÛŒ Ø³Ù†Ø¯ (Ø¨Ø§ Ú©Ø§Ù…Ø§ Ø¬Ø¯Ø§ Ø´ÙˆÙ†Ø¯)",
+DlgDocMeDescr		: "ØªÙˆØµÛŒÙ Ø³Ù†Ø¯",
+DlgDocMeAuthor		: "Ù†ÙˆÛŒØ³Ù†Ø¯Ù‡",
+DlgDocMeCopy		: "Ú©Ù¾ÛŒâ€ŒØ±Ø§ÛŒØª",
+DlgDocPreview		: "Ù¾ÛŒØ´â€ŒÙ†Ù…Ø§ÛŒØ´",
+
+// Templates Dialog
+Templates			: "Ø§Ù„Ú¯ÙˆÙ‡Ø§",
+DlgTemplatesTitle	: "Ø§Ù„Ú¯ÙˆÙ‡Ø§ÛŒ Ù…Ø­ØªÙˆÛŒØ§Øª",
+DlgTemplatesSelMsg	: "Ù„Ø·ÙØ§ Ø§Ù„Ú¯ÙˆÛŒ Ù…ÙˆØ±Ø¯Ù†Ø¸Ø± Ø±Ø§ Ø¨Ø±Ø§ÛŒ Ø¨Ø§Ø²Ú©Ø±Ø¯Ù† Ø¯Ø± ÙˆÛŒØ±Ø§ÛŒØ´Ú¯Ø± Ø¨Ø±Ú¯Ø²ÛŒÙ†ÛŒØ¯<br>(Ù…Ø­ØªÙˆÛŒØ§Øª Ú©Ù†ÙˆÙ†ÛŒ Ø§Ø² Ø¯Ø³Øª Ø®ÙˆØ§Ù‡Ù†Ø¯ Ø±ÙØª):",
+DlgTemplatesLoading	: "Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±ÛŒ ÙÙ‡Ø±Ø³Øª Ø§Ù„Ú¯ÙˆÙ‡Ø§. Ù„Ø·ÙØ§ ØµØ¨Ø± Ú©Ù†ÛŒØ¯...",
+DlgTemplatesNoTpl	: "(Ø§Ù„Ú¯ÙˆØ¦ÛŒ ØªØ¹Ø±ÛŒÙ Ù†Ø´Ø¯Ù‡ Ø§Ø³Øª)",
+DlgTemplatesReplace	: "Ù…Ø­ØªÙˆÛŒØ§Øª Ú©Ù†ÙˆÙ†ÛŒ Ø¬Ø§ÛŒÚ¯Ø²ÛŒÙ† Ø´ÙˆÙ†Ø¯",
+
+// About Dialog
+DlgAboutAboutTab	: "Ø¯Ø±Ø¨Ø§Ø±Ù‡",
+DlgAboutBrowserInfoTab	: "Ø§Ø·Ù„Ø§Ø¹Ø§Øª Ù…Ø±ÙˆØ±Ú¯Ø±",
+DlgAboutLicenseTab	: "Ú¯ÙˆØ§Ù‡ÛŒÙ†Ø§Ù…Ù‡",
+DlgAboutVersion		: "Ù†Ú¯Ø§Ø±Ø´",
+DlgAboutInfo		: "Ø¨Ø±Ø§ÛŒ Ø¢Ú¯Ø§Ù‡ÛŒ Ø¨ÛŒØ´ØªØ± Ø¨Ù‡ Ø§ÛŒÙ† Ù†Ø´Ø§Ù†ÛŒ Ø¨Ø±ÙˆÛŒØ¯"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bg.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bg.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/bg.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bulgarian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ð¡ÐºÑ€Ð¸Ð¹ Ð¿Ð°Ð½ÐµÐ»Ð° Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¸Ñ‚Ðµ",
+ToolbarExpand		: "ÐŸÐ¾ÐºÐ°Ð¶Ð¸ Ð¿Ð°Ð½ÐµÐ»Ð° Ñ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð¸Ñ‚Ðµ",
+
+// Toolbar Items and Context Menu
+Save				: "Ð—Ð°Ð¿Ð°Ð·Ð¸",
+NewPage				: "ÐÐ¾Ð²Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°",
+Preview				: "ÐŸÑ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÐµÐ½ Ð¸Ð·Ð³Ð»ÐµÐ´",
+Cut					: "Ð˜Ð·Ñ€ÐµÐ¶Ð¸",
+Copy				: "Ð—Ð°Ð¿Ð°Ð¼ÐµÑ‚Ð¸",
+Paste				: "Ð’Ð¼ÑŠÐºÐ½Ð¸",
+PasteText			: "Ð’Ð¼ÑŠÐºÐ½Ð¸ ÑÐ°Ð¼Ð¾ Ñ‚ÐµÐºÑÑ‚",
+PasteWord			: "Ð’Ð¼ÑŠÐºÐ½Ð¸ Ð¾Ñ‚ MS Word",
+Print				: "ÐŸÐµÑ‡Ð°Ñ‚",
+SelectAll			: "Ð¡ÐµÐ»ÐµÐºÑ‚Ð¸Ñ€Ð°Ð¹ Ð²ÑÐ¸Ñ‡ÐºÐ¾",
+RemoveFormat		: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾",
+InsertLinkLbl		: "Ð’Ñ€ÑŠÐ·ÐºÐ°",
+InsertLink			: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð¹ Ð²Ñ€ÑŠÐ·ÐºÐ°",
+RemoveLink			: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ð²Ñ€ÑŠÐ·ÐºÐ°",
+Anchor				: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð¹ ÐºÐ¾Ñ‚Ð²Ð°",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+InsertImage			: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð¹ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ð°Ð¹ Flash Ð¾Ð±ÐµÐºÑ‚",
+InsertTableLbl		: "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ð°",
+InsertTable			: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð¹ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°",
+InsertLineLbl		: "Ð›Ð¸Ð½Ð¸Ñ",
+InsertLine			: "Ð’Ð¼ÑŠÐºÐ½Ð¸ Ñ…Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»Ð½Ð° Ð»Ð¸Ð½Ð¸Ñ",
+InsertSpecialCharLbl: "Ð¡Ð¿ÐµÑ†Ð¸Ð°Ð»ÐµÐ½ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSpecialChar	: "Ð’Ð¼ÑŠÐºÐ½Ð¸ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÐµÐ½ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+InsertSmileyLbl		: "Ð£ÑÐ¼Ð¸Ð²ÐºÐ°",
+InsertSmiley		: "Ð”Ð¾Ð±Ð°Ð²Ð¸ ÑƒÑÐ¼Ð¸Ð²ÐºÐ°",
+About				: "Ð—Ð° FCKeditor",
+Bold				: "Ð£Ð´ÐµÐ±ÐµÐ»ÐµÐ½",
+Italic				: "ÐšÑƒÑ€ÑÐ¸Ð²",
+Underline			: "ÐŸÐ¾Ð´Ñ‡ÐµÑ€Ñ‚Ð°Ð½",
+StrikeThrough		: "Ð—Ð°Ñ‡ÐµÑ€Ñ‚Ð°Ð½",
+Subscript			: "Ð˜Ð½Ð´ÐµÐºÑ Ð·Ð° Ð±Ð°Ð·Ð°",
+Superscript			: "Ð˜Ð½Ð´ÐµÐºÑ Ð·Ð° ÑÑ‚ÐµÐ¿ÐµÐ½",
+LeftJustify			: "ÐŸÐ¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ Ð² Ð»ÑÐ²Ð¾",
+CenterJustify		: "ÐŸÐ¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð½Ðµ Ð² ÑÑ€ÐµÐ´Ð°Ñ‚Ð°",
+RightJustify		: "ÐŸÐ¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ Ð² Ð´ÑÑÐ½Ð¾",
+BlockJustify		: "Ð”Ð²ÑƒÑÑ‚Ñ€Ð°Ð½Ð½Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ",
+DecreaseIndent		: "ÐÐ°Ð¼Ð°Ð»Ð¸ Ð¾Ñ‚ÑÑ‚ÑŠÐ¿Ð°",
+IncreaseIndent		: "Ð£Ð²ÐµÐ»Ð¸Ñ‡Ð¸ Ð¾Ñ‚ÑÑ‚ÑŠÐ¿Ð°",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "ÐžÑ‚Ð¼ÐµÐ½Ð¸",
+Redo				: "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð¸",
+NumberedListLbl		: "ÐÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½ ÑÐ¿Ð¸ÑÑŠÐº",
+NumberedList		: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ð½ÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½ ÑÐ¿Ð¸ÑÑŠÐº",
+BulletedListLbl		: "ÐÐµÐ½ÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½ ÑÐ¿Ð¸ÑÑŠÐº",
+BulletedList		: "Ð”Ð¾Ð±Ð°Ð²Ð¸/Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ð½ÐµÐ½ÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½ ÑÐ¿Ð¸ÑÑŠÐº",
+ShowTableBorders	: "ÐŸÐ¾ÐºÐ°Ð¶Ð¸ Ñ€Ð°Ð¼ÐºÐ¸Ñ‚Ðµ Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°Ñ‚Ð°",
+ShowDetails			: "ÐŸÐ¾ÐºÐ°Ð¶Ð¸ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾ÑÑ‚Ð¸",
+Style				: "Ð¡Ñ‚Ð¸Ð»",
+FontFormat			: "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚",
+Font				: "Ð¨Ñ€Ð¸Ñ„Ñ‚",
+FontSize			: "Ð Ð°Ð·Ð¼ÐµÑ€",
+TextColor			: "Ð¦Ð²ÑÑ‚ Ð½Ð° Ñ‚ÐµÐºÑÑ‚Ð°",
+BGColor				: "Ð¦Ð²ÑÑ‚ Ð½Ð° Ñ„Ð¾Ð½Ð°",
+Source				: "ÐšÐ¾Ð´",
+Find				: "Ð¢ÑŠÑ€ÑÐ¸",
+Replace				: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸",
+SpellCheck			: "ÐŸÑ€Ð¾Ð²ÐµÑ€Ð¸ Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸ÑÐ°",
+UniversalKeyboard	: "Ð£Ð½Ð¸Ð²ÐµÑ€ÑÐ°Ð»Ð½Ð° ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°",
+PageBreakLbl		: "ÐÐ¾Ð² Ñ€ÐµÐ´",
+PageBreak			: "Ð’Ð¼ÑŠÐºÐ½Ð¸ Ð½Ð¾Ð² Ñ€ÐµÐ´",
+
+Form			: "Ð¤Ð¾Ñ€Ð¼ÑƒÐ»ÑÑ€",
+Checkbox		: "ÐŸÐ¾Ð»Ðµ Ð·Ð° Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ°",
+RadioButton		: "ÐŸÐ¾Ð»Ðµ Ð·Ð° Ð¾Ð¿Ñ†Ð¸Ñ",
+TextField		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ð¾ Ð¿Ð¾Ð»Ðµ",
+Textarea		: "Ð¢ÐµÐºÑÑ‚Ð¾Ð²Ð° Ð¾Ð±Ð»Ð°ÑÑ‚",
+HiddenField		: "Ð¡ÐºÑ€Ð¸Ñ‚Ð¾ Ð¿Ð¾Ð»Ðµ",
+Button			: "Ð‘ÑƒÑ‚Ð¾Ð½",
+SelectionField	: "ÐŸÐ°Ð´Ð°Ñ‰Ð¾ Ð¼ÐµÐ½ÑŽ Ñ Ð¾Ð¿Ñ†Ð¸Ð¸",
+ImageButton		: "Ð‘ÑƒÑ‚Ð¾Ð½-Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Ð ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð¹ Ð²Ñ€ÑŠÐ·ÐºÐ°",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ñ€ÐµÐ´Ð¾Ð²ÐµÑ‚Ðµ",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ ÐºÐ¾Ð»Ð¾Ð½Ð¸Ñ‚Ðµ",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ ÐºÐ»ÐµÑ‚ÐºÐ¸Ñ‚Ðµ",
+MergeCells			: "ÐžÐ±ÐµÐ´Ð¸Ð½Ð¸ ÐºÐ»ÐµÑ‚ÐºÐ¸Ñ‚Ðµ",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°Ñ‚Ð°",
+CellProperties		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° ÐºÐ»ÐµÑ‚ÐºÐ°Ñ‚Ð°",
+TableProperties		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°Ñ‚Ð°",
+ImageProperties		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾",
+FlashProperties		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Flash Ð¾Ð±ÐµÐºÑ‚Ð°",
+
+AnchorProp			: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° ÐºÐ¾Ñ‚Ð²Ð°Ñ‚Ð°",
+ButtonProp			: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð±ÑƒÑ‚Ð¾Ð½Ð°",
+CheckboxProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð¿Ð¾Ð»ÐµÑ‚Ð¾ Ð·Ð° Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ°",
+HiddenFieldProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° ÑÐºÑ€Ð¸Ñ‚Ð¾Ñ‚Ð¾ Ð¿Ð¾Ð»Ðµ",
+RadioButtonProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð¿Ð¾Ð»ÐµÑ‚Ð¾ Ð·Ð° Ð¾Ð¿Ñ†Ð¸Ñ",
+ImageButtonProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð±ÑƒÑ‚Ð¾Ð½Ð°-Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+TextFieldProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð¾Ñ‚Ð¾-Ð¿Ð¾Ð»Ðµ",
+SelectionFieldProp	: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð¿Ð°Ð´Ð°Ñ‰Ð¾Ñ‚Ð¾ Ð¼ÐµÐ½ÑŽ Ñ Ð¾Ð¿Ñ†Ð¸Ð¸",
+TextareaProp		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ñ‚ÐµÐºÑÑ‚Ð¾Ð²Ð°Ñ‚Ð° Ð¾Ð±Ð»Ð°ÑÑ‚",
+FormProp			: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ñ„Ð¾Ñ€Ð¼ÑƒÐ»ÑÑ€Ð°",
+
+FontFormats			: "ÐÐ¾Ñ€Ð¼Ð°Ð»ÐµÐ½;Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½;ÐÐ´Ñ€ÐµÑ;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 1;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 2;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 3;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 4;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 5;Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ 6;ÐŸÐ°Ñ€Ð°Ð³Ñ€Ð°Ñ„ (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° Ð½Ð° XHTML. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...",
+Done				: "Ð“Ð¾Ñ‚Ð¾Ð²Ð¾",
+PasteWordConfirm	: "Ð¢ÐµÐºÑÑ‚ÑŠÑ‚, ÐºÐ¾Ð¹Ñ‚Ð¾ Ð¸ÑÐºÐ°Ñ‚Ðµ Ð´Ð° Ð²Ð¼ÑŠÐºÐ½ÐµÑ‚Ðµ Ðµ ÐºÐ¾Ð¿Ð¸Ñ€Ð°Ð½ Ð¾Ñ‚ MS Word. Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð¸Ð·Ñ‡Ð¸ÑÑ‚ÐµÐ½ Ð¿Ñ€ÐµÐ´Ð¸ Ð²Ð¼ÑŠÐºÐ²Ð°Ð½ÐµÑ‚Ð¾?",
+NotCompatiblePaste	: "Ð¢Ð°Ð·Ð¸ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¸ÑÐºÐ²Ð° MS Internet Explorer Ð²ÐµÑ€ÑÐ¸Ñ 5.5 Ð¸Ð»Ð¸ Ð¿Ð¾-Ð²Ð¸ÑÐ¾ÐºÐ°. Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð´Ð° Ð²Ð¼ÑŠÐºÐ½ÐµÑ‚Ðµ Ð·Ð°Ð¿Ð°Ð¼ÐµÑ‚ÐµÐ½Ð¾Ñ‚Ð¾ Ð±ÐµÐ· Ð¸Ð·Ñ‡Ð¸ÑÑ‚Ð²Ð°Ð½Ðµ?",
+UnknownToolbarItem	: "ÐÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‚ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚ \"%1\"",
+UnknownCommand		: "ÐÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‚Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° \"%1\"",
+NotImplemented		: "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° Ð½Ðµ Ðµ Ð¸Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð¸Ñ€Ð°Ð½Ð°",
+UnknownToolbarSet	: "ÐŸÐ°Ð½ÐµÐ»ÑŠÑ‚ \"%1\" Ð½Ðµ ÑÑŠÑ‰ÐµÑÑ‚Ð²ÑƒÐ²Ð°",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "ÐžÐš",
+DlgBtnCancel		: "ÐžÑ‚ÐºÐ°Ð·",
+DlgBtnClose			: "Ð—Ð°Ñ‚Ð²Ð¾Ñ€Ð¸",
+DlgBtnBrowseServer	: "Ð Ð°Ð·Ð³Ð»ÐµÐ´Ð°Ð¹ ÑÑŠÑ€Ð²ÑŠÑ€Ð°",
+DlgAdvancedTag		: "ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð¾ÑÑ‚Ð¸...",
+DlgOpOther			: "<Ð”Ñ€ÑƒÐ³Ð¾>",
+DlgInfoTab			: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ",
+DlgAlertUrl			: "ÐœÐ¾Ð»Ñ, Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ (URL)",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ð½Ðµ Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½>",
+DlgGenId			: "Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€",
+DlgGenLangDir		: "Ð¿Ð¾ÑÐ¾ÐºÐ° Ð½Ð° Ñ€ÐµÑ‡Ñ‚Ð°",
+DlgGenLangDirLtr	: "ÐžÑ‚ Ð»ÑÐ²Ð¾ Ð½Ð° Ð´ÑÑÐ½Ð¾",
+DlgGenLangDirRtl	: "ÐžÑ‚ Ð´ÑÑÐ½Ð¾ Ð½Ð° Ð»ÑÐ²Ð¾",
+DlgGenLangCode		: "ÐšÐ¾Ð´ Ð½Ð° ÐµÐ·Ð¸ÐºÐ°",
+DlgGenAccessKey		: "Ð‘ÑŠÑ€Ð· ÐºÐ»Ð°Ð²Ð¸Ñˆ",
+DlgGenName			: "Ð˜Ð¼Ðµ",
+DlgGenTabIndex		: "Ð ÐµÐ´ Ð½Ð° Ð´Ð¾ÑÑ‚ÑŠÐ¿",
+DlgGenLongDescr		: "ÐžÐ¿Ð¸ÑÐ°Ð½Ð¸Ðµ Ð½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð°",
+DlgGenClass			: "ÐšÐ»Ð°Ñ Ð¾Ñ‚ ÑÑ‚Ð¸Ð»Ð¾Ð²Ð¸Ñ‚Ðµ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð¸",
+DlgGenTitle			: "ÐŸÑ€ÐµÐ¿Ð¾Ñ€ÑŠÑ‡Ð¸Ñ‚ÐµÐ»Ð½Ð¾ Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ",
+DlgGenContType		: "ÐŸÑ€ÐµÐ¿Ð¾Ñ€ÑŠÑ‡Ð¸Ñ‚ÐµÐ»ÐµÐ½ Ñ‚Ð¸Ð¿ Ð½Ð° ÑÑŠÐ´ÑŠÑ€Ð¶Ð°Ð½Ð¸ÐµÑ‚Ð¾",
+DlgGenLinkCharset	: "Ð¢Ð¸Ð¿ Ð½Ð° ÑÐ²ÑŠÑ€Ð·Ð°Ð½Ð¸Ñ Ñ€ÐµÑÑƒÑ€Ñ",
+DlgGenStyle			: "Ð¡Ñ‚Ð¸Ð»",
+
+// Image Dialog
+DlgImgTitle			: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾",
+DlgImgInfoTab		: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾",
+DlgImgBtnUpload		: "ÐŸÑ€Ð°Ñ‚Ð¸ ÐºÑŠÐ¼ ÑÑŠÑ€Ð²ÑŠÑ€Ð°",
+DlgImgURL			: "ÐŸÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ (URL)",
+DlgImgUpload		: "ÐšÐ°Ñ‡Ð¸",
+DlgImgAlt			: "ÐÐ»Ñ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²ÐµÐ½ Ñ‚ÐµÐºÑÑ‚",
+DlgImgWidth			: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgImgHeight		: "Ð’Ð¸ÑÐ¾Ñ‡Ð¸Ð½Ð°",
+DlgImgLockRatio		: "Ð—Ð°Ð¿Ð°Ð·Ð¸ Ð¿Ñ€Ð¾Ð¿Ð¾Ñ€Ñ†Ð¸ÑÑ‚Ð°",
+DlgBtnResetSize		: "Ð’ÑŠÐ·ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°",
+DlgImgBorder		: "Ð Ð°Ð¼ÐºÐ°",
+DlgImgHSpace		: "Ð¥Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÐµÐ½ Ð¾Ñ‚ÑÑ‚ÑŠÐ¿",
+DlgImgVSpace		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÐµÐ½ Ð¾Ñ‚ÑÑ‚ÑŠÐ¿",
+DlgImgAlign			: "ÐŸÐ¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ",
+DlgImgAlignLeft		: "Ð›ÑÐ²Ð¾",
+DlgImgAlignAbsBottom: "ÐÐ°Ð¹-Ð´Ð¾Ð»Ñƒ",
+DlgImgAlignAbsMiddle: "Ð¢Ð¾Ñ‡Ð½Ð¾ Ð¿Ð¾ ÑÑ€ÐµÐ´Ð°Ñ‚Ð°",
+DlgImgAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ‚Ð° Ð»Ð¸Ð½Ð¸Ñ",
+DlgImgAlignBottom	: "Ð”Ð¾Ð»Ñƒ",
+DlgImgAlignMiddle	: "ÐŸÐ¾ ÑÑ€ÐµÐ´Ð°Ñ‚Ð°",
+DlgImgAlignRight	: "Ð”ÑÑÐ½Ð¾",
+DlgImgAlignTextTop	: "Ð’ÑŠÑ€Ñ…Ñƒ Ñ‚ÐµÐºÑÑ‚Ð°",
+DlgImgAlignTop		: "ÐžÑ‚Ð³Ð¾Ñ€Ðµ",
+DlgImgPreview		: "Ð˜Ð·Ð³Ð»ÐµÐ´",
+DlgImgAlertUrl		: "ÐœÐ¾Ð»Ñ, Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ Ð´Ð¾ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾",
+DlgImgLinkTab		: "Ð’Ñ€ÑŠÐ·ÐºÐ°",
+
+// Flash Dialog
+DlgFlashTitle		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Flash Ð¾Ð±ÐµÐºÑ‚Ð°",
+DlgFlashChkPlay		: "ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ðµ",
+DlgFlashChkLoop		: "ÐÐ¾Ð²Ð¾ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ðµ ÑÐ»ÐµÐ´ Ð·Ð°Ð²ÑŠÑ€ÑˆÐ²Ð°Ð½ÐµÑ‚Ð¾",
+DlgFlashChkMenu		: "Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¾ Flash Ð¼ÐµÐ½ÑŽ",
+DlgFlashScale		: "ÐžÑ€Ð°Ð·Ð¼ÐµÑ€ÑÐ²Ð°Ð½Ðµ",
+DlgFlashScaleAll	: "ÐŸÐ¾ÐºÐ°Ð¶Ð¸ Ñ†ÐµÐ»Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚",
+DlgFlashScaleNoBorder	: "Ð‘ÐµÐ· Ñ€Ð°Ð¼ÐºÐ°",
+DlgFlashScaleFit	: "Ð¡Ð¿Ð¾Ñ€ÐµÐ´ Ð¼ÑÑÑ‚Ð¾Ñ‚Ð¾",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ð’Ñ€ÑŠÐ·ÐºÐ°",
+DlgLnkInfoTab		: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð°",
+DlgLnkTargetTab		: "Ð¦ÐµÐ»",
+
+DlgLnkType			: "Ð’Ð¸Ð´ Ð½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð°",
+DlgLnkTypeURL		: "ÐŸÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ (URL)",
+DlgLnkTypeAnchor	: "ÐšÐ¾Ñ‚Ð²Ð° Ð² Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ‚Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°",
+DlgLnkTypeEMail		: "Ð•-Ð¿Ð¾Ñ‰Ð°",
+DlgLnkProto			: "ÐŸÑ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»",
+DlgLnkProtoOther	: "<Ð´Ñ€ÑƒÐ³Ð¾>",
+DlgLnkURL			: "ÐŸÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ (URL)",
+DlgLnkAnchorSel		: "Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ÐºÐ¾Ñ‚Ð²Ð°",
+DlgLnkAnchorByName	: "ÐŸÐ¾ Ð¸Ð¼Ðµ Ð½Ð° ÐºÐ¾Ñ‚Ð²Ð°Ñ‚Ð°",
+DlgLnkAnchorById	: "ÐŸÐ¾ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ð½Ð° ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚",
+DlgLnkNoAnchors		: "(ÐÑÐ¼Ð° ÐºÐ¾Ñ‚Ð²Ð¸ Ð² Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚)",
+DlgLnkEMail			: "ÐÐ´Ñ€ÐµÑ Ð·Ð° Ðµ-Ð¿Ð¾Ñ‰Ð°",
+DlgLnkEMailSubject	: "Ð¢ÐµÐ¼Ð° Ð½Ð° Ð¿Ð¸ÑÐ¼Ð¾Ñ‚Ð¾",
+DlgLnkEMailBody		: "Ð¢ÐµÐºÑÑ‚ Ð½Ð° Ð¿Ð¸ÑÐ¼Ð¾Ñ‚Ð¾",
+DlgLnkUpload		: "ÐšÐ°Ñ‡Ð¸",
+DlgLnkBtnUpload		: "ÐŸÑ€Ð°Ñ‚Ð¸ Ð½Ð° ÑÑŠÑ€Ð²ÑŠÑ€Ð°",
+
+DlgLnkTarget		: "Ð¦ÐµÐ»",
+DlgLnkTargetFrame	: "<Ñ€Ð°Ð¼ÐºÐ°>",
+DlgLnkTargetPopup	: "<Ð´ÑŠÑ‰ÐµÑ€ÐµÐ½ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†>",
+DlgLnkTargetBlank	: "ÐÐ¾Ð² Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† (_blank)",
+DlgLnkTargetParent	: "Ð Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑÐºÐ¸ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† (_parent)",
+DlgLnkTargetSelf	: "ÐÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† (_self)",
+DlgLnkTargetTop		: "Ð¦ÐµÐ»Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† (_top)",
+DlgLnkTargetFrameName	: "Ð˜Ð¼Ðµ Ð½Ð° Ñ†ÐµÐ»ÐµÐ²Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†",
+DlgLnkPopWinName	: "Ð˜Ð¼Ðµ Ð½Ð° Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†",
+DlgLnkPopWinFeat	: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†",
+DlgLnkPopResize		: "Ð¡ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¸ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¸",
+DlgLnkPopLocation	: "ÐŸÐ¾Ð»Ðµ Ð·Ð° Ð°Ð´Ñ€ÐµÑ",
+DlgLnkPopMenu		: "ÐœÐµÐ½ÑŽ",
+DlgLnkPopScroll		: "ÐŸÐ»ÑŠÐ·Ð³Ð°Ñ‡",
+DlgLnkPopStatus		: "ÐŸÐ¾Ð»Ðµ Ð·Ð° ÑÑ‚Ð°Ñ‚ÑƒÑ",
+DlgLnkPopToolbar	: "ÐŸÐ°Ð½ÐµÐ» Ñ Ð±ÑƒÑ‚Ð¾Ð½Ð¸",
+DlgLnkPopFullScrn	: "Ð“Ð¾Ð»ÑÐ¼ ÐµÐºÑ€Ð°Ð½ (MS IE)",
+DlgLnkPopDependent	: "Ð—Ð°Ð²Ð¸ÑÐ¸Ð¼ (Netscape)",
+DlgLnkPopWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgLnkPopHeight		: "Ð’Ð¸ÑÐ¾Ñ‡Ð¸Ð½Ð°",
+DlgLnkPopLeft		: "ÐšÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ð¸ - X",
+DlgLnkPopTop		: "ÐšÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð°Ñ‚Ð¸ - Y",
+
+DlnLnkMsgNoUrl		: "ÐœÐ¾Ð»Ñ, Ð½Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ (URL)",
+DlnLnkMsgNoEMail	: "ÐœÐ¾Ð»Ñ, Ð½Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ Ð°Ð´Ñ€ÐµÑÐ° Ð·Ð° Ðµ-Ð¿Ð¾Ñ‰Ð°",
+DlnLnkMsgNoAnchor	: "ÐœÐ¾Ð»Ñ, Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ÐºÐ¾Ñ‚Ð²Ð°",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ Ñ†Ð²ÑÑ‚",
+DlgColorBtnClear	: "Ð˜Ð·Ñ‡Ð¸ÑÑ‚Ð¸",
+DlgColorHighlight	: "Ð¢ÐµÐºÑƒÑ‰",
+DlgColorSelected	: "Ð˜Ð·Ð±Ñ€Ð°Ð½",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ð”Ð¾Ð±Ð°Ð²Ð¸ ÑƒÑÐ¼Ð¸Ð²ÐºÐ°",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ÑÐ¿ÐµÑ†Ð¸Ð°Ð»ÐµÐ½ ÑÐ¸Ð¼Ð²Ð¾Ð»",
+
+// Table Dialog
+DlgTableTitle		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°Ñ‚Ð°",
+DlgTableRows		: "Ð ÐµÐ´Ð¾Ð²Ðµ",
+DlgTableColumns		: "ÐšÐ¾Ð»Ð¾Ð½Ð¸",
+DlgTableBorder		: "Ð Ð°Ð·Ð¼ÐµÑ€ Ð½Ð° Ñ€Ð°Ð¼ÐºÐ°Ñ‚Ð°",
+DlgTableAlign		: "ÐŸÐ¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ",
+DlgTableAlignNotSet	: "<ÐÐµ Ðµ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾>",
+DlgTableAlignLeft	: "Ð›ÑÐ²Ð¾",
+DlgTableAlignCenter	: "Ð¦ÐµÐ½Ñ‚ÑŠÑ€",
+DlgTableAlignRight	: "Ð”ÑÑÐ½Ð¾",
+DlgTableWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgTableWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»Ð¸",
+DlgTableWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ñ‚Ð¸",
+DlgTableHeight		: "Ð’Ð¸ÑÐ¾Ñ‡Ð¸Ð½Ð°",
+DlgTableCellSpace	: "Ð Ð°Ð·ÑÑ‚Ð¾ÑÐ½Ð¸Ðµ Ð¼ÐµÐ¶Ð´Ñƒ ÐºÐ»ÐµÑ‚ÐºÐ¸Ñ‚Ðµ",
+DlgTableCellPad		: "ÐžÑ‚ÑÑ‚ÑŠÐ¿ Ð½Ð° ÑÑŠÐ´ÑŠÑ€Ð¶Ð°Ð½Ð¸ÐµÑ‚Ð¾ Ð² ÐºÐ»ÐµÑ‚ÐºÐ¸Ñ‚Ðµ",
+DlgTableCaption		: "Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ",
+DlgTableSummary		: "Ð ÐµÐ·ÑŽÐ¼Ðµ",
+
+// Table Cell Dialog
+DlgCellTitle		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° ÐºÐ»ÐµÑ‚ÐºÐ°Ñ‚Ð°",
+DlgCellWidth		: "Ð¨Ð¸Ñ€Ð¸Ð½Ð°",
+DlgCellWidthPx		: "Ð¿Ð¸ÐºÑÐµÐ»Ð¸",
+DlgCellWidthPc		: "Ð¿Ñ€Ð¾Ñ†ÐµÐ½Ñ‚Ð¸",
+DlgCellHeight		: "Ð’Ð¸ÑÐ¾Ñ‡Ð¸Ð½Ð°",
+DlgCellWordWrap		: "Ð¿Ñ€ÐµÐ½Ð°ÑÑÐ½Ðµ Ð½Ð° Ð½Ð¾Ð² Ñ€ÐµÐ´",
+DlgCellWordWrapNotSet	: "<ÐÐµ Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½Ð¾>",
+DlgCellWordWrapYes	: "Ð”Ð°",
+DlgCellWordWrapNo	: "Ð½Ðµ",
+DlgCellHorAlign		: "Ð¥Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»Ð½Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ",
+DlgCellHorAlignNotSet	: "<ÐÐµ Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½Ð¾>",
+DlgCellHorAlignLeft	: "Ð›ÑÐ²Ð¾",
+DlgCellHorAlignCenter	: "Ð¦ÐµÐ½Ñ‚ÑŠÑ€",
+DlgCellHorAlignRight: "Ð”ÑÑÐ½Ð¾",
+DlgCellVerAlign		: "Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»Ð½Ð¾ Ð¿Ð¾Ð´Ñ€Ð°Ð²Ð½ÑÐ²Ð°Ð½Ðµ",
+DlgCellVerAlignNotSet	: "<ÐÐµ Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½Ð¾>",
+DlgCellVerAlignTop	: "Ð“Ð¾Ñ€Ðµ",
+DlgCellVerAlignMiddle	: "ÐŸÐ¾ ÑÑ€ÐµÐ´Ð°Ñ‚Ð°",
+DlgCellVerAlignBottom	: "Ð”Ð¾Ð»Ñƒ",
+DlgCellVerAlignBaseline	: "ÐŸÐ¾ Ð±Ð°Ð·Ð¾Ð²Ð°Ñ‚Ð° Ð»Ð¸Ð½Ð¸Ñ",
+DlgCellRowSpan		: "Ð¿Ð¾Ð²ÐµÑ‡Ðµ Ð¾Ñ‚ ÐµÐ´Ð¸Ð½ Ñ€ÐµÐ´",
+DlgCellCollSpan		: "Ð¿Ð¾Ð²ÐµÑ‡Ðµ Ð¾Ñ‚ ÐµÐ´Ð½Ð° ÐºÐ¾Ð»Ð¾Ð½Ð°",
+DlgCellBackColor	: "Ñ„Ð¾Ð½Ð¾Ð² Ñ†Ð²ÑÑ‚",
+DlgCellBorderColor	: "Ñ†Ð²ÑÑ‚ Ð½Ð° Ñ€Ð°Ð¼ÐºÐ°Ñ‚Ð°",
+DlgCellBtnSelect	: "Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "Ð¢ÑŠÑ€ÑÐ¸",
+DlgFindFindBtn		: "Ð¢ÑŠÑ€ÑÐ¸",
+DlgFindNotFoundMsg	: "Ð£ÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚ Ð½Ðµ Ð±ÐµÑˆÐµ Ð½Ð°Ð¼ÐµÑ€ÐµÐ½.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸",
+DlgReplaceFindLbl		: "Ð¢ÑŠÑ€ÑÐ¸:",
+DlgReplaceReplaceLbl	: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸ Ñ:",
+DlgReplaceCaseChk		: "Ð¡ÑŠÑ ÑÑŠÑ‰Ð¸Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚ÑŠÑ€",
+DlgReplaceReplaceBtn	: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸",
+DlgReplaceReplAllBtn	: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸ Ð²ÑÐ¸Ñ‡ÐºÐ¸",
+DlgReplaceWordChk		: "Ð¢ÑŠÑ€ÑÐ¸ ÑÑŠÑ‰Ð°Ñ‚Ð° Ð´ÑƒÐ¼Ð°",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸Ñ‚Ðµ Ð·Ð° ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾ÑÑ‚ Ð½Ð° Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ Ð½Ðµ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°Ð²Ð°Ñ‚ Ð½Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸ Ð¸Ð·Ñ€ÑÐ·Ð²Ð°Ð½ÐµÑ‚Ð¾. Ð—Ð° Ñ†ÐµÐ»Ñ‚Ð° Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°Ñ‚Ð° (Ctrl+X).",
+PasteErrorCopy	: "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸Ñ‚Ðµ Ð·Ð° ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾ÑÑ‚ Ð½Ð° Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ Ð½Ðµ Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°Ð²Ð°Ñ‚ Ð½Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° Ð´Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸ Ð·Ð°Ð¿Ð°Ð¼ÐµÑ‚ÑÐ²Ð°Ð½ÐµÑ‚Ð¾. Ð—Ð° Ñ†ÐµÐ»Ñ‚Ð° Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°Ñ‚Ð° (Ctrl+C).",
+
+PasteAsText		: "Ð’Ð¼ÑŠÐºÐ½Ð¸ ÐºÐ°Ñ‚Ð¾ Ñ‡Ð¸ÑÑ‚ Ñ‚ÐµÐºÑÑ‚",
+PasteFromWord	: "Ð’Ð¼ÑŠÐºÐ½Ð¸ Ð¾Ñ‚ MS Word",
+
+DlgPasteMsg2	: "Ð’Ð¼ÑŠÐºÐ½ÐµÑ‚Ðµ Ñ‚ÑƒÐº ÑÑŠÐ´ÑŠÐ¶Ð°Ð½Ð¸ÐµÑ‚Ð¾ Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÐ°Ñ€Ð°Ñ‚Ð° (<STRONG>Ctrl+V</STRONG>) Ð¸ Ð½Ð°Ñ‚Ð¸ÑÐ½ÐµÑ‚Ðµ <STRONG>OK</STRONG>.",
+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
+DlgPasteIgnoreFont		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð°Ð¹ ÑˆÑ€Ð¸Ñ„Ñ‚Ð¾Ð²Ð¸Ñ‚Ðµ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ð¸",
+DlgPasteRemoveStyles	: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹ ÑÑ‚Ð¸Ð»Ð¾Ð²Ð¸Ñ‚Ðµ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ð¸",
+
+// Color Picker
+ColorAutomatic	: "ÐŸÐ¾ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ð½Ðµ",
+ColorMoreColors	: "Ð”Ñ€ÑƒÐ³Ð¸ Ñ†Ð²ÐµÑ‚Ð¾Ð²Ðµ...",
+
+// Document Properties
+DocProps		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° ÐºÐ¾Ñ‚Ð²Ð°Ñ‚Ð°",
+DlgAnchorName		: "Ð˜Ð¼Ðµ Ð½Ð° ÐºÐ¾Ñ‚Ð²Ð°Ñ‚Ð°",
+DlgAnchorErrorName	: "ÐœÐ¾Ð»Ñ, Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¸Ð¼Ðµ Ð½Ð° ÐºÐ¾Ñ‚Ð²Ð°Ñ‚Ð°",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ð›Ð¸Ð¿ÑÐ²Ð° Ð² Ñ€ÐµÑ‡Ð½Ð¸ÐºÐ°",
+DlgSpellChangeTo		: "ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸ Ð½Ð°",
+DlgSpellBtnIgnore		: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð°Ð¹",
+DlgSpellBtnIgnoreAll	: "Ð˜Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð°Ð¹ Ð²ÑÐ¸Ñ‡ÐºÐ¸",
+DlgSpellBtnReplace		: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸",
+DlgSpellBtnReplaceAll	: "Ð—Ð°Ð¼ÐµÑÑ‚Ð¸ Ð²ÑÐ¸Ñ‡ÐºÐ¸",
+DlgSpellBtnUndo			: "ÐžÑ‚Ð¼ÐµÐ½Ð¸",
+DlgSpellNoSuggestions	: "- ÐÑÐ¼Ð° Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ -",
+DlgSpellProgress		: "Ð˜Ð·Ð²ÑŠÑ€ÑˆÐ²Ð°Ð½Ðµ Ð½Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ...",
+DlgSpellNoMispell		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°: Ð½Ðµ ÑÐ° Ð¾Ñ‚ÐºÑ€Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸ÑÐ½Ð¸ Ð³Ñ€ÐµÑˆÐºÐ¸",
+DlgSpellNoChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°: Ð½ÑÐ¼Ð° Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸ Ð´ÑƒÐ¼Ð¸",
+DlgSpellOneChange		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°: ÐµÐ´Ð½Ð° Ð´ÑƒÐ¼Ð° Ðµ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð°",
+DlgSpellManyChanges		: "ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°: %1 Ð´ÑƒÐ¼Ð¸ ÑÐ° Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸",
+
+IeSpellDownload			: "Ð˜Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚ÑŠÑ‚ Ð·Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð½Ð° Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð½Ðµ Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½. Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð´Ð° Ð³Ð¾ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ ?",
+
+// Button Dialog
+DlgButtonText		: "Ð¢ÐµÐºÑÑ‚ (Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚)",
+DlgButtonType		: "Ð¢Ð¸Ð¿",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ð˜Ð¼Ðµ",
+DlgCheckboxValue	: "Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+DlgCheckboxSelected	: "ÐžÑ‚Ð¼ÐµÑ‚Ð½Ð°Ñ‚Ð¾",
+
+// Form Dialog
+DlgFormName		: "Ð˜Ð¼Ðµ",
+DlgFormAction	: "Ð”ÐµÐ¹ÑÑ‚Ð²Ð¸Ðµ",
+DlgFormMethod	: "ÐœÐµÑ‚Ð¾Ð´",
+
+// Select Field Dialog
+DlgSelectName		: "Ð˜Ð¼Ðµ",
+DlgSelectValue		: "Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+DlgSelectSize		: "Ð Ð°Ð·Ð¼ÐµÑ€",
+DlgSelectLines		: "Ð»Ð¸Ð½Ð¸Ð¸",
+DlgSelectChkMulti	: "Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¾ Ð¼Ð½Ð¾Ð¶ÐµÑÑ‚Ð²ÐµÐ½Ð¾ ÑÐµÐ»ÐµÐºÑ‚Ð¸Ñ€Ð°Ð½Ðµ",
+DlgSelectOpAvail	: "Ð’ÑŠÐ·Ð¼Ð¾Ð¶Ð½Ð¸ Ð¾Ð¿Ñ†Ð¸Ð¸",
+DlgSelectOpText		: "Ð¢ÐµÐºÑÑ‚",
+DlgSelectOpValue	: "Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+DlgSelectBtnAdd		: "Ð”Ð¾Ð±Ð°Ð²Ð¸",
+DlgSelectBtnModify	: "ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸",
+DlgSelectBtnUp		: "ÐÐ°Ð³Ð¾Ñ€Ðµ",
+DlgSelectBtnDown	: "ÐÐ°Ð´Ð¾Ð»Ñƒ",
+DlgSelectBtnSetValue : "ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ ÐºÐ°Ñ‚Ð¾ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð° ÑÑ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+DlgSelectBtnDelete	: "Ð˜Ð·Ñ‚Ñ€Ð¸Ð¹",
+
+// Textarea Dialog
+DlgTextareaName	: "Ð˜Ð¼Ðµ",
+DlgTextareaCols	: "ÐšÐ¾Ð»Ð¾Ð½Ð¸",
+DlgTextareaRows	: "Ð ÐµÐ´Ð¾Ð²Ðµ",
+
+// Text Field Dialog
+DlgTextName			: "Ð˜Ð¼Ðµ",
+DlgTextValue		: "Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+DlgTextCharWidth	: "Ð¨Ð¸Ñ€Ð¸Ð½Ð° Ð½Ð° ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸Ñ‚Ðµ",
+DlgTextMaxChars		: "ÐœÐ°ÐºÑÐ¸Ð¼ÑƒÐ¼ ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸",
+DlgTextType			: "Ð¢Ð¸Ð¿",
+DlgTextTypeText		: "Ð¢ÐµÐºÑÑ‚",
+DlgTextTypePass		: "ÐŸÐ°Ñ€Ð¾Ð»Ð°",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ð˜Ð¼Ðµ",
+DlgHiddenValue	: "Ð¡Ñ‚Ð¾Ð¹Ð½Ð¾ÑÑ‚",
+
+// Bulleted List Dialog
+BulletedListProp	: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð½ÐµÐ½ÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½Ð¸Ñ ÑÐ¿Ð¸ÑÑŠÐº",
+NumberedListProp	: "ÐŸÐ°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸ Ð½Ð° Ð½ÑƒÐ¼ÐµÑ€Ð¸Ñ€Ð°Ð½Ð¸Ñ ÑÐ¿Ð¸ÑÑŠÐº",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Ð¢Ð¸Ð¿",
+DlgLstTypeCircle	: "ÐžÐºÑ€ÑŠÐ¶Ð½Ð¾ÑÑ‚",
+DlgLstTypeDisc		: "ÐšÑ€ÑŠÐ³",
+DlgLstTypeSquare	: "ÐšÐ²Ð°Ð´Ñ€Ð°Ñ‚",
+DlgLstTypeNumbers	: "Ð§Ð¸ÑÐ»Ð° (1, 2, 3)",
+DlgLstTypeLCase		: "ÐœÐ°Ð»ÐºÐ¸ Ð±ÑƒÐºÐ²Ð¸ (a, b, c)",
+DlgLstTypeUCase		: "Ð“Ð¾Ð»ÐµÐ¼Ð¸ Ð±ÑƒÐºÐ²Ð¸ (A, B, C)",
+DlgLstTypeSRoman	: "ÐœÐ°Ð»ÐºÐ¸ Ñ€Ð¸Ð¼ÑÐºÐ¸ Ñ‡Ð¸ÑÐ»Ð° (i, ii, iii)",
+DlgLstTypeLRoman	: "Ð“Ð¾Ð»ÐµÐ¼Ð¸ Ñ€Ð¸Ð¼ÑÐºÐ¸ Ñ‡Ð¸ÑÐ»Ð° (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ÐžÐ±Ñ‰Ð¸",
+DlgDocBackTab		: "Ð¤Ð¾Ð½",
+DlgDocColorsTab		: "Ð¦Ð²ÐµÑ‚Ð¾Ð²Ðµ Ð¸ Ð¾Ñ‚ÑÑ‚ÑŠÐ¿Ð¸",
+DlgDocMetaTab		: "ÐœÐµÑ‚Ð° Ð´Ð°Ð½Ð½Ð¸",
+
+DlgDocPageTitle		: "Ð—Ð°Ð³Ð»Ð°Ð²Ð¸Ðµ Ð½Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°Ñ‚Ð°",
+DlgDocLangDir		: "ÐŸÐ¾ÑÐ¾ÐºÐ° Ð½Ð° Ñ€ÐµÑ‡Ñ‚Ð°",
+DlgDocLangDirLTR	: "ÐžÑ‚ Ð»ÑÐ²Ð¾ Ð½Ð° Ð´ÑÑÐ½Ð¾",
+DlgDocLangDirRTL	: "ÐžÑ‚ Ð´ÑÑÐ½Ð¾ Ð½Ð° Ð»ÑÐ²Ð¾",
+DlgDocLangCode		: "ÐšÐ¾Ð´ Ð½Ð° ÐµÐ·Ð¸ÐºÐ°",
+DlgDocCharSet		: "ÐšÐ¾Ð´Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸Ñ‚Ðµ",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Ð”Ñ€ÑƒÐ³Ð¾ ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸Ñ‚Ðµ",
+
+DlgDocDocType		: "Ð¢Ð¸Ð¿ Ð½Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocDocTypeOther	: "Ð”Ñ€ÑƒÐ³ Ñ‚Ð¸Ð¿ Ð½Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocIncXHTML		: "Ð’ÐºÐ»ÑŽÑ‡Ð¸ XHTML Ð´ÐµÐºÐ»Ð°Ñ€Ð°Ñ†Ð¸Ñ",
+DlgDocBgColor		: "Ð¦Ð²ÑÑ‚ Ð½Ð° Ñ„Ð¾Ð½Ð°",
+DlgDocBgImage		: "ÐŸÑŠÐ»ÐµÐ½ Ð¿ÑŠÑ‚ Ð´Ð¾ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ñ‚Ð¾ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+DlgDocBgNoScroll	: "ÐÐµ-Ð¿Ð¾Ð²Ñ‚Ð°Ñ€ÑÑ‰Ð¾ ÑÐµ Ñ„Ð¾Ð½Ð¾Ð²Ð¾ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ",
+DlgDocCText			: "Ð¢ÐµÐºÑÑ‚",
+DlgDocCLink			: "Ð’Ñ€ÑŠÐ·ÐºÐ°",
+DlgDocCVisited		: "ÐŸÐ¾ÑÐµÑ‚ÐµÐ½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°",
+DlgDocCActive		: "ÐÐºÑ‚Ð¸Ð²Ð½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°",
+DlgDocMargins		: "ÐžÑ‚ÑÑ‚ÑŠÐ¿Ð¸ Ð½Ð° ÑÑ‚Ñ€Ð°Ð½Ð¸Ñ†Ð°Ñ‚Ð°",
+DlgDocMaTop			: "Ð“Ð¾Ñ€Ðµ",
+DlgDocMaLeft		: "Ð›ÑÐ²Ð¾",
+DlgDocMaRight		: "Ð”ÑÑÐ½Ð¾",
+DlgDocMaBottom		: "Ð”Ð¾Ð»Ñƒ",
+DlgDocMeIndex		: "ÐšÐ»ÑŽÑ‡Ð¾Ð²Ð¸ Ð´ÑƒÐ¼Ð¸ Ð·Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° (Ñ€Ð°Ð·Ð´ÐµÐ»ÐµÐ½Ð¸ ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ð¸)",
+DlgDocMeDescr		: "ÐžÐ¿Ð¸ÑÐ°Ð½Ð¸Ðµ Ð½Ð° Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°",
+DlgDocMeAuthor		: "ÐÐ²Ñ‚Ð¾Ñ€",
+DlgDocMeCopy		: "ÐÐ²Ñ‚Ð¾Ñ€ÑÐºÐ¸ Ð¿Ñ€Ð°Ð²Ð°",
+DlgDocPreview		: "Ð˜Ð·Ð³Ð»ÐµÐ´",
+
+// Templates Dialog
+Templates			: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸",
+DlgTemplatesTitle	: "Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸",
+DlgTemplatesSelMsg	: "Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ÑˆÐ°Ð±Ð»Ð¾Ð½ <br>(Ñ‚ÐµÐºÑƒÑ‰Ð¾Ñ‚Ð¾ ÑÑŠÐ´ÑŠÑ€Ð¶Ð°Ð½Ð¸Ðµ Ð½Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° Ñ‰Ðµ Ð±ÑŠÐ´Ðµ Ð·Ð°Ð³ÑƒÐ±ÐµÐ½Ð¾):",
+DlgTemplatesLoading	: "Ð—Ð°Ñ€ÐµÐ¶Ð´Ð°Ð½Ðµ Ð½Ð° ÑÐ¿Ð¸ÑÑŠÐºÐ° Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸Ñ‚Ðµ. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...",
+DlgTemplatesNoTpl	: "(ÐÑÐ¼Ð° Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Ð—Ð°",
+DlgAboutBrowserInfoTab	: "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð°",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "Ð²ÐµÑ€ÑÐ¸Ñ",
+DlgAboutInfo		: "Ð—Ð° Ð¿Ð¾Ð²ÐµÑ‡Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾ÑÐµÑ‚ÐµÑ‚Ðµ"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/de.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/de.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/de.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * German language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Symbolleiste einklappen",
+ToolbarExpand		: "Symbolleiste ausklappen",
+
+// Toolbar Items and Context Menu
+Save				: "Speichern",
+NewPage				: "Neue Seite",
+Preview				: "Vorschau",
+Cut					: "Ausschneiden",
+Copy				: "Kopieren",
+Paste				: "EinfÃ¼gen",
+PasteText			: "aus Textdatei einfÃ¼gen",
+PasteWord			: "aus MS-Word einfÃ¼gen",
+Print				: "Drucken",
+SelectAll			: "Alles auswÃ¤hlen",
+RemoveFormat		: "Formatierungen entfernen",
+InsertLinkLbl		: "Link",
+InsertLink			: "Link einfÃ¼gen/editieren",
+RemoveLink			: "Link entfernen",
+Anchor				: "Anker einfÃ¼gen/editieren",
+AnchorDelete		: "Anker entfernen",
+InsertImageLbl		: "Bild",
+InsertImage			: "Bild einfÃ¼gen/editieren",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash einfÃ¼gen/editieren",
+InsertTableLbl		: "Tabelle",
+InsertTable			: "Tabelle einfÃ¼gen/editieren",
+InsertLineLbl		: "Linie",
+InsertLine			: "Horizontale Linie einfÃ¼gen",
+InsertSpecialCharLbl: "Sonderzeichen",
+InsertSpecialChar	: "Sonderzeichen einfÃ¼gen/editieren",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley einfÃ¼gen",
+About				: "Ãœber FCKeditor",
+Bold				: "Fett",
+Italic				: "Kursiv",
+Underline			: "Unterstrichen",
+StrikeThrough		: "Durchgestrichen",
+Subscript			: "Tiefgestellt",
+Superscript			: "Hochgestellt",
+LeftJustify			: "LinksbÃ¼ndig",
+CenterJustify		: "Zentriert",
+RightJustify		: "RechtsbÃ¼ndig",
+BlockJustify		: "Blocksatz",
+DecreaseIndent		: "Einzug verringern",
+IncreaseIndent		: "Einzug erhÃ¶hen",
+Blockquote			: "Zitatblock",
+Undo				: "RÃ¼ckgÃ¤ngig",
+Redo				: "Wiederherstellen",
+NumberedListLbl		: "Nummerierte Liste",
+NumberedList		: "Nummerierte Liste einfÃ¼gen/entfernen",
+BulletedListLbl		: "Liste",
+BulletedList		: "Liste einfÃ¼gen/entfernen",
+ShowTableBorders	: "Zeige Tabellenrahmen",
+ShowDetails			: "Zeige Details",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Schriftart",
+FontSize			: "GrÃ¶ÃŸe",
+TextColor			: "Textfarbe",
+BGColor				: "Hintergrundfarbe",
+Source				: "Quellcode",
+Find				: "Suchen",
+Replace				: "Ersetzen",
+SpellCheck			: "RechtschreibprÃ¼fung",
+UniversalKeyboard	: "Universal-Tastatur",
+PageBreakLbl		: "Seitenumbruch",
+PageBreak			: "Seitenumbruch einfÃ¼gen",
+
+Form			: "Formular",
+Checkbox		: "Checkbox",
+RadioButton		: "Radiobutton",
+TextField		: "Textfeld einzeilig",
+Textarea		: "Textfeld mehrzeilig",
+HiddenField		: "verstecktes Feld",
+Button			: "Klickbutton",
+SelectionField	: "Auswahlfeld",
+ImageButton		: "Bildbutton",
+
+FitWindow		: "Editor maximieren",
+ShowBlocks		: "BlÃ¶cke anzeigen",
+
+// Context Menu
+EditLink			: "Link editieren",
+CellCM				: "Zelle",
+RowCM				: "Zeile",
+ColumnCM			: "Spalte",
+InsertRowAfter		: "Zeile unterhalb einfÃ¼gen",
+InsertRowBefore		: "Zeile oberhalb einfÃ¼gen",
+DeleteRows			: "Zeile entfernen",
+InsertColumnAfter	: "Spalte rechts danach einfÃ¼gen",
+InsertColumnBefore	: "Spalte links davor einfÃ¼gen",
+DeleteColumns		: "Spalte lÃ¶schen",
+InsertCellAfter		: "Zelle danach einfÃ¼gen",
+InsertCellBefore	: "Zelle davor einfÃ¼gen",
+DeleteCells			: "Zelle lÃ¶schen",
+MergeCells			: "Zellen verbinden",
+MergeRight			: "nach rechts verbinden",
+MergeDown			: "nach unten verbinden",
+HorizontalSplitCell	: "Zelle horizontal teilen",
+VerticalSplitCell	: "Zelle vertikal teilen",
+TableDelete			: "Tabelle lÃ¶schen",
+CellProperties		: "Zellen-Eigenschaften",
+TableProperties		: "Tabellen-Eigenschaften",
+ImageProperties		: "Bild-Eigenschaften",
+FlashProperties		: "Flash-Eigenschaften",
+
+AnchorProp			: "Anker-Eigenschaften",
+ButtonProp			: "Button-Eigenschaften",
+CheckboxProp		: "Checkbox-Eigenschaften",
+HiddenFieldProp		: "Verstecktes Feld-Eigenschaften",
+RadioButtonProp		: "Optionsfeld-Eigenschaften",
+ImageButtonProp		: "Bildbutton-Eigenschaften",
+TextFieldProp		: "Textfeld (einzeilig) Eigenschaften",
+SelectionFieldProp	: "Auswahlfeld-Eigenschaften",
+TextareaProp		: "Textfeld (mehrzeilig) Eigenschaften",
+FormProp			: "Formular-Eigenschaften",
+
+FontFormats			: "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Bearbeite XHTML. Bitte warten...",
+Done				: "Fertig",
+PasteWordConfirm	: "Der Text, den Sie einfÃ¼gen mÃ¶chten, scheint aus MS-Word kopiert zu sein. MÃ¶chten Sie ihn zuvor bereinigen lassen?",
+NotCompatiblePaste	: "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur VerfÃ¼gung. MÃ¶chten Sie den Text unbereinigt einfÃ¼gen?",
+UnknownToolbarItem	: "Unbekanntes MenÃ¼leisten-Objekt \"%1\"",
+UnknownCommand		: "Unbekannter Befehl \"%1\"",
+NotImplemented		: "Befehl nicht implementiert",
+UnknownToolbarSet	: "MenÃ¼leiste \"%1\" existiert nicht",
+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",
+BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geÃ¶ffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+DialogBlocked		: "Das Dialog-Fenster konnte nicht geÃ¶ffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Abbrechen",
+DlgBtnClose			: "SchlieÃŸen",
+DlgBtnBrowseServer	: "Server durchsuchen",
+DlgAdvancedTag		: "Erweitert",
+DlgOpOther			: "<andere>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Bitte tragen Sie die URL ein",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nichts>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "Schreibrichtung",
+DlgGenLangDirLtr	: "Links nach Rechts (LTR)",
+DlgGenLangDirRtl	: "Rechts nach Links (RTL)",
+DlgGenLangCode		: "SprachenkÃ¼rzel",
+DlgGenAccessKey		: "Zugriffstaste",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab-Index",
+DlgGenLongDescr		: "Langform URL",
+DlgGenClass			: "Stylesheet Klasse",
+DlgGenTitle			: "Titel Beschreibung",
+DlgGenContType		: "Inhaltstyp",
+DlgGenLinkCharset	: "Ziel-Zeichensatz",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Bild-Eigenschaften",
+DlgImgInfoTab		: "Bild-Info",
+DlgImgBtnUpload		: "Zum Server senden",
+DlgImgURL			: "Bildauswahl",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternativer Text",
+DlgImgWidth			: "Breite",
+DlgImgHeight		: "HÃ¶he",
+DlgImgLockRatio		: "GrÃ¶ÃŸenverhÃ¤ltniss beibehalten",
+DlgBtnResetSize		: "GrÃ¶ÃŸe zurÃ¼cksetzen",
+DlgImgBorder		: "Rahmen",
+DlgImgHSpace		: "H-Abstand",
+DlgImgVSpace		: "V-Abstand",
+DlgImgAlign			: "Ausrichtung",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Abs Unten",
+DlgImgAlignAbsMiddle: "Abs Mitte",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Unten",
+DlgImgAlignMiddle	: "Mitte",
+DlgImgAlignRight	: "Rechts",
+DlgImgAlignTextTop	: "Text Oben",
+DlgImgAlignTop		: "Oben",
+DlgImgPreview		: "Vorschau",
+DlgImgAlertUrl		: "Bitte geben Sie die Bild-URL an",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash-Eigenschaften",
+DlgFlashChkPlay		: "autom. Abspielen",
+DlgFlashChkLoop		: "Endlosschleife",
+DlgFlashChkMenu		: "Flash-MenÃ¼ aktivieren",
+DlgFlashScale		: "Skalierung",
+DlgFlashScaleAll	: "Alles anzeigen",
+DlgFlashScaleNoBorder	: "ohne Rand",
+DlgFlashScaleFit	: "Passgenau",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link-Info",
+DlgLnkTargetTab		: "Zielseite",
+
+DlgLnkType			: "Link-Typ",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Anker in dieser Seite",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<anderes>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Anker auswÃ¤hlen",
+DlgLnkAnchorByName	: "nach Anker Name",
+DlgLnkAnchorById	: "nach Element Id",
+DlgLnkNoAnchors		: "(keine Anker im Dokument vorhanden)",
+DlgLnkEMail			: "E-Mail Addresse",
+DlgLnkEMailSubject	: "Betreffzeile",
+DlgLnkEMailBody		: "Nachrichtentext",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Zum Server senden",
+
+DlgLnkTarget		: "Zielseite",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Pop-up Fenster>",
+DlgLnkTargetBlank	: "Neues Fenster (_blank)",
+DlgLnkTargetParent	: "Oberes Fenster (_parent)",
+DlgLnkTargetSelf	: "Gleiches Fenster (_self)",
+DlgLnkTargetTop		: "Oberstes Fenster (_top)",
+DlgLnkTargetFrameName	: "Ziel-Fenster-Name",
+DlgLnkPopWinName	: "Pop-up Fenster-Name",
+DlgLnkPopWinFeat	: "Pop-up Fenster-Eigenschaften",
+DlgLnkPopResize		: "VergrÃ¶ÃŸerbar",
+DlgLnkPopLocation	: "Adress-Leiste",
+DlgLnkPopMenu		: "MenÃ¼-Leiste",
+DlgLnkPopScroll		: "Rollbalken",
+DlgLnkPopStatus		: "Statusleiste",
+DlgLnkPopToolbar	: "Werkzeugleiste",
+DlgLnkPopFullScrn	: "Vollbild (IE)",
+DlgLnkPopDependent	: "AbhÃ¤ngig (Netscape)",
+DlgLnkPopWidth		: "Breite",
+DlgLnkPopHeight		: "HÃ¶he",
+DlgLnkPopLeft		: "Linke Position",
+DlgLnkPopTop		: "Obere Position",
+
+DlnLnkMsgNoUrl		: "Bitte geben Sie die Link-URL an",
+DlnLnkMsgNoEMail	: "Bitte geben Sie e-Mail Adresse an",
+DlnLnkMsgNoAnchor	: "Bitte wÃ¤hlen Sie einen Anker aus",
+DlnLnkMsgInvPopName	: "Der Name des Popups muss mit einem Buchstaben beginnen und darf keine Leerzeichen enthalten",
+
+// Color Dialog
+DlgColorTitle		: "Farbauswahl",
+DlgColorBtnClear	: "Keine Farbe",
+DlgColorHighlight	: "Vorschau",
+DlgColorSelected	: "AusgewÃ¤hlt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Smiley auswÃ¤hlen",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Sonderzeichen auswÃ¤hlen",
+
+// Table Dialog
+DlgTableTitle		: "Tabellen-Eigenschaften",
+DlgTableRows		: "Zeile",
+DlgTableColumns		: "Spalte",
+DlgTableBorder		: "Rahmen",
+DlgTableAlign		: "Ausrichtung",
+DlgTableAlignNotSet	: "<keine>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Zentriert",
+DlgTableAlignRight	: "Rechts",
+DlgTableWidth		: "Breite",
+DlgTableWidthPx		: "Pixel",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "HÃ¶he",
+DlgTableCellSpace	: "Zellenabstand auÃŸen",
+DlgTableCellPad		: "Zellenabstand innen",
+DlgTableCaption		: "Ãœberschrift",
+DlgTableSummary		: "InhaltsÃ¼bersicht",
+
+// Table Cell Dialog
+DlgCellTitle		: "Zellen-Eigenschaften",
+DlgCellWidth		: "Breite",
+DlgCellWidthPx		: "Pixel",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "HÃ¶he",
+DlgCellWordWrap		: "Umbruch",
+DlgCellWordWrapNotSet	: "<keiner>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nein",
+DlgCellHorAlign		: "Horizontale Ausrichtung",
+DlgCellHorAlignNotSet	: "<keine>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Zentriert",
+DlgCellHorAlignRight: "Rechts",
+DlgCellVerAlign		: "Vertikale Ausrichtung",
+DlgCellVerAlignNotSet	: "<keine>",
+DlgCellVerAlignTop	: "Oben",
+DlgCellVerAlignMiddle	: "Mitte",
+DlgCellVerAlignBottom	: "Unten",
+DlgCellVerAlignBaseline	: "Grundlinie",
+DlgCellRowSpan		: "Zeilen zusammenfassen",
+DlgCellCollSpan		: "Spalten zusammenfassen",
+DlgCellBackColor	: "Hintergrundfarbe",
+DlgCellBorderColor	: "Rahmenfarbe",
+DlgCellBtnSelect	: "Auswahl...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Suchen und Ersetzen",
+
+// Find Dialog
+DlgFindTitle		: "Finden",
+DlgFindFindBtn		: "Finden",
+DlgFindNotFoundMsg	: "Der gesuchte Text wurde nicht gefunden.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ersetzen",
+DlgReplaceFindLbl		: "Suche nach:",
+DlgReplaceReplaceLbl	: "Ersetze mit:",
+DlgReplaceCaseChk		: "GroÃŸ-Kleinschreibung beachten",
+DlgReplaceReplaceBtn	: "Ersetzen",
+DlgReplaceReplAllBtn	: "Alle Ersetzen",
+DlgReplaceWordChk		: "Nur ganze Worte suchen",
+
+// Paste Operations / Dialog
+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).",
+PasteErrorCopy	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage Ã¼ber STRG-C (kopieren).",
+
+PasteAsText		: "Als Text einfÃ¼gen",
+PasteFromWord	: "Aus Word einfÃ¼gen",
+
+DlgPasteMsg2	: "Bitte fÃ¼gen Sie den Text in der folgenden Box Ã¼ber die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestÃ¤tigen Sie mit <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Aufgrund von SicherheitsbeschrÃ¤nkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fÃ¼gen Sie den Inhalt erneut in diesem Fenster ein.",
+DlgPasteIgnoreFont		: "Ignoriere Schriftart-Definitionen",
+DlgPasteRemoveStyles	: "Entferne Style-Definitionen",
+
+// Color Picker
+ColorAutomatic	: "Automatisch",
+ColorMoreColors	: "Weitere Farben...",
+
+// Document Properties
+DocProps		: "Dokument-Eigenschaften",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anker-Eigenschaften",
+DlgAnchorName		: "Anker Name",
+DlgAnchorErrorName	: "Bitte geben Sie den Namen des Ankers ein",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nicht im WÃ¶rterbuch",
+DlgSpellChangeTo		: "Ã„ndern in",
+DlgSpellBtnIgnore		: "Ignorieren",
+DlgSpellBtnIgnoreAll	: "Alle Ignorieren",
+DlgSpellBtnReplace		: "Ersetzen",
+DlgSpellBtnReplaceAll	: "Alle Ersetzen",
+DlgSpellBtnUndo			: "RÃ¼ckgÃ¤ngig",
+DlgSpellNoSuggestions	: " - keine VorschlÃ¤ge - ",
+DlgSpellProgress		: "RechtschreibprÃ¼fung lÃ¤uft...",
+DlgSpellNoMispell		: "RechtschreibprÃ¼fung abgeschlossen - keine Fehler gefunden",
+DlgSpellNoChanges		: "RechtschreibprÃ¼fung abgeschlossen - keine Worte geÃ¤ndert",
+DlgSpellOneChange		: "RechtschreibprÃ¼fung abgeschlossen - ein Wort geÃ¤ndert",
+DlgSpellManyChanges		: "RechtschreibprÃ¼fung abgeschlossen - %1 WÃ¶rter geÃ¤ndert",
+
+IeSpellDownload			: "RechtschreibprÃ¼fung nicht installiert. MÃ¶chten Sie sie jetzt herunterladen?",
+
+// Button Dialog
+DlgButtonText		: "Text (Wert)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Absenden",
+DlgButtonTypeRst	: "ZurÃ¼cksetzen",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Wert",
+DlgCheckboxSelected	: "ausgewÃ¤hlt",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Wert",
+DlgSelectSize		: "GrÃ¶ÃŸe",
+DlgSelectLines		: "Linien",
+DlgSelectChkMulti	: "Erlaube Mehrfachauswahl",
+DlgSelectOpAvail	: "MÃ¶gliche Optionen",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Wert",
+DlgSelectBtnAdd		: "HinzufÃ¼gen",
+DlgSelectBtnModify	: "Ã„ndern",
+DlgSelectBtnUp		: "Hoch",
+DlgSelectBtnDown	: "Runter",
+DlgSelectBtnSetValue : "Setze als Standardwert",
+DlgSelectBtnDelete	: "Entfernen",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Spalten",
+DlgTextareaRows	: "Reihen",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Wert",
+DlgTextCharWidth	: "Zeichenbreite",
+DlgTextMaxChars		: "Max. Zeichen",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Passwort",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Wert",
+
+// Bulleted List Dialog
+BulletedListProp	: "Listen-Eigenschaften",
+NumberedListProp	: "Nummerierte Listen-Eigenschaften",
+DlgLstStart			: "Start",
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Kreis",
+DlgLstTypeSquare	: "Quadrat",
+DlgLstTypeNumbers	: "Nummern (1, 2, 3)",
+DlgLstTypeLCase		: "Kleinbuchstaben (a, b, c)",
+DlgLstTypeUCase		: "GroÃŸbuchstaben (A, B, C)",
+DlgLstTypeSRoman	: "Kleine rÃ¶mische Zahlen (i, ii, iii)",
+DlgLstTypeLRoman	: "GroÃŸe rÃ¶mische Zahlen (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Allgemein",
+DlgDocBackTab		: "Hintergrund",
+DlgDocColorsTab		: "Farben und AbstÃ¤nde",
+DlgDocMetaTab		: "Metadaten",
+
+DlgDocPageTitle		: "Seitentitel",
+DlgDocLangDir		: "Schriftrichtung",
+DlgDocLangDirLTR	: "Links nach Rechts",
+DlgDocLangDirRTL	: "Rechts nach Links",
+DlgDocLangCode		: "SprachkÃ¼rzel",
+DlgDocCharSet		: "Zeichenkodierung",
+DlgDocCharSetCE		: "ZentraleuropÃ¤isch",
+DlgDocCharSetCT		: "traditionell Chinesisch (Big5)",
+DlgDocCharSetCR		: "Kyrillisch",
+DlgDocCharSetGR		: "Griechisch",
+DlgDocCharSetJP		: "Japanisch",
+DlgDocCharSetKR		: "Koreanisch",
+DlgDocCharSetTR		: "TÃ¼rkisch",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "WesteuropÃ¤isch",
+DlgDocCharSetOther	: "Andere Zeichenkodierung",
+
+DlgDocDocType		: "Dokumententyp",
+DlgDocDocTypeOther	: "Anderer Dokumententyp",
+DlgDocIncXHTML		: "Beziehe XHTML Deklarationen ein",
+DlgDocBgColor		: "Hintergrundfarbe",
+DlgDocBgImage		: "Hintergrundbild URL",
+DlgDocBgNoScroll	: "feststehender Hintergrund",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Besuchter Link",
+DlgDocCActive		: "Aktiver Link",
+DlgDocMargins		: "SeitenrÃ¤nder",
+DlgDocMaTop			: "Oben",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Rechts",
+DlgDocMaBottom		: "Unten",
+DlgDocMeIndex		: "SchlÃ¼sselwÃ¶rter (durch Komma getrennt)",
+DlgDocMeDescr		: "Dokument-Beschreibung",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vorschau",
+
+// Templates Dialog
+Templates			: "Vorlagen",
+DlgTemplatesTitle	: "Vorlagen",
+DlgTemplatesSelMsg	: "Klicken Sie auf eine Vorlage, um sie im Editor zu Ã¶ffnen (der aktuelle Inhalt wird dabei gelÃ¶scht!):",
+DlgTemplatesLoading	: "Liste der Vorlagen wird geladen. Bitte warten...",
+DlgTemplatesNoTpl	: "(keine Vorlagen definiert)",
+DlgTemplatesReplace	: "Aktuellen Inhalt ersetzen",
+
+// About Dialog
+DlgAboutAboutTab	: "Ãœber",
+DlgAboutBrowserInfoTab	: "Browser-Info",
+DlgAboutLicenseTab	: "Lizenz",
+DlgAboutVersion		: "Version",
+DlgAboutInfo		: "FÃ¼r weitere Informationen siehe"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sv.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sv.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/sv.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Swedish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "DÃ¶lj verktygsfÃ¤lt",
+ToolbarExpand		: "Visa verktygsfÃ¤lt",
+
+// Toolbar Items and Context Menu
+Save				: "Spara",
+NewPage				: "Ny sida",
+Preview				: "FÃ¶rhandsgranska",
+Cut					: "Klipp ut",
+Copy				: "Kopiera",
+Paste				: "Klistra in",
+PasteText			: "Klistra in som text",
+PasteWord			: "Klistra in frÃ¥n Word",
+Print				: "Skriv ut",
+SelectAll			: "Markera allt",
+RemoveFormat		: "Radera formatering",
+InsertLinkLbl		: "LÃ¤nk",
+InsertLink			: "Infoga/Redigera lÃ¤nk",
+RemoveLink			: "Radera lÃ¤nk",
+Anchor				: "Infoga/Redigera ankarlÃ¤nk",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Bild",
+InsertImage			: "Infoga/Redigera bild",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Infoga/Redigera Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Infoga/Redigera tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Infoga horisontal linje",
+InsertSpecialCharLbl: "UtÃ¶kade tecken",
+InsertSpecialChar	: "Klistra in utÃ¶kat tecken",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Infoga Smiley",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understruken",
+StrikeThrough		: "Genomstruken",
+Subscript			: "NedsÃ¤nkta tecken",
+Superscript			: "UpphÃ¶jda tecken",
+LeftJustify			: "VÃ¤nsterjustera",
+CenterJustify		: "Centrera",
+RightJustify		: "HÃ¶gerjustera",
+BlockJustify		: "Justera till marginaler",
+DecreaseIndent		: "Minska indrag",
+IncreaseIndent		: "Ã–ka indrag",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Ã…ngra",
+Redo				: "GÃ¶r om",
+NumberedListLbl		: "Numrerad lista",
+NumberedList		: "Infoga/Radera numrerad lista",
+BulletedListLbl		: "Punktlista",
+BulletedList		: "Infoga/Radera punktlista",
+ShowTableBorders	: "Visa tabellkant",
+ShowDetails			: "Visa radbrytningar",
+Style				: "Anpassad stil",
+FontFormat			: "Teckenformat",
+Font				: "Typsnitt",
+FontSize			: "Storlek",
+TextColor			: "TextfÃ¤rg",
+BGColor				: "BakgrundsfÃ¤rg",
+Source				: "KÃ¤lla",
+Find				: "SÃ¶k",
+Replace				: "ErsÃ¤tt",
+SpellCheck			: "Stavningskontroll",
+UniversalKeyboard	: "Universellt tangentbord",
+PageBreakLbl		: "Sidbrytning",
+PageBreak			: "Infoga sidbrytning",
+
+Form			: "FormulÃ¤r",
+Checkbox		: "Kryssruta",
+RadioButton		: "Alternativknapp",
+TextField		: "TextfÃ¤lt",
+Textarea		: "Textruta",
+HiddenField		: "Dolt fÃ¤lt",
+Button			: "Knapp",
+SelectionField	: "Flervalslista",
+ImageButton		: "Bildknapp",
+
+FitWindow		: "Anpassa till fÃ¶nstrets storlek",
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Redigera lÃ¤nk",
+CellCM				: "Cell",
+RowCM				: "Rad",
+ColumnCM			: "Kolumn",
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Radera rad",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Radera kolumn",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Radera celler",
+MergeCells			: "Sammanfoga celler",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Radera tabell",
+CellProperties		: "Cellegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildegenskaper",
+FlashProperties		: "Flashegenskaper",
+
+AnchorProp			: "Egenskaper fÃ¶r ankarlÃ¤nk",
+ButtonProp			: "Egenskaper fÃ¶r knapp",
+CheckboxProp		: "Egenskaper fÃ¶r kryssruta",
+HiddenFieldProp		: "Egenskaper fÃ¶r dolt fÃ¤lt",
+RadioButtonProp		: "Egenskaper fÃ¶r alternativknapp",
+ImageButtonProp		: "Egenskaper fÃ¶r bildknapp",
+TextFieldProp		: "Egenskaper fÃ¶r textfÃ¤lt",
+SelectionFieldProp	: "Egenskaper fÃ¶r flervalslista",
+TextareaProp		: "Egenskaper fÃ¶r textruta",
+FormProp			: "Egenskaper fÃ¶r formulÃ¤r",
+
+FontFormats			: "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Bearbetar XHTML. Var god vÃ¤nta...",
+Done				: "Klar",
+PasteWordConfirm	: "Texten du vill klistra in verkar vara kopierad frÃ¥n Word. Vill du rensa innan du klistar in?",
+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?",
+UnknownToolbarItem	: "OkÃ¤nt verktygsfÃ¤lt \"%1\"",
+UnknownCommand		: "OkÃ¤nt kommando \"%1\"",
+NotImplemented		: "Kommandot finns ej",
+UnknownToolbarSet	: "VerktygsfÃ¤lt \"%1\" finns ej",
+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Ã¥.",
+BrowseServerBlocked : "Kunde Ej Ã¶ppna resursfÃ¶nstret. Var god och avaktivera alla popup-blockerare.",
+DialogBlocked		: "Kunde Ej Ã¶ppna dialogfÃ¶nstret. Var god och avaktivera alla popup-blockerare.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "StÃ¤ng",
+DlgBtnBrowseServer	: "BlÃ¤ddra pÃ¥ server",
+DlgAdvancedTag		: "Avancerad",
+DlgOpOther			: "Ã–vrigt",
+DlgInfoTab			: "Information",
+DlgAlertUrl			: "Var god och ange en URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ej angivet>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "SprÃ¥kriktning",
+DlgGenLangDirLtr	: "VÃ¤nster till HÃ¶ger (VTH)",
+DlgGenLangDirRtl	: "HÃ¶ger till VÃ¤nster (HTV)",
+DlgGenLangCode		: "SprÃ¥kkod",
+DlgGenAccessKey		: "BehÃ¶righetsnyckel",
+DlgGenName			: "Namn",
+DlgGenTabIndex		: "Tabindex",
+DlgGenLongDescr		: "URL-beskrivning",
+DlgGenClass			: "Stylesheet class",
+DlgGenTitle			: "Titel",
+DlgGenContType		: "InnehÃ¥llstyp",
+DlgGenLinkCharset	: "TeckenuppstÃ¤llning",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Bildegenskaper",
+DlgImgInfoTab		: "Bildinformation",
+DlgImgBtnUpload		: "Skicka till server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ladda upp",
+DlgImgAlt			: "Alternativ text",
+DlgImgWidth			: "Bredd",
+DlgImgHeight		: "HÃ¶jd",
+DlgImgLockRatio		: "LÃ¥s hÃ¶jd/bredd fÃ¶rhÃ¥llanden",
+DlgBtnResetSize		: "Ã…terstÃ¤ll storlek",
+DlgImgBorder		: "Kant",
+DlgImgHSpace		: "Horis. marginal",
+DlgImgVSpace		: "Vert. marginal",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "VÃ¤nster",
+DlgImgAlignAbsBottom: "Absolut nederkant",
+DlgImgAlignAbsMiddle: "Absolut centrering",
+DlgImgAlignBaseline	: "Baslinje",
+DlgImgAlignBottom	: "Nederkant",
+DlgImgAlignMiddle	: "Mitten",
+DlgImgAlignRight	: "HÃ¶ger",
+DlgImgAlignTextTop	: "Text Ã¶verkant",
+DlgImgAlignTop		: "Ã–verkant",
+DlgImgPreview		: "FÃ¶rhandsgranska",
+DlgImgAlertUrl		: "Var god och ange bildens URL",
+DlgImgLinkTab		: "LÃ¤nk",
+
+// Flash Dialog
+DlgFlashTitle		: "Flashegenskaper",
+DlgFlashChkPlay		: "Automatisk uppspelning",
+DlgFlashChkLoop		: "Upprepa/Loopa",
+DlgFlashChkMenu		: "Aktivera Flashmeny",
+DlgFlashScale		: "Skala",
+DlgFlashScaleAll	: "Visa allt",
+DlgFlashScaleNoBorder	: "Ingen ram",
+DlgFlashScaleFit	: "Exakt passning",
+
+// Link Dialog
+DlgLnkWindowTitle	: "LÃ¤nk",
+DlgLnkInfoTab		: "LÃ¤nkinformation",
+DlgLnkTargetTab		: "MÃ¥l",
+
+DlgLnkType			: "LÃ¤nktyp",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankare i sidan",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<Ã¶vrigt>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "VÃ¤lj ett ankare",
+DlgLnkAnchorByName	: "efter ankarnamn",
+DlgLnkAnchorById	: "efter objektid",
+DlgLnkNoAnchors		: "(Inga ankare kunde hittas)",
+DlgLnkEMail			: "E-postadress",
+DlgLnkEMailSubject	: "Ã„mne",
+DlgLnkEMailBody		: "InnehÃ¥ll",
+DlgLnkUpload		: "Ladda upp",
+DlgLnkBtnUpload		: "Skicka till servern",
+
+DlgLnkTarget		: "MÃ¥l",
+DlgLnkTargetFrame	: "<ram>",
+DlgLnkTargetPopup	: "<popup-fÃ¶nster>",
+DlgLnkTargetBlank	: "Nytt fÃ¶nster (_blank)",
+DlgLnkTargetParent	: "FÃ¶regÃ¥ende Window (_parent)",
+DlgLnkTargetSelf	: "Detta fÃ¶nstret (_self)",
+DlgLnkTargetTop		: "Ã–versta fÃ¶nstret (_top)",
+DlgLnkTargetFrameName	: "MÃ¥lets ramnamn",
+DlgLnkPopWinName	: "Popup-fÃ¶nstrets namn",
+DlgLnkPopWinFeat	: "Popup-fÃ¶nstrets egenskaper",
+DlgLnkPopResize		: "Kan Ã¤ndra storlek",
+DlgLnkPopLocation	: "AdressfÃ¤lt",
+DlgLnkPopMenu		: "MenyfÃ¤lt",
+DlgLnkPopScroll		: "Scrolllista",
+DlgLnkPopStatus		: "StatusfÃ¤lt",
+DlgLnkPopToolbar	: "VerktygsfÃ¤lt",
+DlgLnkPopFullScrn	: "HelskÃ¤rm (endast IE)",
+DlgLnkPopDependent	: "Beroende (endest Netscape)",
+DlgLnkPopWidth		: "Bredd",
+DlgLnkPopHeight		: "HÃ¶jd",
+DlgLnkPopLeft		: "Position frÃ¥n vÃ¤nster",
+DlgLnkPopTop		: "Position frÃ¥n sidans topp",
+
+DlnLnkMsgNoUrl		: "Var god ange lÃ¤nkens URL",
+DlnLnkMsgNoEMail	: "Var god ange E-postadress",
+DlnLnkMsgNoAnchor	: "Var god ange ett ankare",
+DlnLnkMsgInvPopName	: "Popup-rutans namn mÃ¥ste bÃ¶rja med en alfabetisk bokstav och fÃ¥r inte innehÃ¥lla mellanslag",
+
+// Color Dialog
+DlgColorTitle		: "VÃ¤lj fÃ¤rg",
+DlgColorBtnClear	: "Rensa",
+DlgColorHighlight	: "Markera",
+DlgColorSelected	: "Vald",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Infoga smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "VÃ¤lj utÃ¶kat tecken",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolumner",
+DlgTableBorder		: "Kantstorlek",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<ej angivet>",
+DlgTableAlignLeft	: "VÃ¤nster",
+DlgTableAlignCenter	: "Centrerad",
+DlgTableAlignRight	: "HÃ¶ger",
+DlgTableWidth		: "Bredd",
+DlgTableWidthPx		: "pixlar",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "HÃ¶jd",
+DlgTableCellSpace	: "CellavstÃ¥nd",
+DlgTableCellPad		: "Cellutfyllnad",
+DlgTableCaption		: "Rubrik",
+DlgTableSummary		: "Sammanfattning",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cellegenskaper",
+DlgCellWidth		: "Bredd",
+DlgCellWidthPx		: "pixlar",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "HÃ¶jd",
+DlgCellWordWrap		: "Automatisk radbrytning",
+DlgCellWordWrapNotSet	: "<Ej angivet>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nej",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ej angivet>",
+DlgCellHorAlignLeft	: "VÃ¤nster",
+DlgCellHorAlignCenter	: "Centrerad",
+DlgCellHorAlignRight: "HÃ¶ger",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ej angivet>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Mitten",
+DlgCellVerAlignBottom	: "Nederkant",
+DlgCellVerAlignBaseline	: "Underst",
+DlgCellRowSpan		: "RadomfÃ¥ng",
+DlgCellCollSpan		: "KolumnomfÃ¥ng",
+DlgCellBackColor	: "BakgrundsfÃ¤rg",
+DlgCellBorderColor	: "KantfÃ¤rg",
+DlgCellBtnSelect	: "VÃ¤lj...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "SÃ¶k",
+DlgFindFindBtn		: "SÃ¶k",
+DlgFindNotFoundMsg	: "Angiven text kunde ej hittas.",
+
+// Replace Dialog
+DlgReplaceTitle			: "ErsÃ¤tt",
+DlgReplaceFindLbl		: "SÃ¶k efter:",
+DlgReplaceReplaceLbl	: "ErsÃ¤tt med:",
+DlgReplaceCaseChk		: "SkiftlÃ¤ge",
+DlgReplaceReplaceBtn	: "ErsÃ¤tt",
+DlgReplaceReplAllBtn	: "ErsÃ¤tt alla",
+DlgReplaceWordChk		: "Inkludera hela ord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "SÃ¤kerhetsinstÃ¤llningar i Er weblÃ¤sare tillÃ¥ter inte Ã¥tgÃ¥rden Klipp ut. AnvÃ¤nd (Ctrl+X) istÃ¤llet.",
+PasteErrorCopy	: "SÃ¤kerhetsinstÃ¤llningar i Er weblÃ¤sare tillÃ¥ter inte Ã¥tgÃ¥rden Kopiera. AnvÃ¤nd (Ctrl+C) istÃ¤llet",
+
+PasteAsText		: "Klistra in som vanlig text",
+PasteFromWord	: "Klistra in frÃ¥n Word",
+
+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>.",
+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.",
+DlgPasteIgnoreFont		: "Ignorera typsnittsdefinitioner",
+DlgPasteRemoveStyles	: "Radera Stildefinitioner",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Fler fÃ¤rger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankaregenskaper",
+DlgAnchorName		: "Ankarnamn",
+DlgAnchorErrorName	: "Var god ange ett ankarnamn",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Saknas i ordlistan",
+DlgSpellChangeTo		: "Ã„ndra till",
+DlgSpellBtnIgnore		: "Ignorera",
+DlgSpellBtnIgnoreAll	: "Ignorera alla",
+DlgSpellBtnReplace		: "ErsÃ¤tt",
+DlgSpellBtnReplaceAll	: "ErsÃ¤tt alla",
+DlgSpellBtnUndo			: "Ã…ngra",
+DlgSpellNoSuggestions	: "- FÃ¶rslag saknas -",
+DlgSpellProgress		: "Stavningskontroll pÃ¥gÃ¥r...",
+DlgSpellNoMispell		: "Stavningskontroll slutfÃ¶rd: Inga stavfel pÃ¥trÃ¤ffades.",
+DlgSpellNoChanges		: "Stavningskontroll slutfÃ¶rd: Inga ord rÃ¤ttades.",
+DlgSpellOneChange		: "Stavningskontroll slutfÃ¶rd: Ett ord rÃ¤ttades.",
+DlgSpellManyChanges		: "Stavningskontroll slutfÃ¶rd: %1 ord rÃ¤ttades.",
+
+IeSpellDownload			: "Stavningskontrollen Ã¤r ej installerad. Vill du gÃ¶ra det nu?",
+
+// Button Dialog
+DlgButtonText		: "Text (VÃ¤rde)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Knapp",
+DlgButtonTypeSbm	: "Skicka",
+DlgButtonTypeRst	: "Ã…terstÃ¤ll",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Namn",
+DlgCheckboxValue	: "VÃ¤rde",
+DlgCheckboxSelected	: "Vald",
+
+// Form Dialog
+DlgFormName		: "Namn",
+DlgFormAction	: "Funktion",
+DlgFormMethod	: "Metod",
+
+// Select Field Dialog
+DlgSelectName		: "Namn",
+DlgSelectValue		: "VÃ¤rde",
+DlgSelectSize		: "Storlek",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "TillÃ¥t flerval",
+DlgSelectOpAvail	: "Befintliga val",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "VÃ¤rde",
+DlgSelectBtnAdd		: "LÃ¤gg till",
+DlgSelectBtnModify	: "Redigera",
+DlgSelectBtnUp		: "Upp",
+DlgSelectBtnDown	: "Ner",
+DlgSelectBtnSetValue : "Markera som valt vÃ¤rde",
+DlgSelectBtnDelete	: "Radera",
+
+// Textarea Dialog
+DlgTextareaName	: "Namn",
+DlgTextareaCols	: "Kolumner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Namn",
+DlgTextValue		: "VÃ¤rde",
+DlgTextCharWidth	: "Teckenbredd",
+DlgTextMaxChars		: "Max antal tecken",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "LÃ¶senord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Namn",
+DlgHiddenValue	: "VÃ¤rde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Egenskaper fÃ¶r punktlista",
+NumberedListProp	: "Egenskaper fÃ¶r numrerad lista",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Punkt",
+DlgLstTypeSquare	: "Ruta",
+DlgLstTypeNumbers	: "Nummer (1, 2, 3)",
+DlgLstTypeLCase		: "Gemener (a, b, c)",
+DlgLstTypeUCase		: "Versaler (A, B, C)",
+DlgLstTypeSRoman	: "SmÃ¥ romerska siffror (i, ii, iii)",
+DlgLstTypeLRoman	: "Stora romerska siffror (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "AllmÃ¤n",
+DlgDocBackTab		: "Bakgrund",
+DlgDocColorsTab		: "FÃ¤rg och marginal",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Sidtitel",
+DlgDocLangDir		: "SprÃ¥kriktning",
+DlgDocLangDirLTR	: "VÃ¤nster till HÃ¶ger",
+DlgDocLangDirRTL	: "HÃ¶ger till VÃ¤nster",
+DlgDocLangCode		: "SprÃ¥kkod",
+DlgDocCharSet		: "TeckenuppsÃ¤ttningar",
+DlgDocCharSetCE		: "Central Europa",
+DlgDocCharSetCT		: "Traditionell Kinesisk (Big5)",
+DlgDocCharSetCR		: "Kyrillisk",
+DlgDocCharSetGR		: "Grekiska",
+DlgDocCharSetJP		: "Japanska",
+DlgDocCharSetKR		: "Koreanska",
+DlgDocCharSetTR		: "Turkiska",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "VÃ¤st Europa",
+DlgDocCharSetOther	: "Ã–vriga teckenuppsÃ¤ttningar",
+
+DlgDocDocType		: "Sidhuvud",
+DlgDocDocTypeOther	: "Ã–vriga sidhuvuden",
+DlgDocIncXHTML		: "Inkludera XHTML deklaration",
+DlgDocBgColor		: "BakgrundsfÃ¤rg",
+DlgDocBgImage		: "Bakgrundsbildens URL",
+DlgDocBgNoScroll	: "Fast bakgrund",
+DlgDocCText			: "Text",
+DlgDocCLink			: "LÃ¤nk",
+DlgDocCVisited		: "BesÃ¶kt lÃ¤nk",
+DlgDocCActive		: "Aktiv lÃ¤nk",
+DlgDocMargins		: "Sidmarginal",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "VÃ¤nster",
+DlgDocMaRight		: "HÃ¶ger",
+DlgDocMaBottom		: "Botten",
+DlgDocMeIndex		: "Sidans nyckelord",
+DlgDocMeDescr		: "Sidans beskrivning",
+DlgDocMeAuthor		: "FÃ¶rfattare",
+DlgDocMeCopy		: "UpphovsrÃ¤tt",
+DlgDocPreview		: "FÃ¶rhandsgranska",
+
+// Templates Dialog
+Templates			: "Sidmallar",
+DlgTemplatesTitle	: "Sidmallar",
+DlgTemplatesSelMsg	: "Var god vÃ¤lj en mall att anvÃ¤nda med editorn<br>(allt nuvarande innehÃ¥ll raderas):",
+DlgTemplatesLoading	: "Laddar mallar. Var god vÃ¤nta...",
+DlgTemplatesNoTpl	: "(Ingen mall Ã¤r vald)",
+DlgTemplatesReplace	: "ErsÃ¤tt aktuellt innehÃ¥ll",
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "WeblÃ¤sare",
+DlgAboutLicenseTab	: "Licens",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "FÃ¶r mer information se"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ja.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ja.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/ja.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Japanese language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "ãƒ„ãƒ¼ãƒ«ãƒãƒ¼ã‚’éš ã™",
+ToolbarExpand		: "ãƒ„ãƒ¼ãƒ«ãƒãƒ¼ã‚’è¡¨ç¤º",
+
+// Toolbar Items and Context Menu
+Save				: "ä¿å­˜",
+NewPage				: "æ–°ã—ã„ãƒšãƒ¼ã‚¸",
+Preview				: "ãƒ—ãƒ¬ãƒ“ãƒ¥ãƒ¼",
+Cut					: "åˆ‡ã‚Šå–ã‚Š",
+Copy				: "ã‚³ãƒ”ãƒ¼",
+Paste				: "è²¼ã‚Šä»˜ã‘",
+PasteText			: "ãƒ—ãƒ¬ãƒ¼ãƒ³ãƒ†ã‚­ã‚¹ãƒˆè²¼ã‚Šä»˜ã‘",
+PasteWord			: "ãƒ¯ãƒ¼ãƒ‰æ–‡ç« ã‹ã‚‰è²¼ã‚Šä»˜ã‘",
+Print				: "å°åˆ·",
+SelectAll			: "ã™ã¹ã¦é¸æŠž",
+RemoveFormat		: "ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆå‰Šé™¤",
+InsertLinkLbl		: "ãƒªãƒ³ã‚¯",
+InsertLink			: "ãƒªãƒ³ã‚¯æŒ¿å…¥/ç·¨é›†",
+RemoveLink			: "ãƒªãƒ³ã‚¯å‰Šé™¤",
+Anchor				: "ã‚¢ãƒ³ã‚«ãƒ¼æŒ¿å…¥/ç·¨é›†",
+AnchorDelete		: "ã‚¢ãƒ³ã‚«ãƒ¼å‰Šé™¤",
+InsertImageLbl		: "ã‚¤ãƒ¡ãƒ¼ã‚¸",
+InsertImage			: "ã‚¤ãƒ¡ãƒ¼ã‚¸æŒ¿å…¥/ç·¨é›†",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "FlashæŒ¿å…¥/ç·¨é›†",
+InsertTableLbl		: "ãƒ†ãƒ¼ãƒ–ãƒ«",
+InsertTable			: "ãƒ†ãƒ¼ãƒ–ãƒ«æŒ¿å…¥/ç·¨é›†",
+InsertLineLbl		: "ãƒ©ã‚¤ãƒ³",
+InsertLine			: "æ¨ªç½«ç·š",
+InsertSpecialCharLbl: "ç‰¹æ®Šæ–‡å­—",
+InsertSpecialChar	: "ç‰¹æ®Šæ–‡å­—æŒ¿å…¥",
+InsertSmileyLbl		: "çµµæ–‡å­—",
+InsertSmiley		: "çµµæ–‡å­—æŒ¿å…¥",
+About				: "FCKeditorãƒ˜ãƒ«ãƒ—",
+Bold				: "å¤ªå­—",
+Italic				: "æ–œä½“",
+Underline			: "ä¸‹ç·š",
+StrikeThrough		: "æ‰“ã¡æ¶ˆã—ç·š",
+Subscript			: "æ·»ãˆå­—",
+Superscript			: "ä¸Šä»˜ãæ–‡å­—",
+LeftJustify			: "å·¦æƒãˆ",
+CenterJustify		: "ä¸­å¤®æƒãˆ",
+RightJustify		: "å³æƒãˆ",
+BlockJustify		: "ä¸¡ç«¯æƒãˆ",
+DecreaseIndent		: "ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆè§£é™¤",
+IncreaseIndent		: "ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆ",
+Blockquote			: "ãƒ–ãƒ­ãƒƒã‚¯å¼•ç”¨",
+Undo				: "å…ƒã«æˆ»ã™",
+Redo				: "ã‚„ã‚Šç›´ã—",
+NumberedListLbl		: "æ®µè½ç•ªå·",
+NumberedList		: "æ®µè½ç•ªå·ã®è¿½åŠ /å‰Šé™¤",
+BulletedListLbl		: "ç®‡æ¡æ›¸ã",
+BulletedList		: "ç®‡æ¡æ›¸ãã®è¿½åŠ /å‰Šé™¤",
+ShowTableBorders	: "ãƒ†ãƒ¼ãƒ–ãƒ«ãƒœãƒ¼ãƒ€ãƒ¼è¡¨ç¤º",
+ShowDetails			: "è©³ç´°è¡¨ç¤º",
+Style				: "ã‚¹ã‚¿ã‚¤ãƒ«",
+FontFormat			: "ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ",
+Font				: "ãƒ•ã‚©ãƒ³ãƒˆ",
+FontSize			: "ã‚µã‚¤ã‚º",
+TextColor			: "ãƒ†ã‚­ã‚¹ãƒˆè‰²",
+BGColor				: "èƒŒæ™¯è‰²",
+Source				: "ã‚½ãƒ¼ã‚¹",
+Find				: "æ¤œç´¢",
+Replace				: "ç½®ãæ›ãˆ",
+SpellCheck			: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯",
+UniversalKeyboard	: "ãƒ¦ãƒ‹ãƒãƒ¼ã‚µãƒ«ãƒ»ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰",
+PageBreakLbl		: "æ”¹ãƒšãƒ¼ã‚¸",
+PageBreak			: "æ”¹ãƒšãƒ¼ã‚¸æŒ¿å…¥",
+
+Form			: "ãƒ•ã‚©ãƒ¼ãƒ ",
+Checkbox		: "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹",
+RadioButton		: "ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³",
+TextField		: "ï¼‘è¡Œãƒ†ã‚­ã‚¹ãƒˆ",
+Textarea		: "ãƒ†ã‚­ã‚¹ãƒˆã‚¨ãƒªã‚¢",
+HiddenField		: "ä¸å¯è¦–ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰",
+Button			: "ãƒœã‚¿ãƒ³",
+SelectionField	: "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰",
+ImageButton		: "ç”»åƒãƒœã‚¿ãƒ³",
+
+FitWindow		: "ã‚¨ãƒ‡ã‚£ã‚¿ã‚µã‚¤ã‚ºã‚’æœ€å¤§ã«ã—ã¾ã™",
+ShowBlocks		: "ãƒ–ãƒ­ãƒƒã‚¯è¡¨ç¤º",
+
+// Context Menu
+EditLink			: "ãƒªãƒ³ã‚¯ç·¨é›†",
+CellCM				: "ã‚»ãƒ«",
+RowCM				: "è¡Œ",
+ColumnCM			: "ã‚«ãƒ©ãƒ ",
+InsertRowAfter		: "åˆ—ã®å¾Œã«æŒ¿å…¥",
+InsertRowBefore		: "åˆ—ã®å‰ã«æŒ¿å…¥",
+DeleteRows			: "è¡Œå‰Šé™¤",
+InsertColumnAfter	: "ã‚«ãƒ©ãƒ ã®å¾Œã«æŒ¿å…¥",
+InsertColumnBefore	: "ã‚«ãƒ©ãƒ ã®å‰ã«æŒ¿å…¥",
+DeleteColumns		: "åˆ—å‰Šé™¤",
+InsertCellAfter		: "ã‚»ãƒ«ã®å¾Œã«æŒ¿å…¥",
+InsertCellBefore	: "ã‚»ãƒ«ã®å‰ã«æŒ¿å…¥",
+DeleteCells			: "ã‚»ãƒ«å‰Šé™¤",
+MergeCells			: "ã‚»ãƒ«çµåˆ",
+MergeRight			: "å³ã«çµåˆ",
+MergeDown			: "ä¸‹ã«çµåˆ",
+HorizontalSplitCell	: "ã‚»ãƒ«ã‚’æ°´å¹³æ–¹å‘åˆ†å‰²",
+VerticalSplitCell	: "ã‚»ãƒ«ã‚’åž‚ç›´æ–¹å‘ã«åˆ†å‰²",
+TableDelete			: "ãƒ†ãƒ¼ãƒ–ãƒ«å‰Šé™¤",
+CellProperties		: "ã‚»ãƒ« ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+TableProperties		: "ãƒ†ãƒ¼ãƒ–ãƒ« ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+ImageProperties		: "ã‚¤ãƒ¡ãƒ¼ã‚¸ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+FlashProperties		: "Flash ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+
+AnchorProp			: "ã‚¢ãƒ³ã‚«ãƒ¼ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+ButtonProp			: "ãƒœã‚¿ãƒ³ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+CheckboxProp		: "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+HiddenFieldProp		: "ä¸å¯è¦–ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+RadioButtonProp		: "ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+ImageButtonProp		: "ç”»åƒãƒœã‚¿ãƒ³ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+TextFieldProp		: "ï¼‘è¡Œãƒ†ã‚­ã‚¹ãƒˆ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+SelectionFieldProp	: "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+TextareaProp		: "ãƒ†ã‚­ã‚¹ãƒˆã‚¨ãƒªã‚¢ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+FormProp			: "ãƒ•ã‚©ãƒ¼ãƒ  ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+
+FontFormats			: "æ¨™æº–;æ›¸å¼ä»˜ã;ã‚¢ãƒ‰ãƒ¬ã‚¹;è¦‹å‡ºã— 1;è¦‹å‡ºã— 2;è¦‹å‡ºã— 3;è¦‹å‡ºã— 4;è¦‹å‡ºã— 5;è¦‹å‡ºã— 6;æ¨™æº– (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTMLå‡¦ç†ä¸­. ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...",
+Done				: "å®Œäº†",
+PasteWordConfirm	: "è²¼ã‚Šä»˜ã‘ã‚’è¡Œã†ãƒ†ã‚­ã‚¹ãƒˆã¯ã€ãƒ¯ãƒ¼ãƒ‰æ–‡ç« ã‹ã‚‰ã‚³ãƒ”ãƒ¼ã•ã‚Œã‚ˆã†ã¨ã—ã¦ã„ã¾ã™ã€‚è²¼ã‚Šä»˜ã‘ã‚‹å‰ã«ã‚¯ãƒªãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã„ã¾ã™ã‹ï¼Ÿ",
+NotCompatiblePaste	: "ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆãƒ»ã‚¨ã‚¯ã‚¹ãƒ—ãƒ­ãƒ¼ãƒ©ãƒ¼ãƒãƒ¼ã‚¸ãƒ§ãƒ³5.5ä»¥ä¸Šã§åˆ©ç”¨å¯èƒ½ã§ã™ã€‚ã‚¯ãƒªãƒ¼ãƒ‹ãƒ³ã‚°ã—ãªã„ã§è²¼ã‚Šä»˜ã‘ã‚’è¡Œã„ã¾ã™ã‹ï¼Ÿ",
+UnknownToolbarItem	: "æœªçŸ¥ã®ãƒ„ãƒ¼ãƒ«ãƒãƒ¼é …ç›® \"%1\"",
+UnknownCommand		: "æœªçŸ¥ã®ã‚³ãƒžãƒ³ãƒ‰å \"%1\"",
+NotImplemented		: "ã‚³ãƒžãƒ³ãƒ‰ã¯ã‚¤ãƒ³ãƒ—ãƒªãƒ¡ãƒ³ãƒˆã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚",
+UnknownToolbarSet	: "ãƒ„ãƒ¼ãƒ«ãƒãƒ¼è¨­å®š \"%1\" å­˜åœ¨ã—ã¾ã›ã‚“ã€‚",
+NoActiveX			: "ã‚¨ãƒ©ãƒ¼ã€è­¦å‘Šãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãªã©ãŒç™ºç”Ÿã—ãŸå ´åˆã€ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®ã„ãã¤ã‹ã®æ©Ÿèƒ½ãŒåˆ¶é™ã•ã‚Œã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§\"ActiveXã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã¨ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã®å®Ÿè¡Œ\"ã‚’æœ‰åŠ¹ã«ã™ã‚‹ã«ã—ã¦ãã ã•ã„ã€‚",
+BrowseServerBlocked : "ã‚µãƒ¼ãƒãƒ¼ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ãƒãƒƒãƒ—ã‚¢ãƒƒãƒ—ãƒ»ãƒ–ãƒ­ãƒƒã‚¯æ©Ÿèƒ½ãŒç„¡åŠ¹ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„ã€‚",
+DialogBlocked		: "ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ãƒãƒƒãƒ—ã‚¢ãƒƒãƒ—ãƒ»ãƒ–ãƒ­ãƒƒã‚¯æ©Ÿèƒ½ãŒç„¡åŠ¹ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„ã€‚",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "ã‚­ãƒ£ãƒ³ã‚»ãƒ«",
+DlgBtnClose			: "é–‰ã˜ã‚‹",
+DlgBtnBrowseServer	: "ã‚µãƒ¼ãƒãƒ¼ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼",
+DlgAdvancedTag		: "é«˜åº¦ãªè¨­å®š",
+DlgOpOther			: "<ãã®ä»–>",
+DlgInfoTab			: "æƒ…å ±",
+DlgAlertUrl			: "URLã‚’æŒ¿å…¥ã—ã¦ãã ã•ã„",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ãªã—>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "æ–‡å­—è¡¨è¨˜ã®æ–¹å‘",
+DlgGenLangDirLtr	: "å·¦ã‹ã‚‰å³ (LTR)",
+DlgGenLangDirRtl	: "å³ã‹ã‚‰å·¦ (RTL)",
+DlgGenLangCode		: "è¨€èªžã‚³ãƒ¼ãƒ‰",
+DlgGenAccessKey		: "ã‚¢ã‚¯ã‚»ã‚¹ã‚­ãƒ¼",
+DlgGenName			: "Nameå±žæ€§",
+DlgGenTabIndex		: "ã‚¿ãƒ–ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹",
+DlgGenLongDescr		: "longdescå±žæ€§(é•·æ–‡èª¬æ˜Ž)",
+DlgGenClass			: "ã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒˆã‚¯ãƒ©ã‚¹",
+DlgGenTitle			: "Titleå±žæ€§",
+DlgGenContType		: "Content Typeå±žæ€§",
+DlgGenLinkCharset	: "ãƒªãƒ³ã‚¯charsetå±žæ€§",
+DlgGenStyle			: "ã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒˆ",
+
+// Image Dialog
+DlgImgTitle			: "ã‚¤ãƒ¡ãƒ¼ã‚¸ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgImgInfoTab		: "ã‚¤ãƒ¡ãƒ¼ã‚¸ æƒ…å ±",
+DlgImgBtnUpload		: "ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰",
+DlgImgAlt			: "ä»£æ›¿ãƒ†ã‚­ã‚¹ãƒˆ",
+DlgImgWidth			: "å¹…",
+DlgImgHeight		: "é«˜ã•",
+DlgImgLockRatio		: "ãƒ­ãƒƒã‚¯æ¯”çŽ‡",
+DlgBtnResetSize		: "ã‚µã‚¤ã‚ºãƒªã‚»ãƒƒãƒˆ",
+DlgImgBorder		: "ãƒœãƒ¼ãƒ€ãƒ¼",
+DlgImgHSpace		: "æ¨ªé–“éš”",
+DlgImgVSpace		: "ç¸¦é–“éš”",
+DlgImgAlign			: "è¡Œæƒãˆ",
+DlgImgAlignLeft		: "å·¦",
+DlgImgAlignAbsBottom: "ä¸‹éƒ¨(çµ¶å¯¾çš„)",
+DlgImgAlignAbsMiddle: "ä¸­å¤®(çµ¶å¯¾çš„)",
+DlgImgAlignBaseline	: "ãƒ™ãƒ¼ã‚¹ãƒ©ã‚¤ãƒ³",
+DlgImgAlignBottom	: "ä¸‹",
+DlgImgAlignMiddle	: "ä¸­å¤®",
+DlgImgAlignRight	: "å³",
+DlgImgAlignTextTop	: "ãƒ†ã‚­ã‚¹ãƒˆä¸Šéƒ¨",
+DlgImgAlignTop		: "ä¸Š",
+DlgImgPreview		: "ãƒ—ãƒ¬ãƒ“ãƒ¥ãƒ¼",
+DlgImgAlertUrl		: "ã‚¤ãƒ¡ãƒ¼ã‚¸ã®URLã‚’å…¥åŠ›ã—ã¦ãã ã•ã„ã€‚",
+DlgImgLinkTab		: "ãƒªãƒ³ã‚¯",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgFlashChkPlay		: "å†ç”Ÿ",
+DlgFlashChkLoop		: "ãƒ«ãƒ¼ãƒ—å†ç”Ÿ",
+DlgFlashChkMenu		: "Flashãƒ¡ãƒ‹ãƒ¥ãƒ¼å¯èƒ½",
+DlgFlashScale		: "æ‹¡å¤§ç¸®å°è¨­å®š",
+DlgFlashScaleAll	: "ã™ã¹ã¦è¡¨ç¤º",
+DlgFlashScaleNoBorder	: "å¤–ãŒè¦‹ãˆãªã„æ§˜ã«æ‹¡å¤§",
+DlgFlashScaleFit	: "ä¸Šä¸‹å·¦å³ã«ãƒ•ã‚£ãƒƒãƒˆ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ãƒã‚¤ãƒ‘ãƒ¼ãƒªãƒ³ã‚¯",
+DlgLnkInfoTab		: "ãƒã‚¤ãƒ‘ãƒ¼ãƒªãƒ³ã‚¯ æƒ…å ±",
+DlgLnkTargetTab		: "ã‚¿ãƒ¼ã‚²ãƒƒãƒˆ",
+
+DlgLnkType			: "ãƒªãƒ³ã‚¯ã‚¿ã‚¤ãƒ—",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "ã“ã®ãƒšãƒ¼ã‚¸ã®ã‚¢ãƒ³ã‚«ãƒ¼",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "ãƒ—ãƒ­ãƒˆã‚³ãƒ«",
+DlgLnkProtoOther	: "<ãã®ä»–>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ã‚¢ãƒ³ã‚«ãƒ¼ã‚’é¸æŠž",
+DlgLnkAnchorByName	: "ã‚¢ãƒ³ã‚«ãƒ¼å",
+DlgLnkAnchorById	: "ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆID",
+DlgLnkNoAnchors		: "(ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«ãŠã„ã¦åˆ©ç”¨å¯èƒ½ãªã‚¢ãƒ³ã‚«ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“ã€‚)",
+DlgLnkEMail			: "E-Mail ã‚¢ãƒ‰ãƒ¬ã‚¹",
+DlgLnkEMailSubject	: "ä»¶å",
+DlgLnkEMailBody		: "æœ¬æ–‡",
+DlgLnkUpload		: "ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰",
+DlgLnkBtnUpload		: "ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡",
+
+DlgLnkTarget		: "ã‚¿ãƒ¼ã‚²ãƒƒãƒˆ",
+DlgLnkTargetFrame	: "<ãƒ•ãƒ¬ãƒ¼ãƒ >",
+DlgLnkTargetPopup	: "<ãƒãƒƒãƒ—ã‚¢ãƒƒãƒ—ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦>",
+DlgLnkTargetBlank	: "æ–°ã—ã„ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ (_blank)",
+DlgLnkTargetParent	: "è¦ªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ (_parent)",
+DlgLnkTargetSelf	: "åŒã˜ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ (_self)",
+DlgLnkTargetTop		: "æœ€ä¸Šä½ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ (_top)",
+DlgLnkTargetFrameName	: "ç›®çš„ã®ãƒ•ãƒ¬ãƒ¼ãƒ å",
+DlgLnkPopWinName	: "ãƒãƒƒãƒ—ã‚¢ãƒƒãƒ—ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦å",
+DlgLnkPopWinFeat	: "ãƒãƒƒãƒ—ã‚¢ãƒƒãƒ—ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ç‰¹å¾´",
+DlgLnkPopResize		: "ãƒªã‚µã‚¤ã‚ºå¯èƒ½",
+DlgLnkPopLocation	: "ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒãƒ¼",
+DlgLnkPopMenu		: "ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼",
+DlgLnkPopScroll		: "ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ãƒãƒ¼",
+DlgLnkPopStatus		: "ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãƒãƒ¼",
+DlgLnkPopToolbar	: "ãƒ„ãƒ¼ãƒ«ãƒãƒ¼",
+DlgLnkPopFullScrn	: "å…¨ç”»é¢ãƒ¢ãƒ¼ãƒ‰(IE)",
+DlgLnkPopDependent	: "é–‹ã„ãŸã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«é€£å‹•ã—ã¦é–‰ã˜ã‚‹ (Netscape)",
+DlgLnkPopWidth		: "å¹…",
+DlgLnkPopHeight		: "é«˜ã•",
+DlgLnkPopLeft		: "å·¦ç«¯ã‹ã‚‰ã®åº§æ¨™ã§æŒ‡å®š",
+DlgLnkPopTop		: "ä¸Šç«¯ã‹ã‚‰ã®åº§æ¨™ã§æŒ‡å®š",
+
+DlnLnkMsgNoUrl		: "ãƒªãƒ³ã‚¯URLã‚’å…¥åŠ›ã—ã¦ãã ã•ã„ã€‚",
+DlnLnkMsgNoEMail	: "ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„ã€‚",
+DlnLnkMsgNoAnchor	: "ã‚¢ãƒ³ã‚«ãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„ã€‚",
+DlnLnkMsgInvPopName	: "ãƒãƒƒãƒ—ãƒ»ã‚¢ãƒƒãƒ—åã¯è‹±å­—ã§å§‹ã¾ã‚‹æ–‡å­—ã§æŒ‡å®šã—ã¦ãã ã„ã€‚ãƒãƒƒãƒ—ãƒ»ã‚¢ãƒƒãƒ—åã«ã‚¹ãƒšãƒ¼ã‚¹ã¯å«ã‚ã¾ã›ã‚“",
+
+// Color Dialog
+DlgColorTitle		: "è‰²é¸æŠž",
+DlgColorBtnClear	: "ã‚¯ãƒªã‚¢",
+DlgColorHighlight	: "ãƒã‚¤ãƒ©ã‚¤ãƒˆ",
+DlgColorSelected	: "é¸æŠžè‰²",
+
+// Smiley Dialog
+DlgSmileyTitle		: "é¡”æ–‡å­—æŒ¿å…¥",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "ç‰¹æ®Šæ–‡å­—é¸æŠž",
+
+// Table Dialog
+DlgTableTitle		: "ãƒ†ãƒ¼ãƒ–ãƒ« ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgTableRows		: "è¡Œ",
+DlgTableColumns		: "åˆ—",
+DlgTableBorder		: "ãƒœãƒ¼ãƒ€ãƒ¼ã‚µã‚¤ã‚º",
+DlgTableAlign		: "ã‚­ãƒ£ãƒ—ã‚·ãƒ§ãƒ³ã®æ•´åˆ—",
+DlgTableAlignNotSet	: "<ãªã—>",
+DlgTableAlignLeft	: "å·¦",
+DlgTableAlignCenter	: "ä¸­å¤®",
+DlgTableAlignRight	: "å³",
+DlgTableWidth		: "ãƒ†ãƒ¼ãƒ–ãƒ«å¹…",
+DlgTableWidthPx		: "ãƒ”ã‚¯ã‚»ãƒ«",
+DlgTableWidthPc		: "ãƒ‘ãƒ¼ã‚»ãƒ³ãƒˆ",
+DlgTableHeight		: "ãƒ†ãƒ¼ãƒ–ãƒ«é«˜ã•",
+DlgTableCellSpace	: "ã‚»ãƒ«å†…ä½™ç™½",
+DlgTableCellPad		: "ã‚»ãƒ«å†…é–“éš”",
+DlgTableCaption		: "ï½·ï½¬ï¾Œï¾Ÿï½¼ï½®ï¾",
+DlgTableSummary		: "ãƒ†ãƒ¼ãƒ–ãƒ«ç›®çš„/æ§‹é€ ",
+
+// Table Cell Dialog
+DlgCellTitle		: "ã‚»ãƒ« ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgCellWidth		: "å¹…",
+DlgCellWidthPx		: "ãƒ”ã‚¯ã‚»ãƒ«",
+DlgCellWidthPc		: "ãƒ‘ãƒ¼ã‚»ãƒ³ãƒˆ",
+DlgCellHeight		: "é«˜ã•",
+DlgCellWordWrap		: "æŠ˜ã‚Šè¿”ã—",
+DlgCellWordWrapNotSet	: "<ãªã—>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "ã‚»ãƒ«æ¨ªã®æ•´åˆ—",
+DlgCellHorAlignNotSet	: "<ãªã—>",
+DlgCellHorAlignLeft	: "å·¦",
+DlgCellHorAlignCenter	: "ä¸­å¤®",
+DlgCellHorAlignRight: "å³",
+DlgCellVerAlign		: "ã‚»ãƒ«ç¸¦ã®æ•´åˆ—",
+DlgCellVerAlignNotSet	: "<ãªã—>",
+DlgCellVerAlignTop	: "ä¸Š",
+DlgCellVerAlignMiddle	: "ä¸­å¤®",
+DlgCellVerAlignBottom	: "ä¸‹",
+DlgCellVerAlignBaseline	: "ãƒ™ãƒ¼ã‚¹ãƒ©ã‚¤ãƒ³",
+DlgCellRowSpan		: "ç¸¦å¹…(è¡Œæ•°)",
+DlgCellCollSpan		: "æ¨ªå¹…(åˆ—æ•°)",
+DlgCellBackColor	: "èƒŒæ™¯è‰²",
+DlgCellBorderColor	: "ãƒœãƒ¼ãƒ€ãƒ¼ã‚«ãƒ©ãƒ¼",
+DlgCellBtnSelect	: "é¸æŠž...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "æ¤œç´¢ã—ã¦ç½®æ›",
+
+// Find Dialog
+DlgFindTitle		: "æ¤œç´¢",
+DlgFindFindBtn		: "æ¤œç´¢",
+DlgFindNotFoundMsg	: "æŒ‡å®šã•ã‚ŒãŸæ–‡å­—åˆ—ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚",
+
+// Replace Dialog
+DlgReplaceTitle			: "ç½®ãæ›ãˆ",
+DlgReplaceFindLbl		: "æ¤œç´¢ã™ã‚‹æ–‡å­—åˆ—:",
+DlgReplaceReplaceLbl	: "ç½®æ›ãˆã™ã‚‹æ–‡å­—åˆ—:",
+DlgReplaceCaseChk		: "éƒ¨åˆ†ä¸€è‡´",
+DlgReplaceReplaceBtn	: "ç½®æ›ãˆ",
+DlgReplaceReplAllBtn	: "ã™ã¹ã¦ç½®æ›ãˆ",
+DlgReplaceWordChk		: "å˜èªžå˜ä½ã§ä¸€è‡´",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®åˆ‡ã‚Šå–ã‚Šæ“ä½œãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã€‚å®Ÿè¡Œã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®(Ctrl+X)ã‚’ä½¿ç”¨ã—ã¦ãã ã•ã„ã€‚",
+PasteErrorCopy	: "ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®ã‚³ãƒ”ãƒ¼æ“ä½œãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã€‚å®Ÿè¡Œã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®(Ctrl+C)ã‚’ä½¿ç”¨ã—ã¦ãã ã•ã„ã€‚",
+
+PasteAsText		: "ãƒ—ãƒ¬ãƒ¼ãƒ³ãƒ†ã‚­ã‚¹ãƒˆè²¼ã‚Šä»˜ã‘",
+PasteFromWord	: "ãƒ¯ãƒ¼ãƒ‰æ–‡ç« ã‹ã‚‰è²¼ã‚Šä»˜ã‘",
+
+DlgPasteMsg2	: "ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰(<STRONG>Ctrl+V</STRONG>)ã‚’ä½¿ç”¨ã—ã¦ã€æ¬¡ã®å…¥åŠ›ã‚¨ãƒªã‚¢å†…ã§è²¼ã£ã¦ã€<STRONG>OK</STRONG>ã‚’æŠ¼ã—ã¦ãã ã•ã„ã€‚",
+DlgPasteSec		: "ãƒ–ãƒ©ã‚¦ã‚¶ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã€ã‚¨ãƒ‡ã‚£ã‚¿ã¯ã‚¯ãƒªãƒƒãƒ—ãƒœãƒ¼ãƒ‰ãƒ»ãƒ‡ãƒ¼ã‚¿ã«ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã€‚ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯è²¼ã‚Šä»˜ã‘æ“ä½œã‚’è¡Œã†åº¦ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚",
+DlgPasteIgnoreFont		: "Fontã‚¿ã‚°ã®Faceå±žæ€§ã‚’ç„¡è¦–ã—ã¾ã™ã€‚",
+DlgPasteRemoveStyles	: "ã‚¹ã‚¿ã‚¤ãƒ«å®šç¾©ã‚’å‰Šé™¤ã—ã¾ã™ã€‚",
+
+// Color Picker
+ColorAutomatic	: "è‡ªå‹•",
+ColorMoreColors	: "ãã®ä»–ã®è‰²...",
+
+// Document Properties
+DocProps		: "æ–‡æ›¸ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ã‚¢ãƒ³ã‚«ãƒ¼ ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgAnchorName		: "ã‚¢ãƒ³ã‚«ãƒ¼å",
+DlgAnchorErrorName	: "ã‚¢ãƒ³ã‚«ãƒ¼åã‚’å¿…ãšå…¥åŠ›ã—ã¦ãã ã•ã„ã€‚",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "è¾žæ›¸ã«ã‚ã‚Šã¾ã›ã‚“",
+DlgSpellChangeTo		: "å¤‰æ›´",
+DlgSpellBtnIgnore		: "ç„¡è¦–",
+DlgSpellBtnIgnoreAll	: "ã™ã¹ã¦ç„¡è¦–",
+DlgSpellBtnReplace		: "ç½®æ›",
+DlgSpellBtnReplaceAll	: "ã™ã¹ã¦ç½®æ›",
+DlgSpellBtnUndo			: "ã‚„ã‚Šç›´ã—",
+DlgSpellNoSuggestions	: "- è©²å½“ãªã— -",
+DlgSpellProgress		: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯å‡¦ç†ä¸­...",
+DlgSpellNoMispell		: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯å®Œäº†: ã‚¹ãƒšãƒ«ã®èª¤ã‚Šã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ",
+DlgSpellNoChanges		: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯å®Œäº†: èªžå¥ã¯å¤‰æ›´ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ",
+DlgSpellOneChange		: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯å®Œäº†: ï¼‘èªžå¥å¤‰æ›´ã•ã‚Œã¾ã—ãŸ",
+DlgSpellManyChanges		: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚¯å®Œäº†: %1 èªžå¥å¤‰æ›´ã•ã‚Œã¾ã—ãŸ",
+
+IeSpellDownload			: "ã‚¹ãƒšãƒ«ãƒã‚§ãƒƒã‚«ãƒ¼ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã¾ã›ã‚“ã€‚ä»Šã™ããƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ã¾ã™ã‹?",
+
+// Button Dialog
+DlgButtonText		: "ãƒ†ã‚­ã‚¹ãƒˆ (å€¤)",
+DlgButtonType		: "ã‚¿ã‚¤ãƒ—",
+DlgButtonTypeBtn	: "ãƒœã‚¿ãƒ³",
+DlgButtonTypeSbm	: "é€ä¿¡",
+DlgButtonTypeRst	: "ãƒªã‚»ãƒƒãƒˆ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "åå‰",
+DlgCheckboxValue	: "å€¤",
+DlgCheckboxSelected	: "é¸æŠžæ¸ˆã¿",
+
+// Form Dialog
+DlgFormName		: "ãƒ•ã‚©ãƒ¼ãƒ å",
+DlgFormAction	: "ã‚¢ã‚¯ã‚·ãƒ§ãƒ³",
+DlgFormMethod	: "ãƒ¡ã‚½ãƒƒãƒ‰",
+
+// Select Field Dialog
+DlgSelectName		: "åå‰",
+DlgSelectValue		: "å€¤",
+DlgSelectSize		: "ã‚µã‚¤ã‚º",
+DlgSelectLines		: "è¡Œ",
+DlgSelectChkMulti	: "è¤‡æ•°é …ç›®é¸æŠžã‚’è¨±å¯",
+DlgSelectOpAvail	: "åˆ©ç”¨å¯èƒ½ãªã‚ªãƒ—ã‚·ãƒ§ãƒ³",
+DlgSelectOpText		: "é¸æŠžé …ç›®å",
+DlgSelectOpValue	: "é¸æŠžé …ç›®å€¤",
+DlgSelectBtnAdd		: "è¿½åŠ ",
+DlgSelectBtnModify	: "ç·¨é›†",
+DlgSelectBtnUp		: "ä¸Šã¸",
+DlgSelectBtnDown	: "ä¸‹ã¸",
+DlgSelectBtnSetValue : "é¸æŠžã—ãŸå€¤ã‚’è¨­å®š",
+DlgSelectBtnDelete	: "å‰Šé™¤",
+
+// Textarea Dialog
+DlgTextareaName	: "åå‰",
+DlgTextareaCols	: "åˆ—",
+DlgTextareaRows	: "è¡Œ",
+
+// Text Field Dialog
+DlgTextName			: "åå‰",
+DlgTextValue		: "å€¤",
+DlgTextCharWidth	: "ã‚µã‚¤ã‚º",
+DlgTextMaxChars		: "æœ€å¤§é•·",
+DlgTextType			: "ã‚¿ã‚¤ãƒ—",
+DlgTextTypeText		: "ãƒ†ã‚­ã‚¹ãƒˆ",
+DlgTextTypePass		: "ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰å…¥åŠ›",
+
+// Hidden Field Dialog
+DlgHiddenName	: "åå‰",
+DlgHiddenValue	: "å€¤",
+
+// Bulleted List Dialog
+BulletedListProp	: "ç®‡æ¡æ›¸ã ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+NumberedListProp	: "æ®µè½ç•ªå· ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£",
+DlgLstStart			: "é–‹å§‹æ–‡å­—",
+DlgLstType			: "ã‚¿ã‚¤ãƒ—",
+DlgLstTypeCircle	: "ç™½ä¸¸",
+DlgLstTypeDisc		: "é»’ä¸¸",
+DlgLstTypeSquare	: "å››è§’",
+DlgLstTypeNumbers	: "ã‚¢ãƒ©ãƒ“ã‚¢æ•°å­— (1, 2, 3)",
+DlgLstTypeLCase		: "è‹±å­—å°æ–‡å­— (a, b, c)",
+DlgLstTypeUCase		: "è‹±å­—å¤§æ–‡å­— (A, B, C)",
+DlgLstTypeSRoman	: "ãƒ­ãƒ¼ãƒžæ•°å­—å°æ–‡å­— (i, ii, iii)",
+DlgLstTypeLRoman	: "ãƒ­ãƒ¼ãƒžæ•°å­—å¤§æ–‡å­— (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "å…¨èˆ¬",
+DlgDocBackTab		: "èƒŒæ™¯",
+DlgDocColorsTab		: "è‰²ã¨ãƒžãƒ¼ã‚¸ãƒ³",
+DlgDocMetaTab		: "ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿",
+
+DlgDocPageTitle		: "ãƒšãƒ¼ã‚¸ã‚¿ã‚¤ãƒˆãƒ«",
+DlgDocLangDir		: "è¨€èªžæ–‡å­—è¡¨è¨˜ã®æ–¹å‘",
+DlgDocLangDirLTR	: "å·¦ã‹ã‚‰å³ã«è¡¨è¨˜(LTR)",
+DlgDocLangDirRTL	: "å³ã‹ã‚‰å·¦ã«è¡¨è¨˜(RTL)",
+DlgDocLangCode		: "è¨€èªžã‚³ãƒ¼ãƒ‰",
+DlgDocCharSet		: "æ–‡å­—ã‚»ãƒƒãƒˆç¬¦å·åŒ–",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "ä»–ã®æ–‡å­—ã‚»ãƒƒãƒˆç¬¦å·åŒ–",
+
+DlgDocDocType		: "æ–‡æ›¸ã‚¿ã‚¤ãƒ—ãƒ˜ãƒƒãƒ€ãƒ¼",
+DlgDocDocTypeOther	: "ãã®ä»–æ–‡æ›¸ã‚¿ã‚¤ãƒ—ãƒ˜ãƒƒãƒ€ãƒ¼",
+DlgDocIncXHTML		: "XHTMLå®£è¨€ã‚’ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰",
+DlgDocBgColor		: "èƒŒæ™¯è‰²",
+DlgDocBgImage		: "èƒŒæ™¯ç”»åƒ URL",
+DlgDocBgNoScroll	: "ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã—ãªã„èƒŒæ™¯",
+DlgDocCText			: "ãƒ†ã‚­ã‚¹ãƒˆ",
+DlgDocCLink			: "ãƒªãƒ³ã‚¯",
+DlgDocCVisited		: "ã‚¢ã‚¯ã‚»ã‚¹æ¸ˆã¿ãƒªãƒ³ã‚¯",
+DlgDocCActive		: "ã‚¢ã‚¯ã‚»ã‚¹ä¸­ãƒªãƒ³ã‚¯",
+DlgDocMargins		: "ãƒšãƒ¼ã‚¸ãƒ»ãƒžãƒ¼ã‚¸ãƒ³",
+DlgDocMaTop			: "ä¸Šéƒ¨",
+DlgDocMaLeft		: "å·¦",
+DlgDocMaRight		: "å³",
+DlgDocMaBottom		: "ä¸‹éƒ¨",
+DlgDocMeIndex		: "æ–‡æ›¸ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰(ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Š)",
+DlgDocMeDescr		: "æ–‡æ›¸ã®æ¦‚è¦",
+DlgDocMeAuthor		: "æ–‡æ›¸ã®ä½œè€…",
+DlgDocMeCopy		: "æ–‡æ›¸ã®è‘—ä½œæ¨©",
+DlgDocPreview		: "ãƒ—ãƒ¬ãƒ“ãƒ¥ãƒ¼",
+
+// Templates Dialog
+Templates			: "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆ(é››å½¢)",
+DlgTemplatesTitle	: "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆå†…å®¹",
+DlgTemplatesSelMsg	: "ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã§ä½¿ç”¨ã™ã‚‹ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆã‚’é¸æŠžã—ã¦ãã ã•ã„ã€‚<br>(ç¾åœ¨ã®ã‚¨ãƒ‡ã‚£ã‚¿ã®å†…å®¹ã¯å¤±ã‚ã‚Œã¾ã™):",
+DlgTemplatesLoading	: "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆä¸€è¦§èª­ã¿è¾¼ã¿ä¸­. ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...",
+DlgTemplatesNoTpl	: "(ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“)",
+DlgTemplatesReplace	: "ç¾åœ¨ã®ã‚¨ãƒ‡ã‚£ã‚¿ã®å†…å®¹ã¨ç½®æ›ãˆã‚’ã—ã¾ã™",
+
+// About Dialog
+DlgAboutAboutTab	: "ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±",
+DlgAboutBrowserInfoTab	: "ãƒ–ãƒ©ã‚¦ã‚¶æƒ…å ±",
+DlgAboutLicenseTab	: "ãƒ©ã‚¤ã‚»ãƒ³ã‚¹",
+DlgAboutVersion		: "ãƒãƒ¼ã‚¸ãƒ§ãƒ³",
+DlgAboutInfo		: "ã‚ˆã‚Šè©³ã—ã„æƒ…å ±ã¯ã“ã¡ã‚‰ã§"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/he.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/he.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/he.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hebrew language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "×›×™×•×•×¥ ×¡×¨×’×œ ×”×›×œ×™×",
+ToolbarExpand		: "×¤×ª×™×—×ª ×¡×¨×’×œ ×”×›×œ×™×",
+
+// Toolbar Items and Context Menu
+Save				: "×©×ž×™×¨×”",
+NewPage				: "×“×£ ×—×“×©",
+Preview				: "×ª×¦×•×’×” ×ž×§×“×™×ž×”",
+Cut					: "×’×–×™×¨×”",
+Copy				: "×”×¢×ª×§×”",
+Paste				: "×”×“×‘×§×”",
+PasteText			: "×”×“×‘×§×” ×›×˜×§×¡×˜ ×¤×©×•×˜",
+PasteWord			: "×”×“×‘×§×” ×ž-×•×•×¨×“",
+Print				: "×”×“×¤×¡×”",
+SelectAll			: "×‘×—×™×¨×ª ×”×›×œ",
+RemoveFormat		: "×”×¡×¨×ª ×”×¢×™×¦×•×‘",
+InsertLinkLbl		: "×§×™×©×•×¨",
+InsertLink			: "×”×•×¡×¤×ª/×¢×¨×™×›×ª ×§×™×©×•×¨",
+RemoveLink			: "×”×¡×¨×ª ×”×§×™×©×•×¨",
+Anchor				: "×”×•×¡×¤×ª/×¢×¨×™×›×ª × ×§×•×“×ª ×¢×™×’×•×Ÿ",
+AnchorDelete		: "×”×¡×¨ × ×§×•×“×ª ×¢×™×’×•×Ÿ",
+InsertImageLbl		: "×ª×ž×•× ×”",
+InsertImage			: "×”×•×¡×¤×ª/×¢×¨×™×›×ª ×ª×ž×•× ×”",
+InsertFlashLbl		: "×¤×œ××©",
+InsertFlash			: "×”×•×¡×£/×¢×¨×•×š ×¤×œ××©",
+InsertTableLbl		: "×˜×‘×œ×”",
+InsertTable			: "×”×•×¡×¤×ª/×¢×¨×™×›×ª ×˜×‘×œ×”",
+InsertLineLbl		: "×§×•",
+InsertLine			: "×”×•×¡×¤×ª ×§×• ××•×¤×§×™",
+InsertSpecialCharLbl: "×ª×• ×ž×™×•×—×“",
+InsertSpecialChar	: "×”×•×¡×¤×ª ×ª×• ×ž×™×•×—×“",
+InsertSmileyLbl		: "×¡×ž×™×™×œ×™",
+InsertSmiley		: "×”×•×¡×¤×ª ×¡×ž×™×™×œ×™",
+About				: "××•×“×•×ª FCKeditor",
+Bold				: "×ž×•×“×’×©",
+Italic				: "× ×˜×•×™",
+Underline			: "×§×• ×ª×—×ª×•×Ÿ",
+StrikeThrough		: "×›×ª×™×‘ ×ž×—×•×§",
+Subscript			: "×›×ª×™×‘ ×ª×—×ª×•×Ÿ",
+Superscript			: "×›×ª×™×‘ ×¢×œ×™×•×Ÿ",
+LeftJustify			: "×™×™×©×•×¨ ×œ×©×ž××œ",
+CenterJustify		: "×ž×¨×›×•×–",
+RightJustify		: "×™×™×©×•×¨ ×œ×™×ž×™×Ÿ",
+BlockJustify		: "×™×™×©×•×¨ ×œ×©×•×œ×™×™×",
+DecreaseIndent		: "×”×§×˜× ×ª ××™× ×“× ×˜×¦×™×”",
+IncreaseIndent		: "×”×’×“×œ×ª ××™× ×“× ×˜×¦×™×”",
+Blockquote			: "×‘×œ×•×§ ×¦×™×˜×•×˜",
+Undo				: "×‘×™×˜×•×œ ×¦×¢×“ ××—×¨×•×Ÿ",
+Redo				: "×—×–×¨×” ×¢×œ ×¦×¢×“ ××—×¨×•×Ÿ",
+NumberedListLbl		: "×¨×©×™×ž×” ×ž×ž×•×¡×¤×¨×ª",
+NumberedList		: "×”×•×¡×¤×ª/×”×¡×¨×ª ×¨×©×™×ž×” ×ž×ž×•×¡×¤×¨×ª",
+BulletedListLbl		: "×¨×©×™×ž×ª × ×§×•×“×•×ª",
+BulletedList		: "×”×•×¡×¤×ª/×”×¡×¨×ª ×¨×©×™×ž×ª × ×§×•×“×•×ª",
+ShowTableBorders	: "×”×¦×’×ª ×ž×¡×’×¨×ª ×”×˜×‘×œ×”",
+ShowDetails			: "×”×¦×’×ª ×¤×¨×˜×™×",
+Style				: "×¡×’× ×•×Ÿ",
+FontFormat			: "×¢×™×¦×•×‘",
+Font				: "×’×•×¤×Ÿ",
+FontSize			: "×’×•×“×œ",
+TextColor			: "×¦×‘×¢ ×˜×§×¡×˜",
+BGColor				: "×¦×‘×¢ ×¨×§×¢",
+Source				: "×ž×§×•×¨",
+Find				: "×—×™×¤×•×©",
+Replace				: "×”×—×œ×¤×”",
+SpellCheck			: "×‘×“×™×§×ª ××™×•×ª",
+UniversalKeyboard	: "×ž×§×œ×“×ª ××•× ×™×‘×¨×¡×œ×™×ª",
+PageBreakLbl		: "×©×‘×™×¨×ª ×“×£",
+PageBreak			: "×”×•×¡×£ ×©×‘×™×¨×ª ×“×£",
+
+Form			: "×˜×•×¤×¡",
+Checkbox		: "×ª×™×‘×ª ×¡×™×ž×•×Ÿ",
+RadioButton		: "×œ×—×¦×Ÿ ××¤×©×¨×•×™×•×ª",
+TextField		: "×©×“×” ×˜×§×¡×˜",
+Textarea		: "××™×–×•×¨ ×˜×§×¡×˜",
+HiddenField		: "×©×“×” ×—×‘×•×™",
+Button			: "×›×¤×ª×•×¨",
+SelectionField	: "×©×“×” ×‘×—×™×¨×”",
+ImageButton		: "×›×¤×ª×•×¨ ×ª×ž×•× ×”",
+
+FitWindow		: "×”×’×“×œ ××ª ×’×•×“×œ ×”×¢×•×¨×š",
+ShowBlocks		: "×”×¦×’ ×‘×œ×•×§×™×",
+
+// Context Menu
+EditLink			: "×¢×¨×™×›×ª ×§×™×©×•×¨",
+CellCM				: "×ª×",
+RowCM				: "×©×•×¨×”",
+ColumnCM			: "×¢×ž×•×“×”",
+InsertRowAfter		: "×”×•×¡×£ ×©×•×¨×” ××—×¨×™",
+InsertRowBefore		: "×”×•×¡×£ ×©×•×¨×” ×œ×¤× ×™",
+DeleteRows			: "×ž×—×™×§×ª ×©×•×¨×•×ª",
+InsertColumnAfter	: "×”×•×¡×£ ×¢×ž×•×“×” ××—×¨×™",
+InsertColumnBefore	: "×”×•×¡×£ ×¢×ž×•×“×” ×œ×¤× ×™",
+DeleteColumns		: "×ž×—×™×§×ª ×¢×ž×•×“×•×ª",
+InsertCellAfter		: "×”×•×¡×£ ×ª× ××—×¨×™",
+InsertCellBefore	: "×”×•×¡×£ ×ª× ××—×¨×™",
+DeleteCells			: "×ž×—×™×§×ª ×ª××™×",
+MergeCells			: "×ž×™×–×•×’ ×ª××™×",
+MergeRight			: "×ž×–×’ ×™×ž×™× ×”",
+MergeDown			: "×ž×–×’ ×œ×ž×˜×”",
+HorizontalSplitCell	: "×¤×¦×œ ×ª× ××•×¤×§×™×ª",
+VerticalSplitCell	: "×¤×¦×œ ×ª× ×× ×›×™×ª",
+TableDelete			: "×ž×—×§ ×˜×‘×œ×”",
+CellProperties		: "×ª×›×•× ×•×ª ×”×ª×",
+TableProperties		: "×ª×›×•× ×•×ª ×”×˜×‘×œ×”",
+ImageProperties		: "×ª×›×•× ×•×ª ×”×ª×ž×•× ×”",
+FlashProperties		: "×ž××¤×™×™× ×™ ×¤×œ××©",
+
+AnchorProp			: "×ž××¤×™×™× ×™ × ×§×•×“×ª ×¢×™×’×•×Ÿ",
+ButtonProp			: "×ž××¤×™×™× ×™ ×›×¤×ª×•×¨",
+CheckboxProp		: "×ž××¤×™×™× ×™ ×ª×™×‘×ª ×¡×™×ž×•×Ÿ",
+HiddenFieldProp		: "×ž××¤×™× ×™ ×©×“×” ×—×‘×•×™",
+RadioButtonProp		: "×ž××¤×™×™× ×™ ×œ×—×¦×Ÿ ××¤×©×¨×•×™×•×ª",
+ImageButtonProp		: "×ž××¤×™× ×™ ×›×¤×ª×•×¨ ×ª×ž×•× ×”",
+TextFieldProp		: "×ž××¤×™×™× ×™ ×©×“×” ×˜×§×¡×˜",
+SelectionFieldProp	: "×ž××¤×™×™× ×™ ×©×“×” ×‘×—×™×¨×”",
+TextareaProp		: "×ž××¤×™× ×™ ××™×–×•×¨ ×˜×§×¡×˜",
+FormProp			: "×ž××¤×™× ×™ ×˜×•×¤×¡",
+
+FontFormats			: "× ×•×¨×ž×œ×™;×§×•×“;×›×ª×•×‘×ª;×›×•×ª×¨×ª;×›×•×ª×¨×ª 2;×›×•×ª×¨×ª 3;×›×•×ª×¨×ª 4;×›×•×ª×¨×ª 5;×›×•×ª×¨×ª 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "×ž×¢×‘×“ XHTML, × × ×œ×”×ž×ª×™×Ÿ...",
+Done				: "×”×ž×©×™×ž×” ×”×•×©×œ×ž×”",
+PasteWordConfirm	: "× ×¨××” ×”×˜×§×¡×˜ ×©×‘×›×•×•× ×ª×š ×œ×”×“×‘×™×§ ×ž×§×•×¨×• ×‘×§×•×‘×¥ ×•×•×¨×“. ×”×× ×‘×¨×¦×•× ×š ×œ× ×§×•×ª ××•×ª×• ×˜×¨× ×”×”×“×‘×§×”?",
+NotCompatiblePaste	: "×¤×¢×•×œ×” ×–×• ×–×ž×™× ×” ×œ×“×¤×“×¤×Ÿ ××™× ×˜×¨× ×˜ ××§×¡×¤×œ×•×¨×¨ ×ž×’×™×¨×¡× 5.5 ×•×ž×¢×œ×”. ×”×× ×œ×”×ž×©×™×š ×‘×”×“×‘×§×” ×œ×œ× ×”× ×™×§×•×™?",
+UnknownToolbarItem	: "×¤×¨×™×˜ ×œ× ×™×“×•×¢ ×‘×¡×¨×’×œ ×”×›×œ×™× \"%1\"",
+UnknownCommand		: "×©× ×¤×¢×•×œ×” ×œ× ×™×“×•×¢ \"%1\"",
+NotImplemented		: "×”×¤×§×•×“×” ×œ× ×ž×™×•×©×ž×ª",
+UnknownToolbarSet	: "×¢×¨×›×ª ×¡×¨×’×œ ×”×›×œ×™× \"%1\" ×œ× ×§×™×™×ž×ª",
+NoActiveX			: "×”×’×“×¨×•×ª ××‘×˜×—×” ×©×œ ×”×“×¤×“×¤×Ÿ ×¢×œ×•×œ×•×ª ×œ×’×‘×™×œ ××ª ××¤×©×¨×•×™×•×ª ×”×¢×¨×™×›×”.×™×© ×œ××¤×©×¨ ××ª ×”××•×¤×¦×™×” \"×”×¨×¥ ×¤×§×“×™× ×¤×¢×™×œ×™× ×•×ª×•×¡×¤×•×ª\". ×ª×•×›×œ ×œ×—×•×•×ª ×˜×¢×•×™×•×ª ×•×—×™×•×•×™× ×©×œ ××¤×©×¨×•×™×•×ª ×©×—×¡×¨×™×.",
+BrowseServerBlocked : "×œ× × ×™×ª×Ÿ ×œ×’×©×ª ×œ×“×¤×“×¤×Ÿ ×ž×©××‘×™×.×× × ×•×•×“× ×©×—×•×¡× ×—×œ×•× ×•×ª ×”×§×•×¤×¦×™× ×œ× ×¤×¢×™×œ.",
+DialogBlocked		: "×œ× ×”×™×” × ×™×ª×Ÿ ×œ×¤×ª×•×— ×—×œ×•×Ÿ ×“×™××œ×•×’. ×× × ×•×•×“× ×©×—×•×¡× ×—×œ×•× ×•×ª ×§×•×¤×¦×™× ×œ× ×¤×¢×™×œ.",
+
+// Dialogs
+DlgBtnOK			: "××™×©×•×¨",
+DlgBtnCancel		: "×‘×™×˜×•×œ",
+DlgBtnClose			: "×¡×’×™×¨×”",
+DlgBtnBrowseServer	: "×¡×™×™×¨ ×”×©×¨×ª",
+DlgAdvancedTag		: "××¤×©×¨×•×™×•×ª ×ž×ª×§×“×ž×•×ª",
+DlgOpOther			: "<××—×¨>",
+DlgInfoTab			: "×ž×™×“×¢",
+DlgAlertUrl			: "×× ×” ×”×–×Ÿ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<×œ× × ×§×‘×¢>",
+DlgGenId			: "×–×™×”×•×™ (Id)",
+DlgGenLangDir		: "×›×™×•×•×Ÿ ×©×¤×”",
+DlgGenLangDirLtr	: "×©×ž××œ ×œ×™×ž×™×Ÿ (LTR)",
+DlgGenLangDirRtl	: "×™×ž×™×Ÿ ×œ×©×ž××œ (RTL)",
+DlgGenLangCode		: "×§×•×“ ×©×¤×”",
+DlgGenAccessKey		: "×ž×§×© ×’×™×©×”",
+DlgGenName			: "×©×",
+DlgGenTabIndex		: "×ž×¡×¤×¨ ×˜××‘",
+DlgGenLongDescr		: "×§×™×©×•×¨ ×œ×ª×™××•×¨ ×ž×¤×•×¨×˜",
+DlgGenClass			: "×’×™×œ×™×•× ×•×ª ×¢×™×¦×•×‘ ×§×‘×•×¦×•×ª",
+DlgGenTitle			: "×›×•×ª×¨×ª ×ž×•×¦×¢×ª",
+DlgGenContType		: "Content Type ×ž×•×¦×¢",
+DlgGenLinkCharset	: "×§×™×“×•×“ ×”×ž×©××‘ ×”×ž×§×•×©×¨",
+DlgGenStyle			: "×¡×’× ×•×Ÿ",
+
+// Image Dialog
+DlgImgTitle			: "×ª×›×•× ×•×ª ×”×ª×ž×•× ×”",
+DlgImgInfoTab		: "×ž×™×“×¢ ×¢×œ ×”×ª×ž×•× ×”",
+DlgImgBtnUpload		: "×©×œ×™×—×” ×œ×©×¨×ª",
+DlgImgURL			: "×›×ª×•×‘×ª (URL)",
+DlgImgUpload		: "×”×¢×œ××”",
+DlgImgAlt			: "×˜×§×¡×˜ ×—×œ×•×¤×™",
+DlgImgWidth			: "×¨×•×—×‘",
+DlgImgHeight		: "×’×•×‘×”",
+DlgImgLockRatio		: "× ×¢×™×œ×ª ×”×™×—×¡",
+DlgBtnResetSize		: "××™×¤×•×¡ ×”×’×•×“×œ",
+DlgImgBorder		: "×ž×¡×’×¨×ª",
+DlgImgHSpace		: "×ž×¨×•×•×— ××•×¤×§×™",
+DlgImgVSpace		: "×ž×¨×•×•×— ×× ×›×™",
+DlgImgAlign			: "×™×™×©×•×¨",
+DlgImgAlignLeft		: "×œ×©×ž××œ",
+DlgImgAlignAbsBottom: "×œ×ª×—×ª×™×ª ×”××‘×¡×•×œ×•×˜×™×ª",
+DlgImgAlignAbsMiddle: "×ž×¨×›×•×– ××‘×¡×•×œ×•×˜×™",
+DlgImgAlignBaseline	: "×œ×§×• ×”×ª×—×ª×™×ª",
+DlgImgAlignBottom	: "×œ×ª×—×ª×™×ª",
+DlgImgAlignMiddle	: "×œ××ž×¦×¢",
+DlgImgAlignRight	: "×œ×™×ž×™×Ÿ",
+DlgImgAlignTextTop	: "×œ×¨××© ×”×˜×§×¡×˜",
+DlgImgAlignTop		: "×œ×ž×¢×œ×”",
+DlgImgPreview		: "×ª×¦×•×’×” ×ž×§×“×™×ž×”",
+DlgImgAlertUrl		: "× × ×œ×”×§×œ×™×“ ××ª ×›×ª×•×‘×ª ×”×ª×ž×•× ×”",
+DlgImgLinkTab		: "×§×™×©×•×¨",
+
+// Flash Dialog
+DlgFlashTitle		: "×ž××¤×™× ×™ ×¤×œ××©",
+DlgFlashChkPlay		: "× ×’×Ÿ ××•×˜×•×ž×˜×™",
+DlgFlashChkLoop		: "×œ×•×œ××”",
+DlgFlashChkMenu		: "××¤×©×¨ ×ª×¤×¨×™×˜ ×¤×œ××©",
+DlgFlashScale		: "×’×•×“×œ",
+DlgFlashScaleAll	: "×”×¦×’ ×”×›×œ",
+DlgFlashScaleNoBorder	: "×œ×œ× ×’×‘×•×œ×•×ª",
+DlgFlashScaleFit	: "×”×ª××ž×” ×ž×•×©×œ×ž×ª",
+
+// Link Dialog
+DlgLnkWindowTitle	: "×§×™×©×•×¨",
+DlgLnkInfoTab		: "×ž×™×“×¢ ×¢×œ ×”×§×™×©×•×¨",
+DlgLnkTargetTab		: "×ž×˜×¨×”",
+
+DlgLnkType			: "×¡×•×’ ×§×™×©×•×¨",
+DlgLnkTypeURL		: "×›×ª×•×‘×ª (URL)",
+DlgLnkTypeAnchor	: "×¢×•×’×Ÿ ×‘×¢×ž×•×“ ×–×”",
+DlgLnkTypeEMail		: "×“×•×''×œ",
+DlgLnkProto			: "×¤×¨×•×˜×•×§×•×œ",
+DlgLnkProtoOther	: "<××—×¨>",
+DlgLnkURL			: "×›×ª×•×‘×ª (URL)",
+DlgLnkAnchorSel		: "×‘×—×™×¨×ª ×¢×•×’×Ÿ",
+DlgLnkAnchorByName	: "×¢×¤''×™ ×©× ×”×¢×•×’×Ÿ",
+DlgLnkAnchorById	: "×¢×¤''×™ ×–×™×”×•×™ (Id) ×”×¨×›×™×‘",
+DlgLnkNoAnchors		: "(××™×Ÿ ×¢×•×’× ×™× ×–×ž×™× ×™× ×‘×“×£)",
+DlgLnkEMail			: "×›×ª×•×‘×ª ×”×“×•×''×œ",
+DlgLnkEMailSubject	: "× ×•×©× ×”×”×•×“×¢×”",
+DlgLnkEMailBody		: "×’×•×£ ×”×”×•×“×¢×”",
+DlgLnkUpload		: "×”×¢×œ××”",
+DlgLnkBtnUpload		: "×©×œ×™×—×” ×œ×©×¨×ª",
+
+DlgLnkTarget		: "×ž×˜×¨×”",
+DlgLnkTargetFrame	: "<×ž×¡×’×¨×ª>",
+DlgLnkTargetPopup	: "<×—×œ×•×Ÿ ×§×•×¤×¥>",
+DlgLnkTargetBlank	: "×—×œ×•×Ÿ ×—×“×© (_blank)",
+DlgLnkTargetParent	: "×—×œ×•×Ÿ ×”××‘ (_parent)",
+DlgLnkTargetSelf	: "×‘××•×ª×• ×”×—×œ×•×Ÿ (_self)",
+DlgLnkTargetTop		: "×—×œ×•×Ÿ ×¨××©×™ (_top)",
+DlgLnkTargetFrameName	: "×©× ×ž×¡×’×¨×ª ×”×™×¢×“",
+DlgLnkPopWinName	: "×©× ×”×—×œ×•×Ÿ ×”×§×•×¤×¥",
+DlgLnkPopWinFeat	: "×ª×›×•× ×•×ª ×”×—×œ×•×Ÿ ×”×§×•×¤×¥",
+DlgLnkPopResize		: "×‘×¢×œ ×’×•×“×œ × ×™×ª×Ÿ ×œ×©×™× ×•×™",
+DlgLnkPopLocation	: "×¡×¨×’×œ ×›×ª×•×‘×ª",
+DlgLnkPopMenu		: "×¡×¨×’×œ ×ª×¤×¨×™×˜",
+DlgLnkPopScroll		: "× ×™×ª×Ÿ ×œ×’×œ×™×œ×”",
+DlgLnkPopStatus		: "×¡×¨×’×œ ×—×™×•×•×™",
+DlgLnkPopToolbar	: "×¡×¨×’×œ ×”×›×œ×™×",
+DlgLnkPopFullScrn	: "×ž×¡×š ×ž×œ× (IE)",
+DlgLnkPopDependent	: "×ª×œ×•×™ (Netscape)",
+DlgLnkPopWidth		: "×¨×•×—×‘",
+DlgLnkPopHeight		: "×’×•×‘×”",
+DlgLnkPopLeft		: "×ž×™×§×•× ×¦×“ ×©×ž××œ",
+DlgLnkPopTop		: "×ž×™×§×•× ×¦×“ ×¢×œ×™×•×Ÿ",
+
+DlnLnkMsgNoUrl		: "× × ×œ×”×§×œ×™×“ ××ª ×›×ª×•×‘×ª ×”×§×™×©×•×¨ (URL)",
+DlnLnkMsgNoEMail	: "× × ×œ×”×§×œ×™×“ ××ª ×›×ª×•×‘×ª ×”×“×•×''×œ",
+DlnLnkMsgNoAnchor	: "× × ×œ×‘×—×•×¨ ×¢×•×’×Ÿ ×‘×ž×¡×ž×š",
+DlnLnkMsgInvPopName	: "×©× ×”×—×œ×•×Ÿ ×”×§×•×¤×¥ ×—×™×™×‘ ×œ×”×ª×—×™×œ ×‘××•×ª×™×•×ª ×•××¡×•×¨ ×œ×›×œ×•×œ ×¨×•×•×—×™×",
+
+// Color Dialog
+DlgColorTitle		: "×‘×—×™×¨×ª ×¦×‘×¢",
+DlgColorBtnClear	: "××™×¤×•×¡",
+DlgColorHighlight	: "× ×•×›×—×™",
+DlgColorSelected	: "× ×‘×—×¨",
+
+// Smiley Dialog
+DlgSmileyTitle		: "×”×•×¡×¤×ª ×¡×ž×™×™×œ×™",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "×‘×—×™×¨×ª ×ª×• ×ž×™×•×—×“",
+
+// Table Dialog
+DlgTableTitle		: "×ª×›×•× ×•×ª ×˜×‘×œ×”",
+DlgTableRows		: "×©×•×¨×•×ª",
+DlgTableColumns		: "×¢×ž×•×“×•×ª",
+DlgTableBorder		: "×’×•×“×œ ×ž×¡×’×¨×ª",
+DlgTableAlign		: "×™×™×©×•×¨",
+DlgTableAlignNotSet	: "<×œ× × ×§×‘×¢>",
+DlgTableAlignLeft	: "×©×ž××œ",
+DlgTableAlignCenter	: "×ž×¨×›×–",
+DlgTableAlignRight	: "×™×ž×™×Ÿ",
+DlgTableWidth		: "×¨×•×—×‘",
+DlgTableWidthPx		: "×¤×™×§×¡×œ×™×",
+DlgTableWidthPc		: "××—×•×–",
+DlgTableHeight		: "×’×•×‘×”",
+DlgTableCellSpace	: "×ž×¨×•×•×— ×ª×",
+DlgTableCellPad		: "×¨×™×¤×•×“ ×ª×",
+DlgTableCaption		: "×›×™×ª×•×‘",
+DlgTableSummary		: "×¡×™×›×•×",
+
+// Table Cell Dialog
+DlgCellTitle		: "×ª×›×•× ×•×ª ×ª×",
+DlgCellWidth		: "×¨×•×—×‘",
+DlgCellWidthPx		: "×¤×™×§×¡×œ×™×",
+DlgCellWidthPc		: "××—×•×–",
+DlgCellHeight		: "×’×•×‘×”",
+DlgCellWordWrap		: "×’×œ×™×œ×ª ×©×•×¨×•×ª",
+DlgCellWordWrapNotSet	: "<×œ× × ×§×‘×¢>",
+DlgCellWordWrapYes	: "×›×Ÿ",
+DlgCellWordWrapNo	: "×œ×",
+DlgCellHorAlign		: "×™×™×©×•×¨ ××•×¤×§×™",
+DlgCellHorAlignNotSet	: "<×œ× × ×§×‘×¢>",
+DlgCellHorAlignLeft	: "×©×ž××œ",
+DlgCellHorAlignCenter	: "×ž×¨×›×–",
+DlgCellHorAlignRight: "×™×ž×™×Ÿ",
+DlgCellVerAlign		: "×™×™×©×•×¨ ×× ×›×™",
+DlgCellVerAlignNotSet	: "<×œ× × ×§×‘×¢>",
+DlgCellVerAlignTop	: "×œ×ž×¢×œ×”",
+DlgCellVerAlignMiddle	: "×œ××ž×¦×¢",
+DlgCellVerAlignBottom	: "×œ×ª×—×ª×™×ª",
+DlgCellVerAlignBaseline	: "×§×• ×ª×—×ª×™×ª",
+DlgCellRowSpan		: "×˜×•×•×— ×©×•×¨×•×ª",
+DlgCellCollSpan		: "×˜×•×•×— ×¢×ž×•×“×•×ª",
+DlgCellBackColor	: "×¦×‘×¢ ×¨×§×¢",
+DlgCellBorderColor	: "×¦×‘×¢ ×ž×¡×’×¨×ª",
+DlgCellBtnSelect	: "×‘×—×™×¨×”...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "×—×¤×© ×•×”×—×œ×£",
+
+// Find Dialog
+DlgFindTitle		: "×—×™×¤×•×©",
+DlgFindFindBtn		: "×—×™×¤×•×©",
+DlgFindNotFoundMsg	: "×”×˜×§×¡×˜ ×”×ž×‘×•×§×© ×œ× × ×ž×¦×.",
+
+// Replace Dialog
+DlgReplaceTitle			: "×”×—×œ×¤×”",
+DlgReplaceFindLbl		: "×—×™×¤×•×© ×ž×—×¨×•×–×ª:",
+DlgReplaceReplaceLbl	: "×”×—×œ×¤×” ×‘×ž×—×¨×•×–×ª:",
+DlgReplaceCaseChk		: "×”×ª××ž×ª ×¡×•×’ ××•×ª×™×•×ª (Case)",
+DlgReplaceReplaceBtn	: "×”×—×œ×¤×”",
+DlgReplaceReplAllBtn	: "×”×—×œ×¤×” ×‘×›×œ ×”×¢×ž×•×“",
+DlgReplaceWordChk		: "×”×ª××ž×” ×œ×ž×™×œ×” ×”×ž×œ××”",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "×”×’×“×¨×•×ª ×”××‘×˜×—×” ×‘×“×¤×“×¤×Ÿ ×©×œ×š ×œ× ×ž××¤×©×¨×•×ª ×œ×¢×•×¨×š ×œ×‘×¦×¢ ×¤×¢×•×œ×•×ª ×’×–×™×¨×”  ××•×˜×•×ž×˜×™×•×ª. ×™×© ×œ×”×©×ª×ž×© ×‘×ž×§×œ×“×ª ×œ×©× ×›×š (Ctrl+X).",
+PasteErrorCopy	: "×”×’×“×¨×•×ª ×”××‘×˜×—×” ×‘×“×¤×“×¤×Ÿ ×©×œ×š ×œ× ×ž××¤×©×¨×•×ª ×œ×¢×•×¨×š ×œ×‘×¦×¢ ×¤×¢×•×œ×•×ª ×”×¢×ª×§×” ××•×˜×•×ž×˜×™×•×ª. ×™×© ×œ×”×©×ª×ž×© ×‘×ž×§×œ×“×ª ×œ×©× ×›×š (Ctrl+C).",
+
+PasteAsText		: "×”×“×‘×§×” ×›×˜×§×¡×˜ ×¤×©×•×˜",
+PasteFromWord	: "×”×“×‘×§×” ×ž-×•×•×¨×“",
+
+DlgPasteMsg2	: "×× × ×”×“×‘×§ ×‘×ª×•×š ×”×§×•×¤×¡×” ×‘××ž×¦×¢×•×ª  (<STRONG>Ctrl+V</STRONG>) ×•×œ×—×¥ ×¢×œ  <STRONG>××™×©×•×¨</STRONG>.",
+DlgPasteSec		: "×¢×§×‘ ×”×’×“×¨×•×ª ××‘×˜×—×” ×‘×“×¤×“×¤×Ÿ, ×œ× × ×™×ª×Ÿ ×œ×’×©×ª ××œ ×œ×•×— ×”×’×–×™×¨×™× (clipboard) ×‘×¦×•×¨×” ×™×©×™×¨×”.×× × ×‘×¦×¢ ×”×“×‘×§ ×©×•×‘ ×‘×—×œ×•×Ÿ ×–×”.",
+DlgPasteIgnoreFont		: "×”×ª×¢×œ× ×ž×”×’×“×¨×•×ª ×¡×•×’ ×¤×•× ×˜",
+DlgPasteRemoveStyles	: "×”×¡×¨ ×”×’×“×¨×•×ª ×¡×’× ×•×Ÿ",
+
+// Color Picker
+ColorAutomatic	: "××•×˜×•×ž×˜×™",
+ColorMoreColors	: "×¦×‘×¢×™× × ×•×¡×¤×™×...",
+
+// Document Properties
+DocProps		: "×ž××¤×™× ×™ ×ž×¡×ž×š",
+
+// Anchor Dialog
+DlgAnchorTitle		: "×ž××¤×™× ×™ × ×§×•×“×ª ×¢×™×’×•×Ÿ",
+DlgAnchorName		: "×©× ×œ× ×§×•×“×ª ×¢×™×’×•×Ÿ",
+DlgAnchorErrorName	: "×× × ×”×–×Ÿ ×©× ×œ× ×§×•×“×ª ×¢×™×’×•×Ÿ",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "×œ× × ×ž×¦× ×‘×ž×™×œ×•×Ÿ",
+DlgSpellChangeTo		: "×©× ×” ×œ",
+DlgSpellBtnIgnore		: "×”×ª×¢×œ×",
+DlgSpellBtnIgnoreAll	: "×”×ª×¢×œ× ×ž×”×›×œ",
+DlgSpellBtnReplace		: "×”×—×œ×£",
+DlgSpellBtnReplaceAll	: "×”×—×œ×£ ×”×›×œ",
+DlgSpellBtnUndo			: "×”×—×–×¨",
+DlgSpellNoSuggestions	: "- ××™×Ÿ ×”×¦×¢×•×ª -",
+DlgSpellProgress		: "×‘×“×™×§×•×ª ××™×•×ª ×‘×ª×”×œ×™×š ....",
+DlgSpellNoMispell		: "×‘×“×™×§×•×ª ××™×•×ª ×”×¡×ª×™×™×ž×”: ×œ× × ×ž×¦××• ×©×’×™×¢×•×ª ×›×ª×™×‘",
+DlgSpellNoChanges		: "×‘×“×™×§×•×ª ××™×•×ª ×”×¡×ª×™×™×ž×”: ×œ× ×©×•× ×ª×” ××£ ×ž×™×œ×”",
+DlgSpellOneChange		: "×‘×“×™×§×•×ª ××™×•×ª ×”×¡×ª×™×™×ž×”: ×©×•× ×ª×” ×ž×™×œ×” ××—×ª",
+DlgSpellManyChanges		: "×‘×“×™×§×•×ª ××™×•×ª ×”×¡×ª×™×™×ž×”: %1 ×ž×™×œ×™× ×©×•× ×•",
+
+IeSpellDownload			: "×‘×•×“×§ ×”××™×•×ª ×œ× ×ž×•×ª×§×Ÿ, ×”×× ××ª×” ×ž×¢×•× ×™×™×Ÿ ×œ×”×•×¨×™×“?",
+
+// Button Dialog
+DlgButtonText		: "×˜×§×¡×˜ (×¢×¨×š)",
+DlgButtonType		: "×¡×•×’",
+DlgButtonTypeBtn	: "×›×¤×ª×•×¨",
+DlgButtonTypeSbm	: "×©×œ×—",
+DlgButtonTypeRst	: "××¤×¡",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "×©×",
+DlgCheckboxValue	: "×¢×¨×š",
+DlgCheckboxSelected	: "×‘×—×•×¨",
+
+// Form Dialog
+DlgFormName		: "×©×",
+DlgFormAction	: "×©×œ×— ××œ",
+DlgFormMethod	: "×¡×•×’ ×©×œ×™×—×”",
+
+// Select Field Dialog
+DlgSelectName		: "×©×",
+DlgSelectValue		: "×¢×¨×š",
+DlgSelectSize		: "×’×•×“×œ",
+DlgSelectLines		: "×©×•×¨×•×ª",
+DlgSelectChkMulti	: "××¤×©×¨ ×‘×—×™×¨×•×ª ×ž×¨×•×‘×•×ª",
+DlgSelectOpAvail	: "××¤×©×¨×•×™×•×ª ×–×ž×™× ×•×ª",
+DlgSelectOpText		: "×˜×§×¡×˜",
+DlgSelectOpValue	: "×¢×¨×š",
+DlgSelectBtnAdd		: "×”×•×¡×£",
+DlgSelectBtnModify	: "×©× ×”",
+DlgSelectBtnUp		: "×œ×ž×¢×œ×”",
+DlgSelectBtnDown	: "×œ×ž×˜×”",
+DlgSelectBtnSetValue : "×§×‘×¢ ×›×‘×¨×™×¨×ª ×ž×—×“×œ",
+DlgSelectBtnDelete	: "×ž×—×§",
+
+// Textarea Dialog
+DlgTextareaName	: "×©×",
+DlgTextareaCols	: "×¢×ž×•×“×•×ª",
+DlgTextareaRows	: "×©×•×¨×•×ª",
+
+// Text Field Dialog
+DlgTextName			: "×©×",
+DlgTextValue		: "×¢×¨×š",
+DlgTextCharWidth	: "×¨×•×—×‘ ×‘××•×ª×™×•×ª",
+DlgTextMaxChars		: "×ž×§×¡×™×ž×•×ª ××•×ª×™×•×ª",
+DlgTextType			: "×¡×•×’",
+DlgTextTypeText		: "×˜×§×¡×˜",
+DlgTextTypePass		: "×¡×™×¡×ž×”",
+
+// Hidden Field Dialog
+DlgHiddenName	: "×©×",
+DlgHiddenValue	: "×¢×¨×š",
+
+// Bulleted List Dialog
+BulletedListProp	: "×ž××¤×™×™× ×™ ×¨×©×™×ž×”",
+NumberedListProp	: "×ž××¤×™×™× ×™ ×¨×©×™×ž×” ×ž×ž×•×¡×¤×¨×ª",
+DlgLstStart			: "×”×ª×—×œ×”",
+DlgLstType			: "×¡×•×’",
+DlgLstTypeCircle	: "×¢×™×’×•×œ",
+DlgLstTypeDisc		: "×“×™×¡×§",
+DlgLstTypeSquare	: "×ž×¨×•×‘×¢",
+DlgLstTypeNumbers	: "×ž×¡×¤×¨×™× (1, 2, 3)",
+DlgLstTypeLCase		: "××•×ª×™×•×ª ×§×˜× ×•×ª (a, b, c)",
+DlgLstTypeUCase		: "××•×ª×™×•×ª ×’×“×•×œ×•×ª (A, B, C)",
+DlgLstTypeSRoman	: "×¡×¤×¨×•×ª ×¨×•×ž××™×•×ª ×§×˜× ×•×ª (i, ii, iii)",
+DlgLstTypeLRoman	: "×¡×¤×¨×•×ª ×¨×•×ž××™×•×ª ×’×“×•×œ×•×ª (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "×›×œ×œ×™",
+DlgDocBackTab		: "×¨×§×¢",
+DlgDocColorsTab		: "×¦×‘×¢×™× ×•×’×‘×•×œ×•×ª",
+DlgDocMetaTab		: "× ×ª×•× ×™ META",
+
+DlgDocPageTitle		: "×›×•×ª×¨×ª ×“×£",
+DlgDocLangDir		: "×›×™×•×•×Ÿ ×©×¤×”",
+DlgDocLangDirLTR	: "×©×ž××œ ×œ×™×ž×™×Ÿ (LTR)",
+DlgDocLangDirRTL	: "×™×ž×™×Ÿ ×œ×©×ž××œ (RTL)",
+DlgDocLangCode		: "×§×•×“ ×©×¤×”",
+DlgDocCharSet		: "×§×™×“×•×“ ××•×ª×™×•×ª",
+DlgDocCharSetCE		: "×ž×¨×›×– ××™×¨×•×¤×”",
+DlgDocCharSetCT		: "×¡×™× ×™ ×ž×¡×•×¨×ª×™ (Big5)",
+DlgDocCharSetCR		: "×§×™×¨×™×œ×™",
+DlgDocCharSetGR		: "×™×•×•× ×™×ª",
+DlgDocCharSetJP		: "×™×¤× ×™×ª",
+DlgDocCharSetKR		: "×§×•×¨×× ×™×ª",
+DlgDocCharSetTR		: "×˜×•×¨×§×™×ª",
+DlgDocCharSetUN		: "×™×•× ×™ ×§×•×“ (UTF-8)",
+DlgDocCharSetWE		: "×ž×¢×¨×‘ ××™×¨×•×¤×”",
+DlgDocCharSetOther	: "×§×™×“×•×“ ××•×ª×™×•×ª ××—×¨",
+
+DlgDocDocType		: "×”×’×“×¨×•×ª ×¡×•×’ ×ž×¡×ž×š",
+DlgDocDocTypeOther	: "×”×’×“×¨×•×ª ×¡×•×’ ×ž×¡×ž×š ××—×¨×•×ª",
+DlgDocIncXHTML		: "×›×œ×•×œ ×”×’×“×¨×•×ª XHTML",
+DlgDocBgColor		: "×¦×‘×¢ ×¨×§×¢",
+DlgDocBgImage		: "URL ×œ×ª×ž×•× ×ª ×¨×§×¢",
+DlgDocBgNoScroll	: "×¨×’×¢ ×œ×œ× ×’×œ×™×œ×”",
+DlgDocCText			: "×˜×§×¡×˜",
+DlgDocCLink			: "×§×™×©×•×¨",
+DlgDocCVisited		: "×§×™×©×•×¨ ×©×‘×•×§×¨",
+DlgDocCActive		: " ×§×™×©×•×¨ ×¤×¢×™×œ",
+DlgDocMargins		: "×’×‘×•×œ×•×ª ×“×£",
+DlgDocMaTop			: "×œ×ž×¢×œ×”",
+DlgDocMaLeft		: "×©×ž××œ×”",
+DlgDocMaRight		: "×™×ž×™× ×”",
+DlgDocMaBottom		: "×œ×ž×˜×”",
+DlgDocMeIndex		: "×ž×¤×ª×— ×¢× ×™×™× ×™× ×©×œ ×”×ž×¡×ž×š )×ž×•×¤×¨×“ ×‘×¤×¡×™×§(",
+DlgDocMeDescr		: "×ª××•×¨ ×ž×¡×ž×š",
+DlgDocMeAuthor		: "×ž×—×‘×¨",
+DlgDocMeCopy		: "×–×›×•×™×•×ª ×™×•×¦×¨×™×",
+DlgDocPreview		: "×ª×¦×•×’×” ×ž×§×“×™×ž×”",
+
+// Templates Dialog
+Templates			: "×ª×‘× ×™×•×ª",
+DlgTemplatesTitle	: "×ª×‘×™×•×ª ×ª×•×›×Ÿ",
+DlgTemplatesSelMsg	: "×× × ×‘×—×¨ ×ª×‘× ×™×ª ×œ×¤×ª×™×—×” ×‘×¢×•×¨×š <BR>×”×ª×•×›×Ÿ ×”×ž×§×•×¨×™ ×™×ž×—×§:",
+DlgTemplatesLoading	: "×ž×¢×œ×” ×¨×©×™×ž×ª ×ª×‘× ×™×•×ª ×× × ×”×ž×ª×Ÿ",
+DlgTemplatesNoTpl	: "(×œ× ×”×•×’×“×¨×• ×ª×‘× ×™×•×ª)",
+DlgTemplatesReplace	: "×”×—×œ×¤×ª ×ª×•×›×Ÿ ×ž×ž×©×™",
+
+// About Dialog
+DlgAboutAboutTab	: "××•×“×•×ª",
+DlgAboutBrowserInfoTab	: "×’×™×¨×¡×ª ×“×¤×“×¤×Ÿ",
+DlgAboutLicenseTab	: "×¨×©×™×•×Ÿ",
+DlgAboutVersion		: "×’×™×¨×¡×",
+DlgAboutInfo		: "×ž×™×“×¢ × ×•×¡×£ × ×™×ª×Ÿ ×œ×ž×¦×•× ×›××Ÿ:"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fi.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fi.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/fi.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Finnish language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Piilota tyÃ¶kalurivi",
+ToolbarExpand		: "NÃ¤ytÃ¤ tyÃ¶kalurivi",
+
+// Toolbar Items and Context Menu
+Save				: "Tallenna",
+NewPage				: "TyhjennÃ¤",
+Preview				: "Esikatsele",
+Cut					: "Leikkaa",
+Copy				: "Kopioi",
+Paste				: "LiitÃ¤",
+PasteText			: "LiitÃ¤ tekstinÃ¤",
+PasteWord			: "LiitÃ¤ Wordista",
+Print				: "Tulosta",
+SelectAll			: "Valitse kaikki",
+RemoveFormat		: "Poista muotoilu",
+InsertLinkLbl		: "Linkki",
+InsertLink			: "LisÃ¤Ã¤ linkki/muokkaa linkkiÃ¤",
+RemoveLink			: "Poista linkki",
+Anchor				: "LisÃ¤Ã¤ ankkuri/muokkaa ankkuria",
+AnchorDelete		: "Poista ankkuri",
+InsertImageLbl		: "Kuva",
+InsertImage			: "LisÃ¤Ã¤ kuva/muokkaa kuvaa",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "LisÃ¤Ã¤/muokkaa Flashia",
+InsertTableLbl		: "Taulu",
+InsertTable			: "LisÃ¤Ã¤ taulu/muokkaa taulua",
+InsertLineLbl		: "Murtoviiva",
+InsertLine			: "LisÃ¤Ã¤ murtoviiva",
+InsertSpecialCharLbl: "Erikoismerkki",
+InsertSpecialChar	: "LisÃ¤Ã¤ erikoismerkki",
+InsertSmileyLbl		: "HymiÃ¶",
+InsertSmiley		: "LisÃ¤Ã¤ hymiÃ¶",
+About				: "FCKeditorista",
+Bold				: "Lihavoitu",
+Italic				: "Kursivoitu",
+Underline			: "Alleviivattu",
+StrikeThrough		: "Yliviivattu",
+Subscript			: "Alaindeksi",
+Superscript			: "YlÃ¤indeksi",
+LeftJustify			: "Tasaa vasemmat reunat",
+CenterJustify		: "KeskitÃ¤",
+RightJustify		: "Tasaa oikeat reunat",
+BlockJustify		: "Tasaa molemmat reunat",
+DecreaseIndent		: "PienennÃ¤ sisennystÃ¤",
+IncreaseIndent		: "Suurenna sisennystÃ¤",
+Blockquote			: "Lainaus",
+Undo				: "Kumoa",
+Redo				: "Toista",
+NumberedListLbl		: "Numerointi",
+NumberedList		: "LisÃ¤Ã¤/poista numerointi",
+BulletedListLbl		: "Luottelomerkit",
+BulletedList		: "LisÃ¤Ã¤/poista luottelomerkit",
+ShowTableBorders	: "NÃ¤ytÃ¤ taulun rajat",
+ShowDetails			: "NÃ¤ytÃ¤ muotoilu",
+Style				: "Tyyli",
+FontFormat			: "Muotoilu",
+Font				: "Fontti",
+FontSize			: "Koko",
+TextColor			: "TekstivÃ¤ri",
+BGColor				: "TaustavÃ¤ri",
+Source				: "Koodi",
+Find				: "Etsi",
+Replace				: "Korvaa",
+SpellCheck			: "Tarkista oikeinkirjoitus",
+UniversalKeyboard	: "Universaali nÃ¤ppÃ¤imistÃ¶",
+PageBreakLbl		: "Sivun vaihto",
+PageBreak			: "LisÃ¤Ã¤ sivun vaihto",
+
+Form			: "Lomake",
+Checkbox		: "Valintaruutu",
+RadioButton		: "Radiopainike",
+TextField		: "TekstikenttÃ¤",
+Textarea		: "Tekstilaatikko",
+HiddenField		: "PiilokenttÃ¤",
+Button			: "Painike",
+SelectionField	: "ValintakenttÃ¤",
+ImageButton		: "Kuvapainike",
+
+FitWindow		: "Suurenna editori koko ikkunaan",
+ShowBlocks		: "NÃ¤ytÃ¤ elementit",
+
+// Context Menu
+EditLink			: "Muokkaa linkkiÃ¤",
+CellCM				: "Solu",
+RowCM				: "Rivi",
+ColumnCM			: "Sarake",
+InsertRowAfter		: "LisÃ¤Ã¤ rivi alapuolelle",
+InsertRowBefore		: "LisÃ¤Ã¤ rivi ylÃ¤puolelle",
+DeleteRows			: "Poista rivit",
+InsertColumnAfter	: "LisÃ¤Ã¤ sarake oikealle",
+InsertColumnBefore	: "LisÃ¤Ã¤ sarake vasemmalle",
+DeleteColumns		: "Poista sarakkeet",
+InsertCellAfter		: "LisÃ¤Ã¤ solu perÃ¤Ã¤n",
+InsertCellBefore	: "LisÃ¤Ã¤ solu eteen",
+DeleteCells			: "Poista solut",
+MergeCells			: "YhdistÃ¤ solut",
+MergeRight			: "YhdistÃ¤ oikealla olevan kanssa",
+MergeDown			: "YhdistÃ¤ alla olevan kanssa",
+HorizontalSplitCell	: "Jaa solu vaakasuunnassa",
+VerticalSplitCell	: "Jaa solu pystysuunnassa",
+TableDelete			: "Poista taulu",
+CellProperties		: "Solun ominaisuudet",
+TableProperties		: "Taulun ominaisuudet",
+ImageProperties		: "Kuvan ominaisuudet",
+FlashProperties		: "Flash ominaisuudet",
+
+AnchorProp			: "Ankkurin ominaisuudet",
+ButtonProp			: "Painikkeen ominaisuudet",
+CheckboxProp		: "Valintaruudun ominaisuudet",
+HiddenFieldProp		: "PiilokentÃ¤n ominaisuudet",
+RadioButtonProp		: "Radiopainikkeen ominaisuudet",
+ImageButtonProp		: "Kuvapainikkeen ominaisuudet",
+TextFieldProp		: "TekstikentÃ¤n ominaisuudet",
+SelectionFieldProp	: "ValintakentÃ¤n ominaisuudet",
+TextareaProp		: "Tekstilaatikon ominaisuudet",
+FormProp			: "Lomakkeen ominaisuudet",
+
+FontFormats			: "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Prosessoidaan XHTML:Ã¤Ã¤. Odota hetki...",
+Done				: "Valmis",
+PasteWordConfirm	: "Teksti, jonka haluat liittÃ¤Ã¤, nÃ¤yttÃ¤Ã¤ olevan kopioitu Wordista. Haluatko puhdistaa sen ennen liittÃ¤mistÃ¤?",
+NotCompatiblePaste	: "TÃ¤mÃ¤ komento toimii vain Internet Explorer 5.5:ssa tai uudemmassa. Haluatko liittÃ¤Ã¤ ilman puhdistusta?",
+UnknownToolbarItem	: "Tuntemanton tyÃ¶kalu \"%1\"",
+UnknownCommand		: "Tuntematon komento \"%1\"",
+NotImplemented		: "Komentoa ei ole liitetty sovellukseen",
+UnknownToolbarSet	: "TyÃ¶kalukokonaisuus \"%1\" ei ole olemassa",
+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.",
+BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, ettÃ¤ ponnahdusikkunoiden estÃ¤jÃ¤t eivÃ¤t ole pÃ¤Ã¤llÃ¤.",
+DialogBlocked		: "Apuikkunaa ei voitu avaata. Varmista, ettÃ¤ ponnahdusikkunoiden estÃ¤jÃ¤t eivÃ¤t ole pÃ¤Ã¤llÃ¤.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Peruuta",
+DlgBtnClose			: "Sulje",
+DlgBtnBrowseServer	: "Selaa palvelinta",
+DlgAdvancedTag		: "LisÃ¤ominaisuudet",
+DlgOpOther			: "Muut",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "LisÃ¤Ã¤ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ei asetettu>",
+DlgGenId			: "Tunniste",
+DlgGenLangDir		: "Kielen suunta",
+DlgGenLangDirLtr	: "Vasemmalta oikealle (LTR)",
+DlgGenLangDirRtl	: "Oikealta vasemmalle (RTL)",
+DlgGenLangCode		: "Kielikoodi",
+DlgGenAccessKey		: "PikanÃ¤ppÃ¤in",
+DlgGenName			: "Nimi",
+DlgGenTabIndex		: "Tabulaattori indeksi",
+DlgGenLongDescr		: "PitkÃ¤n kuvauksen URL",
+DlgGenClass			: "Tyyliluokat",
+DlgGenTitle			: "Avustava otsikko",
+DlgGenContType		: "Avustava sisÃ¤llÃ¶n tyyppi",
+DlgGenLinkCharset	: "Linkitetty kirjaimisto",
+DlgGenStyle			: "Tyyli",
+
+// Image Dialog
+DlgImgTitle			: "Kuvan ominaisuudet",
+DlgImgInfoTab		: "Kuvan tiedot",
+DlgImgBtnUpload		: "LÃ¤hetÃ¤ palvelimelle",
+DlgImgURL			: "Osoite",
+DlgImgUpload		: "LisÃ¤Ã¤ kuva",
+DlgImgAlt			: "Vaihtoehtoinen teksti",
+DlgImgWidth			: "Leveys",
+DlgImgHeight		: "Korkeus",
+DlgImgLockRatio		: "Lukitse suhteet",
+DlgBtnResetSize		: "AlkuperÃ¤inen koko",
+DlgImgBorder		: "Raja",
+DlgImgHSpace		: "Vaakatila",
+DlgImgVSpace		: "Pystytila",
+DlgImgAlign			: "Kohdistus",
+DlgImgAlignLeft		: "Vasemmalle",
+DlgImgAlignAbsBottom: "Aivan alas",
+DlgImgAlignAbsMiddle: "Aivan keskelle",
+DlgImgAlignBaseline	: "Alas (teksti)",
+DlgImgAlignBottom	: "Alas",
+DlgImgAlignMiddle	: "Keskelle",
+DlgImgAlignRight	: "Oikealle",
+DlgImgAlignTextTop	: "YlÃ¶s (teksti)",
+DlgImgAlignTop		: "YlÃ¶s",
+DlgImgPreview		: "Esikatselu",
+DlgImgAlertUrl		: "Kirjoita kuvan osoite (URL)",
+DlgImgLinkTab		: "Linkki",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash ominaisuudet",
+DlgFlashChkPlay		: "Automaattinen kÃ¤ynnistys",
+DlgFlashChkLoop		: "Toisto",
+DlgFlashChkMenu		: "NÃ¤ytÃ¤ Flash-valikko",
+DlgFlashScale		: "LevitÃ¤",
+DlgFlashScaleAll	: "NÃ¤ytÃ¤ kaikki",
+DlgFlashScaleNoBorder	: "Ei rajaa",
+DlgFlashScaleFit	: "Tarkka koko",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Linkki",
+DlgLnkInfoTab		: "Linkin tiedot",
+DlgLnkTargetTab		: "Kohde",
+
+DlgLnkType			: "Linkkityyppi",
+DlgLnkTypeURL		: "Osoite",
+DlgLnkTypeAnchor	: "Ankkuri tÃ¤ssÃ¤ sivussa",
+DlgLnkTypeEMail		: "SÃ¤hkÃ¶posti",
+DlgLnkProto			: "Protokolla",
+DlgLnkProtoOther	: "<muu>",
+DlgLnkURL			: "Osoite",
+DlgLnkAnchorSel		: "Valitse ankkuri",
+DlgLnkAnchorByName	: "Ankkurin nimen mukaan",
+DlgLnkAnchorById	: "Ankkurin ID:n mukaan",
+DlgLnkNoAnchors		: "(Ei ankkureita tÃ¤ssÃ¤ dokumentissa)",
+DlgLnkEMail			: "SÃ¤hkÃ¶postiosoite",
+DlgLnkEMailSubject	: "Aihe",
+DlgLnkEMailBody		: "Viesti",
+DlgLnkUpload		: "LisÃ¤Ã¤ tiedosto",
+DlgLnkBtnUpload		: "LÃ¤hetÃ¤ palvelimelle",
+
+DlgLnkTarget		: "Kohde",
+DlgLnkTargetFrame	: "<kehys>",
+DlgLnkTargetPopup	: "<popup ikkuna>",
+DlgLnkTargetBlank	: "Uusi ikkuna (_blank)",
+DlgLnkTargetParent	: "Emoikkuna (_parent)",
+DlgLnkTargetSelf	: "Sama ikkuna (_self)",
+DlgLnkTargetTop		: "PÃ¤Ã¤llimmÃ¤isin ikkuna (_top)",
+DlgLnkTargetFrameName	: "Kohdekehyksen nimi",
+DlgLnkPopWinName	: "Popup ikkunan nimi",
+DlgLnkPopWinFeat	: "Popup ikkunan ominaisuudet",
+DlgLnkPopResize		: "VenytettÃ¤vÃ¤",
+DlgLnkPopLocation	: "Osoiterivi",
+DlgLnkPopMenu		: "Valikkorivi",
+DlgLnkPopScroll		: "Vierityspalkit",
+DlgLnkPopStatus		: "Tilarivi",
+DlgLnkPopToolbar	: "Vakiopainikkeet",
+DlgLnkPopFullScrn	: "TÃ¤ysi ikkuna (IE)",
+DlgLnkPopDependent	: "Riippuva (Netscape)",
+DlgLnkPopWidth		: "Leveys",
+DlgLnkPopHeight		: "Korkeus",
+DlgLnkPopLeft		: "Vasemmalta (px)",
+DlgLnkPopTop		: "YlhÃ¤Ã¤ltÃ¤ (px)",
+
+DlnLnkMsgNoUrl		: "Linkille on kirjoitettava URL",
+DlnLnkMsgNoEMail	: "Kirjoita sÃ¤hkÃ¶postiosoite",
+DlnLnkMsgNoAnchor	: "Valitse ankkuri",
+DlnLnkMsgInvPopName	: "Popup-ikkunan nimi pitÃ¤Ã¤ alkaa aakkosella ja ei saa sisÃ¤ltÃ¤Ã¤ vÃ¤lejÃ¤",
+
+// Color Dialog
+DlgColorTitle		: "Valitse vÃ¤ri",
+DlgColorBtnClear	: "TyhjennÃ¤",
+DlgColorHighlight	: "Kohdalla",
+DlgColorSelected	: "Valittu",
+
+// Smiley Dialog
+DlgSmileyTitle		: "LisÃ¤Ã¤ hymiÃ¶",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Valitse erikoismerkki",
+
+// Table Dialog
+DlgTableTitle		: "Taulun ominaisuudet",
+DlgTableRows		: "Rivit",
+DlgTableColumns		: "Sarakkeet",
+DlgTableBorder		: "Rajan paksuus",
+DlgTableAlign		: "Kohdistus",
+DlgTableAlignNotSet	: "<ei asetettu>",
+DlgTableAlignLeft	: "Vasemmalle",
+DlgTableAlignCenter	: "Keskelle",
+DlgTableAlignRight	: "Oikealle",
+DlgTableWidth		: "Leveys",
+DlgTableWidthPx		: "pikseliÃ¤",
+DlgTableWidthPc		: "prosenttia",
+DlgTableHeight		: "Korkeus",
+DlgTableCellSpace	: "Solujen vÃ¤li",
+DlgTableCellPad		: "Solujen sisennys",
+DlgTableCaption		: "Otsikko",
+DlgTableSummary		: "Yhteenveto",
+
+// Table Cell Dialog
+DlgCellTitle		: "Solun ominaisuudet",
+DlgCellWidth		: "Leveys",
+DlgCellWidthPx		: "pikseliÃ¤",
+DlgCellWidthPc		: "prosenttia",
+DlgCellHeight		: "Korkeus",
+DlgCellWordWrap		: "TekstikierrÃ¤tys",
+DlgCellWordWrapNotSet	: "<Ei asetettu>",
+DlgCellWordWrapYes	: "KyllÃ¤",
+DlgCellWordWrapNo	: "Ei",
+DlgCellHorAlign		: "Vaakakohdistus",
+DlgCellHorAlignNotSet	: "<Ei asetettu>",
+DlgCellHorAlignLeft	: "Vasemmalle",
+DlgCellHorAlignCenter	: "Keskelle",
+DlgCellHorAlignRight: "Oikealle",
+DlgCellVerAlign		: "Pystykohdistus",
+DlgCellVerAlignNotSet	: "<Ei asetettu>",
+DlgCellVerAlignTop	: "YlÃ¶s",
+DlgCellVerAlignMiddle	: "Keskelle",
+DlgCellVerAlignBottom	: "Alas",
+DlgCellVerAlignBaseline	: "Tekstin alas",
+DlgCellRowSpan		: "Rivin jatkuvuus",
+DlgCellCollSpan		: "Sarakkeen jatkuvuus",
+DlgCellBackColor	: "TaustavÃ¤ri",
+DlgCellBorderColor	: "Rajan vÃ¤ri",
+DlgCellBtnSelect	: "Valitse...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Etsi ja korvaa",
+
+// Find Dialog
+DlgFindTitle		: "Etsi",
+DlgFindFindBtn		: "Etsi",
+DlgFindNotFoundMsg	: "EtsittyÃ¤ tekstiÃ¤ ei lÃ¶ytynyt.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Korvaa",
+DlgReplaceFindLbl		: "Etsi mitÃ¤:",
+DlgReplaceReplaceLbl	: "Korvaa tÃ¤llÃ¤:",
+DlgReplaceCaseChk		: "Sama kirjainkoko",
+DlgReplaceReplaceBtn	: "Korvaa",
+DlgReplaceReplAllBtn	: "Korvaa kaikki",
+DlgReplaceWordChk		: "Koko sana",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Selaimesi turva-asetukset eivÃ¤t salli editorin toteuttaa leikkaamista. KÃ¤ytÃ¤ nÃ¤ppÃ¤imistÃ¶Ã¤ leikkaamiseen (Ctrl+X).",
+PasteErrorCopy	: "Selaimesi turva-asetukset eivÃ¤t salli editorin toteuttaa kopioimista. KÃ¤ytÃ¤ nÃ¤ppÃ¤imistÃ¶Ã¤ kopioimiseen (Ctrl+C).",
+
+PasteAsText		: "LiitÃ¤ tekstinÃ¤",
+PasteFromWord	: "LiitÃ¤ Wordista",
+
+DlgPasteMsg2	: "LiitÃ¤ painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Selaimesi turva-asetukset eivÃ¤t salli editorin kÃ¤yttÃ¤Ã¤ leikepÃ¶ytÃ¤Ã¤ suoraan. Sinun pitÃ¤Ã¤ suorittaa liittÃ¤minen tÃ¤ssÃ¤ ikkunassa.",
+DlgPasteIgnoreFont		: "JÃ¤tÃ¤ huomioimatta fonttimÃ¤Ã¤ritykset",
+DlgPasteRemoveStyles	: "Poista tyylimÃ¤Ã¤ritykset",
+
+// Color Picker
+ColorAutomatic	: "Automaattinen",
+ColorMoreColors	: "LisÃ¤Ã¤ vÃ¤rejÃ¤...",
+
+// Document Properties
+DocProps		: "Dokumentin ominaisuudet",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankkurin ominaisuudet",
+DlgAnchorName		: "Nimi",
+DlgAnchorErrorName	: "Ankkurille on kirjoitettava nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ei sanakirjassa",
+DlgSpellChangeTo		: "Vaihda",
+DlgSpellBtnIgnore		: "JÃ¤tÃ¤ huomioimatta",
+DlgSpellBtnIgnoreAll	: "JÃ¤tÃ¤ kaikki huomioimatta",
+DlgSpellBtnReplace		: "Korvaa",
+DlgSpellBtnReplaceAll	: "Korvaa kaikki",
+DlgSpellBtnUndo			: "Kumoa",
+DlgSpellNoSuggestions	: "Ei ehdotuksia",
+DlgSpellProgress		: "Tarkistus kÃ¤ynnissÃ¤...",
+DlgSpellNoMispell		: "Tarkistus valmis: Ei virheitÃ¤",
+DlgSpellNoChanges		: "Tarkistus valmis: YhtÃ¤Ã¤n sanaa ei muutettu",
+DlgSpellOneChange		: "Tarkistus valmis: Yksi sana muutettiin",
+DlgSpellManyChanges		: "Tarkistus valmis: %1 sanaa muutettiin",
+
+IeSpellDownload			: "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?",
+
+// Button Dialog
+DlgButtonText		: "Teksti (arvo)",
+DlgButtonType		: "Tyyppi",
+DlgButtonTypeBtn	: "Painike",
+DlgButtonTypeSbm	: "LÃ¤hetÃ¤",
+DlgButtonTypeRst	: "TyhjennÃ¤",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nimi",
+DlgCheckboxValue	: "Arvo",
+DlgCheckboxSelected	: "Valittu",
+
+// Form Dialog
+DlgFormName		: "Nimi",
+DlgFormAction	: "Toiminto",
+DlgFormMethod	: "Tapa",
+
+// Select Field Dialog
+DlgSelectName		: "Nimi",
+DlgSelectValue		: "Arvo",
+DlgSelectSize		: "Koko",
+DlgSelectLines		: "Rivit",
+DlgSelectChkMulti	: "Salli usea valinta",
+DlgSelectOpAvail	: "Ominaisuudet",
+DlgSelectOpText		: "Teksti",
+DlgSelectOpValue	: "Arvo",
+DlgSelectBtnAdd		: "LisÃ¤Ã¤",
+DlgSelectBtnModify	: "Muuta",
+DlgSelectBtnUp		: "YlÃ¶s",
+DlgSelectBtnDown	: "Alas",
+DlgSelectBtnSetValue : "Aseta valituksi",
+DlgSelectBtnDelete	: "Poista",
+
+// Textarea Dialog
+DlgTextareaName	: "Nimi",
+DlgTextareaCols	: "Sarakkeita",
+DlgTextareaRows	: "RivejÃ¤",
+
+// Text Field Dialog
+DlgTextName			: "Nimi",
+DlgTextValue		: "Arvo",
+DlgTextCharWidth	: "Leveys",
+DlgTextMaxChars		: "Maksimi merkkimÃ¤Ã¤rÃ¤",
+DlgTextType			: "Tyyppi",
+DlgTextTypeText		: "Teksti",
+DlgTextTypePass		: "Salasana",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nimi",
+DlgHiddenValue	: "Arvo",
+
+// Bulleted List Dialog
+BulletedListProp	: "Luettelon ominaisuudet",
+NumberedListProp	: "Numeroinnin ominaisuudet",
+DlgLstStart			: "Alku",
+DlgLstType			: "Tyyppi",
+DlgLstTypeCircle	: "KehÃ¤",
+DlgLstTypeDisc		: "YmpyrÃ¤",
+DlgLstTypeSquare	: "NeliÃ¶",
+DlgLstTypeNumbers	: "Numerot (1, 2, 3)",
+DlgLstTypeLCase		: "Pienet kirjaimet (a, b, c)",
+DlgLstTypeUCase		: "Isot kirjaimet (A, B, C)",
+DlgLstTypeSRoman	: "Pienet roomalaiset numerot (i, ii, iii)",
+DlgLstTypeLRoman	: "Isot roomalaiset numerot (Ii, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Yleiset",
+DlgDocBackTab		: "Tausta",
+DlgDocColorsTab		: "VÃ¤rit ja marginaalit",
+DlgDocMetaTab		: "Meta-tieto",
+
+DlgDocPageTitle		: "Sivun nimi",
+DlgDocLangDir		: "Kielen suunta",
+DlgDocLangDirLTR	: "Vasemmalta oikealle (LTR)",
+DlgDocLangDirRTL	: "Oikealta vasemmalle (RTL)",
+DlgDocLangCode		: "Kielikoodi",
+DlgDocCharSet		: "MerkistÃ¶koodaus",
+DlgDocCharSetCE		: "Keskieurooppalainen",
+DlgDocCharSetCT		: "Kiina, perinteinen (Big5)",
+DlgDocCharSetCR		: "Kyrillinen",
+DlgDocCharSetGR		: "Kreikka",
+DlgDocCharSetJP		: "Japani",
+DlgDocCharSetKR		: "Korealainen",
+DlgDocCharSetTR		: "Turkkilainen",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "LÃ¤nsieurooppalainen",
+DlgDocCharSetOther	: "Muu merkistÃ¶koodaus",
+
+DlgDocDocType		: "Dokumentin tyyppi",
+DlgDocDocTypeOther	: "Muu dokumentin tyyppi",
+DlgDocIncXHTML		: "LisÃ¤Ã¤ XHTML julistukset",
+DlgDocBgColor		: "TaustavÃ¤ri",
+DlgDocBgImage		: "Taustakuva",
+DlgDocBgNoScroll	: "PaikallaanpysyvÃ¤ tausta",
+DlgDocCText			: "Teksti",
+DlgDocCLink			: "Linkki",
+DlgDocCVisited		: "Vierailtu linkki",
+DlgDocCActive		: "Aktiivinen linkki",
+DlgDocMargins		: "Sivun marginaalit",
+DlgDocMaTop			: "YlÃ¤",
+DlgDocMaLeft		: "Vasen",
+DlgDocMaRight		: "Oikea",
+DlgDocMaBottom		: "Ala",
+DlgDocMeIndex		: "Hakusanat (pilkulla erotettuna)",
+DlgDocMeDescr		: "Kuvaus",
+DlgDocMeAuthor		: "TekijÃ¤",
+DlgDocMeCopy		: "TekijÃ¤noikeudet",
+DlgDocPreview		: "Esikatselu",
+
+// Templates Dialog
+Templates			: "Pohjat",
+DlgTemplatesTitle	: "SisÃ¤ltÃ¶pohjat",
+DlgTemplatesSelMsg	: "Valitse pohja editoriin<br>(aiempi sisÃ¤ltÃ¶ menetetÃ¤Ã¤n):",
+DlgTemplatesLoading	: "Ladataan listaa pohjista. Hetkinen...",
+DlgTemplatesNoTpl	: "(Ei mÃ¤Ã¤riteltyjÃ¤ pohjia)",
+DlgTemplatesReplace	: "Korvaa editorin koko sisÃ¤ltÃ¶",
+
+// About Dialog
+DlgAboutAboutTab	: "Editorista",
+DlgAboutBrowserInfoTab	: "Selaimen tiedot",
+DlgAboutLicenseTab	: "Lisenssi",
+DlgAboutVersion		: "versio",
+DlgAboutInfo		: "LisÃ¤Ã¤ tietoa osoitteesta"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hi.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hi.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/hi.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hindi language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "à¤Ÿà¥‚à¤²à¤¬à¤¾à¤° à¤¸à¤¿à¤®à¤Ÿà¤¾à¤¯à¥‡à¤‚",
+ToolbarExpand		: "à¤Ÿà¥‚à¤²à¤¬à¤¾à¤° à¤•à¤¾ à¤µà¤¿à¤¸à¥à¤¤à¤¾à¤° à¤•à¤°à¥‡à¤‚",
+
+// Toolbar Items and Context Menu
+Save				: "à¤¸à¥‡à¤µ",
+NewPage				: "à¤¨à¤¯à¤¾ à¤ªà¥‡à¤œ",
+Preview				: "à¤ªà¥à¤°à¥€à¤µà¥à¤¯à¥‚",
+Cut					: "à¤•à¤Ÿ",
+Copy				: "à¤•à¥‰à¤ªà¥€",
+Paste				: "à¤ªà¥‡à¤¸à¥à¤Ÿ",
+PasteText			: "à¤ªà¥‡à¤¸à¥à¤Ÿ (à¤¸à¤¾à¤¦à¤¾ à¤Ÿà¥…à¤•à¥à¤¸à¥à¤Ÿ)",
+PasteWord			: "à¤ªà¥‡à¤¸à¥à¤Ÿ (à¤µà¤°à¥à¤¡ à¤¸à¥‡)",
+Print				: "à¤ªà¥à¤°à¤¿à¤¨à¥à¤Ÿ",
+SelectAll			: "à¤¸à¤¬ à¤¸à¥…à¤²à¥…à¤•à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+RemoveFormat		: "à¥žà¥‰à¤°à¥à¤®à¥ˆà¤Ÿ à¤¹à¤Ÿà¤¾à¤¯à¥‡à¤‚",
+InsertLinkLbl		: "à¤²à¤¿à¤‚à¤•",
+InsertLink			: "à¤²à¤¿à¤‚à¤• à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+RemoveLink			: "à¤²à¤¿à¤‚à¤• à¤¹à¤Ÿà¤¾à¤¯à¥‡à¤‚",
+Anchor				: "à¤à¤‚à¤•à¤° à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+AnchorDelete		: "à¤à¤‚à¤•à¤° à¤¹à¤Ÿà¤¾à¤¯à¥‡à¤‚",
+InsertImageLbl		: "à¤¤à¤¸à¥à¤µà¥€à¤°",
+InsertImage			: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+InsertFlashLbl		: "à¥žà¥à¤²à¥ˆà¤¶",
+InsertFlash			: "à¥žà¥à¤²à¥ˆà¤¶ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+InsertTableLbl		: "à¤Ÿà¥‡à¤¬à¤²",
+InsertTable			: "à¤Ÿà¥‡à¤¬à¤² à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+InsertLineLbl		: "à¤°à¥‡à¤–à¤¾",
+InsertLine			: "à¤¹à¥‰à¤°à¤¿à¥›à¥‰à¤¨à¥à¤Ÿà¤² à¤°à¥‡à¤–à¤¾ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+InsertSpecialCharLbl: "à¤µà¤¿à¤¶à¥‡à¤· à¤•à¤°à¥…à¤•à¥à¤Ÿà¤°",
+InsertSpecialChar	: "à¤µà¤¿à¤¶à¥‡à¤· à¤•à¤°à¥…à¤•à¥à¤Ÿà¤° à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+InsertSmileyLbl		: "à¤¸à¥à¤®à¤¾à¤‡à¤²à¥€",
+InsertSmiley		: "à¤¸à¥à¤®à¤¾à¤‡à¤²à¥€ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+About				: "FCKeditor à¤•à¥‡ à¤¬à¤¾à¤°à¥‡ à¤®à¥‡à¤‚",
+Bold				: "à¤¬à¥‹à¤²à¥à¤¡",
+Italic				: "à¤‡à¤Ÿà¥ˆà¤²à¤¿à¤•",
+Underline			: "à¤°à¥‡à¤–à¤¾à¤‚à¤•à¤£",
+StrikeThrough		: "à¤¸à¥à¤Ÿà¥à¤°à¤¾à¤‡à¤• à¤¥à¥à¤°à¥‚",
+Subscript			: "à¤…à¤§à¥‹à¤²à¥‡à¤–",
+Superscript			: "à¤…à¤­à¤¿à¤²à¥‡à¤–",
+LeftJustify			: "à¤¬à¤¾à¤¯à¥€à¤‚ à¤¤à¤°à¤«",
+CenterJustify		: "à¤¬à¥€à¤š à¤®à¥‡à¤‚",
+RightJustify		: "à¤¦à¤¾à¤¯à¥€à¤‚ à¤¤à¤°à¤«",
+BlockJustify		: "à¤¬à¥à¤²à¥‰à¤• à¤œà¤¸à¥à¤Ÿà¥€à¥žà¤¾à¤ˆ",
+DecreaseIndent		: "à¤‡à¤¨à¥à¤¡à¥…à¤¨à¥à¤Ÿ à¤•à¤® à¤•à¤°à¥‡à¤‚",
+IncreaseIndent		: "à¤‡à¤¨à¥à¤¡à¥…à¤¨à¥à¤Ÿ à¤¬à¥à¤¾à¤¯à¥‡à¤‚",
+Blockquote			: "à¤¬à¥à¤²à¥‰à¤•-à¤•à¥‹à¤Ÿ",
+Undo				: "à¤…à¤¨à¥à¤¡à¥‚",
+Redo				: "à¤°à¥€à¤¡à¥‚",
+NumberedListLbl		: "à¤…à¤‚à¤•à¥€à¤¯ à¤¸à¥‚à¤šà¥€",
+NumberedList		: "à¤…à¤‚à¤•à¥€à¤¯ à¤¸à¥‚à¤šà¥€ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+BulletedListLbl		: "à¤¬à¥à¤²à¥…à¤Ÿ à¤¸à¥‚à¤šà¥€",
+BulletedList		: "à¤¬à¥à¤²à¥…à¤Ÿ à¤¸à¥‚à¤šà¥€ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ/à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+ShowTableBorders	: "à¤Ÿà¥‡à¤¬à¤² à¤¬à¥‰à¤°à¥à¤¡à¤°à¤¯à¥‡à¤‚ à¤¦à¤¿à¤–à¤¾à¤¯à¥‡à¤‚",
+ShowDetails			: "à¤œà¥à¤¯à¤¾à¤¦à¤¾   à¤¦à¤¿à¤–à¤¾à¤¯à¥‡à¤‚",
+Style				: "à¤¸à¥à¤Ÿà¤¾à¤‡à¤²",
+FontFormat			: "à¥žà¥‰à¤°à¥à¤®à¥ˆà¤Ÿ",
+Font				: "à¥žà¥‰à¤¨à¥à¤Ÿ",
+FontSize			: "à¤¸à¤¾à¤‡à¥›",
+TextColor			: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¤°à¤‚à¤—",
+BGColor				: "à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ à¤°à¤‚à¤—",
+Source				: "à¤¸à¥‹à¤°à¥à¤¸",
+Find				: "à¤–à¥‹à¤œà¥‡à¤‚",
+Replace				: "à¤°à¥€à¤ªà¥à¤²à¥‡à¤¸",
+SpellCheck			: "à¤µà¤°à¥à¤¤à¤¨à¥€ (à¤¸à¥à¤ªà¥‡à¤²à¤¿à¤‚à¤—) à¤œà¤¾à¤à¤š",
+UniversalKeyboard	: "à¤¯à¥‚à¤¨à¥€à¤µà¤°à¥à¤¸à¤² à¤•à¥€à¤¬à¥‹à¤°à¥à¤¡",
+PageBreakLbl		: "à¤ªà¥‡à¤œ à¤¬à¥à¤°à¥‡à¤•",
+PageBreak			: "à¤ªà¥‡à¤œ à¤¬à¥à¤°à¥‡à¤• à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿà¥ à¤•à¤°à¥‡à¤‚",
+
+Form			: "à¥žà¥‰à¤°à¥à¤®",
+Checkbox		: "à¤šà¥…à¤• à¤¬à¥‰à¤•à¥à¤¸",
+RadioButton		: "à¤°à¥‡à¤¡à¤¿à¤“ à¤¬à¤Ÿà¤¨",
+TextField		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¥žà¥€à¤²à¥à¤¡",
+Textarea		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¤à¤°à¤¿à¤¯à¤¾",
+HiddenField		: "à¤—à¥à¤ªà¥à¤¤ à¥žà¥€à¤²à¥à¤¡",
+Button			: "à¤¬à¤Ÿà¤¨",
+SelectionField	: "à¤šà¥à¤¨à¤¾à¤µ à¥žà¥€à¤²à¥à¤¡",
+ImageButton		: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤¬à¤Ÿà¤¨",
+
+FitWindow		: "à¤à¤¡à¤¿à¤Ÿà¤° à¤¸à¤¾à¤‡à¥› à¤•à¥‹ à¤šà¤°à¤® à¤¸à¥€à¤®à¤¾ à¤¤à¤• à¤¬à¥à¤¾à¤¯à¥‡à¤‚",
+ShowBlocks		: "à¤¬à¥à¤²à¥‰à¤• à¤¦à¤¿à¤–à¤¾à¤¯à¥‡à¤‚",
+
+// Context Menu
+EditLink			: "à¤²à¤¿à¤‚à¤• à¤¸à¤‚à¤ªà¤¾à¤¦à¤¨",
+CellCM				: "à¤–à¤¾à¤¨à¤¾",
+RowCM				: "à¤ªà¤‚à¤•à¥à¤¤à¤¿",
+ColumnCM			: "à¤•à¤¾à¤²à¤®",
+InsertRowAfter		: "à¤¬à¤¾à¤¦ à¤®à¥‡à¤‚ à¤ªà¤‚à¤•à¥à¤¤à¤¿ à¤¡à¤¾à¤²à¥‡à¤‚",
+InsertRowBefore		: "à¤ªà¤¹à¤²à¥‡ à¤ªà¤‚à¤•à¥à¤¤à¤¿ à¤¡à¤¾à¤²à¥‡à¤‚",
+DeleteRows			: "à¤ªà¤‚à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤ à¤¡à¤¿à¤²à¥€à¤Ÿ à¤•à¤°à¥‡à¤‚",
+InsertColumnAfter	: "à¤¬à¤¾à¤¦ à¤®à¥‡à¤‚ à¤•à¤¾à¤²à¤® à¤¡à¤¾à¤²à¥‡à¤‚",
+InsertColumnBefore	: "à¤ªà¤¹à¤²à¥‡ à¤•à¤¾à¤²à¤® à¤¡à¤¾à¤²à¥‡à¤‚",
+DeleteColumns		: "à¤•à¤¾à¤²à¤® à¤¡à¤¿à¤²à¥€à¤Ÿ à¤•à¤°à¥‡à¤‚",
+InsertCellAfter		: "à¤¬à¤¾à¤¦ à¤®à¥‡à¤‚ à¤¸à¥ˆà¤² à¤¡à¤¾à¤²à¥‡à¤‚",
+InsertCellBefore	: "à¤ªà¤¹à¤²à¥‡ à¤¸à¥ˆà¤² à¤¡à¤¾à¤²à¥‡à¤‚",
+DeleteCells			: "à¤¸à¥ˆà¤² à¤¡à¤¿à¤²à¥€à¤Ÿ à¤•à¤°à¥‡à¤‚",
+MergeCells			: "à¤¸à¥ˆà¤² à¤®à¤¿à¤²à¤¾à¤¯à¥‡à¤‚",
+MergeRight			: "à¤¬à¤¾à¤à¤¯à¤¾ à¤µà¤¿à¤²à¤¯",
+MergeDown			: "à¤¨à¥€à¤šà¥‡ à¤µà¤¿à¤²à¤¯ à¤•à¤°à¥‡à¤‚",
+HorizontalSplitCell	: "à¤¸à¥ˆà¤² à¤•à¥‹ à¤•à¥à¤·à¥ˆà¤¤à¤¿à¤œ à¤¸à¥à¤¥à¤¿à¤¤à¤¿ à¤®à¥‡à¤‚ à¤µà¤¿à¤­à¤¾à¤œà¤¿à¤¤ à¤•à¤°à¥‡à¤‚",
+VerticalSplitCell	: "à¤¸à¥ˆà¤² à¤•à¥‹ à¤²à¤®à¥à¤¬à¤¾à¤•à¤¾à¤° à¤®à¥‡à¤‚ à¤µà¤¿à¤­à¤¾à¤œà¤¿à¤¤ à¤•à¤°à¥‡à¤‚",
+TableDelete			: "à¤Ÿà¥‡à¤¬à¤² à¤¡à¤¿à¤²à¥€à¤Ÿ à¤•à¤°à¥‡à¤‚",
+CellProperties		: "à¤¸à¥ˆà¤² à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+TableProperties		: "à¤Ÿà¥‡à¤¬à¤² à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+ImageProperties		: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+FlashProperties		: "à¥žà¥à¤²à¥ˆà¤¶ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+
+AnchorProp			: "à¤à¤‚à¤•à¤° à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+ButtonProp			: "à¤¬à¤Ÿà¤¨ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+CheckboxProp		: "à¤šà¥…à¤• à¤¬à¥‰à¤•à¥à¤¸ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+HiddenFieldProp		: "à¤—à¥à¤ªà¥à¤¤ à¥žà¥€à¤²à¥à¤¡ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+RadioButtonProp		: "à¤°à¥‡à¤¡à¤¿à¤“ à¤¬à¤Ÿà¤¨ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+ImageButtonProp		: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤¬à¤Ÿà¤¨ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+TextFieldProp		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¥žà¥€à¤²à¥à¤¡ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+SelectionFieldProp	: "à¤šà¥à¤¨à¤¾à¤µ à¥žà¥€à¤²à¥à¤¡ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+TextareaProp		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+FormProp			: "à¥žà¥‰à¤°à¥à¤® à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+
+FontFormats			: "à¤¸à¤¾à¤§à¤¾à¤°à¤£;à¥žà¥‰à¤°à¥à¤®à¥ˆà¤Ÿà¥…à¤¡;à¤ªà¤¤à¤¾;à¤¶à¥€à¤°à¥à¤·à¤• 1;à¤¶à¥€à¤°à¥à¤·à¤• 2;à¤¶à¥€à¤°à¥à¤·à¤• 3;à¤¶à¥€à¤°à¥à¤·à¤• 4;à¤¶à¥€à¤°à¥à¤·à¤• 5;à¤¶à¥€à¤°à¥à¤·à¤• 6;à¤¶à¥€à¤°à¥à¤·à¤• (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML à¤ªà¥à¤°à¥‹à¤¸à¥…à¤¸ à¤¹à¥‹ à¤°à¤¹à¤¾ à¤¹à¥ˆà¥¤ à¥›à¤°à¤¾ à¤ à¤¹à¤°à¥‡à¤‚...",
+Done				: "à¤ªà¥‚à¤°à¤¾ à¤¹à¥à¤†",
+PasteWordConfirm	: "à¤†à¤ª à¤œà¥‹ à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¤ªà¥‡à¤¸à¥à¤Ÿ à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¤¤à¥‡ à¤¹à¥ˆà¤‚, à¤µà¤¹ à¤µà¤°à¥à¤¡ à¤¸à¥‡ à¤•à¥‰à¤ªà¥€ à¤•à¤¿à¤¯à¤¾ à¤¹à¥à¤† à¤²à¤— à¤°à¤¹à¤¾ à¤¹à¥ˆà¥¤ à¤•à¥à¤¯à¤¾ à¤ªà¥‡à¤¸à¥à¤Ÿ à¤•à¤°à¤¨à¥‡ à¤¸à¥‡ à¤ªà¤¹à¤²à¥‡ à¤†à¤ª à¤‡à¤¸à¥‡ à¤¸à¤¾à¥ž à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤‚à¤—à¥‡?",
+NotCompatiblePaste	: "à¤¯à¤¹ à¤•à¤®à¤¾à¤‚à¤¡ à¤‡à¤¨à¥à¤Ÿà¤°à¤¨à¥…à¤Ÿ à¤à¤•à¥à¤¸à¥à¤ªà¥à¤²à¥‹à¤°à¤°(Internet Explorer) 5.5 à¤¯à¤¾ à¤‰à¤¸à¤•à¥‡ à¤¬à¤¾à¤¦ à¤•à¥‡ à¤µà¤°à¥à¥›à¤¨ à¤•à¥‡ à¤²à¤¿à¤ à¤¹à¥€ à¤‰à¤ªà¤²à¤¬à¥à¤§ à¤¹à¥ˆà¥¤ à¤•à¥à¤¯à¤¾ à¤†à¤ª à¤¬à¤¿à¤¨à¤¾ à¤¸à¤¾à¥ž à¤•à¤¿à¤ à¤ªà¥‡à¤¸à¥à¤Ÿ à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤‚à¤—à¥‡?",
+UnknownToolbarItem	: "à¤…à¤¨à¤œà¤¾à¤¨ à¤Ÿà¥‚à¤²à¤¬à¤¾à¤° à¤†à¤‡à¤Ÿà¤® \"%1\"",
+UnknownCommand		: "à¤…à¤¨à¤œà¤¾à¤¨ à¤•à¤®à¤¾à¤¨à¥à¤¡ \"%1\"",
+NotImplemented		: "à¤•à¤®à¤¾à¤¨à¥à¤¡ à¤‡à¤®à¥à¤ªà¥à¤²à¥€à¤®à¥…à¤¨à¥à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤•à¤¿à¤¯à¤¾ à¤—à¤¯à¤¾ à¤¹à¥ˆ",
+UnknownToolbarSet	: "à¤Ÿà¥‚à¤²à¤¬à¤¾à¤° à¤¸à¥…à¤Ÿ \"%1\" à¤‰à¤ªà¤²à¤¬à¥à¤§ à¤¨à¤¹à¥€à¤‚ à¤¹à¥ˆ",
+NoActiveX			: "à¤†à¤ªà¤•à¥‡ à¤¬à¥à¤°à¤¾à¤‰à¥›à¤°à¥ à¤•à¥€ à¤¸à¥à¤°à¤•à¥à¤¶à¤¾ à¤¸à¥‡à¤Ÿà¤¿à¤‚à¤—à¥à¤¸à¥ à¤à¤¡à¤¿à¤Ÿà¤° à¤•à¥€ à¤•à¥à¤›à¥ à¥žà¥€à¤šà¤°à¥‹à¤‚ à¤•à¥‹ à¤¸à¥€à¤®à¤¿à¤¤ à¤•à¤°à¥ à¤¸à¤•à¤¤à¥€ à¤¹à¥ˆà¤‚à¥¤ à¤•à¥à¤°à¤¿à¤ªà¤¯à¤¾ \"Run ActiveX controls and plug-ins\" à¤µà¤¿à¤•à¤²à¥à¤ª à¤•à¥‹ à¤à¤¨à¥‡à¤¬à¤² à¤•à¤°à¥‡à¤‚. à¤†à¤ªà¤•à¥‹ à¤à¤°à¤°à¥à¤¸à¥ à¤”à¤° à¤—à¤¾à¤¯à¤¬ à¥žà¥€à¤šà¤°à¥à¤¸à¥ à¤•à¤¾ à¤…à¤¨à¥à¤­à¤µ à¤¹à¥‹ à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆà¥¤",
+BrowseServerBlocked : "à¤°à¤¿à¤¸à¥‹à¤°à¥à¤¸à¥‡à¥› à¤¬à¥à¤°à¤¾à¤‰à¥›à¤°à¥ à¤¨à¤¹à¥€à¤‚ à¤–à¥‹à¤²à¤¾ à¤œà¤¾ à¤¸à¤•à¤¾à¥¤ à¤•à¥à¤°à¤¿à¤ªà¤¯à¤¾ à¤¸à¤­à¥€ à¤ªà¥‰à¤ªà¥-à¤…à¤ªà¥ à¤¬à¥à¤²à¥‰à¤•à¤°à¥à¤¸à¥ à¤•à¥‹ à¤¡à¤¿à¤¸à¥‡à¤¬à¤² à¤•à¤°à¥‡à¤‚à¥¤",
+DialogBlocked		: "à¤¡à¤¾à¤¯à¤²à¤— à¤µà¤¿à¤¨à¥à¤¡à¥‹ à¤¨à¤¹à¥€à¤‚ à¤–à¥‹à¤²à¤¾ à¤œà¤¾ à¤¸à¤•à¤¾à¥¤ à¤•à¥à¤°à¤¿à¤ªà¤¯à¤¾ à¤¸à¤­à¥€ à¤ªà¥‰à¤ªà¥-à¤…à¤ªà¥ à¤¬à¥à¤²à¥‰à¤•à¤°à¥à¤¸à¥ à¤•à¥‹ à¤¡à¤¿à¤¸à¥‡à¤¬à¤² à¤•à¤°à¥‡à¤‚à¥¤",
+
+// Dialogs
+DlgBtnOK			: "à¤ à¥€à¤• à¤¹à¥ˆ",
+DlgBtnCancel		: "à¤°à¤¦à¥à¤¦ à¤•à¤°à¥‡à¤‚",
+DlgBtnClose			: "à¤¬à¤¨à¥à¤¦ à¤•à¤°à¥‡à¤‚",
+DlgBtnBrowseServer	: "à¤¸à¤°à¥à¤µà¤° à¤¬à¥à¤°à¤¾à¤‰à¥› à¤•à¤°à¥‡à¤‚",
+DlgAdvancedTag		: "à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡",
+DlgOpOther			: "<à¤…à¤¨à¥à¤¯>",
+DlgInfoTab			: "à¤¸à¥‚à¤šà¤¨à¤¾",
+DlgAlertUrl			: "URL à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<à¤¸à¥…à¤Ÿ à¤¨à¤¹à¥€à¤‚>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "à¤­à¤¾à¤·à¤¾ à¤²à¤¿à¤–à¤¨à¥‡ à¤•à¥€ à¤¦à¤¿à¤¶à¤¾",
+DlgGenLangDirLtr	: "à¤¬à¤¾à¤¯à¥‡à¤‚ à¤¸à¥‡ à¤¦à¤¾à¤¯à¥‡à¤‚ (LTR)",
+DlgGenLangDirRtl	: "à¤¦à¤¾à¤¯à¥‡à¤‚ à¤¸à¥‡ à¤¬à¤¾à¤¯à¥‡à¤‚ (RTL)",
+DlgGenLangCode		: "à¤­à¤¾à¤·à¤¾ à¤•à¥‹à¤¡",
+DlgGenAccessKey		: "à¤à¤•à¥à¤¸à¥…à¤¸ à¤•à¥€",
+DlgGenName			: "à¤¨à¤¾à¤®",
+DlgGenTabIndex		: "à¤Ÿà¥ˆà¤¬ à¤‡à¤¨à¥à¤¡à¥…à¤•à¥à¤¸",
+DlgGenLongDescr		: "à¤…à¤§à¤¿à¤• à¤µà¤¿à¤µà¤°à¤£ à¤•à¥‡ à¤²à¤¿à¤ URL",
+DlgGenClass			: "à¤¸à¥à¤Ÿà¤¾à¤‡à¤²-à¤¶à¥€à¤Ÿ à¤•à¥à¤²à¤¾à¤¸",
+DlgGenTitle			: "à¤ªà¤°à¤¾à¤®à¤°à¥à¤¶ à¤¶à¥€à¤°à¥à¤¶à¤•",
+DlgGenContType		: "à¤ªà¤°à¤¾à¤®à¤°à¥à¤¶ à¤•à¤¨à¥à¤Ÿà¥…à¤¨à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤°",
+DlgGenLinkCharset	: "à¤²à¤¿à¤‚à¤• à¤°à¤¿à¤¸à¥‹à¤°à¥à¤¸ à¤•à¤°à¥…à¤•à¥à¤Ÿà¤° à¤¸à¥…à¤Ÿ",
+DlgGenStyle			: "à¤¸à¥à¤Ÿà¤¾à¤‡à¤²",
+
+// Image Dialog
+DlgImgTitle			: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgImgInfoTab		: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤•à¥€ à¤œà¤¾à¤¨à¤•à¤¾à¤°à¥€",
+DlgImgBtnUpload		: "à¤‡à¤¸à¥‡ à¤¸à¤°à¥à¤µà¤° à¤•à¥‹ à¤­à¥‡à¤œà¥‡à¤‚",
+DlgImgURL			: "URL",
+DlgImgUpload		: "à¤…à¤ªà¤²à¥‹à¤¡",
+DlgImgAlt			: "à¤µà¥ˆà¤•à¤²à¥à¤ªà¤¿à¤• à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ",
+DlgImgWidth			: "à¤šà¥Œà¥œà¤¾à¤ˆ",
+DlgImgHeight		: "à¤Šà¤à¤šà¤¾à¤ˆ",
+DlgImgLockRatio		: "à¤²à¥‰à¤• à¤…à¤¨à¥à¤ªà¤¾à¤¤",
+DlgBtnResetSize		: "à¤°à¥€à¤¸à¥…à¤Ÿ à¤¸à¤¾à¤‡à¥›",
+DlgImgBorder		: "à¤¬à¥‰à¤°à¥à¤¡à¤°",
+DlgImgHSpace		: "à¤¹à¥‰à¤°à¤¿à¥›à¥‰à¤¨à¥à¤Ÿà¤² à¤¸à¥à¤ªà¥‡à¤¸",
+DlgImgVSpace		: "à¤µà¤°à¥à¤Ÿà¤¿à¤•à¤² à¤¸à¥à¤ªà¥‡à¤¸",
+DlgImgAlign			: "à¤à¤²à¤¾à¤‡à¤¨",
+DlgImgAlignLeft		: "à¤¦à¤¾à¤¯à¥‡à¤‚",
+DlgImgAlignAbsBottom: "Abs à¤¨à¥€à¤šà¥‡",
+DlgImgAlignAbsMiddle: "Abs à¤Šà¤ªà¤°",
+DlgImgAlignBaseline	: "à¤®à¥‚à¤² à¤°à¥‡à¤–à¤¾",
+DlgImgAlignBottom	: "à¤¨à¥€à¤šà¥‡",
+DlgImgAlignMiddle	: "à¤®à¤§à¥à¤¯",
+DlgImgAlignRight	: "à¤¦à¤¾à¤¯à¥‡à¤‚",
+DlgImgAlignTextTop	: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¤Šà¤ªà¤°",
+DlgImgAlignTop		: "à¤Šà¤ªà¤°",
+DlgImgPreview		: "à¤ªà¥à¤°à¥€à¤µà¥à¤¯à¥‚",
+DlgImgAlertUrl		: "à¤¤à¤¸à¥à¤µà¥€à¤° à¤•à¤¾ URL à¤Ÿà¤¾à¤‡à¤ª à¤•à¤°à¥‡à¤‚ ",
+DlgImgLinkTab		: "à¤²à¤¿à¤‚à¤•",
+
+// Flash Dialog
+DlgFlashTitle		: "à¥žà¥à¤²à¥ˆà¤¶ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgFlashChkPlay		: "à¤‘à¤Ÿà¥‹ à¤ªà¥à¤²à¥‡",
+DlgFlashChkLoop		: "à¤²à¥‚à¤ª",
+DlgFlashChkMenu		: "à¥žà¥à¤²à¥ˆà¤¶ à¤®à¥…à¤¨à¥à¤¯à¥‚ à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚",
+DlgFlashScale		: "à¤¸à¥à¤•à¥‡à¤²",
+DlgFlashScaleAll	: "à¤¸à¤­à¥€ à¤¦à¤¿à¤–à¤¾à¤¯à¥‡à¤‚",
+DlgFlashScaleNoBorder	: "à¤•à¥‹à¤ˆ à¤¬à¥‰à¤°à¥à¤¡à¤° à¤¨à¤¹à¥€à¤‚",
+DlgFlashScaleFit	: "à¤¬à¤¿à¤²à¥à¤•à¥à¤² à¥žà¤¿à¤Ÿ",
+
+// Link Dialog
+DlgLnkWindowTitle	: "à¤²à¤¿à¤‚à¤•",
+DlgLnkInfoTab		: "à¤²à¤¿à¤‚à¤•  ",
+DlgLnkTargetTab		: "à¤Ÿà¤¾à¤°à¥à¤—à¥‡à¤Ÿ",
+
+DlgLnkType			: "à¤²à¤¿à¤‚à¤• à¤ªà¥à¤°à¤•à¤¾à¤°",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "à¤‡à¤¸ à¤ªà¥‡à¤œ à¤•à¤¾ à¤à¤‚à¤•à¤°",
+DlgLnkTypeEMail		: "à¤ˆ-à¤®à¥‡à¤²",
+DlgLnkProto			: "à¤ªà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤²",
+DlgLnkProtoOther	: "<à¤…à¤¨à¥à¤¯>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "à¤à¤‚à¤•à¤° à¤šà¥à¤¨à¥‡à¤‚",
+DlgLnkAnchorByName	: "à¤à¤‚à¤•à¤° à¤¨à¤¾à¤® à¤¸à¥‡",
+DlgLnkAnchorById	: "à¤à¤²à¥€à¤®à¥…à¤¨à¥à¤Ÿ Id à¤¸à¥‡",
+DlgLnkNoAnchors		: "(à¤¡à¥‰à¤•à¥à¤¯à¥‚à¤®à¥…à¤¨à¥à¤Ÿ à¤®à¥‡à¤‚ à¤à¤‚à¤•à¤°à¥à¤¸ à¤•à¥€ à¤¸à¤‚à¤–à¥à¤¯à¤¾)",
+DlgLnkEMail			: "à¤ˆ-à¤®à¥‡à¤² à¤ªà¤¤à¤¾",
+DlgLnkEMailSubject	: "à¤¸à¤‚à¤¦à¥‡à¤¶ à¤µà¤¿à¤·à¤¯",
+DlgLnkEMailBody		: "à¤¸à¤‚à¤¦à¥‡à¤¶",
+DlgLnkUpload		: "à¤…à¤ªà¤²à¥‹à¤¡",
+DlgLnkBtnUpload		: "à¤‡à¤¸à¥‡ à¤¸à¤°à¥à¤µà¤° à¤•à¥‹ à¤­à¥‡à¤œà¥‡à¤‚",
+
+DlgLnkTarget		: "à¤Ÿà¤¾à¤°à¥à¤—à¥‡à¤Ÿ",
+DlgLnkTargetFrame	: "<à¥žà¥à¤°à¥‡à¤®>",
+DlgLnkTargetPopup	: "<à¤ªà¥‰à¤ª-à¤…à¤ª à¤µà¤¿à¤¨à¥à¤¡à¥‹>",
+DlgLnkTargetBlank	: "à¤¨à¤¯à¤¾ à¤µà¤¿à¤¨à¥à¤¡à¥‹ (_blank)",
+DlgLnkTargetParent	: "à¤®à¥‚à¤² à¤µà¤¿à¤¨à¥à¤¡à¥‹ (_parent)",
+DlgLnkTargetSelf	: "à¤‡à¤¸à¥€ à¤µà¤¿à¤¨à¥à¤¡à¥‹ (_self)",
+DlgLnkTargetTop		: "à¤¶à¥€à¤°à¥à¤· à¤µà¤¿à¤¨à¥à¤¡à¥‹ (_top)",
+DlgLnkTargetFrameName	: "à¤Ÿà¤¾à¤°à¥à¤—à¥‡à¤Ÿ à¥žà¥à¤°à¥‡à¤® à¤•à¤¾ à¤¨à¤¾à¤®",
+DlgLnkPopWinName	: "à¤ªà¥‰à¤ª-à¤…à¤ª à¤µà¤¿à¤¨à¥à¤¡à¥‹ à¤•à¤¾ à¤¨à¤¾à¤®",
+DlgLnkPopWinFeat	: "à¤ªà¥‰à¤ª-à¤…à¤ª à¤µà¤¿à¤¨à¥à¤¡à¥‹ à¥žà¥€à¤šà¤°à¥à¤¸",
+DlgLnkPopResize		: "à¤¸à¤¾à¤‡à¥› à¤¬à¤¦à¤²à¤¾ à¤œà¤¾ à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ",
+DlgLnkPopLocation	: "à¤²à¥‹à¤•à¥‡à¤¶à¤¨ à¤¬à¤¾à¤°",
+DlgLnkPopMenu		: "à¤®à¥…à¤¨à¥à¤¯à¥‚ à¤¬à¤¾à¤°",
+DlgLnkPopScroll		: "à¤¸à¥à¤•à¥à¤°à¥‰à¤² à¤¬à¤¾à¤°",
+DlgLnkPopStatus		: "à¤¸à¥à¤Ÿà¥‡à¤Ÿà¤¸ à¤¬à¤¾à¤°",
+DlgLnkPopToolbar	: "à¤Ÿà¥‚à¤² à¤¬à¤¾à¤°",
+DlgLnkPopFullScrn	: "à¥žà¥à¤² à¤¸à¥à¤•à¥à¤°à¥€à¤¨ (IE)",
+DlgLnkPopDependent	: "à¤¡à¤¿à¤ªà¥‡à¤¨à¥à¤¡à¥…à¤¨à¥à¤Ÿ (Netscape)",
+DlgLnkPopWidth		: "à¤šà¥Œà¥œà¤¾à¤ˆ",
+DlgLnkPopHeight		: "à¤Šà¤à¤šà¤¾à¤ˆ",
+DlgLnkPopLeft		: "à¤¬à¤¾à¤¯à¥€à¤‚ à¤¤à¤°à¤«",
+DlgLnkPopTop		: "à¤¦à¤¾à¤¯à¥€à¤‚ à¤¤à¤°à¤«",
+
+DlnLnkMsgNoUrl		: "à¤²à¤¿à¤‚à¤• URL à¤Ÿà¤¾à¤‡à¤ª à¤•à¤°à¥‡à¤‚",
+DlnLnkMsgNoEMail	: "à¤ˆ-à¤®à¥‡à¤² à¤ªà¤¤à¤¾ à¤Ÿà¤¾à¤‡à¤ª à¤•à¤°à¥‡à¤‚",
+DlnLnkMsgNoAnchor	: "à¤à¤‚à¤•à¤° à¤šà¥à¤¨à¥‡à¤‚",
+DlnLnkMsgInvPopName	: "à¤ªà¥‰à¤ª-à¤…à¤ª à¤•à¤¾ à¤¨à¤¾à¤® à¤…à¤²à¥à¤«à¤¾à¤¬à¥‡à¤Ÿ à¤¸à¥‡ à¤¶à¥à¤°à¥‚ à¤¹à¥‹à¤¨à¤¾ à¤šà¤¾à¤¹à¤¿à¤¯à¥‡ à¤”à¤° à¤‰à¤¸à¤®à¥‡à¤‚ à¤¸à¥à¤ªà¥‡à¤¸ à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤¨à¥‡ à¤šà¤¾à¤¹à¤¿à¤",
+
+// Color Dialog
+DlgColorTitle		: "à¤°à¤‚à¤— à¤šà¥à¤¨à¥‡à¤‚",
+DlgColorBtnClear	: "à¤¸à¤¾à¥ž à¤•à¤°à¥‡à¤‚",
+DlgColorHighlight	: "à¤¹à¤¾à¤‡à¤²à¤¾à¤‡à¤Ÿ",
+DlgColorSelected	: "à¤¸à¥…à¤²à¥…à¤•à¥à¤Ÿà¥…à¤¡",
+
+// Smiley Dialog
+DlgSmileyTitle		: "à¤¸à¥à¤®à¤¾à¤‡à¤²à¥€ à¤‡à¤¨à¥à¤¸à¤°à¥à¤Ÿ à¤•à¤°à¥‡à¤‚",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "à¤µà¤¿à¤¶à¥‡à¤· à¤•à¤°à¥…à¤•à¥à¤Ÿà¤° à¤šà¥à¤¨à¥‡à¤‚",
+
+// Table Dialog
+DlgTableTitle		: "à¤Ÿà¥‡à¤¬à¤² à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgTableRows		: "à¤ªà¤‚à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤",
+DlgTableColumns		: "à¤•à¤¾à¤²à¤®",
+DlgTableBorder		: "à¤¬à¥‰à¤°à¥à¤¡à¤° à¤¸à¤¾à¤‡à¥›",
+DlgTableAlign		: "à¤à¤²à¤¾à¤‡à¤¨à¥à¤®à¥…à¤¨à¥à¤Ÿ",
+DlgTableAlignNotSet	: "<à¤¸à¥…à¤Ÿ à¤¨à¤¹à¥€à¤‚>",
+DlgTableAlignLeft	: "à¤¦à¤¾à¤¯à¥‡à¤‚",
+DlgTableAlignCenter	: "à¤¬à¥€à¤š à¤®à¥‡à¤‚",
+DlgTableAlignRight	: "à¤¬à¤¾à¤¯à¥‡à¤‚",
+DlgTableWidth		: "à¤šà¥Œà¥œà¤¾à¤ˆ",
+DlgTableWidthPx		: "à¤ªà¤¿à¤•à¥à¤¸à¥ˆà¤²",
+DlgTableWidthPc		: "à¤ªà¥à¤°à¤¤à¤¿à¤¶à¤¤",
+DlgTableHeight		: "à¤Šà¤à¤šà¤¾à¤ˆ",
+DlgTableCellSpace	: "à¤¸à¥ˆà¤² à¤…à¤‚à¤¤à¤°",
+DlgTableCellPad		: "à¤¸à¥ˆà¤² à¤ªà¥ˆà¤¡à¤¿à¤‚à¤—",
+DlgTableCaption		: "à¤¶à¥€à¤°à¥à¤·à¤•",
+DlgTableSummary		: "à¤¸à¤¾à¤°à¤¾à¤‚à¤¶",
+
+// Table Cell Dialog
+DlgCellTitle		: "à¤¸à¥ˆà¤² à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgCellWidth		: "à¤šà¥Œà¥œà¤¾à¤ˆ",
+DlgCellWidthPx		: "à¤ªà¤¿à¤•à¥à¤¸à¥ˆà¤²",
+DlgCellWidthPc		: "à¤ªà¥à¤°à¤¤à¤¿à¤¶à¤¤",
+DlgCellHeight		: "à¤Šà¤à¤šà¤¾à¤ˆ",
+DlgCellWordWrap		: "à¤µà¤°à¥à¤¡ à¤°à¥ˆà¤ª",
+DlgCellWordWrapNotSet	: "<à¤¸à¥…à¤Ÿ à¤¨à¤¹à¥€à¤‚>",
+DlgCellWordWrapYes	: "à¤¹à¤¾à¤",
+DlgCellWordWrapNo	: "à¤¨à¤¹à¥€à¤‚",
+DlgCellHorAlign		: "à¤¹à¥‰à¤°à¤¿à¥›à¥‰à¤¨à¥à¤Ÿà¤² à¤à¤²à¤¾à¤‡à¤¨à¥à¤®à¥…à¤¨à¥à¤Ÿ",
+DlgCellHorAlignNotSet	: "<à¤¸à¥…à¤Ÿ à¤¨à¤¹à¥€à¤‚>",
+DlgCellHorAlignLeft	: "à¤¦à¤¾à¤¯à¥‡à¤‚",
+DlgCellHorAlignCenter	: "à¤¬à¥€à¤š à¤®à¥‡à¤‚",
+DlgCellHorAlignRight: "à¤¬à¤¾à¤¯à¥‡à¤‚",
+DlgCellVerAlign		: "à¤µà¤°à¥à¤Ÿà¤¿à¤•à¤² à¤à¤²à¤¾à¤‡à¤¨à¥à¤®à¥…à¤¨à¥à¤Ÿ",
+DlgCellVerAlignNotSet	: "<à¤¸à¥…à¤Ÿ à¤¨à¤¹à¥€à¤‚>",
+DlgCellVerAlignTop	: "à¤Šà¤ªà¤°",
+DlgCellVerAlignMiddle	: "à¤®à¤§à¥à¤¯",
+DlgCellVerAlignBottom	: "à¤¨à¥€à¤šà¥‡",
+DlgCellVerAlignBaseline	: "à¤®à¥‚à¤²à¤°à¥‡à¤–à¤¾",
+DlgCellRowSpan		: "à¤ªà¤‚à¤•à¥à¤¤à¤¿ à¤¸à¥à¤ªà¥ˆà¤¨",
+DlgCellCollSpan		: "à¤•à¤¾à¤²à¤® à¤¸à¥à¤ªà¥ˆà¤¨",
+DlgCellBackColor	: "à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ à¤°à¤‚à¤—",
+DlgCellBorderColor	: "à¤¬à¥‰à¤°à¥à¤¡à¤° à¤•à¤¾ à¤°à¤‚à¤—",
+DlgCellBtnSelect	: "à¤šà¥à¤¨à¥‡à¤‚...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "à¤–à¥‹à¤œà¥‡à¤‚ à¤”à¤° à¤¬à¤¦à¤²à¥‡à¤‚",
+
+// Find Dialog
+DlgFindTitle		: "à¤–à¥‹à¤œà¥‡à¤‚",
+DlgFindFindBtn		: "à¤–à¥‹à¤œà¥‡à¤‚",
+DlgFindNotFoundMsg	: "à¤†à¤ªà¤•à¥‡ à¤¦à¥à¤µà¤¾à¤°à¤¾ à¤¦à¤¿à¤¯à¤¾ à¤—à¤¯à¤¾ à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ à¤¨à¤¹à¥€à¤‚ à¤®à¤¿à¤²à¤¾",
+
+// Replace Dialog
+DlgReplaceTitle			: "à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸",
+DlgReplaceFindLbl		: "à¤¯à¤¹ à¤–à¥‹à¤œà¥‡à¤‚:",
+DlgReplaceReplaceLbl	: "à¤‡à¤¸à¤¸à¥‡ à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸ à¤•à¤°à¥‡à¤‚:",
+DlgReplaceCaseChk		: "à¤•à¥‡à¤¸ à¤®à¤¿à¤²à¤¾à¤¯à¥‡à¤‚",
+DlgReplaceReplaceBtn	: "à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸",
+DlgReplaceReplAllBtn	: "à¤¸à¤­à¥€ à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸ à¤•à¤°à¥‡à¤‚",
+DlgReplaceWordChk		: "à¤ªà¥‚à¤°à¤¾ à¤¶à¤¬à¥à¤¦ à¤®à¤¿à¤²à¤¾à¤¯à¥‡à¤‚",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "à¤†à¤ªà¤•à¥‡ à¤¬à¥à¤°à¤¾à¤‰à¥›à¤° à¤•à¥€ à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¸à¥…à¤Ÿà¤¿à¤¨à¥à¤—à¥à¤¸ à¤¨à¥‡ à¤•à¤Ÿ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤…à¤¨à¥à¤®à¤¤à¤¿ à¤¨à¤¹à¥€à¤‚ à¤ªà¥à¤°à¤¦à¤¾à¤¨ à¤•à¥€ à¤¹à¥ˆà¥¤ (Ctrl+X) à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚à¥¤",
+PasteErrorCopy	: "à¤†à¤ªà¤•à¥‡ à¤¬à¥à¤°à¤¾à¤†à¤‰à¥›à¤° à¤•à¥€ à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤¸à¥…à¤Ÿà¤¿à¤¨à¥à¤—à¥à¤¸ à¤¨à¥‡ à¤•à¥‰à¤ªà¥€ à¤•à¤°à¤¨à¥‡ à¤•à¥€ à¤…à¤¨à¥à¤®à¤¤à¤¿ à¤¨à¤¹à¥€à¤‚ à¤ªà¥à¤°à¤¦à¤¾à¤¨ à¤•à¥€ à¤¹à¥ˆà¥¤ (Ctrl+C) à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¥‡à¤‚à¥¤",
+
+PasteAsText		: "à¤ªà¥‡à¤¸à¥à¤Ÿ (à¤¸à¤¾à¤¦à¤¾ à¤Ÿà¥…à¤•à¥à¤¸à¥à¤Ÿ)",
+PasteFromWord	: "à¤ªà¥‡à¤¸à¥à¤Ÿ (à¤µà¤°à¥à¤¡ à¤¸à¥‡)",
+
+DlgPasteMsg2	: "Ctrl+V à¤•à¤¾ à¤ªà¥à¤°à¤¯à¥‹à¤— à¤•à¤°à¤•à¥‡ à¤ªà¥‡à¤¸à¥à¤Ÿ à¤•à¤°à¥‡à¤‚ à¤”à¤° à¤ à¥€à¤• à¤¹à¥ˆ à¤•à¤°à¥‡à¤‚.",
+DlgPasteSec		: "à¤†à¤ªà¤•à¥‡ à¤¬à¥à¤°à¤¾à¤‰à¥›à¤° à¤•à¥€ à¤¸à¥à¤°à¤•à¥à¤·à¤¾ à¤†à¤ªà¤•à¥‡ à¤¬à¥à¤°à¤¾à¤‰à¥›à¤° à¤•à¥€ à¤¸à¥à¤°Kà¤¶ à¤¸à¥ˆà¤Ÿà¤¿à¤‚à¤— à¤•à¥‡ à¤•à¤¾à¤°à¤£, à¤à¤¡à¤¿à¤Ÿà¤° à¤†à¤ªà¤•à¥‡ à¤•à¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ à¤¡à¥‡à¤Ÿà¤¾ à¤•à¥‹ à¤¨à¤¹à¥€à¤‚ à¤ªà¤¾ à¤¸à¤•à¤¤à¤¾ à¤¹à¥ˆ. à¤†à¤ªà¤•à¥‹ à¤‰à¤¸à¥‡ à¤‡à¤¸ à¤µà¤¿à¤¨à¥à¤¡à¥‹ à¤®à¥‡à¤‚ à¤¦à¥‹à¤¬à¤¾à¤°à¤¾ à¤ªà¥‡à¤¸à¥à¤Ÿ à¤•à¤°à¤¨à¤¾ à¤¹à¥‹à¤—à¤¾.",
+DlgPasteIgnoreFont		: "à¥žà¥‰à¤¨à¥à¤Ÿ à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¾ à¤¨à¤¿à¤•à¤¾à¤²à¥‡à¤‚",
+DlgPasteRemoveStyles	: "à¤¸à¥à¤Ÿà¤¾à¤‡à¤² à¤ªà¤°à¤¿à¤­à¤¾à¤·à¤¾ à¤¨à¤¿à¤•à¤¾à¤²à¥‡à¤‚",
+
+// Color Picker
+ColorAutomatic	: "à¤¸à¥à¤µà¤šà¤¾à¤²à¤¿à¤¤",
+ColorMoreColors	: "à¤”à¤° à¤°à¤‚à¤—...",
+
+// Document Properties
+DocProps		: "à¤¡à¥‰à¤•à¥à¤¯à¥‚à¤®à¥…à¤¨à¥à¤Ÿ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+
+// Anchor Dialog
+DlgAnchorTitle		: "à¤à¤‚à¤•à¤° à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgAnchorName		: "à¤à¤‚à¤•à¤° à¤•à¤¾ à¤¨à¤¾à¤®",
+DlgAnchorErrorName	: "à¤à¤‚à¤•à¤° à¤•à¤¾ à¤¨à¤¾à¤® à¤Ÿà¤¾à¤‡à¤ª à¤•à¤°à¥‡à¤‚",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "à¤¶à¤¬à¥à¤¦à¤•à¥‹à¤¶ à¤®à¥‡à¤‚ à¤¨à¤¹à¥€à¤‚",
+DlgSpellChangeTo		: "à¤‡à¤¸à¤®à¥‡à¤‚ à¤¬à¤¦à¤²à¥‡à¤‚",
+DlgSpellBtnIgnore		: "à¤‡à¤—à¥à¤¨à¥‹à¤°",
+DlgSpellBtnIgnoreAll	: "à¤¸à¤­à¥€ à¤‡à¤—à¥à¤¨à¥‹à¤° à¤•à¤°à¥‡à¤‚",
+DlgSpellBtnReplace		: "à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸",
+DlgSpellBtnReplaceAll	: "à¤¸à¤­à¥€ à¤°à¤¿à¤ªà¥à¤²à¥‡à¤¸ à¤•à¤°à¥‡à¤‚",
+DlgSpellBtnUndo			: "à¤…à¤¨à¥à¤¡à¥‚",
+DlgSpellNoSuggestions	: "- à¤•à¥‹à¤ˆ à¤¸à¥à¤à¤¾à¤µ à¤¨à¤¹à¥€à¤‚ -",
+DlgSpellProgress		: "à¤µà¤°à¥à¤¤à¤¨à¥€ à¤•à¥€ à¤œà¤¾à¤à¤š (à¤¸à¥à¤ªà¥…à¤²-à¤šà¥…à¤•) à¤œà¤¾à¤°à¥€ à¤¹à¥ˆ...",
+DlgSpellNoMispell		: "à¤µà¤°à¥à¤¤à¤¨à¥€ à¤•à¥€ à¤œà¤¾à¤à¤š : à¤•à¥‹à¤ˆ à¤—à¤²à¤¤ à¤µà¤°à¥à¤¤à¤¨à¥€ (à¤¸à¥à¤ªà¥…à¤²à¤¿à¤‚à¤—) à¤¨à¤¹à¥€à¤‚ à¤ªà¤¾à¤ˆ à¤—à¤ˆ",
+DlgSpellNoChanges		: "à¤µà¤°à¥à¤¤à¤¨à¥€ à¤•à¥€ à¤œà¤¾à¤à¤š :à¤•à¥‹à¤ˆ à¤¶à¤¬à¥à¤¦ à¤¨à¤¹à¥€à¤‚ à¤¬à¤¦à¤²à¤¾ à¤—à¤¯à¤¾",
+DlgSpellOneChange		: "à¤µà¤°à¥à¤¤à¤¨à¥€ à¤•à¥€ à¤œà¤¾à¤à¤š : à¤à¤• à¤¶à¤¬à¥à¤¦ à¤¬à¤¦à¤²à¤¾ à¤—à¤¯à¤¾",
+DlgSpellManyChanges		: "à¤µà¤°à¥à¤¤à¤¨à¥€ à¤•à¥€ à¤œà¤¾à¤à¤š : %1 à¤¶à¤¬à¥à¤¦ à¤¬à¤¦à¤²à¥‡ à¤—à¤¯à¥‡",
+
+IeSpellDownload			: "à¤¸à¥à¤ªà¥…à¤²-à¤šà¥…à¤•à¤° à¤‡à¤¨à¥à¤¸à¥à¤Ÿà¤¾à¤² à¤¨à¤¹à¥€à¤‚ à¤•à¤¿à¤¯à¤¾ à¤—à¤¯à¤¾ à¤¹à¥ˆà¥¤ à¤•à¥à¤¯à¤¾ à¤†à¤ª à¤‡à¤¸à¥‡ à¤¡à¤¾â€Œà¤‰à¤¨à¤²à¥‹à¤¡ à¤•à¤°à¤¨à¤¾ à¤šà¤¾à¤¹à¥‡à¤‚à¤—à¥‡?",
+
+// Button Dialog
+DlgButtonText		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ (à¤µà¥ˆà¤²à¥à¤¯à¥‚)",
+DlgButtonType		: "à¤ªà¥à¤°à¤•à¤¾à¤°",
+DlgButtonTypeBtn	: "à¤¬à¤Ÿà¤¨",
+DlgButtonTypeSbm	: "à¤¸à¤¬à¥à¤®à¤¿à¤Ÿ",
+DlgButtonTypeRst	: "à¤°à¤¿à¤¸à¥‡à¤Ÿ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "à¤¨à¤¾à¤®",
+DlgCheckboxValue	: "à¤µà¥ˆà¤²à¥à¤¯à¥‚",
+DlgCheckboxSelected	: "à¤¸à¥…à¤²à¥…à¤•à¥à¤Ÿà¥…à¤¡",
+
+// Form Dialog
+DlgFormName		: "à¤¨à¤¾à¤®",
+DlgFormAction	: "à¤•à¥à¤°à¤¿à¤¯à¤¾",
+DlgFormMethod	: "à¤¤à¤°à¥€à¤•à¤¾",
+
+// Select Field Dialog
+DlgSelectName		: "à¤¨à¤¾à¤®",
+DlgSelectValue		: "à¤µà¥ˆà¤²à¥à¤¯à¥‚",
+DlgSelectSize		: "à¤¸à¤¾à¤‡à¥›",
+DlgSelectLines		: "à¤ªà¤‚à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤",
+DlgSelectChkMulti	: "à¤à¤• à¤¸à¥‡ à¤œà¥à¤¯à¤¾à¤¦à¤¾ à¤µà¤¿à¤•à¤²à¥à¤ª à¤šà¥à¤¨à¤¨à¥‡ à¤¦à¥‡à¤‚",
+DlgSelectOpAvail	: "à¤‰à¤ªà¤²à¤¬à¥à¤§ à¤µà¤¿à¤•à¤²à¥à¤ª",
+DlgSelectOpText		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ",
+DlgSelectOpValue	: "à¤µà¥ˆà¤²à¥à¤¯à¥‚",
+DlgSelectBtnAdd		: "à¤œà¥‹à¥œà¥‡à¤‚",
+DlgSelectBtnModify	: "à¤¬à¤¦à¤²à¥‡à¤‚",
+DlgSelectBtnUp		: "à¤Šà¤ªà¤°",
+DlgSelectBtnDown	: "à¤¨à¥€à¤šà¥‡",
+DlgSelectBtnSetValue : "à¤šà¥à¤¨à¥€ à¤—à¤ˆ à¤µà¥ˆà¤²à¥à¤¯à¥‚ à¤¸à¥…à¤Ÿ à¤•à¤°à¥‡à¤‚",
+DlgSelectBtnDelete	: "à¤¡à¤¿à¤²à¥€à¤Ÿ",
+
+// Textarea Dialog
+DlgTextareaName	: "à¤¨à¤¾à¤®",
+DlgTextareaCols	: "à¤•à¤¾à¤²à¤®",
+DlgTextareaRows	: "à¤ªà¤‚à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤‚",
+
+// Text Field Dialog
+DlgTextName			: "à¤¨à¤¾à¤®",
+DlgTextValue		: "à¤µà¥ˆà¤²à¥à¤¯à¥‚",
+DlgTextCharWidth	: "à¤•à¤°à¥…à¤•à¥à¤Ÿà¤° à¤•à¥€ à¤šà¥Œà¥à¤¾à¤ˆ",
+DlgTextMaxChars		: "à¤…à¤§à¤¿à¤•à¤¤à¤® à¤•à¤°à¥…à¤•à¥à¤Ÿà¤°",
+DlgTextType			: "à¤Ÿà¤¾à¤‡à¤ª",
+DlgTextTypeText		: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ",
+DlgTextTypePass		: "à¤ªà¤¾à¤¸à¥à¤µà¤°à¥à¤¡",
+
+// Hidden Field Dialog
+DlgHiddenName	: "à¤¨à¤¾à¤®",
+DlgHiddenValue	: "à¤µà¥ˆà¤²à¥à¤¯à¥‚",
+
+// Bulleted List Dialog
+BulletedListProp	: "à¤¬à¥à¤²à¥…à¤Ÿ à¤¸à¥‚à¤šà¥€ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+NumberedListProp	: "à¤…à¤‚à¤•à¥€à¤¯ à¤¸à¥‚à¤šà¥€ à¤ªà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgLstStart			: "à¤ªà¥à¤°à¤¾à¤°à¤®à¥à¤­",
+DlgLstType			: "à¤ªà¥à¤°à¤•à¤¾à¤°",
+DlgLstTypeCircle	: "à¤—à¥‹à¤²",
+DlgLstTypeDisc		: "à¤¡à¤¿à¤¸à¥à¤•",
+DlgLstTypeSquare	: "à¤šà¥Œà¤•à¥Šà¤£",
+DlgLstTypeNumbers	: "à¤…à¤‚à¤• (1, 2, 3)",
+DlgLstTypeLCase		: "à¤›à¥‹à¤Ÿà¥‡ à¤…à¤•à¥à¤·à¤° (a, b, c)",
+DlgLstTypeUCase		: "à¤¬à¥œà¥‡ à¤…à¤•à¥à¤·à¤° (A, B, C)",
+DlgLstTypeSRoman	: "à¤›à¥‹à¤Ÿà¥‡ à¤°à¥‹à¤®à¤¨ à¤…à¤‚à¤• (i, ii, iii)",
+DlgLstTypeLRoman	: "à¤¬à¥œà¥‡ à¤°à¥‹à¤®à¤¨ à¤…à¤‚à¤• (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "à¤†à¤®",
+DlgDocBackTab		: "à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡",
+DlgDocColorsTab		: "à¤°à¤‚à¤— à¤”à¤° à¤®à¤¾à¤°à¥à¤œà¤¿à¤¨",
+DlgDocMetaTab		: "à¤®à¥…à¤Ÿà¤¾à¤¡à¥‡à¤Ÿà¤¾",
+
+DlgDocPageTitle		: "à¤ªà¥‡à¤œ à¤¶à¥€à¤°à¥à¤·à¤•",
+DlgDocLangDir		: "à¤­à¤¾à¤·à¤¾ à¤²à¤¿à¤–à¤¨à¥‡ à¤•à¥€ à¤¦à¤¿à¤¶à¤¾",
+DlgDocLangDirLTR	: "à¤¬à¤¾à¤¯à¥‡à¤‚ à¤¸à¥‡ à¤¦à¤¾à¤¯à¥‡à¤‚ (LTR)",
+DlgDocLangDirRTL	: "à¤¦à¤¾à¤¯à¥‡à¤‚ à¤¸à¥‡ à¤¬à¤¾à¤¯à¥‡à¤‚ (RTL)",
+DlgDocLangCode		: "à¤­à¤¾à¤·à¤¾ à¤•à¥‹à¤¡",
+DlgDocCharSet		: "à¤•à¤°à¥‡à¤•à¥à¤Ÿà¤° à¤¸à¥…à¤Ÿ à¤à¤¨à¥à¤•à¥‹à¤¡à¤¿à¤‚à¤—",
+DlgDocCharSetCE		: "à¤®à¤§à¥à¤¯ à¤¯à¥‚à¤°à¥‹à¤ªà¥€à¤¯ (Central European)",
+DlgDocCharSetCT		: "à¤šà¥€à¤¨à¥€ (Chinese Traditional Big5)",
+DlgDocCharSetCR		: "à¤¸à¤¿à¤°à¥€à¤²à¤¿à¤• (Cyrillic)",
+DlgDocCharSetGR		: "à¤¯à¤µà¤¨ (Greek)",
+DlgDocCharSetJP		: "à¤œà¤¾à¤ªà¤¾à¤¨à¥€ (Japanese)",
+DlgDocCharSetKR		: "à¤•à¥‹à¤°à¥€à¤¯à¤¨ (Korean)",
+DlgDocCharSetTR		: "à¤¤à¥à¤°à¥à¤•à¥€ (Turkish)",
+DlgDocCharSetUN		: "à¤¯à¥‚à¤¨à¥€à¤•à¥‹à¤¡ (UTF-8)",
+DlgDocCharSetWE		: "à¤ªà¤¶à¥à¤šà¤¿à¤® à¤¯à¥‚à¤°à¥‹à¤ªà¥€à¤¯ (Western European)",
+DlgDocCharSetOther	: "à¤…à¤¨à¥à¤¯ à¤•à¤°à¥‡à¤•à¥à¤Ÿà¤° à¤¸à¥…à¤Ÿ à¤à¤¨à¥à¤•à¥‹à¤¡à¤¿à¤‚à¤—",
+
+DlgDocDocType		: "à¤¡à¥‰à¤•à¥à¤¯à¥‚à¤®à¥…à¤¨à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¶à¥€à¤°à¥à¤·à¤•",
+DlgDocDocTypeOther	: "à¤…à¤¨à¥à¤¯ à¤¡à¥‰à¤•à¥à¤¯à¥‚à¤®à¥…à¤¨à¥à¤Ÿ à¤ªà¥à¤°à¤•à¤¾à¤° à¤¶à¥€à¤°à¥à¤·à¤•",
+DlgDocIncXHTML		: "XHTML à¤¸à¥‚à¤šà¤¨à¤¾ à¤¸à¤®à¥à¤®à¤¿à¤²à¤¿à¤¤ à¤•à¤°à¥‡à¤‚",
+DlgDocBgColor		: "à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ à¤°à¤‚à¤—",
+DlgDocBgImage		: "à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ à¤¤à¤¸à¥à¤µà¥€à¤° URL",
+DlgDocBgNoScroll	: "à¤¸à¥à¤•à¥à¤°à¥‰à¤² à¤¨ à¤•à¤°à¤¨à¥‡ à¤µà¤¾à¤²à¤¾ à¤¬à¥ˆà¤•à¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡",
+DlgDocCText			: "à¤Ÿà¥‡à¤•à¥à¤¸à¥à¤Ÿ",
+DlgDocCLink			: "à¤²à¤¿à¤‚à¤•",
+DlgDocCVisited		: "à¤µà¤¿à¥›à¤¿à¤Ÿ à¤•à¤¿à¤¯à¤¾ à¤—à¤¯à¤¾ à¤²à¤¿à¤‚à¤•",
+DlgDocCActive		: "à¤¸à¤•à¥à¤°à¤¿à¤¯ à¤²à¤¿à¤‚à¤•",
+DlgDocMargins		: "à¤ªà¥‡à¤œ à¤®à¤¾à¤°à¥à¤œà¤¿à¤¨",
+DlgDocMaTop			: "à¤Šà¤ªà¤°",
+DlgDocMaLeft		: "à¤¬à¤¾à¤¯à¥‡à¤‚",
+DlgDocMaRight		: "à¤¦à¤¾à¤¯à¥‡à¤‚",
+DlgDocMaBottom		: "à¤¨à¥€à¤šà¥‡",
+DlgDocMeIndex		: "à¤¡à¥‰à¤•à¥à¤¯à¥à¤®à¥…à¤¨à¥à¤Ÿ à¤‡à¤¨à¥à¤¡à¥‡à¤•à¥à¤¸ à¤¸à¤‚à¤•à¥‡à¤¤à¤¶à¤¬à¥à¤¦ (à¤…à¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤® à¤¸à¥‡ à¤…à¤²à¤— à¤•à¤°à¥‡à¤‚)",
+DlgDocMeDescr		: "à¤¡à¥‰à¤•à¥à¤¯à¥‚à¤®à¥…à¤¨à¥à¤Ÿ à¤•à¤°à¥…à¤•à¥à¤Ÿà¤°à¤¨",
+DlgDocMeAuthor		: "à¤²à¥‡à¤–à¤•",
+DlgDocMeCopy		: "à¤•à¥‰à¤ªà¥€à¤°à¤¾à¤‡à¤Ÿ",
+DlgDocPreview		: "à¤ªà¥à¤°à¥€à¤µà¥à¤¯à¥‚",
+
+// Templates Dialog
+Templates			: "à¤Ÿà¥…à¤®à¥à¤ªà¥à¤²à¥‡à¤Ÿ",
+DlgTemplatesTitle	: "à¤•à¤¨à¥à¤Ÿà¥‡à¤¨à¥à¤Ÿ à¤Ÿà¥…à¤®à¥à¤ªà¥à¤²à¥‡à¤Ÿ",
+DlgTemplatesSelMsg	: "à¤à¤¡à¤¿à¤Ÿà¤° à¤®à¥‡à¤‚ à¤“à¤ªà¤¨ à¤•à¤°à¤¨à¥‡ à¤¹à¥‡à¤¤à¥ à¤Ÿà¥…à¤®à¥à¤ªà¥à¤²à¥‡à¤Ÿ à¤šà¥à¤¨à¥‡à¤‚(à¤µà¤°à¥à¤¤à¤®à¤¾à¤¨ à¤•à¤¨à¥à¤Ÿà¥…à¤¨à¥à¤Ÿ à¤¸à¥‡à¤µ à¤¨à¤¹à¥€à¤‚ à¤¹à¥‹à¤‚à¤—à¥‡):",
+DlgTemplatesLoading	: "à¤Ÿà¥…à¤®à¥à¤ªà¥à¤²à¥‡à¤Ÿ à¤¸à¥‚à¤šà¥€ à¤²à¥‹à¤¡ à¤•à¥€ à¤œà¤¾ à¤°à¤¹à¥€ à¤¹à¥ˆà¥¤ à¥›à¤°à¤¾ à¤ à¤¹à¤°à¥‡à¤‚...",
+DlgTemplatesNoTpl	: "(à¤•à¥‹à¤ˆ à¤Ÿà¥…à¤®à¥à¤ªà¥à¤²à¥‡à¤Ÿ à¤¡à¤¿à¥žà¤¾à¤‡à¤¨ à¤¨à¤¹à¥€à¤‚ à¤•à¤¿à¤¯à¤¾ à¤—à¤¯à¤¾ à¤¹à¥ˆ)",
+DlgTemplatesReplace	: "à¤®à¥‚à¤² à¤¶à¤¬à¥à¤¦à¥‹à¤‚ à¤•à¥‹ à¤¬à¤¦à¤²à¥‡à¤‚",
+
+// About Dialog
+DlgAboutAboutTab	: "FCKEditor à¤•à¥‡ à¤¬à¤¾à¤°à¥‡ à¤®à¥‡à¤‚",
+DlgAboutBrowserInfoTab	: "à¤¬à¥à¤°à¤¾à¤‰à¥›à¤° à¤•à¥‡ à¤¬à¤¾à¤°à¥‡ à¤®à¥‡à¤‚",
+DlgAboutLicenseTab	: "à¤²à¤¾à¤‡à¤¸à¥ˆà¤¨à¥à¤¸",
+DlgAboutVersion		: "à¤µà¤°à¥à¥›à¤¨",
+DlgAboutInfo		: "à¤…à¤§à¤¿à¤• à¤œà¤¾à¤¨à¤•à¤¾à¤°à¥€ à¤•à¥‡ à¤²à¤¿à¤¯à¥‡ à¤¯à¤¹à¤¾à¤ à¤œà¤¾à¤¯à¥‡à¤‚:"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eo.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eo.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/lang/eo.js	(revision 838)
@@ -0,0 +1,515 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Esperanto language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "KaÅi Ilobreton",
+ToolbarExpand		: "Vidigi Ilojn",
+
+// Toolbar Items and Context Menu
+Save				: "Sekurigi",
+NewPage				: "Nova PaÄo",
+Preview				: "Vidigi Aspekton",
+Cut					: "Eltondi",
+Copy				: "Kopii",
+Paste				: "Interglui",
+PasteText			: "Interglui kiel Tekston",
+PasteWord			: "Interglui el Word",
+Print				: "Presi",
+SelectAll			: "Elekti Ä‰ion",
+RemoveFormat		: "Forigi Formaton",
+InsertLinkLbl		: "Ligilo",
+InsertLink			: "Enmeti/ÅœanÄi Ligilon",
+RemoveLink			: "Forigi Ligilon",
+Anchor				: "Enmeti/ÅœanÄi Ankron",
+AnchorDelete		: "Remove Anchor",	//MISSING
+InsertImageLbl		: "Bildo",
+InsertImage			: "Enmeti/ÅœanÄi Bildon",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Tabelo",
+InsertTable			: "Enmeti/ÅœanÄi Tabelon",
+InsertLineLbl		: "Horizonta Linio",
+InsertLine			: "Enmeti Horizonta Linio",
+InsertSpecialCharLbl: "Speciala Signo",
+InsertSpecialChar	: "Enmeti Specialan Signon",
+InsertSmileyLbl		: "Mienvinjeto",
+InsertSmiley		: "Enmeti Mienvinjeton",
+About				: "Pri FCKeditor",
+Bold				: "Grasa",
+Italic				: "Kursiva",
+Underline			: "Substreko",
+StrikeThrough		: "Trastreko",
+Subscript			: "Subskribo",
+Superscript			: "Superskribo",
+LeftJustify			: "Maldekstrigi",
+CenterJustify		: "Centrigi",
+RightJustify		: "Dekstrigi",
+BlockJustify		: "Äœisrandigi AmbaÅ­flanke",
+DecreaseIndent		: "Malpligrandigi KrommarÄenon",
+IncreaseIndent		: "Pligrandigi KrommarÄenon",
+Blockquote			: "Blockquote",	//MISSING
+Undo				: "Malfari",
+Redo				: "Refari",
+NumberedListLbl		: "Numera Listo",
+NumberedList		: "Enmeti/Forigi Numeran Liston",
+BulletedListLbl		: "Bula Listo",
+BulletedList		: "Enmeti/Forigi Bulan Liston",
+ShowTableBorders	: "Vidigi Borderojn de Tabelo",
+ShowDetails			: "Vidigi Detalojn",
+Style				: "Stilo",
+FontFormat			: "Formato",
+Font				: "Tiparo",
+FontSize			: "Grando",
+TextColor			: "Teksta Koloro",
+BGColor				: "Fona Koloro",
+Source				: "Fonto",
+Find				: "SerÄ‰i",
+Replace				: "AnstataÅ­igi",
+SpellCheck			: "Literumada Kontrolilo",
+UniversalKeyboard	: "Universala Klavaro",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Formularo",
+Checkbox		: "Markobutono",
+RadioButton		: "Radiobutono",
+TextField		: "Teksta kampo",
+Textarea		: "Teksta Areo",
+HiddenField		: "KaÅita Kampo",
+Button			: "Butono",
+SelectionField	: "Elekta Kampo",
+ImageButton		: "Bildbutono",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+ShowBlocks		: "Show Blocks",	//MISSING
+
+// Context Menu
+EditLink			: "Modifier Ligilon",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRowAfter		: "Insert Row After",	//MISSING
+InsertRowBefore		: "Insert Row Before",	//MISSING
+DeleteRows			: "Forigi Liniojn",
+InsertColumnAfter	: "Insert Column After",	//MISSING
+InsertColumnBefore	: "Insert Column Before",	//MISSING
+DeleteColumns		: "Forigi Kolumnojn",
+InsertCellAfter		: "Insert Cell After",	//MISSING
+InsertCellBefore	: "Insert Cell Before",	//MISSING
+DeleteCells			: "Forigi Äˆelojn",
+MergeCells			: "Kunfandi Äˆelojn",
+MergeRight			: "Merge Right",	//MISSING
+MergeDown			: "Merge Down",	//MISSING
+HorizontalSplitCell	: "Split Cell Horizontally",	//MISSING
+VerticalSplitCell	: "Split Cell Vertically",	//MISSING
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Atributoj de Äˆelo",
+TableProperties		: "Atributoj de Tabelo",
+ImageProperties		: "Atributoj de Bildo",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Ankraj Atributoj",
+ButtonProp			: "Butonaj Atributoj",
+CheckboxProp		: "Markobutonaj Atributoj",
+HiddenFieldProp		: "Atributoj de KaÅita Kampo",
+RadioButtonProp		: "Radiobutonaj Atributoj",
+ImageButtonProp		: "Bildbutonaj Atributoj",
+TextFieldProp		: "Atributoj de Teksta Kampo",
+SelectionFieldProp	: "Atributoj de Elekta Kampo",
+TextareaProp		: "Atributoj de Teksta Areo",
+FormProp			: "Formularaj Atributoj",
+
+FontFormats			: "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Traktado de XHTML. Bonvolu pacienci...",
+Done				: "Finita",
+PasteWordConfirm	: "La algluota teksto Åajnas esti Word-devena. Äˆu vi volas purigi Äin antaÅ­ ol interglui?",
+NotCompatiblePaste	: "Tiu Ä‰i komando bezonas almenaÅ­ Internet Explorer 5.5. Äˆu vi volas daÅ­rigi sen purigado?",
+UnknownToolbarItem	: "Ilobretero nekonata \"%1\"",
+UnknownCommand		: "Komandonomo nekonata \"%1\"",
+NotImplemented		: "Komando ne ankoraÅ­ realigita",
+UnknownToolbarSet	: "La ilobreto \"%1\" ne ekzistas",
+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
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "Akcepti",
+DlgBtnCancel		: "Rezigni",
+DlgBtnClose			: "Fermi",
+DlgBtnBrowseServer	: "Foliumi en la Servilo",
+DlgAdvancedTag		: "Speciala",
+DlgOpOther			: "<Alia>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<DefaÅ­lta>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Skribdirekto",
+DlgGenLangDirLtr	: "De maldekstro dekstren (LTR)",
+DlgGenLangDirRtl	: "De dekstro maldekstren (RTL)",
+DlgGenLangCode		: "Lingva Kodo",
+DlgGenAccessKey		: "Fulmoklavo",
+DlgGenName			: "Nomo",
+DlgGenTabIndex		: "Taba Ordo",
+DlgGenLongDescr		: "URL de Longa Priskribo",
+DlgGenClass			: "Klasoj de Stilfolioj",
+DlgGenTitle			: "Indika Titolo",
+DlgGenContType		: "Indika Enhavotipo",
+DlgGenLinkCharset	: "Signaro de la Ligita Rimedo",
+DlgGenStyle			: "Stilo",
+
+// Image Dialog
+DlgImgTitle			: "Atributoj de Bildo",
+DlgImgInfoTab		: "Informoj pri Bildo",
+DlgImgBtnUpload		: "Sendu al Servilo",
+DlgImgURL			: "URL",
+DlgImgUpload		: "AlÅuti",
+DlgImgAlt			: "AnstataÅ­iga Teksto",
+DlgImgWidth			: "LarÄo",
+DlgImgHeight		: "Alto",
+DlgImgLockRatio		: "Konservi Proporcion",
+DlgBtnResetSize		: "Origina Grando",
+DlgImgBorder		: "Bordero",
+DlgImgHSpace		: "HSpaco",
+DlgImgVSpace		: "VSpaco",
+DlgImgAlign			: "Äœisrandigo",
+DlgImgAlignLeft		: "Maldekstre",
+DlgImgAlignAbsBottom: "Abs Malsupre",
+DlgImgAlignAbsMiddle: "Abs Centre",
+DlgImgAlignBaseline	: "Je Malsupro de Teksto",
+DlgImgAlignBottom	: "Malsupre",
+DlgImgAlignMiddle	: "Centre",
+DlgImgAlignRight	: "Dekstre",
+DlgImgAlignTextTop	: "Je Supro de Teksto",
+DlgImgAlignTop		: "Supre",
+DlgImgPreview		: "Vidigi Aspekton",
+DlgImgAlertUrl		: "Bonvolu tajpi la URL de la bildo",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ligilo",
+DlgLnkInfoTab		: "Informoj pri la Ligilo",
+DlgLnkTargetTab		: "Celo",
+
+DlgLnkType			: "Tipo de Ligilo",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankri en tiu Ä‰i paÄo",
+DlgLnkTypeEMail		: "RetpoÅto",
+DlgLnkProto			: "Protokolo",
+DlgLnkProtoOther	: "<alia>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Elekti Ankron",
+DlgLnkAnchorByName	: "Per Ankronomo",
+DlgLnkAnchorById	: "Per Elementidentigilo",
+DlgLnkNoAnchors		: "<Ne disponeblas ankroj en la dokumento>",
+DlgLnkEMail			: "Retadreso",
+DlgLnkEMailSubject	: "Temlinio",
+DlgLnkEMailBody		: "MesaÄa korpo",
+DlgLnkUpload		: "AlÅuti",
+DlgLnkBtnUpload		: "Sendi al Servilo",
+
+DlgLnkTarget		: "Celo",
+DlgLnkTargetFrame	: "<kadro>",
+DlgLnkTargetPopup	: "<Åprucfenestro>",
+DlgLnkTargetBlank	: "Nova Fenestro (_blank)",
+DlgLnkTargetParent	: "Gepatra Fenestro (_parent)",
+DlgLnkTargetSelf	: "Sama Fenestro (_self)",
+DlgLnkTargetTop		: "Plej Supra Fenestro (_top)",
+DlgLnkTargetFrameName	: "Nomo de Kadro",
+DlgLnkPopWinName	: "Nomo de Åœprucfenestro",
+DlgLnkPopWinFeat	: "Atributoj de la Åœprucfenestro",
+DlgLnkPopResize		: "Grando ÅœanÄebla",
+DlgLnkPopLocation	: "Adresobreto",
+DlgLnkPopMenu		: "Menubreto",
+DlgLnkPopScroll		: "Rulumlisteloj",
+DlgLnkPopStatus		: "Statobreto",
+DlgLnkPopToolbar	: "Ilobreto",
+DlgLnkPopFullScrn	: "Tutekrane (IE)",
+DlgLnkPopDependent	: "Dependa (Netscape)",
+DlgLnkPopWidth		: "LarÄo",
+DlgLnkPopHeight		: "Alto",
+DlgLnkPopLeft		: "Pozicio de Maldekstro",
+DlgLnkPopTop		: "Pozicio de Supro",
+
+DlnLnkMsgNoUrl		: "Bonvolu entajpi la URL-on",
+DlnLnkMsgNoEMail	: "Bonvolu entajpi la retadreson",
+DlnLnkMsgNoAnchor	: "Bonvolu elekti ankron",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Elekti",
+DlgColorBtnClear	: "Forigi",
+DlgColorHighlight	: "Emfazi",
+DlgColorSelected	: "Elektita",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Enmeti Mienvinjeton",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Enmeti Specialan Signon",
+
+// Table Dialog
+DlgTableTitle		: "Atributoj de Tabelo",
+DlgTableRows		: "Linioj",
+DlgTableColumns		: "Kolumnoj",
+DlgTableBorder		: "Bordero",
+DlgTableAlign		: "Äœisrandigo",
+DlgTableAlignNotSet	: "<DefaÅ­lte>",
+DlgTableAlignLeft	: "Maldekstre",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Dekstre",
+DlgTableWidth		: "LarÄo",
+DlgTableWidthPx		: "Bitbilderoj",
+DlgTableWidthPc		: "elcentoj",
+DlgTableHeight		: "Alto",
+DlgTableCellSpace	: "Interspacigo de Äˆeloj",
+DlgTableCellPad		: "ÄˆirkaÅ­enhava Plenigado",
+DlgTableCaption		: "Titolo",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Atributoj de Celo",
+DlgCellWidth		: "LarÄo",
+DlgCellWidthPx		: "bitbilderoj",
+DlgCellWidthPc		: "elcentoj",
+DlgCellHeight		: "Alto",
+DlgCellWordWrap		: "Linifaldo",
+DlgCellWordWrapNotSet	: "<DefaÅ­lte>",
+DlgCellWordWrapYes	: "Jes",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizonta Äœisrandigo",
+DlgCellHorAlignNotSet	: "<DefaÅ­lte>",
+DlgCellHorAlignLeft	: "Maldekstre",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Dekstre",
+DlgCellVerAlign		: "Vertikala Äœisrandigo",
+DlgCellVerAlignNotSet	: "<DefaÅ­lte>",
+DlgCellVerAlignTop	: "Supre",
+DlgCellVerAlignMiddle	: "Centre",
+DlgCellVerAlignBottom	: "Malsupre",
+DlgCellVerAlignBaseline	: "Je Malsupro de Teksto",
+DlgCellRowSpan		: "Linioj Kunfanditaj",
+DlgCellCollSpan		: "Kolumnoj Kunfanditaj",
+DlgCellBackColor	: "Fono",
+DlgCellBorderColor	: "Bordero",
+DlgCellBtnSelect	: "Elekti...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle	: "Find and Replace",	//MISSING
+
+// Find Dialog
+DlgFindTitle		: "SerÄ‰i",
+DlgFindFindBtn		: "SerÄ‰i",
+DlgFindNotFoundMsg	: "La celteksto ne estas trovita.",
+
+// Replace Dialog
+DlgReplaceTitle			: "AnstataÅ­igi",
+DlgReplaceFindLbl		: "SerÄ‰i:",
+DlgReplaceReplaceLbl	: "AnstataÅ­igi per:",
+DlgReplaceCaseChk		: "Kongruigi Usklecon",
+DlgReplaceReplaceBtn	: "AnstataÅ­igi",
+DlgReplaceReplAllBtn	: "AnstataÅ­igi Äˆiun",
+DlgReplaceWordChk		: "Tuta Vorto",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).",
+PasteErrorCopy	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).",
+
+PasteAsText		: "Interglui kiel Tekston",
+PasteFromWord	: "Interglui el Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+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
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "AÅ­tomata",
+ColorMoreColors	: "Pli da Koloroj...",
+
+// Document Properties
+DocProps		: "Dokumentaj Atributoj",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankraj Atributoj",
+DlgAnchorName		: "Ankra Nomo",
+DlgAnchorErrorName	: "Bv tajpi la ankran nomon",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ne trovita en la vortaro",
+DlgSpellChangeTo		: "ÅœanÄi al",
+DlgSpellBtnIgnore		: "Malatenti",
+DlgSpellBtnIgnoreAll	: "Malatenti Äˆiun",
+DlgSpellBtnReplace		: "AnstataÅ­igi",
+DlgSpellBtnReplaceAll	: "AnstataÅ­igi Äˆiun",
+DlgSpellBtnUndo			: "Malfari",
+DlgSpellNoSuggestions	: "- Neniu propono -",
+DlgSpellProgress		: "Literumkontrolado daÅ­ras...",
+DlgSpellNoMispell		: "Literumkontrolado finita: neniu fuÅo trovita",
+DlgSpellNoChanges		: "Literumkontrolado finita: neniu vorto ÅanÄita",
+DlgSpellOneChange		: "Literumkontrolado finita: unu vorto ÅanÄita",
+DlgSpellManyChanges		: "Literumkontrolado finita: %1 vortoj ÅanÄitaj",
+
+IeSpellDownload			: "Literumada Kontrolilo ne instalita. Äˆu vi volas elÅuti Äin nun?",
+
+// Button Dialog
+DlgButtonText		: "Teksto (Valoro)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nomo",
+DlgCheckboxValue	: "Valoro",
+DlgCheckboxSelected	: "Elektita",
+
+// Form Dialog
+DlgFormName		: "Nomo",
+DlgFormAction	: "Ago",
+DlgFormMethod	: "Metodo",
+
+// Select Field Dialog
+DlgSelectName		: "Nomo",
+DlgSelectValue		: "Valoro",
+DlgSelectSize		: "Grando",
+DlgSelectLines		: "Linioj",
+DlgSelectChkMulti	: "Permesi Plurajn Elektojn",
+DlgSelectOpAvail	: "Elektoj Disponeblaj",
+DlgSelectOpText		: "Teksto",
+DlgSelectOpValue	: "Valoro",
+DlgSelectBtnAdd		: "Aldoni",
+DlgSelectBtnModify	: "Modifi",
+DlgSelectBtnUp		: "Supren",
+DlgSelectBtnDown	: "Malsupren",
+DlgSelectBtnSetValue : "Agordi kiel Elektitan Valoron",
+DlgSelectBtnDelete	: "Forigi",
+
+// Textarea Dialog
+DlgTextareaName	: "Nomo",
+DlgTextareaCols	: "Kolumnoj",
+DlgTextareaRows	: "Vicoj",
+
+// Text Field Dialog
+DlgTextName			: "Nomo",
+DlgTextValue		: "Valoro",
+DlgTextCharWidth	: "SignolarÄo",
+DlgTextMaxChars		: "Maksimuma Nombro da Signoj",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Teksto",
+DlgTextTypePass		: "Pasvorto",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nomo",
+DlgHiddenValue	: "Valoro",
+
+// Bulleted List Dialog
+BulletedListProp	: "Atributoj de Bula Listo",
+NumberedListProp	: "Atributoj de Numera Listo",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Cirklo",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Kvadrato",
+DlgLstTypeNumbers	: "Ciferoj (1, 2, 3)",
+DlgLstTypeLCase		: "Minusklaj Literoj (a, b, c)",
+DlgLstTypeUCase		: "Majusklaj Literoj (A, B, C)",
+DlgLstTypeSRoman	: "Malgrandaj Romanaj Ciferoj (i, ii, iii)",
+DlgLstTypeLRoman	: "Grandaj Romanaj Ciferoj (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ÄœeneralaÄµoj",
+DlgDocBackTab		: "Fono",
+DlgDocColorsTab		: "Koloroj kaj MarÄenoj",
+DlgDocMetaTab		: "Metadatumoj",
+
+DlgDocPageTitle		: "PaÄotitolo",
+DlgDocLangDir		: "Skribdirekto de la Lingvo",
+DlgDocLangDirLTR	: "De maldekstro dekstren (LTR)",
+DlgDocLangDirRTL	: "De dekstro maldekstren (LTR)",
+DlgDocLangCode		: "Lingvokodo",
+DlgDocCharSet		: "Signara Kodo",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Alia Signara Kodo",
+
+DlgDocDocType		: "Dokumenta Tipo",
+DlgDocDocTypeOther	: "Alia Dokumenta Tipo",
+DlgDocIncXHTML		: "Inkluzivi XHTML Deklaroj",
+DlgDocBgColor		: "Fona Koloro",
+DlgDocBgImage		: "URL de Fona Bildo",
+DlgDocBgNoScroll	: "Neruluma Fono",
+DlgDocCText			: "Teksto",
+DlgDocCLink			: "Ligilo",
+DlgDocCVisited		: "Vizitita Ligilo",
+DlgDocCActive		: "Aktiva Ligilo",
+DlgDocMargins		: "PaÄaj MarÄenoj",
+DlgDocMaTop			: "Supra",
+DlgDocMaLeft		: "Maldekstra",
+DlgDocMaRight		: "Dekstra",
+DlgDocMaBottom		: "Malsupra",
+DlgDocMeIndex		: "Åœlosilvortoj de la Dokumento (apartigita de komoj)",
+DlgDocMeDescr		: "Dokumenta Priskribo",
+DlgDocMeAuthor		: "Verkinto",
+DlgDocMeCopy		: "Kopirajto",
+DlgDocPreview		: "Aspekto",
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Pri",
+DlgAboutBrowserInfoTab	: "Informoj pri TTT-legilo",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versio",
+DlgAboutInfo		: "Por pli da informoj, vizitu"
+};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/arrow_ltr.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/arrow_ltr.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/arrow_rtl.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/arrow_rtl.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/spacer.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/spacer.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/omg_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/omg_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/lightbulb.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/lightbulb.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/envelope.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/envelope.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/angel_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/angel_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/cry_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/cry_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/thumbs_down.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/thumbs_down.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/tounge_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/tounge_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/regular_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/regular_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/devil_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/devil_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/confused_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/confused_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/shades_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/shades_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/sad_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/sad_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/wink_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/wink_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/teeth_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/teeth_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/heart.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/heart.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/embaressed_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/embaressed_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/cake.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/cake.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/broken_heart.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/broken_heart.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/thumbs_up.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/thumbs_up.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/kiss.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/kiss.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/angry_smile.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/smiley/msn/angry_smile.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/anchor.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/images/anchor.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdialog.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdialog.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdialog.html	(revision 838)
@@ -0,0 +1,783 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page is used by all dialog box as the container.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<title></title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<script type="text/javascript">
+// Domain relaxation logic.
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var parentDomain = ( Args().TopWindow || E ).document.domain ;
+
+			if ( document.domain != parentDomain )
+				document.domain = parentDomain ;
+
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		document.domain = d ;
+	}
+})() ;
+
+var E = frameElement._DialogArguments.Editor ;
+
+// It seems referencing to frameElement._DialogArguments directly would lead to memory leaks in IE.
+// So let's use functions to access its members instead.
+function Args()
+{
+	return frameElement._DialogArguments ;
+}
+
+function ParentDialog( dialog )
+{
+	return dialog ? dialog._ParentDialog : frameElement._ParentDialog ;
+}
+
+var FCK				= E.FCK ;
+var FCKTools		= E.FCKTools ;
+var FCKDomTools		= E.FCKDomTools ;
+var FCKDialog		= E.FCKDialog ;
+var FCKBrowserInfo	= E.FCKBrowserInfo ;
+var FCKConfig		= E.FCKConfig ;
+
+// Steal the focus so that the caret would no longer stay in the editor iframe.
+window.focus() ;
+
+// Sets the Skin CSS
+document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
+
+// Sets the language direction.
+var langDir = document.documentElement.dir = E.FCKLang.Dir ;
+
+// For IE6-, the fck_dialog_ie6.js is loaded, used to fix limitations in the browser.
+if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+	document.write( '<' + 'script type="text/javascript" src="' + FCKConfig.SkinPath + 'fck_dialog_ie6.js"><' + '\/script>' ) ;
+
+FCKTools.RegisterDollarFunction( window ) ;
+
+// Resize related functions.
+var Sizer = function()
+{
+	var bAutoSize = false ;
+
+	var retval = {
+		// Sets whether the dialog should auto-resize according to its content's height.
+		SetAutoSize : function( autoSize )
+		{
+			bAutoSize = autoSize ;
+			this.RefreshSize() ;
+		},
+
+		// Fit the dialog container's layout to the inner iframe's external size.
+		RefreshContainerSize : function()
+		{
+			var frmMain = $( 'frmMain' ) ;
+
+			if ( frmMain )
+			{
+				// Get the container size.
+				var height = $( 'contents' ).offsetHeight ;
+
+				// Subtract the size of other elements.
+				height -= $( 'TitleArea' ).offsetHeight ;
+				height -= $( 'TabsRow' ).offsetHeight ;
+				height -= $( 'PopupButtons' ).offsetHeight ;
+
+				frmMain.style.height = Math.max( height, 0 ) + 'px' ;
+			}
+		},
+
+		// Resize and re-layout the dialog.
+		// Triggers the onresize event for the layout logic.
+		ResizeDialog : function( width, height )
+		{
+			FCKDomTools.SetElementStyles( window.frameElement,
+					{
+						'width' : width + 'px',
+						'height' : height + 'px'
+					} ) ;
+
+			// If the skin have defined a function for resize fixes, call it now.
+			if ( typeof window.DoResizeFixes == 'function' )
+				window.DoResizeFixes() ;
+		},
+
+		// if bAutoSize is true, automatically fit the dialog size and layout to
+		// accomodate the inner iframe's internal height.
+		// if bAutoSize is false, then only the layout logic for the dialog decorations
+		// is run to accomodate the inner iframe's external height.
+		RefreshSize : function()
+		{
+			if ( bAutoSize )
+			{
+				var frmMain		= $( 'frmMain' ) ;
+				var innerDoc	= frmMain.contentWindow.document ;
+				var isStrict	= FCKTools.IsStrictMode( innerDoc ) ;
+
+				// Get the size of the frame contents.
+				var innerWidth	= isStrict ? innerDoc.documentElement.scrollWidth : innerDoc.body.scrollWidth ;
+				var innerHeight	= isStrict ? innerDoc.documentElement.scrollHeight : innerDoc.body.scrollHeight ;
+
+				// Get the current frame size.
+				var frameSize = FCKTools.GetViewPaneSize( frmMain.contentWindow ) ;
+
+				var deltaWidth	= innerWidth - frameSize.Width ;
+				var deltaHeight	= innerHeight - frameSize.Height ;
+
+				// If the contents fits the current size.
+				if ( deltaWidth <= 0 && deltaHeight <= 0 )
+					return ;
+
+				var dialogWidth		= frameElement.offsetWidth + Math.max( deltaWidth, 0 ) ;
+				var dialogHeight	= frameElement.offsetHeight + Math.max( deltaHeight, 0 ) ;
+
+				this.ResizeDialog( dialogWidth, dialogHeight ) ;
+			}
+			this.RefreshContainerSize() ;
+		}
+	}
+
+	/**
+	 * Safari seems to have a bug with the time when RefreshSize() is executed - it
+	 * thinks frmMain's innerHeight is 0 if we query the value too soon after the
+	 * page is loaded in some circumstances. (#1316)
+	 * TODO : Maybe this is not needed anymore after #35.
+	 */
+	if ( FCKBrowserInfo.IsSafari )
+	{
+		var originalRefreshSize = retval.RefreshSize ;
+
+		retval.RefreshSize = function()
+		{
+			FCKTools.SetTimeout( originalRefreshSize, 1, retval ) ;
+		}
+	}
+
+	window.onresize = function()
+	{
+		retval.RefreshContainerSize() ;
+	}
+
+	window.SetAutoSize = FCKTools.Bind( retval, retval.SetAutoSize ) ;
+
+	return retval ;
+}() ;
+
+// Manages the throbber image that appears if the inner part of dialog is taking too long to load.
+var Throbber = function()
+{
+	var timer ;
+
+	var updateThrobber = function()
+	{
+		var throbberParent = $( 'throbberBlock' ) ;
+		var throbberBlocks = throbberParent.childNodes ;
+		var lastClass = throbberParent.lastChild.className ;
+
+		// From the last to the second one, copy the class from the previous one.
+		for ( var i = throbberBlocks.length - 1 ; i > 0 ; i-- )
+			throbberBlocks[i].className = throbberBlocks[i-1].className ;
+
+		// For the first one, copy the last class (rotation).
+		throbberBlocks[0].className = lastClass ;
+	}
+
+	return {
+		Show : function( waitMilliseconds )
+		{
+			// Auto-setup the Show function to be called again after the
+			// requested amount of time.
+			if ( waitMilliseconds && waitMilliseconds > 0 )
+			{
+				timer = FCKTools.SetTimeout( this.Show, waitMilliseconds, this, null, window ) ;
+				return ;
+			}
+
+			var throbberParent = $( 'throbberBlock' ) ;
+
+			// Create the throbber blocks.
+			var classIds = [ 1,2,3,4,5,4,3,2 ] ;
+			while ( classIds.length > 0 )
+				throbberParent.appendChild( document.createElement( 'div' ) ).className = ' throbber_' + classIds.shift() ;
+
+			// Center the throbber.
+			var frm = $( 'contents' ) ;
+			var frmCoords = FCKTools.GetDocumentPosition( window, frm ) ;
+			var x = frmCoords.x + ( frm.offsetWidth - throbberParent.offsetWidth ) / 2 ;
+			var y = frmCoords.y + ( frm.offsetHeight - throbberParent.offsetHeight ) / 2 ;
+			throbberParent.style.left = parseInt( x, 10 ) + 'px' ;
+			throbberParent.style.top = parseInt( y, 10 ) + 'px' ;
+
+			// Show it.
+			throbberParent.style.visibility = ''  ;
+
+			// Setup the animation interval.
+			timer = setInterval( updateThrobber, 100 ) ;
+		},
+
+		Hide : function()
+		{
+			if ( timer )
+			{
+				clearInterval( timer ) ;
+				timer = null ;
+			}
+
+			var throbberParent = document.getElementById( 'throbberBlock' ) ;
+			if ( throbberParent )
+				FCKDomTools.RemoveNode( throbberParent ) ;
+		}
+	} ;
+}() ;
+
+// Drag and drop handlers.
+var DragAndDrop = function()
+{
+	var registeredWindows = [] ;
+	var lastCoords ;
+	var currentPos ;
+
+	var cleanUpHandlers = function()
+	{
+		for ( var i = 0 ; i < registeredWindows.length ; i++ )
+		{
+			FCKTools.RemoveEventListener( registeredWindows[i].document, 'mousemove', dragMouseMoveHandler ) ;
+			FCKTools.RemoveEventListener( registeredWindows[i].document, 'mouseup', dragMouseUpHandler ) ;
+		}
+	}
+
+	var dragMouseMoveHandler = function( evt )
+	{
+		if ( !lastCoords )
+			return ;
+
+		if ( !evt )
+			evt = FCKTools.GetElementDocument( this ).parentWindow.event ;
+
+		// Updated the last coordinates.
+		var currentCoords =
+		{
+			x : evt.screenX,
+			y : evt.screenY
+		} ;
+
+		currentPos =
+		{
+			x : currentPos.x + ( currentCoords.x - lastCoords.x ),
+			y : currentPos.y + ( currentCoords.y - lastCoords.y )
+		} ;
+
+		lastCoords = currentCoords ;
+
+		frameElement.style.left	= currentPos.x + 'px' ;
+		frameElement.style.top	= currentPos.y + 'px' ;
+
+		if ( evt.preventDefault )
+			evt.preventDefault() ;
+		else
+			evt.returnValue = false ;
+	}
+
+	var dragMouseUpHandler = function( evt )
+	{
+		if ( !lastCoords )
+			return ;
+		if ( !evt )
+			evt = FCKTools.GetElementDocument( this ).parentWindow.event ;
+		cleanUpHandlers() ;
+		lastCoords = null ;
+	}
+
+	return {
+
+		MouseDownHandler : function( evt )
+		{
+			var view = null ;
+			if ( !evt )
+			{
+				view = FCKTools.GetElementDocument( this ).parentWindow ;
+				evt = view.event ;
+			}
+			else
+				view = evt.view ;
+
+			var target = evt.srcElement || evt.target ;
+			if ( target.id == 'closeButton' || target.className == 'PopupTab' || target.className == 'PopupTabSelected' )
+				return ;
+
+			lastCoords =
+			{
+				x : evt.screenX,
+				y : evt.screenY
+			} ;
+
+			// Save the current IFRAME position.
+			currentPos =
+			{
+				x : parseInt( FCKDomTools.GetCurrentElementStyle( frameElement, 'left' ), 10 ),
+				y : parseInt( FCKDomTools.GetCurrentElementStyle( frameElement, 'top' ), 10 )
+			} ;
+
+			for ( var i = 0 ; i < registeredWindows.length ; i++ )
+			{
+				FCKTools.AddEventListener( registeredWindows[i].document, 'mousemove', dragMouseMoveHandler ) ;
+				FCKTools.AddEventListener( registeredWindows[i].document, 'mouseup', dragMouseUpHandler ) ;
+			}
+
+			if ( evt.preventDefault )
+				evt.preventDefault() ;
+			else
+				evt.returnValue = false ;
+		},
+
+		RegisterHandlers : function( w )
+		{
+			registeredWindows.push( w ) ;
+		}
+	}
+}() ;
+
+// Selection related functions.
+//(Became simple shortcuts after the fix for #1990)
+var Selection =
+{
+	/**
+	 * Ensures that the editing area contains an active selection. This is a
+	 * requirement for IE, as it looses the selection when the focus moves to other
+	 * frames.
+	 */
+	EnsureSelection : function()
+	{
+		FCK.Selection.Restore() ;
+	},
+
+	/**
+	 * Get the FCKSelection object for the editor instance.
+	 */
+	GetSelection : function()
+	{
+		return FCK.Selection ;
+	},
+
+	/**
+	 * Get the selected element in the editing area (for object selections).
+	 */
+	GetSelectedElement : function()
+	{
+		return FCK.Selection.GetSelectedElement() ;
+	}
+}
+
+// Tab related functions.
+var Tabs = function()
+{
+	// Only element ids should be stored here instead of element references since setSelectedTab and TabDiv_OnClick
+	// would build circular references with the element references inside and cause memory leaks in IE6.
+	var oTabs = new Object() ;
+
+	var setSelectedTab = function( tabCode )
+	{
+		for ( var sCode in oTabs )
+		{
+			if ( sCode == tabCode )
+				$( oTabs[sCode] ).className = 'PopupTabSelected' ;
+			else
+				$( oTabs[sCode] ).className = 'PopupTab' ;
+		}
+
+		if ( typeof( window.frames["frmMain"].OnDialogTabChange ) == 'function' )
+			window.frames["frmMain"].OnDialogTabChange( tabCode ) ;
+	}
+
+	function TabDiv_OnClick()
+	{
+		setSelectedTab( this.TabCode ) ;
+	}
+
+	window.AddTab = function( tabCode, tabText, startHidden )
+	{
+		if ( typeof( oTabs[ tabCode ] ) != 'undefined' )
+			return ;
+
+		var eTabsRow = $( 'Tabs' ) ;
+
+		var oCell = eTabsRow.insertCell(  eTabsRow.cells.length - 1 ) ;
+		oCell.noWrap = true ;
+
+		var oDiv = document.createElement( 'DIV' ) ;
+		oDiv.className = 'PopupTab' ;
+		oDiv.innerHTML = tabText ;
+		oDiv.TabCode = tabCode ;
+		oDiv.onclick = TabDiv_OnClick ;
+		oDiv.id = Math.random() ;
+
+		if ( startHidden )
+			oDiv.style.display = 'none' ;
+
+		eTabsRow = $( 'TabsRow' ) ;
+
+		oCell.appendChild( oDiv ) ;
+
+		if ( eTabsRow.style.display == 'none' )
+		{
+			var eTitleArea = $( 'TitleArea' ) ;
+			eTitleArea.className = 'PopupTitle' ;
+
+			oDiv.className = 'PopupTabSelected' ;
+			eTabsRow.style.display = '' ;
+
+			if ( window.onresize )
+				window.onresize() ;
+		}
+
+		oTabs[ tabCode ] = oDiv.id ;
+
+		FCKTools.DisableSelection( oDiv ) ;
+	} ;
+
+	window.SetSelectedTab = setSelectedTab ;
+
+	window.SetTabVisibility = function( tabCode, isVisible )
+	{
+		var oTab = $( oTabs[ tabCode ] ) ;
+		oTab.style.display = isVisible ? '' : 'none' ;
+
+		if ( ! isVisible && oTab.className == 'PopupTabSelected' )
+		{
+			for ( var sCode in oTabs )
+			{
+				if ( $( oTabs[sCode] ).style.display != 'none' )
+				{
+					setSelectedTab( sCode ) ;
+					break ;
+				}
+			}
+		}
+	} ;
+}() ;
+
+// readystatechange handler for registering drag and drop handlers in cover
+// iframes, defined out here to avoid memory leak.
+// Do NOT put this function as a private function as it will induce memory leak
+// in IE and it's not detectable with Drip or sIEve and undetectable leaks are
+// really nasty (sigh).
+var onReadyRegister = function()
+{
+	if ( this.readyState != 'complete' )
+		return ;
+	DragAndDrop.RegisterHandlers( this.contentWindow ) ;
+} ;
+
+// The business logic of the dialog, dealing with operational things like
+// dialog open/dialog close/enable/disable/etc.
+(function()
+{
+	var setOnKeyDown = function( targetDocument )
+	{
+		targetDocument.onkeydown = function ( e )
+		{
+			e = e || event || this.parentWindow.event ;
+			switch ( e.keyCode )
+			{
+				case 13 :		// ENTER
+					var oTarget = e.srcElement || e.target ;
+					if ( oTarget.tagName == 'TEXTAREA' )
+						return true ;
+					Ok() ;
+					return false ;
+
+				case 27 :		// ESC
+					Cancel() ;
+					return false ;
+			}
+			return true ;
+		}
+	} ;
+
+	var contextMenuBlocker = function( e )
+	{
+		var sTagName = e.target.tagName ;
+		if ( ! ( ( sTagName == "INPUT" && e.target.type == "text" ) || sTagName == "TEXTAREA" ) )
+			e.preventDefault() ;
+	} ;
+
+	var disableContextMenu = function( targetDocument )
+	{
+		if ( FCKBrowserInfo.IsIE )
+			return ;
+
+		targetDocument.addEventListener( 'contextmenu', contextMenuBlocker, true ) ;
+	} ;
+
+	// Program entry point.
+	window.Init = function()
+	{
+		// Start the throbber timer.
+		Throbber.Show( 1000 ) ;
+
+		Sizer.RefreshContainerSize() ;
+		LoadInnerDialog() ;
+
+		FCKTools.DisableSelection( document.body ) ;
+
+		// Make the title area draggable.
+		var titleElement = $( 'header' ) ;
+		titleElement.onmousedown = DragAndDrop.MouseDownHandler ;
+
+		// Connect mousemove and mouseup events from dialog frame and outer window to dialog dragging logic.
+		DragAndDrop.RegisterHandlers( window ) ;
+		DragAndDrop.RegisterHandlers( Args().TopWindow ) ;
+
+		// Disable the previous dialog if it exists.
+		if ( ParentDialog() )
+		{
+			ParentDialog().contentWindow.SetEnabled( false ) ;
+			if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+			{
+				var currentParent = ParentDialog() ;
+				while ( currentParent )
+				{
+					var blockerFrame = currentParent.contentWindow.$( 'blocker' ) ;
+					if ( blockerFrame.readyState == 'complete' )
+						DragAndDrop.RegisterHandlers( blockerFrame.contentWindow ) ;
+					else
+						blockerFrame.onreadystatechange = onReadyRegister ;
+					currentParent = ParentDialog( currentParent ) ;
+				}
+			}
+			else
+			{
+				var currentParent = ParentDialog() ;
+				while ( currentParent )
+				{
+					DragAndDrop.RegisterHandlers( currentParent.contentWindow ) ;
+					currentParent = ParentDialog( currentParent ) ;
+				}
+			}
+		}
+
+		// If this is the only dialog on screen, enable the background cover.
+		if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+		{
+			var blockerFrame = FCKDialog.GetCover().firstChild ;
+			if ( blockerFrame.readyState == 'complete' )
+				DragAndDrop.RegisterHandlers( blockerFrame.contentWindow ) ;
+			else
+				blockerFrame.onreadystatechange = onReadyRegister;
+		}
+
+		// Add Enter/Esc hotkeys and disable context menu for the dialog.
+		setOnKeyDown( document ) ;
+		disableContextMenu( document ) ;
+	} ;
+
+	window.LoadInnerDialog = function()
+	{
+		if ( window.onresize )
+			window.onresize() ;
+
+		// First of all, translate the dialog box contents.
+		E.FCKLanguageManager.TranslatePage( document ) ;
+
+		// Create the IFRAME that holds the dialog contents.
+		$( 'innerContents' ).innerHTML = '<iframe id="frmMain" src="' + Args().Page + '" name="frmMain" frameborder="0" width="100%" height="100%" scrolling="auto" style="visibility: hidden;" allowtransparency="true"></iframe>' ;
+	} ;
+
+	window.InnerDialogLoaded = function()
+	{
+		// If the dialog has been closed before the iframe is loaded, do nothing.
+		if ( !frameElement.parentNode )
+			return null ;
+
+		Throbber.Hide() ;
+
+		var frmMain = $('frmMain') ;
+		var innerWindow = frmMain.contentWindow ;
+		var innerDoc = innerWindow.document ;
+
+		// Show the loaded iframe.
+		frmMain.style.visibility = '' ;
+
+		// Set the language direction.
+		innerDoc.documentElement.dir = langDir ;
+
+		// Sets the Skin CSS.
+		innerDoc.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
+
+		setOnKeyDown( innerDoc ) ;
+		disableContextMenu( innerDoc ) ;
+
+		Sizer.RefreshContainerSize();
+
+		DragAndDrop.RegisterHandlers( innerWindow ) ;
+
+		innerWindow.focus() ;
+
+		return E ;
+	} ;
+
+	window.SetOkButton = function( showIt )
+	{
+		$('btnOk').style.visibility = ( showIt ? '' : 'hidden' ) ;
+	} ;
+
+	window.Ok = function()
+	{
+		Selection.EnsureSelection() ;
+
+		var frmMain = window.frames["frmMain"] ;
+
+		if ( frmMain.Ok && frmMain.Ok() )
+			CloseDialog() ;
+		else
+			frmMain.focus() ;
+	} ;
+
+	window.Cancel = function( dontFireChange )
+	{
+		Selection.EnsureSelection() ;
+		return CloseDialog( dontFireChange ) ;
+	} ;
+
+	window.CloseDialog = function( dontFireChange )
+	{
+		Throbber.Hide() ;
+
+		// Points the src to a non-existent location to avoid loading errors later, in case the dialog
+		// haven't been completed loaded at this point.
+		if ( $( 'frmMain' ) )
+			$( 'frmMain' ).src = FCKTools.GetVoidUrl() ;
+
+		if ( !dontFireChange && !FCK.EditMode )
+		{
+			// All dialog windows, by default, will fire the "OnSelectionChange"
+			// event, no matter the Ok or Cancel button has been pressed.
+			// It seems that OnSelectionChange may enter on a concurrency state
+			// on some situations (#1965), so we should put the event firing in
+			// the execution queue instead of executing it immediately.
+			setTimeout( function()
+				{
+					FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+				}, 0 ) ;
+		}
+
+		FCKDialog.OnDialogClose( window ) ;
+	} ;
+
+	window.SetEnabled = function( isEnabled )
+	{
+		var cover = $( 'cover' ) ;
+		cover.style.display = isEnabled ? 'none' : '' ;
+
+		if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+		{
+			if ( !isEnabled )
+			{
+				// Inser the blocker IFRAME before the cover.
+				var blocker = document.createElement( 'iframe' ) ;
+				blocker.src = FCKTools.GetVoidUrl() ;
+				blocker.hideFocus = true ;
+				blocker.frameBorder = 0 ;
+				blocker.id = blocker.className = 'blocker' ;
+				cover.appendChild( blocker ) ;
+			}
+			else
+			{
+				var blocker = $( 'blocker' ) ;
+				if ( blocker && blocker.parentNode )
+					blocker.parentNode.removeChild( blocker ) ;
+			}
+		}
+	} ;
+})() ;
+		</script>
+	</head>
+	<body onload="Init();" class="PopupBody">
+		<div class="contents" id="contents">
+			<div id="header">
+				<div id="TitleArea" class="PopupTitle PopupTitleBorder">
+					<script type="text/javascript">
+document.write( Args().Title ) ;
+					</script>
+					<div id="closeButton" onclick="Cancel();"></div>
+				</div>
+				<div id="TabsRow" class="PopupTabArea" style="display: none">
+					<table border="0" cellpadding="0" cellspacing="0" width="100%">
+						<tr id="Tabs">
+							<td class="PopupTabEmptyArea">&nbsp;</td>
+							<td class="PopupTabEmptyArea" width="100%">&nbsp;</td>
+						</tr>
+					</table>
+				</div>
+			</div>
+			<div id="innerContents"></div>
+			<div id="PopupButtons" class="PopupButtons">
+				<table border="0" cellpadding="0" cellspacing="0">
+					<tr>
+						<td width="100%">&nbsp;</td>
+						<td nowrap="nowrap">
+							<input id="btnOk" style="visibility: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" />
+							&nbsp;
+							<input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
+						</td>
+					</tr>
+				</table>
+			</div>
+		</div>
+		<div class="tl"></div>
+		<div class="tc"></div>
+		<div class="tr"></div>
+		<div class="ml"></div>
+		<div class="mr"></div>
+		<div class="bl"></div>
+		<div class="bc"></div>
+		<div class="br"></div>
+		<div class="cover" id="cover" style="display:none"></div>
+		<div id="throbberBlock" style="position: absolute; visibility: hidden"></div>
+		<script type="text/javascript">
+			// Set the class name for language direction.
+			document.body.className += ' ' + langDir ;
+
+			var cover = $( 'cover' ) ;
+			cover.style.backgroundColor = FCKConfig.BackgroundBlockerColor ;
+			FCKDomTools.SetOpacity( cover, FCKConfig.BackgroundBlockerOpacity ) ;
+		</script>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js	(revision 838)
@@ -0,0 +1,110 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+(function()
+{
+	// IE6 doens't handle absolute positioning properly (it is always in quirks
+	// mode). This function fixes the sizes and positions of many elements that
+	// compose the skin (this is skin specific).
+	var fixSizes = window.DoResizeFixes = function()
+	{
+		var fckDlg = window.document.body ;
+
+		for ( var i = 0 ; i < fckDlg.childNodes.length ; i++ )
+		{
+			var child = fckDlg.childNodes[i] ;
+			switch ( child.className )
+			{
+				case 'contents' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 ) ;	// -left -right
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 ) ;	// -bottom -top
+					break ;
+
+				case 'blocker' :
+				case 'cover' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 + 4 ) ;	// -left -right + 4
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 + 4 ) ;	// -bottom -top + 4
+					break ;
+
+				case 'tr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					break ;
+
+				case 'tc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 16 - 16 ) ;
+					break ;
+
+				case 'ml' :
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'mr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'bl' :
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'br' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'bc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 30 - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+			}
+		}
+	}
+
+	var closeButtonOver = function()
+	{
+		this.style.backgroundPosition = '-16px -687px' ;
+	} ;
+
+	var closeButtonOut = function()
+	{
+		this.style.backgroundPosition = '-16px -651px' ;
+	} ;
+
+	var fixCloseButton = function()
+	{
+		var closeButton = document.getElementById ( 'closeButton' ) ;
+
+		closeButton.onmouseover	= closeButtonOver ;
+		closeButton.onmouseout	= closeButtonOut ;
+	}
+
+	var onLoad = function()
+	{
+		fixSizes() ;
+		fixCloseButton() ;
+
+		window.attachEvent( 'onresize', fixSizes ) ;
+		window.detachEvent( 'onload', onLoad ) ;
+	}
+
+	window.attachEvent( 'onload', onLoad ) ;
+
+})() ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_editor.css	(revision 838)
@@ -0,0 +1,476 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+	padding: 1px;
+	margin: 0;
+	background-color: #ffffff;
+}
+
+#xEditingArea
+{
+    border: #696969 1px solid;
+}
+
+.SourceField
+{
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+    background-color: #f7f8fd;
+}
+
+.TB_ToolbarSet
+{
+    border-top: #f7f8fd 1px outset;
+    border-bottom: #f7f8fd 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+   	background-color: #d6dff7;
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+    display: inline-table;
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #B2CBFF;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    background-repeat: no-repeat;
+    background-position: center center;
+    margin: 0px;
+    width: 7px;
+    height: 24px;
+}
+
+.TB_End
+{
+    background-image: url(images/toolbar.end.gif);
+    background-repeat: no-repeat;
+    background-position: center left;
+    height: 24px;
+    width: 4px;
+}
+
+.TB_ExpandImg
+{
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+    background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+    padding: 2px 2px 2px 2px;
+    border: #f7f8fd 1px outset;
+}
+
+.TB_Collapse
+{
+    width: 5px;
+}
+
+.TB_Break
+{
+    height: 24px; /* IE needs the height to be set, otherwise no break */
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    margin: 1px;
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
+.TB_Button_On
+{
+    margin: 0px;
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    margin: 0px ;
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Disabled
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #f7f8fd;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+.TB_Button_Off .TB_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_Button_On_Over .TB_Text
+{
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f8fd;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #d6dff7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #7096FA;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #466ca6;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #f7f8fd;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #f7f8fd;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #f7f8fd;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top: 2px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+/*    background-color:  inherit;     Maybe this is needed wait to check */
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption, .SC_FieldDisabled .TB_ButtonType_Text
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.start.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.start.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.expand.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.expand.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.separator.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.separator.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.end.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.end.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/sprites.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/sprites.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/sprites.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/sprites.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.bg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/images/toolbar.bg.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_strip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_strip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css	(revision 838)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
+ */
+
+html, body
+{
+	background-color: transparent;
+	margin: 0px;
+	padding: 0px;
+}
+
+body
+{
+	padding: 10px;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f7f8fd;
+}
+
+.PopupBody
+{
+	height: 100%;
+	width: 100%;
+	overflow: hidden;
+	background-color: transparent;
+	padding: 0px;
+}
+
+#header
+{
+	cursor: move;
+}
+
+.PopupTitle
+{
+	font-weight: bold;
+	font-size: 14pt;
+	color: #0e3460;
+	background-color: #8cb2fd;
+	padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+	position: absolute;
+	right: 0px;
+	left: 0px;
+	bottom: 0px;
+	border-top: #466ca6 1px solid;
+	background-color: #8cb2fd;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border: #1c3460 1px solid;
+	color: #000a28;
+	background-color: #7096d3;
+}
+
+#btnOk
+{
+	width: 100px;
+}
+
+.DarkBackground
+{
+	background-color: #eaf2f8;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #0e3460;
+	background-color: #8cb2fd;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px ;
+	border-bottom: #466ca6 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #466ca6 1px solid;
+	border-top: #466ca6 1px solid;
+	border-left: #466ca6 1px solid;
+	padding: 3px 5px 3px 5px;
+	color: #0e3460;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #466ca6 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight: bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f7f8fd 1px solid;
+	background-color: #f7f8fd;
+}
+
+.PopupSelectionBox
+{
+	border: #1e90ff 1px solid !important;
+	background-color: #add8e6 !important;
+	cursor: pointer;
+	cursor: hand;
+}
+
+#tdBrowse
+{
+	vertical-align: bottom;
+}
+
+/**
+ * Dialog frame related styles.
+ */
+
+.contents
+{
+	position: absolute;
+	top: 2px;
+	left: 16px;
+	right: 16px;
+	bottom: 20px;
+	background-color: #f7f8fD;
+	overflow: hidden;
+	z-index: 1;
+}
+
+.tl, .tr, .tc, .bl, .br, .bc
+{
+	position: absolute;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+}
+
+* html .tl, * html .tr, * html .tc, * html .bl, * html .br, * html .bc
+{
+	background-image: url(images/sprites.gif);
+}
+
+.ml, .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.png);
+	background-repeat: repeat-y;
+}
+
+* html .ml, * html .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.rtl .ml, .rtl .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.rtl.png);
+	background-repeat: repeat-y;
+}
+
+* html .rtl .ml, * html .rtl .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.tl
+{
+	top: 0px;
+	left: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -16px;
+}
+
+.rtl .tl
+{
+	background-position: -16px -397px;
+}
+
+.tr
+{
+	top: 0px;
+	right: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -76px;
+}
+
+.rtl .tr
+{
+	background-position: -16px -457px;
+}
+
+.tc
+{
+	top: 0px;
+	right: 16px;
+	left: 16px;
+	height: 16px;
+	background-position: 0px -136px;
+	background-repeat: repeat-x;
+}
+
+.ml
+{
+	top: 16px;
+	left: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: 0px 0px;
+}
+
+.mr
+{
+	top: 16px;
+	right: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: -16px 0px;
+}
+
+.bl
+{
+	bottom: 0px;
+	left: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -196px;
+}
+
+.rtl .bl
+{
+	background-position: -16px -517px;
+}
+
+.br
+{
+	bottom: 0px;
+	right: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -263px;
+}
+
+.rtl .br
+{
+	background-position: -16px -584px;
+}
+
+.bc
+{
+	bottom: 0px;
+	right: 30px;
+	left: 30px;
+	height: 51px;
+	background-position: 0px -330px;
+	background-repeat: repeat-x;
+}
+
+/* For IE6. Do not change it. */
+* html .blocker
+{
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	z-index: 12;
+	filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
+}
+
+/* The layer used to cover the dialog when opening a child dialog. */
+.cover
+{
+	position: absolute;
+	top: 0px;
+	left: 14px;
+	right: 14px;
+	bottom: 18px;
+	z-index: 11;
+}
+
+#closeButton
+{
+	position: absolute;
+	right: 0px;
+	top: 0px;
+	margin-top: 5px;
+	margin-right: 10px;
+	width: 20px;
+	height: 20px;
+	cursor: pointer;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+	background-position: -16px -651px;
+}
+
+* html #closeButton
+{
+	cursor: hand;
+	background-image: url(images/sprites.gif);
+}
+
+.rtl #closeButton
+{
+	right: auto;
+	left: 10px;
+	margin-right: 0px;
+}
+
+#closeButton:hover
+{
+	background-position: -16px -687px;
+}
+
+#throbberBlock
+{
+	z-index: 10;
+}
+
+#throbberBlock div
+{
+	float: left;
+	width: 8px;
+	height: 9px;
+	margin-left: 2px;
+	margin-right: 2px;
+	font-size: 1px;	/* IE6 */
+}
+
+/*
+	Color Gradient Generator:
+	http://www.herethere.net/~samson/php/color_gradient/?cbegin=0E3460&cend=8cb2fd&steps=4
+*/
+
+.throbber_1
+{
+	background-color: #0E3460;
+}
+
+.throbber_2
+{
+	background-color: #2D5387;
+}
+
+.throbber_3
+{
+	background-color: #4D73AE;
+}
+
+.throbber_4
+{
+	background-color: #6C92D5;
+}
+
+.throbber_5
+{
+	background-color: #8CB2FD;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/office2003/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js	(revision 838)
@@ -0,0 +1,110 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+(function()
+{
+	// IE6 doens't handle absolute positioning properly (it is always in quirks
+	// mode). This function fixes the sizes and positions of many elements that
+	// compose the skin (this is skin specific).
+	var fixSizes = window.DoResizeFixes = function()
+	{
+		var fckDlg = window.document.body ;
+
+		for ( var i = 0 ; i < fckDlg.childNodes.length ; i++ )
+		{
+			var child = fckDlg.childNodes[i] ;
+			switch ( child.className )
+			{
+				case 'contents' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 ) ;	// -left -right
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 ) ;	// -bottom -top
+					break ;
+
+				case 'blocker' :
+				case 'cover' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 + 4 ) ;	// -left -right + 4
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 + 4 ) ;	// -bottom -top + 4
+					break ;
+
+				case 'tr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					break ;
+
+				case 'tc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 16 - 16 ) ;
+					break ;
+
+				case 'ml' :
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'mr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'bl' :
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'br' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'bc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 30 - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+			}
+		}
+	}
+
+	var closeButtonOver = function()
+	{
+		this.style.backgroundPosition = '-16px -687px' ;
+	} ;
+
+	var closeButtonOut = function()
+	{
+		this.style.backgroundPosition = '-16px -651px' ;
+	} ;
+
+	var fixCloseButton = function()
+	{
+		var closeButton = document.getElementById ( 'closeButton' ) ;
+
+		closeButton.onmouseover	= closeButtonOver ;
+		closeButton.onmouseout	= closeButtonOut ;
+	}
+
+	var onLoad = function()
+	{
+		fixSizes() ;
+		fixCloseButton() ;
+
+		window.attachEvent( 'onresize', fixSizes ) ;
+		window.detachEvent( 'onload', onLoad ) ;
+	}
+
+	window.attachEvent( 'onload', onLoad ) ;
+
+})() ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_editor.css	(revision 838)
@@ -0,0 +1,464 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+	padding: 1px;
+	margin: 0;
+	background-color: #ffffff;
+}
+
+#xEditingArea
+{
+    border: #696969 1px solid;
+}
+
+.SourceField
+{
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+    background-color: #efefde;
+}
+
+.TB_ToolbarSet
+{
+    border-top: #efefde 1px outset;
+    border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+	height: 24px;
+    display: inline-table;	/* inline = Opera jumping buttons bug */
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #999966;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    margin: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 16px;
+}
+
+.TB_End
+{
+    display: none;
+}
+
+.TB_ExpandImg
+{
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+    background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+    padding: 2px 2px 2px 2px;
+    border: #efefde 1px outset;
+}
+
+.TB_Collapse
+{
+    width: 5px;
+}
+
+.TB_Break
+{
+    height: 24px; /* IE needs the height to be set, otherwise no break */
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    border: #efefde 1px solid; /* This is the default border */
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
+.TB_Button_On
+{
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Disabled
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #efefde;  /* Needed because of a bug on Clear Type */
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+.TB_Text
+{
+	height: 22px;
+}
+
+.TB_Button_Off .TB_Text
+{
+   	background-color: #efefde ;  /* Needed because of a bug on ClearType */
+}
+
+.TB_Button_On_Over .TB_Text
+{
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #ffffff;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #e3e3c7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8f8f73;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #737357;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #efefde;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption, .SC_FieldDisabled .TB_ButtonType_Text
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.start.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.start.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.expand.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.expand.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.separator.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.separator.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.collapse.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.collapse.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.rtl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.rtl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/dialog.sides.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.end.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.end.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/sprites.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/sprites.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/sprites.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/sprites.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.arrowright.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/images/toolbar.arrowright.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_strip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_strip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/fck_dialog.css	(revision 838)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
+ */
+
+html, body
+{
+	background-color: transparent;
+	margin: 0px;
+	padding: 0px;
+}
+
+body
+{
+	padding: 10px;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f1f1e3;
+}
+
+.PopupBody
+{
+	height: 100%;
+	width: 100%;
+	overflow: hidden;
+	background-color: transparent;
+	padding: 0px;
+}
+
+#header
+{
+	cursor: move;
+}
+
+.PopupTitle
+{
+	font-weight: bold;
+	font-size: 14pt;
+	color: #737357;
+	background-color: #e3e3c7;
+	padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+	position: absolute;
+	right: 0px;
+	left: 0px;
+	bottom: 0px;
+	border-top: #d5d59d 1px solid;
+	background-color: #e3e3c7;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border: #737357 1px solid;
+	color: #3b3b1f;
+	background-color: #c7c78f;
+}
+
+#btnOk
+{
+	width: 100px;
+}
+
+.DarkBackground
+{
+	background-color: #eaead1;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #737357;
+	background-color: #e3e3c7;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px;
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #d5d59d 1px solid;
+	border-top: #d5d59d 1px solid;
+	border-left: #d5d59d 1px solid;
+	padding: 3px 5px 3px 5px;
+	color: #737357;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #d5d59d 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight: bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f1f1e3 1px solid;
+	background-color: #f1f1e3;
+}
+
+.PopupSelectionBox
+{
+	border: #ff9933 1px solid !important;
+	background-color: #fffacd !important;
+	cursor: pointer;
+	cursor: hand;
+}
+
+#tdBrowse
+{
+	vertical-align: bottom;
+}
+
+/**
+ * Dialog frame related styles.
+ */
+
+.contents
+{
+	position: absolute;
+	top: 2px;
+	left: 16px;
+	right: 16px;
+	bottom: 20px;
+	background-color: #f1f1e3;
+	overflow: hidden;
+	z-index: 1;
+}
+
+.tl, .tr, .tc, .bl, .br, .bc
+{
+	position: absolute;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+}
+
+* html .tl, * html .tr, * html .tc, * html .bl, * html .br, * html .bc
+{
+	background-image: url(images/sprites.gif);
+}
+
+.ml, .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.png);
+	background-repeat: repeat-y;
+}
+
+* html .ml, * html .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.rtl .ml, .rtl .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.rtl.png);
+	background-repeat: repeat-y;
+}
+
+* html .rtl .ml, * html .rtl .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.tl
+{
+	top: 0px;
+	left: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -16px;
+}
+
+.rtl .tl
+{
+	background-position: -16px -397px;
+}
+
+.tr
+{
+	top: 0px;
+	right: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -76px;
+}
+
+.rtl .tr
+{
+	background-position: -16px -457px;
+}
+
+.tc
+{
+	top: 0px;
+	right: 16px;
+	left: 16px;
+	height: 16px;
+	background-position: 0px -136px;
+	background-repeat: repeat-x;
+}
+
+.ml
+{
+	top: 16px;
+	left: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: 0px 0px;
+}
+
+.mr
+{
+	top: 16px;
+	right: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: -16px 0px;
+}
+
+.bl
+{
+	bottom: 0px;
+	left: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -196px;
+}
+
+.rtl .bl
+{
+	background-position: -16px -517px;
+}
+
+.br
+{
+	bottom: 0px;
+	right: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -263px;
+}
+
+.rtl .br
+{
+	background-position: -16px -584px;
+}
+
+.bc
+{
+	bottom: 0px;
+	right: 30px;
+	left: 30px;
+	height: 51px;
+	background-position: 0px -330px;
+	background-repeat: repeat-x;
+}
+
+/* For IE6. Do not change it. */
+* html .blocker
+{
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	z-index: 12;
+	filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
+}
+
+/* The layer used to cover the dialog when opening a child dialog. */
+.cover
+{
+	position: absolute;
+	top: 0px;
+	left: 14px;
+	right: 14px;
+	bottom: 18px;
+	z-index: 11;
+}
+
+#closeButton
+{
+	position: absolute;
+	right: 0px;
+	top: 0px;
+	margin-top: 5px;
+	margin-right: 10px;
+	width: 20px;
+	height: 20px;
+	cursor: pointer;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+	background-position: -16px -651px;
+}
+
+* html #closeButton
+{
+	cursor: hand;
+	background-image: url(images/sprites.gif);
+}
+
+.rtl #closeButton
+{
+	right: auto;
+	left: 10px;
+	margin-right: 0px;
+}
+
+#closeButton:hover
+{
+	background-position: -16px -687px;
+}
+
+#throbberBlock
+{
+	z-index: 10;
+}
+
+#throbberBlock div
+{
+	float: left;
+	width: 8px;
+	height: 9px;
+	margin-left: 2px;
+	margin-right: 2px;
+	font-size: 1px;	/* IE6 */
+}
+
+/*
+	Color Gradient Generator:
+	http://www.herethere.net/~samson/php/color_gradient/?cbegin=737357&cend=E3E3C7&steps=4
+*/
+
+.throbber_1
+{
+	background-color: #737357;
+}
+
+.throbber_2
+{
+	background-color: #8f8f73;
+}
+
+.throbber_3
+{
+	background-color: #abab8f;
+}
+
+.throbber_4
+{
+	background-color: #c7c7ab;
+}
+
+.throbber_5
+{
+	background-color: #e3e3c7;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/default/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js	(revision 838)
@@ -0,0 +1,110 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ */
+
+(function()
+{
+	// IE6 doens't handle absolute positioning properly (it is always in quirks
+	// mode). This function fixes the sizes and positions of many elements that
+	// compose the skin (this is skin specific).
+	var fixSizes = window.DoResizeFixes = function()
+	{
+		var fckDlg = window.document.body ;
+
+		for ( var i = 0 ; i < fckDlg.childNodes.length ; i++ )
+		{
+			var child = fckDlg.childNodes[i] ;
+			switch ( child.className )
+			{
+				case 'contents' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 ) ;	// -left -right
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 ) ;	// -bottom -top
+					break ;
+
+				case 'blocker' :
+				case 'cover' :
+					child.style.width = Math.max( 0, fckDlg.offsetWidth - 16 - 16 + 4 ) ;	// -left -right + 4
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 20 - 2 + 4 ) ;	// -bottom -top + 4
+					break ;
+
+				case 'tr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					break ;
+
+				case 'tc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 16 - 16 ) ;
+					break ;
+
+				case 'ml' :
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'mr' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 16 ) ;
+					child.style.height = Math.max( 0, fckDlg.clientHeight - 16 - 51 ) ;
+					break ;
+
+				case 'bl' :
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'br' :
+					child.style.left = Math.max( 0, fckDlg.clientWidth - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+
+				case 'bc' :
+					child.style.width = Math.max( 0, fckDlg.clientWidth - 30 - 30 ) ;
+					child.style.top = Math.max( 0, fckDlg.clientHeight - 51 ) ;
+					break ;
+			}
+		}
+	}
+
+	var closeButtonOver = function()
+	{
+		this.style.backgroundPosition = '-16px -687px' ;
+	} ;
+
+	var closeButtonOut = function()
+	{
+		this.style.backgroundPosition = '-16px -651px' ;
+	} ;
+
+	var fixCloseButton = function()
+	{
+		var closeButton = document.getElementById ( 'closeButton' ) ;
+
+		closeButton.onmouseover	= closeButtonOver ;
+		closeButton.onmouseout	= closeButtonOut ;
+	}
+
+	var onLoad = function()
+	{
+		fixSizes() ;
+		fixCloseButton() ;
+
+		window.attachEvent( 'onresize', fixSizes ) ;
+		window.detachEvent( 'onload', onLoad ) ;
+	}
+
+	window.attachEvent( 'onload', onLoad ) ;
+
+})() ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_editor.css	(revision 838)
@@ -0,0 +1,473 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+	padding: 1px;
+	margin: 0;
+	background-color: #ffffff;
+}
+
+#xEditingArea
+{
+	border: #696969 1px solid;
+}
+
+.SourceField
+{
+	padding: 5px;
+	margin: 0px;
+	font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+	background-color: #f7f7f7;
+}
+
+.TB_ToolbarSet
+{
+	padding: 1px;
+	border-top: #efefde 1px outset;
+	border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+    display: inline-table;
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 21px;
+    margin: 2px;
+    background-color: #C6C3BD;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    margin-left: 2px;
+    margin-right: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 27px;
+    background-position: center center;
+}
+
+.TB_End
+{
+	display: none;
+}
+
+.TB_ExpandImg
+{
+	background-image: url(images/toolbar.expand.gif);
+	background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+	background-image: url(images/toolbar.collapse.gif);
+	background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+	background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+	padding: 2px 2px 2px 2px;
+	border: #efefde 1px outset;
+}
+
+.TB_Collapse
+{
+	border: #efefde 1px outset;
+	width: 5px;
+}
+
+.TB_Break
+{
+	height: 27px;
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+	padding: 1px ;
+	margin:1px;
+	height: 21px;
+}
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+	border: #cec6b5 1px solid;
+}
+
+.TB_Button_On
+{
+	border-color: #316ac5;
+	background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+	background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;
+}
+
+.TB_Button_Off, .TB_Combo_Off
+{
+	opacity: 0.70; /* Safari, Opera and Mozilla */
+	filter: alpha(opacity=70); /* IE */
+	/* -moz-opacity: 0.70; Mozilla (Old) */
+}
+
+.TB_Button_Disabled
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 21px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    margin-top: 4px;
+    margin-bottom: 2px;
+    background-repeat: no-repeat;
+}
+
+/* For composed button ( icon + text, icon + arrow ), we must compensate the table */
+.TB_Button_On TABLE .TB_Button_Image,
+.TB_Button_Off TABLE .TB_Button_Image,
+.TB_Button_On_Over TABLE .TB_Button_Image,
+.TB_Button_Off_Over TABLE .TB_Button_Image,
+.TB_Button_Disabled TABLE .TB_Button_Image
+{
+    margin-top: 3px;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f7f7;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #dedede;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8a857d;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #6c6761;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top:1px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    padding-top: 1px ;
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #f7f7f7;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption, .SC_FieldDisabled .TB_ButtonType_Text
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #316ac5 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c1d2ee;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.start.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.start.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.expand.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.expand.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.separator.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.separator.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.collapse.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.collapse.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.end.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.end.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/sprites.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/sprites.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/sprites.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/sprites.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_strip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_strip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/fck_dialog.css	(revision 838)
@@ -0,0 +1,402 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
+ */
+
+html, body
+{
+	background-color: transparent;
+	margin: 0px;
+	padding: 0px;
+}
+
+body
+{
+	padding: 10px;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f7f7f7;
+}
+
+.PopupBody
+{
+	height: 100%;
+	width: 100%;
+	overflow: hidden;
+	background-color: transparent;
+	padding: 0px;
+}
+
+#header
+{
+	cursor: move;
+}
+
+.PopupTitle
+{
+	font-weight: bold;
+	font-size: 14pt;
+	color: #504845;
+	background-color: #dedede;
+	padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+	position: absolute;
+	right: 0px;
+	left: 0px;
+	bottom: 0px;
+	border-top: #cec6b5 1px solid;
+	background-color: #DEDEDE;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border: #7a7261 1px solid;
+	color: #504845;
+	background-color: #cec6b5;
+}
+
+#btnOk
+{
+	width: 100px;
+}
+
+.DarkBackground
+{
+	background-color: #f2f2f2;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #504845;
+	background-color: #DEDEDE;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px ;
+	border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #cec6b5 1px solid;
+	border-top: #cec6b5 1px solid;
+	border-left: #cec6b5 1px solid;
+	padding: 3px 5px 3px 5px;
+	color: #504845;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #cec6b5 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight:bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f1f1e3 1px solid;
+	background-color: #f7f7f7;
+}
+
+.PopupSelectionBox
+{
+	border: #a9a9a9 1px solid !important;
+	background-color: #dcdcdc !important;
+	cursor: pointer;
+	cursor: hand;
+}
+
+#tdBrowse
+{
+	vertical-align: bottom;
+}
+
+/**
+ * Dialog frame related styles.
+ */
+
+.contents
+{
+	position: absolute;
+	top: 2px;
+	left: 16px;
+	right: 16px;
+	bottom: 20px;
+	background-color: #f7f7f7;
+	overflow: hidden;
+	z-index: 1;
+}
+
+.tl, .tr, .tc, .bl, .br, .bc
+{
+	position: absolute;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+}
+
+* html .tl, * html .tr, * html .tc, * html .bl, * html .br, * html .bc
+{
+	background-image: url(images/sprites.gif);
+}
+
+.ml, .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.png);
+	background-repeat: repeat-y;
+}
+
+* html .ml, * html .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.rtl .ml, .rtl .mr
+{
+	position: absolute;
+	background-image: url(images/dialog.sides.rtl.png);
+	background-repeat: repeat-y;
+}
+
+* html .rtl .ml, * html .rtl .mr
+{
+	background-image: url(images/dialog.sides.gif);
+}
+
+.tl
+{
+	top: 0px;
+	left: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -16px;
+}
+
+.rtl .tl
+{
+	background-position: -16px -397px;
+}
+
+.tr
+{
+	top: 0px;
+	right: 0px;
+	width: 16px;
+	height: 16px;
+	background-position: -16px -76px;
+}
+
+.rtl .tr
+{
+	background-position: -16px -457px;
+}
+
+.tc
+{
+	top: 0px;
+	right: 16px;
+	left: 16px;
+	height: 16px;
+	background-position: 0px -136px;
+	background-repeat: repeat-x;
+}
+
+.ml
+{
+	top: 16px;
+	left: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: 0px 0px;
+}
+
+.mr
+{
+	top: 16px;
+	right: 0px;
+	width: 16px;
+	bottom: 51px;
+	background-position: -16px 0px;
+}
+
+.bl
+{
+	bottom: 0px;
+	left: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -196px;
+}
+
+.rtl .bl
+{
+	background-position: -16px -517px;
+}
+
+.br
+{
+	bottom: 0px;
+	right: 0px;
+	width: 30px;
+	height: 51px;
+	background-position: -16px -263px;
+}
+
+.rtl .br
+{
+	background-position: -16px -584px;
+}
+
+.bc
+{
+	bottom: 0px;
+	right: 30px;
+	left: 30px;
+	height: 51px;
+	background-position: 0px -330px;
+	background-repeat: repeat-x;
+}
+
+/* For IE6. Do not change it. */
+* html .blocker
+{
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	z-index: 12;
+	filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
+}
+
+/* The layer used to cover the dialog when opening a child dialog. */
+.cover
+{
+	position: absolute;
+	top: 0px;
+	left: 14px;
+	right: 14px;
+	bottom: 18px;
+	z-index: 11;
+}
+
+#closeButton
+{
+	position: absolute;
+	right: 0px;
+	top: 0px;
+	margin-top: 5px;
+	margin-right: 10px;
+	width: 20px;
+	height: 20px;
+	cursor: pointer;
+	background-image: url(images/sprites.png);
+	background-repeat: no-repeat;
+	background-position: -16px -651px;
+}
+
+* html #closeButton
+{
+	cursor: hand;
+	background-image: url(images/sprites.gif);
+}
+
+.rtl #closeButton
+{
+	right: auto;
+	left: 10px;
+	margin-right: 0px;
+}
+
+#closeButton:hover
+{
+	background-position: -16px -687px;
+}
+
+#throbberBlock
+{
+	z-index: 10;
+}
+
+#throbberBlock div
+{
+	float: left;
+	width: 8px;
+	height: 9px;
+	margin-left: 2px;
+	margin-right: 2px;
+	font-size: 1px;	/* IE6 */
+}
+
+/*
+	Color Gradient Generator:
+	http://www.herethere.net/~samson/php/color_gradient/?cbegin=504845&cend=DEDEDE&steps=4
+*/
+
+.throbber_1
+{
+	background-color: #504845;
+}
+
+.throbber_2
+{
+	background-color: #736D6B;
+}
+
+.throbber_3
+{
+	background-color: #979391;
+}
+
+.throbber_4
+{
+	background-color: #BAB8B7;
+}
+
+.throbber_5
+{
+	background-color: #DEDEDE;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/silver/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/skins/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc	(revision 838)
@@ -0,0 +1,15 @@
+<public:component lightweight="true">
+
+<script language="javascript">
+
+function CancelEvent()
+{
+	return false ;
+}
+
+this.onresizestart = CancelEvent ;
+this.onbeforeeditfocus = CancelEvent ;
+
+</script>
+
+</public:component>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc	(revision 838)
@@ -0,0 +1,36 @@
+<public:component lightweight="true">
+
+<public:attach event="oncontentready" onevent="ShowBorders()" />
+<public:attach event="onpropertychange" onevent="OnPropertyChange()" />
+
+<script language="javascript">
+
+var oClassRegex = /\s*FCK__ShowTableBorders/ ;
+
+function ShowBorders()
+{
+	if ( this.border == 0 )
+	{
+		if ( !oClassRegex.test( this.className ) )
+			this.className += ' FCK__ShowTableBorders' ;
+	}
+	else
+	{
+		if ( oClassRegex.test( this.className ) )
+		{
+			this.className = this.className.replace( oClassRegex, '' ) ;
+			if ( this.className.length == 0 )
+				this.removeAttribute( 'className', 0 ) ;
+		}
+	}
+}
+
+function OnPropertyChange()
+{
+	if ( event.propertyName == 'border' || event.propertyName == 'className' )
+		ShowBorders.call(this) ;
+}
+
+</script>
+
+</public:component>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/behaviors/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_div.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_div.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_address.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_address.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_pre.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_pre.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_plugin.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_plugin.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_hiddenfield.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_hiddenfield.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_p.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_p.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_anchor.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_anchor.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_blockquote.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_blockquote.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h1.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_flashlogo.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_flashlogo.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h2.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h2.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h3.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h3.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h4.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h4.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_pagebreak.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/fck_pagebreak.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h5.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h5.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h6.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/block_h6.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_internal.css	(revision 838)
@@ -0,0 +1,199 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This CSS Style Sheet defines rules used by the editor for its internal use.
+ */
+
+/* #########
+ *  WARNING
+ * #########
+ * When changing this file, the minified version of it must be updated in the
+ * fckeditor.html file (see FCK_InternalCSS).
+ */
+
+/* Fix to allow putting the caret at the end of the content in Firefox if
+   clicking below the content. */
+html
+{
+	min-height: 100%;
+}
+
+table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th
+{
+	border: #d3d3d3 1px solid;
+}
+
+form
+{
+	border: 1px dotted #FF0000;
+	padding: 2px;
+}
+
+.FCK__Flash
+{
+	border: #a9a9a9 1px solid;
+	background-position: center center;
+	background-image: url(images/fck_flashlogo.gif);
+	background-repeat: no-repeat;
+	width: 80px;
+	height: 80px;
+}
+
+.FCK__UnknownObject
+{
+	border: #a9a9a9 1px solid;
+	background-position: center center;
+	background-image: url(images/fck_plugin.gif);
+	background-repeat: no-repeat;
+	width: 80px;
+	height: 80px;
+}
+
+/* Empty anchors images */
+.FCK__Anchor
+{
+	border: 1px dotted #00F;
+	background-position: center center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	width: 16px;
+	height: 15px;
+	vertical-align: middle;
+}
+
+/* Anchors with content */
+.FCK__AnchorC
+{
+	border: 1px dotted #00F;
+	background-position: 1px center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+/* Any anchor for non-IE, if we combine it with the previous rule IE ignores all. */
+a[name]
+{
+	border: 1px dotted #00F;
+	background-position: 0 center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+.FCK__PageBreak
+{
+	background-position: center center;
+	background-image: url(images/fck_pagebreak.gif);
+	background-repeat: no-repeat;
+	clear: both;
+	display: block;
+	float: none;
+	width: 100%;
+	border-top: #999999 1px dotted;
+	border-bottom: #999999 1px dotted;
+	border-right: 0px;
+	border-left: 0px;
+	height: 5px;
+}
+
+/* Hidden fields */
+.FCK__InputHidden
+{
+	width: 19px;
+	height: 18px;
+	background-image: url(images/fck_hiddenfield.gif);
+	background-repeat: no-repeat;
+	vertical-align: text-bottom;
+	background-position: center center;
+}
+
+.FCK__ShowBlocks p,
+.FCK__ShowBlocks div,
+.FCK__ShowBlocks pre,
+.FCK__ShowBlocks address,
+.FCK__ShowBlocks blockquote,
+.FCK__ShowBlocks h1,
+.FCK__ShowBlocks h2,
+.FCK__ShowBlocks h3,
+.FCK__ShowBlocks h4,
+.FCK__ShowBlocks h5,
+.FCK__ShowBlocks h6
+{
+	background-repeat: no-repeat;
+	border: 1px dotted gray;
+	padding-top: 8px;
+	padding-left: 8px;
+}
+
+.FCK__ShowBlocks p
+{
+	background-image: url(images/block_p.png);
+}
+
+.FCK__ShowBlocks div
+{
+	background-image: url(images/block_div.png);
+}
+
+.FCK__ShowBlocks pre
+{
+	background-image: url(images/block_pre.png);
+}
+
+.FCK__ShowBlocks address
+{
+	background-image: url(images/block_address.png);
+}
+
+.FCK__ShowBlocks blockquote
+{
+	background-image: url(images/block_blockquote.png);
+}
+
+.FCK__ShowBlocks h1
+{
+	background-image: url(images/block_h1.png);
+}
+
+.FCK__ShowBlocks h2
+{
+	background-image: url(images/block_h2.png);
+}
+
+.FCK__ShowBlocks h3
+{
+	background-image: url(images/block_h3.png);
+}
+
+.FCK__ShowBlocks h4
+{
+	background-image: url(images/block_h4.png);
+}
+
+.FCK__ShowBlocks h5
+{
+	background-image: url(images/block_h5.png);
+}
+
+.FCK__ShowBlocks h6
+{
+	background-image: url(images/block_h6.png);
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_editorarea.css	(revision 838)
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the default CSS file used by the editor area. It defines the
+ * initial font of the editor and background color.
+ *
+ * A user can configure the editor to use another CSS file. Just change
+ * the value of the FCKConfig.EditorAreaCSS key in the configuration
+ * file.
+ */
+
+/*
+    The "body" styles should match your editor web site, mainly regarding
+    background color and font family and size.
+*/
+
+body
+{
+	background-color: #ffffff;
+	padding: 5px 5px 5px 5px;
+	margin: 0px;
+}
+
+body, td
+{
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 12px;
+}
+
+a[href]
+{
+	color: -moz-hyperlinktext !important;		/* For Firefox... mark as important, otherwise it becomes black */
+	text-decoration: -moz-anchor-decoration;	/* For Firefox 3, otherwise no underline will be used */
+}
+
+/*
+	Just uncomment the following block if you want to avoid spaces between
+	paragraphs. Remember to apply the same style in your output front end page.
+*/
+
+/*
+p, ul, li
+{
+	margin-top: 0px;
+	margin-bottom: 0px;
+}
+*/
+
+/*
+    The following are some sample styles used in the "Styles" toolbar command.
+    You should instead remove them, and include the styles used by the site
+    you are using the editor in.
+*/
+
+.Bold
+{
+	font-weight: bold;
+}
+
+.Title
+{
+	font-weight: bold;
+	font-size: 18px;
+	color: #cc3300;
+}
+
+.Code
+{
+	border: #8b4513 1px solid;
+	padding-right: 5px;
+	padding-left: 5px;
+	color: #000066;
+	font-family: 'Courier New' , Monospace;
+	background-color: #ff9933;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css	(revision 838)
@@ -0,0 +1,49 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This CSS Style Sheet defines the rules to show table borders on Gecko.
+ */
+
+/* #########
+ *  WARNING
+ * #########
+ * When changing this file, the minified version of it must be updated in the
+ * fckeditor.html file (see FCK_ShowTableBordersCSS).
+ */
+
+/* For tables with the "border" attribute set to "0" */
+table[border="0"],
+table[border="0"] > tr > td, table[border="0"] > tr > th,
+table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th,
+table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th,
+table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th
+{
+	border: #d3d3d3 1px dotted ;
+}
+
+/* For tables with no "border" attribute set */
+table:not([border]),
+table:not([border]) > tr > td, table:not([border]) > tr > th,
+table:not([border]) > tbody > tr > td, table:not([border]) > tbody > tr > th,
+table:not([border]) > thead > tr > td, table:not([border]) > thead > tr > th,
+table:not([border]) > tfoot > tr > td, table:not([border]) > tfoot > tr > th
+{
+	border: #d3d3d3 1px dotted ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(revision 838)
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page shows the list of available resource types.
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+function SetResourceType( type )
+{
+	window.parent.frames["frmFolders"].SetResourceType( type ) ;
+}
+
+var aTypes = [
+	['File','File'],
+	['Image','Image'],
+	['Flash','Flash'],
+	['Media','Media']
+] ;
+
+window.onload = function()
+{
+	/* HIDE RESOURCE TYPES - NOT REQUIRED USED IN WEBSITE BAKER
+	for ( var i = 0 ; i < aTypes.length ; i++ )
+	{
+		if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
+			AddSelectOption( document.getElementById('cmbType'), aTypes[i][1], aTypes[i][0] ) ;
+	}
+	*/
+}
+
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<!-- HIDE RESOURCE TYPES - NOT USED IN WEBSITE BAKER 	
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td nowrap>
+					Resource Type<BR>
+					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+					</select>
+				</td>
+			</tr>
+		</table>
+		-->
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/spacer.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/spacer.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder32.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder32.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/js.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/js.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/html.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/html.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.html	(revision 838)
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page compose the File Browser dialog frameset.
+-->
+<html>
+	<head>
+		<title>FCKeditor - Resources Browser</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/fckxml.js"></script>
+		<script language="javascript">
+// Automatically detect the correct document.domain (#1919).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+function GetUrlParam( paramName )
+{
+	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
+	var oMatch = oRegex.exec( window.top.location.search ) ;
+
+	if ( oMatch && oMatch.length > 1 )
+		return decodeURIComponent( oMatch[1] ) ;
+	else
+		return '' ;
+}
+
+var oConnector = new Object() ;
+oConnector.CurrentFolder	= '/' ;
+
+var sConnUrl = GetUrlParam( 'Connector' ) ;
+
+// Gecko has some problems when using relative URLs (not starting with slash).
+if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )
+	sConnUrl = window.location.href.replace( /browser.html.*$/, '' ) + sConnUrl ;
+
+oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' ) ;
+
+var sServerPath = GetUrlParam( 'ServerPath' ) ;
+if ( sServerPath.length > 0 )
+	oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;
+
+oConnector.ResourceType		= GetUrlParam( 'Type' ) ;
+oConnector.ShowAllTypes		= ( oConnector.ResourceType.length == 0 ) ;
+
+if ( oConnector.ShowAllTypes )
+	oConnector.ResourceType = 'File' ;
+
+oConnector.SendCommand = function( command, params, callBackFunction )
+{
+	var sUrl = this.ConnectorUrl + 'Command=' + command ;
+	sUrl += '&Type=' + this.ResourceType ;
+	sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;
+
+	if ( params ) sUrl += '&' + params ;
+
+	// Add a random salt to avoid getting a cached version of the command execution
+	sUrl += '&uuid=' + new Date().getTime() ;
+
+	var oXML = new FCKXml() ;
+
+	if ( callBackFunction )
+		oXML.LoadUrl( sUrl, callBackFunction ) ;	// Asynchronous load.
+	else
+		return oXML.LoadUrl( sUrl ) ;
+
+	return null ;
+}
+
+oConnector.CheckError = function( responseXml )
+{
+	var iErrorNumber = 0 ;
+	var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;
+
+	if ( oErrorNode )
+	{
+		iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ;
+
+		switch ( iErrorNumber )
+		{
+			case 0 :
+				break ;
+			case 1 :	// Custom error. Message placed in the "text" attribute.
+				alert( oErrorNode.attributes.getNamedItem('text').value ) ;
+				break ;
+			case 101 :
+				alert( 'Folder already exists' ) ;
+				break ;
+			case 102 :
+				alert( 'Invalid folder name' ) ;
+				break ;
+			case 103 :
+				alert( 'You have no permissions to create the folder' ) ;
+				break ;
+			case 110 :
+				alert( 'Unknown error creating folder' ) ;
+				break ;
+			default :
+				alert( 'Error on your request. Error number: ' + iErrorNumber ) ;
+				break ;
+		}
+	}
+	return iErrorNumber ;
+}
+
+var oIcons = new Object() ;
+
+oIcons.AvailableIconsArray = [
+	'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
+	'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
+
+oIcons.AvailableIcons = new Object() ;
+
+for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
+	oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;
+
+oIcons.GetIcon = function( fileName )
+{
+	var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase() ;
+
+	if ( this.AvailableIcons[ sExtension ] == true )
+		return sExtension ;
+	else
+		return 'default.icon' ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	if (errorNumber == "1")
+		window.frames['frmUpload'].OnUploadCompleted( errorNumber, customMsg ) ;
+	else
+		window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName ) ;
+}
+
+		</script>
+	</head>
+	<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">
+		<frameset rows="50,*" framespacing="0">
+			<frame src="frmresourcetype.html" scrolling="no" frameborder="0">
+			<frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="1">
+		</frameset>
+		<frameset rows="50,*,50" framespacing="0">
+			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="0">
+			<frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="1">
+			<frameset cols="150,*,0" framespacing="0" frameborder="0">
+				<frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="0">
+				<frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="0">
+				<frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">
+			</frameset>
+		</frameset>
+	</frameset>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html	(revision 838)
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page shows the list of folders available in the parent folder
+ * of the current folder.
+-->
+<html>
+	<head>
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+var sActiveFolder ;
+
+var bIsLoaded = false ;
+var iIntervalId ;
+
+var oListManager = new Object() ;
+
+oListManager.Init = function()
+{
+	this.Table = document.getElementById('tableFiles') ;
+	this.UpRow = document.getElementById('trUp') ;
+
+	this.TableRows = new Object() ;
+}
+
+oListManager.Clear = function()
+{
+	// Remove all other rows available.
+	while ( this.Table.rows.length > 1 )
+		this.Table.deleteRow(1) ;
+
+	// Reset the TableRows collection.
+	this.TableRows = new Object() ;
+}
+
+oListManager.AddItem = function( folderName, folderPath )
+{
+	// Create the new row.
+	var oRow = this.Table.insertRow(-1) ;
+	oRow.className = 'FolderListFolder' ;
+
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
+
+	// Add the folder icon cell.
+	var oCell = oRow.insertCell(-1) ;
+	oCell.width = 16 ;
+	oCell.innerHTML = sLink + '<img alt="" src="images/spacer.gif" width="16" height="16" border="0"></a>' ;
+
+	// Add the folder name cell.
+	oCell = oRow.insertCell(-1) ;
+	oCell.noWrap = true ;
+	oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;
+
+	this.TableRows[ folderPath ] = oRow ;
+}
+
+oListManager.ShowUpFolder = function( upFolderPath )
+{
+	this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;
+
+	if ( upFolderPath != null )
+	{
+		document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
+		{
+			LoadFolders( upFolderPath ) ;
+			return false ;
+		}
+	}
+}
+
+function CheckLoaded()
+{
+	if ( window.top.IsLoadedActualFolder
+		&& window.top.IsLoadedCreateFolder
+		&& window.top.IsLoadedUpload
+		&& window.top.IsLoadedResourcesList )
+	{
+		window.clearInterval( iIntervalId ) ;
+		bIsLoaded = true ;
+		OpenFolder( sActiveFolder ) ;
+	}
+}
+
+function OpenFolder( folderPath )
+{
+	sActiveFolder = folderPath ;
+
+	if ( ! bIsLoaded )
+	{
+		if ( ! iIntervalId )
+			iIntervalId = window.setInterval( CheckLoaded, 100 ) ;
+		return ;
+	}
+
+	// Change the style for the select row (to show the opened folder).
+	for ( var sFolderPath in oListManager.TableRows )
+	{
+		oListManager.TableRows[ sFolderPath ].className =
+			( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;
+	}
+
+	// Set the current folder in all frames.
+	window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+	window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+	window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+
+	// Load the resources list for this folder.
+	window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;
+}
+
+function LoadFolders( folderPath )
+{
+	// Clear the folders list.
+	oListManager.Clear() ;
+
+	// Get the parent folder path.
+	var sParentFolderPath ;
+	if ( folderPath != '/' )
+		sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 ) ;
+
+	// Show/Hide the Up Folder.
+	oListManager.ShowUpFolder( sParentFolderPath ) ;
+
+	if ( folderPath != '/' )
+	{
+		sActiveFolder = folderPath ;
+		oConnector.CurrentFolder = sParentFolderPath ;
+		oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;
+	}
+	else
+		OpenFolder( '/' ) ;
+}
+
+function GetFoldersCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) != 0 )
+		return ;
+
+	// Get the current folder path.
+	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
+	var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
+
+	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
+
+	for ( var i = 0 ; i < oNodes.length ; i++ )
+	{
+		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
+		oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + '/' ) ;
+	}
+
+	OpenFolder( sActiveFolder ) ;
+}
+
+function SetResourceType( type )
+{
+	oConnector.ResourceType = type ;
+	LoadFolders( '/' ) ;
+}
+
+window.onload = function()
+{
+	oListManager.Init() ;
+	LoadFolders( '/' ) ;
+}
+		</script>
+	</head>
+	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
+		<table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr id="trUp" style="DISPLAY: none">
+				<td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>
+				<td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(revision 838)
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Page used to create new folders in the current folder.
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	oConnector.ResourceType = resourceType ;
+	oConnector.CurrentFolder = folderPath ;
+}
+
+function CreateFolder()
+{
+	var sFolderName ;
+
+	while ( true )
+	{
+		sFolderName = prompt( 'Type the name of the new folder:', '' ) ;
+
+		if ( sFolderName == null )
+			return ;
+		else if ( sFolderName.length == 0 )
+			alert( 'Please type the folder name' ) ;
+		else
+			break ;
+	}
+
+	oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ;
+}
+
+function CreateFolderCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) == 0 )
+		window.parent.frames['frmResourcesList'].Refresh() ;
+
+	/*
+	// Get the current folder path.
+	var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
+	var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
+
+	switch ( iErrorNumber )
+	{
+		case 0 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			break ;
+		case 101 :
+			alert( 'Folder already exists' ) ;
+			break ;
+		case 102 :
+			alert( 'Invalid folder name' ) ;
+			break ;
+		case 103 :
+			alert( 'You have no permissions to create the folder' ) ;
+			break ;
+		case 110 :
+			alert( 'Unknown error creating folder' ) ;
+			break ;
+		default :
+			alert( 'Error creating folder. Error number: ' + iErrorNumber ) ;
+			break ;
+	}
+	*/
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedCreateFolder = true ;
+}
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
+						<table cellSpacing="0" cellPadding="0" border="0">
+							<tr>
+								<td><img height="16" alt="" src="images/Folder.gif" width="16"></td>
+								<td>&nbsp;</td>
+								<td nowrap>Create New Folder</td>
+							</tr>
+						</table>
+					</button>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html.org	(revision 838)
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page shows the list of available resource types.
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+function SetResourceType( type )
+{
+	window.parent.frames["frmFolders"].SetResourceType( type ) ;
+}
+
+var aTypes = [
+	['File','File'],
+	['Image','Image'],
+	['Flash','Flash'],
+	['Media','Media']
+] ;
+
+window.onload = function()
+{
+	for ( var i = 0 ; i < aTypes.length ; i++ )
+	{
+		if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
+			AddSelectOption( document.getElementById('cmbType'), aTypes[i][1], aTypes[i][0] ) ;
+	}
+}
+
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td nowrap>
+					Resource Type<BR>
+					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+					</select>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/browser.css	(revision 838)
@@ -0,0 +1,89 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * CSS styles used by all pages that compose the File Browser.
+ */
+
+body
+{
+	background-color: #f1f1e3;
+}
+
+form
+{
+	margin: 0px 0px 0px 0px ;
+	padding: 0px 0px 0px 0px ;
+}
+
+.Frame
+{
+	background-color: #f1f1e3;
+	border-color: #f1f1e3;
+	border-right: thin inset;
+	border-top: thin inset;
+	border-left: thin inset;
+	border-bottom: thin inset;
+}
+
+body.FileArea
+{
+
+	background-color: #ffffff;
+	margin: 10px;
+}
+
+body, td, input, select
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+.ActualFolder
+{
+	font-weight: bold;
+	font-size: 14px;
+}
+
+.PopupButtons
+{
+	border-top: #d5d59d 1px solid;
+	background-color: #e3e3c7;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button, button
+{
+	border-right: #737357 1px solid;
+	border-top: #737357 1px solid;
+	border-left: #737357 1px solid;
+	color: #3b3b1f;
+	border-bottom: #737357 1px solid;
+	background-color: #c7c78f;
+}
+
+.FolderListCurrentFolder img
+{
+	background-image: url(images/FolderOpened.gif);
+}
+
+.FolderListFolder img
+{
+	background-image: url(images/Folder.gif);
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html	(revision 838)
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Page used to upload new files in the current folder.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<title>File Upload</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet" />
+		<script type="text/javascript" src="js/common.js"></script>
+		<script type="text/javascript">
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
+	sUrl += '&Type=' + resourceType ;
+	sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ;
+
+	document.getElementById('frmUpload').action = sUrl ;
+}
+
+function OnSubmit()
+{
+	if ( document.getElementById('NewFile').value.length == 0 )
+	{
+		alert( 'Please select a file from your computer' ) ;
+		return false ;
+	}
+
+	// Set the interface elements.
+	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
+	document.getElementById('btnUpload').disabled = true ;
+
+	return true ;
+}
+
+function OnUploadCompleted( errorNumber, data )
+{
+	// Reset the Upload Worker Frame.
+	window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;
+
+	// Reset the upload form (On IE we must do a little trick to avoid problems).
+	if ( document.all )
+		document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
+	else
+		document.getElementById('frmUpload').reset() ;
+
+	// Reset the interface elements.
+	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
+	document.getElementById('btnUpload').disabled = false ;
+
+	switch ( errorNumber )
+	{
+		case 0 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			break ;
+		case 1 :	// Custom error.
+			alert( data ) ;
+			break ;
+		case 201 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedUpload = true ;
+}
+		</script>
+	</head>
+	<body bottommargin="0" topmargin="0">
+		<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
+			<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+				<tr>
+					<td nowrap="nowrap">
+						<span id="eUploadMessage">Upload a new file in this folder</span><br>
+						<table cellspacing="0" cellpadding="0" width="100%" border="0">
+							<tr>
+								<td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>
+								<td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(revision 838)
@@ -0,0 +1,129 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKXml object that is used for XML data calls
+ * and XML processing.
+ *
+ * This script is shared by almost all pages that compose the
+ * File Browser frameset.
+ */
+
+var FCKXml = function()
+{}
+
+FCKXml.prototype.GetHttpRequest = function()
+{
+	// Gecko / IE7
+	try { return new XMLHttpRequest(); }
+	catch(e) {}
+
+	// IE6
+	try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }
+	catch(e) {}
+
+	// IE5
+	try { return new ActiveXObject( 'Microsoft.XMLHTTP' ) ; }
+	catch(e) {}
+
+	return null ;
+}
+
+FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
+{
+	var oFCKXml = this ;
+
+	var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
+
+	var oXmlHttp = this.GetHttpRequest() ;
+
+	oXmlHttp.open( "GET", urlToCall, bAsync ) ;
+
+	if ( bAsync )
+	{
+		oXmlHttp.onreadystatechange = function()
+		{
+			if ( oXmlHttp.readyState == 4 )
+			{
+				if ( ( oXmlHttp.status != 200 && oXmlHttp.status != 304 ) || oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null )
+				{
+					alert( 'The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' +
+							'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')\n\n' +
+							'Requested URL:\n' + urlToCall + '\n\n' +
+							'Response text:\n' + oXmlHttp.responseText ) ;
+					return ;
+				}
+
+				oFCKXml.DOMDocument = oXmlHttp.responseXML ;
+				asyncFunctionPointer( oFCKXml ) ;
+			}
+		}
+	}
+
+	oXmlHttp.send( null ) ;
+
+	if ( ! bAsync )
+	{
+		if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+			this.DOMDocument = oXmlHttp.responseXML ;
+		else
+		{
+			alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+		}
+	}
+}
+
+FCKXml.prototype.SelectNodes = function( xpath )
+{
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
+		return this.DOMDocument.selectNodes( xpath ) ;
+	else					// Gecko
+	{
+		var aNodeArray = new Array();
+
+		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
+				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
+		if ( xPathResult )
+		{
+			var oNode = xPathResult.iterateNext() ;
+ 			while( oNode )
+ 			{
+ 				aNodeArray[aNodeArray.length] = oNode ;
+ 				oNode = xPathResult.iterateNext();
+ 			}
+		}
+		return aNodeArray ;
+	}
+}
+
+FCKXml.prototype.SelectSingleNode = function( xpath )
+{
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
+		return this.DOMDocument.selectSingleNode( xpath ) ;
+	else					// Gecko
+	{
+		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
+				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
+
+		if ( xPathResult && xPathResult.singleNodeValue )
+			return xPathResult.singleNodeValue ;
+		else
+			return null ;
+	}
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js	(revision 838)
@@ -0,0 +1,87 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Common objects and functions shared by all pages that compose the
+ * File Browser dialog window.
+ */
+
+// Automatically detect the correct document.domain (#1919).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.top.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+function AddSelectOption( selectElement, optionText, optionValue )
+{
+	var oOption = document.createElement("OPTION") ;
+
+	oOption.text	= optionText ;
+	oOption.value	= optionValue ;
+
+	selectElement.options.add(oOption) ;
+
+	return oOption ;
+}
+
+var oConnector	= window.parent.oConnector ;
+var oIcons		= window.parent.oIcons ;
+
+
+function StringBuilder( value )
+{
+    this._Strings = new Array( value || '' ) ;
+}
+
+StringBuilder.prototype.Append = function( value )
+{
+    if ( value )
+        this._Strings.push( value ) ;
+}
+
+StringBuilder.prototype.ToString = function()
+{
+    return this._Strings.join( '' ) ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/js/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(revision 838)
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page shows the actual folder path.
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript">
+// Automatically detect the correct document.domain (#1919).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.top.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+function OnResize()
+{
+	divName.style.width = "1px" ;
+	divName.style.width = tdName.offsetWidth + "px" ;
+}
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	document.getElementById('tdName').innerHTML = folderPath ;
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedActualFolder = true ;
+}
+
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<button style="WIDTH: 100%" type="button">
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td><img height="32" alt="" src="images/FolderOpened32.gif" width="32"></td>
+								<td>&nbsp;</td>
+								<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
+								<td>&nbsp;</td>
+								<td><img height="8" src="images/ButtonArrow.gif" width="12"></td>
+								<td>&nbsp;</td>
+							</tr>
+						</table>
+					</button>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(revision 838)
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page shows all resources available in a folder in the File Browser.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<link href="browser.css" type="text/css" rel="stylesheet" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<script type="text/javascript" src="js/common.js"></script>
+	<script type="text/javascript">
+
+var oListManager = new Object() ;
+
+oListManager.Clear = function()
+{
+	document.body.innerHTML = '' ;
+}
+
+function ProtectPath(path)
+{
+	path = path.replace( /\\/g, '\\\\') ;
+	path = path.replace( /'/g, '\\\'') ;
+	return path ;
+}
+
+oListManager.GetFolderRowHtml = function( folderName, folderPath )
+{
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath( folderPath ) + '\');return false;">' ;
+
+	return '<tr>' +
+			'<td width="16">' +
+				sLink +
+				'<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' +
+			'<\/td><td nowrap colspan="2">&nbsp;' +
+				sLink +
+				folderName +
+				'<\/a>' +
+		'<\/td><\/tr>' ;
+}
+
+oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
+{
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath( fileUrl ) + '\');return false;">' ;
+
+	// Get the file icon.
+	var sIcon = oIcons.GetIcon( fileName ) ;
+
+	return '<tr>' +
+			'<td width="16">' +
+				sLink +
+				'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' +
+			'<\/td><td>&nbsp;' +
+				sLink +
+				fileName +
+				'<\/a>' +
+			'<\/td><td align="right" nowrap>&nbsp;' +
+				fileSize +
+				' KB' +
+		'<\/td><\/tr>' ;
+}
+
+function OpenFolder( folderPath )
+{
+	// Load the resources list for this folder.
+	window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;
+}
+
+function OpenFile( fileUrl )
+{
+	window.top.opener.SetUrl( encodeURI( fileUrl ).replace( '#', '%23' ) ) ;
+	window.top.close() ;
+	window.top.opener.focus() ;
+}
+
+function LoadResources( resourceType, folderPath )
+{
+	oListManager.Clear() ;
+	oConnector.ResourceType = resourceType ;
+	oConnector.CurrentFolder = folderPath ;
+	oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
+}
+
+function Refresh()
+{
+	LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
+}
+
+function GetFoldersAndFilesCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) != 0 )
+		return ;
+
+	// Get the current folder path.
+	var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
+	if ( oFolderNode == null )
+	{
+		alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' ) ;
+		return ;
+	}
+	var sCurrentFolderPath	= oFolderNode.attributes.getNamedItem('path').value ;
+	var sCurrentFolderUrl	= oFolderNode.attributes.getNamedItem('url').value ;
+
+//	var dTimer = new Date() ;
+
+	var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ;
+
+	// Add the Folders.
+	var oNodes ;
+	oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
+	for ( var i = 0 ; i < oNodes.length ; i++ )
+	{
+		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
+		oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ;
+	}
+
+	// Add the Files.
+	oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
+	for ( var j = 0 ; j < oNodes.length ; j++ )
+	{
+		var oNode = oNodes[j] ;
+		var sFileName = oNode.attributes.getNamedItem('name').value ;
+		var sFileSize = oNode.attributes.getNamedItem('size').value ;
+
+		// Get the optional "url" attribute. If not available, build the url.
+		var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url') ;
+		var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ;
+
+		oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ;
+	}
+
+	oHtml.Append( '<\/table>' ) ;
+
+	document.body.innerHTML = oHtml.ToString() ;
+
+//	window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
+
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedResourcesList = true ;
+}
+	</script>
+</head>
+<body class="FileArea">
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/browser/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html	(revision 838)
@@ -0,0 +1,30 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the File Browser connectors.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Connectors Tests</title>
+</head>
+<body>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php	(revision 838)
@@ -0,0 +1,87 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the File Manager Connector for PHP.
+ */
+
+ob_start() ;
+
+require('./config.php') ;
+require('./util.php') ;
+require('./io.php') ;
+require('./basexml.php') ;
+require('./commands.php') ;
+require('./phpcompat.php') ;
+
+if ( !$Config['Enabled'] )
+	SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' ) ;
+
+DoResponse() ;
+
+function DoResponse()
+{
+    if (!isset($_GET)) {
+        global $_GET;
+    }
+	if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
+		return ;
+
+	// Get the main request informaiton.
+	$sCommand		= $_GET['Command'] ;
+	$sResourceType	= $_GET['Type'] ;
+	$sCurrentFolder	= GetCurrentFolder() ;
+
+	// Check if it is an allowed command
+	if ( ! IsAllowedCommand( $sCommand ) )
+		SendError( 1, 'The "' . $sCommand . '" command isn\'t allowed' ) ;
+
+	// Check if it is an allowed type.
+	if ( !IsAllowedType( $sResourceType ) )
+		SendError( 1, 'Invalid type specified' ) ;
+
+	// File Upload doesn't have to Return XML, so it must be intercepted before anything.
+	if ( $sCommand == 'FileUpload' )
+	{
+		FileUpload( $sResourceType, $sCurrentFolder, $sCommand ) ;
+		return ;
+	}
+
+	CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder ) ;
+
+	// Execute the required command.
+	switch ( $sCommand )
+	{
+		case 'GetFolders' :
+			GetFolders( $sResourceType, $sCurrentFolder ) ;
+			break ;
+		case 'GetFoldersAndFiles' :
+			GetFoldersAndFiles( $sResourceType, $sCurrentFolder ) ;
+			break ;
+		case 'CreateFolder' :
+			CreateFolder( $sResourceType, $sCurrentFolder ) ;
+			break ;
+	}
+
+	CreateXmlFooter() ;
+
+	exit ;
+}
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php	(revision 838)
@@ -0,0 +1,93 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * These functions define the base of the XML response sent by the PHP
+ * connector.
+ */
+
+function SetXmlHeaders()
+{
+	ob_end_clean() ;
+
+	// Prevent the browser from caching the result.
+	// Date in the past
+	header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ;
+	// always modified
+	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ;
+	// HTTP/1.1
+	header('Cache-Control: no-store, no-cache, must-revalidate') ;
+	header('Cache-Control: post-check=0, pre-check=0', false) ;
+	// HTTP/1.0
+	header('Pragma: no-cache') ;
+
+	// Set the response format.
+	header( 'Content-Type: text/xml; charset=utf-8' ) ;
+}
+
+function CreateXmlHeader( $command, $resourceType, $currentFolder )
+{
+	SetXmlHeaders() ;
+
+	// Create the XML document header.
+	echo '<?xml version="1.0" encoding="utf-8" ?>' ;
+
+	// Create the main "Connector" node.
+	echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
+
+	// Add the current folder node.
+	echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder, $command ) ) . '" />' ;
+
+	$GLOBALS['HeaderSent'] = true ;
+}
+
+function CreateXmlFooter()
+{
+	echo '</Connector>' ;
+}
+
+function SendError( $number, $text )
+{
+	if ( isset( $GLOBALS['HeaderSent'] ) && $GLOBALS['HeaderSent'] )
+	{
+		SendErrorNode( $number, $text ) ;
+		CreateXmlFooter() ;
+	}
+	else
+	{
+		SetXmlHeaders() ;
+
+		// Create the XML document header
+		echo '<?xml version="1.0" encoding="utf-8" ?>' ;
+
+		echo '<Connector>' ;
+
+		SendErrorNode( $number, $text ) ;
+
+		echo '</Connector>' ;
+	}
+	exit ;
+}
+
+function SendErrorNode(  $number, $text )
+{
+	echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
+}
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php.org	(revision 838)
@@ -0,0 +1,151 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Configuration file for the File Manager Connector for PHP.
+ */
+
+global $Config ;
+
+// SECURITY: You must explicitly enable this "connector". (Set it to "true").
+// WARNING: don't just set "$Config['Enabled'] = true ;", you must be sure that only
+//		authenticated users can access this file or use some kind of session checking.
+$Config['Enabled'] = false ;
+
+
+// Path to user files relative to the document root.
+$Config['UserFilesPath'] = '/userfiles/' ;
+
+// Fill the following value it you prefer to specify the absolute path for the
+// user files directory. Useful if you are using a virtual directory, symbolic
+// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+// Attention: The above 'UserFilesPath' must point to the same directory.
+$Config['UserFilesAbsolutePath'] = '' ;
+
+// Due to security issues with Apache modules, it is recommended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
+// Perform additional checks for image files.
+// If set to true, validate image size (using getimagesize).
+$Config['SecureImageUploads'] = true;
+
+// What the user can do with this connector.
+$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder') ;
+
+// Allowed Resource Types.
+$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media') ;
+
+// For security, HTML is allowed in the first Kb of data for files having the
+// following extensions only.
+$Config['HtmlExtensions'] = array("html", "htm", "xml", "xsd", "txt", "js") ;
+
+// After file is uploaded, sometimes it is required to change its permissions
+// so that it was possible to access it at the later time.
+// If possible, it is recommended to set more restrictive permissions, like 0755.
+// Set to 0 to disable this feature.
+// Note: not needed on Windows-based servers.
+$Config['ChmodOnUpload'] = 0777 ;
+
+// See comments above.
+// Used when creating folders that does not exist.
+$Config['ChmodOnFolderCreate'] = 0777 ;
+
+/*
+	Configuration settings for each Resource Type
+
+	- AllowedExtensions: the possible extensions that can be allowed.
+		If it is empty then any file type can be uploaded.
+	- DeniedExtensions: The extensions that won't be allowed.
+		If it is empty then no restrictions are done here.
+
+	For a file to be uploaded it has to fulfill both the AllowedExtensions
+	and DeniedExtensions (that's it: not being denied) conditions.
+
+	- FileTypesPath: the virtual folder relative to the document root where
+		these resources will be located.
+		Attention: It must start and end with a slash: '/'
+
+	- FileTypesAbsolutePath: the physical path to the above folder. It must be
+		an absolute path.
+		If it's an empty string then it will be autocalculated.
+		Useful if you are using a virtual directory, symbolic link or alias.
+		Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+		Attention: The above 'FileTypesPath' must point to the same directory.
+		Attention: It must end with a slash: '/'
+
+	 - QuickUploadPath: the virtual folder relative to the document root where
+		these resources will be uploaded using the Upload tab in the resources
+		dialogs.
+		Attention: It must start and end with a slash: '/'
+
+	 - QuickUploadAbsolutePath: the physical path to the above folder. It must be
+		an absolute path.
+		If it's an empty string then it will be autocalculated.
+		Useful if you are using a virtual directory, symbolic link or alias.
+		Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+		Attention: The above 'QuickUploadPath' must point to the same directory.
+		Attention: It must end with a slash: '/'
+
+	 	NOTE: by default, QuickUploadPath and QuickUploadAbsolutePath point to
+	 	"userfiles" directory to maintain backwards compatibility with older versions of FCKeditor.
+	 	This is fine, but you in some cases you will be not able to browse uploaded files using file browser.
+	 	Example: if you click on "image button", select "Upload" tab and send image
+	 	to the server, image will appear in FCKeditor correctly, but because it is placed
+	 	directly in /userfiles/ directory, you'll be not able to see it in built-in file browser.
+	 	The more expected behaviour would be to send images directly to "image" subfolder.
+	 	To achieve that, simply change
+			$Config['QuickUploadPath']['Image']			= $Config['UserFilesPath'] ;
+			$Config['QuickUploadAbsolutePath']['Image']	= $Config['UserFilesAbsolutePath'] ;
+		into:
+			$Config['QuickUploadPath']['Image']			= $Config['FileTypesPath']['Image'] ;
+			$Config['QuickUploadAbsolutePath']['Image'] 	= $Config['FileTypesAbsolutePath']['Image'] ;
+
+*/
+
+$Config['AllowedExtensions']['File']	= array('7z', 'aiff', 'asf', 'avi', 'bmp', 'csv', 'doc', 'fla', 'flv', 'gif', 'gz', 'gzip', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pxd', 'qt', 'ram', 'rar', 'rm', 'rmi', 'rmvb', 'rtf', 'sdc', 'sitd', 'swf', 'sxc', 'sxw', 'tar', 'tgz', 'tif', 'tiff', 'txt', 'vsd', 'wav', 'wma', 'wmv', 'xls', 'xml', 'zip') ;
+$Config['DeniedExtensions']['File']		= array() ;
+$Config['FileTypesPath']['File']		= $Config['UserFilesPath'] . 'file/' ;
+$Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'file/' ;
+$Config['QuickUploadPath']['File']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['File']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Image']	= array('bmp','gif','jpeg','jpg','png') ;
+$Config['DeniedExtensions']['Image']	= array() ;
+$Config['FileTypesPath']['Image']		= $Config['UserFilesPath'] . 'image/' ;
+$Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
+$Config['QuickUploadPath']['Image']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Image']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Flash']	= array('swf','flv') ;
+$Config['DeniedExtensions']['Flash']	= array() ;
+$Config['FileTypesPath']['Flash']		= $Config['UserFilesPath'] . 'flash/' ;
+$Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'flash/' ;
+$Config['QuickUploadPath']['Flash']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Flash']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Media']	= array('aiff', 'asf', 'avi', 'bmp', 'fla', 'flv', 'gif', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'png', 'qt', 'ram', 'rm', 'rmi', 'rmvb', 'swf', 'tif', 'tiff', 'wav', 'wma', 'wmv') ;
+$Config['DeniedExtensions']['Media']	= array() ;
+$Config['FileTypesPath']['Media']		= $Config['UserFilesPath'] . 'media/' ;
+$Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'media/' ;
+$Config['QuickUploadPath']['Media']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Media']= $Config['UserFilesAbsolutePath'] ;
+
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php	(revision 838)
@@ -0,0 +1,17 @@
+<?php
+
+if ( !isset( $_SERVER ) ) {
+    $_SERVER = $HTTP_SERVER_VARS ;
+}
+if ( !isset( $_GET ) ) {
+    $_GET = $HTTP_GET_VARS ;
+}
+if ( !isset( $_FILES ) ) {
+    $_FILES = $HTTP_POST_FILES ;
+}
+
+if ( !defined( 'DIRECTORY_SEPARATOR' ) ) {
+    define( 'DIRECTORY_SEPARATOR',
+        strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/'
+    ) ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/util.php	(revision 838)
@@ -0,0 +1,220 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions for the File Manager Connector for PHP.
+ */
+
+function RemoveFromStart( $sourceString, $charToRemove )
+{
+	$sPattern = '|^' . $charToRemove . '+|' ;
+	return preg_replace( $sPattern, '', $sourceString ) ;
+}
+
+function RemoveFromEnd( $sourceString, $charToRemove )
+{
+	$sPattern = '|' . $charToRemove . '+$|' ;
+	return preg_replace( $sPattern, '', $sourceString ) ;
+}
+
+function FindBadUtf8( $string )
+{
+	$regex =
+	'([\x00-\x7F]'.
+	'|[\xC2-\xDF][\x80-\xBF]'.
+	'|\xE0[\xA0-\xBF][\x80-\xBF]'.
+	'|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'.
+	'|\xED[\x80-\x9F][\x80-\xBF]'.
+	'|\xF0[\x90-\xBF][\x80-\xBF]{2}'.
+	'|[\xF1-\xF3][\x80-\xBF]{3}'.
+	'|\xF4[\x80-\x8F][\x80-\xBF]{2}'.
+	'|(.{1}))';
+
+	while (preg_match('/'.$regex.'/S', $string, $matches)) {
+		if ( isset($matches[2])) {
+			return true;
+		}
+		$string = substr($string, strlen($matches[0]));
+	}
+
+	return false;
+}
+
+function ConvertToXmlAttribute( $value )
+{
+	if ( defined( 'PHP_OS' ) )
+	{
+		$os = PHP_OS ;
+	}
+	else
+	{
+		$os = php_uname() ;
+	}
+
+	if ( strtoupper( substr( $os, 0, 3 ) ) === 'WIN' || FindBadUtf8( $value ) )
+	{
+		return ( utf8_encode( htmlspecialchars( $value ) ) ) ;
+	}
+	else
+	{
+		return ( htmlspecialchars( $value ) ) ;
+	}
+}
+
+/**
+ * Check whether given extension is in html etensions list
+ *
+ * @param string $ext
+ * @param array $htmlExtensions
+ * @return boolean
+ */
+function IsHtmlExtension( $ext, $htmlExtensions )
+{
+	if ( !$htmlExtensions || !is_array( $htmlExtensions ) )
+	{
+		return false ;
+	}
+	$lcaseHtmlExtensions = array() ;
+	foreach ( $htmlExtensions as $key => $val )
+	{
+		$lcaseHtmlExtensions[$key] = strtolower( $val ) ;
+	}
+	return in_array( $ext, $lcaseHtmlExtensions ) ;
+}
+
+/**
+ * Detect HTML in the first KB to prevent against potential security issue with
+ * IE/Safari/Opera file type auto detection bug.
+ * Returns true if file contain insecure HTML code at the beginning.
+ *
+ * @param string $filePath absolute path to file
+ * @return boolean
+ */
+function DetectHtml( $filePath )
+{
+	$fp = @fopen( $filePath, 'rb' ) ;
+
+	//open_basedir restriction, see #1906
+	if ( $fp === false || !flock( $fp, LOCK_SH ) )
+	{
+		return -1 ;
+	}
+
+	$chunk = fread( $fp, 1024 ) ;
+	flock( $fp, LOCK_UN ) ;
+	fclose( $fp ) ;
+
+	$chunk = strtolower( $chunk ) ;
+
+	if (!$chunk)
+	{
+		return false ;
+	}
+
+	$chunk = trim( $chunk ) ;
+
+	if ( preg_match( "/<!DOCTYPE\W*X?HTML/sim", $chunk ) )
+	{
+		return true;
+	}
+
+	$tags = array( '<body', '<head', '<html', '<img', '<pre', '<script', '<table', '<title' ) ;
+
+	foreach( $tags as $tag )
+	{
+		if( false !== strpos( $chunk, $tag ) )
+		{
+			return true ;
+		}
+	}
+
+	//type = javascript
+	if ( preg_match( '!type\s*=\s*[\'"]?\s*(?:\w*/)?(?:ecma|java)!sim', $chunk ) )
+	{
+		return true ;
+	}
+
+	//href = javascript
+	//src = javascript
+	//data = javascript
+	if ( preg_match( '!(?:href|src|data)\s*=\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
+	{
+		return true ;
+	}
+
+	//url(javascript
+	if ( preg_match( '!url\s*\(\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
+	{
+		return true ;
+	}
+
+	return false ;
+}
+
+/**
+ * Check file content.
+ * Currently this function validates only image files.
+ * Returns false if file is invalid.
+ *
+ * @param string $filePath absolute path to file
+ * @param string $extension file extension
+ * @param integer $detectionLevel 0 = none, 1 = use getimagesize for images, 2 = use DetectHtml for images
+ * @return boolean
+ */
+function IsImageValid( $filePath, $extension )
+{
+	if (!@is_readable($filePath)) {
+		return -1;
+	}
+
+	$imageCheckExtensions = array('gif', 'jpeg', 'jpg', 'png', 'swf', 'psd', 'bmp', 'iff');
+
+	// version_compare is available since PHP4 >= 4.0.7
+	if ( function_exists( 'version_compare' ) ) {
+		$sCurrentVersion = phpversion();
+		if ( version_compare( $sCurrentVersion, "4.2.0" ) >= 0 ) {
+			$imageCheckExtensions[] = "tiff";
+			$imageCheckExtensions[] = "tif";
+		}
+		if ( version_compare( $sCurrentVersion, "4.3.0" ) >= 0 ) {
+			$imageCheckExtensions[] = "swc";
+		}
+		if ( version_compare( $sCurrentVersion, "4.3.2" ) >= 0 ) {
+			$imageCheckExtensions[] = "jpc";
+			$imageCheckExtensions[] = "jp2";
+			$imageCheckExtensions[] = "jpx";
+			$imageCheckExtensions[] = "jb2";
+			$imageCheckExtensions[] = "xbm";
+			$imageCheckExtensions[] = "wbmp";
+		}
+	}
+
+	if ( !in_array( $extension, $imageCheckExtensions ) ) {
+		return true;
+	}
+
+	if ( @getimagesize( $filePath ) === false ) {
+		return false ;
+	}
+
+	return true;
+}
+
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php	(revision 838)
@@ -0,0 +1,273 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the File Manager Connector for PHP.
+ */
+
+function GetFolders( $resourceType, $currentFolder )
+{
+	// Map the virtual path to the local server path.
+	$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFolders' ) ;
+
+	// Array that will hold the folders names.
+	$aFolders	= array() ;
+
+	$oCurrentFolder = opendir( $sServerDir ) ;
+
+	while ( $sFile = readdir( $oCurrentFolder ) )
+	{
+		if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
+			$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+	}
+
+	closedir( $oCurrentFolder ) ;
+
+	// Open the "Folders" node.
+	echo "<Folders>" ;
+
+	natcasesort( $aFolders ) ;
+	foreach ( $aFolders as $sFolder )
+		echo $sFolder ;
+
+	// Close the "Folders" node.
+	echo "</Folders>" ;
+}
+
+function GetFoldersAndFiles( $resourceType, $currentFolder )
+{
+	// Map the virtual path to the local server path.
+	$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' ) ;
+
+	// Arrays that will hold the folders and files names.
+	$aFolders	= array() ;
+	$aFiles		= array() ;
+
+	$oCurrentFolder = opendir( $sServerDir ) ;
+
+	while ( $sFile = readdir( $oCurrentFolder ) )
+	{
+		if ( $sFile != '.' && $sFile != '..' )
+		{
+			if ( is_dir( $sServerDir . $sFile ) )
+				$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+			else
+			{
+				$iFileSize = @filesize( $sServerDir . $sFile ) ;
+				if ( !$iFileSize ) {
+					$iFileSize = 0 ;
+				}
+				if ( $iFileSize > 0 )
+				{
+					$iFileSize = round( $iFileSize / 1024 ) ;
+					if ( $iFileSize < 1 ) $iFileSize = 1 ;
+				}
+
+				$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
+			}
+		}
+	}
+
+	// Send the folders
+	natcasesort( $aFolders ) ;
+	echo '<Folders>' ;
+
+	foreach ( $aFolders as $sFolder )
+		echo $sFolder ;
+
+	echo '</Folders>' ;
+
+	// Send the files
+	natcasesort( $aFiles ) ;
+	echo '<Files>' ;
+
+	foreach ( $aFiles as $sFiles )
+		echo $sFiles ;
+
+	echo '</Files>' ;
+}
+
+function CreateFolder( $resourceType, $currentFolder )
+{
+	if (!isset($_GET)) {
+		global $_GET;
+	}
+	$sErrorNumber	= '0' ;
+	$sErrorMsg		= '' ;
+
+	if ( isset( $_GET['NewFolderName'] ) )
+	{
+		$sNewFolderName = $_GET['NewFolderName'] ;
+		$sNewFolderName = SanitizeFolderName( $sNewFolderName ) ;
+
+		if ( strpos( $sNewFolderName, '..' ) !== FALSE )
+			$sErrorNumber = '102' ;		// Invalid folder name.
+		else
+		{
+			// Map the virtual path to the local server path of the current folder.
+			$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'CreateFolder' ) ;
+
+			if ( is_writable( $sServerDir ) )
+			{
+				$sServerDir .= $sNewFolderName ;
+
+				$sErrorMsg = CreateServerFolder( $sServerDir ) ;
+
+				switch ( $sErrorMsg )
+				{
+					case '' :
+						$sErrorNumber = '0' ;
+						break ;
+					case 'Invalid argument' :
+					case 'No such file or directory' :
+						$sErrorNumber = '102' ;		// Path too long.
+						break ;
+					default :
+						$sErrorNumber = '110' ;
+						break ;
+				}
+			}
+			else
+				$sErrorNumber = '103' ;
+		}
+	}
+	else
+		$sErrorNumber = '102' ;
+
+	// Create the "Error" node.
+	echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
+}
+
+function FileUpload( $resourceType, $currentFolder, $sCommand )
+{
+	if (!isset($_FILES)) {
+		global $_FILES;
+	}
+	$sErrorNumber = '0' ;
+	$sFileName = '' ;
+
+	if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
+	{
+		global $Config ;
+
+		$oFile = $_FILES['NewFile'] ;
+
+		// Map the virtual path to the local server path.
+		$sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand ) ;
+
+		// Get the uploaded file name.
+		$sFileName = $oFile['name'] ;
+		$sFileName = SanitizeFileName( $sFileName ) ;
+
+		$sOriginalFileName = $sFileName ;
+
+		// Get the extension.
+		$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
+		$sExtension = strtolower( $sExtension ) ;
+
+		if ( isset( $Config['SecureImageUploads'] ) )
+		{
+			if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false )
+			{
+				$sErrorNumber = '202' ;
+			}
+		}
+
+		if ( isset( $Config['HtmlExtensions'] ) )
+		{
+			if ( !IsHtmlExtension( $sExtension, $Config['HtmlExtensions'] ) &&
+				( $detectHtml = DetectHtml( $oFile['tmp_name'] ) ) === true )
+			{
+				$sErrorNumber = '202' ;
+			}
+		}
+
+		// Check if it is an allowed extension.
+		if ( !$sErrorNumber && IsAllowedExt( $sExtension, $resourceType ) )
+		{
+			$iCounter = 0 ;
+
+			while ( true )
+			{
+				$sFilePath = $sServerDir . $sFileName ;
+
+				if ( is_file( $sFilePath ) )
+				{
+					$iCounter++ ;
+					$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
+					$sErrorNumber = '201' ;
+				}
+				else
+				{
+					move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
+
+					if ( is_file( $sFilePath ) )
+					{
+						if ( isset( $Config['ChmodOnUpload'] ) && !$Config['ChmodOnUpload'] )
+						{
+							break ;
+						}
+
+						$permissions = 0777;
+
+						if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] )
+						{
+							$permissions = $Config['ChmodOnUpload'] ;
+						}
+
+						$oldumask = umask(0) ;
+						chmod( $sFilePath, $permissions ) ;
+						umask( $oldumask ) ;
+					}
+
+					break ;
+				}
+			}
+
+			if ( file_exists( $sFilePath ) )
+			{
+				//previous checks failed, try once again
+				if ( isset( $isImageValid ) && $isImageValid === -1 && IsImageValid( $sFilePath, $sExtension ) === false )
+				{
+					@unlink( $sFilePath ) ;
+					$sErrorNumber = '202' ;
+				}
+				else if ( isset( $detectHtml ) && $detectHtml === -1 && DetectHtml( $sFilePath ) === true )
+				{
+					@unlink( $sFilePath ) ;
+					$sErrorNumber = '202' ;
+				}
+			}
+		}
+		else
+			$sErrorNumber = '202' ;
+	}
+	else
+		$sErrorNumber = '202' ;
+
+
+	$sFileUrl = CombinePaths( GetResourceTypePath( $resourceType, $sCommand ) , $currentFolder ) ;
+	$sFileUrl = CombinePaths( $sFileUrl, $sFileName ) ;
+
+	SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ;
+
+	exit ;
+}
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php	(revision 838)
@@ -0,0 +1,59 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the "File Uploader" for PHP.
+ */
+
+require('./config.php') ;
+require('./util.php') ;
+require('./io.php') ;
+require('./commands.php') ;
+require('./phpcompat.php') ;
+
+function SendError( $number, $text )
+{
+	SendUploadResults( $number, '', '', $text ) ;
+}
+
+
+// Check if this uploader has been enabled.
+if ( !$Config['Enabled'] )
+	SendUploadResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' ) ;
+
+$sCommand = 'QuickUpload' ;
+
+// The file type (from the QueryString, by default 'File').
+$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
+
+$sCurrentFolder	= GetCurrentFolder() ;
+
+// Is enabled the upload?
+if ( ! IsAllowedCommand( $sCommand ) )
+	SendUploadResults( '1', '', '', 'The ""' . $sCommand . '"" command isn\'t allowed' ) ;
+
+// Check if it is an allowed type.
+if ( !IsAllowedType( $sType ) )
+    SendUploadResults( 1, '', '', 'Invalid type specified' ) ;
+
+
+FileUpload( $sType, $sCurrentFolder, $sCommand )
+
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php	(revision 838)
@@ -0,0 +1,230 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Configuration file for the File Manager Connector for PHP.
+ */
+
+global $Config ;
+
+// SECURITY: You must explicitly enable this "connector". (Set it to "true").
+// WARNING: don't just set "$Config['Enabled'] = true ;", you must be sure that only
+//		authenticated users can access this file or use some kind of session checking.
+$Config['Enabled'] = false ;
+
+/** 
+	SECURITY PATCH FOR WEBSITE BAKER (doc)
+	only enable PHP connector if user is authenticated to WB
+	and has at least permissions to view the WB MEDIA folder
+*/
+// include WB config.php file and admin class
+require_once('../../../../../../../config.php');
+require_once(WB_PATH .'/framework/class.admin.php');
+
+// check if user is authenticated if WB and has permission to view MEDIA folder
+$admin = new admin('Media', 'media_view', false, false);
+if(($admin->get_permission('media_view') === true)) {
+	// user allowed to view MEDIA folder -> enable PHP connector
+	$Config['Enabled'] = true ;
+	// allow actions to list folders and files
+	$Config['ConfigAllowedCommands'] = array('GetFolders', 'GetFoldersAndFiles') ;
+}
+
+// Path to user files relative to the document root.
+// $Config['UserFilesPath'] = '/userfiles/' ;
+$Config['UserFilesPath'] = WB_URL .MEDIA_DIRECTORY ;
+// use home folder of current user as document root if available
+if(isset($_SESSION['HOME_FOLDER']) && file_exists(WB_PATH .MEDIA_DIRECTORY .$_SESSION['HOME_FOLDER'])){
+   $Config['UserFilesPath'] = $Config['UserFilesPath'].$_SESSION['HOME_FOLDER'];
+}
+
+// Fill the following value it you prefer to specify the absolute path for the
+// user files directory. Useful if you are using a virtual directory, symbolic
+// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+// Attention: The above 'UserFilesPath' must point to the same directory.
+// $Config['UserFilesAbsolutePath'] = '' ;
+$Config['UserFilesAbsolutePath'] = WB_PATH .MEDIA_DIRECTORY ;
+// use home folder of current user as document root if available
+if(isset($_SESSION['HOME_FOLDER']) && file_exists(WB_PATH .MEDIA_DIRECTORY .$_SESSION['HOME_FOLDER'])){
+   $Config['UserFilesAbsolutePath'] = $Config['UserFilesAbsolutePath'].$_SESSION['HOME_FOLDER'];
+}
+// Due to security issues with Apache modules, it is recommended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
+// Perform additional checks for image files.
+// If set to true, validate image size (using getimagesize).
+$Config['SecureImageUploads'] = true;
+
+// What the user can do with this connector.
+// $Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder') ;
+
+/** 
+   Check WB permissions of the user/group for the MEDIA folder and 
+	enable only those FCKEditor commands the user has permissions for 
+*/
+// check if user is allowed to upload files to the media directory
+if(($admin->get_permission('media_upload') === true)) {
+	// add actions to upload files to the MEDIA folder
+	array_push($Config['ConfigAllowedCommands'], 'FileUpload', 'QuickUpload');
+}
+
+// check if user is allowed to create new folders in the media directory
+if(($admin->get_permission('media_create') === true)) {
+	// add action to create new folders in the MEDIA folder
+	array_push($Config['ConfigAllowedCommands'], 'CreateFolder');
+}
+
+// Allowed Resource Types.
+$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media') ;
+
+// For security, HTML is allowed in the first Kb of data for files having the
+// following extensions only.
+$Config['HtmlExtensions'] = array("html", "htm", "xml", "xsd", "txt", "js") ;
+
+// After file is uploaded, sometimes it is required to change its permissions
+// so that it was possible to access it at the later time.
+// If possible, it is recommended to set more restrictive permissions, like 0755.
+// Set to 0 to disable this feature.
+// Note: not needed on Windows-based servers.
+$Config['ChmodOnUpload'] = 0777 ;
+
+// See comments above.
+// Used when creating folders that does not exist.
+$Config['ChmodOnFolderCreate'] = 0777 ;
+
+/*
+	Configuration settings for each Resource Type
+
+	- AllowedExtensions: the possible extensions that can be allowed.
+		If it is empty then any file type can be uploaded.
+	- DeniedExtensions: The extensions that won't be allowed.
+		If it is empty then no restrictions are done here.
+
+	For a file to be uploaded it has to fulfill both the AllowedExtensions
+	and DeniedExtensions (that's it: not being denied) conditions.
+
+	- FileTypesPath: the virtual folder relative to the document root where
+		these resources will be located.
+		Attention: It must start and end with a slash: '/'
+
+	- FileTypesAbsolutePath: the physical path to the above folder. It must be
+		an absolute path.
+		If it's an empty string then it will be autocalculated.
+		Useful if you are using a virtual directory, symbolic link or alias.
+		Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+		Attention: The above 'FileTypesPath' must point to the same directory.
+		Attention: It must end with a slash: '/'
+
+	 - QuickUploadPath: the virtual folder relative to the document root where
+		these resources will be uploaded using the Upload tab in the resources
+		dialogs.
+		Attention: It must start and end with a slash: '/'
+
+	 - QuickUploadAbsolutePath: the physical path to the above folder. It must be
+		an absolute path.
+		If it's an empty string then it will be autocalculated.
+		Useful if you are using a virtual directory, symbolic link or alias.
+		Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+		Attention: The above 'QuickUploadPath' must point to the same directory.
+		Attention: It must end with a slash: '/'
+
+	 	NOTE: by default, QuickUploadPath and QuickUploadAbsolutePath point to
+	 	"userfiles" directory to maintain backwards compatibility with older versions of FCKeditor.
+	 	This is fine, but you in some cases you will be not able to browse uploaded files using file browser.
+	 	Example: if you click on "image button", select "Upload" tab and send image
+	 	to the server, image will appear in FCKeditor correctly, but because it is placed
+	 	directly in /userfiles/ directory, you'll be not able to see it in built-in file browser.
+	 	The more expected behaviour would be to send images directly to "image" subfolder.
+	 	To achieve that, simply change
+			$Config['QuickUploadPath']['Image']			= $Config['UserFilesPath'] ;
+			$Config['QuickUploadAbsolutePath']['Image']	= $Config['UserFilesAbsolutePath'] ;
+		into:
+			$Config['QuickUploadPath']['Image']			= $Config['FileTypesPath']['Image'] ;
+			$Config['QuickUploadAbsolutePath']['Image'] 	= $Config['FileTypesAbsolutePath']['Image'] ;
+
+*/
+
+/*
+$Config['AllowedExtensions']['File']	= array('7z', 'aiff', 'asf', 'avi', 'bmp', 'csv', 'doc', 'fla', 'flv', 'gif', 'gz', 'gzip', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pxd', 'qt', 'ram', 'rar', 'rm', 'rmi', 'rmvb', 'rtf', 'sdc', 'sitd', 'swf', 'sxc', 'sxw', 'tar', 'tgz', 'tif', 'tiff', 'txt', 'vsd', 'wav', 'wma', 'wmv', 'xls', 'xml', 'zip') ;
+$Config['DeniedExtensions']['File']		= array() ;
+$Config['FileTypesPath']['File']		= $Config['UserFilesPath'] . 'file/' ;
+$Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'file/' ;
+$Config['QuickUploadPath']['File']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['File']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Image']	= array('bmp','gif','jpeg','jpg','png') ;
+$Config['DeniedExtensions']['Image']	= array() ;
+$Config['FileTypesPath']['Image']		= $Config['UserFilesPath'] . 'image/' ;
+$Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
+$Config['QuickUploadPath']['Image']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Image']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Flash']	= array('swf','flv') ;
+$Config['DeniedExtensions']['Flash']	= array() ;
+$Config['FileTypesPath']['Flash']		= $Config['UserFilesPath'] . 'flash/' ;
+$Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'flash/' ;
+$Config['QuickUploadPath']['Flash']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Flash']= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Media']	= array('aiff', 'asf', 'avi', 'bmp', 'fla', 'flv', 'gif', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'png', 'qt', 'ram', 'rm', 'rmi', 'rmvb', 'swf', 'tif', 'tiff', 'wav', 'wma', 'wmv') ;
+$Config['DeniedExtensions']['Media']	= array() ;
+$Config['FileTypesPath']['Media']		= $Config['UserFilesPath'] . 'media/' ;
+$Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'media/' ;
+$Config['QuickUploadPath']['Media']		= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Media']= $Config['UserFilesAbsolutePath'] ;
+*/
+
+/**
+	APPLY MORE RESTRICTIVE SETTINGS FOR WEBSITE BAKER
+	+ only allow file types: 	only textfiles (no PHP, Javascript or HTML files per default)
+	+ only allows images type: bmp, gif, jpges, jpg and png
+	+ only allows flash types: swf, flv (no fla ... flash action script per default)
+	+ only allows media types: swf, flv, jpg, gif, jpeg, png, avi, mgp, mpeg
+*/
+$Config['AllowedExtensions']['File']			= array();
+$Config['DeniedExtensions']['File']				= array('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') ;
+$Config['FileTypesPath']['File']					= $Config['UserFilesPath'];
+$Config['FileTypesAbsolutePath']['File']		= $Config['UserFilesAbsolutePath'] ;
+$Config['QuickUploadPath']['File']				= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['File']	= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Image']			= array('bmp','gif','jpeg','jpg','png') ;
+$Config['DeniedExtensions']['Image']			= array() ;
+$Config['FileTypesPath']['Image'] 				= $Config['UserFilesPath'] ;
+$Config['FileTypesAbsolutePath']['Image'] 	= $Config['UserFilesAbsolutePath'];
+$Config['QuickUploadPath']['Image'] 			= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Image']	= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Flash']			= array('swf','flv') ;
+$Config['DeniedExtensions']['Flash']			= array() ;
+$Config['FileTypesPath']['Flash']				= $Config['UserFilesPath'];
+$Config['FileTypesAbsolutePath']['Flash'] 	= $Config['UserFilesAbsolutePath'];
+$Config['QuickUploadPath']['Flash']				= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Flash']	= $Config['UserFilesAbsolutePath'] ;
+
+$Config['AllowedExtensions']['Media']			= array('swf','flv','jpg','gif','jpeg','png','avi','mpg','mpeg') ;
+$Config['DeniedExtensions']['Media']			= array() ;
+$Config['FileTypesPath']['Media']				= $Config['UserFilesPath'] . '' ;
+$Config['FileTypesAbsolutePath']['Media']		= $Config['UserFilesAbsolutePath'];
+$Config['QuickUploadPath']['Media']				= $Config['UserFilesPath'] ;
+$Config['QuickUploadAbsolutePath']['Media']	= $Config['UserFilesAbsolutePath'] ;
+
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/io.php	(revision 838)
@@ -0,0 +1,320 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the File Manager Connector for PHP.
+ */
+function CombinePaths( $sBasePath, $sFolder )
+{
+	return RemoveFromEnd( $sBasePath, '/' ) . '/' . RemoveFromStart( $sFolder, '/' ) ;
+}
+function GetResourceTypePath( $resourceType, $sCommand )
+{
+	global $Config ;
+
+	if ( $sCommand == "QuickUpload")
+		return $Config['QuickUploadPath'][$resourceType] ;
+	else
+		return $Config['FileTypesPath'][$resourceType] ;
+}
+
+function GetResourceTypeDirectory( $resourceType, $sCommand )
+{
+	global $Config ;
+	if ( $sCommand == "QuickUpload")
+	{
+		if ( strlen( $Config['QuickUploadAbsolutePath'][$resourceType] ) > 0 )
+			return $Config['QuickUploadAbsolutePath'][$resourceType] ;
+
+		// Map the "UserFiles" path to a local directory.
+		return Server_MapPath( $Config['QuickUploadPath'][$resourceType] ) ;
+	}
+	else
+	{
+		if ( strlen( $Config['FileTypesAbsolutePath'][$resourceType] ) > 0 )
+			return $Config['FileTypesAbsolutePath'][$resourceType] ;
+
+		// Map the "UserFiles" path to a local directory.
+		return Server_MapPath( $Config['FileTypesPath'][$resourceType] ) ;
+	}
+}
+
+function GetUrlFromPath( $resourceType, $folderPath, $sCommand )
+{
+	return CombinePaths( GetResourceTypePath( $resourceType, $sCommand ), $folderPath ) ;
+}
+
+function RemoveExtension( $fileName )
+{
+	return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
+}
+
+function ServerMapFolder( $resourceType, $folderPath, $sCommand )
+{
+	// Get the resource type directory.
+	$sResourceTypePath = GetResourceTypeDirectory( $resourceType, $sCommand ) ;
+
+	// Ensure that the directory exists.
+	$sErrorMsg = CreateServerFolder( $sResourceTypePath ) ;
+	if ( $sErrorMsg != '' )
+		SendError( 1, "Error creating folder \"{$sResourceTypePath}\" ({$sErrorMsg})" ) ;
+
+	// Return the resource type directory combined with the required path.
+	return CombinePaths( $sResourceTypePath , $folderPath ) ;
+}
+
+function GetParentFolder( $folderPath )
+{
+	$sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
+	return preg_replace( $sPattern, '', $folderPath ) ;
+}
+
+function CreateServerFolder( $folderPath, $lastFolder = null )
+{
+	global $Config ;
+	$sParent = GetParentFolder( $folderPath ) ;
+
+	// Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms
+	while ( strpos($folderPath, '//') !== false )
+	{
+		$folderPath = str_replace( '//', '/', $folderPath ) ;
+	}
+
+	// Check if the parent exists, or create it.
+	if ( !file_exists( $sParent ) )
+	{
+		//prevents agains infinite loop when we can't create root folder
+		if ( !is_null( $lastFolder ) && $lastFolder === $sParent) {
+			return "Can't create $folderPath directory" ;
+		}
+
+		$sErrorMsg = CreateServerFolder( $sParent, $folderPath ) ;
+		if ( $sErrorMsg != '' )
+			return $sErrorMsg ;
+	}
+
+	if ( !file_exists( $folderPath ) )
+	{
+		// Turn off all error reporting.
+		error_reporting( 0 ) ;
+
+		$php_errormsg = '' ;
+		// Enable error tracking to catch the error.
+		ini_set( 'track_errors', '1' ) ;
+
+		if ( isset( $Config['ChmodOnFolderCreate'] ) && !$Config['ChmodOnFolderCreate'] )
+		{
+			mkdir( $folderPath ) ;
+		}
+		else
+		{
+			$permissions = 0777 ;
+			if ( isset( $Config['ChmodOnFolderCreate'] ) )
+			{
+				$permissions = $Config['ChmodOnFolderCreate'] ;
+			}
+			// To create the folder with 0777 permissions, we need to set umask to zero.
+			$oldumask = umask(0) ;
+			mkdir( $folderPath, $permissions ) ;
+			umask( $oldumask ) ;
+		}
+
+		$sErrorMsg = $php_errormsg ;
+
+		// Restore the configurations.
+		ini_restore( 'track_errors' ) ;
+		ini_restore( 'error_reporting' ) ;
+
+		return $sErrorMsg ;
+	}
+	else
+		return '' ;
+}
+
+function GetRootPath()
+{
+	if (!isset($_SERVER)) {
+		global $_SERVER;
+	}
+	$sRealPath = realpath( './' ) ;
+
+	$sSelfPath = $_SERVER['PHP_SELF'] ;
+	$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
+
+	$sSelfPath = str_replace( '/', DIRECTORY_SEPARATOR, $sSelfPath ) ;
+
+	$position = strpos( $sRealPath, $sSelfPath ) ;
+
+	// This can check only that this script isn't run from a virtual dir
+	// But it avoids the problems that arise if it isn't checked
+	if ( $position === false || $position <> strlen( $sRealPath ) - strlen( $sSelfPath ) )
+		SendError( 1, 'Sorry, can\'t map "UserFilesPath" to a physical path. You must set the "UserFilesAbsolutePath" value in "editor/filemanager/connectors/php/config.php".' ) ;
+
+	return substr( $sRealPath, 0, $position ) ;
+}
+
+// Emulate the asp Server.mapPath function.
+// given an url path return the physical directory that it corresponds to
+function Server_MapPath( $path )
+{
+	// This function is available only for Apache
+	if ( function_exists( 'apache_lookup_uri' ) )
+	{
+		$info = apache_lookup_uri( $path ) ;
+		return $info->filename . $info->path_info ;
+	}
+
+	// This isn't correct but for the moment there's no other solution
+	// If this script is under a virtual directory or symlink it will detect the problem and stop
+	return GetRootPath() . $path ;
+}
+
+function IsAllowedExt( $sExtension, $resourceType )
+{
+	global $Config ;
+	// Get the allowed and denied extensions arrays.
+	$arAllowed	= $Config['AllowedExtensions'][$resourceType] ;
+	$arDenied	= $Config['DeniedExtensions'][$resourceType] ;
+
+	if ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) )
+		return false ;
+
+	if ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) )
+		return false ;
+
+	return true ;
+}
+
+function IsAllowedType( $resourceType )
+{
+	global $Config ;
+	if ( !in_array( $resourceType, $Config['ConfigAllowedTypes'] ) )
+		return false ;
+
+	return true ;
+}
+
+function IsAllowedCommand( $sCommand )
+{
+	global $Config ;
+
+	if ( !in_array( $sCommand, $Config['ConfigAllowedCommands'] ) )
+		return false ;
+
+	return true ;
+}
+
+function GetCurrentFolder()
+{
+	if (!isset($_GET)) {
+		global $_GET;
+	}
+	$sCurrentFolder	= isset( $_GET['CurrentFolder'] ) ? $_GET['CurrentFolder'] : '/' ;
+
+	// Check the current folder syntax (must begin and start with a slash).
+	if ( !preg_match( '|/$|', $sCurrentFolder ) )
+		$sCurrentFolder .= '/' ;
+	if ( strpos( $sCurrentFolder, '/' ) !== 0 )
+		$sCurrentFolder = '/' . $sCurrentFolder ;
+
+	// Ensure the folder path has no double-slashes
+	while ( strpos ($sCurrentFolder, '//') !== false ) {
+		$sCurrentFolder = str_replace ('//', '/', $sCurrentFolder) ;
+	}
+
+	// Check for invalid folder paths (..)
+	if ( strpos( $sCurrentFolder, '..' ) || strpos( $sCurrentFolder, "\\" ))
+		SendError( 102, '' ) ;
+
+	return $sCurrentFolder ;
+}
+
+// Do a cleanup of the folder name to avoid possible problems
+function SanitizeFolderName( $sNewFolderName )
+{
+	$sNewFolderName = stripslashes( $sNewFolderName ) ;
+
+	// Remove . \ / | : ? * " < >
+	$sNewFolderName = preg_replace( '/\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFolderName ) ;
+
+	return $sNewFolderName ;
+}
+
+// Do a cleanup of the file name to avoid possible problems
+function SanitizeFileName( $sNewFileName )
+{
+	global $Config ;
+
+	$sNewFileName = stripslashes( $sNewFileName ) ;
+
+	// Replace dots in the name with underscores (only one dot can be there... security issue).
+	if ( $Config['ForceSingleExtension'] )
+		$sNewFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sNewFileName ) ;
+
+	// Remove \ / | : ? * " < >
+	$sNewFileName = preg_replace( '/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFileName ) ;
+
+	return $sNewFileName ;
+}
+
+// This is the function that sends the results of the uploading process.
+function SendUploadResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
+{
+	echo <<<EOF
+<script type="text/javascript">
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.top.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+EOF;
+	$rpl = array( '\\' => '\\\\', '"' => '\\"' ) ;
+	echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '") ;' ;
+	echo '</script>' ;
+	exit ;
+}
+
+?>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html	(revision 838)
@@ -0,0 +1,29 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the "File Uploaders".
+-->
+<html>
+	<head>
+		<title>FCKeditor - Uploaders Tests</title>
+	</head>
+	<body>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/test.html.org	(revision 838)
@@ -0,0 +1,210 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the File Browser connectors.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Connectors Tests</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<script type="text/javascript">
+
+// Automatically detect the correct document.domain (#1919).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+function BuildBaseUrl( command )
+{
+	var sUrl =
+		document.getElementById('cmbConnector').value +
+		'?Command=' + command +
+		'&Type=' + document.getElementById('cmbType').value +
+		'&CurrentFolder=' + encodeURIComponent(document.getElementById('txtFolder').value) ;
+
+	return sUrl ;
+}
+
+function SetFrameUrl( url )
+{
+	document.getElementById('eRunningFrame').src = url ;
+
+	document.getElementById('eUrl').innerHTML = url ;
+}
+
+function GetFolders()
+{
+	SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ;
+	return false ;
+}
+
+function GetFoldersAndFiles()
+{
+	SetFrameUrl( BuildBaseUrl( 'GetFoldersAndFiles' ) ) ;
+	return false ;
+}
+
+function CreateFolder()
+{
+	var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ;
+
+	if ( ! sFolder )
+		return false ;
+
+	var sUrl = BuildBaseUrl( 'CreateFolder' ) ;
+	sUrl += '&NewFolderName=' + encodeURIComponent( sFolder ) ;
+
+	SetFrameUrl( sUrl ) ;
+	return false ;
+}
+
+function OnUploadCompleted( errorNumber, fileName )
+{
+	switch ( errorNumber )
+	{
+		case 0 :
+			alert( 'File uploaded with no errors' ) ;
+			break ;
+		case 201 :
+			GetFoldersAndFiles() ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+this.frames.frmUpload = this ;
+
+function SetAction()
+{
+	var sUrl = BuildBaseUrl( 'FileUpload' ) ;
+	document.getElementById('eUrl').innerHTML = sUrl ;
+	document.getElementById('frmUpload').action = sUrl ;
+}
+
+	</script>
+</head>
+<body>
+	<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							Connector:<br />
+							<select id="cmbConnector" name="cmbConnector">
+								<option value="asp/connector.asp" selected="selected">ASP</option>
+								<option value="aspx/connector.aspx">ASP.Net</option>
+								<option value="cfm/connector.cfm">ColdFusion</option>
+								<option value="lasso/connector.lasso">Lasso</option>
+								<option value="perl/connector.cgi">Perl</option>
+								<option value="php/connector.php">PHP</option>
+								<option value="py/connector.py">Python</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Current Folder<br />
+							<input id="txtFolder" type="text" value="/" name="txtFolder" /></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Resource Type<br />
+							<select id="cmbType" name="cmbType">
+								<option value="File" selected="selected">File</option>
+								<option value="Image">Image</option>
+								<option value="Flash">Flash</option>
+								<option value="Media">Media</option>
+								<option value="Invalid">Invalid Type (for testing)</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+				<br />
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td valign="top">
+							<a href="#" onclick="GetFolders();">Get Folders</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="CreateFolder();">Create Folder</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
+								File Upload<br />
+								<input id="txtFileUpload" type="file" name="NewFile" />
+								<input type="submit" value="Upload" onclick="SetAction();" />
+							</form>
+						</td>
+					</tr>
+				</table>
+				<br />
+				URL: <span id="eUrl"></span>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" valign="top">
+				<iframe id="eRunningFrame" src="javascript:void(0)" name="eRunningFrame" width="100%"
+					height="100%"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html.org	(revision 838)
@@ -0,0 +1,192 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the "File Uploaders".
+-->
+<html>
+	<head>
+		<title>FCKeditor - Uploaders Tests</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<script type="text/javascript">
+
+// Automatically detect the correct document.domain (#1919).
+(function()
+{
+	var d = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.opener.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+function SendFile()
+{
+	var sUploaderUrl = cmbUploaderUrl.value ;
+
+	if ( sUploaderUrl.length == 0 )
+		sUploaderUrl = txtCustomUrl.value ;
+
+	if ( sUploaderUrl.length == 0 )
+	{
+		alert( 'Please provide your custom URL or select a default one' ) ;
+		return ;
+	}
+
+	eURL.innerHTML = sUploaderUrl ;
+	txtUrl.value = '' ;
+
+	var date = new Date()
+
+	frmUpload.action = sUploaderUrl + '?time=' + date.getTime();
+	if (document.getElementById('cmbType').value) {
+		frmUpload.action = frmUpload.action + '&Type='+document.getElementById('cmbType').value;
+	}
+	if (document.getElementById('CurrentFolder').value) {
+		frmUpload.action = frmUpload.action + '&CurrentFolder='+document.getElementById('CurrentFolder').value;
+	}
+	frmUpload.submit() ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			txtUrl.value = fileUrl ;
+			alert( 'File uploaded with no errors' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			break ;
+		case 10 :	// Custom warning
+			txtUrl.value = fileUrl ;
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			txtUrl.value = fileUrl ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+		</script>
+	</head>
+	<body>
+		<table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">
+			<tr>
+				<td>
+					<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+						<tr>
+							<td nowrap>
+								Select the "File Uploader" to use: <br>
+								<select id="cmbUploaderUrl">
+									<option selected value="asp/upload.asp">ASP</option>
+									<option value="aspx/upload.aspx">ASP.Net</option>
+									<option value="cfm/upload.cfm">ColdFusion</option>
+									<option value="lasso/upload.lasso">Lasso</option>
+									<option value="perl/upload.cgi">Perl</option>
+									<option value="php/upload.php">PHP</option>
+									<option value="py/upload.py">Python</option>
+									<option value="">(Custom)</option>
+								</select>
+							</td>
+						<td>
+							Resource Type<br />
+							<select id="cmbType" name="cmbType">
+								<option value="">None</option>
+								<option value="File">File</option>
+								<option value="Image">Image</option>
+								<option value="Flash">Flash</option>
+								<option value="Media">Media</option>
+								<option value="Invalid">Invalid Type (for testing)</option>
+							</select>
+						</td>
+						<td>
+						Current Folder: <br>
+						<input type="text" name="CurrentFolder" id="CurrentFolder" value="/">
+						</td>
+							<td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%">
+								Custom Uploader URL:<BR>
+								<input id="txtCustomUrl" style="WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc" disabled type="text">
+							</td>
+						</tr>
+					</table>
+					<br>
+					<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+						<tr>
+							<td noWrap>
+								<form id="frmUpload" target="UploadWindow" enctype="multipart/form-data" action="" method="post">
+									Upload a new file:<br>
+									<input type="file" name="NewFile"><br>
+
+									<input type="button" value="Send it to the Server" onclick="SendFile();">
+								</form>
+							</td>
+							<td style="WIDTH: 16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+							<td vAlign="top" width="100%">
+								Uploaded File URL:<br>
+								<INPUT id="txtUrl" style="WIDTH: 100%" readonly type="text">
+							</td>
+						</tr>
+					</table>
+					<br>
+					Post URL: <span id="eURL">&nbsp;</span>
+				</td>
+			</tr>
+			<tr>
+				<td height="100%">
+					<iframe name="UploadWindow" width="100%" height="100%" src="javascript:void(0)"></iframe>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_dtd_test.html	(revision 838)
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>DTD Test Page</title>
+	<script type="text/javascript">
+
+	// Define an object for this test page, so the assignment to FCK.DTD works
+	var FCK = {} ;
+	</script>
+	<script type="text/javascript" src="../_source/internals/fcktools.js"></script>
+	<script type="text/javascript" src="fck_xhtml10transitional.js"></script>
+</head>
+<body>
+	<h1>
+		DTD Contents
+	</h1>
+	<table border="1">
+		<script type="text/javascript">
+
+for ( var p in FCK.DTD )
+{
+	document.write( '<tr><td><b>' + p + '</b></td><td>' ) ;
+
+	var isFirst = true ;
+
+	for ( var c in FCK.DTD[p] )
+	{
+		if ( !isFirst )
+			document.write( ', ' ) ;
+		isFirst = false ;
+
+		document.write( c ) ;
+	}
+
+
+	document.write( '</td></tr>' ) ;
+}
+		</script>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js	(revision 838)
@@ -0,0 +1,140 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Contains the DTD mapping for XHTML 1.0 Transitional.
+ * This file was automatically generated from the file: xhtml10-transitional.dtd
+ */
+FCK.DTD = (function()
+{
+    var X = FCKTools.Merge ;
+
+    var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I ;
+    A = {isindex:1, fieldset:1} ;
+    B = {input:1, button:1, select:1, textarea:1, label:1} ;
+    C = X({a:1}, B) ;
+    D = X({iframe:1}, C) ;
+    E = {hr:1, ul:1, menu:1, div:1, blockquote:1, noscript:1, table:1, center:1, address:1, dir:1, pre:1, h5:1, dl:1, h4:1, noframes:1, h6:1, ol:1, h1:1, h3:1, h2:1} ;
+    F = {ins:1, del:1, script:1} ;
+    G = X({b:1, acronym:1, bdo:1, 'var':1, '#':1, abbr:1, code:1, br:1, i:1, cite:1, kbd:1, u:1, strike:1, s:1, tt:1, strong:1, q:1, samp:1, em:1, dfn:1, span:1}, F) ;
+    H = X({sub:1, img:1, object:1, sup:1, basefont:1, map:1, applet:1, font:1, big:1, small:1}, G) ;
+    I = X({p:1}, H) ;
+    J = X({iframe:1}, H, B) ;
+    K = {img:1, noscript:1, br:1, kbd:1, center:1, button:1, basefont:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, font:1, '#':1, select:1, menu:1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, iframe:1, strong:1, textarea:1, noframes:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, strike:1, dir:1, map:1, dl:1, applet:1, del:1, isindex:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, u:1, s:1, tt:1, address:1, q:1, pre:1, p:1, em:1, dfn:1} ;
+
+    L = X({a:1}, J) ;
+    M = {tr:1} ;
+    N = {'#':1} ;
+    O = X({param:1}, K) ;
+    P = X({form:1}, A, D, E, I) ;
+    Q = {li:1} ;
+
+    return {
+        col: {},
+        tr: {td:1, th:1},
+        img: {},
+        colgroup: {col:1},
+        noscript: P,
+        td: P,
+        br: {},
+        th: P,
+        center: P,
+        kbd: L,
+        button: X(I, E),
+        basefont: {},
+        h5: L,
+        h4: L,
+        samp: L,
+        h6: L,
+        ol: Q,
+        h1: L,
+        h3: L,
+        option: N,
+        h2: L,
+        form: X(A, D, E, I),
+        select: {optgroup:1, option:1},
+        font: J,		// Changed from L to J (see (1))
+        ins: P,
+        menu: Q,
+        abbr: L,
+        label: L,
+        table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1},
+        code: L,
+        script: N,
+        tfoot: M,
+        cite: L,
+        li: P,
+        input: {},
+        iframe: P,
+        strong: J,		// Changed from L to J (see (1))
+        textarea: N,
+        noframes: P,
+        big: J,			// Changed from L to J (see (1))
+        small: J,		// Changed from L to J (see (1))
+        span: J,		// Changed from L to J (see (1))
+        hr: {},
+        dt: L,
+        sub: J,			// Changed from L to J (see (1))
+        optgroup: {option:1},
+        param: {},
+        bdo: L,
+        'var': J,		// Changed from L to J (see (1))
+        div: P,
+        object: O,
+        sup: J,			// Changed from L to J (see (1))
+        dd: P,
+        strike: J,		// Changed from L to J (see (1))
+        area: {},
+        dir: Q,
+        map: X({area:1, form:1, p:1}, A, F, E),
+        applet: O,
+        dl: {dt:1, dd:1},
+        del: P,
+        isindex: {},
+        fieldset: X({legend:1}, K),
+        thead: M,
+        ul: Q,
+        acronym: L,
+        b: J,			// Changed from L to J (see (1))
+        a: J,
+        blockquote: P,
+        caption: L,
+        i: J,			// Changed from L to J (see (1))
+        u: J,			// Changed from L to J (see (1))
+        tbody: M,
+        s: L,
+        address: X(D, I),
+        tt: J,			// Changed from L to J (see (1))
+        legend: L,
+        q: L,
+        pre: X(G, C),
+        p: L,
+        em: J,			// Changed from L to J (see (1))
+        dfn: L
+    } ;
+})() ;
+
+/*
+	Notes:
+	(1) According to the DTD, many elements, like <b> accept <a> elements
+	    inside of them. But, to produce better output results, we have manually
+	    changed the map to avoid breaking the links on pieces, having
+	    "<b>this is a </b><a><b>link</b> test</a>", instead of
+	    "<b>this is a <a>link</a></b><a> test</a>".
+*/
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js	(revision 838)
@@ -0,0 +1,116 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Contains the DTD mapping for XHTML 1.0 Strict.
+ * This file was automatically generated from the file: xhtml10-strict.dtd
+ */
+FCK.DTD = (function()
+{
+    var X = FCKTools.Merge ;
+
+    var H,I,J,K,C,L,M,A,B,D,E,G,N,F ;
+    A = {ins:1, del:1, script:1} ;
+    B = {hr:1, ul:1, div:1, blockquote:1, noscript:1, table:1, address:1, pre:1, p:1, h5:1, dl:1, h4:1, ol:1, h6:1, h1:1, h3:1, h2:1} ;
+    C = X({fieldset:1}, B) ;
+    D = X({sub:1, bdo:1, 'var':1, sup:1, br:1, kbd:1, map:1, samp:1, b:1, acronym:1, '#':1, abbr:1, code:1, i:1, cite:1, tt:1, strong:1, q:1, em:1, big:1, small:1, span:1, dfn:1}, A) ;
+    E = X({img:1, object:1}, D) ;
+    F = {input:1, button:1, textarea:1, select:1, label:1} ;
+    G = X({a:1}, F) ;
+    H = {img:1, noscript:1, br:1, kbd:1, button:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, select:1, '#':1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, strong:1, textarea:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, map:1, dl:1, del:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, address:1, tt:1, q:1, pre:1, p:1, em:1, dfn:1} ;
+
+    I = X({form:1, fieldset:1}, B, E, G) ;
+    J = {tr:1} ;
+    K = {'#':1} ;
+    L = X(E, G) ;
+    M = {li:1} ;
+    N = X({form:1}, A, C) ;
+
+    return {
+        col: {},
+        tr: {td:1, th:1},
+        img: {},
+        colgroup: {col:1},
+        noscript: N,
+        td: I,
+        br: {},
+        th: I,
+        kbd: L,
+        button: X(B, E),
+        h5: L,
+        h4: L,
+        samp: L,
+        h6: L,
+        ol: M,
+        h1: L,
+        h3: L,
+        option: K,
+        h2: L,
+        form: X(A, C),
+        select: {optgroup:1, option:1},
+        ins: I,
+        abbr: L,
+        label: L,
+        code: L,
+        table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1},
+        script: K,
+        tfoot: J,
+        cite: L,
+        li: I,
+        input: {},
+        strong: L,
+        textarea: K,
+        big: L,
+        small: L,
+        span: L,
+        dt: L,
+        hr: {},
+        sub: L,
+        optgroup: {option:1},
+        bdo: L,
+        param: {},
+        'var': L,
+        div: I,
+        object: X({param:1}, H),
+        sup: L,
+        dd: I,
+        area: {},
+        map: X({form:1, area:1}, A, C),
+        dl: {dt:1, dd:1},
+        del: I,
+        fieldset: X({legend:1}, H),
+        thead: J,
+        ul: M,
+        acronym: L,
+        b: L,
+        a: X({img:1, object:1}, D, F),
+        blockquote: N,
+        caption: L,
+        i: L,
+        tbody: J,
+        address: L,
+        tt: L,
+        legend: L,
+        q: L,
+        pre: X({a:1}, D, F),
+        p: L,
+        em: L,
+        dfn: L
+    } ;
+})() ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/dtd/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckadobeair.js	(revision 838)
@@ -0,0 +1,176 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Compatibility code for Adobe AIR.
+ */
+
+if ( FCKBrowserInfo.IsAIR )
+{
+	var FCKAdobeAIR = (function()
+	{
+		/*
+		 * ### Private functions.
+		 */
+
+		var getDocumentHead = function( doc )
+		{
+			var head ;
+			var heads = doc.getElementsByTagName( 'head' ) ;
+
+			if( heads && heads[0] )
+				head = heads[0] ;
+			else
+			{
+				head = doc.createElement( 'head' ) ;
+				doc.documentElement.insertBefore( head, doc.documentElement.firstChild ) ;
+			}
+
+			return head ;
+		} ;
+
+		/*
+		 * ### Public interface.
+		 */
+		return {
+			FCKeditorAPI_Evaluate : function( parentWindow, script )
+			{
+				// TODO : This one doesn't work always. The parent window will
+				// point to an anonymous function in this window. If this
+				// window is destroyied the parent window will be pointing to
+				// an invalid reference.
+
+				// Evaluate the script in this window.
+				eval( script ) ;
+
+				// Point the FCKeditorAPI property of the parent window to the
+				// local reference.
+				parentWindow.FCKeditorAPI = window.FCKeditorAPI ;
+			},
+
+			EditingArea_Start : function( doc, html )
+			{
+				// Get the HTML for the <head>.
+				var headInnerHtml = html.match( /<head>([\s\S]*)<\/head>/i )[1] ;
+
+				if ( headInnerHtml && headInnerHtml.length > 0 )
+				{
+					// Inject the <head> HTML inside a <div>.
+					// Do that before getDocumentHead because WebKit moves
+					// <link css> elements to the <head> at this point.
+					var div = doc.createElement( 'div' ) ;
+					div.innerHTML = headInnerHtml ;
+
+					// Move the <div> nodes to <head>.
+					FCKDomTools.MoveChildren( div, getDocumentHead( doc ) ) ;
+				}
+
+				doc.body.innerHTML = html.match( /<body>([\s\S]*)<\/body>/i )[1] ;
+
+				//prevent clicking on hyperlinks and navigating away
+				doc.addEventListener('click', function( ev )
+					{
+						ev.preventDefault() ;
+						ev.stopPropagation() ;
+					}, true ) ;
+			},
+
+			Panel_Contructor : function( doc, baseLocation )
+			{
+				var head = getDocumentHead( doc ) ;
+
+				// Set the <base> href.
+				head.appendChild( doc.createElement('base') ).href = baseLocation ;
+
+				doc.body.style.margin	= '0px' ;
+				doc.body.style.padding	= '0px' ;
+			},
+
+			ToolbarSet_GetOutElement : function( win, outMatch )
+			{
+				var toolbarTarget = win.parent ;
+
+				var targetWindowParts = outMatch[1].split( '.' ) ;
+				while ( targetWindowParts.length > 0 )
+				{
+					var part = targetWindowParts.shift() ;
+					if ( part.length > 0 )
+						toolbarTarget = toolbarTarget[ part ] ;
+				}
+
+				toolbarTarget = toolbarTarget.document.getElementById( outMatch[2] ) ;
+			},
+
+			ToolbarSet_InitOutFrame : function( doc )
+			{
+				var head = getDocumentHead( doc ) ;
+
+				head.appendChild( doc.createElement('base') ).href = window.document.location ;
+
+				var targetWindow = doc.defaultView;
+
+				targetWindow.adjust = function()
+				{
+					targetWindow.frameElement.height = doc.body.scrollHeight;
+				} ;
+
+				targetWindow.onresize = targetWindow.adjust ;
+				targetWindow.setTimeout( targetWindow.adjust, 0 ) ;
+
+				doc.body.style.overflow = 'hidden';
+				doc.body.innerHTML = document.getElementById( 'xToolbarSpace' ).innerHTML ;
+			}
+		} ;
+	})();
+
+	/*
+	 * ### Overrides
+	 */
+	( function()
+	{
+		// Save references for override reuse.
+		var _Original_FCKPanel_Window_OnFocus	= FCKPanel_Window_OnFocus ;
+		var _Original_FCKPanel_Window_OnBlur	= FCKPanel_Window_OnBlur ;
+		var _Original_FCK_StartEditor			= FCK.StartEditor ;
+
+		FCKPanel_Window_OnFocus = function( e, panel )
+		{
+			// Call the original implementation.
+			_Original_FCKPanel_Window_OnFocus.call( this, e, panel ) ;
+
+			if ( panel._focusTimer )
+				clearTimeout( panel._focusTimer ) ;
+		}
+
+		FCKPanel_Window_OnBlur = function( e, panel )
+		{
+			// Delay the execution of the original function.
+			panel._focusTimer = FCKTools.SetTimeout( _Original_FCKPanel_Window_OnBlur, 100, this, [ e, panel ] ) ;
+		}
+
+		FCK.StartEditor = function()
+		{
+			// Force pointing to the CSS files instead of using the inline CSS cached styles.
+			window.FCK_InternalCSS			= FCKConfig.FullBasePath + 'css/fck_internal.css' ;
+			window.FCK_ShowTableBordersCSS	= FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ;
+
+			_Original_FCK_StartEditor.apply( this, arguments ) ;
+		}
+	})();
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js	(revision 838)
@@ -0,0 +1,108 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+
+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;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
+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;};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);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};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;};
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=6),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),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)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo);
+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;}})();
+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{if (C.IndexOf(B)==-1) 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++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
+var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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{if (!this.EditorDocument) return false;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]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(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');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _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|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';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;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=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();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) 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');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;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:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();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.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;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 if (FCKBrowserInfo.IsSafari) C=A;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(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (window.onresize) window.onresize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this._ExecDrop=function(evt){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){if (evt.dataTransfer){var A=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}else if (FCKConfig.ShowDropDialog) FCK.PasteAsPlainText();evt.preventDefault();evt.stopPropagation();}};this._ExecCheckCaret=function(evt){if (FCK.EditMode!=0) return;if (evt.type=='keypress'){var B=evt.keyCode;if (B<33||B>40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCKSelection.GetSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||String(H.parentNode.contentEditable)=='false'||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&&B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&&B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&&H.parentNode!=FCK.EditorDocument.body&&H.parentNode!=FCK.EditorDocument.documentElement&&H==H.parentNode.lastChild&&(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&&!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent("OnSelectionChange");};setTimeout(E,1);};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);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){var N=function(evt){ if (!FCK.MouseDownFlag) evt.returnValue=false;};this.EditorDocument.addEventListener('dragenter',N,true);this.EditorDocument.addEventListener('dragover',N,true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var O=ev.srcElement;if (O.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(O);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};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};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)	{ FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();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);FCKUndo.SaveUndoStep();this.EditorDocument.execCommand('inserthtml',false,A);this.Focus();FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};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,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate("//a[@href='"+D+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i<E.snapshotLength;i++){var F=E.snapshotItem(i);F.href=A;if (D==F.innerHTML) F.innerHTML='';C.push(F);}};return C;};FCK._FillEmptyBlock=function(A){if (!A||A.nodeType!=1) return;var B=A.tagName.toLowerCase();if (B!='p'&&B!='div') return;if (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCKSelection.GetSelection();if (!A||A.rangeCount<1) return;var B=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+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+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};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._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};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);};var D=new RegExp("(<|&lt;)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|&gt;)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
+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) {}};
+var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},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){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},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,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},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;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=FCKTools.GetElementDocument(A).documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=FCKTools.GetElementDocument(A[C].parent);var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&&currentWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.]\w*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/css"'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.]\w*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();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){if (A.document) 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._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push("&nbsp;");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};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||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};
+FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else if (FCKBrowserInfo.IsSafari) A.style.KhtmlUserSelect='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.AppendStyleString=function(A,B){if (!B) return null;var e=A.createElement("STYLE");e.appendChild(A.createTextNode(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':var B=(new DOMParser()).parseFromString('<tmp></tmp>','text/xml');FCKDomTools.RemoveNode(B.firstChild);return B;};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=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.getAttribute('style');if (D&&D.length>0){C.Inline=D;A.setAttribute('style','',0);};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return A.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);var E=null;while (A){var F=D.getComputedStyle(A,'').position;if (F&&F!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (!FCKBrowserInfo.IsOpera){var G=E;while (G&&G!=A){c.X-=G.scrollLeft;c.Y-=G.scrollTop;G=G.parentNode;}};E=A;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;E=null;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;};
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : "2.6",VersionBuild : "18638",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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){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=FCKeditorAPI.Instances;};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(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+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');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();};
+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,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\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:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\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,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
+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,form: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,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col: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,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
+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','fr-ca':'French (Canada)',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);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);this.TranslateElements(A,'LEGEND','innerHTML');},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];}};
+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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};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');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();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;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();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();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);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&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);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;};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.TagProcessors={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){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');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;},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;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)}	while (B&&B.nodeName.toLowerCase()=='li') return D;},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;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);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;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+FCKXHtml._GetMainXmlString=function(){return (new XMLSerializer()).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.replace(FCKRegexLib.FCK_Class,'');if (G.length==0) continue;}else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}};if (FCKBrowserInfo.IsOpera){FCKXHtml.TagProcessors['head']=function(A,B){FCKXHtml.XML._HeadElement=A;A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B,C){if (B.parentNode.nodeName.toLowerCase()!='head'){var D=FCKXHtml.XML._HeadElement;if (D&&C!=D){delete B._fckxhtmljob;FCKXHtml._AppendNode(D,B);return null;}};return A;}};
+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();};
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
+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.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+'&nbsp;'+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.width=H.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=I+A;H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(I+A);J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;(H.onreadystatechange=function(){if (H.readyState=='complete'){H.onreadystatechange=null;K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);}})();}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();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) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+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 (!A) continue;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;};
+FCK.DTD=(function(){var X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})();
+var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElement(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit,true);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C||((B===null||B==='')&&(C===null||C==='')))},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return '&nbsp;';else if (offset==0) return new Array(match.length).join('&nbsp;')+' ';else return ' '+new Array(match.length).join('&nbsp;');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<BR>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join('&nbsp;')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<BR />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag) value=value.replace(/([ \t\n\r]+|&nbsp;)/g,' ');else if (isTag&&value=='<BR />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<PRE>\n'+F.join('')+'</PRE>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H=[];var I=[];while((F=E.GetNextParagraph())){var J=this.BuildElement(G);var K=J.nodeName.IEquals('pre');var L=F.nodeName.IEquals('pre');if (K&&!L){J=this._ToPre(G,F,J);H.push(J);}else if (!K&&L){J=this._FromPre(G,F,J);I.push(J);}else FCKDomTools.MoveChildren(F,J);F.parentNode.insertBefore(J,F);FCKDomTools.RemoveNode(F);};for (var i=0;i<H.length-1;i++){if (FCKDomTools.GetNextSourceElement(H[i],true,[],[],true)!=H[i+1]) continue;H[i+1].innerHTML=H[i].innerHTML+'\n\n'+H[i+1].innerHTML;FCKDomTools.RemoveNode(H[i]);};for (var i=0;i<I.length;i++){var M=I[i];var N=null;for (var j=0;j<M.childNodes.length;j++){var O=M.childNodes[j];if (O.nodeName.IEquals('br')&&j!=0&&j!=M.childNodes.length-2&&O.nextSibling&&O.nextSibling.nodeName.IEquals('br')){FCKDomTools.RemoveNode(O.nextSibling);FCKDomTools.RemoveNode(O);j--;N=FCKDomTools.InsertAfterNode(N||M,G.createElement(M.nodeName));continue;};if (N){FCKDomTools.MoveNode(O,N);j--;}}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}};
+var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (G!=(F._LastState||null)){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
+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;}};
+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 (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i<count;i++){var C=B[i];if (C.nodeType==1&&FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},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;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A&&A.rangeCount>0){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}else if (this.Window.document) this.MoveToElementStart(this.Window.document.body);};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=A.startContainer;if (A.collapsed&&B.nodeType==1&&B.childNodes.length==0) B.appendChild(A._Document.createTextNode(''));var C=this.Window.document.createRange();C.setStart(B,A.startOffset);try{C.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);C.setEnd(A.endContainer,A.endOffset);}else throw(e);};var D=this.Window.getSelection();D.removeAllRanges();D.addRange(C);}};FCKDomRange.prototype.SelectBookmark=function(A){var B=this.Window.document.createRange();var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);B.setStart(C.parentNode,FCKDomTools.GetIndexOf(C));FCKDomTools.RemoveNode(C);if (D){B.setEnd(D.parentNode,FCKDomTools.GetIndexOf(D));FCKDomTools.RemoveNode(D);};var E=this.Window.getSelection();E.removeAllRanges();E.addRange(B);};
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=H;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
+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);}};
+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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));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)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};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);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.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();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};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 (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};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.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);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;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){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{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){FCKTools.RunFunction(function(){var F=doc.getElementsByTagName('object');for (var i=F.length-1;i>=0;i--) B(F[i]);var G=doc.getElementsByTagName('embed');for (var i=G.length-1;i>=0;i--) B(G[i]);});},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});
+var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
+FCKSelection.GetType=function(){var A='Text';var B;try { B=this.GetSelection();} catch (e) {};if (B&&B.rangeCount==1){var C=B.getRangeAt(0);if (C.startContainer==C.endContainer&&(C.endOffset-C.startOffset)==1&&C.startContainer.nodeType==1&&FCKListsLib.StyleObjectElements[C.startContainer.childNodes[C.startOffset].nodeName.toLowerCase()]){A='Control';}};return A;};FCKSelection.GetSelectedElement=function(){var A=!!FCK.EditorWindow&&this.GetSelection();if (!A||A.rangeCount<1) return null;var B=A.getRangeAt(0);if (B.startContainer!=B.endContainer||B.startContainer.nodeType!=1||B.startOffset!=B.endOffset-1) return null;var C=B.startContainer.childNodes[B.startOffset];if (C.nodeType!=1) return null;return C;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=this.GetSelection();if (A){if (A.anchorNode&&A.anchorNode==A.focusNode) return A.anchorNode.parentNode;var B=new FCKElementPath(A.anchorNode);var C=new FCKElementPath(A.focusNode);var D=null;var E=null;if (B.Elements.length>C.Elements.length){D=B.Elements;E=C.Elements;}else{D=C.Elements;E=B.Elements;};var F=D.length-E.length;for(var i=0;i<E.length;i++){if (D[F+i]==E[i]) return E[i];};return null;}};return null;};FCKSelection.GetBoundaryParentElement=function(A){if (!FCK.EditorWindow) return null;if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var B=this.GetSelection();if (B&&B.rangeCount>0){var C=B.getRangeAt(A?0:(B.rangeCount-1));var D=A?C.startContainer:C.endContainer;return (D.nodeType==1?D:D.parentNode);}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=this.GetSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=this.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=this.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=this.GetSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=this.GetSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};FCKSelection.GetSelection=function(){return FCK.EditorWindow.getSelection();};FCKSelection.Save=function(){};FCKSelection.Restore=function(){};FCKSelection.Release=function(){};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);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();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};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._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCKTools.GetElementDocument(B).createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};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._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=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._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=FCKTools.GetElementDocument(B).createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCKSelection.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;};
+var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;};
+FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B;var C=FCKTools.CreateXmlObject('XmlHttp');C.open('GET',A,false);C.send(null);if (C.status==200||C.status==304) B=C.responseXML;else if (C.status==0&&C.readyState==4) B=C.responseXML;else B=null;if (B){try{var D=B.firstChild;}catch (e){B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}};if (!B||!B.firstChild){this.Error=true;if (window.confirm('Error loading "'+A+'" (HTTP Status: '+C.status+').\r\nDo you want to see the server response dump?')) alert(C.responseText);};this.DOMDocument=B;},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;},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;}};
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
+var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};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.SetData('');FCKUndo.Typing=true;FCK.Focus();};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(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();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);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();};
+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(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+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.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',410,320,FCKTools.Bind(B,B.SetColor));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',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>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){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>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
+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);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};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);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";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();if (FCK.EditMode==0) 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';};
+var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=FCKTools.GetElementDocument(A.root).createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=FCKTools.GetElementDocument(A.root);var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
+var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
+var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0) return -1;return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
+var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
+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 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);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',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,240);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 'Rule':B=new FCKRuleCommand();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 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);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 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);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;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
+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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.width=D.height=0;FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',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;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.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,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.width=N;M._IFrame.height=O;},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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;};
+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;};
+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=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.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(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
+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];else this.IconPath=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=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};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);};
+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.SkinEditorCSS);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(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};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.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.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){if (!this.Items[i]) continue;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){A=(!A||A.length==0)?'&nbsp;':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) 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>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);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(A,B){if (B.Enabled){switch (B.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(A,B){switch (B.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,A){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);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this.FieldWidth=null;this.PanelWidth=null;this.PanelMaxHeight=null;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';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;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else 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);};
+var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');};
+var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}};
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick;
+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;this.RegisterPanel(B);};FCKToolbarPanelButton.prototype.RegisterPanel=function(A){if (A._FCKToolbarPanelButton) return;A._FCKToolbarPanelButton=this;var B=A.Document.body.appendChild(A.Document.createElement('div'));B.style.position='absolute';B.style.top='0px';var C=A._FCKToolbarPanelButtonLineDiv=B.appendChild(A.Document.createElement('IMG'));C.className='TB_ConnectionLine';C.style.position='absolute';C.src=FCK_SPACER_PATH;A.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName);var D=C._Panel;D._FCKToolbarPanelButtonLineDiv.style.width=(e.offsetWidth-2)+'px';C.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;
+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 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);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('Rule',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;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;};
+var FCKToolbar=function(){this.Items=[];};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){var B=FCKTools.GetElementDocument(A);var e=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;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';};
+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);};
+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;case 'None':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){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else 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 arguments.callee('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;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange < currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;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;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',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();};
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};var I=function(element){element.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var J={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var K=FCKTools.GetViewPaneSize(D);var L=FCKTools.GetScrollPosition(D);var M=Math.max(L.Y+(K.Height-height-20)/2,0);var N=Math.max(L.X+(K.Width-width-20)/2,0);var O=E.createElement('iframe');I(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':'absolute','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=J;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');I(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');I(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();},GetCover:function(){return C;}};})();
+var FCKMenuItem=function(A,B,C,D,E,F){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);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};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;};
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};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){if (B.Hide) B.Hide();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();A.Panel.HasFocus=true;};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';};
+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.SkinEditorCSS);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();};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw=true;return F;};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);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}};return true;};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);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
+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('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,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);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};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(A.CustomData);};
+var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
+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');};
+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;};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/js/fckeditorcode_ie.js	(revision 838)
@@ -0,0 +1,109 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+
+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;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
+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;};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);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};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;};
+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||!window.FCKUnloadFlag) 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();};
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=6),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),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)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo);
+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;}})();
+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{if (C.IndexOf(B)==-1) 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++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
+var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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{if (!this.EditorDocument) return false;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]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(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');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _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|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';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;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=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();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) 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');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;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:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();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.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;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 if (FCKBrowserInfo.IsSafari) C=A;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(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+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(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&&!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&&FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));A.returnValue=false;A.cancelBubble=true;}};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent("onkeydown",FCK._KeyDownListener);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};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=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__" style="display:none;">fakeFCKRemove</span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};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.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=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(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData("Text");else B=A;if (B&&B.length>0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('</p>');var D=B.search('<p>');if ((C!=-1&&D!=-1&&C<D)||(C!=-1&&D==-1)){var E=B.substr(0,C);B=B.substr(C+4);this.InsertHtml(E);};FCKUndo.SaveLocked=true;this.InsertHtml(B);FCKUndo.SaveLocked=false;}};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.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,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i<G.length;i++){var D=G[i];if (D.getAttribute('href',2)==F){var I=D.innerHTML;D.href=A;D.innerHTML=I;var J=D.lastChild;if (J&&J.nodeName=='BR'){FCKDomTools.InsertAfterNode(D,D.removeChild(J));};C.push(D);}}};return C;};function _FCK_RemoveDisabledAtt(){this.removeAttribute('disabled');};function Doc_OnMouseDown(A){var e=A.srcElement;if (e.nodeName.IEquals('input')&&e.type.IEquals(['radio','checkbox'])&&!e.disabled){e.disabled=true;FCKTools.SetTimeout(_FCK_RemoveDisabledAtt,1,e);}};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+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+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};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._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};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);};var D=new RegExp("(<|&lt;)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|&gt;)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
+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) {}};
+var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},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){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},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,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},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;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=FCKTools.GetElementDocument(A).documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=FCKTools.GetElementDocument(A[C].parent);var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&&currentWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.]\w*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/css"'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.]\w*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();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){if (A.document) 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._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push("&nbsp;");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};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||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;var s=A.createStyleSheet("");s.cssText=B;return s;};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':try { return new XMLHttpRequest();} catch (e) {};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=A.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.style.cssText;if (D.length>0){C.Inline=D;A.style.cssText='';};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';A.style.cssText=B.Inline||'';FCKTools.RestoreFormStyles(A,C);};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();};
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : "2.6",VersionBuild : "18638",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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){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=FCKeditorAPI.Instances;};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(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+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');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();};
+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,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\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:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\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,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
+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,form: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,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col: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,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
+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','fr-ca':'French (Canada)',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);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);this.TranslateElements(A,'LEGEND','innerHTML');},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];}};
+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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'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','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};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');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();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;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();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();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);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&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);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;};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.TagProcessors={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){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');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;},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;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)}	while (B&&B.nodeName.toLowerCase()=='li') return D;},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;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);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;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+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'){var I=FCKTools.ProtectFormStyles(B);H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);}else if (G=='class'){H=F.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (H.length==0) continue;}else if (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['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);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['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,true);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['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['map']=function(A,B){if (!A.attributes.getNamedItem('name')){var C=B.name;if (C) FCKXHtml._AppendAttribute(A,'name',C);};A=FCKXHtml._AppendChildNodes(A,B,true);return A;};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['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['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;};
+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();};
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
+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.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+'&nbsp;'+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.width=H.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=I+A;H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(I+A);J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;(H.onreadystatechange=function(){if (H.readyState=='complete'){H.onreadystatechange=null;K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);}})();}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();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) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+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 (!A) continue;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;};
+FCK.DTD=(function(){var X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})();
+var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElement(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit,true);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C||((B===null||B==='')&&(C===null||C==='')))},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return '&nbsp;';else if (offset==0) return new Array(match.length).join('&nbsp;')+' ';else return ' '+new Array(match.length).join('&nbsp;');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<BR>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join('&nbsp;')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<BR />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag) value=value.replace(/([ \t\n\r]+|&nbsp;)/g,' ');else if (isTag&&value=='<BR />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<PRE>\n'+F.join('')+'</PRE>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H=[];var I=[];while((F=E.GetNextParagraph())){var J=this.BuildElement(G);var K=J.nodeName.IEquals('pre');var L=F.nodeName.IEquals('pre');if (K&&!L){J=this._ToPre(G,F,J);H.push(J);}else if (!K&&L){J=this._FromPre(G,F,J);I.push(J);}else FCKDomTools.MoveChildren(F,J);F.parentNode.insertBefore(J,F);FCKDomTools.RemoveNode(F);};for (var i=0;i<H.length-1;i++){if (FCKDomTools.GetNextSourceElement(H[i],true,[],[],true)!=H[i+1]) continue;H[i+1].innerHTML=H[i].innerHTML+'\n\n'+H[i+1].innerHTML;FCKDomTools.RemoveNode(H[i]);};for (var i=0;i<I.length;i++){var M=I[i];var N=null;for (var j=0;j<M.childNodes.length;j++){var O=M.childNodes[j];if (O.nodeName.IEquals('br')&&j!=0&&j!=M.childNodes.length-2&&O.nextSibling&&O.nextSibling.nodeName.IEquals('br')){FCKDomTools.RemoveNode(O.nextSibling);FCKDomTools.RemoveNode(O);j--;N=FCKDomTools.InsertAfterNode(N||M,G.createElement(M.nodeName));continue;};if (N){FCKDomTools.MoveNode(O,N);j--;}}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}};
+var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (G!=(F._LastState||null)){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
+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;}};
+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 (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i<count;i++){var C=B[i];if (C.nodeType==1&&FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},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;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&&!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&&!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='&#65279;';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('<span id="'+E+'"></span>');return B.getElementById(E);};
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=H;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
+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));}};
+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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));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)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};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);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.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();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};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 (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};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.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);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;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){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{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){FCKTools.RunFunction(function(){var F=doc.getElementsByTagName('object');for (var i=F.length-1;i>=0;i--) B(F[i]);var G=doc.getElementsByTagName('embed');for (var i=G.length-1;i>=0;i--) B(G[i]);});},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});
+var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
+FCKSelection.GetType=function(){try{var A=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&&A.item) return this.GetSelection().createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return this.GetSelection().createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();this.GetSelection().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=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type=="Control"){B=this.GetSelectedElement();}else{var C=this.GetSelection().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 (this.GetSelection().type=="Control"){oRange=this.GetSelection().createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=this.GetSelection().createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=this.GetSelection();if (A.type.toLowerCase()!="none"){A.clear();};return A;};FCKSelection.GetSelection=function(){this.Restore();return FCK.EditorDocument.selection;};FCKSelection.Save=function(){FCK.Focus();var A=FCK.EditorDocument;if (!A) return;var B=A.selection;var C;if (B){C=B.createRange();if (C){if (C.parentElement&&FCKTools.GetElementDocument(C.parentElement())!=A) C=null;else if (C.item&&FCKTools.GetElementDocument(C.item(0))!=A) C=null;}};this.SelectionData=C;};FCKSelection._GetSelectionDocument=function(A){var B=A.createRange();if (!B) return null;else if (B.item) return FCKTools.GetElementDocument(B.item(0));else return FCKTools.GetElementDocument(B.parentElement());};FCKSelection.Restore=function(){if (this.SelectionData){FCK.IsSelectionChangeLocked=true;try{if (this._GetSelectionDocument(FCK.EditorDocument.selection)==FCK.EditorDocument) return;this.SelectionData.select();}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){delete this.SelectionData;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);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();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};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._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=FCKTools.GetElementDocument(B).createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(FCKTools.GetElementDocument(B).createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};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._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=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._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=FCKTools.GetElementDocument(B).createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){if (FCKSelection.GetType()=='Control'){var A=FCKSelection.MoveToAncestorNode('TD');return A?[A]:[];};var B=[];var C=FCKSelection.GetSelection().createRange();var D=FCKSelection.GetParentElement();if (D&&D.tagName.Equals('TD','TH')) B[0]=D;else{D=FCKSelection.MoveToAncestorNode('TABLE');if (D){for (var i=0;i<D.cells.length;i++){var E=FCK.EditorDocument.body.createTextRange();E.moveToElementText(D.cells[i]);if (C.inRange(E)||(C.compareEndPoints('StartToStart',E)>=0&&C.compareEndPoints('StartToEnd',E)<=0)||(C.compareEndPoints('EndToStart',E)>=0&&C.compareEndPoints('EndToEnd',E)<=0)){B[B.length]=D.cells[i];}}}};return B;};
+var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;};
+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);}},SelectNodes:function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);},SelectSingleNode:function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}};
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
+var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};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.SetData('');FCKUndo.Typing=true;FCK.Focus();};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(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();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);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();};
+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(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+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.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',410,320,FCKTools.Bind(B,B.SetColor));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',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>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){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>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
+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);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};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);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";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();if (FCK.EditMode==0) 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';};
+var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=FCKTools.GetElementDocument(A.root).createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=FCKTools.GetElementDocument(A.root);var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
+var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
+var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0) return -1;return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
+var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
+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 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);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',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,240);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 'Rule':B=new FCKRuleCommand();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 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);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 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);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;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
+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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.width=D.height=0;FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',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;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.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,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.width=N;M._IFrame.height=O;},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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;};
+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;};
+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=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.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(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
+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];else this.IconPath=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=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};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);};
+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.SkinEditorCSS);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(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};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.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.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){if (!this.Items[i]) continue;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){A=(!A||A.length==0)?'&nbsp;':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) 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>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);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(A,B){if (B.Enabled){switch (B.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(A,B){switch (B.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,A){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);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this.FieldWidth=null;this.PanelWidth=null;this.PanelMaxHeight=null;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';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;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else 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);};
+var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');};
+var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}};
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick;
+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;this.RegisterPanel(B);};FCKToolbarPanelButton.prototype.RegisterPanel=function(A){if (A._FCKToolbarPanelButton) return;A._FCKToolbarPanelButton=this;var B=A.Document.body.appendChild(A.Document.createElement('div'));B.style.position='absolute';B.style.top='0px';var C=A._FCKToolbarPanelButtonLineDiv=B.appendChild(A.Document.createElement('IMG'));C.className='TB_ConnectionLine';C.style.position='absolute';C.src=FCK_SPACER_PATH;A.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName);var D=C._Panel;D._FCKToolbarPanelButtonLineDiv.style.width=(e.offsetWidth-2)+'px';C.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;
+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 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);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('Rule',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;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;};
+var FCKToolbar=function(){this.Items=[];};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){var B=FCKTools.GetElementDocument(A);var e=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;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';};
+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);};
+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;case 'None':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){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else 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 arguments.callee('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;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange < currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;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;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',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();};
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};var I=function(element){element.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var J={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var K=FCKTools.GetViewPaneSize(D);var L=FCKTools.GetScrollPosition(D);var M=Math.max(L.Y+(K.Height-height-20)/2,0);var N=Math.max(L.X+(K.Width-width-20)/2,0);var O=E.createElement('iframe');I(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':'absolute','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=J;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');I(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');I(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();},GetCover:function(){return C;}};})();
+var FCKMenuItem=function(A,B,C,D,E,F){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);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};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;};
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};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){if (B.Hide) B.Hide();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();A.Panel.HasFocus=true;};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';};
+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.SkinEditorCSS);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();};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw=true;return F;};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);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}};return true;};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);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
+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('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,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);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};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(A.CustomData);};
+var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
+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');};
+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;};
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdebug.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdebug.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckdebug.html	(revision 838)
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the Debug window.
+ * It automatically popups if the Debug = true in the configuration file.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor Debug Window</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<script type="text/javascript">
+
+var oWindow ;
+var oDiv ;
+
+if ( !window.FCKMessages )
+	window.FCKMessages = new Array() ;
+
+window.onload = function()
+{
+	oWindow = document.getElementById('xOutput').contentWindow ;
+	oWindow.document.open() ;
+	oWindow.document.write( '<div id="divMsg"><\/div>' ) ;
+	oWindow.document.close() ;
+	oDiv	= oWindow.document.getElementById('divMsg') ;
+}
+
+function Output( message, color, noParse )
+{
+	if ( !noParse && message != null && isNaN( message ) )
+		message = message.replace(/</g, "&lt;") ;
+
+	if ( color )
+		message = '<font color="' + color + '">' + message + '<\/font>' ;
+
+	window.FCKMessages[ window.FCKMessages.length ] = message ;
+	StartTimer() ;
+}
+
+function OutputObject( anyObject, color )
+{
+	var message ;
+
+	if ( anyObject != null )
+	{
+		message = 'Properties of: ' + anyObject + '</b><blockquote>' ;
+
+		for (var prop in anyObject)
+		{
+			try
+			{
+				var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ;
+				message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ;
+			}
+			catch (e)
+			{
+				try
+				{
+					message += '<b>' + prop + '</b> : [' + typeof( anyObject[ prop ] ) + ']<br>' ;
+				}
+				catch (e)
+				{
+					message += '<b>' + prop + '</b> : [-error-]<br>' ;
+				}
+			}
+		}
+
+		message += '</blockquote><b>' ;
+	} else
+		message = 'OutputObject : Object is "null".' ;
+
+	Output( message, color, true ) ;
+}
+
+function StartTimer()
+{
+	window.setTimeout( 'CheckMessages()', 100 ) ;
+}
+
+function CheckMessages()
+{
+	if ( window.FCKMessages.length > 0 )
+	{
+		// Get the first item in the queue
+		var sMessage = window.FCKMessages[0] ;
+
+		// Removes the first item from the queue
+		var oTempArray = new Array() ;
+		for ( i = 1 ; i < window.FCKMessages.length ; i++ )
+			oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;
+		window.FCKMessages = oTempArray ;
+
+		var d = new Date() ;
+		var sTime =
+			( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +
+			( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +
+			( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +
+			( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;
+
+		var oMsgDiv = oWindow.document.createElement( 'div' ) ;
+		oMsgDiv.innerHTML = sTime + ': <b>' + sMessage + '<\/b>' ;
+		oDiv.appendChild( oMsgDiv ) ;
+		oMsgDiv.scrollIntoView() ;
+	}
+}
+
+function Clear()
+{
+	oDiv.innerHTML = '' ;
+}
+	</script>
+</head>
+<body style="margin: 10px">
+	<table style="height: 100%" cellspacing="5" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tr>
+						<td style="font-weight: bold; font-size: 1.2em;">
+							FCKeditor Debug Window</td>
+						<td align="right">
+							<input type="button" value="Clear" onclick="Clear();" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr style="height: 100%">
+			<td style="border: #696969 1px solid">
+				<iframe id="xOutput" width="100%" height="100%" scrolling="auto" src="javascript:void(0)"
+					frameborder="0"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/editor/fckeditor.html	(revision 838)
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Main page that holds the editor.
+-->
+<html>
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<meta http-equiv="Cache-Control" content="public">
+	<script type="text/javascript">
+
+// Save a reference to the default domain.
+var FCK_ORIGINAL_DOMAIN ;
+
+// Automatically detect the correct document.domain (#123).
+(function()
+{
+	var d = FCK_ORIGINAL_DOMAIN = document.domain ;
+
+	while ( true )
+	{
+		// Test if we can access a parent property.
+		try
+		{
+			var test = window.parent.document.domain ;
+			break ;
+		}
+		catch( e ) {}
+
+		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
+		d = d.replace( /.*?(?:\.|$)/, '' ) ;
+
+		if ( d.length == 0 )
+			break ;		// It was not able to detect the domain.
+
+		try
+		{
+			document.domain = d ;
+		}
+		catch (e)
+		{
+			break ;
+		}
+	}
+})() ;
+
+// Save a reference to the detected runtime domain.
+var FCK_RUNTIME_DOMAIN = document.domain ;
+
+var FCK_IS_CUSTOM_DOMAIN = ( FCK_ORIGINAL_DOMAIN != FCK_RUNTIME_DOMAIN ) ;
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ;
+
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Adobe AIR compatibility file.
+if ( FCKBrowserInfo.IsAIR )
+	LoadScript( 'js/fckadobeair.js' ) ;
+
+if ( FCKBrowserInfo.IsIE )
+{
+	// Remove IE mouse flickering.
+	try
+	{
+		document.execCommand( 'BackgroundImageCache', false, true ) ;
+	}
+	catch (e)
+	{
+		// We have been reported about loading problems caused by the above
+		// line. For safety, let's just ignore errors.
+	}
+
+	// Create the default cleanup object used by the editor.
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The first function to be called on selection change must the the styles
+// change checker, because the result of its processing may be used by another
+// functions listening to the same event.
+FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ;
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
+var FCK_InternalCSS			= FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{width:19px;height:18px;background-image:url(images/fck_hiddenfield.gif);background-repeat:no-repeat;vertical-align:text-bottom;background-position:center center}.FCK__ShowBlocks p,.FCK__ShowBlocks div,.FCK__ShowBlocks pre,.FCK__ShowBlocks address,.FCK__ShowBlocks blockquote,.FCK__ShowBlocks h1,.FCK__ShowBlocks h2,.FCK__ShowBlocks h3,.FCK__ShowBlocks h4,.FCK__ShowBlocks h5,.FCK__ShowBlocks h6{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px;padding-left:8px}.FCK__ShowBlocks p{background-image:url(images/block_p.png)}.FCK__ShowBlocks div{background-image:url(images/block_div.png)}.FCK__ShowBlocks pre{background-image:url(images/block_pre.png)}.FCK__ShowBlocks address{background-image:url(images/block_address.png)}.FCK__ShowBlocks blockquote{background-image:url(images/block_blockquote.png)}.FCK__ShowBlocks h1{background-image:url(images/block_h1.png)}.FCK__ShowBlocks h2{background-image:url(images/block_h2.png)}.FCK__ShowBlocks h3{background-image:url(images/block_h3.png)}.FCK__ShowBlocks h4{background-image:url(images/block_h4.png)}.FCK__ShowBlocks h5{background-image:url(images/block_h5.png)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
+var FCK_ShowTableBordersCSS	= FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'table:not([border]),table:not([border]) > tr > td,table:not([border]) > tr > th,table:not([border]) > tbody > tr > td,table:not([border]) > tbody > tr > th,table:not([border]) > thead > tr > td,table:not([border]) > thead > tr > th,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > tr > th,table[border=\"0\"],table[border=\"0\"] > tr > td,table[border=\"0\"] > tr > th,table[border=\"0\"] > tbody > tr > td,table[border=\"0\"] > tbody > tr > th,table[border=\"0\"] > thead > tr > td,table[border=\"0\"] > thead > tr > th,table[border=\"0\"] > tfoot > tr > td,table[border=\"0\"] > tfoot > tr > th{border:#d3d3d3 1px dotted}' ) ;
+
+// Popup the debug window if debug mode is set to true. It guarantees that the
+// first debug message will not be lost.
+if ( FCKConfig.Debug )
+	FCKDebug._GetWindow() ;
+
+// Load the active skin CSS.
+document.write( FCKTools.GetStyleHtml( FCKConfig.SkinEditorCSS ) ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		_AttachFormSubmitToAPI() ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;
+	}
+}
+
+// Gecko browsers doesn't calculate well the IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko && !FCKBrowserInfo.IsOpera )
+{
+	window.onresize = function( e )
+	{
+		// Running in Chrome makes the window receive the event including subframes.
+		// we care only about this window. Ticket #1642.
+		// #2002: The originalTarget from the event can be the current document, the window, or the editing area.
+		if ( e && e.originalTarget !== document && e.originalTarget !== window && (!e.originalTarget.ownerDocument || e.originalTarget.ownerDocument != document ))
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement = oCell.firstChild ;
+		if ( eInnerElement )
+		{
+			eInnerElement.style.height = '0px' ;
+			eInnerElement.style.height = ( oCell.scrollHeight - 2 ) + 'px' ;
+		}
+	}
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td id="xEditingArea" valign="top" style="height: 100%"></td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.php	(revision 838)
@@ -0,0 +1,77 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for PHP (All versions).
+ *
+ * It loads the correct integration file based on the PHP version (avoiding
+ * strict error messages with PHP 5).
+ */
+
+/**
+ * Check if browser is compatible with FCKeditor.
+ * Return true if is compatible.
+ *
+ * @return boolean
+ */
+function FCKeditor_IsCompatibleBrowser()
+{
+	if ( isset( $_SERVER ) ) {
+		$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+	}
+	else {
+		global $HTTP_SERVER_VARS ;
+		if ( isset( $HTTP_SERVER_VARS ) ) {
+			$sAgent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ;
+		}
+		else {
+			global $HTTP_USER_AGENT ;
+			$sAgent = $HTTP_USER_AGENT ;
+		}
+	}
+
+	if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
+	{
+		$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
+		return ($iVersion >= 5.5) ;
+	}
+	else if ( strpos($sAgent, 'Gecko/') !== false )
+	{
+		$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
+		return ($iVersion >= 20030210) ;
+	}
+	else if ( strpos($sAgent, 'Opera/') !== false )
+	{
+		$fVersion = (float)substr($sAgent, strpos($sAgent, 'Opera/') + 6, 4) ;
+		return ($fVersion >= 9.5) ;
+	}
+	else if ( preg_match( "|AppleWebKit/(\d+)|i", $sAgent, $matches ) )
+	{
+		$iVersion = $matches[1] ;
+		return ( $matches[1] >= 522 ) ;
+	}
+	else
+		return false ;
+}
+
+if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) )
+	include_once( 'fckeditor_php4.php' ) ;
+else
+	include_once( 'fckeditor_php5.php' ) ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckpackager.xml
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckpackager.xml	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckpackager.xml	(revision 838)
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the configuration file to be used with FCKpackager to generate the
+ * compressed code files in the "js" folder.
+ *
+ * Please check http://www.fckeditor.net for more info.
+-->
+<Package>
+	<Header><![CDATA[/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+]]></Header>
+	<Constants removeDeclaration="false">
+		<Constant name="FCK_STATUS_NOTLOADED" value="0" />
+		<Constant name="FCK_STATUS_ACTIVE" value="1" />
+		<Constant name="FCK_STATUS_COMPLETE" value="2" />
+		<Constant name="FCK_TRISTATE_OFF" value="0" />
+		<Constant name="FCK_TRISTATE_ON" value="1" />
+		<Constant name="FCK_TRISTATE_DISABLED" value="-1" />
+		<Constant name="FCK_UNKNOWN" value="-9" />
+		<Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" />
+		<Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" />
+		<Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" />
+		<Constant name="FCK_EDITMODE_WYSIWYG" value="0" />
+		<Constant name="FCK_EDITMODE_SOURCE" value="1" />
+		<Constant name="FCK_STYLE_BLOCK" value="0" />
+		<Constant name="FCK_STYLE_INLINE" value="1" />
+		<Constant name="FCK_STYLE_OBJECT" value="2" />
+	</Constants>
+	<PackageFile path="editor/js/fckeditorcode_ie.js">
+		<File path="editor/_source/fckconstants.js" />
+		<File path="editor/_source/fckjscoreextensions.js" />
+		<File path="editor/_source/classes/fckiecleanup.js" />
+		<File path="editor/_source/internals/fckbrowserinfo.js" />
+		<File path="editor/_source/internals/fckurlparams.js" />
+		<File path="editor/_source/classes/fckevents.js" />
+		<File path="editor/_source/classes/fckdataprocessor.js" />
+		<File path="editor/_source/internals/fck.js" />
+		<File path="editor/_source/internals/fck_ie.js" />
+		<File path="editor/_source/internals/fckconfig.js" />
+		<File path="editor/_source/internals/fckdebug.js" />
+		<File path="editor/_source/internals/fckdomtools.js" />
+		<File path="editor/_source/internals/fcktools.js" />
+		<File path="editor/_source/internals/fcktools_ie.js" />
+		<File path="editor/_source/fckeditorapi.js" />
+		<File path="editor/_source/classes/fckimagepreloader.js" />
+
+		<File path="editor/_source/internals/fckregexlib.js" />
+		<File path="editor/_source/internals/fcklistslib.js" />
+		<File path="editor/_source/internals/fcklanguagemanager.js" />
+		<File path="editor/_source/internals/fckxhtmlentities.js" />
+		<File path="editor/_source/internals/fckxhtml.js" />
+		<File path="editor/_source/internals/fckxhtml_ie.js" />
+		<File path="editor/_source/internals/fckcodeformatter.js" />
+		<File path="editor/_source/internals/fckundo.js" />
+		<File path="editor/_source/classes/fckeditingarea.js" />
+		<File path="editor/_source/classes/fckkeystrokehandler.js" />
+
+		<File path="editor/dtd/fck_xhtml10transitional.js" />
+		<File path="editor/_source/classes/fckstyle.js" />
+		<File path="editor/_source/internals/fckstyles.js" />
+
+		<File path="editor/_source/internals/fcklisthandler.js" />
+		<File path="editor/_source/classes/fckelementpath.js" />
+		<File path="editor/_source/classes/fckdomrange.js" />
+		<File path="editor/_source/classes/fckdomrange_ie.js" />
+		<File path="editor/_source/classes/fckdomrangeiterator.js" />
+		<File path="editor/_source/classes/fckdocumentfragment_ie.js" />
+		<File path="editor/_source/classes/fckw3crange.js" />
+		<File path="editor/_source/classes/fckenterkey.js" />
+
+		<File path="editor/_source/internals/fckdocumentprocessor.js" />
+		<File path="editor/_source/internals/fckselection.js" />
+		<File path="editor/_source/internals/fckselection_ie.js" />
+
+		<File path="editor/_source/internals/fcktablehandler.js" />
+		<File path="editor/_source/internals/fcktablehandler_ie.js" />
+		<File path="editor/_source/classes/fckxml.js" />
+		<File path="editor/_source/classes/fckxml_ie.js" />
+
+		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
+		<File path="editor/_source/commandclasses/fckstylecommand.js" />
+		<File path="editor/_source/commandclasses/fck_othercommands.js" />
+		<File path="editor/_source/commandclasses/fckshowblocks.js" />
+		<File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" />
+		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
+		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
+		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
+		<File path="editor/_source/commandclasses/fcktablecommand.js" />
+		<File path="editor/_source/commandclasses/fckfitwindow.js" />
+		<File path="editor/_source/commandclasses/fcklistcommands.js" />
+		<File path="editor/_source/commandclasses/fckjustifycommands.js" />
+		<File path="editor/_source/commandclasses/fckindentcommands.js" />
+		<File path="editor/_source/commandclasses/fckblockquotecommand.js" />
+		<File path="editor/_source/commandclasses/fckcorestylecommand.js" />
+		<File path="editor/_source/commandclasses/fckremoveformatcommand.js" />
+		<File path="editor/_source/internals/fckcommands.js" />
+
+		<File path="editor/_source/classes/fckpanel.js" />
+		<File path="editor/_source/classes/fckicon.js" />
+		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
+		<File path="editor/_source/classes/fcktoolbarbutton.js" />
+		<File path="editor/_source/classes/fckspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
+		<File path="editor/_source/internals/fcktoolbaritems.js" />
+		<File path="editor/_source/classes/fcktoolbar.js" />
+		<File path="editor/_source/classes/fcktoolbarbreak_ie.js" />
+		<File path="editor/_source/internals/fcktoolbarset.js" />
+		<File path="editor/_source/internals/fckdialog.js" />
+
+		<File path="editor/_source/classes/fckmenuitem.js" />
+		<File path="editor/_source/classes/fckmenublock.js" />
+		<File path="editor/_source/classes/fckmenublockpanel.js" />
+		<File path="editor/_source/classes/fckcontextmenu.js" />
+		<File path="editor/_source/internals/fck_contextmenu.js" />
+		<File path="editor/_source/classes/fckhtmliterator.js" />
+
+		<File path="editor/_source/classes/fckplugin.js" />
+		<File path="editor/_source/internals/fckplugins.js" />
+	</PackageFile>
+
+	<PackageFile path="editor/js/fckeditorcode_gecko.js">
+		<File path="editor/_source/fckconstants.js" />
+		<File path="editor/_source/fckjscoreextensions.js" />
+		<File path="editor/_source/internals/fckbrowserinfo.js" />
+		<File path="editor/_source/internals/fckurlparams.js" />
+		<File path="editor/_source/classes/fckevents.js" />
+		<File path="editor/_source/classes/fckdataprocessor.js" />
+		<File path="editor/_source/internals/fck.js" />
+		<File path="editor/_source/internals/fck_gecko.js" />
+		<File path="editor/_source/internals/fckconfig.js" />
+		<File path="editor/_source/internals/fckdebug.js" />
+		<File path="editor/_source/internals/fckdomtools.js" />
+		<File path="editor/_source/internals/fcktools.js" />
+		<File path="editor/_source/internals/fcktools_gecko.js" />
+		<File path="editor/_source/fckeditorapi.js" />
+		<File path="editor/_source/classes/fckimagepreloader.js" />
+
+		<File path="editor/_source/internals/fckregexlib.js" />
+		<File path="editor/_source/internals/fcklistslib.js" />
+		<File path="editor/_source/internals/fcklanguagemanager.js" />
+		<File path="editor/_source/internals/fckxhtmlentities.js" />
+		<File path="editor/_source/internals/fckxhtml.js" />
+		<File path="editor/_source/internals/fckxhtml_gecko.js" />
+		<File path="editor/_source/internals/fckcodeformatter.js" />
+		<File path="editor/_source/internals/fckundo.js" />
+		<File path="editor/_source/classes/fckeditingarea.js" />
+		<File path="editor/_source/classes/fckkeystrokehandler.js" />
+
+		<File path="editor/dtd/fck_xhtml10transitional.js" />
+		<File path="editor/_source/classes/fckstyle.js" />
+		<File path="editor/_source/internals/fckstyles.js" />
+
+		<File path="editor/_source/internals/fcklisthandler.js" />
+		<File path="editor/_source/classes/fckelementpath.js" />
+		<File path="editor/_source/classes/fckdomrange.js" />
+		<File path="editor/_source/classes/fckdomrange_gecko.js" />
+		<File path="editor/_source/classes/fckdomrangeiterator.js" />
+		<File path="editor/_source/classes/fckdocumentfragment_gecko.js" />
+		<File path="editor/_source/classes/fckw3crange.js" />
+		<File path="editor/_source/classes/fckenterkey.js" />
+
+		<File path="editor/_source/internals/fckdocumentprocessor.js" />
+		<File path="editor/_source/internals/fckselection.js" />
+		<File path="editor/_source/internals/fckselection_gecko.js" />
+
+		<File path="editor/_source/internals/fcktablehandler.js" />
+		<File path="editor/_source/internals/fcktablehandler_gecko.js" />
+		<File path="editor/_source/classes/fckxml.js" />
+		<File path="editor/_source/classes/fckxml_gecko.js" />
+
+		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
+		<File path="editor/_source/commandclasses/fckstylecommand.js" />
+		<File path="editor/_source/commandclasses/fck_othercommands.js" />
+		<File path="editor/_source/commandclasses/fckshowblocks.js" />
+		<File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" />
+		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
+		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
+		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
+		<File path="editor/_source/commandclasses/fcktablecommand.js" />
+		<File path="editor/_source/commandclasses/fckfitwindow.js" />
+		<File path="editor/_source/commandclasses/fcklistcommands.js" />
+		<File path="editor/_source/commandclasses/fckjustifycommands.js" />
+		<File path="editor/_source/commandclasses/fckindentcommands.js" />
+		<File path="editor/_source/commandclasses/fckblockquotecommand.js" />
+		<File path="editor/_source/commandclasses/fckcorestylecommand.js" />
+		<File path="editor/_source/commandclasses/fckremoveformatcommand.js" />
+		<File path="editor/_source/internals/fckcommands.js" />
+
+		<File path="editor/_source/classes/fckpanel.js" />
+		<File path="editor/_source/classes/fckicon.js" />
+		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
+		<File path="editor/_source/classes/fcktoolbarbutton.js" />
+		<File path="editor/_source/classes/fckspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
+		<File path="editor/_source/internals/fcktoolbaritems.js" />
+		<File path="editor/_source/classes/fcktoolbar.js" />
+		<File path="editor/_source/classes/fcktoolbarbreak_gecko.js" />
+		<File path="editor/_source/internals/fcktoolbarset.js" />
+		<File path="editor/_source/internals/fckdialog.js" />
+
+		<File path="editor/_source/classes/fckmenuitem.js" />
+		<File path="editor/_source/classes/fckmenublock.js" />
+		<File path="editor/_source/classes/fckmenublockpanel.js" />
+		<File path="editor/_source/classes/fckcontextmenu.js" />
+		<File path="editor/_source/internals/fck_contextmenu.js" />
+		<File path="editor/_source/classes/fckhtmliterator.js" />
+
+		<File path="editor/_source/classes/fckplugin.js" />
+		<File path="editor/_source/internals/fckplugins.js" />
+	</PackageFile>
+
+</Package>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/license.txt
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/license.txt	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/license.txt	(revision 838)
@@ -0,0 +1,1246 @@
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2008 Frederico Caldeira Knabben
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+   (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/licenses/lgpl.html
+   (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+   http://www.mozilla.org/MPL/MPL-1.1.html
+   (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Appendix A: The GPL License
+===========================
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+Appendix B: The LGPL License
+============================
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+===========================
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fcktemplates.xml
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fcktemplates.xml	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fcktemplates.xml	(revision 838)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the sample templates definitions file. It makes the "templates"
+ * command completely customizable.
+ *
+ * See FCKConfig.TemplatesXmlPath in the configuration file.
+-->
+<Templates imagesBasePath="fck_template/images/">
+	<Template title="Image and Title" image="template1.gif">
+		<Description>One main image with a title and text that surround the image.</Description>
+		<Html>
+			<![CDATA[
+				<img style="MARGIN-RIGHT: 10px" height="100" alt="" width="100" align="left"/>
+				<h3>Type the title here</h3>
+				Type the text here
+			]]>
+		</Html>
+	</Template>
+	<Template title="Strange Template" image="template2.gif">
+		<Description>A template that defines two colums, each one with a title, and some text.</Description>
+		<Html>
+			<![CDATA[
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tbody>
+						<tr>
+							<td width="50%">
+							<h3>Title 1</h3>
+							</td>
+							<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
+							<td width="50%">
+							<h3>Title 2</h3>
+							</td>
+						</tr>
+						<tr>
+							<td>Text 1</td>
+							<td>&nbsp;</td>
+							<td>Text 2</td>
+						</tr>
+					</tbody>
+				</table>
+				More text goes here.
+			]]>
+		</Html>
+	</Template>
+	<Template title="Text and Table" image="template3.gif">
+		<Description>A title with some text and a table.</Description>
+		<Html>
+			<![CDATA[
+				<table align="left" width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td>
+					<h3>Title goes here</h3>
+					<p>
+					<table style="FLOAT: right" cellspacing="0" cellpadding="0" width="150" border="1">
+						<tbody>
+							<tr>
+								<td align="center" colspan="3"><strong>Table title</strong></td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+						</tbody>
+					</table>
+					Type the text here</p>
+				</td></tr></table>
+			]]>
+		</Html>
+	</Template>
+</Templates>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckconfig.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckconfig.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckconfig.js	(revision 838)
@@ -0,0 +1,316 @@
+ï»¿/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Editor configuration settings.
+ *
+ * Follow this link for more information:
+ * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
+ */
+
+FCKConfig.CustomConfigurationsPath = '' ;
+
+FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
+FCKConfig.EditorAreaStyles = '' ;
+FCKConfig.ToolbarComboPreviewCSS = '' ;
+
+FCKConfig.DocType = '' ;
+
+FCKConfig.BaseHref = '' ;
+
+FCKConfig.FullPage = false ;
+
+// The following option determines whether the "Show Blocks" feature is enabled or not at startup.
+FCKConfig.StartupShowBlocks = false ;
+
+FCKConfig.Debug = false ;
+FCKConfig.AllowQueryStringDebug = true ;
+
+FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
+FCKConfig.SkinEditorCSS = '' ;	// FCKConfig.SkinPath + "|<minified css>" ;
+FCKConfig.SkinDialogCSS = '' ;	// FCKConfig.SkinPath + "|<minified css>" ;
+
+FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
+
+FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
+
+// FCKConfig.Plugins.Add( 'autogrow' ) ;
+// FCKConfig.Plugins.Add( 'dragresizetable' );
+FCKConfig.AutoGrowMax = 400 ;
+
+// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ;	// ASP style server side code <%...%>
+// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;	// PHP style server side code
+// FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ;	// ASP.Net style tags <asp:control>
+
+FCKConfig.AutoDetectLanguage	= true ;
+FCKConfig.DefaultLanguage		= 'en' ;
+FCKConfig.ContentLangDirection	= 'ltr' ;
+
+FCKConfig.ProcessHTMLEntities	= true ;
+FCKConfig.IncludeLatinEntities	= true ;
+FCKConfig.IncludeGreekEntities	= true ;
+
+FCKConfig.ProcessNumericEntities = false ;
+
+FCKConfig.AdditionalNumericEntities = ''  ;		// Single Quote: "'"
+
+FCKConfig.FillEmptyBlocks	= true ;
+
+FCKConfig.FormatSource		= true ;
+FCKConfig.FormatOutput		= true ;
+FCKConfig.FormatIndentator	= '    ' ;
+
+FCKConfig.StartupFocus	= false ;
+FCKConfig.ForcePasteAsPlainText	= false ;
+FCKConfig.AutoDetectPasteFromWord = true ;	// IE only.
+FCKConfig.ShowDropDialog = true ;
+FCKConfig.ForceSimpleAmpersand	= false ;
+FCKConfig.TabSpaces		= 0 ;
+FCKConfig.ShowBorders	= true ;
+FCKConfig.SourcePopup	= false ;
+FCKConfig.ToolbarStartExpanded	= true ;
+FCKConfig.ToolbarCanCollapse	= true ;
+FCKConfig.IgnoreEmptyParagraphValue = true ;
+FCKConfig.PreserveSessionOnFileBrowser = false ;
+FCKConfig.FloatingPanelsZIndex = 10000 ;
+FCKConfig.HtmlEncodeOutput = false ;
+
+FCKConfig.TemplateReplaceAll = true ;
+FCKConfig.TemplateReplaceCheckbox = true ;
+
+FCKConfig.ToolbarLocation = 'In' ;
+
+FCKConfig.ToolbarSets["Default"] = [
+	['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
+	['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
+	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+	'/',
+	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+	['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
+	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+	['Link','Unlink','Anchor'],
+	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
+	'/',
+	['Style','FontFormat','FontName','FontSize'],
+	['TextColor','BGColor'],
+	['FitWindow','ShowBlocks','-','About']		// No comma for the last row.
+] ;
+
+FCKConfig.ToolbarSets["Basic"] = [
+	['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
+] ;
+
+FCKConfig.EnterMode = 'p' ;			// p | div | br
+FCKConfig.ShiftEnterMode = 'br' ;	// p | div | br
+
+FCKConfig.Keystrokes = [
+	[ CTRL + 65 /*A*/, true ],
+	[ CTRL + 67 /*C*/, true ],
+	[ CTRL + 70 /*F*/, true ],
+	[ CTRL + 83 /*S*/, true ],
+	[ CTRL + 84 /*T*/, true ],
+	[ CTRL + 88 /*X*/, true ],
+	[ CTRL + 86 /*V*/, 'Paste' ],
+	[ SHIFT + 45 /*INS*/, 'Paste' ],
+	[ CTRL + 88 /*X*/, 'Cut' ],
+	[ SHIFT + 46 /*DEL*/, 'Cut' ],
+	[ CTRL + 90 /*Z*/, 'Undo' ],
+	[ CTRL + 89 /*Y*/, 'Redo' ],
+	[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
+	[ CTRL + 76 /*L*/, 'Link' ],
+	[ CTRL + 66 /*B*/, 'Bold' ],
+	[ CTRL + 73 /*I*/, 'Italic' ],
+	[ CTRL + 85 /*U*/, 'Underline' ],
+	[ CTRL + SHIFT + 83 /*S*/, 'Save' ],
+	[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ]
+] ;
+
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
+FCKConfig.BrowserContextMenuOnCtrl = false ;
+
+FCKConfig.EnableMoreFontColors = true ;
+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' ;
+
+FCKConfig.FontFormats	= 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ;
+FCKConfig.FontNames		= 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
+FCKConfig.FontSizes		= 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
+
+FCKConfig.StylesXmlPath		= FCKConfig.EditorPath + 'fckstyles.xml' ;
+FCKConfig.TemplatesXmlPath	= FCKConfig.EditorPath + 'fcktemplates.xml' ;
+
+FCKConfig.SpellChecker			= 'ieSpell' ;	// 'ieSpell' | 'SpellerPages'
+FCKConfig.IeSpellDownloadUrl	= 'http://www.iespell.com/download.php' ;
+FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ;	// Available extension: .php .cfm .pl
+FCKConfig.FirefoxSpellChecker	= false ;
+
+FCKConfig.MaxUndoLevels = 15 ;
+
+FCKConfig.DisableObjectResizing = false ;
+FCKConfig.DisableFFTableHandles = true ;
+
+FCKConfig.LinkDlgHideTarget		= false ;
+FCKConfig.LinkDlgHideAdvanced	= false ;
+
+FCKConfig.ImageDlgHideLink		= false ;
+FCKConfig.ImageDlgHideAdvanced	= false ;
+
+FCKConfig.FlashDlgHideAdvanced	= false ;
+
+FCKConfig.ProtectedTags = '' ;
+
+// This will be applied to the body element of the editor
+FCKConfig.BodyId = '' ;
+FCKConfig.BodyClass = '' ;
+
+FCKConfig.DefaultStyleLabel = '' ;
+FCKConfig.DefaultFontFormatLabel = '' ;
+FCKConfig.DefaultFontLabel = '' ;
+FCKConfig.DefaultFontSizeLabel = '' ;
+
+FCKConfig.DefaultLinkTarget = '' ;
+
+// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
+FCKConfig.CleanWordKeepsStructure = false ;
+
+// Only inline elements are valid.
+FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ;
+
+// Attributes that will be removed
+FCKConfig.RemoveAttributes = 'class,style,lang,width,height,align,hspace,valign' ;
+
+FCKConfig.CustomStyles =
+{
+	'Red Title'	: { Element : 'h3', Styles : { 'color' : 'Red' } }
+};
+
+// Do not add, rename or remove styles here. Only apply definition changes.
+FCKConfig.CoreStyles =
+{
+	// Basic Inline Styles.
+	'Bold'			: { Element : 'strong', Overrides : 'b' },
+	'Italic'		: { Element : 'em', Overrides : 'i' },
+	'Underline'		: { Element : 'u' },
+	'StrikeThrough'	: { Element : 'strike' },
+	'Subscript'		: { Element : 'sub' },
+	'Superscript'	: { Element : 'sup' },
+
+	// Basic Block Styles (Font Format Combo).
+	'p'				: { Element : 'p' },
+	'div'			: { Element : 'div' },
+	'pre'			: { Element : 'pre' },
+	'address'		: { Element : 'address' },
+	'h1'			: { Element : 'h1' },
+	'h2'			: { Element : 'h2' },
+	'h3'			: { Element : 'h3' },
+	'h4'			: { Element : 'h4' },
+	'h5'			: { Element : 'h5' },
+	'h6'			: { Element : 'h6' },
+
+	// Other formatting features.
+	'FontFace' :
+	{
+		Element		: 'span',
+		Styles		: { 'font-family' : '#("Font")' },
+		Overrides	: [ { Element : 'font', Attributes : { 'face' : null } } ]
+	},
+
+	'Size' :
+	{
+		Element		: 'span',
+		Styles		: { 'font-size' : '#("Size","fontSize")' },
+		Overrides	: [ { Element : 'font', Attributes : { 'size' : null } } ]
+	},
+
+	'Color' :
+	{
+		Element		: 'span',
+		Styles		: { 'color' : '#("Color","color")' },
+		Overrides	: [ { Element : 'font', Attributes : { 'color' : null } } ]
+	},
+
+	'BackColor'		: { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } },
+
+	'SelectionHighlight' : { Element : 'span', Styles : { 'background-color' : 'navy', 'color' : 'white' } }
+};
+
+// The distance of an indentation step.
+FCKConfig.IndentLength = 40 ;
+FCKConfig.IndentUnit = 'px' ;
+
+// Alternatively, FCKeditor allows the use of CSS classes for block indentation.
+// This overrides the IndentLength/IndentUnit settings.
+FCKConfig.IndentClasses = [] ;
+
+// [ Left, Center, Right, Justified ]
+FCKConfig.JustifyClasses = [] ;
+
+// The following value defines which File Browser connector and Quick Upload
+// "uploader" to use. It is valid for the default implementaion and it is here
+// just to make this configuration file cleaner.
+// It is not possible to change this value using an external file or even
+// inline when creating the editor instance. In that cases you must set the
+// values of LinkBrowserURL, ImageBrowserURL and so on.
+// Custom implementations should just ignore it.
+var _FileBrowserLanguage	= 'php' ;	// asp | aspx | cfm | lasso | perl | php | py
+var _QuickUploadLanguage	= 'php' ;	// asp | aspx | cfm | lasso | perl | php | py
+
+// Don't care about the following two lines. It just calculates the correct connector
+// extension to use for the default File Browser (Perl uses "cgi").
+var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
+var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;
+
+FCKConfig.LinkBrowser = true ;
+FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
+FCKConfig.LinkBrowserWindowWidth	= FCKConfig.ScreenWidth * 0.7 ;		// 70%
+FCKConfig.LinkBrowserWindowHeight	= FCKConfig.ScreenHeight * 0.7 ;	// 70%
+
+FCKConfig.ImageBrowser = true ;
+FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
+FCKConfig.ImageBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	// 70% ;
+FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	// 70% ;
+
+FCKConfig.FlashBrowser = true ;
+FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;
+FCKConfig.FlashBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	//70% ;
+FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	//70% ;
+
+FCKConfig.LinkUpload = true ;
+FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;
+FCKConfig.LinkUploadAllowedExtensions	= ".(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ;			// empty for all
+FCKConfig.LinkUploadDeniedExtensions	= "" ;	// empty for no one
+
+FCKConfig.ImageUpload = true ;
+FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;
+FCKConfig.ImageUploadAllowedExtensions	= ".(jpg|gif|jpeg|png|bmp)$" ;		// empty for all
+FCKConfig.ImageUploadDeniedExtensions	= "" ;							// empty for no one
+
+FCKConfig.FlashUpload = true ;
+FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ;
+FCKConfig.FlashUploadAllowedExtensions	= ".(swf|flv)$" ;		// empty for all
+FCKConfig.FlashUploadDeniedExtensions	= "" ;					// empty for no one
+
+FCKConfig.SmileyPath	= FCKConfig.BasePath + 'images/smiley/msn/' ;
+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'] ;
+FCKConfig.SmileyColumns = 8 ;
+FCKConfig.SmileyWindowWidth		= 320 ;
+FCKConfig.SmileyWindowHeight	= 210 ;
+
+FCKConfig.BackgroundBlockerColor = '#ffffff' ;
+FCKConfig.BackgroundBlockerOpacity = 0.50 ;
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor.js	(revision 838)
@@ -0,0 +1,303 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for JavaScript.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in a HTML page in the client side. For server side
+ * operations, use the specific integration system.
+ */
+
+// FCKeditor Class
+var FCKeditor = function( instanceName, width, height, toolbarSet, value )
+{
+	// Properties
+	this.InstanceName	= instanceName ;
+	this.Width			= width			|| '100%' ;
+	this.Height			= height		|| '200' ;
+	this.ToolbarSet		= toolbarSet	|| 'Default' ;
+	this.Value			= value			|| '' ;
+	this.BasePath		= FCKeditor.BasePath ;
+	this.CheckBrowser	= true ;
+	this.DisplayErrors	= true ;
+
+	this.Config			= new Object() ;
+
+	// Events
+	this.OnError		= null ;	// function( source, errorNumber, errorDescription )
+}
+
+/**
+ * This is the default BasePath used by all editor instances.
+ */
+FCKeditor.BasePath = '/fckeditor/' ;
+
+/**
+ * The minimum height used when replacing textareas.
+ */
+FCKeditor.MinHeight = 200 ;
+
+/**
+ * The minimum width used when replacing textareas.
+ */
+FCKeditor.MinWidth = 750 ;
+
+FCKeditor.prototype.Version			= '2.6' ;
+FCKeditor.prototype.VersionBuild	= '18638' ;
+
+FCKeditor.prototype.Create = function()
+{
+	document.write( this.CreateHtml() ) ;
+}
+
+FCKeditor.prototype.CreateHtml = function()
+{
+	// Check for errors
+	if ( !this.InstanceName || this.InstanceName.length == 0 )
+	{
+		this._ThrowError( 701, 'You must specify an instance name.' ) ;
+		return '' ;
+	}
+
+	var sHtml = '' ;
+
+	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
+	{
+		sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ;
+		sHtml += this._GetConfigHtml() ;
+		sHtml += this._GetIFrameHtml() ;
+	}
+	else
+	{
+		var sWidth  = this.Width.toString().indexOf('%')  > 0 ? this.Width  : this.Width  + 'px' ;
+		var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ;
+		sHtml += '<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="width:' + sWidth + ';height:' + sHeight + '">' + this._HTMLEncode( this.Value ) + '<\/textarea>' ;
+	}
+
+	return sHtml ;
+}
+
+FCKeditor.prototype.ReplaceTextarea = function()
+{
+	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
+	{
+		// We must check the elements firstly using the Id and then the name.
+		var oTextarea = document.getElementById( this.InstanceName ) ;
+		var colElementsByName = document.getElementsByName( this.InstanceName ) ;
+		var i = 0;
+		while ( oTextarea || i == 0 )
+		{
+			if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' )
+				break ;
+			oTextarea = colElementsByName[i++] ;
+		}
+
+		if ( !oTextarea )
+		{
+			alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;
+			return ;
+		}
+
+		oTextarea.style.display = 'none' ;
+		this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ;
+		this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ;
+	}
+}
+
+FCKeditor.prototype._InsertHtmlBefore = function( html, element )
+{
+	if ( element.insertAdjacentHTML )	// IE
+		element.insertAdjacentHTML( 'beforeBegin', html ) ;
+	else								// Gecko
+	{
+		var oRange = document.createRange() ;
+		oRange.setStartBefore( element ) ;
+		var oFragment = oRange.createContextualFragment( html );
+		element.parentNode.insertBefore( oFragment, element ) ;
+	}
+}
+
+FCKeditor.prototype._GetConfigHtml = function()
+{
+	var sConfig = '' ;
+	for ( var o in this.Config )
+	{
+		if ( sConfig.length > 0 ) sConfig += '&amp;' ;
+		sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ;
+	}
+
+	return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ;
+}
+
+FCKeditor.prototype._GetIFrameHtml = function()
+{
+	var sFile = 'fckeditor.html' ;
+
+	try
+	{
+		if ( (/fcksource=true/i).test( window.top.location.search ) )
+			sFile = 'fckeditor.original.html' ;
+	}
+	catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
+
+	var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;
+	if (this.ToolbarSet) sLink += '&amp;Toolbar=' + this.ToolbarSet ;
+
+	return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ;
+}
+
+FCKeditor.prototype._IsCompatibleBrowser = function()
+{
+	return FCKeditor_IsCompatibleBrowser() ;
+}
+
+FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription )
+{
+	this.ErrorNumber		= errorNumber ;
+	this.ErrorDescription	= errorDescription ;
+
+	if ( this.DisplayErrors )
+	{
+		document.write( '<div style="COLOR: #ff0000">' ) ;
+		document.write( '[ FCKeditor Error ' + this.ErrorNumber + ': ' + this.ErrorDescription + ' ]' ) ;
+		document.write( '</div>' ) ;
+	}
+
+	if ( typeof( this.OnError ) == 'function' )
+		this.OnError( this, errorNumber, errorDescription ) ;
+}
+
+FCKeditor.prototype._HTMLEncode = function( text )
+{
+	if ( typeof( text ) != "string" )
+		text = text.toString() ;
+
+	text = text.replace(
+		/&/g, "&amp;").replace(
+		/"/g, "&quot;").replace(
+		/</g, "&lt;").replace(
+		/>/g, "&gt;") ;
+
+	return text ;
+}
+
+;(function()
+{
+	var textareaToEditor = function( textarea )
+	{
+		var editor = new FCKeditor( textarea.name ) ;
+
+		editor.Width = Math.max( textarea.offsetWidth, FCKeditor.MinWidth ) ;
+		editor.Height = Math.max( textarea.offsetHeight, FCKeditor.MinHeight ) ;
+
+		return editor ;
+	}
+
+	/**
+	 * Replace all <textarea> elements available in the document with FCKeditor
+	 * instances.
+	 *
+	 *	// Replace all <textarea> elements in the page.
+	 *	FCKeditor.ReplaceAllTextareas() ;
+	 *
+	 *	// Replace all <textarea class="myClassName"> elements in the page.
+	 *	FCKeditor.ReplaceAllTextareas( 'myClassName' ) ;
+	 *
+	 *	// Selectively replace <textarea> elements, based on custom assertions.
+	 *	FCKeditor.ReplaceAllTextareas( function( textarea, editor )
+	 *		{
+	 *			// Custom code to evaluate the replace, returning false if it
+	 *			// must not be done.
+	 *			// It also passes the "editor" parameter, so the developer can
+	 *			// customize the instance.
+	 *		} ) ;
+	 */
+	FCKeditor.ReplaceAllTextareas = function()
+	{
+		var textareas = document.getElementsByTagName( 'textarea' ) ;
+
+		for ( var i = 0 ; i < textareas.length ; i++ )
+		{
+			var editor = null ;
+			var textarea = textareas[i] ;
+			var name = textarea.name ;
+
+			// The "name" attribute must exist.
+			if ( !name || name.length == 0 )
+				continue ;
+
+			if ( typeof arguments[0] == 'string' )
+			{
+				// The textarea class name could be passed as the function
+				// parameter.
+
+				var classRegex = new RegExp( '(?:^| )' + arguments[0] + '(?:$| )' ) ;
+
+				if ( !classRegex.test( textarea.className ) )
+					continue ;
+			}
+			else if ( typeof arguments[0] == 'function' )
+			{
+				// An assertion function could be passed as the function parameter.
+				// It must explicitly return "false" to ignore a specific <textarea>.
+				editor = textareaToEditor( textarea ) ;
+				if ( arguments[0]( textarea, editor ) === false )
+					continue ;
+			}
+
+			if ( !editor )
+				editor = textareaToEditor( textarea ) ;
+
+			editor.ReplaceTextarea() ;
+		}
+	}
+})() ;
+
+function FCKeditor_IsCompatibleBrowser()
+{
+	var sAgent = navigator.userAgent.toLowerCase() ;
+
+	// Internet Explorer 5.5+
+	if ( /*@cc_on!@*/false && sAgent.indexOf("mac") == -1 )
+	{
+		var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
+		return ( sBrowserVersion >= 5.5 ) ;
+	}
+
+	// Gecko (Opera 9 tries to behave like Gecko at this point).
+	if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) )
+		return true ;
+
+	// Opera 9.50+
+	if ( window.opera && window.opera.version && parseFloat( window.opera.version() ) >= 9.5 )
+		return true ;
+
+	// Adobe AIR
+	// Checked before Safari because AIR have the WebKit rich text editor
+	// features from Safari 3.0.4, but the version reported is 420.
+	if ( sAgent.indexOf( ' adobeair/' ) != -1 )
+		return ( sAgent.match( / adobeair\/(\d+)/ )[1] >= 1 ) ;	// Build must be at least v1
+
+	// Safari 3+
+	if ( sAgent.indexOf( ' applewebkit/' ) != -1 )
+		return ( sAgent.match( / applewebkit\/(\d+)/ )[1] >= 522 ) ;	// Build must be at least 522 (v3)
+
+	return false ;
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckstyles.xml
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckstyles.xml	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckstyles.xml	(revision 838)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the sample style definitions file. It makes the styles combo
+ * completely customizable.
+ *
+ * See FCKConfig.StylesXmlPath in the configuration file.
+-->
+<Styles>
+
+	<!-- Block Styles -->
+
+	<!--
+	# These styles are already available in the "Format" combo, so they are not
+	# needed here by default.
+
+	<Style name="Heading 1" element="h1" />
+	<Style name="Heading 2" element="h2" />
+	<Style name="Heading 3" element="h3" />
+	<Style name="Heading 4" element="h4" />
+	<Style name="Heading 5" element="h5" />
+	<Style name="Heading 6" element="h6" />
+	<Style name="Paragraph" element="p" />
+	<Style name="Document Block" element="div" />
+	<Style name="Preformatted Text" element="pre" />
+	<Style name="Address" element="address" />
+	-->
+
+	<!-- Inline Styles -->
+
+	<!--
+	# These are core styles available as toolbar buttons.
+
+	<Style name="Bold" element="b">
+		<Override element="strong" />
+	</Style>
+	<Style name="Italic" element="i">
+		<Override element="em" />
+	</Style>
+	<Style name="Underline" element="u" />
+	<Style name="Strikethrough" element="strike" />
+	<Style name="Subscript" element="sub" />
+	<Style name="Superscript" element="sup" />
+	-->
+
+	<Style name="Marker: Yellow" element="span">
+		<Style name="background-color" value="Yellow" />
+	</Style>
+	<Style name="Marker: Green" element="span">
+		<Style name="background-color" value="Lime" />
+	</Style>
+
+	<Style name="Big" element="big" />
+	<Style name="Small" element="small" />
+	<Style name="Typewriter" element="tt" />
+
+	<Style name="Computer Code" element="code" />
+	<Style name="Keyboard Phrase" element="kbd" />
+	<Style name="Sample Text" element="samp" />
+	<Style name="Variable" element="var" />
+
+	<Style name="Deleted Text" element="del" />
+	<Style name="Inserted Text" element="ins" />
+
+	<Style name="Cited Work" element="cite" />
+	<Style name="Inline Quotation" element="q" />
+
+	<Style name="Language: RTL" element="span">
+		<Attribute name="dir" value="rtl" />
+	</Style>
+	<Style name="Language: LTR" element="span">
+		<Attribute name="dir" value="ltr" />
+	</Style>
+	<Style name="Language: RTL Strong" element="bdo">
+		<Attribute name="dir" value="rtl" />
+	</Style>
+	<Style name="Language: LTR Strong" element="bdo">
+		<Attribute name="dir" value="ltr" />
+	</Style>
+
+	<!-- Object Styles -->
+
+	<Style name="Image on Left" element="img">
+		<Attribute name="style" value="padding: 5px; margin-right: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="left" />
+	</Style>
+	<Style name="Image on Right" element="img">
+		<Attribute name="style" value="padding: 5px; margin-left: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="right" />
+	</Style>
+</Styles>
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/index.html
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/index.html	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/index.html	(revision 838)
@@ -0,0 +1,4 @@
+<html>
+<head><title></title></head>
+<body></body>
+</html>
\ No newline at end of file
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php4.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php4.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php4.php	(revision 838)
@@ -0,0 +1,216 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for PHP 4.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
+ */
+
+class FCKeditor
+{
+	/**
+	 * Name of the FCKeditor instance.
+	 *
+	 * @access protected
+	 * @var string
+	 */
+	var $InstanceName ;
+	/**
+	 * Path to FCKeditor relative to the document root.
+	 *
+	 * @var string
+	 */
+	var $BasePath ;
+	/**
+	 * Width of the FCKeditor.
+	 * Examples: 100%, 600
+	 *
+	 * @var mixed
+	 */
+	var $Width ;
+	/**
+	 * Height of the FCKeditor.
+	 * Examples: 400, 50%
+	 *
+	 * @var mixed
+	 */
+	var $Height ;
+	/**
+	 * Name of the toolbar to load.
+	 *
+	 * @var string
+	 */
+	var $ToolbarSet ;
+	/**
+	 * Initial value.
+	 *
+	 * @var string
+	 */
+	var $Value ;
+	/**
+	 * This is where additional configuration can be passed.
+	 * Example:
+	 * $oFCKeditor->Config['EnterMode'] = 'br';
+	 *
+	 * @var array
+	 */
+	var $Config ;
+
+	/**
+	 * Main Constructor.
+	 * Refer to the _samples/php directory for examples.
+	 *
+	 * @param string $instanceName
+	 */
+	function FCKeditor( $instanceName )
+	{
+		$this->InstanceName	= $instanceName ;
+		$this->BasePath		= '/fckeditor/' ;
+		$this->Width		= '100%' ;
+		$this->Height		= '200' ;
+		$this->ToolbarSet	= 'Default' ;
+		$this->Value		= '' ;
+
+		$this->Config		= array() ;
+	}
+
+	/**
+	 * Display FCKeditor.
+	 *
+	 */
+	function Create()
+	{
+		echo $this->CreateHtml() ;
+	}
+
+	/**
+	 * Return the HTML code required to run FCKeditor.
+	 *
+	 * @return string
+	 */
+	function CreateHtml()
+	{
+		$HtmlValue = htmlspecialchars( $this->Value ) ;
+
+		$Html = '' ;
+
+		if ( !isset( $_GET ) ) {
+			global $HTTP_GET_VARS ;
+			$_GET = $HTTP_GET_VARS ;
+		}
+
+		if ( $this->IsCompatible() )
+		{
+			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
+				$File = 'fckeditor.original.html' ;
+			else
+				$File = 'fckeditor.html' ;
+
+			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
+
+			if ( $this->ToolbarSet != '' )
+				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
+
+			// Render the linked hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
+
+			// Render the configurations hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
+
+			// Render the editor IFRAME.
+			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
+		}
+		else
+		{
+			if ( strpos( $this->Width, '%' ) === false )
+				$WidthCSS = $this->Width . 'px' ;
+			else
+				$WidthCSS = $this->Width ;
+
+			if ( strpos( $this->Height, '%' ) === false )
+				$HeightCSS = $this->Height . 'px' ;
+			else
+				$HeightCSS = $this->Height ;
+
+			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
+		}
+
+		return $Html ;
+	}
+
+	/**
+	 * Returns true if browser is compatible with FCKeditor.
+	 *
+	 * @return boolean
+	 */
+	function IsCompatible()
+	{
+		return FCKeditor_IsCompatibleBrowser() ;
+	}
+
+	/**
+	 * Get settings from Config array as a single string.
+	 *
+	 * @access protected
+	 * @return string
+	 */
+	function GetConfigFieldString()
+	{
+		$sParams = '' ;
+		$bFirst = true ;
+
+		foreach ( $this->Config as $sKey => $sValue )
+		{
+			if ( $bFirst == false )
+				$sParams .= '&amp;' ;
+			else
+				$bFirst = false ;
+
+			if ( $sValue === true )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
+			else if ( $sValue === false )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
+			else
+				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
+		}
+
+		return $sParams ;
+	}
+
+	/**
+	 * Encode characters that may break the configuration string
+	 * generated by GetConfigFieldString().
+	 *
+	 * @access protected
+	 * @param string $valueToEncode
+	 * @return string
+	 */
+	function EncodeConfig( $valueToEncode )
+	{
+		$chars = array(
+			'&' => '%26',
+			'=' => '%3D',
+			'"' => '%22' ) ;
+
+		return strtr( $valueToEncode,  $chars ) ;
+	}
+}
Index: tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php5.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php5.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/fckeditor/fckeditor_php5.php	(revision 838)
@@ -0,0 +1,211 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for PHP 5.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
+ */
+
+class FCKeditor
+{
+	/**
+	 * Name of the FCKeditor instance.
+	 *
+	 * @access protected
+	 * @var string
+	 */
+	public $InstanceName ;
+	/**
+	 * Path to FCKeditor relative to the document root.
+	 *
+	 * @var string
+	 */
+	public $BasePath ;
+	/**
+	 * Width of the FCKeditor.
+	 * Examples: 100%, 600
+	 *
+	 * @var mixed
+	 */
+	public $Width ;
+	/**
+	 * Height of the FCKeditor.
+	 * Examples: 400, 50%
+	 *
+	 * @var mixed
+	 */
+	public $Height ;
+	/**
+	 * Name of the toolbar to load.
+	 *
+	 * @var string
+	 */
+	public $ToolbarSet ;
+	/**
+	 * Initial value.
+	 *
+	 * @var string
+	 */
+	public $Value ;
+	/**
+	 * This is where additional configuration can be passed.
+	 * Example:
+	 * $oFCKeditor->Config['EnterMode'] = 'br';
+	 *
+	 * @var array
+	 */
+	public $Config ;
+
+	/**
+	 * Main Constructor.
+	 * Refer to the _samples/php directory for examples.
+	 *
+	 * @param string $instanceName
+	 */
+	public function __construct( $instanceName )
+ 	{
+		$this->InstanceName	= $instanceName ;
+		$this->BasePath		= '/fckeditor/' ;
+		$this->Width		= '100%' ;
+		$this->Height		= '200' ;
+		$this->ToolbarSet	= 'Default' ;
+		$this->Value		= '' ;
+
+		$this->Config		= array() ;
+	}
+
+	/**
+	 * Display FCKeditor.
+	 *
+	 */
+	public function Create()
+	{
+		echo $this->CreateHtml() ;
+	}
+
+	/**
+	 * Return the HTML code required to run FCKeditor.
+	 *
+	 * @return string
+	 */
+	public function CreateHtml()
+	{
+		$HtmlValue = htmlspecialchars( $this->Value ) ;
+
+		$Html = '' ;
+
+		if ( $this->IsCompatible() )
+		{
+			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
+				$File = 'fckeditor.original.html' ;
+			else
+				$File = 'fckeditor.html' ;
+
+			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
+
+			if ( $this->ToolbarSet != '' )
+				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
+
+			// Render the linked hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
+
+			// Render the configurations hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
+
+			// Render the editor IFRAME.
+			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
+		}
+		else
+		{
+			if ( strpos( $this->Width, '%' ) === false )
+				$WidthCSS = $this->Width . 'px' ;
+			else
+				$WidthCSS = $this->Width ;
+
+			if ( strpos( $this->Height, '%' ) === false )
+				$HeightCSS = $this->Height . 'px' ;
+			else
+				$HeightCSS = $this->Height ;
+
+			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
+		}
+
+		return $Html ;
+	}
+
+	/**
+	 * Returns true if browser is compatible with FCKeditor.
+	 *
+	 * @return boolean
+	 */
+	public function IsCompatible()
+	{
+		return FCKeditor_IsCompatibleBrowser() ;
+	}
+
+	/**
+	 * Get settings from Config array as a single string.
+	 *
+	 * @access protected
+	 * @return string
+	 */
+	public function GetConfigFieldString()
+	{
+		$sParams = '' ;
+		$bFirst = true ;
+
+		foreach ( $this->Config as $sKey => $sValue )
+		{
+			if ( $bFirst == false )
+				$sParams .= '&amp;' ;
+			else
+				$bFirst = false ;
+
+			if ( $sValue === true )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
+			else if ( $sValue === false )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
+			else
+				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
+		}
+
+		return $sParams ;
+	}
+
+	/**
+	 * Encode characters that may break the configuration string
+	 * generated by GetConfigFieldString().
+	 *
+	 * @access protected
+	 * @param string $valueToEncode
+	 * @return string
+	 */
+	public function EncodeConfig( $valueToEncode )
+	{
+		$chars = array(
+			'&' => '%26',
+			'=' => '%3D',
+			'"' => '%22' ) ;
+
+		return strtr( $valueToEncode,  $chars ) ;
+	}
+}
Index: tags/2.7.0/wb/modules/fckeditor/class.cssparser.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/class.cssparser.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/class.cssparser.php	(revision 838)
@@ -0,0 +1,304 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+ * Class to parse css information.
+ *
+ * See the readme file : http://www.phpclasses.org/browse/file/4685.html
+ *
+ * $Id$
+ *
+ * @author http://www.phpclasses.org/browse/package/1289.html
+ * @package PhpGedView
+ * @subpackage Charts
+ *
+ * added function GetXML to the cssparser class (Christian Sommer, 2007)
+ *
+ */
+
+class cssparser {
+	var $css;
+	var $html;
+  
+	function cssparser($html = true) {
+		// Register "destructor"
+		register_shutdown_function(array(&$this, "finalize"));
+		$this->html = ($html != false);
+		$this->Clear();
+	}
+  
+	function finalize() {
+		unset($this->css);
+	}
+  
+	function Clear() {
+		unset($this->css);
+		$this->css = array();
+		if($this->html) {
+			$this->Add("ADDRESS", "");
+			$this->Add("APPLET", "");
+			$this->Add("AREA", "");
+			$this->Add("A", "");
+			$this->Add("A:visited", "");
+			$this->Add("BASE", "");
+			$this->Add("BASEFONT", "");
+			$this->Add("BIG", "");
+			$this->Add("BLOCKQUOTE", "");
+			$this->Add("BODY", "");
+			$this->Add("BR", "");
+			$this->Add("B", "");
+			$this->Add("CAPTION", "");
+			$this->Add("CENTER", "");
+			$this->Add("CITE", "");
+			$this->Add("CODE", "");
+			$this->Add("DD", "");
+			$this->Add("DFN", "");
+			$this->Add("DIR", "");
+			$this->Add("DIV", "");
+			$this->Add("DL", "");
+			$this->Add("DT", "");
+			$this->Add("EM", "");
+			$this->Add("FONT", "");
+			$this->Add("FORM", "");
+			$this->Add("H1", "");
+			$this->Add("H2", "");
+			$this->Add("H3", "");
+			$this->Add("H4", "");
+			$this->Add("H5", "");
+			$this->Add("H6", "");
+			$this->Add("HEAD", "");
+			$this->Add("HR", "");
+			$this->Add("HTML", "");
+			$this->Add("IMG", "");
+			$this->Add("INPUT", "");
+			$this->Add("ISINDEX", "");
+			$this->Add("I", "");
+			$this->Add("KBD", "");
+			$this->Add("LINK", "");
+			$this->Add("LI", "");
+			$this->Add("MAP", "");
+			$this->Add("MENU", "");
+			$this->Add("META", "");
+			$this->Add("OL", "");
+			$this->Add("OPTION", "");
+			$this->Add("PARAM", "");
+			$this->Add("PRE", "");
+			$this->Add("P", "");
+			$this->Add("SAMP", "");
+			$this->Add("SCRIPT", "");
+			$this->Add("SELECT", "");
+			$this->Add("SMALL", "");
+			$this->Add("STRIKE", "");
+			$this->Add("STRONG", "");
+			$this->Add("STYLE", "");
+			$this->Add("SUB", "");
+			$this->Add("SUP", "");
+			$this->Add("TABLE", "");
+			$this->Add("TD", "");
+			$this->Add("TEXTAREA", "");
+			$this->Add("TH", "");
+			$this->Add("TITLE", "");
+			$this->Add("TR", "");
+			$this->Add("TT", "");
+			$this->Add("UL", "");
+			$this->Add("U", "");
+			$this->Add("VAR", "");
+		}
+	}
+  
+	function SetHTML($html) {
+		$this->html = ($html != false);
+	}
+  
+	function Add($key, $codestr) {
+		$key = strtolower($key);
+		//    $codestr = strtolower($codestr);
+		if(!isset($this->css[$key])) {
+			$this->css[$key] = array();
+		}
+		$codes = explode(";",$codestr);
+		if(count($codes) > 0) {
+			foreach($codes as $code) {
+				$code = trim($code);
+				@list($codekey, $codevalue) = explode(":",$code);
+				if(strlen($codekey) > 0) {
+					$this->css[$key][trim($codekey)] = trim($codevalue);
+				}
+			}
+		}
+	}
+  
+	function Get($key, $property) {
+		$key = strtolower($key);
+		//    $property = strtolower($property);
+		@list($tag, $subtag) = explode(":",$key);
+		@list($tag, $class) = explode(".",$tag);
+		@list($tag, $id) = explode("#",$tag);
+		$result = "";
+		foreach($this->css as $_tag => $value) {
+			@list($_tag, $_subtag) = explode(":",$_tag);
+			@list($_tag, $_class) = explode(".",$_tag);
+			@list($_tag, $_id) = explode("#",$_tag);
+            $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
+			$subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
+			$classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
+			$idmatch = (strcmp($id, $_id) == 0);
+            if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
+				$temp = $_tag;
+				if((strlen($temp) > 0) & (strlen($_class) > 0)) {
+					$temp .= ".".$_class;
+				}
+				elseif(strlen($temp) == 0) {
+					$temp = ".".$_class;
+				}
+				if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
+					$temp .= ":".$_subtag;
+				}
+				elseif(strlen($temp) == 0) {
+					$temp = ":".$_subtag;
+				}
+				if(isset($this->css[$temp][$property])) {
+					$result = $this->css[$temp][$property];
+				}
+			}
+		}
+		return $result;
+	}
+  
+	function GetSection($key) {
+		$key = strtolower($key);
+        @list($tag, $subtag) = explode(":",$key);
+		@list($tag, $class) = explode(".",$tag);
+		@list($tag, $id) = explode("#",$tag);
+		$result = array();
+		foreach($this->css as $_tag => $value) {
+			@list($_tag, $_subtag) = explode(":",$_tag);
+			@list($_tag, $_class) = explode(".",$_tag);
+			@list($_tag, $_id) = explode("#",$_tag);
+			$tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
+			$subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
+			$classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
+			$idmatch = (strcmp($id, $_id) == 0);
+			if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
+				$temp = $_tag;
+				if((strlen($temp) > 0) & (strlen($_class) > 0)) {
+					$temp .= ".".$_class;
+				}
+				elseif(strlen($temp) == 0) {
+					$temp = ".".$_class;
+				}
+				if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
+					$temp .= ":".$_subtag;
+				}
+				elseif(strlen($temp) == 0) {
+					$temp = ":".$_subtag;
+				}	
+				foreach($this->css[$temp] as $property => $value) {
+					$result[$property] = $value;
+				}
+			}
+		}
+		return $result;
+	}
+  
+	function ParseStr($str) {
+		$this->Clear();
+		// Remove comments
+		$str = preg_replace("/\/\*(.*)?\*\//Usi", "", $str);
+		// Parse this damn csscode
+		$parts = explode("}",$str);
+		if(count($parts) > 0) {
+			foreach($parts as $part) {
+				@list($keystr,$codestr) = explode("{",$part);
+				$keys = explode(",",trim($keystr));
+				if(count($keys) > 0) {
+					foreach($keys as $key) {
+						if(strlen($key) > 0) {
+							$key = str_replace("\n", "", $key);
+							$key = str_replace("\\", "", $key);
+							$this->Add($key, trim($codestr));
+						}
+					}
+				}
+			}
+		}
+		//
+		return (count($this->css) > 0);
+	}
+  
+	function Parse($filename) {
+		$this->Clear();
+		if(file_exists($filename)) {
+			return $this->ParseStr(file_get_contents($filename));
+		}
+		else {
+			return false;
+		}
+	}
+	
+	function GetCSS() {
+		$result = "";
+		foreach($this->css as $key => $values) {
+			$result .= $key." {\n";
+			foreach($values as $key => $value) {
+				$result .= "  $key: $value;\n";
+			}
+			$result .= "}\n\n";
+		}
+		return $result;
+	}
+
+	function GetXML() {
+		// Construction of "fckstyles.xml" for FCKeditor
+		$styles = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n";
+		$styles .= '<Styles>'."\n";
+		foreach ($this->css as $key => $value) {
+			// skip all CSS that are a combination of CSS
+			// skip CSS that are binded on an EVENT
+			if (strpos($key, " ") === false && strpos($key, ":") === false) {
+				$pieces = explode(".", $key, 2);
+				if (strcmp($pieces[0], "") != 0) {
+					continue;
+				} else {
+					$style_elem = "span";
+				}
+				if (strcmp($pieces[1], "") != 0) {
+					$style_class_name = $pieces[1];
+				} else {
+					$style_class_name = $pieces[0];
+				}
+				$styles .= '<Style name="'.$style_class_name.'" element="'.$style_elem.'"';
+				if (strcmp($style_class_name, $style_elem) != 0) {
+					$styles .= '>'."\n".'<Attribute name="class" value="'.$style_class_name.'" />'."\n".'</Style>'."\n";
+				} else {
+					$styles .= '/>'."\n";
+				}
+			}
+		}
+		$styles .= '</Styles>'."\n";
+		return trim($styles);
+	}
+}
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/class.cssparser.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/uninstall.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+// Delete the editor directory
+rm_full_dir(WB_PATH.'/modules/fckeditor/fckeditor');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/css_to_xml.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/css_to_xml.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/css_to_xml.php	(revision 838)
@@ -0,0 +1,40 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once('../../config.php');
+
+if(isset($_GET['template_name'])) {
+	$temp_name = $_GET['template_name'];
+	// check if specified template exists
+	if(file_exists(WB_PATH .'/templates/' .$temp_name)) {
+		// parse the editor.css and write XML output
+		require_once(WB_PATH .'/modules/fckeditor/class.cssparser.php');
+		$cssparser = new cssparser();
+		$cssparser->Parse(WB_PATH .'/templates/' .$temp_name .'/editor.css');
+		header('Content-type: text/xml'); 
+		echo $cssparser->GetXML();
+	}
+}
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/css_to_xml.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/languages/DE.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: FCKEDITOR
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description 	= 'Dieses Modul erlaubt das bearbeiten von Seiteninhalten mit dem <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.6</a>.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/include.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/include.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/include.php	(revision 838)
@@ -0,0 +1,117 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+function reverse_htmlentities($mixed) {
+	$mixed = str_replace(array('&gt;','&lt;','&quot;','&amp;'), array('>','<','"','&'), $mixed);
+	return $mixed;
+}
+
+function get_template_name() {
+	// returns the template name of the current displayed page
+	require_once('../../config.php');
+	require_once(WB_PATH. '/framework/class.database.php');
+
+	// work out default editor.css file for FCKEditor
+	if(file_exists(WB_PATH .'/templates/' .DEFAULT_TEMPLATE .'/editor.css')) {
+		$fck_template_dir = DEFAULT_TEMPLATE;
+	} else {
+		$fck_template_dir = "none";
+	}
+
+	// check if a editor.css file exists in the specified template directory of current page
+	if (isset($_GET["page_id"]) && (int) $_GET["page_id"] > 0) {
+		$pageid = (int) $_GET["page_id"];
+
+		// obtain template folder of current page from the database
+		if(!isset($admin)) { 
+			$database = new database(); 
+		}
+		$query_page = "SELECT template FROM " .TABLE_PREFIX ."pages WHERE page_id =$pageid"; 
+		$pagetpl = $database->get_one($query_page);   // if empty, default template is used
+
+		// check if a specific template is defined for current page
+		if(isset($pagetpl) && $pagetpl != '') {
+			// check if a specify editor.css file is contained in that folder
+			if(file_exists(WB_PATH.'/templates/'.$pagetpl.'/editor.css')) {
+				$fck_template_dir = $pagetpl;
+			}
+		}
+	}
+	return $fck_template_dir;
+}
+
+function show_wysiwyg_editor($name, $id, $content, $width, $height) {
+	// create new FCKEditor instance
+	require_once(WB_PATH.'/modules/fckeditor/fckeditor/fckeditor.php');
+	$oFCKeditor = new FCKeditor($name);
+
+	// set defaults (Note: custom settings defined in: "/my_config/my_fckconfig.js" instead of "/editor/fckconfig.js")
+	$oFCKeditor->BasePath = WB_URL.'/modules/fckeditor/fckeditor/';
+	$oFCKeditor->Config['CustomConfigurationsPath'] = WB_URL .'/modules/fckeditor/wb_config/wb_fckconfig.js';
+	$oFCKeditor->ToolbarSet = 'WBToolbar';        // toolbar defined in my_fckconfig.js
+
+	// obtain template name of current page (if empty, no editor.css files exists)
+	$template_name = get_template_name();
+
+	// work out default CSS file to be used for FCK textarea
+	if($template_name == "none") {
+		// no editor.css file exists in default template folder, or template folder of current page
+		$css_file = WB_URL .'/modules/fckeditor/wb_config/wb_fckeditorarea.css';
+	} else {
+		// editor.css file exists in default template folder or template folder of current page
+		$css_file = WB_URL .'/templates/' .$template_name .'/editor.css';
+	}
+	// set CSS file depending on $css_file
+	$oFCKeditor->Config['EditorAreaCSS'] = $css_file;
+
+	// work out settings for the FCK "Style" toolbar
+	if ($template_name == "none") {
+		// no custom editor.css exists, use default XML definitions
+		$oFCKeditor->Config['StylesXmlPath'] = WB_URL.'/modules/fckeditor/wb_config/wb_fckstyles.xml';
+	} else {
+		// file editor.css exists in template folder, parse it and create XML definitions
+		$oFCKeditor->Config['StylesXmlPath'] = WB_URL.'/modules/fckeditor/css_to_xml.php?template_name=' .$template_name;
+	}
+
+	// custom templates can be defined via /wb_config/wb_fcktemplates.xml
+	if(file_exists(WB_PATH .'/modules/fckeditor/wb_config/wb_fcktemplates.xml')) {
+		$oFCKeditor->Config['TemplatesXmlPath'] = WB_URL.'/modules/fckeditor/wb_config/wb_fcktemplates.xml';
+	}
+
+  // set required file connectors (overwrite settings which may be made in fckconfig.js or my_fckconfig.js)
+	$connectorPath = $oFCKeditor->BasePath.'editor/filemanager/connectors/php/connector.php';
+  $oFCKeditor->Config['LinkBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector='
+		.$connectorPath;
+  $oFCKeditor->Config['ImageBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector='
+		.$connectorPath;
+  $oFCKeditor->Config['FlashBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector='
+		.$connectorPath;
+
+	$oFCKeditor->Value = reverse_htmlentities($content);
+	$oFCKeditor->Height = $height;
+	$oFCKeditor->Create();
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/include.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/index.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css	(revision 838)
@@ -0,0 +1,36 @@
+/*
+ #########################################################################################
+ # Configure FCKEditor according your needs
+ # ---------------------------------------------------------------------------------------
+ #  Copy all CSS definitions of your Website Baker template here enables FCKEditor to
+ #  display the contents in the textarea field as shown in the frontend of Website Baker
+ #  
+ #  Note: The "body" styles should match your editor web site, mainly regarding
+ #  background color and font family and size.
+ #  
+ #########################################################################################
+*/
+
+body {
+  font-family:Verdana,Helvetica, Arial, sans-serif;
+  font-size:small;
+  background-color: #FFF;
+  padding: 5px 5px 5px 5px;
+  margin: 0px;
+}
+
+a[href] {
+  color: #0000FF !important;	/* For Firefox... mark as important, otherwise it becomes black */
+}
+
+/* 
+  Just uncomment the following block if you want to avoid spaces between 
+  paragraphs. Remember to apply the same style in your output front end page.
+*/
+
+/*
+p, ul, li {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+*/
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckeditorarea.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml	(revision 838)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the sample templates definitions file. It makes the "templates"
+ * command completely customizable.
+ *
+ * See FCKConfig.TemplatesXmlPath in the configuration file.
+-->
+<Templates imagesBasePath="fck_template/images/">
+	<Template title="Image and Title" image="template1.gif">
+		<Description>One main image with a title and text that surround the image.</Description>
+		<Html>
+			<![CDATA[
+				<img style="MARGIN-RIGHT: 10px" height="100" alt="" width="100" align="left"/>
+				<h3>Type the title here</h3>
+				Type the text here
+			]]>
+		</Html>
+	</Template>
+	<Template title="Strange Template" image="template2.gif">
+		<Description>A template that defines two colums, each one with a title, and some text.</Description>
+		<Html>
+			<![CDATA[
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tbody>
+						<tr>
+							<td width="50%">
+							<h3>Title 1</h3>
+							</td>
+							<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
+							<td width="50%">
+							<h3>Title 2</h3>
+							</td>
+						</tr>
+						<tr>
+							<td>Text 1</td>
+							<td>&nbsp;</td>
+							<td>Text 2</td>
+						</tr>
+					</tbody>
+				</table>
+				More text goes here.
+			]]>
+		</Html>
+	</Template>
+	<Template title="Text and Table" image="template3.gif">
+		<Description>A title with some text and a table.</Description>
+		<Html>
+			<![CDATA[
+				<table align="left" width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td>
+					<h3>Title goes here</h3>
+					<p>
+					<table style="FLOAT: right" cellspacing="0" cellpadding="0" width="150" border="1">
+						<tbody>
+							<tr>
+								<td align="center" colspan="3"><strong>Table title</strong></td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+							<tr>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+								<td>&nbsp;</td>
+							</tr>
+						</tbody>
+					</table>
+					Type the text here</p>
+				</td></tr></table>
+			]]>
+		</Html>
+	</Template>
+</Templates>

Property changes on: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fcktemplates.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckconfig.js
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckconfig.js	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckconfig.js	(revision 838)
@@ -0,0 +1,189 @@
+/*
+ #########################################################################################
+ # Configure FCKEditor according your needs
+ # ---------------------------------------------------------------------------------------
+ #  Purpose of this file is to define all settings of FCKEditor without changing the FCK
+ #  Javascript core file fckconfig.js. Doing so allows to upgrade to a newer version of
+ #  FCKEditor while keeping all your customisations (styles, toolbars...)
+ #  
+ #  Author: Christian Sommer, (doc)
+ #
+ #  Follow this link for more information:
+ #  http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
+ #  
+ #########################################################################################
+*/
+
+// required settings to make FCKEditor work with Website Baker (do not change them)
+   FCKConfig.Plugins.Add( 'WBModules', 'en,nl,de' ) ;
+
+// #########################################################################################
+// # FCKEditor: General settings
+// # ---------------------------------------------------------------------------------------
+// #  Here you can modify all the options available in the /fckeditor/editor/fckconfig.js
+// #  Settings defined here will overrule the ones defined in fckconfig.js without touching
+// #  the Javascript core files of FCK.
+// #
+// #  If you are missing some options, have a look into fckconfig.js and copy the required
+// #  code lines here
+// #########################################################################################
+
+// set doctype as used in your template to prevent code mix up (example XHTML 1.0 Transitional)
+   FCKConfig.DocType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' ;
+
+// define FCK default language
+   FCKConfig.AutoDetectLanguage		= true ;	// could be turned off, if all users speek same language
+   FCKConfig.DefaultLanguage		= 'en' ;	// could be switched to de for German
+   FCKConfig.ContentLangDirection	= 'ltr' ;	// left to right
+
+// specify HTML tag used for ENTER and SHIFT+ENTER key
+   FCKConfig.EnterMode 			= 'p' ;		// allowed tags: p | div | br
+   FCKConfig.ShiftEnterMode 		= 'br' ;	// allowed tags: p | div | br
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Note: If you miss some options, have a look into fckconfig.js and add the lines below
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+// #########################################################################################
+// # FCKEditor: Customised FCKEditor tool bar
+// # ---------------------------------------------------------------------------------------
+// #  Here you can modify the FCKEditor tool bar to your needs.
+// #  A collection of example layouts are provided below.
+// #
+// #  Note: Per default the tool bar named: "WBToolbar" will be used within FCKEditor.
+// #########################################################################################
+
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+//  Default toolbar set used by Website Baker
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+   FCKConfig.ToolbarSets["WBToolbar"] = [
+	['Source'],
+	['Cut','Copy','Paste','PasteText','PasteWord','-','SpellCheck'],
+	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+	['Smiley','SpecialChar'],
+	['FitWindow','-','About'],
+	'/',
+	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+	['OrderedList','UnorderedList','-','Outdent','Indent'],
+	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+	['WBModules','Link','Unlink','Anchor'],
+	['Image','Flash','Table','Rule'],
+	'/',
+	['Style','FontFormat','FontName','FontSize'],
+	['TextColor','BGColor']
+] ;
+
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+//  original FCKEditor toolbar
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+   FCKConfig.ToolbarSets["Original"] = [
+	['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
+	['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
+	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+	'/',
+	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+	['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
+	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+	['Link','Unlink','Anchor'],
+	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
+	'/',
+	['Style','FontFormat','FontName','FontSize'],
+	['TextColor','BGColor'],
+	['FitWindow','ShowBlocks','-','About']		// No comma for the last row.
+] ;
+
+
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+//  simple toolbar (only basic functions)
+// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+   FCKConfig.ToolbarSets["Simple"] = [
+	['Preview',"Print"],
+	['Cut','Copy','Paste','PasteText'],
+	['Undo','Redo'],
+	['Bold','Italic','Underline'],
+	['OrderedList','UnorderedList','-','Table'],
+	['WBModules','Link','Unlink','Anchor'],
+	['RemoveFormat','Image','-','Source'],
+	'/',
+	['FontFormat','Style']
+] ;
+
+
+// #########################################################################################
+// # FCKEditor: CSS / XML / TEMPLATES
+// # ---------------------------------------------------------------------------------------
+// #  Here you can tweak the layout of the FCKEditor according your needs.
+// #  Specify HTML elements shown in the dropdown menu and the XML file which defines your
+// #  CSS styles available in the FCKEditor style menu.
+// #########################################################################################
+
+// define HTML elements which appear in the FCK "Format" toolbar menu
+   FCKConfig.FontFormats	= 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;
+
+// define font colors which can be set by the user (HEXADECIMAL)
+   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' ;
+
+// define fonts style and sizes which can be set by the user
+   FCKConfig.FontNames	= 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
+   FCKConfig.FontSizes	= 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
+
+// make the offic2003 skin the default skin
+   FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/office2003/'
+
+/*
+   -----------------------------------------------------------------------------------------
+   Note: GENERAL HINTS ON CSS FORMATS AND XML FILES
+   -----------------------------------------------------------------------------------------
+   Easiest way to display all CSS definitions used in your template is to make a copy of your
+   CSS definition file and place it as "editor.css" in your template folder.
+   All styles will automatically be updated and used with the FCK editor.
+
+   If you don´t want to put custom "editor.css" files into your templates folder, you can
+   try the other approach introduced below:
+   
+   copy all CSS definitions of your template into file: /my_config/my_fckeditorarea.css
+    o Default HTML elements like (h1, p) will appear in the format you have specified via CSS.
+    o additional HTML elements like (.title) will appear in the "Styles" toolbar menu of FCK
+   
+   Via file (/my_config/my_fckstyles.xml) you can define additional styles for default
+   elements. Use this option, if you want to display conditional styles only if a special
+   HTML element is selected (e.g. after selecting an <img> element, the style menu will
+   provide additional elements like align=left, align=right, which don´t show up for other
+   elements like <p>
+
+   CSS definitions declared in the XML file are realised as INLINE styles. If you want avoid
+   INLINE elements, but the CSS definitions into the /my_config_my_fckeditorarea.css and
+   references only the class or ID in the XML file.
+
+   Use /my_config/my_template.xls to define custom Editor templates (e.g. 2 or 3 column).
+   This option is usefull if you have several side layouts (e.g. Level 1, Level 2...)
+*/
+
+
+// #########################################################################################
+// # FCK Editor: PLUGINS (Link, Image, Flash)
+// # ---------------------------------------------------------------------------------------
+// #  Plugin Link:   create internal or external links and URL
+// #  Plugin Image:  insert images to your WYSIWYG text area form the WB media directory
+// #  Plugin Flash:  insert flash elements including upload Option
+// #  
+// #  Note: 
+// #  You need to integrate the plugins into the menu bar so you can use them
+// #    FCKConfig.ToolbarSets["MyToolbar"] = [
+// #      ['Image',Link','Flash'], ...
+// #    ];
+// #########################################################################################
+
+// configure the image plugin
+   FCKConfig.ImageUpload = false ;		// display/hides image upload tab (allow/disable users to upload images from FCK)
+   FCKConfig.ImageBrowser = true ;		// enables/disables the file browser to search for uploaded files in /media folder
+
+// configure the link plugin
+   FCKConfig.LinkUpload = false ;		// display/hides link upload tab (allow/disable users to upload files from FCK)
+   FCKConfig.LinkBrowser = true ;		// enables/disables the file browser to search for uploaded files in /media folder
+
+// configure the flash plugin
+   FCKConfig.FlashUpload = false ;		// display/hides upload tab (allow/disable users to upload flash movies from FCK)
+   FCKConfig.FlashBrowser = true;		// enables/disables the file browser to search for uploaded files in /media folder
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckconfig.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/wb_config/index.php
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/wb_config/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/wb_config/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/fckeditor/wb_config/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckstyles.xml
===================================================================
--- tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckstyles.xml	(nonexistent)
+++ tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckstyles.xml	(revision 838)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the sample style definitions file. It makes the styles combo
+ * completely customizable.
+ *
+ * See FCKConfig.StylesXmlPath in the configuration file.
+-->
+<Styles>
+
+	<!-- Block Styles -->
+
+	<!--
+	# These styles are already available in the "Format" combo, so they are not
+	# needed here by default.
+
+	<Style name="Heading 1" element="h1" />
+	<Style name="Heading 2" element="h2" />
+	<Style name="Heading 3" element="h3" />
+	<Style name="Heading 4" element="h4" />
+	<Style name="Heading 5" element="h5" />
+	<Style name="Heading 6" element="h6" />
+	<Style name="Paragraph" element="p" />
+	<Style name="Document Block" element="div" />
+	<Style name="Preformatted Text" element="pre" />
+	<Style name="Address" element="address" />
+	-->
+
+	<!-- Inline Styles -->
+
+	<!--
+	# These are core styles available as toolbar buttons.
+
+	<Style name="Bold" element="b">
+		<Override element="strong" />
+	</Style>
+	<Style name="Italic" element="i">
+		<Override element="em" />
+	</Style>
+	<Style name="Underline" element="u" />
+	<Style name="Strikethrough" element="strike" />
+	<Style name="Subscript" element="sub" />
+	<Style name="Superscript" element="sup" />
+	-->
+
+	<Style name="Marker: Yellow" element="span">
+		<Style name="background-color" value="Yellow" />
+	</Style>
+	<Style name="Marker: Green" element="span">
+		<Style name="background-color" value="Lime" />
+	</Style>
+
+	<Style name="Big" element="big" />
+	<Style name="Small" element="small" />
+	<Style name="Typewriter" element="tt" />
+
+	<Style name="Computer Code" element="code" />
+	<Style name="Keyboard Phrase" element="kbd" />
+	<Style name="Sample Text" element="samp" />
+	<Style name="Variable" element="var" />
+
+	<Style name="Deleted Text" element="del" />
+	<Style name="Inserted Text" element="ins" />
+
+	<Style name="Cited Work" element="cite" />
+	<Style name="Inline Quotation" element="q" />
+
+	<Style name="Language: RTL" element="span">
+		<Attribute name="dir" value="rtl" />
+	</Style>
+	<Style name="Language: LTR" element="span">
+		<Attribute name="dir" value="ltr" />
+	</Style>
+	<Style name="Language: RTL Strong" element="bdo">
+		<Attribute name="dir" value="rtl" />
+	</Style>
+	<Style name="Language: LTR Strong" element="bdo">
+		<Attribute name="dir" value="ltr" />
+	</Style>
+
+	<!-- Object Styles -->
+
+	<Style name="Image on Left" element="img">
+		<Attribute name="style" value="padding: 5px; margin-right: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="left" />
+	</Style>
+	<Style name="Image on Right" element="img">
+		<Attribute name="style" value="padding: 5px; margin-left: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="right" />
+	</Style>
+</Styles>

Property changes on: tags/2.7.0/wb/modules/fckeditor/wb_config/wb_fckstyles.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/edit_module_files.php
===================================================================
--- tags/2.7.0/wb/modules/edit_module_files.php	(nonexistent)
+++ tags/2.7.0/wb/modules/edit_module_files.php	(revision 838)
@@ -0,0 +1,169 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/**
+	This file contains the routines to edit the optional module files: frontend.css and backend.css
+	Mechanism was introduced with WB 2.7 to provide a global solution for all modules
+*/
+
+// prevent this file from being accessed directly
+if(!(isset($_POST['page_id']) && isset($_POST['section_id']) && isset($_POST['action']) 
+	&& isset($_POST['mod_dir'])  && isset($_POST['edit_file']))) die(header('Location: index.php')); 
+
+// include configuration file and admin wrapper script
+require('../config.php');
+
+// include the and admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// leave if the required module.functions.php file does not exist
+if(!file_exists(WB_PATH .'/framework/module.functions.php')) {
+	echo 'The required file: /framework/module.functions.php is missing - script stopped.';
+	die;
+}
+
+// set default text output if varibles are not defined in the global WB language files
+$HEADING_CSS_FILE = (isset($GLOBALS['TEXT']['HEADING_CSS_FILE'])) ?$GLOBALS['TEXT']['HEADING_CSS_FILE'] :'Actual module file: ';
+$TXT_EDIT_CSS_FILE = (isset($GLOBALS['TEXT']['TXT_EDIT_CSS_FILE'])) ?$GLOBALS['TEXT']['TXT_EDIT_CSS_FILE'] :'Edit the CSS definitions in the textarea below.';
+
+// include functions to edit the optional module CSS files (frontend.css, backend.css)
+require_once(WB_PATH .'/framework/module.functions.php');
+
+// check if the module directory is valid
+$mod_dir = check_module_dir($_POST['mod_dir']);
+if($mod_dir == '') {
+	echo 'The specified module directory is invalid - script stopped.';
+	die;
+};
+
+// check if action is: save or edit
+if($_POST['action'] == 'save' && mod_file_exists($mod_dir, $_POST['edit_file'])) {
+	/** 
+		SAVE THE UPDATED CONTENTS TO THE CSS FILE
+	*/
+
+	$css_content = '';
+	if(isset($_POST['css_codepress']) && strlen($_POST['css_codepress']) > 0) {
+		// Javascript is enabled so take contents from hidden field: css_codepress
+		$css_content = stripslashes($_POST['css_codepress']);
+	} elseif(isset($_POST['css_data']) && strlen($_POST['css_data']) > 0) {
+		// Javascript disabled, take contens from textarea: css_data
+		$css_content = stripslashes($_POST['css_data']);
+	}
+
+	$bytes = 0;
+	if ($css_content != '') {
+		// open the module CSS file for writting
+		$mod_file = @fopen(WB_PATH .'/modules/' .$mod_dir .'/' .$_POST['edit_file'], "wb");
+		// write new content to the module CSS file
+		$bytes = @fwrite($mod_file, $css_content);
+		// close the file
+		@fclose($mod_file);
+	}
+
+	// write out status message
+	if($bytes == 0 ) {
+		$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+	} else {
+		$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+	}
+
+
+} else {
+	/** 
+		MODIFY CONTENTS OF THE CSS FILE VIA TEXT AREA 
+	*/
+	// check if module backend.css file needs to be included into the <body>
+	if((!method_exists($admin, 'register_backend_modfiles') || !isset($_GET['page_id']))
+			&& file_exists(WB_PATH .'/modules/'.$mod_dir.'/backend.css')) {
+		echo '<style type="text/css">';
+		include(WB_PATH .'/modules/' .$mod_dir .'/backend.css');
+		echo "\n</style>\n";
+	}
+
+	// check which module file to edit (frontend.css, backend.css or '')
+	$css_file = (in_array($_POST['edit_file'], array('frontend.css', 'backend.css'))) ? $_POST['edit_file'] : '';
+
+	// display output
+	if($css_file == '') {
+		// no valid module file to edit; display error message and backlink to modify.php
+		echo "<h2>Nothing to edit</h2>";
+		echo "<p>No valid module file exists for this module.</p>";
+		$output  = "<a href=\"#\" onclick=\"javascript: window.location = '";
+		$output .= ADMIN_URL ."/pages/modify.php?page_id=" .$page_id ."'\">back</a>";
+		echo $output;
+	
+	} else {
+		// store content of the module file in variable
+		$css_content = @file_get_contents(WB_PATH .'/modules/' .$mod_dir .'/' .$css_file);
+
+		// make sure that codepress stuff is only used if the framework is available
+		$CODEPRESS['CLASS'] = '';
+		$CODEPRESS['JS'] = '';
+		if(file_exists(WB_PATH .'/include/codepress/codepress.js')) {
+			$CODEPRESS['CLASS'] = 'class="codepress css" ';
+			$CODEPRESS['JS'] = 'onclick="javascript: css_codepress.value = area_codepress.getCode();"';
+		}
+
+		// write out heading
+		echo '<h2>' .$HEADING_CSS_FILE .'"' .$css_file .'"</h2>';
+		// include button to switch between frontend.css and backend.css (only shown if both files exists)
+		toggle_css_file($mod_dir, $css_file); 
+	  echo '<p>' .$TXT_EDIT_CSS_FILE .'</p>';
+
+		// output content of module file to textareas
+	?>
+		<form name="edit_module_file" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" style="margin: 0;">
+			<input type="hidden" name="css_codepress" value="" />
+	  	<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+	  	<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+	  	<input type="hidden" name="mod_dir" value="<?php echo $mod_dir; ?>">
+			<input type="hidden" name="edit_file" value="<?php echo $css_file; ?>" />
+	  	<input type="hidden" name="action" value="save">
+
+			<textarea id="area_codepress" name="css_data" <?php echo $CODEPRESS['CLASS'];?>cols="115" rows="25" wrap="VIRTUAL" style="margin:2px;"><?php echo $css_content; ?></textarea>
+
+  			<table cellpadding="0" cellspacing="0" border="0" width="100%">
+  			<tr>
+    			<td align="left">
+ 				<input name="save" type="submit" value="<?php echo $TEXT['SAVE'];?>"
+				  <?php echo $CODEPRESS['JS'];?> style="width: 100px; margin-top: 5px;" />
+    			</td>
+  				<td align="right">
+      			<input type="button" value="<?php echo $TEXT['CANCEL']; ?>"
+						onclick="javascript: window.location = '<?php echo ADMIN_URL;?>/pages/modify.php?page_id=<?php echo $page_id; ?>';"
+						style="width: 100px; margin-top: 5px;" />
+  				</td>
+  			</tr>
+  			</table>
+		</form>
+		<?php 
+	}
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/edit_module_files.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/NL.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'Met deze module maak je een nieuwspagina.';
+
+//Variables for the  backend
+$MOD_NEWS['SETTINGS'] = 'Eigenschappen van de Nieuwsmodule';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/NO.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'Denne sidetypen er ment for &aring; kunne lage Nyhets sider.';
+  
+//Variables for the  backend
+$MOD_NEWS['SETTINGS'] = 'Innstillinger for Nyheter';
+  
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/EN.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = 'This page type is designed for making a news page.';
+
+//Variables for the  backend
+$MOD_NEWS['SETTINGS'] = 'News Settings';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/RU.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modul Description
+$module_description = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; &#1087;&#1088;&#1077;&#1076;&#1085;&#1072;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085; &#1076;&#1083;&#1103; &#1089;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1103; &#1083;&#1077;&#1085;&#1090;&#1099; &#1085;&#1086;&#1074;&#1086;&#1089;&#1090;&#1077;&#1081;';
+
+//Variables for the  backend
+$MOD_NEWS['SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1085;&#1086;&#1074;&#1086;&#1089;&#1090;&#1085;&#1086;&#1081; &#1083;&#1077;&#1085;&#1090;&#1099;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/news/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/DE.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+//Modulbeschreibung
+$module_description = 'Mit diesem Modul k&ouml;nnen sie eine News Seite ihrer Seite hinzuf&uuml;gen.';
+
+//Variablen fuer backend Texte
+$MOD_NEWS['SETTINGS'] = 'News Einstellungen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/news/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/modify_settings.php
===================================================================
--- tags/2.7.0/wb/modules/news/modify_settings.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/modify_settings.php	(revision 838)
@@ -0,0 +1,210 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// include core functions of WB 2.7 to edit the optional module CSS files (frontend.css, backend.css)
+@include_once(WB_PATH .'/framework/module.functions.php');
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/news/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/news/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/news/languages/'.LANGUAGE .'.php');
+}
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+$fetch_content = $query_content->fetchRow();
+
+// Set raw html <'s and >'s to be replace by friendly html code
+$raw = array('<', '>');
+$friendly = array('&lt;', '&gt;');
+
+// check if backend.css file needs to be included into the <body></body> of modify.php
+if(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH ."/modules/form/backend.css")) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/form/backend.css');
+	echo "\n</style>\n";
+}
+
+?>
+<h2><?php echo $MOD_NEWS['SETTINGS']; ?></h2>
+<?php
+// include the button to edit the optional module CSS files (function added with WB 2.7)
+// Note: CSS styles for the button are defined in backend.css (div class="mod_moduledirectory_edit_css")
+// Place this call outside of any <form></form> construct!!!
+if(function_exists('edit_module_css')) {
+	edit_module_css('news');
+}
+?>
+
+<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_settings.php" method="post" style="margin: 0;">
+
+	<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+	<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+
+	<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+		<tr>
+			<td colspan="2"><strong><?php echo $HEADING['GENERAL_SETTINGS']; ?></strong></td>
+		<tr>
+			<td class="setting_name" width="20%"><?php echo $TEXT['HEADER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="header" style="width: 98%; height: 80px;"><?php echo ($fetch_content['header']); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['POST'].' '.$TEXT['LOOP']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="post_loop" style="width: 98%; height: 60px;"><?php echo ($fetch_content['post_loop']); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['FOOTER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="footer" style="width: 98%; height: 80px;"><?php echo str_replace($raw, $friendly, ($fetch_content['footer'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['POST_HEADER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="post_header" style="width: 98%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['post_header'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['POST_FOOTER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="post_footer" style="width: 98%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['post_footer'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['POSTS_PER_PAGE']; ?>:</td>
+			<td class="setting_name">
+				<select name="posts_per_page" style="width: 98%;">
+					<option value=""><?php echo $TEXT['UNLIMITED']; ?></option>
+					<?php
+					for($i = 1; $i <= 20; $i++) {
+						if($fetch_content['posts_per_page'] == ($i*5)) { $selected = ' selected'; } else { $selected = ''; }
+						echo '<option value="'.($i*5).'"'.$selected.'>'.($i*5).'</option>';
+					}
+					?>
+				</select>
+			</td>
+		</tr>
+	</table>
+	<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%" style="margin-top: 3px;">
+		<tr>
+			<td colspan="2"><strong><?php echo $TEXT['COMMENTS']; ?></strong></td>
+		</tr>
+		<tr>
+			<td  width="20%"><?php echo $TEXT['COMMENTING']; ?>:</td>
+			<td>
+				<select name="commenting" style="width: 98%;">
+					<option value="none"><?php echo $TEXT['DISABLED']; ?></option>
+					<option value="public" <?php if($fetch_content['commenting'] == 'public') { echo 'selected'; } ?>><?php echo $TEXT['PUBLIC']; ?></option>
+					<option value="private" <?php if($fetch_content['commenting'] == 'private') { echo 'selected'; } ?>><?php echo $TEXT['PRIVATE']; ?></option>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['CAPTCHA_VERIFICATION']; ?>:</td>
+			<td>
+				<input type="radio" name="use_captcha" id="use_captcha_true" value="1"<?php if($fetch_content['use_captcha'] == true) { echo ' checked'; } ?> />
+				<label for="use_captcha_true"><?php echo $TEXT['ENABLED']; ?></label>
+				<input type="radio" name="use_captcha" id="use_captcha_false" value="0"<?php if($fetch_content['use_captcha'] == false) { echo ' checked'; } ?> />
+				<label for="use_captcha_false"><?php echo $TEXT['DISABLED']; ?></label>
+			</td>
+		</tr>
+		<?php if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */ ?>
+		<tr>
+			<td>
+				<?php echo $TEXT['RESIZE_IMAGE_TO']; ?>:
+			</td>
+			<td>
+				<select name="resize" style="width: 98%;">
+					<option value=""><?php echo $TEXT['NONE']; ?></option>
+					<?php
+					$SIZES['50'] = '50x50px';
+					$SIZES['75'] = '75x75px';
+					$SIZES['100'] = '100x100px';
+					$SIZES['125'] = '125x125px';
+					$SIZES['150'] = '150x150px';
+					foreach($SIZES AS $size => $size_name) {
+						if($fetch_content['resize'] == $size) { $selected = ' selected'; } else { $selected = ''; }
+						echo '<option value="'.$size.'"'.$selected.'>'.$size_name.'</option>';
+					}
+					?>
+				</select>
+			</td>
+		</tr>
+		<?php } ?>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['HEADER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="comments_header" style="width: 98%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_header'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['LOOP']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="comments_loop" style="width: 98%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_loop'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['FOOTER']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="comments_footer" style="width: 98%; height: 60px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_footer'])); ?></textarea>
+			</td>
+		</tr>
+		<tr>
+			<td class="setting_name"><?php echo $TEXT['COMMENTS'].' '.$TEXT['PAGE']; ?>:</td>
+			<td class="setting_name">
+				<textarea name="comments_page" style="width: 98%; height: 80px;"><?php echo str_replace($raw, $friendly, ($fetch_content['comments_page'])); ?></textarea>
+			</td>
+		</tr>
+	</table>
+	<table cellpadding="0" cellspacing="0" border="0" width="100%">
+		<tr>
+			<td align="left">
+				<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+			</td>
+			<td align="right">
+				<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
+			</td>
+		</tr>
+	</table>
+
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/modify_settings.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/backend.css
===================================================================
--- tags/2.7.0/wb/modules/news/backend.css	(nonexistent)
+++ tags/2.7.0/wb/modules/news/backend.css	(revision 838)
@@ -0,0 +1,19 @@
+.setting_name {
+	vertical-align: top;
+}
+
+/* 
+  The definitions below provide the style for the edit CSS button 
+  Required CSS class name: input.mod_moduledirectory_edit_css
+*/
+input.mod_news_edit_css {
+  color: #000;
+  background-color: #F0F0F0;
+  border: 1px solid gray;
+  padding: 2px;
+  margin: 0;
+  margin-left: 625px;
+  margin-top: -20px;
+  margin-bottom: 5px;
+  width: 110px;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/backend.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/frontend.css
===================================================================
--- tags/2.7.0/wb/modules/news/frontend.css	(nonexistent)
+++ tags/2.7.0/wb/modules/news/frontend.css	(revision 838)
@@ -0,0 +1,53 @@
+.post_title, .post_date {
+	border-bottom: 1px solid #DDDDDD;
+}
+
+.post_title {
+	font-weight: bold;
+	font-size: 12px;
+	color: #000000;
+}
+
+.post_date {
+	text-align: right;
+	font-weight: bold;
+}
+
+.post_short {
+	text-align: justify;
+	padding-bottom: 5px;
+}
+
+.comment_title {
+	font-weight: bold;
+}
+
+.comment_text {
+	font-weight: bold;
+	background-color: #FDFDFD;
+	border-bottom: 1px solid #DDDDDD;
+	padding-bottom: 15px;
+}
+
+.comment_title, .comment_text {
+	border-left: 1px solid #DDDDDD;
+}
+
+.comment_info {
+	text-align: right;
+	border-right: 1px solid #DDDDDD;
+}
+
+.comment_title, .comment_info {
+	border-top: 1px solid #DDDDDD;
+	background-color: #EEEEEE;
+}
+
+.selected_group_title { 
+	font-size: 14px;
+	text-align: center;
+}
+/*** Don't remove the class nixhier, this is required for ASP ***/
+.nixhier {
+	display:none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/frontend.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/comment_page.php
===================================================================
--- tags/2.7.0/wb/modules/news/comment_page.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/comment_page.php	(revision 838)
@@ -0,0 +1,105 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Make sure page cannot be accessed directly
+if(!defined('WB_URL')) { 
+	header('Location: ../index.php');
+	exit(0);
+}
+
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+// Get comments page template details from db
+$query_settings = $database->query("SELECT comments_page,use_captcha,commenting FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '".SECTION_ID."'");
+if($query_settings->numRows() == 0) {
+	header("Location: ".WB_URL.PAGES_DIRECTORY."");
+	exit(0);
+} else {
+	$settings = $query_settings->fetchRow();
+
+	// Print comments page
+	echo str_replace('[POST_TITLE]', POST_TITLE, ($settings['comments_page']));
+	?>
+	<form name="comment" action="<?php echo WB_URL.'/modules/news/submit_comment.php?page_id='.PAGE_ID.'&section_id='.SECTION_ID.'&post_id='.POST_ID; ?>" method="post">
+	<?php if(ENABLED_ASP) { // add some honeypot-fields
+	?>
+	<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
+	<p class="nixhier">
+	email address:
+	<label for="email">Leave this field email blank:</label>
+	<input id="email" name="email" size="60" value="" /><br />
+	Homepage:
+	<label for="homepage">Leave this field homepage blank:</label>
+	<input id="homepage" name="homepage" size="60" value="" /><br />
+	URL:
+	<label for="url">Leave this field url blank:</label>
+	<input id="url" name="url" size="60" value="" /><br />
+	Comment:
+	<label for="comment">Leave this field comment blank:</label>
+	<input id="comment" name="comment" size="60" value="" /><br />
+	</p>
+	<?php }
+	?>
+	<?php echo $TEXT['TITLE']; ?>:
+	<br />
+	<input type="text" name="title" maxlength="255" style="width: 90%;"<?php if(isset($_SESSION['comment_title'])) { echo ' value="'.$_SESSION['comment_title'].'"'; unset($_SESSION['comment_title']); } ?> />
+	<br /><br />
+	<?php echo $TEXT['COMMENT']; 
+	?>:
+	<br />
+	<?php if(ENABLED_ASP) { ?>
+		<textarea name="c0mment_<?php echo date('W'); ?>" style="width: 90%; height: 150px;"><?php if(isset($_SESSION['comment_body'])) { echo $_SESSION['comment_body']; unset($_SESSION['comment_body']); } ?></textarea>
+	<?php } else { ?>
+		<textarea name="comment" style="width: 90%; height: 150px;"><?php if(isset($_SESSION['comment_body'])) { echo $_SESSION['comment_body']; unset($_SESSION['comment_body']); } ?></textarea>
+	<?php } ?>
+	<br /><br />
+	<?php
+	if(isset($_SESSION['captcha_error'])) {
+		echo '<font color="#FF0000">'.$_SESSION['captcha_error'].'</font><br />';
+		$_SESSION['captcha_retry_news'] = true;
+	}
+	// Captcha
+	if($settings['use_captcha']) {
+	?>
+	<table cellpadding="2" cellspacing="0" border="0">
+	<tr>
+		<td><?php echo $TEXT['VERIFICATION']; ?>:</td>
+		<td><?php call_captcha(); ?></td>
+	</tr></table>
+	<br />
+	<?php
+	if(isset($_SESSION['captcha_error'])) {
+		unset($_SESSION['captcha_error']);
+		?><script>document.comment.captcha.focus();</script><?php
+	}?>
+	<?php
+	}
+	?>
+	<input type="submit" name="submit" value="<?php echo $TEXT['ADD']; ?> <?php echo $TEXT['COMMENT']; ?>" />
+	</form>	
+	<?php
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/news/comment_page.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/install.php
===================================================================
--- tags/2.7.0/wb/modules/news/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/install.php	(revision 838)
@@ -0,0 +1,171 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(defined('WB_URL')) {
+	
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_posts`");
+	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_posts` ( '
+					 . '`post_id` INT NOT NULL AUTO_INCREMENT,'
+					 . '`section_id` INT NOT NULL DEFAULT \'0\','
+					 . '`page_id` INT NOT NULL DEFAULT \'0\','
+					 . '`group_id` INT NOT NULL DEFAULT \'0\','
+					 . '`active` INT NOT NULL DEFAULT \'0\','
+					 . '`position` INT NOT NULL DEFAULT \'0\','
+					 . '`title` VARCHAR(255) NOT NULL DEFAULT \'\','
+					 . '`link` TEXT NOT NULL ,'
+					 . '`content_short` TEXT NOT NULL ,'
+					 . '`content_long` TEXT NOT NULL ,'
+					 . '`commenting` VARCHAR(7) NOT NULL DEFAULT \'\','
+					 . '`published_when` INT NOT NULL DEFAULT \'0\','
+					 . '`published_until` INT NOT NULL DEFAULT \'0\','
+					 . '`posted_when` INT NOT NULL DEFAULT \'0\','
+					 . '`posted_by` INT NOT NULL DEFAULT \'0\','
+					 . 'PRIMARY KEY (post_id)'
+					 . ' )';
+	$database->query($mod_news);
+	
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_groups`");
+	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_groups` ( '
+					 . '`group_id` INT NOT NULL AUTO_INCREMENT,'
+					 . '`section_id` INT NOT NULL DEFAULT \'0\','
+					 . '`page_id` INT NOT NULL DEFAULT \'0\','
+					 . '`active` INT NOT NULL DEFAULT \'0\','
+					 . '`position` INT NOT NULL DEFAULT \'0\','
+					 . '`title` VARCHAR(255) NOT NULL DEFAULT \'\','
+					 . 'PRIMARY KEY (group_id)'
+                . ' )';
+	$database->query($mod_news);
+	
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_comments`");
+	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_comments` ( '
+					 . '`comment_id` INT NOT NULL AUTO_INCREMENT,'
+					 . '`section_id` INT NOT NULL DEFAULT \'0\','
+					 . '`page_id` INT NOT NULL DEFAULT \'0\','
+					 . '`post_id` INT NOT NULL DEFAULT \'0\','
+					 . '`title` VARCHAR(255) NOT NULL DEFAULT \'\','
+					 . '`comment` TEXT NOT NULL ,'
+		   	    . '`commented_when` INT NOT NULL DEFAULT \'0\','
+					 . '`commented_by` INT NOT NULL DEFAULT \'0\','
+					 . 'PRIMARY KEY (comment_id)'
+                . ' )';
+	$database->query($mod_news);
+	
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_news_settings`");
+	$mod_news = 'CREATE TABLE `'.TABLE_PREFIX.'mod_news_settings` ( '
+					 . '`section_id` INT NOT NULL DEFAULT \'0\','
+					 . '`page_id` INT NOT NULL DEFAULT \'0\','
+					 . '`header` TEXT NOT NULL ,'
+					 . '`post_loop` TEXT NOT NULL ,'
+					 . '`footer` TEXT NOT NULL ,'
+					 . '`posts_per_page` INT NOT NULL DEFAULT \'0\','
+					 . '`post_header` TEXT NOT NULL,'
+					 . '`post_footer` TEXT NOT NULL,'
+					 . '`comments_header` TEXT NOT NULL,'
+					 . '`comments_loop` TEXT NOT NULL,'
+					 . '`comments_footer` TEXT NOT NULL,'
+					 . '`comments_page` TEXT NOT NULL,'
+					 . '`commenting` VARCHAR(7) NOT NULL DEFAULT \'\','
+					 . '`resize` INT NOT NULL DEFAULT \'0\','
+					 . ' `use_captcha` INT NOT NULL DEFAULT \'0\','
+					 . 'PRIMARY KEY (section_id)'
+                . ' )';
+	$database->query($mod_news);
+		
+	// Insert info into the search table
+	// Module query info
+	$field_info = array();
+	$field_info['page_id'] = 'page_id';
+	$field_info['title'] = 'page_title';
+	$field_info['link'] = 'link';
+	$field_info['description'] = 'description';
+	$field_info['modified_when'] = 'modified_when';
+	$field_info['modified_by'] = 'modified_by';
+	$field_info = serialize($field_info);
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'news', '$field_info')");
+	// Query start
+	$query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title,	[TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by	FROM [TP]mod_news_posts, [TP]mod_news_groups, [TP]mod_news_comments, [TP]mod_news_settings, [TP]pages WHERE ";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'news')");
+	// Query body
+	$query_body_code = "
+	[TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.title LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_short LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_posts.page_id AND [TP]mod_news_posts.content_long LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.title LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_comments.page_id AND [TP]mod_news_comments.comment LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.header LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.footer LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_header LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.post_footer LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_header LIKE \'%[STRING]%\'
+	OR [TP]pages.page_id = [TP]mod_news_settings.page_id AND [TP]mod_news_settings.comments_footer LIKE \'%[STRING]%\'";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'news')");
+	// Query end
+	$query_end_code = "";	
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'news')");
+	
+	// Insert blank row (there needs to be at least on row for the search to work)
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id) VALUES ('0', '0')");
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_groups (section_id,page_id) VALUES ('0', '0')");
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_comments (section_id,page_id) VALUES ('0', '0')");
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_settings (section_id,page_id) VALUES ('0', '0')");
+	
+	// Make news post access files dir
+	require_once(WB_PATH.'/framework/functions.php');
+	if(make_dir(WB_PATH.PAGES_DIRECTORY.'/posts')) {
+		// Add a index.php file to prevent directory spoofing
+		$content = ''.
+"<?php
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../');
+?>";
+		$handle = fopen(WB_PATH.PAGES_DIRECTORY.'/posts/index.php', 'w');
+		fwrite($handle, $content);
+		fclose($handle);
+		change_mode(WB_PATH.PAGES_DIRECTORY.'/posts/index.php', 'file');
+	}
+};
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/modify_post.php
===================================================================
--- tags/2.7.0/wb/modules/news/modify_post.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/modify_post.php	(revision 838)
@@ -0,0 +1,256 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$post_id = $_GET['post_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
+$fetch_content = $query_content->fetchRow();
+
+if (!defined('WYSIWYG_EDITOR') OR WYSIWYG_EDITOR=="none" OR !file_exists(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php')) {
+	function show_wysiwyg_editor($name,$id,$content,$width,$height) {
+		echo '<textarea name="'.$name.'" id="'.$id.'" style="width: '.$width.'; height: '.$height.';">'.$content.'</textarea>';
+	}
+} else {
+	$id_list=array("short","long");
+			require(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php');
+}
+
+// include jscalendar-setup
+$jscal_use_time = true; // whether to use a clock, too
+require_once(WB_PATH."/include/jscalendar/wb-setup.php");
+?>
+<h2><?php echo $TEXT['ADD'].'/'.$TEXT['MODIFY'].' '.$TEXT['POST']; ?></h2>
+
+<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_post.php" method="post" style="margin: 0;">
+
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+<input type="hidden" name="post_id" value="<?php echo $post_id; ?>">
+<input type="hidden" name="link" value="<?php echo $fetch_content['link']; ?>">
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td><?php echo $TEXT['TITLE']; ?>:</td>
+	<td width="80%">
+		<input type="text" name="title" value="<?php echo (htmlspecialchars($fetch_content['title'])); ?>" style="width: 98%;" maxlength="255" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['GROUP']; ?>:</td>
+	<td>
+		<select name="group" style="width: 100%;">
+			<option value="0"><?php echo $TEXT['NONE']; ?></option>
+			<?php
+			$query = $database->query("SELECT group_id,title FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id' ORDER BY position ASC");
+			if($query->numRows() > 0) {
+				// Loop through groups
+				while($group = $query->fetchRow()) {
+					?>
+					<option value="<?php echo $group['group_id']; ?>"<?php if($fetch_content['group_id'] == $group['group_id']) { echo ' selected'; } ?>><?php echo $group['title']; ?></option>
+					<?php
+				}
+			}
+			?>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['COMMENTING']; ?>:</td>
+	<td>
+		<select name="commenting" style="width: 100%;">
+			<option value="none"><?php echo $TEXT['DISABLED']; ?></option>
+			<option value="public" <?php if($fetch_content['commenting'] == 'public') { echo 'selected'; } ?>><?php echo $TEXT['PUBLIC']; ?></option>
+			<option value="private" <?php if($fetch_content['commenting'] == 'private') { echo 'selected'; } ?>><?php echo $TEXT['PRIVATE']; ?></option>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['ACTIVE']; ?>:</td>
+	<td>
+		<input type="radio" name="active" id="active_true" value="1" <?php if($fetch_content['active'] == 1) { echo ' checked'; } ?> />
+		<a href="#" onclick="javascript: document.getElementById('active_true').checked = true;">
+		<?php echo $TEXT['YES']; ?>
+		</a>
+		&nbsp;
+		<input type="radio" name="active" id="active_false" value="0" <?php if($fetch_content['active'] == 0) { echo ' checked'; } ?> />
+		<a href="#" onclick="javascript: document.getElementById('active_false').checked = true;">
+		<?php echo $TEXT['NO']; ?>
+		</a>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['PUBL_START_DATE']; ?>:</td>
+	<td>
+	<input type="text" id="publishdate" name="publishdate" value="<?php if($fetch_content['published_when']==0) print date($jscal_format, strtotime((date('Y-m-d')))); else print date($jscal_format, $fetch_content['published_when']);?>" style="width: 120px;" />
+	<img src="<?php echo ADMIN_URL ?>/images/clock_16.png" id="publishdate_trigger" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+	<img src="<?php echo ADMIN_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" onclick="document.modify.publishdate.value=''" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['PUBL_END_DATE']; ?>:</td>
+	<td>
+	<input type="text" id="enddate" name="enddate" value="<?php if($fetch_content['published_until']==0) print ""; else print date($jscal_format, $fetch_content['published_until'])?>" style="width: 120px;" />
+	<img src="<?php echo ADMIN_URL ?>/images/clock_16.png" id="enddate_trigger" style="cursor: pointer;" title="<?php echo $TEXT['CALENDAR']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" />
+	<img src="<?php echo ADMIN_URL ?>/images/clock_del_16.png" style="cursor: pointer;" title="<?php echo $TEXT['DELETE_DATE']; ?>" onmouseover="this.style.background='lightgrey';" onmouseout="this.style.background=''" onclick="document.modify.enddate.value=''" />
+	</td>
+</tr>
+</table>
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td valign="top"><?php echo $TEXT['SHORT']; ?>:</td>
+</tr>
+<tr>
+	<td>
+	<?php
+	show_wysiwyg_editor("short","short",htmlspecialchars($fetch_content['content_short']),"100%","135px");
+	?>
+	</td>
+</tr>
+<tr>
+	<td valign="top"><?php echo $TEXT['LONG']; ?>:</td>
+</tr>
+<tr>
+	<td>
+	<?php
+	show_wysiwyg_editor("long","long",htmlspecialchars($fetch_content['content_long']),"100%","300px");
+	?>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+	</td>
+	<td align="right">
+		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+<script type="text/javascript">
+	Calendar.setup(
+		{
+			inputField  : "publishdate",
+			ifFormat    : "<?php echo $jscal_ifformat ?>",
+			button      : "publishdate_trigger",
+			firstDay    : <?php echo $jscal_firstday ?>,
+			<?php if(isset($jscal_use_time) && $jscal_use_time==TRUE) { ?>
+				showsTime   : "true",
+				timeFormat  : "24",
+			<?php } ?>
+			date        : "<?php echo $jscal_today ?>",
+			range       : [1970, 2037],
+			step        : 1
+		}
+	);
+	Calendar.setup(
+		{
+			inputField  : "enddate",
+			ifFormat    : "<?php echo $jscal_ifformat ?>",
+			button      : "enddate_trigger",
+			firstDay    : <?php echo $jscal_firstday ?>,
+			<?php if(isset($jscal_use_time) && $jscal_use_time==TRUE) { ?>
+				showsTime   : "true",
+				timeFormat  : "24",
+			<?php } ?>
+			date        : "<?php echo $jscal_today ?>",
+			range       : [1970, 2037],
+			step        : 1
+		}
+	);
+</script>
+
+<br />
+
+<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['COMMENT']; ?></h2>
+
+<?php
+
+// Loop through existing posts
+$query_comments = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_news_comments` WHERE section_id = '$section_id' AND post_id = '$post_id' ORDER BY commented_when DESC");
+if($query_comments->numRows() > 0) {
+	$row = 'a';
+	?>
+	<table cellpadding="2" cellspacing="0" border="0" width="100%">
+	<?php
+	while($comment = $query_comments->fetchRow()) {
+		?>
+		<tr class="row_<?php echo $row; ?>" height="20">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="^" />
+				</a>
+			</td>	
+			<td>
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>">
+					<?php echo $comment['title']; ?>
+				</a>
+			</td>
+			<td width="20">
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/news/delete_comment.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post_id; ?>&comment_id=<?php echo $comment['comment_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+				</a>
+			</td>
+		</tr>
+		<?php
+		// Alternate row color
+		if($row == 'a') {
+			$row = 'b';
+		} else {
+			$row = 'a';
+		}
+	}
+	?>
+	</table>
+	<?php
+} else {
+	echo $TEXT['NONE_FOUND'];
+}
+
+?>
+
+
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/modify_post.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/save_group.php
===================================================================
--- tags/2.7.0/wb/modules/news/save_group.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/save_group.php	(revision 838)
@@ -0,0 +1,105 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_POST['group_id']) OR !is_numeric($_POST['group_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$group_id = $_POST['group_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Include WB functions file
+require(WB_PATH.'/framework/functions.php');
+
+// Vagroup_idate all fields
+if($admin->get_post('title') == '') {
+	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
+} else {
+	$title = $admin->get_post_escaped('title');
+	$active = $admin->get_post_escaped('active');
+}
+
+// Update row
+$database->query("UPDATE ".TABLE_PREFIX."mod_news_groups SET title = '$title', active = '$active' WHERE group_id = '$group_id'");
+
+// Check if the user uploaded an image or wants to delete one
+if(isset($_FILES['image']['tmp_name']) AND $_FILES['image']['tmp_name'] != '') {
+	// Get real filename and set new filename
+	$filename = $_FILES['image']['name'];
+	$new_filename = WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg';
+	// Make sure the image is a jpg file
+	$file4=substr($filename, -4, 4);
+	if(($file4 != '.jpg')and($file4 != '.JPG')and($file4 != '.png')and($file4 != '.PNG') and ($file4 !='jpeg') and ($file4 != 'JPEG')) {
+		$admin->print_error($MESSAGE['GENERIC']['FILE_TYPE'].' JPG (JPEG) or PNG a');
+	} elseif(
+	(($_FILES['image']['type']) != 'image/jpeg' AND mime_content_type($_FILES['image']['tmp_name']) != 'image/jpg') 
+	and
+	(($_FILES['image']['type']) != 'image/png' AND mime_content_type($_FILES['image']['tmp_name']) != 'image/png') 
+	){
+		$admin->print_error($MESSAGE['GENERIC']['FILE_TYPE'].' JPG (JPEG) or PNG b');
+	}
+	// Make sure the target directory exists
+	make_dir(WB_PATH.MEDIA_DIRECTORY.'/.news');
+	// Upload image
+	move_uploaded_file($_FILES['image']['tmp_name'], $new_filename);
+	// Check if we need to create a thumb
+	$query_settings = $database->query("SELECT resize FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+	$fetch_settings = $query_settings->fetchRow();
+	$resize = $fetch_settings['resize'];
+	if($resize != 0) {
+		// Resize the image
+		$thumb_location = WB_PATH.MEDIA_DIRECTORY.'/.news/thumb'.$group_id.'.jpg';
+		if(make_thumb($new_filename, $thumb_location, $resize)) {
+			// Delete the actual image and replace with the resized version
+			unlink($new_filename);
+			rename($thumb_location, $new_filename);
+		}
+	}
+}
+if(isset($_POST['delete_image']) AND $_POST['delete_image'] != '') {
+	// Try unlinking image
+	if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) {
+		unlink(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg');
+	}
+}
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/save_group.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/view.php
===================================================================
--- tags/2.7.0/wb/modules/news/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/view.php	(revision 838)
@@ -0,0 +1,351 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+// check if frontend.css file needs to be included into the <body></body> of view.php
+if((!function_exists('register_frontend_modfiles') || !defined('MOD_FRONTEND_CSS_REGISTERED')) &&  file_exists(WB_PATH .'/modules/news/frontend.css')) {
+   echo '<style type="text/css">';
+   include(WB_PATH .'/modules/news/frontend.css');
+   echo "\n</style>\n";
+} 
+
+// Check if there is a start point defined
+if(isset($_GET['p']) AND is_numeric($_GET['p']) AND $_GET['p'] >= 0) {
+	$position = $_GET['p'];
+} else {
+	$position = 0;
+}
+
+// Get user's username, display name, email, and id - needed for insertion into post info
+$users = array();
+$query_users = $database->query("SELECT user_id,username,display_name,email FROM ".TABLE_PREFIX."users");
+if($query_users->numRows() > 0) {
+	while($user = $query_users->fetchRow()) {
+		// Insert user info into users array
+		$user_id = $user['user_id'];
+		$users[$user_id]['username'] = $user['username'];
+		$users[$user_id]['display_name'] = $user['display_name'];
+		$users[$user_id]['email'] = $user['email'];
+	}
+}
+
+// Get groups (title, if they are active, and their image [if one has been uploaded])
+$groups[0]['title'] = '';
+$groups[0]['active'] = true;
+$groups[0]['image'] = '';
+$query_users = $database->query("SELECT group_id,title,active FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id' ORDER BY position ASC");
+if($query_users->numRows() > 0) {
+	while($group = $query_users->fetchRow()) {
+		// Insert user info into users array
+		$group_id = $group['group_id'];
+		$groups[$group_id]['title'] = ($group['title']);
+		$groups[$group_id]['active'] = $group['active'];
+		if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) {
+			$groups[$group_id]['image'] = WB_URL.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg';
+		} else {
+			$groups[$group_id]['image'] = '';
+		}
+	}
+}
+
+// Check if we should show the main page or a post itself
+if(!defined('POST_ID') OR !is_numeric(POST_ID)) {
+	
+	// Check if we should only list posts from a certain group
+	if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
+		$query_extra = " AND group_id = '".$_GET['g']."'";
+	} else {
+		$query_extra = '';
+	}
+	
+	// Get settings
+	$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+	if($query_settings->numRows() > 0) {
+		$fetch_settings = $query_settings->fetchRow();
+		$setting_header = ($fetch_settings['header']);
+		$setting_post_loop = ($fetch_settings['post_loop']);
+		$setting_footer = ($fetch_settings['footer']);
+		$setting_posts_per_page = $fetch_settings['posts_per_page'];
+	} else {
+		$setting_header = '';
+		$setting_post_loop = '';
+		$setting_footer = '';
+		$setting_posts_per_page = '';
+	}
+	
+	// Get total number of posts
+	$query_total_num = $database->query("SELECT post_id FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra");
+	$total_num = $query_total_num->numRows();
+
+	// Work-out if we need to add limit code to sql
+	if($setting_posts_per_page != 0) {
+		$limit_sql = " LIMIT $position,$setting_posts_per_page";
+	} else {
+		$limit_sql = "";
+	}
+	
+	// Query posts (for this page)
+	$t = time();
+	$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
+		WHERE section_id = '$section_id' AND active = '1' AND title != ''$query_extra
+		AND (published_when = '0' OR published_when <= $t) AND (published_until = 0 OR published_until >= $t)
+		ORDER BY position DESC".$limit_sql);
+	$num_posts = $query_posts->numRows();
+	
+	// Create previous and next links
+	if($setting_posts_per_page != 0) {
+		if($position > 0) {
+			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
+				$pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'&g='.$_GET['g'].'"><< ';
+			} else {
+				$pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'"><< ';
+			}
+			$pl_append = '</a>';
+			$previous_link = $pl_prepend.$TEXT['PREVIOUS'].$pl_append;
+			$previous_page_link = $pl_prepend.$TEXT['PREVIOUS_PAGE'].$pl_append;
+		} else {
+			$previous_link = '';
+			$previous_page_link = '';
+		}
+		if($position+$setting_posts_per_page >= $total_num) {
+			$next_link = '';
+			$next_page_link = '';
+		} else {
+			if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
+				$nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'&g='.$_GET['g'].'"> ';
+			} else {
+				$nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'"> ';
+			}
+			$nl_append = ' >></a>';
+			$next_link = $nl_prepend.$TEXT['NEXT'].$nl_append;
+			$next_page_link = $nl_prepend.$TEXT['NEXT_PAGE'].$nl_append;
+		}
+		if($position+$setting_posts_per_page > $total_num) {
+			$num_of = $position+$num_posts;
+		} else {
+			$num_of = $position+$setting_posts_per_page;
+		}
+		$out_of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OUT_OF']).' '.$total_num;
+		$of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OF']).' '.$total_num;
+		$display_previous_next_links = '';
+	} else {
+		$display_previous_next_links = 'none';
+	}
+		
+	// Print header
+	if($display_previous_next_links == 'none') {
+		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_header);
+	} else {
+		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_header);
+	}
+	
+	if($num_posts > 0) {
+		if($query_extra != '') {
+			?>
+			<div class="selected_group_title">
+				<?php echo '<a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.PAGE_TITLE.'</a> >> '.$groups[$_GET['g']]['title']; ?>
+			</div>
+			<?php
+		}
+		while($post = $query_posts->fetchRow()) {
+			if(isset($groups[$post['group_id']]['active']) AND $groups[$post['group_id']]['active'] != false) { // Make sure parent group is active
+				$uid = $post['posted_by']; // User who last modified the post
+				// Workout date and time of last modified post
+				$post_date = gmdate(DATE_FORMAT, $post['posted_when']+TIMEZONE);
+				$post_time = gmdate(TIME_FORMAT, $post['posted_when']+TIMEZONE);
+				$publ_date = date(DATE_FORMAT,$post['published_when']);
+				// Work-out the post link
+				$post_link = page_link($post['link']);
+				if(isset($_GET['p']) AND $position > 0) {
+					$post_link .= '?p='.$position;
+				}
+				if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
+					if(isset($_GET['p']) AND $position > 0) { $post_link .= '&'; } else { $post_link .= '?'; }
+					$post_link .= 'g='.$_GET['g'];
+				}
+				// Get group id, title, and image
+				$group_id = $post['group_id'];
+				$group_title = $groups[$group_id]['title'];
+				$group_image = $groups[$group_id]['image'];
+				if($group_image == '') { $display_image = 'none'; } else { $display_image = ''; }
+				if($group_id == 0) { $display_group = 'none'; } else { $display_group = ''; }
+				// Replace [wblink--PAGE_ID--] with real link
+				$short = ($post['content_short']);
+				$wb->preprocess($short);
+				// Replace vars with values
+				$post_long_len = strlen($post['content_long']);
+				$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[LINK]', '[MODI_DATE]', '[MODI_TIME]', '[PUBLISHED_DATE]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]', '[TEXT_READ_MORE]');
+				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
+					if($post_long_len < 9) {
+						$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $publ_date, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], '');
+					} else {
+						$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $publ_date, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email'], $TEXT['READ_MORE']);
+					}
+				} else {
+					if($post_long_len < 9) {
+						$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $publ_date, '', '', '', '', '');
+					} else {
+						$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $short, $post_link, $post_date, $post_time, $publ_date, '', '', '', '', $TEXT['READ_MORE']);
+					}
+				}
+				echo str_replace($vars, $values, $setting_post_loop);
+			}
+		}
+	}
+	
+	// Print footer
+	if($display_previous_next_links == 'none') {
+		echo  str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array('','','','','','', $display_previous_next_links), $setting_footer);
+	} else {
+		echo str_replace(array('[NEXT_PAGE_LINK]','[NEXT_LINK]','[PREVIOUS_PAGE_LINK]','[PREVIOUS_LINK]','[OUT_OF]','[OF]','[DISPLAY_PREVIOUS_NEXT_LINKS]'), array($next_page_link, $next_link, $previous_page_link, $previous_link, $out_of, $of, $display_previous_next_links), $setting_footer);
+	}
+	
+} elseif(defined('POST_ID') AND is_numeric(POST_ID)) {
+	
+	// Get settings
+	$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+	if($query_settings->numRows() > 0) {
+		$fetch_settings = $query_settings->fetchRow();
+		$setting_post_header = ($fetch_settings['post_header']);
+		$setting_post_footer = ($fetch_settings['post_footer']);
+		$setting_comments_header = ($fetch_settings['comments_header']);
+		$setting_comments_loop = ($fetch_settings['comments_loop']);
+		$setting_comments_footer = ($fetch_settings['comments_footer']);
+	} else {
+		$setting_post_header = '';
+		$setting_post_footer = '';
+		$setting_comments_header = '';
+		$setting_comments_loop = '';
+		$setting_comments_footer = '';
+	}
+	
+	// Get page info
+	$query_page = $database->query("SELECT link FROM ".TABLE_PREFIX."pages WHERE page_id = '".PAGE_ID."'");
+	if($query_page->numRows() > 0) {
+		$page = $query_page->fetchRow();
+		$page_link = page_link($page['link']);
+		if(isset($_GET['p']) AND $position > 0) {
+			$page_link .= '?p='.$_GET['p'];
+		}
+		if(isset($_GET['g']) AND is_numeric($_GET['g'])) {
+			if(isset($_GET['p']) AND $position > 0) { $page_link .= '&'; } else { $page_link .= '?'; }
+			$page_link .= 'g='.$_GET['g'];
+		}
+	} else {
+		exit('Page not found');
+	}
+	
+	// Get post info
+	$t = time();
+	$query_post = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
+		WHERE post_id = '".POST_ID."' AND active = '1'
+		AND (published_when = '0' OR published_when <= $t) AND (published_until = 0 OR published_until >= $t)
+	");
+	if($query_post->numRows() > 0) {
+		$post = $query_post->fetchRow();
+		if(isset($groups[$post['group_id']]['active']) AND $groups[$post['group_id']]['active'] != false) { // Make sure parent group is active
+			$uid = $post['posted_by']; // User who last modified the post
+			// Workout date and time of last modified post
+			$post_date = gmdate(DATE_FORMAT, $post['posted_when']+TIMEZONE);
+			$post_time = gmdate(TIME_FORMAT, $post['posted_when']+TIMEZONE);
+			$publ_date = date(DATE_FORMAT,$post['published_when']);
+			// Get group id, title, and image
+			$group_id = $post['group_id'];
+			$group_title = $groups[$group_id]['title'];
+			$group_image = $groups[$group_id]['image'];
+			if($group_image == '') { $display_image = 'none'; } else { $display_image = ''; }
+			if($group_id == 0) { $display_group = 'none'; } else { $display_group = ''; }
+			$vars = array('[PAGE_TITLE]', '[GROUP_ID]', '[GROUP_TITLE]', '[GROUP_IMAGE]', '[DISPLAY_GROUP]', '[DISPLAY_IMAGE]', '[TITLE]', '[SHORT]', '[BACK]', '[MODI_DATE]', '[MODI_TIME]', '[PUBL_DATE]', '[USER_ID]', '[USERNAME]', '[DISPLAY_NAME]', '[EMAIL]');
+			$post_short=$post['content_short'];
+			$wb->preprocess($post_short);
+			if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
+				$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $post_short, $page_link, $post_date, $post_time, $publ_date, $uid, $users[$uid]['username'], $users[$uid]['display_name'], $users[$uid]['email']);
+			} else {
+				$values = array(PAGE_TITLE, $group_id, $group_title, $group_image, $display_group, $display_image, $post['title'], $post_short, $page_link, $post_date, $post_time, $publ_date, '', '', '', '');
+			}
+			$post_long = ($post['content_long']);
+		}
+	} else {
+		$wb->print_error($MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'], "javascript: history.go(-1);", false);
+		exit(0);
+	}
+	
+	// Print post header
+	echo str_replace($vars, $values, $setting_post_header);
+	
+	// Replace [wblink--PAGE_ID--] with real link
+  	$wb->preprocess($post_long);
+	// Print long
+	echo $post_long;
+	
+	// Print post footer
+	echo str_replace($vars, $values, $setting_post_footer);
+	
+	// Show comments section if we have to
+	if(($post['commenting'] == 'private' AND isset($wb) AND $wb->is_authenticated() == true) OR $post['commenting'] == 'public') {
+		
+		// Print comments header
+		echo str_replace('[ADD_COMMENT_URL]', WB_URL.'/modules/news/comment.php?id='.POST_ID.'&sid='.$section_id, $setting_comments_header);
+		
+		// Query for comments
+		$query_comments = $database->query("SELECT title,comment,commented_when,commented_by FROM ".TABLE_PREFIX."mod_news_comments WHERE post_id = '".POST_ID."' ORDER BY commented_when ASC");
+		if($query_comments->numRows() > 0) {
+			while($comment = $query_comments->fetchRow()) {
+				// Display Comments without slashes, but with new-line characters
+				$comment['comment'] = nl2br(($comment['comment']));
+				$comment['title'] = ($comment['title']);
+				// Print comments loop
+				$commented_date = gmdate(DATE_FORMAT, $comment['commented_when']+TIMEZONE);
+				$commented_time = gmdate(TIME_FORMAT, $comment['commented_when']+TIMEZONE);
+				$uid = $comment['commented_by'];
+				$vars = array('[TITLE]','[COMMENT]','[DATE]','[TIME]','[USER_ID]','[USERNAME]','[DISPLAY_NAME]', '[EMAIL]');
+				if(isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
+					$values = array(($comment['title']), ($comment['comment']), $commented_date, $commented_time, $uid, ($users[$uid]['username']), ($users[$uid]['display_name']), ($users[$uid]['email']));
+				} else {
+					$values = array(($comment['title']), ($comment['comment']), $commented_date, $commented_time, '0', strtolower($TEXT['UNKNOWN']), $TEXT['UNKNOWN'], '');
+				}
+				echo str_replace($vars, $values, $setting_comments_loop);
+			}
+		} else {
+			// Say no comments found
+			if(isset($TEXT['NONE_FOUND'])) {
+				echo $TEXT['NONE_FOUND'].'<br />';
+			} else {
+				echo 'None Found<br />';
+			}
+		}
+		
+		// Print comments footer
+		echo str_replace('[ADD_COMMENT_URL]', WB_URL.'/modules/news/comment.php?id='.POST_ID.'&sid='.$section_id, $setting_comments_footer);
+	}
+	if(ENABLED_ASP) {
+		$_SESSION['comes_from_view'] = POST_ID;
+		$_SESSION['comes_from_view_time'] = time();
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/save_settings.php
===================================================================
--- tags/2.7.0/wb/modules/news/save_settings.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/save_settings.php	(revision 838)
@@ -0,0 +1,66 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// This code removes any <?php tags and adds slashes
+$friendly = array('&lt;', '&gt;', '?php');
+$raw = array('<', '>', '');
+$header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['header']));
+$post_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_loop']));
+$footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['footer']));
+$post_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_header']));
+$post_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['post_footer']));
+$comments_header = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_header']));
+$comments_loop = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_loop']));
+$comments_footer = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_footer']));
+$comments_page = $admin->add_slashes(str_replace($friendly, $raw, $_POST['comments_page']));
+$commenting = $admin->add_slashes($_POST['commenting']);
+$posts_per_page = $admin->add_slashes($_POST['posts_per_page']);
+$use_captcha = $admin->add_slashes($_POST['use_captcha']);
+if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) {
+	$resize = $_POST['resize'];
+} else {
+	$resize = '';
+}
+
+// Update settings
+$database->query("UPDATE ".TABLE_PREFIX."mod_news_settings SET header = '$header', post_loop = '$post_loop', footer = '$footer', posts_per_page = '$posts_per_page', post_header = '$post_header', post_footer = '$post_footer', comments_header = '$comments_header', comments_loop = '$comments_loop', comments_footer = '$comments_footer', comments_page = '$comments_page', commenting = '$commenting', resize = '$resize', use_captcha = '$use_captcha' WHERE section_id = '$section_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/save_settings.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/save_post.php
===================================================================
--- tags/2.7.0/wb/modules/news/save_post.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/save_post.php	(revision 838)
@@ -0,0 +1,126 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+require_once(WB_PATH."/include/jscalendar/jscalendar-functions.php");
+
+// Get id
+if(!isset($_POST['post_id']) OR !is_numeric($_POST['post_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$id = $_POST['post_id'];
+	$post_id = $id;
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Validate all fields
+if($admin->get_post('title') == '' AND $admin->get_post('url') == '') {
+	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$id);
+} else {
+	$title = $admin->get_post_escaped('title');
+	$short = $admin->get_post_escaped('short');
+	$long = $admin->get_post_escaped('long');
+	$commenting = $admin->get_post_escaped('commenting');
+	$active = $admin->get_post_escaped('active');
+	$old_link = $admin->get_post_escaped('link');
+	$group_id = $admin->get_post_escaped('group');
+}
+
+// Get page link URL
+$query_page = $database->query("SELECT level,link FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$page = $query_page->fetchRow();
+$page_level = $page['level'];
+$page_link = $page['link'];
+
+// Include WB functions file
+require(WB_PATH.'/framework/functions.php');
+
+// Work-out what the link should be
+$post_link = '/posts/'.page_filename($title).$post_id;
+
+// Make sure the post link is set and exists
+// Make news post access files dir
+make_dir(WB_PATH.PAGES_DIRECTORY.'/posts/');
+if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/posts/')) {
+	$admin->print_error($MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE']);
+} elseif($old_link != $post_link OR !file_exists(WB_PATH.PAGES_DIRECTORY.$post_link.PAGE_EXTENSION)) {
+	// We need to create a new file
+	// First, delete old file if it exists
+	if(file_exists(WB_PATH.PAGES_DIRECTORY.$old_link.PAGE_EXTENSION)) {
+		unlink(WB_PATH.PAGES_DIRECTORY.$old_link.PAGE_EXTENSION);
+	}
+	// Specify the filename
+	$filename = WB_PATH.PAGES_DIRECTORY.'/'.$post_link.PAGE_EXTENSION;
+	// The depth of the page directory in the directory hierarchy
+	// '/pages' is at depth 1
+	$pages_dir_depth=count(explode('/',PAGES_DIRECTORY))-1;
+	// Work-out how many ../'s we need to get to the index page
+	$index_location = '../';
+	for($i = 0; $i < $pages_dir_depth; $i++) {
+		$index_location .= '../';
+	}
+	// Write to the filename
+	$content = ''.
+'<?php
+$page_id = '.$page_id.';
+$section_id = '.$section_id.';
+$post_id = '.$post_id.';
+define("POST_ID", $post_id);
+require("'.$index_location.'config.php");
+require(WB_PATH."/index.php");
+?>';
+	$handle = fopen($filename, 'w');
+	fwrite($handle, $content);
+	fclose($handle);
+	change_mode($filename);
+}
+
+// get publisedwhen and publisheduntil
+$publishedwhen = jscalendar_to_timestamp($admin->get_post_escaped('publishdate'));
+if($publishedwhen == '' || $publishedwhen < 1)
+	$publishedwhen=0;
+$publisheduntil = jscalendar_to_timestamp($admin->get_post_escaped('enddate'), $publishedwhen);
+if($publisheduntil == '' || $publisheduntil < 1)
+	$publisheduntil=0;
+
+// Update row
+$database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '$group_id', title = '$title', link = '$post_link', content_short = '$short', content_long = '$long', commenting = '$commenting', active = '$active', published_when = '$publishedwhen', published_until = '$publisheduntil', posted_when = '".mktime()."', posted_by = '".$admin->get_user_id()."' WHERE post_id = '$post_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/save_post.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/save_comment.php
===================================================================
--- tags/2.7.0/wb/modules/news/save_comment.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/save_comment.php	(revision 838)
@@ -0,0 +1,62 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_POST['comment_id']) OR !is_numeric($_POST['comment_id']) OR !isset($_POST['post_id']) OR !is_numeric($_POST['post_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$comment_id = $_POST['comment_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Validate all fields
+if($admin->get_post('title') == '' AND $admin->get_post('comment') == '') {
+	$admin->print_error($MESSAGE['GENERIC']['FILL_IN_ALL'], WB_URL.'/modules/news/modify_comment.php?page_id='.$page_id.'&section_id='.$section_id.'comment_id='.$id);
+} else {
+	$title = strip_tags($admin->get_post_escaped('title'));
+	$comment = strip_tags($admin->get_post_escaped('comment'));
+	$post_id = $admin->get_post('post_id');
+}
+
+// Update row
+$database->query("UPDATE ".TABLE_PREFIX."mod_news_comments SET title = '$title', comment = '$comment' WHERE comment_id = '$comment_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_comment.php?page_id='.$page_id.'&section_id='.$section_id.'&comment_id='.$id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$post_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/save_comment.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/submit_comment.php
===================================================================
--- tags/2.7.0/wb/modules/news/submit_comment.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/submit_comment.php	(revision 838)
@@ -0,0 +1,113 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file
+require('../../config.php');
+
+require_once(WB_PATH.'/framework/class.wb.php');
+$wb = new wb;
+
+// Check if we should show the form or add a comment
+if(isset($_GET['page_id']) AND is_numeric($_GET['page_id']) AND isset($_GET['section_id']) AND is_numeric($_GET['section_id']) AND isset($_GET['post_id']) AND is_numeric($_GET['post_id'])
+	AND (( ENABLED_ASP AND isset($_POST['c0mment_'.date('W')]) AND $_POST['c0mment_'.date('W')] != '')
+		OR  (!ENABLED_ASP AND isset($_POST['comment']) AND $_POST['comment'] != ''))
+) {
+	
+	if(ENABLED_ASP)
+		$comment = $_POST['c0mment_'.date('W')];
+	else
+		$comment = $_POST['comment'];
+	$comment = $wb->add_slashes(strip_tags($comment));
+	$title = $wb->add_slashes(strip_tags($_POST['title']));
+	$page_id = $_GET['page_id'];
+	$section_id = $_GET['section_id'];
+	$post_id = $_GET['post_id'];
+
+	// Check captcha
+	$query_settings = $database->query("SELECT use_captcha FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+	if($query_settings->numRows() == 0) { 
+		exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+	} else {
+		$settings = $query_settings->fetchRow();
+		$t=time();
+		if(ENABLED_ASP && ( // Advanced Spam Protection
+			($_SESSION['session_started']+ASP_SESSION_MIN_AGE > $t) OR // session too young
+			(!isset($_SESSION['comes_from_view'])) OR // user doesn't come from view.php
+			(!isset($_SESSION['comes_from_view_time']) OR $_SESSION['comes_from_view_time'] > $t-ASP_VIEW_MIN_AGE) OR // user is too fast
+			(!isset($_SESSION['submitted_when']) OR !isset($_POST['submitted_when'])) OR // faked form
+			($_SESSION['submitted_when'] != $_POST['submitted_when']) OR // faked form
+			($_SESSION['submitted_when'] > $t-ASP_INPUT_MIN_AGE && !isset($_SESSION['captcha_retry_news'])) OR // user too fast
+			($_SESSION['submitted_when'] < $t-43200) OR // form older than 12h
+			($_POST['email'] OR $_POST['url'] OR $_POST['homepage'] OR $_POST['comment']) // honeypot-fields
+		)) {
+			exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+		}
+		if(ENABLED_ASP) {
+			if(isset($_SESSION['captcha_retry_news'])) unset($_SESSION['captcha_retry_news']);
+		}
+		if($settings['use_captcha']) {
+			if(isset($_POST['captcha']) AND $_POST['captcha'] != '') {
+				// Check for a mismatch
+				if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
+					$_SESSION['captcha_error'] = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
+					$_SESSION['comment_title'] = $title;
+					$_SESSION['comment_body'] = $comment;
+					exit(header('Location: '.WB_URL."/modules/news/comment.php?id=$post_id&sid=$section_id"));
+				}
+			} else {
+				$_SESSION['captcha_error'] = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
+				$_SESSION['comment_title'] = $title;
+				$_SESSION['comment_body'] = $comment;
+				exit(header('Location: '.WB_URL."/modules/news/comment.php?id=$post_id&sid=$section_id"));
+			}
+		}
+	}
+	if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
+	if(ENABLED_ASP) {
+		unset($_SESSION['comes_from_view']);
+		unset($_SESSION['comes_from_view_time']);
+		unset($_SESSION['submitted_when']);
+	}
+
+	// Insert the comment into db
+	$commented_when = mktime();
+	if($wb->is_authenticated() == true) {
+		$commented_by = $wb->get_user_id();
+	} else {
+		$commented_by = '';
+	}
+	$query = $database->query("INSERT INTO ".TABLE_PREFIX."mod_news_comments (section_id,page_id,post_id,title,comment,commented_when,commented_by) VALUES ('$section_id','$page_id','$post_id','$title','$comment','$commented_when','$commented_by')");
+	// Get page link
+	$query_page = $database->query("SELECT link FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
+	$page = $query_page->fetchRow();
+	header('Location: '.$wb->page_link($page['link']).'?id='.$post_id);
+} else {
+	if(isset($_GET['post_id']) AND is_numeric($_GET['post_id']) AND isset($_GET['section_id']) AND is_numeric($_GET['section_id']))
+		header('Location: '.WB_URL."/modules/news/comment.php?id={$_GET['post_id']}&sid={$_GET['section_id']}");
+	else
+		exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/submit_comment.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/comment.php
===================================================================
--- tags/2.7.0/wb/modules/news/comment.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/comment.php	(revision 838)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Include config file
+require('../../config.php');
+
+// Check if there is a post id
+if(!isset($_GET['id']) OR !is_numeric($_GET['id']) OR !isset($_GET['sid']) OR !is_numeric($_GET['sid'])) {
+	header("Location: ".WB_URL.PAGES_DIRECTORY."");
+	exit(0);
+}
+$post_id = $_GET['id'];
+$section_id = $_GET['sid'];
+
+// Query post for page id
+$query_post = $database->query("SELECT post_id,title,section_id,page_id FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
+if($query_post->numRows() == 0) {
+	header("Location: ".WB_URL.PAGES_DIRECTORY."");
+	exit(0);
+} else {
+	$fetch_post = $query_post->fetchRow();
+	$page_id = $fetch_post['page_id'];
+	$section_id = $fetch_post['section_id'];
+	$post_id = $fetch_post['post_id'];
+	$post_title = $fetch_post['title'];
+	define('SECTION_ID', $section_id);
+	define('POST_ID', $post_id);
+	define('POST_TITLE', $post_title);
+	
+	// don't allow commenting if its disabled, or if post or group is inactive
+	$t = time();
+	$table_posts = TABLE_PREFIX."mod_news_posts";
+	$table_groups = TABLE_PREFIX."mod_news_groups";
+	$query = $database->query("
+		SELECT p.post_id
+		FROM $table_posts AS p LEFT OUTER JOIN $table_groups AS g ON p.group_id = g.group_id
+		WHERE p.post_id='$post_id' AND p.commenting != 'none' AND p.active = '1' AND ( g.active IS NULL OR g.active = '1' )
+		AND (p.published_when = '0' OR p.published_when <= $t) AND (p.published_until = 0 OR p.published_until >= $t)
+	");
+	if($query->numRows() == 0) {
+		header("Location: ".WB_URL.PAGES_DIRECTORY."");
+		exit(0);
+	}
+
+	// don't allow commenting if ASP enabled and user doesn't comes from the right view.php
+	if(ENABLED_ASP && (!isset($_SESSION['comes_from_view']) OR $_SESSION['comes_from_view']!=POST_ID)) {
+		header("Location: ".WB_URL.PAGES_DIRECTORY."");
+		exit(0);
+	}
+
+	// Get page details
+	$query_page = $database->query("SELECT parent,page_title,menu_title,keywords,description,visibility FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+	if($query_page->numRows() == 0) {
+		header("Location: ".WB_URL.PAGES_DIRECTORY."");
+		exit(0);
+	} else {
+		$page = $query_page->fetchRow();
+		// Required page details
+		define('PAGE_CONTENT', WB_PATH.'/modules/news/comment_page.php');
+		// Include index (wrapper) file
+		require(WB_PATH.'/index.php');
+	}
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/news/comment.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/search.php
===================================================================
--- tags/2.7.0/wb/modules/news/search.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/search.php	(revision 838)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+function news_search($func_vars) {
+	extract($func_vars, EXTR_PREFIX_ALL, 'func');
+
+	// how many lines of excerpt we want to have at most
+	$max_excerpt_num = $func_default_max_excerpt;
+	// do we want excerpt from comments?
+	$excerpt_from_comments = true; // TODO: make this configurable
+	$divider = ".";
+	$result = false;
+
+	// fetch all active news-posts (from active groups) in this section.
+	$t = time();
+	$table_posts = TABLE_PREFIX."mod_news_posts";
+	$table_groups = TABLE_PREFIX."mod_news_groups";
+	$query = $func_database->query("
+		SELECT p.post_id, p.title, p.content_short, p.content_long, p.link, p.posted_when, p.posted_by
+		FROM $table_posts AS p LEFT OUTER JOIN $table_groups AS g ON p.group_id = g.group_id
+		WHERE p.section_id='$func_section_id' AND p.active = '1' AND ( g.active IS NULL OR g.active = '1' )
+		AND (published_when = '0' OR published_when <= $t) AND (published_until = 0 OR published_until >= $t)
+		ORDER BY p.post_id DESC
+	");
+	// now call print_excerpt() for every single post
+	if($query->numRows() > 0) {
+		while($res = $query->fetchRow()) {
+			$text = $res['title'].$divider.$res['content_short'].$divider.$res['content_long'].$divider;
+			// fetch comments and add to $text
+			if($excerpt_from_comments) {
+				$table = TABLE_PREFIX."mod_news_comments";
+				$commentquery = $func_database->query("
+					SELECT title, comment
+					FROM $table
+					WHERE post_id='{$res['post_id']}'
+					ORDER BY commented_when ASC
+				");
+				if($commentquery->numRows() > 0) {
+					while($c_res = $commentquery->fetchRow()) {
+						$text .= $c_res['title'].$divider.$c_res['comment'].$divider;
+					}
+				}
+			}
+			$mod_vars = array(
+				'page_link' => $res['link'], // use direct link to news-item
+				'page_link_target' => "",
+				'page_title' => $func_page_title,
+				'page_description' => $res['title'], // use news-title as description
+				'page_modified_when' => $res['posted_when'],
+				'page_modified_by' => $res['posted_by'],
+				'text' => $text,
+				'max_excerpt_num' => $max_excerpt_num
+			);
+			if(print_excerpt2($mod_vars, $func_vars)) {
+				$result = true;
+			}
+		}
+	}
+	
+	// now fetch group-titles - ignore those without (active) postings
+	$table_groups = TABLE_PREFIX."mod_news_groups";
+	$table_posts = TABLE_PREFIX."mod_news_posts";
+	$query = $func_database->query("
+		SELECT DISTINCT g.title, g.group_id
+		FROM $table_groups AS g INNER JOIN $table_posts AS p ON g.group_id = p.group_id
+		WHERE g.section_id='$func_section_id' AND g.active = '1' AND p.active = '1'
+	");
+	// now call print_excerpt() for every single group, too
+	if($query->numRows() > 0) {
+		while($res = $query->fetchRow()) {
+			$mod_vars = array(
+				'page_link' => $func_page_link,
+				'page_link_target' => "&g=".$res['group_id'],
+				'page_title' => $func_page_title,
+				'page_description' => $func_page_description,
+				'page_modified_when' => $func_page_modified_when,
+				'page_modified_by' => $func_page_modified_by,
+				'text' => $res['title'].$divider,
+				'max_excerpt_num' => $max_excerpt_num
+			);
+			if(print_excerpt2($mod_vars, $func_vars)) {
+				$result = true;
+			}
+		}
+	}
+	return $result;
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/news/search.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/modify.php
===================================================================
--- tags/2.7.0/wb/modules/news/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/modify.php	(revision 838)
@@ -0,0 +1,210 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(!defined('WB_PATH')) { exit("Cannot access this file directly"); }
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_posts  WHERE page_id = '$page_id' and section_id = '$section_id' and title=''"); 
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_groups  WHERE page_id = '$page_id' and section_id = '$section_id' and title=''"); 
+
+?>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left" width="33%">
+		<input type="button" value="<?php echo $TEXT['ADD'].' '.$TEXT['POST']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/news/add_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
+	</td>
+	<td align="left" width="33%">
+		<input type="button" value="<?php echo $TEXT['ADD'].' '.$TEXT['GROUP']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/news/add_group.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
+	</td>
+	<td align="right" width="33%">
+		<input type="button" value="<?php echo $TEXT['SETTINGS']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/news/modify_settings.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
+	</td>
+</tr>
+</table>
+
+<br />
+
+<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['POST']; ?></h2>
+
+<?php
+
+// Loop through existing posts
+$query_posts = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_news_posts` WHERE section_id = '$section_id' ORDER BY position DESC");
+if($query_posts->numRows() > 0) {
+	$num_posts = $query_posts->numRows();
+	$row = 'a';
+	?>
+	<table cellpadding="2" cellspacing="0" border="0" width="100%">
+	<?php
+	while($post = $query_posts->fetchRow()) {
+		?>
+		<tr class="row_<?php echo $row; ?>" height="20">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="Modify - " />
+				</a>
+			</td>
+			<td>
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>">
+					<?php echo ($post['title']); ?>
+				</a>
+			</td>
+			<td width="180">
+				<?php echo $TEXT['GROUP'].': ';
+				// Get group title
+				$query_title = $database->query("SELECT title FROM ".TABLE_PREFIX."mod_news_groups WHERE group_id = '".$post['group_id']."'");
+				if($query_title->numRows() > 0) {
+					$fetch_title = $query_title->fetchRow();
+					echo ($fetch_title['title']);
+				} else {
+					echo $TEXT['NONE'];
+				}
+				?>
+			</td>
+			<td width="120">
+				<?php echo $TEXT['COMMENTS'].': ';
+				// Get number of comments
+				$query_title = $database->query("SELECT title FROM ".TABLE_PREFIX."mod_news_comments WHERE post_id = '".$post['post_id']."'");
+				echo $query_title->numRows();
+				?>
+			</td>
+			<td width="80">
+				<?php echo $TEXT['ACTIVE'].': '; if($post['active'] == 1) { echo $TEXT['YES']; } else { echo $TEXT['NO']; } ?>
+			</td>
+			<td width="20">
+			<?php
+			$start = $post['published_when'];
+			$end = $post['published_until'];
+			$t = time();
+			$icon = '';
+			if($start<=$t && $end==0)
+				$icon=ADMIN_URL.'/images/noclock_16.png';
+			elseif(($start<=$t || $start==0) && $end>=$t)
+				$icon=ADMIN_URL.'/images/clock_16.png';
+			else
+				$icon=ADMIN_URL.'/images/clock_red_16.png';
+			?>
+			<a href="<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+				<img src="<?php echo $icon; ?>" border="0" alt="" />
+			</td>
+			<td width="20">
+			<?php if($post['position'] != $num_posts) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/news/move_down.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" border="0" alt="^" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+			<?php if($post['position'] != 1) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/news/move_up.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" border="0" alt="v" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/news/delete_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $post['post_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+				</a>
+			</td>
+		</tr>
+		<?php
+		// Alternate row color
+		if($row == 'a') {
+			$row = 'b';
+		} else {
+			$row = 'a';
+		}
+	}
+	?>
+	</table>
+	<?php
+} else {
+	echo $TEXT['NONE_FOUND'];
+}
+
+?>
+
+<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['GROUP']; ?></h2>
+
+<?php
+
+// Loop through existing groups
+$query_groups = $database->query("SELECT * FROM `".TABLE_PREFIX."mod_news_groups` WHERE section_id = '$section_id' ORDER BY position ASC");
+if($query_groups->numRows() > 0) {
+	$num_groups = $query_groups->numRows();
+	$row = 'a';
+	?>
+	<table cellpadding="2" cellspacing="0" border="0" width="100%">
+	<?php
+	while($group = $query_groups->fetchRow()) {
+		?>
+		<tr class="row_<?php echo $row; ?>" height="20">
+			<td width="20" style="padding-left: 5px;">
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_group.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MODIFY']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/modify_16.png" border="0" alt="Modify - " />
+				</a>
+			</td>		
+			<td>
+				<a href="<?php echo WB_URL; ?>/modules/news/modify_group.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&group_id=<?php echo $group['group_id']; ?>">
+					<?php echo $group['title']; ?>
+				</a>
+			</td>
+			<td width="80">
+				<?php echo $TEXT['ACTIVE'].': '; if($group['active'] == 1) { echo $TEXT['YES']; } else { echo $TEXT['NO']; } ?>
+			</td>
+			<td width="20">
+			<?php if($group['position'] != 1) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/news/move_up.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/up_16.png" border="0" alt="^" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+			<?php if($group['position'] != $num_groups) { ?>
+				<a href="<?php echo WB_URL; ?>/modules/news/move_down.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&group_id=<?php echo $group['group_id']; ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/down_16.png" border="0" alt="v" />
+				</a>
+			<?php } ?>
+			</td>
+			<td width="20">
+				<a href="javascript: confirm_link('<?php echo $TEXT['ARE_YOU_SURE']; ?>', '<?php echo WB_URL; ?>/modules/news/delete_group.php?page_id=<?php echo $page_id; ?>&group_id=<?php echo $group['group_id']; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
+					<img src="<?php echo ADMIN_URL; ?>/images/delete_16.png" border="0" alt="X" />
+				</a>
+			</td>
+		</tr>
+		<?php
+		// Alternate row color
+		if($row == 'a') {
+			$row = 'b';
+		} else {
+			$row = 'a';
+		}
+	}
+	?>
+	</table>
+	<?php
+} else {
+	echo $TEXT['NONE_FOUND'];
+}
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/info.php
===================================================================
--- tags/2.7.0/wb/modules/news/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'news';
+$module_name = 'News';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.6.x';
+$module_author = 'Ryan Djurovich, Rob Smith';
+$module_license = 'GNU General Public License';
+$module_description = 'This page type is designed for making a news page.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/add_post.php
===================================================================
--- tags/2.7.0/wb/modules/news/add_post.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/add_post.php	(revision 838)
@@ -0,0 +1,58 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+// Get new order
+$order = new order(TABLE_PREFIX.'mod_news_posts', 'position', 'post_id', 'section_id');
+$position = $order->get_new($section_id);
+
+// Get default commenting
+$query_settings = $database->query("SELECT commenting FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+$fetch_settings = $query_settings->fetchRow();
+$commenting = $fetch_settings['commenting'];
+
+// Insert new row into database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id,position,commenting,active) VALUES ('$section_id','$page_id','$position','$commenting','1')");
+
+// Get the id
+$post_id = $database->get_one("SELECT LAST_INSERT_ID()");
+
+// Say that a new record has been added, then redirect to modify page
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$post_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$post_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/add_post.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/delete_post.php
===================================================================
--- tags/2.7.0/wb/modules/news/delete_post.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/delete_post.php	(revision 838)
@@ -0,0 +1,72 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$post_id = $_GET['post_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Get post details
+$query_details = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id'");
+if($query_details->numRows() > 0) {
+	$get_details = $query_details->fetchRow();
+} else {
+	$admin->print_error($TEXT['NOT_FOUND'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Unlink post access file
+if(is_writable(WB_PATH.PAGES_DIRECTORY.$get_details['link'].PAGE_EXTENSION)) {
+	unlink(WB_PATH.PAGES_DIRECTORY.$get_details['link'].PAGE_EXTENSION);
+}
+
+// Delete post
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_posts WHERE post_id = '$post_id' LIMIT 1");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_comments WHERE post_id = '$post_id'");
+
+// Clean up ordering
+require(WB_PATH.'/framework/class.order.php');
+$order = new order(TABLE_PREFIX.'mod_news_posts', 'position', 'post_id', 'section_id');
+$order->clean($section_id); 
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&post_id='.$post_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/delete_post.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/modify_comment.php
===================================================================
--- tags/2.7.0/wb/modules/news/modify_comment.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/modify_comment.php	(revision 838)
@@ -0,0 +1,86 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['comment_id']) OR !is_numeric($_GET['comment_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$comment_id = $_GET['comment_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Get header and footer
+$query_content = $database->query("SELECT post_id,title,comment FROM ".TABLE_PREFIX."mod_news_comments WHERE comment_id = '$comment_id'");
+$fetch_content = $query_content->fetchRow();
+
+?>
+
+<h2><?php echo $TEXT['MODIFY'].' '.$TEXT['COMMENT']; ?></h2>
+
+<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_comment.php" method="post" style="margin: 0;">
+
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+<input type="hidden" name="post_id" value="<?php echo $fetch_content['post_id']; ?>">
+<input type="hidden" name="comment_id" value="<?php echo $comment_id; ?>">
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="80"><?php echo $TEXT['TITLE']; ?>:</td>
+	<td>
+		<input type="text" name="title" value="<?php echo (htmlspecialchars($fetch_content['title'])); ?>" style="width: 98%;" maxlength="255" />
+	</td>
+</tr>
+<tr>
+	<td valign="top"><?php echo $TEXT['COMMENT']; ?>:</td>
+	<td>
+		<textarea name="comment" style="width: 98%; height: 150px;"><?php echo (htmlspecialchars($fetch_content['comment'])); ?></textarea>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+	</td>
+	<td align="right">
+		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/news/modify_post.php?page_id=<?php echo $page_id; ?>&section_id=<?php echo $section_id; ?>&post_id=<?php echo $fetch_content['post_id']; ?>';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/modify_comment.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/news/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/uninstall.php	(revision 838)
@@ -0,0 +1,39 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE name = 'module' AND value = 'news'");
+$database->query("DELETE FROM ".TABLE_PREFIX."search WHERE extra = 'news'");
+$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_posts");
+$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_groups");
+$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_comments");
+$database->query("DROP TABLE ".TABLE_PREFIX."mod_news_settings");
+
+require_once(WB_PATH.'/framework/functions.php');
+rm_full_dir(WB_PATH.PAGES_DIRECTORY.'/posts');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/move_up.php
===================================================================
--- tags/2.7.0/wb/modules/news/move_up.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/move_up.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
+	if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
+		header("Location: index.php");
+		exit(0);
+	} else {
+		$id = $_GET['group_id'];
+		$id_field = 'group_id';
+		$table = TABLE_PREFIX.'mod_news_groups';
+	}
+} else {
+	$id = $_GET['post_id'];
+	$id_field = 'post_id';
+	$table = TABLE_PREFIX.'mod_news_posts';
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order($table, 'position', $id_field, 'section_id');
+if($order->move_up($id)) {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/move_up.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/delete_comment.php
===================================================================
--- tags/2.7.0/wb/modules/news/delete_comment.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/delete_comment.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['comment_id']) OR !is_numeric($_GET['comment_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$comment_id = $_GET['comment_id'];
+}
+
+// Get post id
+if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$post_id = $_GET['post_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Update row
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_comments  WHERE comment_id = '$comment_id'");
+
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$post_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/news/modify_post.php?page_id='.$page_id.'&section_id='.$section_id.'&post_id='.$post_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/delete_comment.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/add.php
===================================================================
--- tags/2.7.0/wb/modules/news/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/add.php	(revision 838)
@@ -0,0 +1,82 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+$header = '<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"98%\">';
+$post_loop = '<tr class=\"post_top\">
+<td class=\"post_title\"><a href=\"[LINK]\">[TITLE]</a></td>
+<td class=\"post_date\">[MODI_TIME], [MODI_DATE]</td>
+</tr>
+<tr>
+<td class=\"post_short\" colspan=\"2\">
+[SHORT] 
+<a href=\"[LINK]\">[TEXT_READ_MORE]</a>
+</td>
+</tr>';
+$footer = '</table>
+<table cellpadding="0" cellspacing="0" border="0" width="98%" style="display: [DISPLAY_PREVIOUS_NEXT_LINKS]">
+<tr>
+<td width="35%" align="left">[PREVIOUS_PAGE_LINK]</td>
+<td width="30%" align="center">[OF]</td>
+<td width="35%" align="right">[NEXT_PAGE_LINK]</td>
+</tr>
+</table>';
+$post_header = addslashes('<table cellpadding="0" cellspacing="0" border="0" width="98%">
+<tr>
+<td height="30"><h1>[TITLE]</h1></td>
+<td rowspan="3" style="display: [DISPLAY_IMAGE]"><img src="[GROUP_IMAGE]" alt="[GROUP_TITLE]" /></td>
+</tr>
+<tr>
+<td valign="top"><b>Posted by [DISPLAY_NAME] ([USERNAME]) on [PUBL_DATE]</b></td>
+</tr>
+<tr style="display: [DISPLAY_GROUP]">
+<td valign="top"><a href="[BACK]">[PAGE_TITLE]</a> >> <a href="[BACK]?g=[GROUP_ID]">[GROUP_TITLE]</a></td>
+</tr>
+</table>
+<p style="text-align: justify;">');
+$post_footer = '</p><p>Last changed: [MODI_DATE] at [MODI_TIME]</p>
+<a href=\"[BACK]\">Back</a>';
+$comments_header = addslashes('<br /><br />
+<h2>Comments</h2>
+<table cellpadding="2" cellspacing="0" border="0" width="98%">');
+$comments_loop = addslashes('<tr>
+<td class="comment_title">[TITLE]</td>
+<td class="comment_info">By [DISPLAY_NAME] on [DATE] at [TIME]</td>
+</tr>
+<tr>
+<td colspan="2" class="comment_text">[COMMENT]</td>
+</tr>');
+$comments_footer = '</table>
+<br /><a href=\"[ADD_COMMENT_URL]\">Add Comment</a>';
+$comments_page = '<h1>Comment</h1>
+<h2>[POST_TITLE]</h2>
+<br />';
+$commenting = 'none';
+$use_captcha = true;
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_settings (section_id,page_id,header,post_loop,footer,post_header,post_footer,comments_header,comments_loop,comments_footer,comments_page,commenting,use_captcha) VALUES ('$section_id','$page_id','$header','$post_loop','$footer','$post_header','$post_footer','$comments_header','$comments_loop','$comments_footer','$comments_page','$commenting','$use_captcha')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/move_down.php
===================================================================
--- tags/2.7.0/wb/modules/news/move_down.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/move_down.php	(revision 838)
@@ -0,0 +1,61 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['post_id']) OR !is_numeric($_GET['post_id'])) {
+	if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
+		header("Location: index.php");
+		exit(0);
+	} else {
+		$id = $_GET['group_id'];
+		$id_field = 'group_id';
+		$table = TABLE_PREFIX.'mod_news_groups';
+	}
+} else {
+	$id = $_GET['post_id'];
+	$id_field = 'post_id';
+	$table = TABLE_PREFIX.'mod_news_posts';
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+
+// Create new order object an reorder
+$order = new order($table, 'position', $id_field, 'section_id');
+if($order->move_down($id)) {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_error($TEXT['ERROR'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/move_down.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/delete.php
===================================================================
--- tags/2.7.0/wb/modules/news/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/delete.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Must include code to stop this file being access directly
+if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
+
+//get and remove all php files created for the news section
+$query_details = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id'");
+if($query_details->numRows() > 0) {
+	while($link = $query_details->fetchRow()) {
+		if(is_writable(WB_PATH.PAGES_DIRECTORY.$link['link'].PAGE_EXTENSION)) {
+		unlink(WB_PATH.PAGES_DIRECTORY.$link['link'].PAGE_EXTENSION);
+		}
+	}
+}
+//check to see if any other sections are part of the news page, if only 1 news is there delete it
+$query_details = $database->query("SELECT * FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id'");
+if($query_details->numRows() == 1) {
+	$query_details2 = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+	$link = $query_details2->fetchRow();
+	if(is_writable(WB_PATH.PAGES_DIRECTORY.$link['link'].PAGE_EXTENSION)) {
+		unlink(WB_PATH.PAGES_DIRECTORY.$link['link'].PAGE_EXTENSION);
+	}
+}
+
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_posts WHERE section_id = '$section_id'");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_groups WHERE section_id = '$section_id'");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_comments WHERE section_id = '$section_id'");
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_settings WHERE section_id = '$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/modify_group.php
===================================================================
--- tags/2.7.0/wb/modules/news/modify_group.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/modify_group.php	(revision 838)
@@ -0,0 +1,108 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$group_id = $_GET['group_id'];
+}
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Get header and footer
+$query_content = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_groups WHERE group_id = '$group_id'");
+$fetch_content = $query_content->fetchRow();
+
+?>
+
+<h2><?php echo $TEXT['ADD'].'/'.$TEXT['MODIFY'].' '.$TEXT['GROUP']; ?></h2>
+
+<form name="modify" action="<?php echo WB_URL; ?>/modules/news/save_group.php" method="post" enctype="multipart/form-data" style="margin: 0;">
+
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>">
+<input type="hidden" name="group_id" value="<?php echo $group_id; ?>">
+
+<table class="row_a" cellpadding="2" cellspacing="0" border="0" width="100%">
+<tr>
+	<td width="80"><?php echo $TEXT['TITLE']; ?>:</td>
+	<td>
+		<input type="text" name="title" value="<?php echo (htmlspecialchars($fetch_content['title'])); ?>" style="width: 98%;" maxlength="255" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['IMAGE']; ?>:</td>
+	<?php if(file_exists(WB_PATH.MEDIA_DIRECTORY.'/.news/image'.$group_id.'.jpg')) { ?>
+	<td>
+		<a href="<?php echo WB_URL.MEDIA_DIRECTORY; ?>/.news/image<?php echo $group_id; ?>.jpg" target="_blank">View</a>
+		&nbsp;
+		<input type="checkbox" name="delete_image" id="delete_image" value="true" />
+		<label for="delete_image">Delete</label>
+	</td>
+	<?php } else { ?>
+	<td>
+		<input type="file" name="image" />
+	</td>
+	<?php } ?>
+</tr>
+<tr>
+	<td><?php echo $TEXT['ACTIVE']; ?>:</td>
+	<td>
+		<input type="radio" name="active" id="active_true" value="1" <?php if($fetch_content['active'] == 1) { echo ' checked'; } ?> />
+		<a href="#" onclick="javascript: document.getElementById('active_true').checked = true;">
+		<?php echo $TEXT['YES']; ?>
+		</a>
+		-
+		<input type="radio" name="active" id="active_false" value="0" <?php if($fetch_content['active'] == 0) { echo ' checked'; } ?> />
+		<a href="#" onclick="javascript: document.getElementById('active_false').checked = true;">
+		<?php echo $TEXT['NO']; ?>
+		</a>
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input name="save" type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;"></form>
+	</td>
+	<td align="right">
+		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = '<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=<?php echo $page_id; ?>';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+
+<?php
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/modify_group.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/add_group.php
===================================================================
--- tags/2.7.0/wb/modules/news/add_group.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/add_group.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+require(WB_PATH.'/modules/admin.php');
+
+// Include the ordering class
+require(WB_PATH.'/framework/class.order.php');
+// Get new order
+$order = new order(TABLE_PREFIX.'mod_news_groups', 'position', 'group_id', 'section_id');
+$position = $order->get_new($section_id);
+
+// Insert new row into database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_groups (section_id,page_id,position,active) VALUES ('$section_id','$page_id','$position','1')");
+
+// Get the id
+$group_id = $database->get_one("SELECT LAST_INSERT_ID()");
+
+// Say that a new record has been added, then redirect to modify page
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], WB_URL.'/modules/news/modify_group.php?page_id='.$page_id.'&section_id='.$section_id.'&group_id='.$group_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/add_group.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/index.php
===================================================================
--- tags/2.7.0/wb/modules/news/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/index.php	(revision 838)
@@ -0,0 +1,27 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../index.php");
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/rss.php
===================================================================
--- tags/2.7.0/wb/modules/news/rss.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/rss.php	(revision 838)
@@ -0,0 +1,101 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Check that GET values have been supplied
+if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
+	$page_id = $_GET['page_id'];
+	define('PAGE_ID', $page_id);
+} else {
+	header('Location: '.WB_URL);
+	exit(0);
+}
+if(isset($_GET['group_id']) AND is_numeric($_GET['group_id'])) {
+	$group_id = $_GET['group_id'];
+	define('GROUP_ID', $group_id);
+}
+
+// Include WB files
+require_once('../../config.php');
+require_once(WB_PATH.'/framework/class.frontend.php');
+$database = new database();
+$wb = new frontend();
+$wb->page_id = $page_id;
+$wb->get_page_details();
+$wb->get_website_settings();
+
+//checkout if a charset is defined otherwise use UTF-8
+if(defined('DEFAULT_CHARSET')) {
+	$charset=DEFAULT_CHARSET;
+} else {
+	$charset='utf-8';
+}
+
+// Sending XML header
+header("Content-type: text/xml; charset=$charset" );
+
+// Header info
+// Required by CSS 2.0
+echo '<?xml version="1.0" encoding="'.$charset.'"?>';
+?> 
+<rss version="2.0">
+<channel>
+<title><?php echo PAGE_TITLE; ?></title>
+<link>http://<?php echo $_SERVER['SERVER_NAME']; ?></link>
+<description> <?php echo PAGE_DESCRIPTION; ?></description>
+<?php
+// Optional header info 
+?>
+<language><?php echo DEFAULT_LANGUAGE; ?></language>
+<copyright><?php echo WB_URL.$_SERVER['REQUEST_URI']; ?></copyright>
+<managingEditor><?php echo SERVER_EMAIL; ?></managingEditor>
+<webMaster><?php echo SERVER_EMAIL; ?></webMaster>
+<category><?php echo WEBSITE_TITLE; ?></category>
+<generator>Website Baker Content Management System</generator>
+
+<?php
+// Get news items from database
+
+//Query
+if(isset($group_id)) {
+	$query = "SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE group_id=".$group_id." AND page_id = ".$page_id." AND active=1 ORDER BY posted_when DESC";
+} else {
+	$query = "SELECT * FROM ".TABLE_PREFIX."mod_news_posts WHERE page_id=".$page_id." AND active=1 ORDER BY posted_when DESC";	
+}
+$result = $database->query($query);
+
+//Generating the news items
+while($item = $result->fetchRow($result)){ ?>
+
+<item>
+<title><![CDATA[<?php echo stripslashes($item["title"]); ?>]]></title>
+<description><![CDATA[<?php echo stripslashes($item["content_short"]); ?>]]></description>
+<guid><?php echo WB_URL.PAGES_DIRECTORY.$item["link"].PAGE_EXTENSION; ?></guid>
+<link><?php echo WB_URL.PAGES_DIRECTORY.$item["link"].PAGE_EXTENSION; ?></link>
+</item>
+
+<?php } ?>
+
+</channel>
+</rss>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/rss.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/news/delete_group.php
===================================================================
--- tags/2.7.0/wb/modules/news/delete_group.php	(nonexistent)
+++ tags/2.7.0/wb/modules/news/delete_group.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Get id
+if(!isset($_GET['group_id']) OR !is_numeric($_GET['group_id'])) {
+	header("Location: ".ADMIN_URL."/pages/index.php");
+	exit(0);
+} else {
+	$group_id = $_GET['group_id'];
+}
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+$database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '0' where group_id='$group_id'");
+// Update row
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_news_groups WHERE group_id = '$group_id'");
+// Check if there is a db error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+} else {
+	$admin->print_success($TEXT['SUCCESS'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/news/delete_group.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/NO.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+-----------------------------------------------------------------------------------------
+NORSK LANGUAGE FILE FOR THE ADDON: WRAPPER
+-----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_WRAPPER['NOTICE'] =	'Nettleseren din støtter ikke "inline frames".<br />Klikk p&aring; lenken under for &aring; g&aring; til nettsiden som var men &aring; skulle vises i dette vinduet...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/RU.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE ADDON: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_WRAPPER['NOTICE'] 		=	'&#1042;&#1072;&#1096; browser &#1085;&#1077; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090; inline-&#1092;&#1088;&#1077;&#1081;&#1084;&#1099;.<br />&#1053;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1085;&#1072; &#1089;&#1089;&#1099;&#1083;&#1082;&#1091; &#1085;&#1080;&#1078;&#1077;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1082; &#1080;&#1084;&#1087;&#1086;&#1088;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1085;&#1086;&#1084;&#1091; &#1089;&#1102;&#1076;&#1072; &#1089;&#1072;&#1081;&#1090;&#1091;...<br />';
+
+?>

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/NL.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_WRAPPER['NOTICE'] 		=	'Uw browser laat geen ondersteuning toe voor inline frames.<br />Klik op de link hieronder om de site te tonen die je eigenlijk wilde zien...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/EN.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_WRAPPER['NOTICE'] 		=	'Your browser does not support inline frames.<br />Click on the link below to visit the website that was meant to be shown here...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/DE.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: WRAPPER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul erlaubt das Einbinden fremder Inhalte auf Ihrer Seite mit Hilfe von Inline Frames (iframe)';
+
+// Ueberschriften und Textausgaben
+$MOD_WRAPPER['NOTICE'] = 'Ihr Browser unterst&uuml;tzt keine Inline Frames.<br />Bitte klicken Sie auf nachfolgenden Link, um den Seiteninhalt der externen Seite zu betrachten ...<br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/save.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/save.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/save.php	(revision 838)
@@ -0,0 +1,53 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Update the mod_wrapper table with the contents
+if(isset($_POST['url'])) {
+	$url = $admin->add_slashes(strip_tags($_POST['url']));
+	$height = $_POST['height'];
+	if(!is_numeric($height)) {
+		$height = 400;
+	}
+	$query = "UPDATE ".TABLE_PREFIX."mod_wrapper SET url = '$url', height = '$height' WHERE section_id = '$section_id'";
+	$database->query($query);	
+}
+
+// Check if there is a database error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), $js_back);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/view.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/view.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/wrapper/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/wrapper/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/wrapper/languages/'.LANGUAGE .'.php');
+}
+
+// get url
+$get_settings = $database->query("SELECT url,height FROM ".TABLE_PREFIX."mod_wrapper WHERE section_id = '$section_id'");
+$fetch_settings = $get_settings->fetchRow();
+$url = ($fetch_settings['url']);
+
+?>
+<iframe src="<?php echo $url; ?>" width="100%" height="<?php echo $fetch_settings['height']; ?>px" frameborder="0" scrolling="auto">
+<?php echo $MOD_WRAPPER['NOTICE']; ?>
+<a href="<?php echo $url; ?>" target="_blank"><?php echo $url; ?></a>
+</iframe>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/info.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'wrapper';
+$module_name = 'Wrapper';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to wrap your site around another using an inline frame';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/delete.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/delete.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Delete page from mod_wrapper
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_wrapper WHERE section_id = '$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/install.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/install.php	(revision 838)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(defined('WB_URL')) {
+	
+	// Create table
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_wrapper`");
+	$mod_wrapper = 'CREATE TABLE `'.TABLE_PREFIX.'mod_wrapper` ('
+		. ' `section_id` INT NOT NULL DEFAULT \'0\','
+		. ' `page_id` INT NOT NULL DEFAULT \'0\','
+		. ' `url` TEXT NOT NULL,'
+		. ' `height` INT NOT NULL DEFAULT \'0\','
+		. ' PRIMARY KEY ( `section_id` ) '
+		. ' )';
+	$database->query($mod_wrapper);
+	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/index.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/modify.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/modify.php	(revision 838)
@@ -0,0 +1,56 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Setup template object
+$template = new Template(WB_PATH.'/modules/wrapper');
+$template->set_file('page', 'modify.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Get page content
+$query = "SELECT url,height FROM ".TABLE_PREFIX."mod_wrapper WHERE section_id = '$section_id'";
+$get_settings = $database->query($query);
+$settings = $get_settings->fetchRow();
+$url = ($settings['url']);
+$height = $settings['height'];
+
+// Insert vars
+$template->set_var(array(
+								'PAGE_ID' => $page_id,
+								'SECTION_ID' => $section_id,
+								'WB_URL' => WB_URL,
+								'URL' => $url,
+								'HEIGHT' => $height,
+								'TEXT_URL' => $TEXT['URL'],
+								'TEXT_HEIGHT' => $TEXT['HEIGHT'],
+								'TEXT_SAVE' => $TEXT['SAVE'],
+								'TEXT_CANCEL' => $TEXT['CANCEL']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/add.php
===================================================================
--- tags/2.7.0/wb/modules/wrapper/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/add.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Insert an extra row into the database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_wrapper (page_id,section_id,height) VALUES ('$page_id','$section_id','400')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wrapper/modify.html
===================================================================
--- tags/2.7.0/wb/modules/wrapper/modify.html	(nonexistent)
+++ tags/2.7.0/wb/modules/wrapper/modify.html	(revision 838)
@@ -0,0 +1,41 @@
+<!-- BEGIN main_block -->
+
+<form action="{WB_URL}/modules/wrapper/save.php" method="post">
+
+<input type="hidden" name="page_id" value="{PAGE_ID}" />
+<input type="hidden" name="section_id" value="{SECTION_ID}" />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left" width="50">
+		{TEXT_URL}:
+	</td>
+	<td>
+		<input type="text" name="url" value="{URL}" style="width: 100%;" />
+	</td>
+</tr>
+<tr>
+	<td align="left" width="50">
+		{TEXT_HEIGHT}:
+	</td>
+	<td>
+		<input type="text" name="height" value="{HEIGHT}" maxlength="4" style="width: 100%;" />
+	</td>
+</tr>
+</table>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input type="submit" value="{TEXT_SAVE}" style="width: 200px; margin-top: 5px;" />
+	</td>
+	<td align="right">
+		</form>
+		<input type="button" value="{TEXT_CANCEL}" onclick="javascript: window.location = 'index.php';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wrapper/modify.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/NO.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  NORWEGIAN LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES']	='Sikkerhetskopier alle tabellene i databsen';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC']	='Sikkerhetskopier bare WB sine tabeller';
+$TEXT['BACKUP_DATABASE']			='Sikkerhetskopier Databsen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/RU.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+ RUSSIAN LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES'] 	= 	'Backup &#1074;&#1089;&#1077;&#1093; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094; &#1073;&#1072;&#1079;&#1099;';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] 	= 	'Backup &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094; CMS';
+$TEXT['BACKUP_DATABASE']				=	'&#1042;&#1099;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1100; Backup';
+
+?>

Property changes on: tags/2.7.0/wb/modules/backup/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/NL.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES'] 	= 	'Backup van alle tabellen in de database';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] 	= 	'Backup enkel de WB specifieke tabellen';
+$TEXT['BACKUP_DATABASE']		=	'Backup Database';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/DE.php	(revision 838)
@@ -0,0 +1,37 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul erm&ouml;glicht die Erstellung einer Datenbanksicherung.';
+
+// Textausgaben
+$MOD_BACKUP['BACKUP_ALL_TABLES'] 	=	'Sichern Sie alle Tabellen der Datenbank';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] 	= 	'Sichern Sie nur die von Website Baker generierten Tabellen der Datenbank';
+$TEXT['BACKUP_DATABASE']				=	'Erstelle Datenbanksicherung';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/backup/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/languages/EN.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: BACKUP
+ -----------------------------------------------------------------------------------------
+*/
+
+// text outputs
+$MOD_BACKUP['BACKUP_ALL_TABLES'] 	= 	'Backup all tables in database';
+$MOD_BACKUP['BACKUP_WB_SPECIFIC'] 	= 	'Backup only WB-specific tables';
+$TEXT['BACKUP_DATABASE']				=	'Backup Database';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/info.php
===================================================================
--- tags/2.7.0/wb/modules/backup/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'backup';
+$module_name = 'Backup';
+$module_function = 'tool';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich, John';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to backup your database.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/tool.php
===================================================================
--- tags/2.7.0/wb/modules/backup/tool.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/tool.php	(revision 838)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/backup/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/backup/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/backup/languages/'.LANGUAGE .'.php');
+}
+
+// Show form
+?>
+<br />
+<form name="prompt" method="post" action="<?php echo WB_URL; ?>/modules/backup/backup-sql.php">
+		<input type="radio" checked="checked" name="tables" value="ALL"><?php echo $MOD_BACKUP['BACKUP_ALL_TABLES']; ?><br>
+		<input type="radio" name="tables" value="WB"><?php echo $MOD_BACKUP['BACKUP_WB_SPECIFIC']; ?><br><br> 
+	<input type="submit" name="backup" value="<?php echo $TEXT['BACKUP_DATABASE']; ?>" onClick="javascript: if(!confirm('<?php echo $MESSAGE['GENERIC']['PLEASE_BE_PATIENT']; ?>')) { return false; }" />
+</form>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/backup-sql.php
===================================================================
--- tags/2.7.0/wb/modules/backup/backup-sql.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/backup-sql.php	(revision 838)
@@ -0,0 +1,98 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Filename to use
+$filename = $_SERVER['HTTP_HOST'].'-backup-'.gmdate('Y-m-d', mktime()+TIMEZONE).'.sql';
+
+// Check if user clicked on the backup button
+if(!isset($_POST['backup'])){ 
+	header('Location: ../');
+	exit(0);
+} 
+	 
+// Include config
+require_once('../../config.php');
+
+// Create new admin object
+require(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Settings', 'settings_advanced', false);
+
+// Begin output var
+$output = "".
+"#\n".
+"# Website Baker ".WB_VERSION." Database Backup\n".
+"# ".WB_URL."\n".
+"# ".gmdate(DATE_FORMAT, mktime()+TIMEZONE).", ".gmdate(TIME_FORMAT, mktime()+TIMEZONE)."\n".
+"#".
+"\n";
+
+// Get table names
+// Use this one for ALL tables in DB
+$query  = "SHOW TABLES";
+
+if ($_POST['tables']=='WB') {
+	// Or use this to get ONLY wb tables
+	$prefix=str_replace('_','\_',TABLE_PREFIX);
+	$query = "SHOW TABLES LIKE '".$prefix."%'";
+}
+
+$result = $database->query($query);
+
+// Loop through tables
+while($row = $result->fetchRow()) { 
+	//show sql query to rebuild the query
+	$sql = 'SHOW CREATE TABLE '.$row[0].''; 
+	$query2 = $database->query($sql); 
+	// Start creating sql-backup
+	$sql_backup ="\r\n# Create table ".$row[0]."\r\n\r\n";
+	$out = $query2->fetchRow();
+	$sql_backup.=$out['Create Table'].";\r\n\r\n"; 
+	$sql_backup.="# Dump data for ".$row[0]."\r\n\r\n";
+	// Select everything
+	$out = $database->query('SELECT * FROM '.$row[0]); 
+	$sql_code = '';
+	// Loop through all collumns
+	while($code = $out->fetchRow()) { 
+		$sql_code .= "INSERT INTO ".$row[0]." SET "; 
+		$numeral = 0;
+		foreach($code as $insert => $value) {
+			// Loosing the numerals in array -> mysql_fetch_array($result, MYSQL_ASSOC) WB hasn't? 
+			if($numeral==1) {
+				$sql_code.=$insert ."='".addslashes($value)."',";
+			}
+			$numeral = 1 - $numeral;
+		}
+		$sql_code = substr($sql_code, 0, -1);
+		$sql_code.= ";\r\n";
+	}
+	$output .= $sql_backup.$sql_code; 
+}
+
+// Output file
+header('Content-Type: text/html');
+header('Content-Disposition: attachment; filename='.$filename);
+echo $output;
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/backup-sql.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/backup/index.php
===================================================================
--- tags/2.7.0/wb/modules/backup/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/backup/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/backup/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/NO.php	(revision 838)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+  -----------------------------------------------------------------------------------------
+  NORSK LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+  -----------------------------------------------------------------------------------------
+   */
+  
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B']				= 'Venligst velg de  Javascript funksjonene du vil aktivere';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B']			= 'Husk udtvidede grener i side oversikten';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B']		= 'Ordne siderekkef&oslash;lge ved &aring; bruke Dra og Slipp';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B']	= 'Ordne seksjonsrekkef&oslash;lge ved &aring; bruke Dra og Slipp';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B']		= '<h1>Feil</h1><p>JavaScript Admin krever  YUI (Yahoo User Interface) .<br />Det er behov for f&oslash;lgende filer for at Javascript Admin skal funger som forventet:<br /><br />';
+  
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/RU.php	(revision 838)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B'] 				= '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; Javascript &#1092;&#1091;&#1085;&#1082;&#1094;&#1080;&#1080;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1074;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1100;';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] 		= '&#1047;&#1072;&#1087;&#1086;&#1084;&#1080;&#1085;&#1072;&#1090;&#1100; &#1087;&#1086;&#1088;&#1103;&#1076;&#1086;&#1082; &#1080; &#1074;&#1080;&#1076; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094; &#1074; &#1084;&#1077;&#1085;&#1102;';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] 	= '&#1048;&#1079;&#1084;&#1077;&#1085;&#1103;&#1090;&#1100; &#1087;&#1086;&#1088;&#1103;&#1076;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; drag-and-drop';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1103;&#1090;&#1100; &#1087;&#1086;&#1088;&#1103;&#1076;&#1086;&#1082; &#1089;&#1077;&#1082;&#1094;&#1080;&#1081;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; drag-and-drop';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] 	= '<h1>&#1054;&#1096;&#1080;&#1073;&#1082;&#1072;</h1><p>JavaScript Admin &#1090;&#1088;&#1077;&#1073;&#1091;&#1077;&#1090; YUI (Yahoo User Interface) framework.<br />&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1077; &#1092;&#1072;&#1081;&#1083;&#1099; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099; &#1076;&#1083;&#1103; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1086;&#1081; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099; Javascript Admin:<br /><br />';
+
+?>

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/NL.php	(revision 838)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B'] 				= 'Kies de Javascript functies die je wenst te gebruiken';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] 		= "Onthouden van uitgeklapte pagina's";
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] 	= "Klikken-en-slepen om pagina's te herordenen";
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = 'Klikken-en-slepen om secties te herordenen';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] 	= '<h1>Fout</h1><p>JavaScript Admin heeft de YUI (Yahoo User Interface) code nodig.<br />De volgende bestanden zijn nodig om Javascript Admin te laten werken:<br /><br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/DE.php	(revision 838)
@@ -0,0 +1,39 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description 	= 'Dieses Modul stellt Javascript Funktionen f&uuml;r die Website Baker Benutzeroberfl&auml;che zur Verf&uuml;gung. Verwendet das YahooUI Javascript Framework.';
+
+// Ueberschriften und Textausgaben
+$MOD_JSADMIN['TXT_HEADING_B'] 				= 'Bitte w&auml;hlen Sie die gew&uuml;nschten Javascript Funktionen aus';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] 		= 'Ge&ouml;ffneten Seitenbaum merken';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] 	= 'Sortierung von Seiten per "drag-and-drop" erlauben';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = 'Sortierung von Abschnitten per "drag-and-drop" erlauben';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] 	= '<h1>Fehler</h1><p>JavaScript Admin ben&ouml;tigt das YUI (Yahoo User Interface) Framework.<br />Folgende Dateien werden f&uuml;r das Modul ben&ouml;tigt:<br /><br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/languages/EN.php	(revision 838)
@@ -0,0 +1,36 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: JAVASCRIPT ADMIN
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_JSADMIN['TXT_HEADING_B'] 				= 'Please choose the Javascript functions you want to enable';
+$MOD_JSADMIN['TXT_PERSIST_ORDER_B'] 		= 'Remember expanded pages';
+$MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B'] 	= 'Reorder pages by the use of drag-and-drop';
+$MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B'] = 'Reorder sections by the use of drag-and-drop';
+$MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'] 	= '<h1>Error</h1><p>JavaScript Admin requires the YUI (Yahoo User Interface) framework.<br />The following files are required to get Javascript Admin work as expected:<br /><br />';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/jsadmin_backend_include.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/jsadmin_backend_include.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/jsadmin_backend_include.php	(revision 838)
@@ -0,0 +1,147 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// obtain the admin folder (e.g. /admin)
+$admin_folder = str_replace(WB_PATH, '', ADMIN_PATH);
+
+$JSADMIN_PATH = WB_URL.'/modules/jsadmin';
+$YUI_PATH = WB_URL.'/include/yui';
+$script = $_SERVER['SCRIPT_NAME'];
+if(!$script)
+	$script = $PHP_SELF;
+
+if(strstr($script, $admin_folder."/pages/index.php"))
+	$page_type = 'pages';
+elseif(strstr($script, $admin_folder."/pages/sections.php"))
+	$page_type = 'sections';
+elseif(strstr($script, $admin_folder."/settings/tool.php")
+	&& isset($_REQUEST["tool"]) && $_REQUEST["tool"] == 'jsadmin')
+	$page_type = 'config';
+else
+	$page_type = '';
+if($page_type) {
+	require_once(WB_PATH.'/modules/jsadmin/jsadmin.php');
+
+	// Default scripts
+	$js_buttonCell = 3;
+	$js_scripts = Array();
+	$js_scripts[] = 'jsadmin.js';
+
+	if($page_type == 'pages') {
+		if(!get_setting('mod_jsadmin_persist_order', '1')) {   //Maybe Bug settings to negativ for persist , by Swen Uth
+			$js_scripts[] = 'restore_pages.js';
+  		}
+		if(get_setting('mod_jsadmin_ajax_order_pages', '1')) {
+			$js_scripts[] = 'dragdrop.js';
+			$js_buttonCell= 6; // This ist the Cell where the Button "Up" is , by Swen Uth
+		}
+	} elseif($page_type == 'sections') {
+		if(get_setting('mod_jsadmin_ajax_order_sections', '1')) {
+			$js_scripts[] = 'dragdrop.js';
+			if(SECTION_BLOCKS) {
+			$js_buttonCell= 4;}
+      else{ $js_buttonCell= 3;} // This ist the Cell where the Button "Up" is , by Swen Uth
+		}
+	} elseif($page_type == 'config') {
+		$js_scripts[] = 'tool.js';
+	}
+?>
+<style type="text/css">
+/* Fix for funky spacing on page listing */
+.pages_list li {
+	margin-bottom: -2px;
+}
+
+body.jsadmin_busy td.content {
+	background: white url(<?php echo WB_URL ?>/modules/jsadmin/images/busy.gif) 4px 4px no-repeat;
+}
+
+body.jsadmin_success td.content {
+	background: white url(<?php echo WB_URL ?>/modules/jsadmin/images/success.gif) 4px 4px no-repeat;
+}
+
+body.jsadmin_failure td.content {
+	background: white url(<?php echo WB_URL ?>/modules/jsadmin/images/failure.gif) 4px 4px no-repeat;
+}
+
+.jsadmin_drag {
+	cursor: move;
+}
+
+.jsadmin_drag a, .jsadmin_drag input, .jsadmin_drag select {
+	cursor: pointer;
+	cursor: hand;
+}
+
+ul.jsadmin_drag_area {
+	border: solid 1px #99f;
+}
+
+</style>
+
+<script language="JavaScript">
+<!--
+var JsAdmin = { WB_URL : '<?php echo WB_URL ?>' };
+//-->
+</script>
+<?php
+ // For variable cell structure in the tables of admin content
+  echo "<script type='text/javascript'>buttonCell=".$js_buttonCell.";</script>\n";   // , by Swen  Uth
+
+ // Check and Load the needed YUI functions  //, all by Swen Uth
+  $YUI_ERROR=false; // ist there an Error
+  $YUI_PUT ='';   // String with javascipt includes
+  $YUI_PUT_MISSING_Files=''; // Strin with missing files
+  reset($js_yui_scripts);
+  foreach($js_yui_scripts as $script) {
+    if(file_exists($WB_MAIN_RELATIVE_PATH.$script)){
+        $YUI_PUT=$YUI_PUT."<script type='text/javascript' src='".$WB_MAIN_RELATIVE_PATH.$script."'></script>\n"; // go and include
+    } else {
+        $YUI_ERROR=true;
+        $YUI_PUT_MISSING_Files=$YUI_PUT_MISSING_Files."- ".WB_URL.$script."\\n";   // catch all missing files
+    }
+	}
+	if(!$YUI_ERROR)
+	{
+    echo $YUI_PUT;  // no Error so go and include
+    // Load the needed functions
+	  foreach($js_scripts as $script) {
+		  echo "<script type='text/javascript' src='".$JSADMIN_PATH."/js/".$script."'></script>\n";
+	  }
+  } else  {
+      echo "<script type='text/javascript'>alert('YUI ERROR!! File not Found!! > \\n".$YUI_PUT_MISSING_Files." so look in the include folder or switch Javascript Admin off!');</script>\n"; //, by Swen Uth
+  }
+
+ }
+?>

Property changes on: tags/2.7.0/wb/modules/jsadmin/jsadmin_backend_include.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/move_to.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/move_to.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/move_to.php	(revision 838)
@@ -0,0 +1,97 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+ if(isset($_GET['page_id']) AND is_numeric($_GET['page_id']) AND is_numeric(@$_GET['position'])) {
+	$position = $_GET['position'];
+
+	// Include WB admin wrapper script
+	$update_when_modified = true; // Tells script to update when this page was last updated
+	require(WB_PATH.'/modules/admin.php');
+
+	// Get common fields
+	if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
+		$page_id = $_GET['page_id'];
+		$id = $_GET['section_id'];
+		$id_field = 'section_id';
+		$common_field = 'page_id';
+		$table = TABLE_PREFIX.'sections';
+	} else {
+		$id = $_GET['page_id'];
+		$id_field = 'page_id';
+		$common_field = 'parent';
+		$table = TABLE_PREFIX.'pages';
+	}
+
+	// Get current index
+	$sql = <<<EOT
+SELECT $common_field, position FROM $table WHERE $id_field = $id
+EOT;
+	echo "$sql<br>";
+	$rs = $database->query($sql);
+	if($row = $rs->fetchRow()) {
+		$common_id = $row[$common_field];
+		$old_position = $row['position'];
+	}
+	echo "$old_position<br>";
+	if($old_position == $position)
+		return;
+	
+	// Build query to update affected rows
+	if($old_position < $position)
+		$sql = <<<EOT
+UPDATE $table SET position = position - 1
+	WHERE position > $old_position AND position <= $position
+		AND $common_field = $common_id
+EOT;
+	else
+		$sql = <<<EOT
+UPDATE $table SET position = position + 1
+	WHERE position >= $position AND position < $old_position
+		AND $common_field = $common_id
+EOT;
+	echo "<pre>$sql</pre>";
+	$database->query($sql);
+
+	// Build query to update specified row
+	$sql = <<<EOT
+UPDATE $table SET position = $position
+	WHERE $id_field = $id
+EOT;
+	echo "<pre>$sql</pre>";
+	$database->query($sql);
+} else {
+	die("Missing parameters");
+	header("Location: index.php");
+	exit(0);
+}
+?>

Property changes on: tags/2.7.0/wb/modules/jsadmin/move_to.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/uninstall.php	(revision 838)
@@ -0,0 +1,37 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) { exit('Cannot access this file directly'); }
+
+$table = TABLE_PREFIX ."mod_jsadmin";
+$database->query("DROP TABLE `$table`");
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/info.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/info.php	(revision 838)
@@ -0,0 +1,74 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+/*
+Javascript Admin for Website Baker
+
+Software License Agreement (BSD License)
+
+Copyright (c) 2006, Stepan Riha.
+All rights reserved.
+
+Portions of this software are Copyright Yahoo! Inc.
+
+Redistribution and use of this software in source and binary forms, with 
+or without modification, are permitted provided that the following 
+conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of Stepan Riha may be used to endorse or
+  promote products derived from this software without specific prior
+  written permission of Stepan Riha.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ -----------------------------------------------------------------------------------------------------------
+  Javascript Admin module for Website Baker v2.7
+  Copyright (C) 2006, Stepan Riha
+  Adapted for Website Baker 2.7 by Swen Uth
+ -----------------------------------------------------------------------------------------------------------
+	v1.2 (swen, Swen Uth; Jan 24, 2008)
+		+ updated YUI framework to version 2.4.1
+   	+ adapted module to work with Website Baker 2.7
+   	+ added multilingual support and support of the module.css and module.js files
+		
+	v1.0.2 (nonplus, Stepan Riha; May 5, 2006
+		initial release by Stepan Riha (all rights reserved)
+ -----------------------------------------------------------------------------------------------------------
+*/
+
+$module_directory 		= 'jsadmin';
+$module_name 				= 'Javascript Admin';
+$module_function 			= 'tool';
+$module_version 			= '1.2.1';
+$module_platform 			= 'WB 2.7.x';
+$module_author 			= 'Stepan Riha, Swen Uth';
+$module_license 			= 'BSD License';
+$module_description 		= 'This module adds Javascript functionality to the Website Baker Admin to improve some of the UI interactions. Uses the YahooUI library.';
+
+?>

Property changes on: tags/2.7.0/wb/modules/jsadmin/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/jsadmin.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/jsadmin.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/jsadmin.php	(revision 838)
@@ -0,0 +1,64 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+function get_setting($name, $default = '') {
+	global $database;
+	$rs = $database->query("SELECT value FROM ".TABLE_PREFIX."mod_jsadmin WHERE name = '".$name."'");
+	if($row = $rs->fetchRow())
+		return $row['value'];
+	return
+		$default;
+}
+
+function save_setting($name, $value) {
+	global $database;
+
+	$prev_value = get_setting($name, false);
+
+	if($prev_value === false) {
+		$database->query("INSERT INTO ".TABLE_PREFIX."mod_jsadmin (name,value) VALUES ('$name','$value')");
+	} else {
+		$database->query("UPDATE ".TABLE_PREFIX."mod_jsadmin SET value = '$value' WHERE name = '$name'");
+	}
+}
+
+// the follwing variables to use and check existing the YUI
+$WB_MAIN_RELATIVE_PATH="../..";
+$YUI_PATH = '/include/yui';
+$js_yui_min = "-min";  // option for smaller code so faster
+$js_yui_scripts = Array();
+$js_yui_scripts[] = $YUI_PATH.'/yahoo/yahoo'.$js_yui_min.'.js';
+$js_yui_scripts[] = $YUI_PATH.'/event/event'.$js_yui_min.'.js';
+$js_yui_scripts[] = $YUI_PATH.'/dom/dom'.$js_yui_min.'.js';
+$js_yui_scripts[] = $YUI_PATH.'/connection/connection'.$js_yui_min.'.js';
+$js_yui_scripts[] = $YUI_PATH.'/dragdrop/dragdrop'.$js_yui_min.'.js';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/jsadmin.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/install.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/install.php	(revision 838)
@@ -0,0 +1,54 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) { exit('Cannot access this file directly'); }
+
+// add new rows to table "settings"
+
+$table = TABLE_PREFIX ."mod_jsadmin";
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("
+	CREATE TABLE `$table` (
+    `id` INT(11) NOT NULL DEFAULT '0',
+		`name` VARCHAR(255) NOT NULL DEFAULT '0',
+		`value` INT(11) NOT NULL DEFAULT '0',
+   	PRIMARY KEY (`id`)
+	)
+");
+
+global $database;
+$database->query("INSERT INTO ".$table." (id,name,value) VALUES ('1','mod_jsadmin_persist_order','0')");
+$database->query("INSERT INTO ".$table." (id,name,value) VALUES ('2','mod_jsadmin_ajax_order_pages','0')");
+$database->query("INSERT INTO ".$table." (id,name,value) VALUES ('3','mod_jsadmin_ajax_order_sections','0')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/images/index.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/images/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/images/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/images/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/images/busy.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/jsadmin/images/busy.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/images/failure.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/jsadmin/images/failure.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/images/success.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/modules/jsadmin/images/success.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/js/index.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/js/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/js/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/js/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/js/jsadmin.js
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/js/jsadmin.js	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/js/jsadmin.js	(revision 838)
@@ -0,0 +1,162 @@
+// Copyright 2006 Stepan Riha
+// www.nonplus.net
+// $Id: jsadmin.js 2 2006-04-18 03:04:39Z stepan $
+
+// Initialize JsAdmin when page loads
+JsAdmin.loadHandler = function(ev, self) {
+	if(self.init_tool) {
+		self.init_tool();
+	}
+	if(self.restore_toggled) {
+		self.restore_toggled();
+		YAHOO.util.Event.addListener(window, 'unload', JsAdmin.unloadHandler, self, false);
+	}
+	if(self.init_drag_drop) {
+		self.init_drag_drop();
+	}
+};
+
+// Store JsAdmin cookies when page unloads
+JsAdmin.unloadHandler = function(ev, self) {
+	self.save_toggled();
+};
+
+JsAdmin.rowMouseOverHandler = function(ev, tr) {
+	YAHOO.util.Dom.setStyle(tr, 'background' ,'#fea');
+};
+
+JsAdmin.rowMouseOutHandler = function(ev, tr) {
+	YAHOO.util.Dom.setStyle(tr, 'background' ,'');
+};
+
+YAHOO.util.Event.addListener(window, 'load', JsAdmin.loadHandler, JsAdmin, false);
+
+JsAdmin.util = {
+	createCookie : function(name,value,days)
+	{
+		if (days)
+		{
+			var date = new Date();
+			date.setTime(date.getTime()+(days*24*60*60*1000));
+			var expires = "; expires="+date.toGMTString();
+		}
+		else var expires = "";
+		document.cookie = name+"="+value+expires+"; path=/";
+	},
+
+	readCookie : function(name)
+	{
+		var nameEQ = name + "=";
+		var ca = document.cookie.split(';');
+		for(var i=0;i < ca.length;i++)
+		{
+			var c = ca[i];
+			while (c.charAt(0)==' ') c = c.substring(1,c.length);
+			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+		}
+		return null;
+	},
+
+	eraseCookie : function(name)
+	{
+		this.createCookie(name,"",-1);
+	},
+
+	next_id : 1,
+	getUniqueId : function () {
+		var id;
+		do {
+			id = 'jsadmin_id_' + this.next_id++;
+		} while(YAHOO.util.Dom.get(id));
+		return id;
+	},
+	
+	isNodeType : function(elt, type) {
+		if(elt) {
+			return elt.nodeName.toUpperCase() == type.toUpperCase();
+		}
+		return false;
+	},
+
+	getItemIndex : function (elt) {
+		var type = elt.nodeName;
+		var index = 0;
+		for(var sib = elt.previousSibling; sib; sib = sib.previousSibling) {
+			if(sib.nodeName == type) {
+				index++;
+			}
+		}
+		return index;
+	},
+	
+	getAncestorNode : function(elt, type) {
+		if(elt) {
+			if(type) {
+				type = type.toUpperCase();
+			} else {
+				type = elt.nodeName.toUpperCase();
+			}
+			elt = elt.parentNode;
+			while(elt && elt.nodeName.toUpperCase() != type) {
+				elt = elt.parentNode;
+			}
+		}
+		return elt;
+	},
+	
+	getNextSiblingNode : function (elt, type) {
+		if(elt) {
+			if(type) {
+				type = type.toUpperCase();
+			} else {
+				type = elt.nodeName.toUpperCase();
+			}
+			elt = elt.nextSibling;
+			while(elt && elt.nodeName.toUpperCase() != type) {
+				elt = elt.nextSibling;
+			}
+		}
+		return elt;
+	},
+
+	matchNextSibling : function (elt, re) {
+		if(elt) {
+			elt = elt.nextSibling;
+			while(elt && !elt.nodeName.match(re)) {
+				elt = elt.nextSibling;
+			}
+		}
+		return elt;
+	},
+
+	getPreviousSiblingNode : function (elt, type) {
+		if(elt) {
+			if(type) {
+				type = type.toUpperCase();
+			} else {
+				type = elt.nodeName.toUpperCase();
+			}
+			elt = elt.previousSibling;
+			while(elt && elt.nodeName.toUpperCase() != type) {
+				elt = elt.previousSibling;
+			}
+		}
+		return elt;
+	},
+
+	insertBefore : function(parent, newChild, beforeChild) {
+		if(beforeChild) {
+			parent.insertBefore(newChild, beforeChild);
+		} else {
+			parent.appendChild(newChild);
+		}
+	},
+
+	insertAfter : function(parent, newChild, afterChild) {
+		if(afterChild) {
+			this.insertBefore(parent, newChild, afterChild.nextSibling);
+		} else {
+			this.insertBefore(parent, newChild, parent.firstChild);
+		}
+	}
+};

Property changes on: tags/2.7.0/wb/modules/jsadmin/js/jsadmin.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/js/tool.js
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/js/tool.js	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/js/tool.js	(revision 838)
@@ -0,0 +1,14 @@
+// Copyright 2006 Stepan Riha
+// www.nonplus.net
+// $Id: tool.js 2 2006-04-18 03:04:39Z stepan $
+
+JsAdmin.init_tool = function() {
+	var instruction = YAHOO.util.Dom.get('jsadmin_install');
+	if(instruction) {
+		instruction.style.display = 'none';
+	}
+	var form = YAHOO.util.Dom.get('jsadmin_form');
+	if(form) {
+		form.style.display = '';
+	}
+};

Property changes on: tags/2.7.0/wb/modules/jsadmin/js/tool.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/js/dragdrop.js
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/js/dragdrop.js	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/js/dragdrop.js	(revision 838)
@@ -0,0 +1,345 @@
+// Copyright 2006 Stepan Riha
+// www.nonplus.net
+// $Id: dragdrop.js 2 2006-04-18 03:04:39Z stepan $
+/**
+* -----------------------------------------------------------------------------------------
+*  MODIFICATON FOR THE JSADMIN MODULE
+* -----------------------------------------------------------------------------------------
+*	MODIFICATION HISTORY:
+*   Swen Uth; 01/24/2008
+*   +INCLUDE VARIABLE buttonCell FOR ADAPTATION TO LATER LAYOUTS
+*
+**/
+JsAdmin.DD = {};
+JsAdmin.movable_rows = {};
+	
+JsAdmin.init_drag_drop = function() {
+
+	// There seems to be many different ways the ordering is set up
+	//		pages/index.php has UL/LI containing tables with single row
+	//		pages/sections.php has a TABLE with many rows
+	//		pages/modify.php for manuals is completely weird...
+	// So we only want to deal with pages & sections...
+
+	var page_type = '';
+	var is_tree = false;
+	if(document.URL.indexOf("/admin/pages/index.php") > 0) {
+		page_type = 'pages';
+		is_tree = true;
+
+		// This page uses duplicate IDs and incorrectly nested lists:
+		// <ul id="p1">
+		//		<li id="p1"><table /></li>
+		//		<ul>... sub items ...</ul>
+		// </ul>
+		//
+		// We need to fix that to the following:
+		// <ul id="p1">
+		//		<li id="uniqueID"><table />
+		//		<ul>... sub items ...</ul>
+		//		</li>
+		// </ul>
+
+		// Stash all UL ids
+		var ids = {};
+		var lists = document.getElementsByTagName('ul');
+		for(var i = 0; i < lists.length; i++) {
+			if(lists[i].id) {
+				ids[lists[i].id] = true;
+			}
+		}
+
+		// Now fix all LIs
+		var items = document.getElementsByTagName('li');
+ 		for(var i = 0; i < items.length; i++) {
+			var item = items[i];
+
+			// Fix duplicate ID
+			if(ids[item.id]) {
+				item.id =  JsAdmin.util.getUniqueId();
+			}
+
+			// Fix UL parented by UL
+			var ul = JsAdmin.util.getNextSiblingNode(item, 'ul');
+			if(ul) {
+				var lis = ul.getElementsByTagName('li');
+ 				if(!lis || lis.length == 0) {
+					// Remove list without items
+					ul.parentNode.removeChild(ul);
+				} else {
+					// Make list child of list item
+					item.appendChild(ul);
+				}
+			}
+		}
+
+	} else if(document.URL.indexOf("/admin/pages/sections.php") > 0) {
+		page_type = 'sections';
+	} else {
+		// We don't do any other pages
+		return;
+	}
+
+	var links = document.getElementsByTagName('a');
+	var reImg = /(.*)move_(down|up)\.php(.*)/;
+
+	for(var i = 0; i < links.length; i++) {
+		var link = links[i];
+		var href = link.href || '';
+		var match = href.match(reImg);
+		if(!match) {
+			continue;
+		}
+		var url = match[1];
+		var op = match[2];
+		var params = match[3];
+		var tr = JsAdmin.util.getAncestorNode(link, 'tr');
+		var item = is_tree ? JsAdmin.util.getAncestorNode(tr, 'li') : tr;
+		if(!item) {
+			continue;
+		}
+
+		// Make sure we have a unique id
+		if(!item.id || YAHOO.util.Dom.get(item.id) != item) {
+			item.id = JsAdmin.util.getUniqueId();
+		}
+
+		if(is_tree) {
+			var parent = JsAdmin.util.getAncestorNode(item, 'ul');
+			new JsAdmin.DD.liDDSwap(item.id, (parent && parent.id) ? parent.id : 'top');
+		} else {
+			new JsAdmin.DD.trDDSwap(item.id);
+		}
+		item.className += " jsadmin_drag";
+
+		this.movable_rows[item.id] = { item: item, tr : tr, url : url, params : params };
+	}
+};
+
+//==========================================================================
+// Drag-drop utils
+//==========================================================================
+
+JsAdmin.DD.dragee = null;
+
+JsAdmin.DD.addMoveButton = function(tr, cell, op) {
+	if(op == 'down') {
+		cell++;
+	}
+	var item = JsAdmin.movable_rows[tr.id];
+	if(!JsAdmin.util.isNodeType(tr, 'tr')) {
+		var rows = tr.getElementsByTagName('tr');
+		tr = rows[0];
+	}
+	
+	var html = '<a href="' + item.url + 'move_' + op + '.php' + item.params
+				+ '"><img src="' + JsAdmin.WB_URL + '/admin/images/' + op
+				+ '_16.png" border="0" alt="' + op + '" /></a>';
+	tr.cells[cell].innerHTML = html;
+};
+
+JsAdmin.DD.deleteMoveButton = function(tr, cell, op) {
+	if(op == 'down') {
+		cell++;
+	}
+	if(!JsAdmin.util.isNodeType(tr, 'tr')) {
+		var rows = tr.getElementsByTagName('tr');
+		tr = rows[0];
+	}
+	
+	tr.cells[cell].innerHTML = "";
+};
+
+//==========================================================================
+// Drag-drop handling for table rows
+//==========================================================================
+
+JsAdmin.DD.trDDSwap = function(id, sGroup) {
+    this.init(id, sGroup);
+	this.addInvalidHandleType('a');
+	this.addInvalidHandleType('input');
+	this.addInvalidHandleType('select');
+    this.initFrame();
+	this.buttonCell = buttonCell;//, by Swen Uth
+	
+	// For Connection
+	this.scope = this;
+};
+
+JsAdmin.DD.trDDSwap.prototype = new YAHOO.util.DDProxy();
+
+JsAdmin.DD.trDDSwap.prototype.startDrag = function(x, y) {
+	if (JsAdmin.DD.dragee != this) {
+		this.rowIndex = this.getEl().rowIndex;
+		this.numRows = this.getEl().parentNode.rows.length;
+		this.opacity = YAHOO.util.Dom.getStyle(this.getEl(), "opacity");
+		this.background = YAHOO.util.Dom.getStyle(this.getEl(), "background");
+		YAHOO.util.Dom.setStyle(this.getEl(), "opacity", 0.5);
+		YAHOO.util.Dom.setStyle(this.getEl(), "background", "#dde");
+	}
+	JsAdmin.DD.dragee = this;
+};
+
+JsAdmin.DD.trDDSwap.prototype.onDragEnter = function(e, id) {
+  var elt = id ? YAHOO.util.Dom.get(id) : null;
+	var item = JsAdmin.movable_rows[this.getEl().id];
+	var rows = item.tr.parentNode.rows;
+	var wasFirst = item.tr.rowIndex == 1;
+	var wasLast = item.tr.rowIndex == this.numRows - 2;
+	if(elt.rowIndex < item.tr.rowIndex) {
+		elt.parentNode.insertBefore(item.tr, elt);
+	} else {
+		elt.parentNode.insertBefore(elt, item.tr);
+	}
+	// Fixup buttons
+	var isFirst = item.tr.rowIndex == 1;
+	var isLast = item.tr.rowIndex == this.numRows - 2;
+
+	if(wasFirst != isFirst) {
+		if(isFirst) {
+			JsAdmin.DD.deleteMoveButton(item.tr, this.buttonCell, 'up');
+			JsAdmin.DD.addMoveButton(JsAdmin.util.getNextSiblingNode(item.tr), this.buttonCell, 'up');
+		} else {
+			JsAdmin.DD.addMoveButton(item.tr, this.buttonCell, 'up');
+			JsAdmin.DD.deleteMoveButton(rows[1], this.buttonCell, 'up');
+		}
+	}
+	if(wasLast != isLast) {
+		if(isLast) {
+			JsAdmin.DD.deleteMoveButton(item.tr, this.buttonCell, 'down');
+			JsAdmin.DD.addMoveButton(JsAdmin.util.getPreviousSiblingNode(item.tr), this.buttonCell, 'down');
+		} else {
+			JsAdmin.DD.addMoveButton(item.tr, this.buttonCell, 'down');
+			JsAdmin.DD.deleteMoveButton(rows[rows.length-2], this.buttonCell, 'down');
+		}
+	}
+
+	this.DDM.refreshCache(this.groups);
+};
+
+JsAdmin.DD.trDDSwap.prototype.endDrag = function(e) {
+	YAHOO.util.Dom.setStyle(this.getEl(), "opacity", this.opacity);
+	YAHOO.util.Dom.setStyle(this.getEl(), "background", "white");
+	
+	JsAdmin.DD.dragee = null;
+
+	var newIndex = this.getEl().rowIndex;
+	if(newIndex != this.rowIndex) {
+		var url = JsAdmin.WB_URL + "/modules/jsadmin/move_to.php";
+		url += JsAdmin.movable_rows[this.getEl().id].params + "&position=" + newIndex;
+		document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/g, "$1") + " jsadmin_busy";
+		YAHOO.util.Connect.asyncRequest('GET', url, this, null);
+	}
+};
+
+JsAdmin.DD.trDDSwap.prototype.success = function(o) {
+	document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/g, "$1") + " jsadmin_success";
+};
+
+JsAdmin.DD.trDDSwap.prototype.failure = function(o) {
+	document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/, "$1") + " jsadmin_failure";
+};
+
+//==========================================================================
+// Drag-drop handling for list items
+//==========================================================================
+
+JsAdmin.DD.liDDSwap = function(id, sGroup) {
+    this.init(id, sGroup);
+	this.addInvalidHandleType('a');
+	this.addInvalidHandleType('input');
+	this.addInvalidHandleType('select');
+    this.initFrame();
+ this.buttonCell = buttonCell;//, by Swen Uth
+	this.counter = 0;
+};
+
+JsAdmin.DD.liDDSwap.prototype = new YAHOO.util.DDProxy();
+
+JsAdmin.DD.liDDSwap.prototype.startDrag = function(x, y) {
+	// On IE, startDrag is sometimes called twice
+	if(JsAdmin.DD.dragee && JsAdmin.DD.dragee != this) {
+		JsAdmin.DD.dragee.endDrag(null);
+	}
+	if(JsAdmin.DD.dragee != this) {
+		this.rowIndex = JsAdmin.util.getItemIndex(this.getEl());
+		this.opacity = YAHOO.util.Dom.getStyle(this.getEl(), "opacity");
+		this.background = YAHOO.util.Dom.getStyle(this.getEl(), "background");
+		YAHOO.util.Dom.setStyle(this.getEl(), "opacity", 0.5);
+
+		this.list = JsAdmin.util.getAncestorNode(this.getEl(), "ul");
+		this.list.className += " jsadmin_drag_area";
+	}
+	JsAdmin.DD.dragee = this;
+};
+
+JsAdmin.DD.liDDSwap.prototype.onDragEnter = function(e, id) {
+	// Swap with other element
+	var elt = id ? YAHOO.util.Dom.get(id) : null;
+	var item = JsAdmin.movable_rows[this.getEl().id];
+	var eltRowIndex = JsAdmin.util.getItemIndex(elt);
+	var rowIndex = JsAdmin.util.getItemIndex(this.getEl());
+	var wasFirst = !JsAdmin.util.getPreviousSiblingNode(this.getEl());
+	var wasLast = !JsAdmin.util.getNextSiblingNode(this.getEl());
+
+	if(eltRowIndex < rowIndex) {
+		elt.parentNode.insertBefore(this.getEl(), elt);
+	} else {
+		elt.parentNode.insertBefore(elt, this.getEl());
+	}
+	// Fixup buttons
+	var isFirst = !JsAdmin.util.getPreviousSiblingNode(this.getEl());
+	var isLast = !JsAdmin.util.getNextSiblingNode(this.getEl());
+
+	if(wasFirst != isFirst) {
+		if(isFirst) {
+			JsAdmin.DD.deleteMoveButton(item.tr, this.buttonCell, 'up');
+			JsAdmin.DD.addMoveButton(JsAdmin.util.getNextSiblingNode(item.item), this.buttonCell, 'up');
+		} else {
+			JsAdmin.DD.addMoveButton(item.item, this.buttonCell, 'up');
+			var first, prev = JsAdmin.util.getPreviousSiblingNode(item.item);
+			while(prev) {
+				first = prev;
+				prev = JsAdmin.util.getPreviousSiblingNode(prev);
+			}
+			JsAdmin.DD.deleteMoveButton(JsAdmin.movable_rows[first.id].tr, this.buttonCell, 'up');
+		}
+	}
+	if(wasLast != isLast) {
+		if(isLast) {
+			JsAdmin.DD.deleteMoveButton(item.tr, this.buttonCell, 'down');
+			JsAdmin.DD.addMoveButton(JsAdmin.util.getPreviousSiblingNode(item.item), this.buttonCell, 'down');
+		} else {
+			JsAdmin.DD.addMoveButton(item.item, this.buttonCell, 'down');
+			var last, next = JsAdmin.util.getNextSiblingNode(item.item);
+			while(next) {
+				last = next;
+				next = JsAdmin.util.getNextSiblingNode(next);
+			}
+			JsAdmin.DD.deleteMoveButton(JsAdmin.movable_rows[last.id].tr, this.buttonCell, 'down');
+		}
+	}
+
+	this.DDM.refreshCache(this.groups);
+};
+
+JsAdmin.DD.liDDSwap.prototype.endDrag = function(e) {
+	YAHOO.util.Dom.setStyle(this.getEl(), "opacity", this.opacity);
+	this.list.className = String(this.list.className).replace(/(\s*)jsadmin_([a-z]+)/g, "$1");
+	JsAdmin.DD.dragee = null;
+	var newIndex = JsAdmin.util.getItemIndex(this.getEl());
+	if(newIndex != this.rowIndex) {
+		var url = JsAdmin.WB_URL + "/modules/jsadmin/move_to.php";
+		url += JsAdmin.movable_rows[this.getEl().id].params + "&position=" + (newIndex+1);
+		document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/g, "$1") + " jsadmin_busy";
+		YAHOO.util.Connect.asyncRequest('GET', url, this, null);
+	}
+};
+
+JsAdmin.DD.liDDSwap.prototype.success = function(o) {
+	document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/g, "$1") + " jsadmin_success";
+};
+
+JsAdmin.DD.liDDSwap.prototype.failure = function(o) {
+	document.body.className = String(document.body.className).replace(/(\s*)jsadmin_([a-z]+)/, "$1") + " jsadmin_failure";
+};

Property changes on: tags/2.7.0/wb/modules/jsadmin/js/dragdrop.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/js/restore_pages.js
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/js/restore_pages.js	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/js/restore_pages.js	(revision 838)
@@ -0,0 +1,78 @@
+// Copyright 2006 Stepan Riha
+// www.nonplus.net
+// $Id: restore_pages.js 2 2006-04-18 03:04:39Z stepan $
+
+// Array of ids that can be toggled using toggle_visibility()
+JsAdmin.toggled_ids = function() {
+	var links = document.getElementsByTagName('a');
+	var ids = [];
+	var reId = /toggle_visibility\s*\(\s*\'([^\']+)/;
+
+	for(var i = 0; i < links.length; i++) {
+		var href = links[i].href || '';
+		var match = href.match(reId);
+		if(!match) {
+			continue;
+		}
+		var id = match[1];
+		ids.push(id);
+	}
+
+	if(ids.length > 0) {
+		return ids;
+	} else {
+		return false;
+	}
+};
+
+// Expand sections stored in the wb_jsadmin_pages cookie
+JsAdmin.restore_toggled = function() {
+	var ids = this.toggled_ids();
+
+	if(!ids) {
+		return;
+	}
+
+	var saved = this.util.readCookie('wb_jsadmin_pages');
+	if(!saved) {
+		return;
+	}
+
+	var reNum = /(\d+)/;
+
+	saved = ',' + saved + ',';
+
+	for(var i = ids.length-1; i >= 0; i--) {
+		var id = ids[i];
+		if(saved.indexOf(',' + id + ',') >= 0) {
+			toggle_visibility(id);
+			var match = id.match(reNum);
+			if(match)
+				toggle_plus_minus(match[1]);
+		}
+	}
+};
+
+// Store expanded section ids in the wb_jsadmin_pages cookie
+JsAdmin.save_toggled = function() {
+
+	var ids = this.toggled_ids();
+
+	if(!ids) {
+		return;
+	}
+
+	var visible = [];
+	for(var i = 0; i < ids.length; i++) {
+		var id = ids[i];
+		var elt = YAHOO.util.Dom.get(id);
+		var display = elt.style.display;
+		if(display == 'block') {
+			visible.push(ids[i]);
+		}
+	}
+
+	var ids = visible.join(",");
+	this.util.createCookie('wb_jsadmin_pages', ids, 14);
+};
+

Property changes on: tags/2.7.0/wb/modules/jsadmin/js/restore_pages.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/tool.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/tool.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/tool.php	(revision 838)
@@ -0,0 +1,119 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/jsadmin/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/jsadmin/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/jsadmin/languages/'.LANGUAGE .'.php');
+}
+
+// check if backend.css file needs to be included into the <body></body>
+if(!method_exists($admin, 'register_backend_modfiles') && file_exists(WB_PATH .'/modules/jsadmin/backend.css')) {
+	echo '<style type="text/css">';
+	include(WB_PATH .'/modules/jsadmin/backend.css');
+	echo "\n</style>\n";
+}
+
+require_once(WB_PATH.'/modules/jsadmin/jsadmin.php');
+
+// Check if user selected what add-ons to reload
+if(isset($_POST['submit']) AND $_POST['submit'] != '') {
+	// Include functions file
+	require_once(WB_PATH.'/framework/functions.php');
+	save_setting('mod_jsadmin_persist_order', isset($_POST['persist_order']));
+	save_setting('mod_jsadmin_ajax_order_pages', isset($_POST['ajax_order_pages']));
+	save_setting('mod_jsadmin_ajax_order_sections', isset($_POST['ajax_order_sections']));
+	echo '<div style="border: solid 2px #9c9; background: #ffd; padding: 0.5em; margin-top: 1em">'.$MESSAGE['SETTINGS']['SAVED'].'</div>';
+}
+
+// Display form
+$persist_order = get_setting('mod_jsadmin_persist_order', true) ? 'checked="1"' : '';
+$ajax_order_pages = get_setting('mod_jsadmin_ajax_order_pages', true) ? 'checked="1"' : '';
+$ajax_order_sections = get_setting('mod_jsadmin_ajax_order_sections', true) ? 'checked="1"' : '';
+?>
+<?php
+
+// THIS ROUTINE CHECKS THE EXISTING OFF ALL NEEDED YUI FILES
+  $YUI_ERROR=false; // ist there an Error
+  $YUI_PUT ='';   // String with javascipt includes
+  $YUI_PUT_MISSING_Files=''; // String with missing files
+  reset($js_yui_scripts);
+  foreach($js_yui_scripts as $script) {
+     if(!file_exists($WB_MAIN_RELATIVE_PATH.$script)){
+        $YUI_ERROR=true;
+        $YUI_PUT_MISSING_Files =$YUI_PUT_MISSING_Files."- ".WB_URL.$script."<br />";   // catch all missing files
+    }
+	}
+	if($YUI_ERROR)
+	{
+    ?><div id="jsadmin_install" style="border: solid 2px #c99; background: #ffd; padding: 0.5em; margin-top: 1em">
+
+     <?php echo $MOD_JSADMIN['TXT_ERROR_INSTALLINFO_B'].$YUI_PUT_MISSING_Files; ?>
+      </div>
+      <?php
+  }
+  else
+  {
+  ?>
+   <form id="jsadmin_form" style="margin-top: 1em; display: true;" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
+   <table cellpadding="4" cellspacing="0" border="0">
+   <tr>
+	     <td colspan="2"><?php echo $MOD_JSADMIN['TXT_HEADING_B']; ?>:</td>
+   </tr>
+   <tr>
+	     <td width="20"><input type="checkbox" name="persist_order" id="persist_order" value="true" <?php echo $persist_order; ?>/></td>
+	     <td><label for="persist_order"><?php echo $MOD_JSADMIN['TXT_PERSIST_ORDER_B']; ?></label></td>
+   </tr>
+   <tr>
+	     <td width="20"><input type="checkbox" name="ajax_order_pages" id="ajax_order_pages" value="true" <?php echo $ajax_order_pages; ?>/></td>
+	     <td><label for="ajax_order_pages"><?php echo $MOD_JSADMIN['TXT_AJAX_ORDER_PAGES_B']; ?></label></td>
+   </tr>
+   <tr>
+	     <td width="20"><input type="checkbox" name="ajax_order_sections" id="ajax_order_sections" value="true" <?php echo $ajax_order_sections; ?>/></td>
+	     <td><label for="ajax_order_sections"><?php echo $MOD_JSADMIN['TXT_AJAX_ORDER_SECTIONS_B']; ?></label></td>
+   </tr>
+   <tr>
+	     <td>&nbsp;</td>
+	     <td>
+		   <input type="submit" name="submit" value="<?php echo $TEXT['SAVE']; ?>" />
+	    </td>
+   </tr>
+   </table>
+   </form>
+ <?php
+ }
+?>

Property changes on: tags/2.7.0/wb/modules/jsadmin/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/README.txt
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/README.txt	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/README.txt	(revision 838)
@@ -0,0 +1,65 @@
+Javscript Admin
+
+Release 1.2
+ On Sourcecode of
+(C) Copyright 2006 Stepan Riha (www.nonplus.net)
+* -----------------------------------------------------------------------------------------
+*	MODIFICATION HISTORY:
+*   by Swen Uth; 01/24/2008
+*   + Update to 1.2
+*   + Update to Website Baker (include/yui)-> YUI to Version 2.4.1
+*   + take the YUI folder to wb/include/
+*   + Website Baker 2.7 Kompatible
+*   + Multilingual
+*   + initial release of the English language file
+*   + initial release of the German language file
+*   + include the Option for backend.cs
+*   + include the option for backend.js
+*   + renamed footer.php to jsadmin_backend_include.php for a better understanding for integration and development
+*   + INCLUDE ERRORHANDLING for missing YUI - Files
+*   + the Array $js_yui_scripts are defined in the jsadmin.php for better development
+* -----------------------------------------------------------------------------------------
+*
+______________________________________________________________
+
+DESCRIPTION
+
+This tool module adds Javascript functionality to the Website Baker Admin to
+improve some of the UI interactions.
+
+Portions of this module use scripts from the Yahoo! UI Library
+You can find it in the WB/include folder
+
+	http://developer.yahoo.com/yui/
+	
+______________________________________________________________
+
+REQUIREMENTS
+
+This module is supported on Website Baker 2.7 and later.
+
+______________________________________________________________
+
+INSTALLATION
+
+The module includes the following files:
+
+	!!! footer.php is canceled -> renamed to jsadmin_backend_include.php
+	images/busy.gif
+	images/failure.gif
+	images/success.gif
+	index.php
+	info.php
+	js/dragdrop.js
+	js/jsadmin.js
+	js/restore_pages.js
+	js/tool.js
+ 	+ languages/EN.php
+	+ languages/DE.php
+	jsadmin.php
+	move_to.php
+	README.txt
+	tool.php
+
+______________________________________________________________
+

Property changes on: tags/2.7.0/wb/modules/jsadmin/README.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/jsadmin/index.php
===================================================================
--- tags/2.7.0/wb/modules/jsadmin/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/jsadmin/index.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+// JsAdmin module for Website Baker
+// Copyright (C) 2006, Stepan Riha
+// www.nonplus.net
+
+// modified by Swen Uth for Website Baker 2.7
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/jsadmin/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/NO.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+-----------------------------------------------------------------------------------------
+NORSK LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+-----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING']	= 'Valg: Filtrering av ut data';
+$MOD_MAIL_FILTER['HOWTO']	= 'Du kan sette innstillingene for utdatafitreringen i valgene nedenfor.<p style="line-height:1.5em;"><strong>Tips: </strong>Mailto linker kan krypteres av en Javascript funksjon. For &aring; f&aring; benyttet denne funksjonen, m&aring; det legges til følgende PHP kode <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> inn i &lt;head&gt; seksjonen i index.php p&aring; malen design malen din. Uten denne modifikasjonen, vil kun @ karakterer i mailto linker bli erstattet.</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']	= 'Enkel Epost konfigurasjon';
+$MOD_MAIL_FILTER['EMAIL_FILTER']	= 'Filtrer Epost adresser i tekst';
+$MOD_MAIL_FILTER['MAILTO_FILTER']	= 'Filtrer Epost adresser i mailto linker';
+$MOD_MAIL_FILTER['ENABLED']	= 'P&aring;sl&aring;tt';
+$MOD_MAIL_FILTER['DISABLED']	= 'Avsl&aring;tt';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']= 'Endringe i Epost adresser';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']	= 'Bytt "@" med';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']	= 'Bytt "." med';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/RU.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING']				= '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;: Output Filter';
+$MOD_MAIL_FILTER['HOWTO']						= '&#1042;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1080;&#1090;&#1100; &#1092;&#1080;&#1083;&#1100;&#1090;&#1088;&#1072;&#1094;&#1080;&#1102;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1085;&#1080;&#1078;&#1077;.<p style="line-height:1.5em;"><strong>&#1042;&#1072;&#1078;&#1085;&#1086;: </strong>Mailto &#1089;&#1089;&#1099;&#1083;&#1082;&#1080; &#1084;&#1086;&#1075;&#1091;&#1090; &#1073;&#1099;&#1090;&#1100; &#1089;&#1082;&#1088;&#1099;&#1090;&#1099; &#1086;&#1090; &#1089;&#1087;&#1072;&#1084;&#1077;&#1088;&#1086;&#1074; &#1089; &#1087;&#1086;&#1084;&#1086;&#1097;&#1100;&#1102; Javascript. &#1063;&#1090;&#1086;&#1073;&#1099; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; &#1101;&#1090;&#1091; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;&#1089;&#1090;&#1100;, &#1076;&#1086;&#1073;&#1072;&#1074;&#1100;&#1090;&#1077; &#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; PHP &#1082;&#1086;&#1076; <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> &#1074; &lt;head&gt; &#1089;&#1077;&#1082;&#1094;&#1080;&#1102; index.php &#1092;&#1072;&#1081;&#1083;&#1072; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;. &#1048;&#1085;&#1072;&#1095;&#1077; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1089;&#1080;&#1084;&#1074;&#1086;&#1083; @ &#1073;&#1091;&#1076;&#1077;&#1090; &#1079;&#1072;&#1084;&#1077;&#1085;&#1077;&#1085; &#1074; mailto &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;&#1093;.</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']			= '&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; Email';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= '&#1057;&#1082;&#1088;&#1099;&#1074;&#1072;&#1090;&#1100; Email &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1074; &#1090;&#1077;&#1082;&#1089;&#1090;&#1077;';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= '&#1057;&#1082;&#1088;&#1099;&#1074;&#1072;&#1090;&#1100; Email &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1074; mailto &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;&#1093;';
+$MOD_MAIL_FILTER['ENABLED']					= '&#1042;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1086;';
+$MOD_MAIL_FILTER['DISABLED']				= '&#1042;&#1099;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1086;';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']= '&#1047;&#1072;&#1084;&#1077;&#1085;&#1099; &#1074; &#1072;&#1076;&#1088;&#1077;&#1089;&#1072;&#1093; Email';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']	= '&#1047;&#1072;&#1084;&#1077;&#1085;&#1103;&#1090;&#1100; "@" &#1085;&#1072;';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']	= '&#1047;&#1072;&#1084;&#1077;&#1085;&#1103;&#1090;&#1100; "." &#1085;&#1072;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/NL.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING']				= 'Options: Output Filter';
+$MOD_MAIL_FILTER['HOWTO']						= 'You can configure the output filtering with the options below.<p style="line-height:1.5em;"><strong>Tip: </strong>Mailto links can be encrypted by a Javascript function. To make use of this option, one needs to add the PHP code <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> into the &lt;head&gt; section of the index.php of your template. Without this modification, only the @ character in the mailto part will be replaced.</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']			= 'Basic Email Configuration';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= 'Filter Email addresses in text';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= 'Filter Email addresses in mailto links';
+$MOD_MAIL_FILTER['ENABLED']					= 'Enabled';
+$MOD_MAIL_FILTER['DISABLED']				= 'Disabled';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']= 'Email Replacements';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']	= 'Replace "@" by';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']	= 'Replace "." by';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/DE.php	(revision 838)
@@ -0,0 +1,47 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description 					= 'Dieses Modul erlaubt die Filterung von Inhalten vor der Anzeige im Frontendbereich. Unterst&uuml;zt die Filterung von Emailadressen in mailto Links und Text.';
+
+// Ueberschriften und Textausgaben
+$MOD_MAIL_FILTER['HEADING']				= 'Optionen: Ausgabe Filterung';
+$MOD_MAIL_FILTER['HOWTO']				= '&Uuml;ber nachfolgende Optionen kann die Ausgabefilterung konfiguriert werden.<p style="line-height:1.5em;"><strong>Tipp: </strong>Mailto Links k&ouml;nnen mit einer Javascript Routine verschl&uuml;sselt werden. Um diese Option zu aktivieren muss der PHP Befehl <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> im &lt;head&gt; Bereich der index.php Ihres Templates eingebunden werden. Ohne diese &Auml;nderungen wird nur das @ Zeichen im mailto: Teil ersetzt.</p>';
+
+// Text von Form Elementen
+$MOD_MAIL_FILTER['BASIC_CONF']			= 'Grundeinstellungen';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= 'Filtere E-Mail Adressen im Text';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= 'Filtere E-Mail Adressen in mailto Links';
+$MOD_MAIL_FILTER['ENABLED']				= 'Aktiviert';
+$MOD_MAIL_FILTER['DISABLED']			= 'Ausgeschaltet';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']	= 'Email Ersetzungen';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']		= 'Ersetze "@" durch';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']		= 'Ersetze "." durch';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/EN.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: OUTPUT_FILTER
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_MAIL_FILTER['HEADING']				= 'Options: Output Filter';
+$MOD_MAIL_FILTER['HOWTO']						= 'You can configure the output filtering with the options below.<p style="line-height:1.5em;"><strong>Tip: </strong>Mailto links can be encrypted by a Javascript function. To make use of this option, one needs to add the PHP code <code style="background:#FFA;color:#900;">&lt;?php register_frontend_modfiles(\'js\');?&gt;</code> into the &lt;head&gt; section of the index.php of your template. Without this modification, only the @ character in the mailto part will be replaced.</p>';
+
+// Text and captions of form elements
+$MOD_MAIL_FILTER['BASIC_CONF']			= 'Basic Email Configuration';
+$MOD_MAIL_FILTER['EMAIL_FILTER']		= 'Filter Email addresses in text';
+$MOD_MAIL_FILTER['MAILTO_FILTER']		= 'Filter Email addresses in mailto links';
+$MOD_MAIL_FILTER['ENABLED']					= 'Enabled';
+$MOD_MAIL_FILTER['DISABLED']				= 'Disabled';
+
+$MOD_MAIL_FILTER['REPLACEMENT_CONF']= 'Email Replacements';
+$MOD_MAIL_FILTER['AT_REPLACEMENT']	= 'Replace "@" by';
+$MOD_MAIL_FILTER['DOT_REPLACEMENT']	= 'Replace "." by';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/js/mdcr.js
===================================================================
--- tags/2.7.0/wb/modules/output_filter/js/mdcr.js	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/js/mdcr.js	(revision 838)
@@ -0,0 +1,30 @@
+
+// $Id$
+
+
+function mdcr(a,b) {
+  location.href=sdcr(a,b);
+}
+
+function sdcr(a,f) {
+  var b = a.charCodeAt(a.length-1) -97;
+  var c=""; var e; var g;
+  
+  for(var d=a.length-2; d>-1; d--) {
+    if(a.charCodeAt(d) < 97) {
+      switch(a.charCodeAt(d)) {
+        case 70: g=64; break;
+        case 90: g=46; break;
+        case 88: g=95; break;
+        case 75: g=45; break;
+        default: g=a.charCodeAt(d); break;
+      }
+      c+=String.fromCharCode(g)
+    } else {
+      e=(a.charCodeAt(d) - 97 - b) % 26;
+      e+=(e<0 || e>25) ? +26 : 0;
+      c+=String.fromCharCode(e+97);
+    }
+  }
+  return "mailto:"+c+f;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/js/mdcr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/js/index.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/js/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/js/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/js/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/filter-routines.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/filter-routines.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/filter-routines.php	(revision 838)
@@ -0,0 +1,202 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../index.php'));
+
+// function to read the current filter settings
+if (!function_exists('get_output_filter_settings')) {
+	function get_output_filter_settings() {
+		global $database, $admin;
+		// connect to database and read out filter settings
+		$result = $database->query("SELECT * FROM " .TABLE_PREFIX ."mod_output_filter");
+		if($result->numRows() > 0) {
+			// get all data
+			$data = $result->fetchRow();
+			$filter_settings['email_filter'] = $admin->strip_slashes($data['email_filter']);
+			$filter_settings['mailto_filter'] = $admin->strip_slashes($data['mailto_filter']);
+			$filter_settings['at_replacement'] = $admin->strip_slashes($data['at_replacement']);
+			$filter_settings['dot_replacement'] = $admin->strip_slashes($data['dot_replacement']);
+		} else {
+			// something went wrong, use default values
+			$filter_settings['email_filter'] = '0';
+			$filter_settings['mailto_filter'] = '0';
+			$filter_settings['at_replacement'] = '(at)';
+			$filter_settings['dot_replacement'] = '(dot)';
+		}
+		
+		// return array with filter settings
+		return $filter_settings;
+	}
+}
+
+// function to filter the output before displaying it on the frontend
+if (!function_exists('filter_frontend_output')) {
+	function filter_frontend_output($content) {
+		// get output filter settings from database
+		$filter_settings = get_output_filter_settings();
+		
+		// work out the defined output filter mode: possible output filter modes: [0], 1, 2, 3, 6, 7
+		// 2^0 * (0.. disable, 1.. enable) filtering of mail addresses in text
+		// 2^1 * (0.. disable, 1.. enable) filtering of mail addresses in mailto links
+		// 2^2 * (0.. disable, 1.. enable) Javascript mailto encryption (only if mailto filtering enabled)
+
+		// only filter output if we are supposed to
+		if($filter_settings['email_filter'] != '1' && $filter_settings['mailto_filter'] != '1'){
+			// nothing to do ...
+			return $content;
+		}
+
+		// check if non mailto mail addresses needs to be filtered
+		$output_filter_mode = ($filter_settings['email_filter'] == '1') ? 1 : 0;		// 0|1
+		
+		// check if mailto mail addresses needs to be filtered
+		if($filter_settings['mailto_filter'] == '1') {
+			$output_filter_mode = $output_filter_mode + 2;														// 0|2
+						
+			// check if Javascript mailto encryption is enabled (call register_frontend_functions in the template)
+			$search = '<script type="text/javascript" src="' .WB_URL .'/modules/output_filter/js/mdcr.js"></script>';
+			if(strpos($content, $search) !== false) { 
+				$output_filter_mode = $output_filter_mode + 4;													// 0|4
+			}
+		}
+		
+		// define some constants so we do not call the database in the callback function again
+		define('OUTPUT_FILTER_MODE', (int) $output_filter_mode);
+		define('OUTPUT_FILTER_AT_REPLACEMENT', $filter_settings['at_replacement']);
+		define('OUTPUT_FILTER_DOT_REPLACEMENT', $filter_settings['dot_replacement']);
+		
+		// first search part to find all mailto email addresses
+		$pattern = '#(<a[^<]*href\s*?=\s*?"\s*?mailto\s*?:\s*?)([A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4})([^"]*?)"([^>]*>)(.*?)</a>';
+		// second part to find all non mailto email addresses
+		$pattern .= '|\b([A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4})\b#i';
+		/*
+		Sub 1:\b(<a.[^<]*href\s*?=\s*?"\s*?mailto\s*?:\s*?)			-->	"<a id="yyy" class="xxx" href = " mailto :" ignoring white spaces
+		Sub 2:([A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4})			-->	the email address in the mailto: part of the mail link
+		Sub 3:([^"]*?)"																					--> possible ?Subject&cc... stuff attached to the mail address
+		Sub 4:([^>]*>)																					--> all class or id statements after the mailto but before closing ..>
+		Sub 5:(.*?)</a>\b																				--> the mailto text; all characters between >xxxxx</a>
+		Sub 6:|\b([A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4})\b	--> email addresses which may appear in the text (require word boundaries)
+		*/
+			
+		// find all email addresses embedded in the content and filter them using a callback function
+		$content = preg_replace_callback($pattern, 'filter_mail_addresses', $content);
+		return $content;
+	}
+}		
+
+
+// function to filter mail addresses embedded in text or mailto links before outputing them on the frontend
+if (!function_exists('filter_mail_addresses')) {
+	function filter_mail_addresses($match) { 
+		
+		// check if required output filter mode is defined
+		if(!(defined('OUTPUT_FILTER_MODE') && defined('OUTPUT_FILTER_MODE') && defined('OUTPUT_FILTER_MODE'))) {
+			return $match[0];
+		}
+		
+		$search = array('@', '.');
+		$replace = array(OUTPUT_FILTER_AT_REPLACEMENT ,OUTPUT_FILTER_DOT_REPLACEMENT);
+		
+		// check if the match contains the expected number of subpatterns (6|7)
+		if(count($match) == 7) {
+			/**
+				OUTPUT FILTER FOR EMAIL ADDRESSES EMBEDDED IN TEXT
+			**/
+			
+			// 1.. text mails only, 3.. text mails + mailto (no JS), 7 text mails + mailto (JS)
+			if(!in_array(OUTPUT_FILTER_MODE, array(1,3,7))) return $match[0];
+			
+			// filtering of non mailto email addresses enabled
+			return str_replace($search, $replace, $match[0]);
+				
+		} elseif(count($match) == 6) {
+			/**
+				OUTPUT FILTER FOR EMAIL ADDRESSES EMBEDDED IN MAILTO LINKS
+			**/
+
+			// 2.. mailto only (no JS), 3.. text mails + mailto (no JS), 6.. mailto only (JS), 7.. all filters active
+			if(!in_array(OUTPUT_FILTER_MODE, array(2,3,6,7))) return $match[0];
+			
+			// check if last part of the a href link: >xxxx</a> contains a email address we need to filter
+			$pattern = '#[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}#i';
+			if(preg_match_all($pattern, $match[5], $matches)) {
+				foreach($matches as $submatch) {
+					foreach($submatch as $value) {
+						// replace all . and all @ in email address parts by (dot) and (at) strings
+						$match[5] = str_replace($value, str_replace($search, $replace, $value), $match[5]);
+					}
+				}
+			}
+
+			// check if Javascript encryption routine is enabled
+			if(in_array(OUTPUT_FILTER_MODE, array(6,7))) {
+				/** USE JAVASCRIPT ENCRYPTION FOR MAILTO LINKS **/
+
+				// preprocess mailto link parts for further usage
+				$search = array('@', '.', '_', '-'); $replace = array('F', 'Z', 'X', 'K');
+				$email_address = str_replace($search, $replace, strtolower($match[2]));
+				$email_subject = rawurlencode(html_entity_decode($match[3]));
+				
+				// create a random encryption key for the Caesar cipher
+				mt_srand((double)microtime()*1000000);	// (PHP < 4.2.0)
+				$shift = mt_rand(1, 25);
+				
+				// encrypt the email using an adapted Caesar cipher
+		  	$encrypted_email = "";
+				for($i = strlen($email_address) -1; $i > -1; $i--) {
+					if(preg_match('#[FZXK0-9]#', $email_address[$i], $characters)) {
+						$encrypted_email .= $email_address[$i];
+					} else {
+						$encrypted_email .= chr((ord($email_address[$i]) -97 + $shift) % 26 + 97);
+					}
+				}
+				$encrypted_email .= chr($shift + 97);
+
+				// build the encrypted Javascript mailto link
+				$mailto_link  = "<a href=\"javascript:mdcr('$encrypted_email','$email_subject')\">" .$match[5] ."</a>";
+				
+				return $mailto_link;	
+
+			} else {
+				/** DO NOT USE JAVASCRIPT ENCRYPTION FOR MAILTO LINKS **/
+
+				// as minimum protection, replace replace @ in the mailto part by (at)
+				// dots are not transformed as this would transform my.name@domain.com into: my(dot)name(at)domain(dot)com
+				
+				// rebuild the mailto link from the subpatterns (at the missing characters " and </a>")
+				return $match[1] .str_replace('@', OUTPUT_FILTER_AT_REPLACEMENT, $match[2]) .$match[3] .'"' .$match[4] .$match[5] .'</a>';
+				// if you want to protect both, @ and dots, comment out the line above and remove the comment from the line below
+				// return $match[1] .str_replace($search, $replace, $match[2]) .$match[3] .'"' .$match[4] .$match[5] .'</a>';
+			}
+		
+		}
+		
+		// number of subpatterns do not match the requirements ... do nothing
+		return $match[0];
+	}		
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/output_filter/filter-routines.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/uninstall.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/uninstall.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/uninstall.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../index.php'));
+
+$table = TABLE_PREFIX .'mod_output_filter';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/uninstall.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/info.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/info.php	(revision 838)
@@ -0,0 +1,45 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  Output Filter tool for Website Baker v2.7
+  Licencsed under GNU, written by Christian Sommer (Doc)
+ -----------------------------------------------------------------------------------------
+   v0.11  (Chritian Sommer; 06 Feb, 2008)
+    ~ renamed module to output filter, splitted email filter in two functions (text emails, mailto links)
+
+   v0.10  (Christian Sommer; 21 Jan, 2008)
+    ~ initial module release (Note: requires WB 2.7 core file changes to work)
+
+*/
+
+$module_directory 	= 'output_filter';
+$module_name 				= 'Frontend Output Filter';
+$module_function 		= 'tool';
+$module_version 		= '0.11';
+$module_platform 		= '2.7.x';
+$module_author 			= 'Christian Sommer (doc)';
+$module_license 		= 'GNU General Public License';
+$module_description = 'This module allows to filter the output before displaying it on the frontend. Support for filtering mailto links and mail addresses in strings.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/tool.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/tool.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/tool.php	(revision 838)
@@ -0,0 +1,111 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../index.php'));
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/output_filter/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/output_filter/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/output_filter/languages/'.LANGUAGE .'.php');
+}
+// check if data was submitted
+if(isset($_POST['save_settings'])) {
+	// get overall output filter settings
+	$email_filter = (isset($_POST['email_filter']) && $_POST['email_filter'] == '1') ? '1' : '0';
+	$mailto_filter = (isset($_POST['mailto_filter']) && $_POST['mailto_filter'] == '1') ? '1' : '0';
+	
+	// get email replacement settings
+	$at_replacement = isset($_POST['at_replacement']) ?strip_tags($_POST['at_replacement']) : '';
+	$at_replacement = (strlen(trim($at_replacement)) > 0) ? $admin->add_slashes($at_replacement) : '(at)';
+	$dot_replacement = isset($_POST['dot_replacement']) ?strip_tags($_POST['dot_replacement']) : '';
+	$dot_replacement = (strlen(trim($dot_replacement)) > 0) ? $admin->add_slashes($dot_replacement) : '(dot)';
+	
+	// update database settings
+	$database->query("UPDATE " .TABLE_PREFIX ."mod_output_filter SET email_filter = '$email_filter', 
+		mailto_filter = '$mailto_filter', at_replacement = '$at_replacement', dot_replacement = '$dot_replacement'");
+
+	// check if there is a database error, otherwise say successful
+	if($database->is_error()) {
+		$admin->print_error($database->get_error(), $js_back);
+	} else {
+		$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/admintools/tool.php?tool=output_filter');
+	}
+
+} else {
+	// write out heading
+	echo '<h2>' .$MOD_MAIL_FILTER['HEADING'] .'</h2>';
+
+	// include filter functions
+	require_once(WB_PATH .'/modules/output_filter/filter-routines.php');
+	
+	// read the mail filter settings from the database 
+	$data = get_output_filter_settings();
+	
+	// output the form with values from the database
+	echo '<p>' .$MOD_MAIL_FILTER['HOWTO'] .'</p>';
+?>
+<form name="store_settings" action="<?php echo $_SERVER['REQUEST_URI'];?>" method="post">
+	<table width="98%" cellspacing="0" cellpadding="5px" class="row_a">
+	<tr><td colspan="2"><strong><?php echo $MOD_MAIL_FILTER['BASIC_CONF'];?>:</strong></td></tr>
+	<tr>
+		<td width="35%"><?php echo $MOD_MAIL_FILTER['EMAIL_FILTER'];?>:</td>
+		<td>
+			<input type="radio" <?php echo ($data['email_filter']=='1') ?'checked="checked"' :'';?>
+				name="email_filter" value="1"><?php echo $MOD_MAIL_FILTER['ENABLED'];?>
+			<input type="radio" <?php echo (($data['email_filter'])=='0') ?'checked="checked"' :'';?>
+				name="email_filter" value="0"><?php echo $MOD_MAIL_FILTER['DISABLED'];?>
+		</td>
+	</tr>
+	<tr>
+		<td><?php echo $MOD_MAIL_FILTER['MAILTO_FILTER'];?>:</td>
+		<td>
+			<input type="radio" <?php echo ($data['mailto_filter']=='1') ?'checked="checked"' :'';?>
+				name="mailto_filter" value="1"><?php echo $MOD_MAIL_FILTER['ENABLED'];?>
+			<input type="radio" <?php echo (($data['mailto_filter'])=='0') ?'checked="checked"' :'';?>
+				name="mailto_filter" value="0"><?php echo $MOD_MAIL_FILTER['DISABLED'];?>
+		</td>
+	</tr>
+	<tr><td colspan="2"><br /><strong><?php echo $MOD_MAIL_FILTER['REPLACEMENT_CONF'];?>:</strong></td></tr>
+	<tr>
+		<td><?php echo $MOD_MAIL_FILTER['AT_REPLACEMENT'];?>:</td>
+		<td><input type="text" style="width: 160px" value="<?php echo $data['at_replacement'];?>" 
+			name="at_replacement"/></td>
+	</tr>
+	<tr>
+		<td><?php echo $MOD_MAIL_FILTER['DOT_REPLACEMENT'];?>:</td>
+		<td><input type="text" style="width: 160px" value="<?php echo $data['dot_replacement'];?>" 
+			name="dot_replacement"/></td>
+	</tr>
+	</table>
+	<input type="submit" name="save_settings" style="margin-top:10px; width:140px;" value="<?php echo $TEXT['SAVE']; ?>" />
+</form>
+<?php
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/output_filter/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/install.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/install.php	(revision 838)
@@ -0,0 +1,44 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// prevent this file from being accessed directly
+if(!defined('WB_PATH')) die(header('Location: ../index.php'));
+
+$table = TABLE_PREFIX .'mod_output_filter';
+$database->query("DROP TABLE IF EXISTS `$table`");
+
+$database->query("CREATE TABLE `$table` (
+	`email_filter` VARCHAR(1) NOT NULL DEFAULT '0',
+	`mailto_filter` VARCHAR(1) NOT NULL DEFAULT '0',
+	`at_replacement` VARCHAR(255) NOT NULL DEFAULT '(at)',
+	`dot_replacement` VARCHAR(255) NOT NULL DEFAULT '(dot)'
+	)"
+);
+
+// add default values to the module table
+$database->query("INSERT INTO ".TABLE_PREFIX
+	."mod_output_filter (email_filter, mailto_filter, at_replacement, dot_replacement) VALUES ('0', '0', '(at)', '(dot)')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/output_filter/index.php
===================================================================
--- tags/2.7.0/wb/modules/output_filter/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/output_filter/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/output_filter/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/NO.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/NO.php	(revision 838)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+-----------------------------------------------------------------------------------------
+NORSK LANGUAGE FILE FOR THE ADDON: RELOAD ADDINS
+-----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_RELOAD['PLEASE_SELECT'] = 'Venligst velg hvilke tillegg du vil laste p&aring; nytt';
+$MOD_RELOAD['MODULES'] = 'Moduler';
+$MOD_RELOAD['TEMPLATES'] = 'Design maler';
+$MOD_RELOAD['LANGUAGES'] = 'Spr&aring;k filer';
+$MOD_RELOAD['MODULES_RELOADED'] = 'Moduler ble lastet p&aring; nytt';
+$MOD_RELOAD['TEMPLATES_RELOADED']	= 'Design maler ble lastet p&aring; nytt';
+$MOD_RELOAD['LANGUAGES_RELOADED']	= 'Spr&aring;k filer ble lastet p&aring; nytt';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/RU.php	(revision 838)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN LANGUAGE FILE FOR THE ADDON: RELOAD ADDINS
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_RELOAD['PLEASE_SELECT'] 			= '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; &#1095;&#1090;&#1086; &#1080;&#1084;&#1077;&#1085;&#1085;&#1086; &#1074;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1100;';
+$MOD_RELOAD['MODULES'] 					= '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080;';
+$MOD_RELOAD['TEMPLATES'] 				= '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;&#1099;';
+$MOD_RELOAD['LANGUAGES'] 				= '&#1071;&#1079;&#1099;&#1082;&#1080;';
+$MOD_RELOAD['MODULES_RELOADED'] 		= '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099;';
+$MOD_RELOAD['TEMPLATES_RELOADED']	= '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099;';
+$MOD_RELOAD['LANGUAGES_RELOADED']	= '&#1071;&#1079;&#1099;&#1082;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/reload/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/NL.php	(revision 838)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE ADDON: RELOAD ADDINS
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_RELOAD['PLEASE_SELECT'] 			= 'Selecteer welke add-ons je wenst te herladen';
+$MOD_RELOAD['MODULES'] 					= 'Modules';
+$MOD_RELOAD['TEMPLATES'] 				= 'Templates';
+$MOD_RELOAD['LANGUAGES'] 				= 'Talen';
+$MOD_RELOAD['MODULES_RELOADED'] 		= 'Modules met succes herladen';
+$MOD_RELOAD['TEMPLATES_RELOADED']	= 'Templates met succes herladen';
+$MOD_RELOAD['LANGUAGES_RELOADED']	= 'Talen met succes herladen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/DE.php	(revision 838)
@@ -0,0 +1,41 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: RELOAD ADDONS
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul gleicht die Addon Informationen der Datenbank mit Ihrer WB Installation ab.';
+
+// Textausgaben
+$MOD_RELOAD['PLEASE_SELECT']			= 'W&auml;hlen Sie die Addons aus, deren Informationen mit der Datenbank abgeglichen werden sollen';
+$MOD_RELOAD['MODULES']					= 'Module';
+$MOD_RELOAD['TEMPLATES']				= 'Designvorlagen';
+$MOD_RELOAD['LANGUAGES']				= 'Sprachdateien';
+$MOD_RELOAD['MODULES_RELOADED']			= 'Module erfolgreich abgeglichen';
+$MOD_RELOAD['TEMPLATES_RELOADED']		= 'Designvorlagen erfolgreich abgeglichen';
+$MOD_RELOAD['LANGUAGES_RELOADED']		= 'Sprachdateien erfolgreich abgeglichen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/languages/EN.php
===================================================================
--- tags/2.7.0/wb/modules/reload/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/languages/EN.php	(revision 838)
@@ -0,0 +1,38 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  ENGLISH LANGUAGE FILE FOR THE ADDON: RELOAD ADDINS
+ -----------------------------------------------------------------------------------------
+*/
+
+// Headings and text outputs
+$MOD_RELOAD['PLEASE_SELECT'] 			= 'Please selected which add-ons you would like to have reloaded';
+$MOD_RELOAD['MODULES'] 					= 'Modules';
+$MOD_RELOAD['TEMPLATES'] 				= 'Templates';
+$MOD_RELOAD['LANGUAGES'] 				= 'Languages';
+$MOD_RELOAD['MODULES_RELOADED'] 		= 'Modules reloaded successfully';
+$MOD_RELOAD['TEMPLATES_RELOADED']	= 'Templates reloaded successfully';
+$MOD_RELOAD['LANGUAGES_RELOADED']	= 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/info.php
===================================================================
--- tags/2.7.0/wb/modules/reload/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'reload';
+$module_name = 'Reload Add-ons';
+$module_function = 'tool';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to reload add-on information stored in the addons table.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/tool.php
===================================================================
--- tags/2.7.0/wb/modules/reload/tool.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/tool.php	(revision 838)
@@ -0,0 +1,121 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Direct access prevention
+defined('WB_PATH') OR die(header('Location: ../index.php'));
+
+// check if module language file exists for the language set by the user (e.g. DE, EN)
+if(!file_exists(WB_PATH .'/modules/reload/languages/'.LANGUAGE .'.php')) {
+	// no module language file exists for the language set by the user, include default module language file EN.php
+	require_once(WB_PATH .'/modules/reload/languages/EN.php');
+} else {
+	// a module language file exists for the language defined by the user, load it
+	require_once(WB_PATH .'/modules/reload/languages/'.LANGUAGE .'.php');
+}
+
+// Check if user selected what add-ons to reload
+if(isset($_POST['submit']) AND $_POST['submit'] != '') {
+	// Include functions file
+	require_once(WB_PATH.'/framework/functions.php');
+	// Perform empty/reload
+	if(isset($_POST['reload_modules'])) {
+		// Remove all modules
+		$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'module'");
+		// Load all modules
+		if($handle = opendir(WB_PATH.'/modules/')) {
+			while(false !== ($file = readdir($handle))) {
+				if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') {
+					load_module(WB_PATH.'/modules/'.$file);
+				}
+			}
+		closedir($handle);
+		}
+		echo '<br />'.$MOD_RELOAD['MODULES_RELOADED'];
+	}
+	if(isset($_POST['reload_templates'])) {
+		// Remove all templates
+		$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'template'");
+		// Load all templates
+		if($handle = opendir(WB_PATH.'/templates/')) {
+			while(false !== ($file = readdir($handle))) {
+				if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'index.php') {
+					load_template(WB_PATH.'/templates/'.$file);
+				}
+			}
+		closedir($handle);
+		}
+		echo '<br />'.$MOD_RELOAD['TEMPLATES_RELOADED'];
+	}
+	if(isset($_POST['reload_languages'])) {
+		// Remove all languages
+		$database->query("DELETE FROM ".TABLE_PREFIX."addons WHERE type = 'language'");
+		// Load all languages
+		if($handle = opendir(WB_PATH.'/languages/')) {
+			while(false !== ($file = readdir($handle))) {
+				if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'index.php') {
+					load_language(WB_PATH.'/languages/'.$file);
+				}
+			}
+		closedir($handle);
+		}
+		echo '<br />'.$MOD_RELOAD['LANGUAGES_RELOADED'];
+	}
+	?>
+	<br /><br />
+	<a href="<?php echo $_SERVER['REQUEST_URI']; ?>"><?php echo $TEXT['BACK']; ?></a>
+	<?php
+} else {
+	// Display form
+	?>
+	<br />
+	<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
+	<table cellpadding="4" cellspacing="0" border="0">
+	<tr>
+		<td colspan="2"><?php echo $MOD_RELOAD['PLEASE_SELECT']; ?>:</td>
+	</tr>
+	<tr>
+		<td width="20"><input type="checkbox" name="reload_modules" id="reload_modules" value="true" /></td>
+		<td><label for="reload_modules"><?php echo $MOD_RELOAD['MODULES']; ?></label></td>
+	</tr>
+	<tr>
+		<td><input type="checkbox" name="reload_templates" id="reload_templates" value="true" /></td>
+		<td><label for="reload_templates"><?php echo $MOD_RELOAD['TEMPLATES']; ?></label></td>
+	</tr>
+	<tr>
+		<td><input type="checkbox" name="reload_languages" id="reload_languages" value="true" /></td>
+		<td><label for="reload_languages"><?php echo $MOD_RELOAD['LANGUAGES']; ?></label></td>
+	</tr>
+	<tr>
+		<td>&nbsp;</td>
+		<td>
+			<input type="submit" name="submit" value="<?php echo $TEXT['RELOAD']; ?>" onClick="javascript: if(!confirm('<?php echo $TEXT['ARE_YOU_SURE']; ?>')) { return false; }" />
+		</td>
+	</tr>
+	</table>
+	</form>
+	<?php
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/tool.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/reload/index.php
===================================================================
--- tags/2.7.0/wb/modules/reload/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/reload/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/reload/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/install.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/install.php	(revision 838)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(defined('WB_URL')) {
+	
+	// Create table
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_wysiwyg`");
+	$mod_wysiwyg = 'CREATE TABLE `'.TABLE_PREFIX.'mod_wysiwyg` ( '
+		. ' `section_id` INT NOT NULL DEFAULT \'0\','
+		. ' `page_id` INT NOT NULL DEFAULT \'0\','
+		. ' `content` LONGTEXT NOT NULL ,'
+		. ' `text` LONGTEXT NOT NULL ,'
+		. ' PRIMARY KEY ( `section_id` ) '
+		. ' )';
+	$database->query($mod_wysiwyg);
+	
+	// Insert info into the search table
+	// Module query info
+	$field_info = array();
+	$field_info['page_id'] = 'page_id';
+	$field_info['title'] = 'page_title';
+	$field_info['link'] = 'link';
+	$field_info['description'] = 'description';
+	$field_info['modified_when'] = 'modified_when';
+	$field_info['modified_by'] = 'modified_by';
+	$field_info = serialize($field_info);
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'wysiwyg', '$field_info')");
+	// Query start
+	$query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title,	[TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by	FROM [TP]mod_wysiwyg, [TP]pages WHERE ";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'wysiwyg')");
+	// Query body
+	$query_body_code = " [TP]pages.page_id = [TP]mod_wysiwyg.page_id AND [TP]mod_wysiwyg.text [O] \'[W][STRING][W]\' AND [TP]pages.searching = \'1\'";	
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'wysiwyg')");
+	// Query end
+	$query_end_code = "";	
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'wysiwyg')");
+	
+	// Insert blank row (there needs to be at least on row for the search to work)
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_wysiwyg (page_id,section_id) VALUES ('0','0')");
+	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/languages/RU.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSSIAN TRANSLATION FOR MODULE: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+
+// Russian translation
+$module_description = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; &#1087;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1077;&#1090; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; &#1074;&#1080;&#1079;&#1091;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1086;&#1088;';
+
+?>

Property changes on: tags/2.7.0/wb/modules/wysiwyg/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/languages/NL.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+    DUTCH LANGUAGE MODULE FOR THE MODULE: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Deze module laat je toe om de inhoud van een pagina te bewerken door middel van WYSIWYG';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/languages/DE.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: WYSIWYG
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul erm&ouml;glicht die Bearbeitung von Seiteninhalten mit Hilfe eines grafischen Editors';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/info.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'wysiwyg';
+$module_name = 'WYSIWYG';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to edit the contents of a page using a graphical editor';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/search.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/search.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/search.php	(revision 838)
@@ -0,0 +1,63 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+function wysiwyg_search($func_vars) {
+	extract($func_vars, EXTR_PREFIX_ALL, 'func');
+	
+	// how many lines of excerpt we want to have at most
+	$max_excerpt_num = $func_default_max_excerpt;
+	$divider = ".";
+	$result = false;
+	
+	// we have to get 'content' instead of 'text', because strip_tags() dosen't remove scripting well.
+	// scripting will be removed later on automatically
+	$table = TABLE_PREFIX."mod_wysiwyg";
+	$query = $func_database->query("
+		SELECT content
+		FROM $table
+		WHERE section_id='$func_section_id'
+	");
+
+	if($query->numRows() > 0) {
+		if($res = $query->fetchRow()) {
+			$mod_vars = array(
+				'page_link' => $func_page_link,
+				'page_link_target' => "#wb_section_$func_section_id",
+				'page_title' => $func_page_title,
+				'page_description' => $func_page_description,
+				'page_modified_when' => $func_page_modified_when,
+				'page_modified_by' => $func_page_modified_by,
+				'text' => $res['content'].$divider,
+				'max_excerpt_num' => $max_excerpt_num
+			);
+			if(print_excerpt2($mod_vars, $func_vars)) {
+				$result = true;
+			}
+		}
+	}
+	return $result;
+}
+
+?>

Property changes on: tags/2.7.0/wb/modules/wysiwyg/search.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/view.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/view.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get content
+$get_content = $database->query("SELECT content FROM ".TABLE_PREFIX."mod_wysiwyg WHERE section_id = '$section_id'");
+$fetch_content = $get_content->fetchRow();
+$content = ($fetch_content['content']);
+
+$wb->preprocess($content);
+
+echo $content;
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/save.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/save.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/save.php	(revision 838)
@@ -0,0 +1,55 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Include the WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Update the mod_wysiwygs table with the contents
+if(isset($_POST['content'.$section_id])) {
+	$content = $admin->add_slashes($_POST['content'.$section_id]);
+	// searching in $text will be much easier this way
+	$text = umlauts_to_entities(strip_tags($content), strtoupper(DEFAULT_CHARSET), 0);
+	$database = new database();
+	$query = "UPDATE ".TABLE_PREFIX."mod_wysiwyg SET content = '$content', text = '$text' WHERE section_id = '$section_id'";
+	$database->query($query);	
+}
+
+// Check if there is a database error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), $js_back);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/delete.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/delete.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Delete record from the database
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_wysiwyg WHERE section_id = '$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/index.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/modify.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/modify.php	(revision 838)
@@ -0,0 +1,79 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_PATH')) exit('Direct access to this file is not allowed');
+
+// Get page content
+$query = "SELECT content FROM ".TABLE_PREFIX."mod_wysiwyg WHERE section_id = '$section_id'";
+$get_content = $database->query($query);
+$content = $get_content->fetchRow();
+$content = (htmlspecialchars($content['content']));
+
+if(!isset($wysiwyg_editor_loaded)) {
+	$wysiwyg_editor_loaded=true;
+
+	if (!defined('WYSIWYG_EDITOR') OR WYSIWYG_EDITOR=="none" OR !file_exists(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php')) {
+		function show_wysiwyg_editor($name,$id,$content,$width,$height) {
+			echo '<textarea name="'.$name.'" id="'.$id.'" style="width: '.$width.'; height: '.$height.';">'.$content.'</textarea>';
+		}
+	} else {
+		$id_list=array();
+		$query_wysiwyg = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'wysiwyg'");
+		if($query_wysiwyg->numRows() > 0) {
+			while($wysiwyg_section = $query_wysiwyg->fetchRow()) {
+				$entry='content'.$wysiwyg_section['section_id'];
+				array_push($id_list,$entry);
+			}
+			require(WB_PATH.'/modules/'.WYSIWYG_EDITOR.'/include.php');
+		}
+	}
+}
+
+?>
+
+<form name="wysiwyg<?php echo $section_id; ?>" action="<?php echo WB_URL; ?>/modules/wysiwyg/save.php" method="post">
+
+<input type="hidden" name="page_id" value="<?php echo $page_id; ?>" />
+<input type="hidden" name="section_id" value="<?php echo $section_id; ?>" />
+
+<?php
+show_wysiwyg_editor('content'.$section_id,'content'.$section_id,$content,'725px','350px');
+?>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding-bottom: 10px;">
+<tr>
+	<td align="left">
+		<input type="submit" value="<?php echo $TEXT['SAVE']; ?>" style="width: 100px; margin-top: 5px;" />
+	</td>
+	<td align="right">
+		</form>
+		<input type="button" value="<?php echo $TEXT['CANCEL']; ?>" onclick="javascript: window.location = 'index.php';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<br />
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/wysiwyg/add.php
===================================================================
--- tags/2.7.0/wb/modules/wysiwyg/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/wysiwyg/add.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Insert an extra row into the database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_wysiwyg (page_id,section_id) VALUES ('$page_id','$section_id')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/wysiwyg/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/languages/RU.php
===================================================================
--- tags/2.7.0/wb/modules/code/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/languages/RU.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project http://www.websitebaker.org/
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  RUSIIAN LANGUAGE FOR MODULE: CODE
+ -----------------------------------------------------------------------------------------
+*/
+
+//Russian translation
+$module_description = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; &#1087;&#1086;&#1079;&#1074;&#1086;&#1083;&#1103;&#1077;&#1090; &#1074;&#1099;&#1087;&#1086;&#1083;&#1085;&#1103;&#1090;&#1100; PHP &#1082;&#1086;&#1076; (&#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1072;&#1081;&#1090;&#1077; &#1077;&#1075;&#1086; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1076;&#1086;&#1074;&#1077;&#1088;&#1077;&#1085;&#1085;&#1099;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&#1084;!)';
+
+?>

Property changes on: tags/2.7.0/wb/modules/code/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/languages/NL.php
===================================================================
--- tags/2.7.0/wb/modules/code/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/languages/NL.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DUTCH LANGUAGE FILE FOR THE CODE MODULE
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'In deze module kan je PHP instructies ingeven (Gelieve de toegang ervan te beperken tot betrouwbare personen!!)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/languages/DE.php
===================================================================
--- tags/2.7.0/wb/modules/code/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/languages/DE.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+ -----------------------------------------------------------------------------------------
+  DEUTSCHE SPRACHDATEI FUER DAS MODUL: CODE
+ -----------------------------------------------------------------------------------------
+*/
+
+// Deutsche Modulbeschreibung
+$module_description = 'Dieses Modul erlaubt das ausf&uuml;hren von PHP Befehlen (bitte begrenzen Sie den Zugriff auf vertrauensw&uuml;rdige Personen!!)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/languages/index.php
===================================================================
--- tags/2.7.0/wb/modules/code/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/languages/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../../../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/save.php
===================================================================
--- tags/2.7.0/wb/modules/code/save.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/save.php	(revision 838)
@@ -0,0 +1,50 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../../config.php');
+
+// Include WB admin wrapper script
+$update_when_modified = true; // Tells script to update when this page was last updated
+require(WB_PATH.'/modules/admin.php');
+
+// Update the mod_wysiwygs table with the contents
+if(isset($_POST['content'])) {
+	$tags = array('<?php', '?>' , '<?');
+	$content = $admin->add_slashes(str_replace($tags, '', $_POST['content']));
+	$query = "UPDATE ".TABLE_PREFIX."mod_code SET content = '$content' WHERE section_id = '$section_id'";
+	$database->query($query);	
+}
+
+// Check if there is a database error, otherwise say successful
+if($database->is_error()) {
+	$admin->print_error($database->get_error(), $js_back);
+} else {
+	$admin->print_success($MESSAGE['PAGES']['SAVED'], ADMIN_URL.'/pages/modify.php?page_id='.$page_id);
+}
+
+// Print admin footer
+$admin->print_footer();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/info.php
===================================================================
--- tags/2.7.0/wb/modules/code/info.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/info.php	(revision 838)
@@ -0,0 +1,35 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$module_directory = 'code';
+$module_name = 'Code';
+$module_function = 'page';
+$module_version = '2.7';
+$module_platform = '2.7.x';
+$module_author = 'Ryan Djurovich';
+$module_license = 'GNU General Public License';
+$module_description = 'This module allows you to execute PHP commands (limit access to users you trust!!)';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/modify.php
===================================================================
--- tags/2.7.0/wb/modules/code/modify.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/modify.php	(revision 838)
@@ -0,0 +1,52 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Setup template object
+$template = new Template(WB_PATH.'/modules/code');
+$template->set_file('page', 'modify.html');
+$template->set_block('page', 'main_block', 'main');
+
+// Get page content
+$query = "SELECT content FROM ".TABLE_PREFIX."mod_code WHERE section_id = '$section_id'";
+$get_content = $database->query($query);
+$content = $get_content->fetchRow();
+$content = (htmlspecialchars($content['content']));
+
+// Insert vars
+$template->set_var(array(
+								'PAGE_ID' => $page_id,
+								'SECTION_ID' => $section_id,
+								'WB_URL' => WB_URL,
+								'CONTENT' => $content,
+								'TEXT_SAVE' => $TEXT['SAVE'],
+								'TEXT_CANCEL' => $TEXT['CANCEL']
+								)
+						);
+
+// Parse template object
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page', false, false);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/modify.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/view.php
===================================================================
--- tags/2.7.0/wb/modules/code/view.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/view.php	(revision 838)
@@ -0,0 +1,32 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Get content
+$get_content = $database->query("SELECT content FROM ".TABLE_PREFIX."mod_code WHERE section_id = '$section_id'");
+$fetch_content = $get_content->fetchRow();
+$content = $fetch_content['content'];
+eval($content);
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/view.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/delete.php
===================================================================
--- tags/2.7.0/wb/modules/code/delete.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/delete.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Delete record from the database
+$database->query("DELETE FROM ".TABLE_PREFIX."mod_code WHERE section_id = '$section_id'");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/delete.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/install.php
===================================================================
--- tags/2.7.0/wb/modules/code/install.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/install.php	(revision 838)
@@ -0,0 +1,64 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(defined('WB_URL')) {
+	
+	// Create table
+	$database->query("DROP TABLE IF EXISTS `".TABLE_PREFIX."mod_code`");
+	$mod_code = 'CREATE TABLE `'.TABLE_PREFIX.'mod_code` ('
+		. ' `section_id` INT NOT NULL DEFAULT \'0\','
+		. ' `page_id` INT NOT NULL DEFAULT \'0\','
+		. ' `content` TEXT NOT NULL,'
+		. ' PRIMARY KEY ( `section_id` )'
+		. ' )';
+	$database->query($mod_code);
+	
+	// Insert info into the search table
+	// Module query info
+	$field_info = array();
+	$field_info['page_id'] = 'page_id';
+	$field_info['title'] = 'page_title';
+	$field_info['link'] = 'link';
+	$field_info['description'] = 'description';
+	$field_info['modified_when'] = 'modified_when';
+	$field_info['modified_by'] = 'modified_by';
+	$field_info = serialize($field_info);
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('module', 'code', '$field_info')");
+	// Query start
+	$query_start_code = "SELECT [TP]pages.page_id, [TP]pages.page_title,	[TP]pages.link, [TP]pages.description, [TP]pages.modified_when, [TP]pages.modified_by	FROM [TP]mod_code, [TP]pages WHERE ";
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_start', '$query_start_code', 'code')");
+	// Query body
+	$query_body_code = " [TP]pages.page_id = [TP]mod_code.page_id AND [TP]mod_code.content [O] \'[W][STRING][W]\' AND [TP]pages.searching = \'1\'";	
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_body', '$query_body_code', 'code')");
+	// Query end
+	$query_end_code = "";	
+	$database->query("INSERT INTO ".TABLE_PREFIX."search (name,value,extra) VALUES ('query_end', '$query_end_code', 'code')");
+	
+	// Insert blank row (there needs to be at least on row for the search to work)
+	$database->query("INSERT INTO ".TABLE_PREFIX."mod_code (page_id,section_id) VALUES ('0','0')");
+	
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/install.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/index.php
===================================================================
--- tags/2.7.0/wb/modules/code/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/add.php
===================================================================
--- tags/2.7.0/wb/modules/code/add.php	(nonexistent)
+++ tags/2.7.0/wb/modules/code/add.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Insert an extra row into the database
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_code (page_id,section_id) VALUES ('$page_id','$section_id')");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/add.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/code/modify.html
===================================================================
--- tags/2.7.0/wb/modules/code/modify.html	(nonexistent)
+++ tags/2.7.0/wb/modules/code/modify.html	(revision 838)
@@ -0,0 +1,24 @@
+<!-- BEGIN main_block -->
+
+<form action="{WB_URL}/modules/code/save.php" method="post">
+
+<input type="hidden" name="page_id" value="{PAGE_ID}" />
+<input type="hidden" name="section_id" value="{SECTION_ID}" />
+
+<textarea id="content" name="content" style="WIDTH: 100%; HEIGHT: 380px">{CONTENT}</textarea>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+	<td align="left">
+		<input type="submit" value="{TEXT_SAVE}" style="width: 100px; margin-top: 5px;" />
+	</td>
+	<td align="right">
+		</form>
+		<input type="button" value="{TEXT_CANCEL}" onclick="javascript: window.location = 'index.php';" style="width: 100px; margin-top: 5px;" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<!-- END main_block -->
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/code/modify.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/admin.php
===================================================================
--- tags/2.7.0/wb/modules/admin.php	(nonexistent)
+++ tags/2.7.0/wb/modules/admin.php	(revision 838)
@@ -0,0 +1,169 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+/*
+
+Admin Wrapper Script
+
+This script allows modules to be written without the need to copy code
+from Website Baker Administration to take advantage of the interface.
+
+*/
+
+// Stop this file being access directly
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Get page id
+if(isset($_GET['page_id']) AND is_numeric($_GET['page_id'])) {
+	$page_id = $_GET['page_id'];
+} elseif(isset($_POST['page_id']) AND is_numeric($_POST['page_id'])) {
+	$page_id = $_POST['page_id'];
+} else {
+	header("Location: index.php");
+	exit(0);
+}
+
+// Get section id if there is one
+if(isset($_GET['section_id']) AND is_numeric($_GET['section_id'])) {
+	$section_id = $_GET['section_id'];
+} elseif(isset($_POST['section_id']) AND is_numeric($_POST['section_id'])) {
+	$section_id = $_POST['section_id'];
+} else {
+	// Check if we should redirect the user if there is no section id
+	if(!isset($section_required)) {
+		$section_id = 0;
+	} else {
+		header("Location: $section_required");
+		exit(0);
+	}
+}
+
+// Create js back link
+$js_back = 'javascript: history.go(-1);';
+
+// Create new admin object
+require(WB_PATH.'/framework/class.admin.php');
+$admin = new admin('Pages', 'pages_modify');
+
+// Get perms
+$database = new database();
+$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
+$results_array = $results->fetchRow();
+$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
+$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
+
+$in_group = FALSE;
+foreach($admin->get_groups_id() as $cur_gid){
+    if (in_array($cur_gid, $old_admin_groups)) {
+        $in_group = TRUE;
+    }
+}
+if((!$in_group) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+	echo $admin->get_group_id().$admin->get_user_id();
+	print_r ($old_admin_groups);
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
+
+// Workout if the developer wants to show the info banner
+if(isset($print_info_banner) AND $print_info_banner == true) {
+	
+// Get page details
+$database = new database();
+$query = "SELECT page_id,page_title,modified_by,modified_when FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
+$results = $database->query($query);
+if($database->is_error()) {
+	$admin->print_header();
+	$admin->print_error($database->get_error());
+}
+if($results->numRows() == 0) {
+	$admin->print_header();
+	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
+}
+$results_array = $results->fetchRow();
+
+// Get display name of person who last modified the page
+$user=$admin->get_user_details($results_array['modified_by']);
+
+// Convert the unix ts for modified_when to human a readable form
+if($results_array['modified_when'] != 0) {
+	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
+} else {
+	$modified_ts = 'Unknown';
+}
+
+// Include page info script
+$template = new Template(ADMIN_PATH.'/pages');
+$template->set_file('page', 'modify.html');
+$template->set_block('page', 'main_block', 'main');
+$template->set_var(array(
+								'PAGE_ID' => $results_array['page_id'],
+								'PAGE_TITLE' => ($results_array['page_title']),
+								'MODIFIED_BY' => $user['display_name'],
+								'MODIFIED_BY_USERNAME' => $user['username'],
+								'MODIFIED_WHEN' => $modified_ts,
+								'ADMIN_URL' => ADMIN_URL
+								)
+						);
+if($modified_ts == 'Unknown') {
+	$template->set_var('DISPLAY_MODIFIED', 'hide');
+} else {
+	$template->set_var('DISPLAY_MODIFIED', '');
+}
+
+// Work-out if we should show the "manage sections" link
+$query_sections = $database->query("SELECT section_id FROM ".TABLE_PREFIX."sections WHERE page_id = '$page_id' AND module = 'menu_link'");
+if($query_sections->numRows() > 0) {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+} elseif(MANAGE_SECTIONS == 'enabled') {
+	$template->set_var('TEXT_MANAGE_SECTIONS', $HEADING['MANAGE_SECTIONS']);
+} else {
+	$template->set_var('DISPLAY_MANAGE_SECTIONS', 'none');
+}
+
+// Insert language TEXT
+$template->set_var(array(
+								'TEXT_CURRENT_PAGE' => $TEXT['CURRENT_PAGE'],
+								'TEXT_CHANGE' => $TEXT['CHANGE'],
+								'LAST_MODIFIED' => $MESSAGE['PAGES']['LAST_MODIFIED'],
+								'TEXT_CHANGE_SETTINGS' => $TEXT['CHANGE_SETTINGS'],
+								'HEADING_MODIFY_PAGE' => $HEADING['MODIFY_PAGE']
+								)
+						);
+
+// Parse and print header template
+$template->parse('main', 'main_block', false);
+$template->pparse('output', 'page');
+
+}
+
+// Work-out if the developer wants us to update the timestamp for when the page was last modified
+if(isset($update_when_modified) AND $update_when_modified == true) {
+	$database->query("UPDATE ".TABLE_PREFIX."pages SET modified_when = '".mktime()."', modified_by = '".$admin->get_user_id()."' WHERE page_id = '$page_id'");
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/admin.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/modules/index.php
===================================================================
--- tags/2.7.0/wb/modules/index.php	(nonexistent)
+++ tags/2.7.0/wb/modules/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/modules/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/FI.php
===================================================================
--- tags/2.7.0/wb/languages/FI.php	(nonexistent)
+++ tags/2.7.0/wb/languages/FI.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'FI';
+$language_name = 'Suomi';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Pekka Koskela';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Alku';
+$MENU['PAGES'] = 'Sivut';
+$MENU['MEDIA'] = 'Tiedostot';
+$MENU['ADDONS'] = 'Lis&auml;osat';
+$MENU['MODULES'] = 'Moduulit';
+$MENU['TEMPLATES'] = 'Sivupohjat';
+$MENU['LANGUAGES'] = 'Kielet';
+$MENU['PREFERENCES'] = 'Omat tiedot';
+$MENU['SETTINGS'] = 'Asetukset';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'K&auml;ytt&auml;j&auml;t';
+$MENU['USERS'] = 'K&auml;ytt&auml;j&auml;t';
+$MENU['GROUPS'] = 'Ryhm&auml;';
+$MENU['HELP'] = 'Apu';
+$MENU['VIEW'] = 'Katsele';
+$MENU['LOGOUT'] = 'Kirjaudu ulos';
+$MENU['LOGIN'] = 'Kirjaudu';
+$MENU['FORGOT'] = 'Salasana unohtunut';
+
+// Section overviews
+$OVERVIEW['START'] = 'P&auml;&auml;k&auml;ytt&auml;j&auml;tila';
+$OVERVIEW['PAGES'] = 'Sivujen hallinta...';
+$OVERVIEW['MEDIA'] = 'Tiedostojen hallinta...';
+$OVERVIEW['MODULES'] = 'Moduulien hallinta...';
+$OVERVIEW['TEMPLATES'] = 'Muuta sivupohjaa...';
+$OVERVIEW['LANGUAGES'] = 'Muuta kieli...';
+$OVERVIEW['PREFERENCES'] = 'S&auml;hk&ouml;postiosoite, salsana... ';
+$OVERVIEW['SETTINGS'] = 'Website Bakerin asetukset...';
+$OVERVIEW['USERS'] = 'K&auml;ytt&auml;j&auml;hallinta...';
+$OVERVIEW['GROUPS'] = 'k&auml;ytt&auml;j&auml;ryhm&auml;t...';
+$OVERVIEW['HELP'] = 'Kysymykset, vastaukset...';
+$OVERVIEW['VIEW'] = 'Tarkastele sivuja...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Muokka/poista sivu';
+$HEADING['DELETED_PAGES'] = 'Poistetut sivut';
+$HEADING['ADD_PAGE'] = 'Lis&auml;&auml; sivu';
+$HEADING['ADD_HEADING'] = 'Lis&auml;&auml; otsikko';
+$HEADING['MODIFY_PAGE'] = 'Muokkaa sivua';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Muuta sivun asetuksia';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Muuta sivun lis&auml;asetuksia';
+$HEADING['MANAGE_SECTIONS'] = 'Muokkaa osia';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Muokkaa esisivua';
+
+$HEADING['BROWSE_MEDIA'] = 'Selaa tiedostoja';
+$HEADING['CREATE_FOLDER'] = 'Luo kansio';
+$HEADING['UPLOAD_FILES'] = 'Lataa palvelimelle';
+
+$HEADING['INSTALL_MODULE'] = 'Asenna moduuli';
+$HEADING['UNINSTALL_MODULE'] = 'Poista moduuli';
+$HEADING['MODULE_DETAILS'] = 'Moduulin tietoja';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Asenna sivupohja';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Poista sivupohja';
+$HEADING['TEMPLATE_DETAILS'] = 'Sivupohjan info';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Asenna kieli';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Poista kieli';
+$HEADING['LANGUAGE_DETAILS'] = 'Kielen tiedot';
+
+$HEADING['MY_SETTINGS'] = 'Omat tiedot';
+$HEADING['MY_EMAIL'] = 'S&auml;hk&ouml;postiosoite';
+$HEADING['MY_PASSWORD'] = 'Salasana';
+
+$HEADING['GENERAL_SETTINGS'] = 'Asetukset';
+$HEADING['DEFAULT_SETTINGS'] = 'Oletusasetukset';
+$HEADING['SEARCH_SETTINGS'] = 'Etsinn&auml;n asetukset';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Tiedostoj&auml;rjestelm&auml;';
+$HEADING['SERVER_SETTINGS'] = 'Palvelimen asetukset';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Ty&ouml;kalut';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Muokkaa/poista k&auml;ytt&auml;j&auml;';
+$HEADING['ADD_USER'] = 'Lis&auml;&auml; k&auml;ytt&auml;j&auml;';
+$HEADING['MODIFY_USER'] = 'Muokka k&auml;ytt&auml;j&auml;&auml;';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Muokkaa/poista ryhm&auml;';
+$HEADING['ADD_GROUP'] = 'Lis&auml;&auml; ryhm&auml;';
+$HEADING['MODIFY_GROUP'] = 'Muokkaa ryhm&auml;&auml;';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Lis&auml;&auml;';
+$TEXT['MODIFY'] = 'Muokkaa';
+$TEXT['SETTINGS'] = 'Asetukset';
+$TEXT['DELETE'] = 'Poista';
+$TEXT['SAVE'] = 'Talleta';
+$TEXT['RESET'] = 'Peruuta';
+$TEXT['LOGIN'] = 'Kirjaudu';
+$TEXT['RELOAD'] = 'Lataa uudelleen';
+$TEXT['CANCEL'] = 'Peruuta';
+$TEXT['NAME'] = 'Nimi';
+$TEXT['PLEASE_SELECT'] = 'Valitset';
+$TEXT['TITLE'] = 'Otsikko';
+$TEXT['PARENT'] = 'Is&auml;nt&auml;';
+$TEXT['TYPE'] = 'Tyyppi';
+$TEXT['VISIBILITY'] = 'N&auml;kyvyys';
+$TEXT['PRIVATE'] = 'Yksityinen';
+$TEXT['PUBLIC'] = 'Julkinen';
+$TEXT['NONE'] = 'Ei mik&auml;&auml;n';
+$TEXT['NONE_FOUND'] = 'Ei l&ouml;ytynyt';
+$TEXT['CURRENT'] = 'Nykyinen';
+$TEXT['CHANGE'] = 'Muuta';
+$TEXT['WINDOW'] = 'Ikkuna';
+$TEXT['DESCRIPTION'] = 'Kuvaus';
+$TEXT['KEYWORDS'] = 'Avainsanat';
+$TEXT['ADMINISTRATORS'] = 'P&auml;&auml;k&auml;ytt&auml;j&auml;t';
+$TEXT['PRIVATE_VIEWERS'] = 'Yksityiset';
+$TEXT['EXPAND'] = 'Laajenna';
+$TEXT['COLLAPSE'] = 'Kutista';
+$TEXT['MOVE_UP'] = 'Siirr&auml; yl&ouml;s';
+$TEXT['MOVE_DOWN'] = 'Aiirr&auml; alas';
+$TEXT['RENAME'] = 'Nime&auml; uudelleen';
+$TEXT['MODIFY_SETTINGS'] = 'Muuta asetuksia';
+$TEXT['MODIFY_CONTENT'] = 'Muokkaa sis&auml;lt&ouml;&auml;t';
+$TEXT['VIEW'] = 'Katsele';
+$TEXT['UP'] = 'Yl&ouml;s';
+$TEXT['FORGOTTEN_DETAILS'] = 'Salasa unohtunut?';
+$TEXT['NEED_TO_LOGIN'] = 'Kirjaudu?';
+$TEXT['SEND_DETAILS'] = 'L&auml;het&auml; tiedot';
+$TEXT['USERNAME'] = 'K&auml;ytt&auml;j&auml;nimi';
+$TEXT['PASSWORD'] = 'Salasana';
+$TEXT['HOME'] = 'Koti';
+$TEXT['TARGET_FOLDER'] = 'Kohdekansio';
+$TEXT['OVERWRITE_EXISTING'] = 'Korvaa';
+$TEXT['FILE'] = 'Tiedosto';
+$TEXT['FILES'] = 'Tiedostot';
+$TEXT['FOLDER'] = 'Kansio';
+$TEXT['FOLDERS'] = 'Kansiot';
+$TEXT['CREATE_FOLDER'] = 'Luo kansio';
+$TEXT['UPLOAD_FILES'] = 'Lataa palvelimelle';
+$TEXT['CURRENT_FOLDER'] = 'Nykyinen kansio';
+$TEXT['TO'] = 'Minne';
+$TEXT['FROM'] = 'Mist&auml;';
+$TEXT['INSTALL'] = 'Asenna';
+$TEXT['UNINSTALL'] = 'Poista';
+$TEXT['VIEW_DETAILS'] = 'N&auml;yt&auml; tiedot';
+$TEXT['DISPLAY_NAME'] = 'Nimi';
+$TEXT['AUTHOR'] = 'Luonut';
+$TEXT['VERSION'] = 'Versio';
+$TEXT['DESIGNED_FOR'] = 'Suunniteltu';
+$TEXT['DESCRIPTION'] = 'Kuvaus';
+$TEXT['EMAIL'] = 'S&auml;hk&ouml;posti';
+$TEXT['LANGUAGE'] = 'Kieli';
+$TEXT['TIMEZONE'] = 'Aikavy&ouml;hyke';
+$TEXT['CURRENT_PASSWORD'] = 'Vanha salasana';
+$TEXT['NEW_PASSWORD'] = 'Uusi salasana';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Kirjoita uudelleen';
+$TEXT['ACTIVE'] = 'K&auml;yt&ouml;ss&auml;';
+$TEXT['DISABLED'] = 'Poistettu k&auml;yt&ouml;st&auml;';
+$TEXT['ENABLED'] = 'Salli';
+$TEXT['RETYPE_PASSWORD'] = 'Kirjoita uudeleen';
+$TEXT['GROUP'] = 'Ryhm&auml;';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Oikeudet';
+$TEXT['MODULE_PERMISSIONS'] = 'Moduulien hallinta';
+$TEXT['SHOW_ADVANCED'] = 'N&auml;yt&auml; lis&auml;asetukset';
+$TEXT['HIDE_ADVANCED'] = 'Piilota lis&auml;asetukset';
+$TEXT['BASIC'] = 'Perus';
+$TEXT['ADVANCED'] = 'Lis&auml;asetukset';
+$TEXT['WEBSITE'] = 'www-sivu';
+$TEXT['DEFAULT'] = 'Nykyinen';
+$TEXT['KEYWORDS'] = 'Avainsanat';
+$TEXT['TEXT'] = 'Teksti';
+$TEXT['HEADER'] = 'Yl&auml;tunniste';
+$TEXT['FOOTER'] = 'Alatunniste';
+$TEXT['TEMPLATE'] = 'Sivupohja';
+$TEXT['INSTALLATION'] = 'Asentaminen';
+$TEXT['DATABASE'] = 'Tietokanta';
+$TEXT['HOST'] = 'Palvelin';
+$TEXT['INTRO'] = 'Esisivu';
+$TEXT['PAGE'] = 'Sivu';
+$TEXT['SIGNUP'] = 'Rekister&ouml;ityminen';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP:n virheraportointitapa';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Polku';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Johdanto';
+$TEXT['EXTENSION'] = 'Liite';
+$TEXT['TABLE_PREFIX'] = 'Taulukon ominaisuudet';
+$TEXT['CHANGES'] = 'Muutokset';
+$TEXT['ADMINISTRATION'] = 'Administration';
+$TEXT['FORGOT_DETAILS'] = 'Peruuta tiedot?';
+$TEXT['LOGGED_IN'] = 'Kirjautunut';
+$TEXT['WELCOME_BACK'] = 'N&auml;kemiin';
+$TEXT['FULL_NAME'] = 'Nimi';
+$TEXT['ACCOUNT_SIGNUP'] = 'Kirjaunut';
+$TEXT['LINK'] = 'Linkki';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Kohde';
+$TEXT['NEW_WINDOW'] = 'Uuteen ikkunaan';
+$TEXT['SAME_WINDOW'] = 'Nykyiseen ikkunaan';
+$TEXT['TOP_FRAME'] = 'Frameset sprengen';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Tasoja enint&auml;&auml;n';
+$TEXT['SUCCESS'] = 'Onnistui';
+$TEXT['ERROR'] = 'Virhe';
+$TEXT['ARE_YOU_SURE'] = 'Oletko varma?';
+$TEXT['YES'] = 'Kyll&auml;';
+$TEXT['NO'] = 'Ei';
+$TEXT['SYSTEM_DEFAULT'] = 'Oletus';
+$TEXT['PAGE_TITLE'] = 'Sivun otsikko';
+$TEXT['MENU_TITLE'] = 'Valikkoteksti';
+$TEXT['ACTIONS'] = 'Tila';
+$TEXT['UNKNOWN'] = 'Tuntematon';
+$TEXT['BLOCK'] = 'Tekstialue';
+$TEXT['SEARCH'] = 'Etsi';
+$TEXT['SEARCHING'] = 'Etsii..';
+$TEXT['POST'] = 'Liite';
+$TEXT['COMMENT'] = 'Kommentti';
+$TEXT['COMMENTS'] = 'Kommentit';
+$TEXT['COMMENTING'] = 'Kommentoi';
+$TEXT['SHORT'] = 'Lyhyesti';
+$TEXT['LONG'] = 'Lis&auml;&auml;';
+$TEXT['LOOP'] = 'Silmukka';
+$TEXT['FIELD'] = 'Kentt&auml;';
+$TEXT['REQUIRED'] = 'Pakollinen';
+$TEXT['LENGTH'] = 'Pituus';
+$TEXT['MESSAGE'] = 'Viesti';
+$TEXT['SUBJECT'] = 'Aihe';
+$TEXT['MATCH'] = 'Vastaavuus';
+$TEXT['ALL_WORDS'] = 'Joka sana';
+$TEXT['ANY_WORDS'] = 'Jokin sanoista';
+$TEXT['EXACT_MATCH'] = 'Tarkalleen';
+$TEXT['SHOW'] = 'N&auml;yt&auml;';
+$TEXT['HIDE'] = 'Piilota';
+$TEXT['START_PUBLISHING'] = 'Julkaise';
+$TEXT['FINISH_PUBLISHING'] = 'Lopeta julkaisu';
+$TEXT['DATE'] = 'P&auml;iv&auml;ys';
+$TEXT['START'] = 'Alku';
+$TEXT['END'] = 'Loppu';
+$TEXT['IMAGE'] = 'Kuva';
+$TEXT['ICON'] = 'Kuvake';
+$TEXT['SECTION'] = 'Osa';
+$TEXT['DATE_FORMAT'] = 'P&auml;iv&auml;yksen muoto';
+$TEXT['TIME_FORMAT'] = 'Ajan muoto ';
+$TEXT['RESULTS'] = 'Tulokset';
+$TEXT['RESIZE'] = 'Muuta kokoa';
+$TEXT['MANAGE'] = 'Hallinnoi';
+$TEXT['CODE'] = 'Koodi';
+$TEXT['WIDTH'] = 'Leveys';
+$TEXT['HEIGHT'] = 'Korkeus';
+$TEXT['MORE'] = 'Lis&auml;&auml;';
+$TEXT['READ_MORE'] = 'Lue lis&auml;&auml;..';
+$TEXT['CHANGE_SETTINGS'] = 'Muuta asetuksia';
+$TEXT['CURRENT_PAGE'] = 'Nykyinen sivu';
+$TEXT['CLOSE'] = 'Sulje';
+$TEXT['INTRO_PAGE'] = 'Esisivu';
+$TEXT['INSTALLATION_URL'] = 'Asennus URL';
+$TEXT['INSTALLATION_PATH'] = 'Asennuspolku';
+$TEXT['PAGE_EXTENSION'] = 'Sivun tarkennin';
+$TEXT['NO_RESULTS'] = 'Ei l&ouml;ytynyt';
+$TEXT['WEBSITE_TITLE'] = 'Sivuston otsikko';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Sivuston kuvaus';
+$TEXT['WEBSITE_KEYWORDS'] = 'Sivusaton avainsanat';
+$TEXT['WEBSITE_HEADER'] = 'Johdanto';
+$TEXT['WEBSITE_FOOTER'] = 'Alatunniste';
+$TEXT['RESULTS_HEADER'] = 'Tulokset';
+$TEXT['RESULTS_LOOP'] = 'Tulossilmukka';
+$TEXT['RESULTS_FOOTER'] = 'Alatuniste';
+$TEXT['LEVEL'] = 'Taso';
+$TEXT['NOT_FOUND'] = 'Ei l&ouml;ytynyt';
+$TEXT['PAGE_SPACER'] = 'Sivujen erotin ';
+$TEXT['MATCHING'] = 'Etsii';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Sivupohjat';
+$TEXT['PAGES_DIRECTORY'] = 'Sivukansio';
+$TEXT['MEDIA_DIRECTORY'] = 'Tiedostokansio';
+$TEXT['FILE_MODE'] = 'Tiedostomuoto';
+$TEXT['USER'] = 'K&auml;ytt&auml;j&auml;';
+$TEXT['OTHERS'] = 'Muut';
+$TEXT['READ'] = 'Lue';
+$TEXT['WRITE'] = 'Kirjoita';
+$TEXT['EXECUTE'] = 'Suorita';
+$TEXT['SMART_LOGIN'] = 'Kirjautuminen';
+$TEXT['REMEMBER_ME'] = 'Palauta ';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Tiedosto-oikeudet';
+$TEXT['DIRECTORIES'] = 'Kansiot';
+$TEXT['DIRECTORY_MODE'] = 'Kansion muoto';
+$TEXT['LIST_OPTIONS'] = 'Listan tyyppi';
+$TEXT['OPTION'] = 'Lis&auml;asteus';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Salli monivalinta';
+$TEXT['TEXTFIELD'] = 'Tekstikentt&auml;';
+$TEXT['TEXTAREA'] = 'Tekstialue';
+$TEXT['SELECT_BOX'] = 'Valinta';
+$TEXT['CHECKBOX_GROUP'] = 'Valintaryhm&auml;';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radiopainikkeet';
+$TEXT['SIZE'] = 'Koko';
+$TEXT['DEFAULT_TEXT'] = 'Oletusteksti';
+$TEXT['SEPERATOR'] = 'Erotin';
+$TEXT['BACK'] = 'Paluu';
+$TEXT['UNDER_CONSTRUCTION'] = 'Ty&ouml;n alla';
+$TEXT['MULTISELECT'] = 'Monivalinta';
+$TEXT['SHORT_TEXT'] = 'Lyhyesti';
+$TEXT['LONG_TEXT'] = 'Tarkemmin';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Kotisivun uudelleen ohjaus';
+$TEXT['HEADING'] = 'Otsikko';
+$TEXT['MULTIPLE_MENUS'] = 'Monivalikko';
+$TEXT['REGISTERED'] = 'Rekister&ouml;itynyt';
+$TEXT['SECTION_BLOCKS'] = 'Osa';
+$TEXT['REGISTERED_VIEWERS'] = 'Rekister&ouml;ity';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Alasivun ID';
+$TEXT['SUBMISSIONS'] = 'Alasivu';
+$TEXT['SUBMITTED'] = 'Siirretty alisivuksi';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Salasana l&auml;hetet&auml;&auml;n vain kerran tunnissa';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Salasana talletettu tietokantaan';
+$TEXT['EMAIL_ADDRESS'] = 'S&auml;hk&ouml;postiosoite';
+$TEXT['CUSTOM'] = 'Asiakas';
+$TEXT['ANONYMOUS'] = 'Anonyymi';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Palvelimen k&auml;ytt&ouml;j&auml;rjestelm&auml;';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Kirjoitusoikeudet';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Kotikansio';
+$TEXT['HOME_FOLDERS'] = 'Kotikansiot';
+$TEXT['PAGE_TRASH'] = 'Roskakori';
+$TEXT['INLINE'] = 'Per&auml;kk&auml;in';
+$TEXT['SEPARATE'] = 'Erill&auml;&auml;n';
+$TEXT['DELETED'] = 'Poistettu';
+$TEXT['VIEW_DELETED_PAGES'] = 'N&auml;yt&auml; poistetut';
+$TEXT['EMPTY_TRASH'] = 'Tyhjenn&auml; roskakori';
+$TEXT['TRASH_EMPTIED'] = 'Tyhjennetty';
+$TEXT['ADD_SECTION'] = 'Asenna osa';
+$TEXT['POST_HEADER'] = 'Alaotsikko';
+$TEXT['POST_FOOTER'] = 'Lis&auml;alaviite';
+$TEXT['POSTS_PER_PAGE'] = 'Osaa sivulla';
+$TEXT['RESIZE_IMAGE_TO'] = 'Muuta kuvan koko';
+$TEXT['UNLIMITED'] = 'Rajaton';
+$TEXT['OF'] = 'Of';
+$TEXT['OUT_OF'] = 'Out Of';
+$TEXT['NEXT'] = 'Seuraava';
+$TEXT['PREVIOUS'] = 'Edellinen';
+$TEXT['NEXT_PAGE'] = 'Seuraava sivu';
+$TEXT['PREVIOUS_PAGE'] = 'Edellinen sivu';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = 'P&auml;ivitetty';
+$TEXT['RESULTS_FOR'] = 'Tulokset';
+$TEXT['TIME'] = 'Aika';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG tyyli';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG muokkain';
+$TEXT['SERVER_EMAIL'] = 'Palvelimen s&auml;hk&ouml;posti';
+$TEXT['MENU'] = 'Valikko';
+$TEXT['MANAGE_GROUPS'] = 'Ryhmien hallinta';
+$TEXT['MANAGE_USERS'] = 'K&auml;ytt&auml;j&auml;hallinta';
+$TEXT['PAGE_LANGUAGES'] = 'Sivun kieli';
+$TEXT['HIDDEN'] = 'Piilotettu';
+$TEXT['MAIN'] = 'P&auml;&auml;';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Nime&auml; ladatut';
+$TEXT['APP_NAME'] = 'Sovelluksen nimi';
+$TEXT['SESSION_IDENTIFIER'] = 'Tunniste';
+$TEXT['BACKUP'] = 'Varmuuskopioi';
+$TEXT['RESTORE'] = 'Palauta';
+$TEXT['BACKUP_DATABASE'] = 'Varmista tietokanta';
+$TEXT['RESTORE_DATABASE'] = 'Palauta tietokanta';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Varmista...';
+$TEXT['RESTORE_MEDIA'] = 'Palauta...';
+$TEXT['ADMINISTRATION_TOOL'] = 'Ty&ouml;kalu';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha varmistus';
+$TEXT['VERIFICATION'] = 'Varmistus';
+$TEXT['DEFAULT_CHARSET'] = 'Oletusmerkrkist&ouml;';
+$TEXT['CHARSET'] = 'Merkist&ouml;';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Oikeutesi eiv&auml;t riit&auml;...';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Oikeutesi eiv&auml;t riit&auml;...';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Kirjoita k&auml;ytt&auml;j&auml;tunnus ja salasana';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'K&auml;ytt&auml;j&auml;tunnus!';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Salasana';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Tunnus liian lyhyt';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Salasana liian lyhyt';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Lian pitk&auml; tunnus';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Liian pitk&auml; salasana';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'K&auml;ytt&auml;j&auml;tunnus/salsana v&auml;&auml;r&auml;';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Anna s&auml;hk&ouml;postiosoite';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Anna s&auml;hk&ouml;postiosoite';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Virheellinen s&auml;hk&ouml;postiosoite';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Salasanan postitus ei onnistu, ota yhteytt&auml; p&auml;&auml;k&auml;ytt&auml;j&auml;&auml;n';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Salasana ja k&auml;ytt&auml;j&auml;tunnus postitettu';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Salasanan vaiho vain kerran tunnissa!';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Tervetuloa sivuston hallintaan';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Poista asennuskansio!';
+$MESSAGE['START']['CURRENT_USER'] = 'Olet kirjautunut nimell&auml;:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Konfigurointitiedostoa ei voi vavata';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Konfiguraation kirjoitus ei onnistu';
+$MESSAGE['SETTINGS']['SAVED'] = 'Asetusten talletus onnitui';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Klikattaessa h&auml;vi&auml;v&auml;t kaikki tallettamattomat muutokset';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Susitellaan ainoastaan testitarkoituksiin';
+
+$MESSAGE['USERS']['ADDED'] = 'Lis&auml;tty';
+$MESSAGE['USERS']['SAVED'] = 'Talletettu';
+$MESSAGE['USERS']['DELETED'] = 'Poistettu';
+$MESSAGE['USERS']['NO_GROUP'] = 'Valitse ryhm&auml;!';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'K&auml;ytt&auml;j&auml;tunnus liian lyhyt';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Salasana liian lyhyt';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Salasanat eiv&auml;t t&auml;sm&auml;&auml;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Virheellinen s&auml;hk&ouml;postiosoite';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'S&auml;hk&ouml;postiosoite k&auml;yt&ouml;ss&auml;!';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'K&auml;ytt&auml;j&auml;tynnus varattu, valitse uusi';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Jos haluat vaihtaa salasanan, t&auml;yt&auml; vain ko kent&auml;t';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Haluatko poistaa k&auml;ytt&auml;j&auml;n?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Ryhm&auml;n lis&auml;ys onnistui';
+$MESSAGE['GROUPS']['SAVED'] = 'Rym&auml; talletettu';
+$MESSAGE['GROUPS']['DELETED'] = 'Ryhm&auml; poistettu';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Ryhm&auml;n nimi puuttuu';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Haluatko poistaa ryhm&auml;n ja kakki sen k&auml;ytt&auml;j&auml;t?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Ryhm&auml;&auml; ei l&ouml;ydy';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Ryhm&auml;n nimi varattu';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Tiedot tallennettu';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'S&auml;hp&ouml;stiosoite p&auml;ivitetty';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Nykyinen salasana v&auml;&auml;r&auml;';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Salasanan vaiho onnistui';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Sivupohjan voi vaihtaa asetukset-kohdasta';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Merkki ../ ei kelpaa ';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Kansion nimi varattu';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Merkki&auml; ../ ei voi k&auml;ytt&auml;&auml; ';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Merkki&auml; ../ ei voi k&auml;ytt&auml;&auml;';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Nimi index.php ei kelpaa';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Tiedostokansio tyhj&auml;';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Tiedostoa ei l&ouml;ydy';
+$MESSAGE['MEDIA']['DELETED_FILE'] = ' Tiedosto pistettu';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Kansio poistettu';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Halutko poistaa tiedoston/kansion?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Tiedostoa ei voi poistaa';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Kansion poistamienen ei onnistu';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Et antanut nime&auml;';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Et kirjoittanut tiedoston tarkennetta';
+$MESSAGE['MEDIA']['RENAMED'] = 'Udelleen nimetty';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Ei voinut uudelleen nimet&auml;';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Saman niminen tiedosto olemassa';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Saman niminen kansio olemassa';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Kansio luotu';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Kansiota ei voi luoda';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' tiedosto ladattu';
+$MESSAGE['MEDIA']['UPLOADED'] = ' tiedostot ladattu';
+
+$MESSAGE['PAGES']['ADDED'] = 'Sivu lis&auml;tty';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Otsikko lis&auml;tty';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Otsikko k&auml;yt&ouml;ss&auml;';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'K&auml;ytt&ouml;oiketesi eiv&auml;t riit&auml;';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Oikeutesi eiv&auml;t riit&auml;';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Sivua ei l&ouml;ydy';
+$MESSAGE['PAGES']['SAVED'] = 'Sivu telletettu';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Sivun asetukset tallennettu';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Tannennusvirhe!';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Poistetaanko sivu ja sen alisivut?';
+$MESSAGE['PAGES']['DELETED'] = 'Sivu poistettu';
+$MESSAGE['PAGES']['RESTORED'] = 'Sivusto tallennettu';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Kirjoita sivun nimi';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Kirjoita valikkon tule teksti';
+$MESSAGE['PAGES']['REORDERED'] = 'Sivut j&auml;rjestelty uudelleen';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Sivujen j&auml;rjestely ei onnistu';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Oikeutesi eiv&auml;t riit&auml;';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Ei voi kirjoittaa /pages/intro.php (oikeutesi eiv&auml;t riit&auml;)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Esisivu tallennettu';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'P&auml;ivitt&auml;nyt';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Muuta esisivua';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Asetukset tallennettu';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Palaa sivuille...';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Palaa ja t&auml;yt&auml; kaikki kent&auml;t';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Tiedostotyypin tulee olla jokin seuraavista:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Tiedostotyypin tulee olla jjokin seuraavista:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Lataus ei onnistu';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Asennettu, uudelleen asennus ei onnistu';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Ei ole asennettu';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Ei voi poistaa';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Zip-tiedostoa ei voi purkaa';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Asennettu';
+$MESSAGE['GENERIC']['UPGRADED'] = 'P&auml;ivitetty';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Poistettu';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kohdekansioon ei voi kirjoittaa';
+$MESSAGE['GENERIC']['INVALID'] = 'Ladatussa tiedostossa virhe';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Tiedosto k&auml;yt&ouml;ss&auml;, tiedostoa ei voi poistaa';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Tervetuluoa my&ouml;hemmin...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Hetkinen...';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Virhe tiedostoa avattaessa.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'T&auml;yt&auml; kent&auml;t';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Rajoitus voimassa, yrit&auml; tunnin kuluttua uudelleen';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Tarkistusluku (Captcha) virheellinen ';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Valitse uudelleen ladattavat...';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduulin lataus onnistui';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Sivupohjan lataus onnistui';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Kielen lataus onnistui';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/FI.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/EN.php
===================================================================
--- tags/2.7.0/wb/languages/EN.php	(nonexistent)
+++ tags/2.7.0/wb/languages/EN.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'EN';
+$language_name = 'English';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Ryan Djurovich, Christian Sommer';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Start';
+$MENU['PAGES'] = 'Pages';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Add-ons';
+$MENU['MODULES'] = 'Modules';
+$MENU['TEMPLATES'] = 'Templates';
+$MENU['LANGUAGES'] = 'Languages';
+$MENU['PREFERENCES'] = 'Preferences';
+$MENU['SETTINGS'] = 'Settings';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Access';
+$MENU['USERS'] = 'Users';
+$MENU['GROUPS'] = 'Groups';
+$MENU['HELP'] = 'Help';
+$MENU['VIEW'] = 'View';
+$MENU['LOGOUT'] = 'Log-out';
+$MENU['LOGIN'] = 'Login';
+$MENU['FORGOT'] = 'Retrieve Login Details';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administration overview';
+$OVERVIEW['PAGES'] = 'Manage your websites pages...';
+$OVERVIEW['MEDIA'] = 'Manage files stored in the media folder...';
+$OVERVIEW['MODULES'] = 'Manage Website Baker modules...';
+$OVERVIEW['TEMPLATES'] = 'Change the look and feel of your website with templates...';
+$OVERVIEW['LANGUAGES'] = 'Manage Website Baker languages...';
+$OVERVIEW['PREFERENCES'] = 'Change preferences such as email address, password, etc... ';
+$OVERVIEW['SETTINGS'] = 'Changes settings for Website Baker...';
+$OVERVIEW['USERS'] = 'Manage users who can log-in to Website Baker...';
+$OVERVIEW['GROUPS'] = 'Manage user groups and their system permissions...';
+$OVERVIEW['HELP'] = 'Got a questions? Find your answer...';
+$OVERVIEW['VIEW'] = 'Quickly view and browse your website in a new window...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modify/Delete Page';
+$HEADING['DELETED_PAGES'] = 'Deleted Pages';
+$HEADING['ADD_PAGE'] = 'Add Page';
+$HEADING['ADD_HEADING'] = 'Add Heading';
+$HEADING['MODIFY_PAGE'] = 'Modify Page';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modify Page Settings';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modify Advanced Page Settings';
+$HEADING['MANAGE_SECTIONS'] = 'Manage Sections';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modify Intro Page';
+
+$HEADING['BROWSE_MEDIA'] = 'Browse Media';
+$HEADING['CREATE_FOLDER'] = 'Create Folder';
+$HEADING['UPLOAD_FILES'] = 'Upload File(s)';
+
+$HEADING['INSTALL_MODULE'] = 'Install Module';
+$HEADING['UNINSTALL_MODULE'] = 'Uninstall Module';
+$HEADING['MODULE_DETAILS'] = 'Module Details';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Install Template';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Uninstall Template';
+$HEADING['TEMPLATE_DETAILS'] = 'Template Details';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Install Language';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Uninstall Language';
+$HEADING['LANGUAGE_DETAILS'] = 'Language Details';
+
+$HEADING['MY_SETTINGS'] = 'My Settings';
+$HEADING['MY_EMAIL'] = 'My Email';
+$HEADING['MY_PASSWORD'] = 'My Password';
+
+$HEADING['GENERAL_SETTINGS'] = 'General Settings';
+$HEADING['DEFAULT_SETTINGS'] = 'Default Settings';
+$HEADING['SEARCH_SETTINGS'] = 'Search Settings';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Filesystem Settings';
+$HEADING['SERVER_SETTINGS'] = 'Server Settings';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administration Tools';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modify/Delete User';
+$HEADING['ADD_USER'] = 'Add User';
+$HEADING['MODIFY_USER'] = 'Modify User';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modify/Delete Group';
+$HEADING['ADD_GROUP'] = 'Add Group';
+$HEADING['MODIFY_GROUP'] = 'Modify Group';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Add';
+$TEXT['MODIFY'] = 'Modify';
+$TEXT['SETTINGS'] = 'Settings';
+$TEXT['DELETE'] = 'Delete';
+$TEXT['SAVE'] = 'Save';
+$TEXT['RESET'] = 'Reset';
+$TEXT['LOGIN'] = 'Login';
+$TEXT['RELOAD'] = 'Reload';
+$TEXT['CANCEL'] = 'Cancel';
+$TEXT['NAME'] = 'Name';
+$TEXT['PLEASE_SELECT'] = 'Please select';
+$TEXT['TITLE'] = 'Title';
+$TEXT['PARENT'] = 'Parent';
+$TEXT['TYPE'] = 'Type';
+$TEXT['VISIBILITY'] = 'Visibility';
+$TEXT['PRIVATE'] = 'Private';
+$TEXT['PUBLIC'] = 'Public';
+$TEXT['NONE'] = 'None';
+$TEXT['NONE_FOUND'] = 'None Found';
+$TEXT['CURRENT'] = 'Current';
+$TEXT['CHANGE'] = 'Change';
+$TEXT['WINDOW'] = 'Window';
+$TEXT['DESCRIPTION'] = 'Description';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['ADMINISTRATORS'] = 'Administrators';
+$TEXT['PRIVATE_VIEWERS'] = 'Private Viewers';
+$TEXT['EXPAND'] = 'Expand';
+$TEXT['COLLAPSE'] = 'Collapse';
+$TEXT['MOVE_UP'] = 'Move Up';
+$TEXT['MOVE_DOWN'] = 'Move Down';
+$TEXT['RENAME'] = 'Rename';
+$TEXT['MODIFY_SETTINGS'] = 'Modify Settings';
+$TEXT['MODIFY_CONTENT'] = 'Modify Content';
+$TEXT['VIEW'] = 'View';
+$TEXT['UP'] = 'Up';
+$TEXT['FORGOTTEN_DETAILS'] = 'Forgotten your details?';
+$TEXT['NEED_TO_LOGIN'] = 'Need to log-in?';
+$TEXT['SEND_DETAILS'] = 'Send Details';
+$TEXT['USERNAME'] = 'Username';
+$TEXT['PASSWORD'] = 'Password';
+$TEXT['HOME'] = 'Home';
+$TEXT['TARGET_FOLDER'] = 'Target folder';
+$TEXT['OVERWRITE_EXISTING'] = 'Overwrite existing';
+$TEXT['FILE'] = 'File';
+$TEXT['FILES'] = 'Files';
+$TEXT['FOLDER'] = 'Folder';
+$TEXT['FOLDERS'] = 'Folders';
+$TEXT['CREATE_FOLDER'] = 'Create Folder';
+$TEXT['UPLOAD_FILES'] = 'Upload File(s)';
+$TEXT['CURRENT_FOLDER'] = 'Current Folder';
+$TEXT['TO'] = 'To';
+$TEXT['FROM'] = 'From';
+$TEXT['INSTALL'] = 'Install';
+$TEXT['UNINSTALL'] = 'Uninstall';
+$TEXT['VIEW_DETAILS'] = 'View Details';
+$TEXT['DISPLAY_NAME'] = 'Display Name';
+$TEXT['AUTHOR'] = 'Author';
+$TEXT['VERSION'] = 'Version';
+$TEXT['DESIGNED_FOR'] = 'Designed For';
+$TEXT['DESCRIPTION'] = 'Description';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Language';
+$TEXT['TIMEZONE'] = 'Timezone';
+$TEXT['CURRENT_PASSWORD'] = 'Current Password';
+$TEXT['NEW_PASSWORD'] = 'New Password';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Re-type New Password';
+$TEXT['ACTIVE'] = 'Active';
+$TEXT['DISABLED'] = 'Disabled';
+$TEXT['ENABLED'] = 'Enabled';
+$TEXT['RETYPE_PASSWORD'] = 'Re-type Password';
+$TEXT['GROUP'] = 'Group';
+$TEXT['SYSTEM_PERMISSIONS'] = 'System Permissions';
+$TEXT['MODULE_PERMISSIONS'] = 'Module Permissions';
+$TEXT['SHOW_ADVANCED'] = 'Show Advanced Options';
+$TEXT['HIDE_ADVANCED'] = 'Hide Advanced Options';
+$TEXT['BASIC'] = 'Basic';
+$TEXT['ADVANCED'] = 'Advanced';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Default';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['TEXT'] = 'Text';
+$TEXT['HEADER'] = 'Header';
+$TEXT['FOOTER'] = 'Footer';
+$TEXT['TEMPLATE'] = 'Template';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Page';
+$TEXT['SIGNUP'] = 'Sign-up';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Error Reporting Level';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Path';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Extension';
+$TEXT['TABLE_PREFIX'] = 'Table Prefix';
+$TEXT['CHANGES'] = 'Changes';
+$TEXT['ADMINISTRATION'] = 'Administration';
+$TEXT['FORGOT_DETAILS'] = 'Forgot Details?';
+$TEXT['LOGGED_IN'] = 'Logged-In';
+$TEXT['WELCOME_BACK'] = 'Welcome back';
+$TEXT['FULL_NAME'] = 'Full Name';
+$TEXT['ACCOUNT_SIGNUP'] = 'Account Sign-Up';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Target';
+$TEXT['NEW_WINDOW'] = 'New Window';
+$TEXT['SAME_WINDOW'] = 'Same Window';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Page Level Limit';
+$TEXT['SUCCESS'] = 'Success';
+$TEXT['ERROR'] = 'Error';
+$TEXT['ARE_YOU_SURE'] = 'Are you sure?';
+$TEXT['YES'] = 'Yes';
+$TEXT['NO'] = 'No';
+$TEXT['SYSTEM_DEFAULT'] = 'System Default';
+$TEXT['PAGE_TITLE'] = 'Page Title';
+$TEXT['MENU_TITLE'] = 'Menu Title';
+$TEXT['ACTIONS'] = 'Actions';
+$TEXT['UNKNOWN'] = 'Unknown';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'Search';
+$TEXT['SEARCHING'] = 'Searching';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Comment';
+$TEXT['COMMENTS'] = 'Comments';
+$TEXT['COMMENTING'] = 'Commenting';
+$TEXT['SHORT'] = 'Short';
+$TEXT['LONG'] = 'Long';
+$TEXT['LOOP'] = 'Loop';
+$TEXT['FIELD'] = 'Field';
+$TEXT['REQUIRED'] = 'Required';
+$TEXT['LENGTH'] = 'Length';
+$TEXT['MESSAGE'] = 'Message';
+$TEXT['SUBJECT'] = 'Subject';
+$TEXT['MATCH'] = 'Match';
+$TEXT['ALL_WORDS'] = 'All Words';
+$TEXT['ANY_WORDS'] = 'Any Words';
+$TEXT['EXACT_MATCH'] = 'Exact Match';
+$TEXT['SHOW'] = 'Show';
+$TEXT['HIDE'] = 'Hide';
+$TEXT['START_PUBLISHING'] = 'Start Publishing';
+$TEXT['FINISH_PUBLISHING'] = 'Finish Publishing';
+$TEXT['DATE'] = 'Date';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'End';
+$TEXT['IMAGE'] = 'Image';
+$TEXT['ICON'] = 'Icon';
+$TEXT['SECTION'] = 'Section';
+$TEXT['DATE_FORMAT'] = 'Date Format';
+$TEXT['TIME_FORMAT'] = 'Time Format';
+$TEXT['RESULTS'] = 'Results';
+$TEXT['RESIZE'] = 'Re-size';
+$TEXT['MANAGE'] = 'Manage';
+$TEXT['CODE'] = 'Code';
+$TEXT['WIDTH'] = 'Width';
+$TEXT['HEIGHT'] = 'Height';
+$TEXT['MORE'] = 'More';
+$TEXT['READ_MORE'] = 'Read More';
+$TEXT['CHANGE_SETTINGS'] = 'Change Settings';
+$TEXT['CURRENT_PAGE'] = 'Current Page';
+$TEXT['CLOSE'] = 'Close';
+$TEXT['INTRO_PAGE'] = 'Intro Page';
+$TEXT['INSTALLATION_URL'] = 'Installation URL';
+$TEXT['INSTALLATION_PATH'] = 'Installation Path';
+$TEXT['PAGE_EXTENSION'] = 'Page Extension';
+$TEXT['NO_RESULTS'] = 'No Results';
+$TEXT['WEBSITE_TITLE'] = 'Website Title';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Website Description';
+$TEXT['WEBSITE_KEYWORDS'] = 'Website Keywords';
+$TEXT['WEBSITE_HEADER'] = 'Website Header';
+$TEXT['WEBSITE_FOOTER'] = 'Website Footer';
+$TEXT['RESULTS_HEADER'] = 'Results Header';
+$TEXT['RESULTS_LOOP'] = 'Results Loop';
+$TEXT['RESULTS_FOOTER'] = 'Results Footer';
+$TEXT['LEVEL'] = 'Level';
+$TEXT['NOT_FOUND'] = 'Not Found';
+$TEXT['PAGE_SPACER'] = 'Page Spacer';
+$TEXT['MATCHING'] = 'Matching';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Template Permissions';
+$TEXT['PAGES_DIRECTORY'] = 'Pages Directory';
+$TEXT['MEDIA_DIRECTORY'] = 'Media Directory';
+$TEXT['FILE_MODE'] = 'File Mode';
+$TEXT['USER'] = 'User';
+$TEXT['OTHERS'] = 'Others';
+$TEXT['READ'] = 'Read';
+$TEXT['WRITE'] = 'Write';
+$TEXT['EXECUTE'] = 'Execute';
+$TEXT['SMART_LOGIN'] = 'Smart Login';
+$TEXT['REMEMBER_ME'] = 'Remember Me';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Filesystem Permissions';
+$TEXT['DIRECTORIES'] = 'Directories';
+$TEXT['DIRECTORY_MODE'] = 'Directory Mode';
+$TEXT['LIST_OPTIONS'] = 'List Options';
+$TEXT['OPTION'] = 'Option';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Allow Multiple Selections';
+$TEXT['TEXTFIELD'] = 'Textfield';
+$TEXT['TEXTAREA'] = 'Textarea';
+$TEXT['SELECT_BOX'] = 'Select Box';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox Group';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Button Group';
+$TEXT['SIZE'] = 'Size';
+$TEXT['DEFAULT_TEXT'] = 'Default Text';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Back';
+$TEXT['UNDER_CONSTRUCTION'] = 'Under Construction';
+$TEXT['MULTISELECT'] = 'Multi-select';
+$TEXT['SHORT_TEXT'] = 'Short Text';
+$TEXT['LONG_TEXT'] = 'Long Text';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Homepage Redirection';
+$TEXT['HEADING'] = 'Heading';
+$TEXT['MULTIPLE_MENUS'] = 'Multiple Menus';
+$TEXT['REGISTERED'] = 'Registered';
+$TEXT['SECTION_BLOCKS'] = 'Section Blocks';
+$TEXT['REGISTERED_VIEWERS'] = 'Registered Viewers';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Submission ID';
+$TEXT['SUBMISSIONS'] = 'Submissions';
+$TEXT['SUBMITTED'] = 'Submitted';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Submissions Per Hour';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Submissions Stored In Database';
+$TEXT['EMAIL_ADDRESS'] = 'Email Address';
+$TEXT['CUSTOM'] = 'Custom';
+$TEXT['ANONYMOUS'] = 'Anonymous';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server Operating System';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-writeable file permissions';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix based';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home Folder';
+$TEXT['HOME_FOLDERS'] = 'Home Folders';
+$TEXT['PAGE_TRASH'] = 'Page Trash';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Separate';
+$TEXT['DELETED'] = 'Deleted';
+$TEXT['VIEW_DELETED_PAGES'] = 'View Deleted Pages';
+$TEXT['EMPTY_TRASH'] = 'Empty Trash';
+$TEXT['TRASH_EMPTIED'] = 'Trash Emptied';
+$TEXT['ADD_SECTION'] = 'Add Section';
+$TEXT['POST_HEADER'] = 'Post Header';
+$TEXT['POST_FOOTER'] = 'Post Footer';
+$TEXT['POSTS_PER_PAGE'] = 'Posts Per Page';
+$TEXT['RESIZE_IMAGE_TO'] = 'Resize Image To';
+$TEXT['UNLIMITED'] = 'Unlimited';
+$TEXT['OF'] = 'Of';
+$TEXT['OUT_OF'] = 'Out Of';
+$TEXT['NEXT'] = 'Next';
+$TEXT['PREVIOUS'] = 'Previous';
+$TEXT['NEXT_PAGE'] = 'Next Page';
+$TEXT['PREVIOUS_PAGE'] = 'Previous Page';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = 'Last Updated By';
+$TEXT['RESULTS_FOR'] = 'Results For';
+$TEXT['TIME'] = 'Time';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server Email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Manage Groups';
+$TEXT['MANAGE_USERS'] = 'Manage Users';
+$TEXT['PAGE_LANGUAGES'] = 'Page Languages';
+$TEXT['HIDDEN'] = 'Hidden';
+$TEXT['MAIN'] = 'Main';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Rename Files On Upload';
+$TEXT['APP_NAME'] = 'Application Name';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restore';
+$TEXT['BACKUP_DATABASE'] = 'Backup Database';
+$TEXT['RESTORE_DATABASE'] = 'Restore Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Restore Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administration tool';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Verification';
+$TEXT['VERIFICATION'] = 'Verification';
+$TEXT['DEFAULT_CHARSET'] = 'Default Charset';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calendar';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Sorry, you do not have permissions to view this page';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Insufficient privelliges to be here';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Please enter your username and password below';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Please enter a username';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Please enter a password';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Supplied username to short';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Supplied password to short';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Supplied username to long';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Supplied password to long';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Username or password incorrect';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'You must enter an email address';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Please enter your email address below';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'The email that you entered cannot be found in the database';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Unable to email password, please contact system administrator';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Your username and password have been sent to your email address';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Password cannot be reset more than once per hour, sorry';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Welcome to Website Baker Administration';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Warning, Installation Directory Still Exists!';
+$MESSAGE['START']['CURRENT_USER'] = 'You are currently logged in as:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Unable to open the configuration file';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Cannot write to configuration file';
+$MESSAGE['SETTINGS']['SAVED'] = 'Settings saved successfully';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Please Note: Pressing this button resets all unsaved changes';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Please note: this is only recommended for testing environments';
+
+$MESSAGE['USERS']['ADDED'] = 'User added successfully';
+$MESSAGE['USERS']['SAVED'] = 'User saved successfully';
+$MESSAGE['USERS']['DELETED'] = 'User deleted successfully';
+$MESSAGE['USERS']['NO_GROUP'] = 'No group was selected';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'The username you entered was too short';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'The password you entered was too short';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'The passwords you entered do not match';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'The email address you entered is invalid';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'The email you entered is already in use';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'The username you entered is already taken';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Please note: You should only enter values in the above fields if you wish to change this users password';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Are you sure you want to delete the selected user?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Group added successfully';
+$MESSAGE['GROUPS']['SAVED'] = 'Group saved successfully';
+$MESSAGE['GROUPS']['DELETED'] = 'Group deleted successfully';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Group name is blank';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Are you sure you want to delete the selected group (and any users that belong to it)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'No groups found';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Group name already exists';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Details saved successfully';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email updated successfully';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'The (current) password you entered is incorrect';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Password changed successfully';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Please note: to change the template you must go to the Settings section';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Cannot include ../ in the folder name';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Directory does not exist';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Cannot have ../ in the folder target';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Cannot include ../ in the name';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Cannot use index.php as the name';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'No media found in the current folder';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'File not found';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'File deleted successfully';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Folder deleted successfully';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Are you sure you want to delete the following file or folder?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Cannot delete the selected file';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Cannot delete the selected folder';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'You did not enter a new name';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'You did not enter a file extension';
+$MESSAGE['MEDIA']['RENAMED'] = 'Rename successful';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Rename unsuccessful';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'A file matching the name you entered already exists';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'A folder matching the name you entered already exists';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Folder created successfully';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Unable to create folder';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' file was successfully uploaded';
+$MESSAGE['MEDIA']['UPLOADED'] = ' files were successfully uploaded';
+
+$MESSAGE['PAGES']['ADDED'] = 'Page added successfully';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Page heading added successfully';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'A page with the same or similar title exists';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Error creating access file in the /pages directory (insufficient privileges)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Error deleting access file in the /pages directory (insufficient privileges)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Page not found';
+$MESSAGE['PAGES']['SAVED'] = 'Page saved successfully';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Page settings saved successfully';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Error saving page';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Are you sure you want to delete the selected page (and all of its sub-pages)';
+$MESSAGE['PAGES']['DELETED'] = 'Page deleted successfully';
+$MESSAGE['PAGES']['RESTORED'] = 'Page restored successfully';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Please enter a page title';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Please enter a menu title';
+$MESSAGE['PAGES']['REORDERED'] = 'Page re-ordered successfully';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Error re-ordering page';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'You do not have permissions to modify this page';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Cannot write to file /pages/intro.php (insufficient privileges)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Intro page saved successfully';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Last modification by';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Click HERE to modify the intro page';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Section properties saved successfully';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Return to pages';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Please go back and fill-in all fields';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Please note that the file you upload must be of the following format:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Please note that the file you upload must be in one of the following formats:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Cannot upload file';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Already installed';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Not installed';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Cannot uninstall';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Cannot unzip file';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installed successfully';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgraded successfully';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Uninstalled successfully';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Unable to write to the target directory';
+$MESSAGE['GENERIC']['INVALID'] = 'The file you uploaded is invalid';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Cannot Uninstall: the selected file is in use';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Please check back soon...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Please be patient, this might take a while.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Error opening file.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'You must enter details for the following fields';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Sorry, this form has been submitted too many times so far this hour. Please retry in the next hour.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'The verification number (also known as Captcha) that you entered is incorrect. If you are having problems reading the Captcha, please email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/EN.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/CS.php
===================================================================
--- tags/2.7.0/wb/languages/CS.php	(nonexistent)
+++ tags/2.7.0/wb/languages/CS.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'CS';
+$language_name = '&#268;e&scaron;tina';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'WebStep, s.r.o.';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = '&Uacute;vod';
+$MENU['PAGES'] = 'Str&aacute;nky';
+$MENU['MEDIA'] = 'M&eacute;dia';
+$MENU['ADDONS'] = 'Roz&scaron;&iacute;&#345;en&iacute;';
+$MENU['MODULES'] = 'Moduly';
+$MENU['TEMPLATES'] = '&Scaron;ablony';
+$MENU['LANGUAGES'] = 'Jazyky';
+$MENU['PREFERENCES'] = 'Mo&#382;nosti';
+$MENU['SETTINGS'] = 'Nastaven&iacute;';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'P&#345;&iacute;stup';
+$MENU['USERS'] = 'U&#382;ivatel&eacute;';
+$MENU['GROUPS'] = 'Skupiny';
+$MENU['HELP'] = 'N&aacute;pov&#283;da';
+$MENU['VIEW'] = 'Zobrazit';
+$MENU['LOGOUT'] = 'Odhl&aacute;sit';
+$MENU['LOGIN'] = 'P&#345;ihl&aacute;&scaron;en&iacute;';
+$MENU['FORGOT'] = 'Z&iacute;skat zapomenut&eacute; p&#345;ihla&scaron;ovac&iacute; &uacute;daje';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administra&#269;n&iacute; p&#345;ehled';
+$OVERVIEW['PAGES'] = 'Spravovat webov&eacute; str&aacute;nky...';
+$OVERVIEW['MEDIA'] = 'Spravovat soubory v adres&aacute;&#345;i m&eacute;di&iacute;...';
+$OVERVIEW['MODULES'] = 'Spravovat moduly Website Bakeru...';
+$OVERVIEW['TEMPLATES'] = 'Zm&#283;nit vzhled a chov&aacute;n&iacute; webu pomoc&iacute; &scaron;ablon...';
+$OVERVIEW['LANGUAGES'] = 'Spravovat jazyky Website Bakeru...';
+$OVERVIEW['PREFERENCES'] = 'Zm&#283;na nastaven&iacute; e-mailov&eacute; adresy, hesla, atd... ';
+$OVERVIEW['SETTINGS'] = 'Zm&#283;na nastaven&iacute; Website Bakeru...';
+$OVERVIEW['USERS'] = 'Spravovat u&#382;ivate Website Bakeru...';
+$OVERVIEW['GROUPS'] = 'Spravovat skupiny u&#382;ivatel&#367; a jejich opr&aacute;vn&#283;n&iacute;...';
+$OVERVIEW['HELP'] = 'M&aacute;te ot&aacute;zku? Hledejte odpov&#283;&#271;...';
+$OVERVIEW['VIEW'] = 'Rychle prohl&eacute;dhout str&aacute;nky v nov&eacute;m okn&#283;...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Zm&#283;nit/Smazat str&aacute;nku';
+$HEADING['DELETED_PAGES'] = 'Smazan&eacute; str&aacute;nky';
+$HEADING['ADD_PAGE'] = 'P&#345;idat str&aacute;nku';
+$HEADING['ADD_HEADING'] = 'P&#345;idat z&aacute;hlav&iacute;';
+$HEADING['MODIFY_PAGE'] = 'Upravit str&aacute;nku';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Zm&#283;nit nastaven&iacute; str&aacute;nky';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Zm&#283;nit pokro&#269;il&aacute; nastaven&iacute; str&aacute;nky';
+$HEADING['MANAGE_SECTIONS'] = 'Spravovat sekce';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Zm&#283;nit &uacute;vodn&iacute; (intro) str&aacute;nku';
+
+$HEADING['BROWSE_MEDIA'] = 'Prohl&iacute;&#382;e&#269; m&eacute;di&iacute;';
+$HEADING['CREATE_FOLDER'] = 'Vytvo&#345;it adres&aacute;&#345;';
+$HEADING['UPLOAD_FILES'] = 'Nahr&aacute;t soubor(y)';
+
+$HEADING['INSTALL_MODULE'] = 'Nainstalovat modul';
+$HEADING['UNINSTALL_MODULE'] = 'Odinstalovat modul';
+$HEADING['MODULE_DETAILS'] = 'Detaily modulu';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Nainstalovat &scaron;ablonu';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Odinstalovat &scaron;ablonu';
+$HEADING['TEMPLATE_DETAILS'] = 'Detaily &scaron;ablony';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Nainstalovat jazyk';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Odinstalovat jazyk';
+$HEADING['LANGUAGE_DETAILS'] = 'Detaily jazyka';
+
+$HEADING['MY_SETTINGS'] = 'Moje nastaven&iacute;';
+$HEADING['MY_EMAIL'] = 'M&#367;j e-mail';
+$HEADING['MY_PASSWORD'] = 'Moje heslo';
+
+$HEADING['GENERAL_SETTINGS'] = 'Obecn&aacute; nastaven&iacute;';
+$HEADING['DEFAULT_SETTINGS'] = 'Implicitn&iacute; nastaven&iacute;';
+$HEADING['SEARCH_SETTINGS'] = 'Nastaven&iacute; vyhled&aacute;v&aacute;n&iacute;';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Nastaven&iacute; syst&eacute;mu soubor&#367;';
+$HEADING['SERVER_SETTINGS'] = 'Nastaven&iacute; serveru';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'N&aacute;stroje administrace';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Zm&#283;nit/Smazat u&#382;ivatele';
+$HEADING['ADD_USER'] = 'P&#345;idat u&#382;ivatele';
+$HEADING['MODIFY_USER'] = 'Zm&#283;nit u&#382;ivatele';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Zm&#283;nit/Smazat skupinu';
+$HEADING['ADD_GROUP'] = 'P&#345;idat skupinu';
+$HEADING['MODIFY_GROUP'] = 'Zm&#283;nit skupinu';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'P&#345;idat';
+$TEXT['MODIFY'] = 'Zm&#283;nit';
+$TEXT['SETTINGS'] = 'Nastaven&iacute;';
+$TEXT['DELETE'] = 'Smazat';
+$TEXT['SAVE'] = 'Ulo&#382;it';
+$TEXT['RESET'] = 'Vy&#269;istit';
+$TEXT['LOGIN'] = 'P&#345;ihl&aacute;sit';
+$TEXT['RELOAD'] = 'Obnovit';
+$TEXT['CANCEL'] = 'Zru&scaron;it';
+$TEXT['NAME'] = 'N&aacute;zev';
+$TEXT['PLEASE_SELECT'] = 'Vyberte pros&iacute;m';
+$TEXT['TITLE'] = 'N&aacute;zev';
+$TEXT['PARENT'] = 'Nad&#345;azen&yacute;';
+$TEXT['TYPE'] = 'Typ';
+$TEXT['VISIBILITY'] = 'Viditelnost';
+$TEXT['PRIVATE'] = 'Soukrom&aacute;';
+$TEXT['PUBLIC'] = 'Ve&#345;ejn&aacute;';
+$TEXT['NONE'] = 'Nen&iacute;';
+$TEXT['NONE_FOUND'] = 'Nic nenalezeno';
+$TEXT['CURRENT'] = 'Sou&#269;asn&yacute;';
+$TEXT['CHANGE'] = 'Zm&#283;nit';
+$TEXT['WINDOW'] = 'Okno';
+$TEXT['DESCRIPTION'] = 'Popis';
+$TEXT['KEYWORDS'] = 'Kl&iacute;&#269;ov&aacute; slova';
+$TEXT['ADMINISTRATORS'] = 'Spr&aacute;vci';
+$TEXT['PRIVATE_VIEWERS'] = 'Opr&aacute;vn&#283;n&iacute; k prohl&iacute;&#382;en&iacute;';
+$TEXT['EXPAND'] = 'Rozbalit';
+$TEXT['COLLAPSE'] = 'Sbalit';
+$TEXT['MOVE_UP'] = 'Posunout nahoru';
+$TEXT['MOVE_DOWN'] = 'Posunout dol&#367;';
+$TEXT['RENAME'] = 'P&#345;ejm.';
+$TEXT['MODIFY_SETTINGS'] = 'Zm&#283;nit nastaven&iacute;';
+$TEXT['MODIFY_CONTENT'] = 'Zm&#283;nit obsah';
+$TEXT['VIEW'] = 'Zobrazit';
+$TEXT['UP'] = 'Nahoru';
+$TEXT['FORGOTTEN_DETAILS'] = 'Zapom&#283;li jste svoje p&#345;ihla&scaron;ovac&iacute; &uacute;daje?';
+$TEXT['NEED_TO_LOGIN'] = 'Chcete se p&#345;ihl&aacute;sit?';
+$TEXT['SEND_DETAILS'] = 'Zaslat p&#345;ihla&scaron;ovac&iacute; &uacute;daje';
+$TEXT['USERNAME'] = 'Jm&eacute;no';
+$TEXT['PASSWORD'] = 'Heslo';
+$TEXT['HOME'] = 'Dom&#367;';
+$TEXT['TARGET_FOLDER'] = 'C&iacute;lov&yacute; adres&aacute;&#345;';
+$TEXT['OVERWRITE_EXISTING'] = 'P&#345;epsat existuj&iacute;c&iacute;';
+$TEXT['FILE'] = 'soubor';
+$TEXT['FILES'] = 'soubory';
+$TEXT['FOLDER'] = 'adres&aacute;&#345;';
+$TEXT['FOLDERS'] = 'adres&aacute;&#345;e';
+$TEXT['CREATE_FOLDER'] = 'Vytvo&#345;it adres&aacute;&#345;';
+$TEXT['UPLOAD_FILES'] = 'Nahr&aacute;t soubor(y)';
+$TEXT['CURRENT_FOLDER'] = 'Sou&#269;asn&yacute; adres&aacute;&#345;';
+$TEXT['TO'] = 'na';
+$TEXT['FROM'] = 'od';
+$TEXT['INSTALL'] = 'Instalovat';
+$TEXT['UNINSTALL'] = 'Odinstalovat';
+$TEXT['VIEW_DETAILS'] = 'Zobrazit';
+$TEXT['DISPLAY_NAME'] = 'Jm&eacute;no';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Verze';
+$TEXT['DESIGNED_FOR'] = 'Vyvinuto pro';
+$TEXT['DESCRIPTION'] = 'Popis';
+$TEXT['EMAIL'] = 'E-mail';
+$TEXT['LANGUAGE'] = 'Jazyk';
+$TEXT['TIMEZONE'] = '&#268;asov&eacute; p&aacute;smo';
+$TEXT['CURRENT_PASSWORD'] = 'Sou&#269;asn&eacute; heslo';
+$TEXT['NEW_PASSWORD'] = 'Nov&eacute; heslo';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Znovu nov&eacute; heslo';
+$TEXT['ACTIVE'] = 'Aktivn&iacute;';
+$TEXT['DISABLED'] = 'Vypnuto';
+$TEXT['ENABLED'] = 'Zapnuto';
+$TEXT['RETYPE_PASSWORD'] = 'Znovu heslo';
+$TEXT['GROUP'] = 'Skup.';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Syst&eacute;mov&aacute; opr&aacute;vn&#283;n&iacute;';
+$TEXT['MODULE_PERMISSIONS'] = 'Opr&aacute;vn&#283;n&iacute; k modul&#367;m';
+$TEXT['SHOW_ADVANCED'] = 'Zobrazit pokro&#269;il&eacute; volby';
+$TEXT['HIDE_ADVANCED'] = 'Skr&yacute;t pokro&#269;il&eacute; volby';
+$TEXT['BASIC'] = 'Z&aacute;kladn&iacute;';
+$TEXT['ADVANCED'] = 'Pokro&#269;il&yacute;';
+$TEXT['WEBSITE'] = 'WWW';
+$TEXT['DEFAULT'] = 'V&yacute;choz&iacute;';
+$TEXT['KEYWORDS'] = 'Kl&iacute;&#269;ov&aacute; slova';
+$TEXT['TEXT'] = 'Text';
+$TEXT['HEADER'] = 'Z&aacute;hlav&iacute;';
+$TEXT['FOOTER'] = 'Z&aacute;pat&iacute;';
+$TEXT['TEMPLATE'] = '&Scaron;ablona';
+$TEXT['INSTALLATION'] = 'Instalace';
+$TEXT['DATABASE'] = 'Datab&aacute;ze';
+$TEXT['HOST'] = 'Hostitel';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Str&aacute;nka';
+$TEXT['SIGNUP'] = 'Registrace';
+$TEXT['PHP_ERROR_LEVEL'] = '&Uacute;rove&#328; hl&aacute;&scaron;en&iacute; chyb PHP';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Cesta';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Roz&scaron;&iacute;&#345;en&iacute;';
+$TEXT['TABLE_PREFIX'] = 'Prefix tabulek';
+$TEXT['CHANGES'] = 'Zm&#283;ny';
+$TEXT['ADMINISTRATION'] = 'Administrace';
+$TEXT['FORGOT_DETAILS'] = 'Zapomnenut&eacute; heslo?';
+$TEXT['LOGGED_IN'] = 'p&#345;ihl&aacute;&scaron;en';
+$TEXT['WELCOME_BACK'] = 'V&iacute;tejte';
+$TEXT['FULL_NAME'] = 'Cel&eacute; jm&eacute;no';
+$TEXT['ACCOUNT_SIGNUP'] = 'Registrace &uacute;&#269;tu';
+$TEXT['LINK'] = 'Odkaz';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Sm&#283;&#345;uje do';
+$TEXT['NEW_WINDOW'] = 'nov&eacute;ho okna';
+$TEXT['SAME_WINDOW'] = 'p&#367;vodn&iacute;ho okna';
+$TEXT['TOP_FRAME'] = 'svrchn&iacute;ho r&aacute;mu';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limit &uacute;rovn&iacute; str&aacute;nek';
+$TEXT['SUCCESS'] = '&Uacute;sp&#283;&scaron;n&#283; provedeno';
+$TEXT['ERROR'] = 'Chyba';
+$TEXT['ARE_YOU_SURE'] = 'Jste si jisti?';
+$TEXT['YES'] = 'Ano';
+$TEXT['NO'] = 'Ne';
+$TEXT['SYSTEM_DEFAULT'] = 'Implicitn&iacute; v syst&eacute;mu';
+$TEXT['PAGE_TITLE'] = 'Titulek str&aacute;nky';
+$TEXT['MENU_TITLE'] = 'Titulek menu';
+$TEXT['ACTIONS'] = 'Akce';
+$TEXT['UNKNOWN'] = 'Nezn&aacute;m&yacute;';
+$TEXT['BLOCK'] = 'Blok';
+$TEXT['SEARCH'] = 'Vyhled&aacute;v&aacute;n&iacute;';
+$TEXT['SEARCHING'] = 'Vyhled&aacute;v&aacute;n&iacute;';
+$TEXT['POST'] = 'p&#345;&iacute;sp&#283;vek';
+$TEXT['COMMENT'] = 'Koment&aacute;&#345;';
+$TEXT['COMMENTS'] = 'Koment&aacute;&#345;e';
+$TEXT['COMMENTING'] = 'Koment&aacute;&#345;e';
+$TEXT['SHORT'] = 'Kr&aacute;tk&yacute; popis';
+$TEXT['LONG'] = 'Dlouh&yacute; popis';
+$TEXT['LOOP'] = 'T&#283;lo';
+$TEXT['FIELD'] = 'Pole';
+$TEXT['REQUIRED'] = 'Povinn&yacute;';
+$TEXT['LENGTH'] = 'D&eacute;lka';
+$TEXT['MESSAGE'] = 'Zpr&aacute;va';
+$TEXT['SUBJECT'] = 'P&#345;edm&#283;t';
+$TEXT['MATCH'] = 'Shoda';
+$TEXT['ALL_WORDS'] = 'V&scaron;echna slova';
+$TEXT['ANY_WORDS'] = 'Cokoliv';
+$TEXT['EXACT_MATCH'] = 'P&#345;esn&aacute; shoda';
+$TEXT['SHOW'] = 'Zobrazit';
+$TEXT['HIDE'] = 'Skr&yacute;t';
+$TEXT['START_PUBLISHING'] = 'Za&#269;&aacute;tek publikace';
+$TEXT['FINISH_PUBLISHING'] = 'Konec publikace';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Za&#269;&aacute;tek';
+$TEXT['END'] = 'Konec';
+$TEXT['IMAGE'] = 'Obr&aacute;zek';
+$TEXT['ICON'] = 'Ikona';
+$TEXT['SECTION'] = 'Sekce';
+$TEXT['DATE_FORMAT'] = 'Form&aacute;t data';
+$TEXT['TIME_FORMAT'] = 'Form&aacute;t &#269;asu';
+$TEXT['RESULTS'] = 'V&yacute;sledky';
+$TEXT['RESIZE'] = 'Zm&#283;na velikosti';
+$TEXT['MANAGE'] = 'Spravovat';
+$TEXT['CODE'] = 'K&oacute;d jazyka';
+$TEXT['WIDTH'] = '&Scaron;&iacute;&#345;ka';
+$TEXT['HEIGHT'] = 'V&yacute;&scaron;ka';
+$TEXT['MORE'] = 'V&iacute;ce';
+$TEXT['READ_MORE'] = 'v&iacute;ce...';
+$TEXT['CHANGE_SETTINGS'] = 'Zm&#283;nit nastaven&iacute;';
+$TEXT['CURRENT_PAGE'] = 'Str&aacute;nka';
+$TEXT['CLOSE'] = 'Zav&#345;&iacute;t';
+$TEXT['INTRO_PAGE'] = '&Uacute;vodn&iacute; (intro) str&aacute;nka';
+$TEXT['INSTALLATION_URL'] = 'URL instalace';
+$TEXT['INSTALLATION_PATH'] = 'Cesta instalace';
+$TEXT['PAGE_EXTENSION'] = 'P&#345;&iacute;pona str&aacute;nek';
+$TEXT['NO_RESULTS'] = '&#381;&aacute;dn&yacute; v&yacute;sledek';
+$TEXT['WEBSITE_TITLE'] = 'N&aacute;zev webu';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Popis webu';
+$TEXT['WEBSITE_KEYWORDS'] = 'Kl&iacute;&#269;ov&aacute; slova';
+$TEXT['WEBSITE_HEADER'] = 'Z&aacute;hlav&iacute; webu';
+$TEXT['WEBSITE_FOOTER'] = 'Z&aacute;pat&iacute; webu';
+$TEXT['RESULTS_HEADER'] = 'Z&aacute;hlav&iacute; v&yacute;sledk&#367;';
+$TEXT['RESULTS_LOOP'] = 'Polo&#382;ka v&yacute;sledk&#367;';
+$TEXT['RESULTS_FOOTER'] = 'Z&aacute;pat&iacute; v&yacute;sledk&#367;';
+$TEXT['LEVEL'] = '&Uacute;rove&#328;';
+$TEXT['NOT_FOUND'] = 'Nenalezeno';
+$TEXT['PAGE_SPACER'] = 'Znak mezery';
+$TEXT['MATCHING'] = 'Odpov&iacute;daj&iacute;c&iacute;';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Pr&aacute;va k &scaron;ablon&#283;';
+$TEXT['PAGES_DIRECTORY'] = 'Adres&aacute;&#345; str&aacute;nek';
+$TEXT['MEDIA_DIRECTORY'] = 'Adres&aacute;&#345; m&eacute;di&iacute;';
+$TEXT['FILE_MODE'] = 'M&oacute;d soubor&#367;';
+$TEXT['USER'] = 'U&#382;ivatel';
+$TEXT['OTHERS'] = 'Ostatn&iacute;';
+$TEXT['READ'] = '&#268;ten&iacute;';
+$TEXT['WRITE'] = 'Z&aacute;pis';
+$TEXT['EXECUTE'] = 'Spu&scaron;t&#283;n&iacute;';
+$TEXT['SMART_LOGIN'] = 'Chytr&eacute; p&#345;ihl&aacute;&scaron;en&iacute;';
+$TEXT['REMEMBER_ME'] = 'Zapamatovat &uacute;daje';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Pr&aacute;va souborov&eacute;ho syst&eacute;mu';
+$TEXT['DIRECTORIES'] = 'Adres&aacute;&#345;e';
+$TEXT['DIRECTORY_MODE'] = 'M&oacute;d adres&aacute;&#345;&#367;';
+$TEXT['LIST_OPTIONS'] = 'Seznam voleb';
+$TEXT['OPTION'] = 'Volby';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Povolit v&iacute;cen&aacute;sobn&eacute; v&yacute;b&#283;ry';
+$TEXT['TEXTFIELD'] = 'Vstupn&iacute; &#345;&aacute;dek';
+$TEXT['TEXTAREA'] = 'Vstupn&iacute; pole';
+$TEXT['SELECT_BOX'] = 'V&yacute;b&#283;rov&eacute; pole';
+$TEXT['CHECKBOX_GROUP'] = 'Skupina zatrh&aacute;vac&iacute;ch pol&iacute;';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Skupina radio-pol&iacute;';
+$TEXT['SIZE'] = 'Velikost';
+$TEXT['DEFAULT_TEXT'] = 'V&yacute;choz&iacute; text';
+$TEXT['SEPERATOR'] = 'Odd&#283;lova&#269;';
+$TEXT['BACK'] = 'Zp&#283;t';
+$TEXT['UNDER_CONSTRUCTION'] = 'Ve v&yacute;stavb&#283;';
+$TEXT['MULTISELECT'] = 'V&iacute;cen&aacute;sobn&eacute; v&yacute;b&#283;rov&eacute; pole';
+$TEXT['SHORT_TEXT'] = 'Kr&aacute;tk&yacute; text';
+$TEXT['LONG_TEXT'] = 'Dlouh&yacute; text';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'P&#345;esm&#283;rov&aacute;n&iacute; homepage';
+$TEXT['HEADING'] = 'Z&aacute;hlav&iacute;';
+$TEXT['MULTIPLE_MENUS'] = 'V&iacute;cen&aacute;sobn&aacute; menu';
+$TEXT['REGISTERED'] = 'Pro registrovan&eacute;';
+$TEXT['SECTION_BLOCKS'] = 'Bloky sekc&iacute;';
+$TEXT['REGISTERED_VIEWERS'] = 'Opr&aacute;vn&#283;n&iacute; k prohl&iacute;&#382;en&iacute;';
+$TEXT['ALLOWED_VIEWERS'] = 'Opr&aacute;vn&#283;n&iacute; k prohl&iacute;&#382;en&iacute;';
+$TEXT['SUBMISSION_ID'] = 'ID formul&aacute;&#345;e';
+$TEXT['SUBMISSIONS'] = 'Odeslan&eacute; formul&aacute;&#345;e';
+$TEXT['SUBMITTED'] = 'Odesl&aacute;no';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. po&#269;et odesl&aacute;n&iacute; za hodinu';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Odeslan&eacute; formul&aacute;&#345;e';
+$TEXT['EMAIL_ADDRESS'] = 'E-mailov&aacute; adresa';
+$TEXT['CUSTOM'] = 'Vlastn&iacute; nastaven&iacute;';
+$TEXT['ANONYMOUS'] = 'Anonymn&iacute;';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Opera&#269;n&iacute; syst&eacute;m serveru';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Pr&aacute;va z&aacute;pisu &amp;quot;pro cel&yacute; sv&#283;t&amp;quot;';
+$TEXT['LINUX_UNIX_BASED'] = 'Zalo&#382;en na Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Domovsk&yacute; adres&aacute;&#345;';
+$TEXT['HOME_FOLDERS'] = 'Domovsk&eacute; adres&aacute;&#345;e';
+$TEXT['PAGE_TRASH'] = 'Ko&scaron; str&aacute;nek';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Odd&#283;len&#283;';
+$TEXT['DELETED'] = 'Smaz&aacute;no';
+$TEXT['VIEW_DELETED_PAGES'] = 'Zobrazit smazan&eacute; str&aacute;nky';
+$TEXT['EMPTY_TRASH'] = 'Vypr&aacute;zdnit ko&scaron;';
+$TEXT['TRASH_EMPTIED'] = 'Ko&scaron; vypr&aacute;zdn&#283;n';
+$TEXT['ADD_SECTION'] = 'P&#345;idat sekci';
+$TEXT['POST_HEADER'] = 'Z&aacute;hlav&iacute; p&#345;&iacute;sp&#283;vku';
+$TEXT['POST_FOOTER'] = 'Z&aacute;pat&iacute; p&#345;&iacute;sp&#283;vku';
+$TEXT['POSTS_PER_PAGE'] = 'P&#345;&iacute;sp&#283;vk&#367; na str&aacute;nku';
+$TEXT['RESIZE_IMAGE_TO'] = 'Zm&#283;nit velikost obr&aacute;zku na';
+$TEXT['UNLIMITED'] = 'Neomezen&yacute;';
+$TEXT['OF'] = 'Z';
+$TEXT['OUT_OF'] = 'Z';
+$TEXT['NEXT'] = 'N&aacute;sleduj&iacute;c&iacute;';
+$TEXT['PREVIOUS'] = 'P&#345;edchoz&iacute;';
+$TEXT['NEXT_PAGE'] = 'N&aacute;sleduj&iacute;c&iacute; str&aacute;nka';
+$TEXT['PREVIOUS_PAGE'] = 'P&#345;edchoz&iacute; str&aacute;nka';
+$TEXT['ON'] = 'Na';
+$TEXT['LAST_UPDATED_BY'] = 'Posledn&iacute; zm&#283;na:';
+$TEXT['RESULTS_FOR'] = 'V&yacute;sledky pro';
+$TEXT['TIME'] = '&#268;as';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG styl';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG editor';
+$TEXT['SERVER_EMAIL'] = 'Syt&eacute;mov&yacute; e-mail';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Spravovat skupiny';
+$TEXT['MANAGE_USERS'] = 'Spravovat u&#382;ivatele';
+$TEXT['PAGE_LANGUAGES'] = 'Jazykov&eacute; verze str&aacute;nek';
+$TEXT['HIDDEN'] = 'Skryt&aacute;';
+$TEXT['MAIN'] = 'Hlavn&iacute;';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'P&#345;ejm. soubory po nahr&aacute;n&iacute;';
+$TEXT['APP_NAME'] = 'N&aacute;zev aplikace';
+$TEXT['SESSION_IDENTIFIER'] = 'Identifik&aacute;tor session';
+$TEXT['BACKUP'] = 'Z&aacute;lohov&aacute;n&iacute;';
+$TEXT['RESTORE'] = 'Obnova ze z&aacute;lohy';
+$TEXT['BACKUP_DATABASE'] = 'Z&aacute;lohovat datab&aacute;zi';
+$TEXT['RESTORE_DATABASE'] = 'Obnovit datab&aacute;zi ze z&aacute;lohy';
+$TEXT['BACKUP_ALL_TABLES'] = 'Z&aacute;lohovat v&scaron;echny tabulky v datab&aacute;zi';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Z&aacute;lohovat pouze tabulky WebsiteBakeru';
+$TEXT['BACKUP_MEDIA'] = 'Zaz&aacute;lohovat m&eacute;dia';
+$TEXT['RESTORE_MEDIA'] = 'Obnovit m&eacute;dia ze z&aacute;lohy';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administra&#269;n&iacute; n&aacute;stroje';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Kontrola obr. k&oacute;dem';
+$TEXT['VERIFICATION'] = 'Verifikace';
+$TEXT['DEFAULT_CHARSET'] = 'V&yacute;choz&iacute; k&oacute;dov&aacute; str&aacute;nka';
+$TEXT['CHARSET'] = 'K&oacute;dov&aacute; str&aacute;nka';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Nem&aacute;te opr&aacute;vn&#283;n&iacute; prohl&iacute;&#382;et tuto str&aacute;nku';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Nedostate&#269;n&aacute; opr&aacute;vn&#283;n&iacute;';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Zadejte pros&iacute;m svoje p&#345;ihla&scaron;ovac&iacute; &uacute;daje:';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Zadejte sv&eacute; u&#382;ivatelsk&eacute; jm&eacute;no';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Zadejte sv&eacute; heslo';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Zadan&eacute; jm&eacute;no je p&#345;&iacute;li&scaron; kr&aacute;tk&eacute;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Zadan&eacute; heslo je p&#345;&iacute;li&scaron; kr&aacute;tk&eacute;';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Zadan&eacute; jm&eacute;no je p&#345;&iacute;li&scaron; dlouh&eacute;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Zadan&eacute; heslo je p&#345;&iacute;li&scaron; dlouh&eacute;';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Jm&eacute;no nebo heslo nen&iacute; platn&eacute;';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Mus&iacute;te zadat e-mailovou adresu';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Zadejte svoji e-mailovou adresu:';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Zadan&aacute; e-mailov&aacute; adresa nebyla nalezena';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Nelze odeslat heslo e-mailem, kontaktujte pros&iacute;m spr&aacute;vce syst&eacute;mu';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Va&scaron;e u&#382;ivatelsk&eacute; jm&eacute;no a heslo byly odesl&aacute;ny na Va&scaron;i e-mailovou adresu';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Heslo nem&#367;&#382;e b&yacute;t p&#345;enastaveno v&iacute;cekr&aacute;t b&#283;hem jedn&eacute; hodiny';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'V&iacute;tejte v Administra&#269;n&iacute; &#269;&aacute;sti';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Pozor, st&aacute;le existuje instala&#269;n&iacute; adres&aacute;&#345;!';
+$MESSAGE['START']['CURRENT_USER'] = 'Jste p&#345;ihl&aacute;&scaron;eni jako:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Nelze otev&#345;&iacute;t soubor s konfigurac&iacute;';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Nelze zapisovat do souboru s konfigurac&iacute;';
+$MESSAGE['SETTINGS']['SAVED'] = 'Nastaven&iacute; bylo &uacute;sp&#283;&scaron;n&#283; ulo&#382;eno';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Pozn.: stisknut&iacute;m tohoto tla&#269;&iacute;tka dojde k zahozen&iacute; neulo&#382;en&yacute;ch zm&#283;n';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Pozn.: zapnut&iacute; t&eacute;to volby se doporu&#269;uje jen v testovac&iacute;m prost&#345;ed&iacute;';
+
+$MESSAGE['USERS']['ADDED'] = 'U&#382;ivatel byl &uacute;sp&#283;&scaron;n&#283; p&#345;id&aacute;n';
+$MESSAGE['USERS']['SAVED'] = 'U&#382;ivatel byl &uacute;sp&#283;&scaron;n&#283; ulo&#382;en';
+$MESSAGE['USERS']['DELETED'] = 'U&#382;ivatel byl &uacute;sp&#283;&scaron;n&#283; smaz&aacute;n';
+$MESSAGE['USERS']['NO_GROUP'] = 'Nebyla vybr&aacute;na skupina';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Zadan&eacute; u&#382;ivatelsk&eacute; jm&eacute;no je p&#345;&iacute;li&scaron; kr&aacute;tk&eacute;';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Zadan&eacute; heslo je p&#345;&iacute;li&scaron; kr&aacute;tk&eacute;';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Zadan&aacute; hesla nejsou shodn&aacute;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Zadan&aacute; e-mailov&aacute; adresa je neplatn&aacute;';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Zadan&aacute; e-mailov&aacute; adresa je ji&#382; pou&#382;&iacute;v&aacute;na';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'U&#382;ivatel se stejn&yacute;m u&#382;ivatelsk&yacute;m jm&eacute;nem ji&#382; existuje';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Pozn.: vypl&#328;te pouze hodnoty v&yacute;&scaron;e pokud si p&#345;ejete zm&#283;nit heslo';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Jste si jisti, &#382;e chcete smazat tohoto u&#382;ivatele?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Skupina byla &uacute;sp&#283;&scaron;n&#283; p&#345;id&aacute;na';
+$MESSAGE['GROUPS']['SAVED'] = 'Skupina byla &uacute;sp&#283;&scaron;n&#283; ulo&#382;ena';
+$MESSAGE['GROUPS']['DELETED'] = 'Skupina byla &uacute;sp&#283;&scaron;n&#283; smaz&aacute;na';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'N&aacute;zev skupiny je pr&aacute;zdn&yacute;';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Jste si jisti, &#382;e chcete smazat tuto skupimu (a v&scaron;echny jej&iacute; u&#382;ivatele)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Nenalezena &#382;&aacute;dn&aacute; skupina';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Tato skupina ji&#382; existuje';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detaily byly &uacute;sp&#283;&scaron;n&#283; ulo&#382;eny';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-mail byl &uacute;sp&#283;&scaron;n&#283; ulo&#382;en';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Sou&#269;asn&eacute; heslo neodpov&iacute;d&aacute;';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Heslo bylo &uacute;sp&#283;&scaron;n&#283; zm&#283;n&#283;no';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Pozn.: zm&#283;na &scaron;ablony se prov&aacute;d&iacute; v sekci Nastaven&iacute;';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Nelze pou&#382;&iacute;t ../ v n&aacute;zvu adres&aacute;&#345;e';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Adres&aacute;&#345; neexistuje';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Nelze pou&#382;&iacute;t ../ v c&iacute;lov&eacute;m adres&aacute;&#345;i';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Nelze pou&#382;&iacute;t ../ v n&aacute;zvu';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Nelze pou&#382;&iacute;t index.php jako n&aacute;zev';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Nenalezen &#382;&aacute;dn&yacute; soubor';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Soubor nenalezen';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Soubor byl &uacute;sp&#283;&scaron;n&#283; smaz&aacute;n';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Adres&aacute;&#345; byl &uacute;sp&#283;&scaron;n&#283; smaz&aacute;n';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Jste si jisti, &#382;e chcete smazat n&aacute;sleduj&iacute;c&iacute; soubory nebo adres&aacute;&#345;e?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Nelze smazat vybran&yacute; soubor';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Nelze smazat vybran&yacute; adres&aacute;&#345;';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Nezadali jste nov&yacute; n&aacute;zev';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Nezadali jste p&#345;&iacute;ponu souboru';
+$MESSAGE['MEDIA']['RENAMED'] = 'P&#345;ejmenov&aacute;n&iacute; prob&#283;hlo &uacute;sp&#283;&scaron;n&#283;';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'P&#345;ejmenov&aacute;n&iacute; se nezda&#345;ilo';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Soubor se stejn&yacute;m n&aacute;zvem ji&#382; existuje';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Adres&aacute;&#345; se stejn&yacute;m n&aacute;zvem ji&#382; existuje';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Adres&aacute;&#345; byl &uacute;sp&#283;&scaron;n&#283; vytvo&#345;en';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Nelze vytvo&#345;it adres&aacute;&#345;';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' soubor byl &uacute;sp&#283;&scaron;n&#283; nahr&aacute;n';
+$MESSAGE['MEDIA']['UPLOADED'] = ' soubory byly &uacute;sp&#283;&scaron;n&#283; nahr&aacute;ny';
+
+$MESSAGE['PAGES']['ADDED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; p&#345;id&aacute;na';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Z&aacute;hlav&iacute; str&aacute;nky bylo &uacute;sp&#283;&scaron;n&#283; p&#345;id&aacute;no';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Str&aacute;nka se stejn&yacute;m nebo podobn&yacute;m n&aacute;zvem ji&#382; existuje';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Do&scaron;lo k chyb&#283; p&#345;i vytv&aacute;&#345;en&iacute; p&#345;&iacute;supov&eacute;ho souboru v adres&aacute;&#345;i str&aacute;nek (nedostate&#269;n&aacute; opr&aacute;vn&#283;n&iacute;)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Do&scaron;lo k chyb&#283; p&#345;i maz&aacute;n&iacute; p&#345;&iacute;supov&eacute;ho souboru v adres&aacute;&#345;i str&aacute;nek (nedostate&#269;n&aacute; opr&aacute;vn&#283;n&iacute;)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Str&aacute;nka nenalezena';
+$MESSAGE['PAGES']['SAVED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; ulo&#382;ena';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Nastaven&iacute; str&aacute;nky bylo &uacute;sp&#283;&scaron;n&#283; ulo&#382;eno';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Do&scaron;lo k chyb&#283; p&#345;i ukl&aacute;d&aacute;n&iacute; str&aacute;nky';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Jste si jisti, &#382;e chcete smazat tuto str&aacute;nku (a v&scaron;echny podstr&aacute;nky)';
+$MESSAGE['PAGES']['DELETED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; smaz&aacute;na';
+$MESSAGE['PAGES']['RESTORED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; obnovena';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Zadejte n&aacute;zev str&aacute;nky';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Zadejte n&aacute;zev v menu';
+$MESSAGE['PAGES']['REORDERED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; p&#345;esunuta';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Do&scaron;lo k chyb&#283; p&#345;i zm&#283;n&#283; po&#345;ad&iacute; str&aacute;nky';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Nem&aacute;te opr&aacute;vn&#283;n&iacute; ke zm&#283;n&#283; t&eacute;to str&aacute;nky';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Nelze zapisovat do souboru /pages/intro.php (nedostate&#269;n&aacute; opr&aacute;vn&#283;n&iacute;)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Str&aacute;nka byla &uacute;sp&#283;&scaron;n&#283; ulo&#382;ena';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Posledn&iacute; zm&#283;na:';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Zm&#283;nit &uacute;vodn&iacute; (intro) str&aacute;nku';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Nastaven&iacute; sekce bylo &uacute;sp&#283;&scaron;n&#283; ulo&#382;eno';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Zp&#283;t na str&aacute;nky';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Pros&iacute;m vra&#357;te se zp&#283;t a vypl&#328;te v&scaron;echna pole';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Nahr&aacute;van&yacute; soubory mus&iacute; b&yacute;t n&aacute;sleduj&iacute;c&iacute;ho form&aacute;tu:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Nahr&aacute;van&yacute; soubor mus&iacute; m&iacute;t jeden z n&aacute;sleduj&iacute;c&iacute;ch form&aacute;t&#367;:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Nelze nahr&aacute;t soubor';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Ji&#382; d&#345;&iacute;ve nainstalov&aacute;no';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Nenainstalov&aacute;no';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Nelze odinstalovat';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Nelze rozbalit (rozzipovat) soubor';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Instalace prob&#283;hla &uacute;sp&#283;&scaron;n&#283;';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Aktualizace prob&#283;hla &uacute;sp&#283;&scaron;n&#283;';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Odinstalace prob&#283;hla &uacute;sp&#283;&scaron;n&#283;';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Nelze zapisovat do c&iacute;lov&eacute;ho adres&aacute;&#345;e';
+$MESSAGE['GENERIC']['INVALID'] = 'Nahr&aacute;van&yacute; soubor je neplatn&yacute;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Nelze odinstalovat: soubor je pr&aacute;v&#283; pou&#382;&iacute;v&aacute;n';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Str&aacute;nky jsou ve v&yacute;stavb&#283;';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Zkuste to p&#345;&iacute;&scaron;t&#283;...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = '&#268;ekejte pros&iacute;m, operace m&#367;&#382;e chv&iacute;li trvat.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Do&scaron;lo k chyb&#283; p&#345;i otev&iacute;r&aacute;n&iacute; souboru.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Mus&iacute;te vyplnit n&aacute;sleduj&iacute;c&iacute; pole';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Omlouv&aacute;me se, ale tento formul&aacute;&#345; dos&aacute;hl limitu povolen&yacute;ch odesl&aacute;n&iacute; pro tuto hodinu. Pros&iacute;m zkuste to znovu v dal&scaron;&iacute; hodin&#283;..';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Kontroln&iacute; k&oacute;d (zn&aacute;m&yacute; jako Captcha) neodpov&iacute;d&aacute;. Pokud m&aacute;te probl&eacute;my s p&#345;e&#269;ten&iacute;m tohoto k&oacute;du, kontaktujte '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Vyberte kter&aacute; roz&scaron;&iacute;&#345;en&iacute; si p&#345;ejete p&#345;ehr&aacute;t';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduly byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = '&Scaron;ablony byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Jazyky byly &uacute;sp&#283;&scaron;n&#283; p&#345;ehr&aacute;ny';
+
+?>

Property changes on: tags/2.7.0/wb/languages/CS.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/SE.php
===================================================================
--- tags/2.7.0/wb/languages/SE.php	(nonexistent)
+++ tags/2.7.0/wb/languages/SE.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'SE';
+$language_name = 'Svenska';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Markus Eriksson, Peppe Bergqvist';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Hem';
+$MENU['PAGES'] = 'Sidor';
+$MENU['MEDIA'] = 'Mediabibliotek';
+$MENU['ADDONS'] = 'Till&auml;gg';
+$MENU['MODULES'] = 'Moduler';
+$MENU['TEMPLATES'] = 'Mallar';
+$MENU['LANGUAGES'] = 'Spr&aring;k';
+$MENU['PREFERENCES'] = 'Mina uppgifter';
+$MENU['SETTINGS'] = 'Inst&auml;llningar';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'R&auml;ttigheter';
+$MENU['USERS'] = 'Anv&auml;ndare';
+$MENU['GROUPS'] = 'Grupper';
+$MENU['HELP'] = 'Hj&auml;lp';
+$MENU['VIEW'] = 'Visa sida';
+$MENU['LOGOUT'] = 'Logga ut';
+$MENU['LOGIN'] = 'Logga in';
+$MENU['FORGOT'] = 'Skicka inloggningsuppgifter';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administration &ouml;versyn';
+$OVERVIEW['PAGES'] = 'Redigera dina sidor...';
+$OVERVIEW['MEDIA'] = 'Redigera inneh&aring;ll i mediabiblioteket...';
+$OVERVIEW['MODULES'] = 'Behandla Website Baker moduler...';
+$OVERVIEW['TEMPLATES'] = '&Auml;ndra utseendet med mallar...';
+$OVERVIEW['LANGUAGES'] = 'Behandla Website Baker spr&aring;k...';
+$OVERVIEW['PREFERENCES'] = '&Auml;ndra inst&auml;llningar som e-postadress, l&ouml;senord, etc... ';
+$OVERVIEW['SETTINGS'] = '&Auml;ndra inst&auml;llningar f&ouml;r Website Baker...';
+$OVERVIEW['USERS'] = 'Behandla anv&auml;ndare som kan logga in till Website Baker...';
+$OVERVIEW['GROUPS'] = 'Behandla anv&auml;ndargrupper och deras system&aring;tkomst...';
+$OVERVIEW['HELP'] = 'Hitta svar p&aring; dina fr&aring;gor (p&aring; engelska)...';
+$OVERVIEW['VIEW'] = 'Titta p&aring; dina sidor i ett nytt f&ouml;nster...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = '&Auml;ndra/radera sida';
+$HEADING['DELETED_PAGES'] = 'Raderade sidor';
+$HEADING['ADD_PAGE'] = 'Skapa ny sida';
+$HEADING['ADD_HEADING'] = 'Rubrik';
+$HEADING['MODIFY_PAGE'] = '&Auml;ndra sida';
+$HEADING['MODIFY_PAGE_SETTINGS'] = '&Auml;ndra sidans inst&auml;llningar';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = '&Auml;ndra avancerade inst&auml;llningar f&ouml;r sidan';
+$HEADING['MANAGE_SECTIONS'] = 'Redigera sektioner';
+$HEADING['MODIFY_INTRO_PAGE'] = '&Auml;ndra F&ouml;rstasidan';
+
+$HEADING['BROWSE_MEDIA'] = 'Mediabibliotek';
+$HEADING['CREATE_FOLDER'] = 'Skapa ny mapp';
+$HEADING['UPLOAD_FILES'] = 'Ladda Upp fil(er)';
+
+$HEADING['INSTALL_MODULE'] = 'Installera modul';
+$HEADING['UNINSTALL_MODULE'] = 'Avinstallera modul';
+$HEADING['MODULE_DETAILS'] = 'Moduldetaljer';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Installera mall';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Avinstallera mall';
+$HEADING['TEMPLATE_DETAILS'] = 'Malldetaljer';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Installera spr&aring;k';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Avinstallera spr&aring;k';
+$HEADING['LANGUAGE_DETAILS'] = 'Spr&aring;kdetaljer';
+
+$HEADING['MY_SETTINGS'] = 'Mina uppgifter';
+$HEADING['MY_EMAIL'] = 'Min e-post';
+$HEADING['MY_PASSWORD'] = 'Mitt l&ouml;senord';
+
+$HEADING['GENERAL_SETTINGS'] = 'Generella inst&auml;llningar';
+$HEADING['DEFAULT_SETTINGS'] = 'Standardinst&auml;llningar';
+$HEADING['SEARCH_SETTINGS'] = 'S&ouml;kinst&auml;llningar';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Inst&auml;llningar f&ouml;r Filsystem';
+$HEADING['SERVER_SETTINGS'] = 'Server Inst&auml;llningar';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administrationsverktyg';
+
+$HEADING['MODIFY_DELETE_USER'] = '&Auml;ndra/radera anv&auml;ndare';
+$HEADING['ADD_USER'] = 'Skapa ny anv&auml;ndare';
+$HEADING['MODIFY_USER'] = '&Auml;ndra anv&auml;ndare';
+
+$HEADING['MODIFY_DELETE_GROUP'] = '&Auml;ndra/radera grupp';
+$HEADING['ADD_GROUP'] = 'Skapa ny grupp';
+$HEADING['MODIFY_GROUP'] = '&Auml;ndra grupp';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'L&auml;gg till';
+$TEXT['MODIFY'] = '&Auml;ndra';
+$TEXT['SETTINGS'] = 'Inst&auml;llningar';
+$TEXT['DELETE'] = 'Radera';
+$TEXT['SAVE'] = 'Spara';
+$TEXT['RESET'] = '&Aring;ngra';
+$TEXT['LOGIN'] = 'Logga In';
+$TEXT['RELOAD'] = 'Ladda Om';
+$TEXT['CANCEL'] = 'Avbryt';
+$TEXT['NAME'] = 'Namn';
+$TEXT['PLEASE_SELECT'] = 'V&auml;nligen v&auml;lj';
+$TEXT['TITLE'] = 'Titel';
+$TEXT['PARENT'] = 'Underliggande till';
+$TEXT['TYPE'] = 'Typ';
+$TEXT['VISIBILITY'] = 'Synlighetsgrad';
+$TEXT['PRIVATE'] = 'Privat';
+$TEXT['PUBLIC'] = 'Offentligt';
+$TEXT['NONE'] = 'Ingen';
+$TEXT['NONE_FOUND'] = 'Inget hittades';
+$TEXT['CURRENT'] = 'Nuvarande';
+$TEXT['CHANGE'] = '&Auml;ndra';
+$TEXT['WINDOW'] = 'F&ouml;nster';
+$TEXT['DESCRIPTION'] = 'Beskrivning';
+$TEXT['KEYWORDS'] = 'Nyckelord';
+$TEXT['ADMINISTRATORS'] = 'Administratorer';
+$TEXT['PRIVATE_VIEWERS'] = 'Privata anv&auml;ndare';
+$TEXT['EXPAND'] = '&Ouml;ppna';
+$TEXT['COLLAPSE'] = 'St&auml;ng';
+$TEXT['MOVE_UP'] = 'Flytta Upp';
+$TEXT['MOVE_DOWN'] = 'Flytta Ner';
+$TEXT['RENAME'] = 'D&ouml;p om';
+$TEXT['MODIFY_SETTINGS'] = 'Redigera inst&auml;llningar';
+$TEXT['MODIFY_CONTENT'] = 'Redigera inneh&aring;ll';
+$TEXT['VIEW'] = 'Visa';
+$TEXT['UP'] = 'Upp';
+$TEXT['FORGOTTEN_DETAILS'] = 'Gl&ouml;mt dina uppgifter?';
+$TEXT['NEED_TO_LOGIN'] = 'Logga in?';
+$TEXT['SEND_DETAILS'] = 'Skicka uppgifter';
+$TEXT['USERNAME'] = 'Anv&auml;ndarnamn';
+$TEXT['PASSWORD'] = 'L&ouml;senord';
+$TEXT['HOME'] = 'Hem';
+$TEXT['TARGET_FOLDER'] = 'M&aring;lmapp';
+$TEXT['OVERWRITE_EXISTING'] = 'Skriv &ouml;ver nuvarande';
+$TEXT['FILE'] = 'Fil';
+$TEXT['FILES'] = 'Filer';
+$TEXT['FOLDER'] = 'Mapp';
+$TEXT['FOLDERS'] = 'Mappar';
+$TEXT['CREATE_FOLDER'] = 'Skapa mapp';
+$TEXT['UPLOAD_FILES'] = 'Ladda upp filer';
+$TEXT['CURRENT_FOLDER'] = 'Nuvarande mapp';
+$TEXT['TO'] = 'Till';
+$TEXT['FROM'] = 'Fr&aring;n';
+$TEXT['INSTALL'] = 'Installera';
+$TEXT['UNINSTALL'] = 'Avinstallera';
+$TEXT['VIEW_DETAILS'] = 'Visa detaljer';
+$TEXT['DISPLAY_NAME'] = 'Visa namn';
+$TEXT['AUTHOR'] = 'F&ouml;rfattare';
+$TEXT['VERSION'] = 'Version';
+$TEXT['DESIGNED_FOR'] = 'Skapad f&ouml;r';
+$TEXT['DESCRIPTION'] = 'Beskrivning';
+$TEXT['EMAIL'] = 'E-post';
+$TEXT['LANGUAGE'] = 'Spr&aring;k';
+$TEXT['TIMEZONE'] = 'Tidzon';
+$TEXT['CURRENT_PASSWORD'] = 'Nuvarande l&ouml;senord';
+$TEXT['NEW_PASSWORD'] = 'Nytt l&ouml;senord';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Nytt l&ouml;senord igen';
+$TEXT['ACTIVE'] = 'Aktiv';
+$TEXT['DISABLED'] = 'Inaktiverad';
+$TEXT['ENABLED'] = 'Aktiverad';
+$TEXT['RETYPE_PASSWORD'] = 'Skriv l&ouml;senordet igen';
+$TEXT['GROUP'] = 'Grupp';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Systemtill&aring;telse';
+$TEXT['MODULE_PERMISSIONS'] = 'Modultill&aring;telse';
+$TEXT['SHOW_ADVANCED'] = 'Visa avancerade val';
+$TEXT['HIDE_ADVANCED'] = 'G&ouml;m avancerade val';
+$TEXT['BASIC'] = 'Standard';
+$TEXT['ADVANCED'] = 'Avancerat';
+$TEXT['WEBSITE'] = 'Websida';
+$TEXT['DEFAULT'] = 'Standard';
+$TEXT['KEYWORDS'] = 'Nyckelord';
+$TEXT['TEXT'] = 'Text';
+$TEXT['HEADER'] = 'Huvud';
+$TEXT['FOOTER'] = 'Fot';
+$TEXT['TEMPLATE'] = 'Mall';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Databas';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Inledning';
+$TEXT['PAGE'] = 'Sida';
+$TEXT['SIGNUP'] = 'Registrera';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP felrapport niv&aring;';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'S&ouml;kv&auml;g';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = '&Auml;ndelse';
+$TEXT['TABLE_PREFIX'] = 'Tabell prefix';
+$TEXT['CHANGES'] = '&Auml;ndringar';
+$TEXT['ADMINISTRATION'] = 'Administration';
+$TEXT['FORGOT_DETAILS'] = 'Gl&ouml;mt dina uppgifter?';
+$TEXT['LOGGED_IN'] = 'Inloggad';
+$TEXT['WELCOME_BACK'] = 'V&auml;lkommen tillbaka';
+$TEXT['FULL_NAME'] = 'Ditt hela namn';
+$TEXT['ACCOUNT_SIGNUP'] = 'Kontoregistrering';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'M&aring;lf&ouml;nster';
+$TEXT['NEW_WINDOW'] = 'Nytt f&ouml;nster';
+$TEXT['SAME_WINDOW'] = 'Samma f&ouml;nster';
+$TEXT['TOP_FRAME'] = 'Top frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Sidniv&aring; gr&auml;ns';
+$TEXT['SUCCESS'] = 'Lyckades';
+$TEXT['ERROR'] = 'FEL';
+$TEXT['ARE_YOU_SURE'] = '&Auml;r du s&auml;ker?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Nej';
+$TEXT['SYSTEM_DEFAULT'] = 'Systemets standard';
+$TEXT['PAGE_TITLE'] = 'Sidans titel';
+$TEXT['MENU_TITLE'] = 'Menyns titel';
+$TEXT['ACTIONS'] = '&Aring;tg&auml;rder';
+$TEXT['UNKNOWN'] = 'Ok&auml;nd';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'S&ouml;k';
+$TEXT['SEARCHING'] = 'S&ouml;ker';
+$TEXT['POST'] = 'Nyhet';
+$TEXT['COMMENT'] = 'Kommentar';
+$TEXT['COMMENTS'] = 'Kommentarer';
+$TEXT['COMMENTING'] = 'Kommenterar';
+$TEXT['SHORT'] = 'Ingress';
+$TEXT['LONG'] = 'Br&ouml;dtext';
+$TEXT['LOOP'] = 'Loop';
+$TEXT['FIELD'] = 'F&auml;lt';
+$TEXT['REQUIRED'] = 'Obligatoriskt';
+$TEXT['LENGTH'] = 'L&auml;ngd';
+$TEXT['MESSAGE'] = 'Meddelande';
+$TEXT['SUBJECT'] = '&Auml;mne';
+$TEXT['MATCH'] = 'Matcha';
+$TEXT['ALL_WORDS'] = 'Alla ord';
+$TEXT['ANY_WORDS'] = 'N&aring;got ord';
+$TEXT['EXACT_MATCH'] = 'Exakt matchning';
+$TEXT['SHOW'] = 'Visa';
+$TEXT['HIDE'] = 'G&ouml;m';
+$TEXT['START_PUBLISHING'] = 'Starta publicering';
+$TEXT['FINISH_PUBLISHING'] = 'Avsluta publicering';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Starta';
+$TEXT['END'] = 'Stopp';
+$TEXT['IMAGE'] = 'Bild';
+$TEXT['ICON'] = 'Icon';
+$TEXT['SECTION'] = 'Sektion';
+$TEXT['DATE_FORMAT'] = 'Datumformat';
+$TEXT['TIME_FORMAT'] = 'Tidsformat';
+$TEXT['RESULTS'] = 'Resultat';
+$TEXT['RESIZE'] = 'Storleks&auml;ndra';
+$TEXT['MANAGE'] = 'Behandla';
+$TEXT['CODE'] = 'Kod';
+$TEXT['WIDTH'] = 'Bredd';
+$TEXT['HEIGHT'] = 'H&ouml;jd';
+$TEXT['MORE'] = 'Mer';
+$TEXT['READ_MORE'] = 'L&auml;s mer';
+$TEXT['CHANGE_SETTINGS'] = '&Auml;ndra inst&auml;llningar';
+$TEXT['CURRENT_PAGE'] = 'Nuvarande sida';
+$TEXT['CLOSE'] = 'St&auml;ng';
+$TEXT['INTRO_PAGE'] = 'F&ouml;rstasida';
+$TEXT['INSTALLATION_URL'] = 'Installation URL';
+$TEXT['INSTALLATION_PATH'] = 'Installation s&ouml;kv&auml;g';
+$TEXT['PAGE_EXTENSION'] = 'Sidors fil&auml;ndelse';
+$TEXT['NO_RESULTS'] = 'Inget resultat';
+$TEXT['WEBSITE_TITLE'] = 'Websitens titel';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Websitens beskrivning';
+$TEXT['WEBSITE_KEYWORDS'] = 'Websitens nyckelord';
+$TEXT['WEBSITE_HEADER'] = 'Websitens huvud';
+$TEXT['WEBSITE_FOOTER'] = 'Websitens fot';
+$TEXT['RESULTS_HEADER'] = 'Resultat huvud';
+$TEXT['RESULTS_LOOP'] = 'Resultat loop';
+$TEXT['RESULTS_FOOTER'] = 'Resultat fot';
+$TEXT['LEVEL'] = 'Niv&aring;';
+$TEXT['NOT_FOUND'] = 'Hittades inte';
+$TEXT['PAGE_SPACER'] = 'Mellanrum sida';
+$TEXT['MATCHING'] = 'Matching';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Till&aring;telse mallar';
+$TEXT['PAGES_DIRECTORY'] = 'Sidors mapp';
+$TEXT['MEDIA_DIRECTORY'] = 'Media mapp';
+$TEXT['FILE_MODE'] = 'Fil s&auml;tt';
+$TEXT['USER'] = 'Anv&auml;ndare';
+$TEXT['OTHERS'] = 'Andra';
+$TEXT['READ'] = 'L&auml;s';
+$TEXT['WRITE'] = 'Skriv';
+$TEXT['EXECUTE'] = 'K&ouml;ra script';
+$TEXT['SMART_LOGIN'] = 'Smart inloggning';
+$TEXT['REMEMBER_ME'] = 'Kom ih&aring;g mig';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'R&auml;ttigheter filsystem';
+$TEXT['DIRECTORIES'] = 'Mappar';
+$TEXT['DIRECTORY_MODE'] = 'Mappar s&auml;tt';
+$TEXT['LIST_OPTIONS'] = 'Visa val';
+$TEXT['OPTION'] = 'Val';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Till&aring;t flera val';
+$TEXT['TEXTFIELD'] = 'Textrad';
+$TEXT['TEXTAREA'] = 'Textruta';
+$TEXT['SELECT_BOX'] = 'Valruta';
+$TEXT['CHECKBOX_GROUP'] = 'Valruta flera';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radioknapp flera';
+$TEXT['SIZE'] = 'Storlek';
+$TEXT['DEFAULT_TEXT'] = 'Standardtext';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Tillbaka';
+$TEXT['UNDER_CONSTRUCTION'] = 'Under uppbygnad.... Kommer snart';
+$TEXT['MULTISELECT'] = 'Flerval';
+$TEXT['SHORT_TEXT'] = 'Kort text';
+$TEXT['LONG_TEXT'] = 'L&aring;ng text';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Omstyrning hemsida';
+$TEXT['HEADING'] = 'Rubrik';
+$TEXT['MULTIPLE_MENUS'] = 'Flera menyer';
+$TEXT['REGISTERED'] = 'Registrerad';
+$TEXT['SECTION_BLOCKS'] = 'Sektioner block';
+$TEXT['REGISTERED_VIEWERS'] = 'Registrerade anv&auml;ndare';
+$TEXT['ALLOWED_VIEWERS'] = 'Till&aring;tna att se';
+$TEXT['SUBMISSION_ID'] = 'Inskickning ID';
+$TEXT['SUBMISSIONS'] = 'Inskickningar';
+$TEXT['SUBMITTED'] = 'Inskickat';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max poster per timme';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Poster som sparas i databasen';
+$TEXT['EMAIL_ADDRESS'] = 'E-postadress';
+$TEXT['CUSTOM'] = 'Sedvanlig';
+$TEXT['ANONYMOUS'] = 'Anonym';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serveroperativsystem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Skrivr&auml;ttigheter filer';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Hemmapp';
+$TEXT['HOME_FOLDERS'] = 'Hemmappar';
+$TEXT['PAGE_TRASH'] = 'Papperskorg';
+$TEXT['INLINE'] = 'Aktiverad';
+$TEXT['SEPARATE'] = 'Separerat';
+$TEXT['DELETED'] = 'Raderat';
+$TEXT['VIEW_DELETED_PAGES'] = 'Visa raderade sidor';
+$TEXT['EMPTY_TRASH'] = 'T&ouml;m papperskorgen';
+$TEXT['TRASH_EMPTIED'] = 'Papperskorgen t&ouml;md';
+$TEXT['ADD_SECTION'] = 'L&auml;gg till sektion';
+$TEXT['POST_HEADER'] = 'Nyhet huvud';
+$TEXT['POST_FOOTER'] = 'Nyhet fot';
+$TEXT['POSTS_PER_PAGE'] = 'Inl&auml;gg per sida';
+$TEXT['RESIZE_IMAGE_TO'] = 'Storleks&auml;ndra bilden till';
+$TEXT['UNLIMITED'] = 'Obegr&auml;nsat';
+$TEXT['OF'] = 'Av';
+$TEXT['OUT_OF'] = 'Utav';
+$TEXT['NEXT'] = 'N&auml;sta';
+$TEXT['PREVIOUS'] = 'F&ouml;reg&aring;ende';
+$TEXT['NEXT_PAGE'] = 'N&auml;sta sida';
+$TEXT['PREVIOUS_PAGE'] = 'F&ouml;reg&aring;ende sida';
+$TEXT['ON'] = 'Den';
+$TEXT['LAST_UPDATED_BY'] = 'Senast uppdaterad av';
+$TEXT['RESULTS_FOR'] = 'Resultat f&ouml;r';
+$TEXT['TIME'] = 'Tid';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG stil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG redigerare';
+$TEXT['SERVER_EMAIL'] = 'Server e-post';
+$TEXT['MENU'] = 'Meny';
+$TEXT['MANAGE_GROUPS'] = 'Behandla grupper';
+$TEXT['MANAGE_USERS'] = 'Behandla anv&auml;ndare';
+$TEXT['PAGE_LANGUAGES'] = 'Sidors spr&aring;k';
+$TEXT['HIDDEN'] = 'G&ouml;md';
+$TEXT['MAIN'] = 'Huvudmenyn';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = '&Auml;ndra filnamn vid uppladdning';
+$TEXT['APP_NAME'] = 'Namn p&aring; applikation';
+$TEXT['SESSION_IDENTIFIER'] = 'Sessionsidentifierare';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = '&Aring;terst&auml;ll';
+$TEXT['BACKUP_DATABASE'] = 'Backup av databas';
+$TEXT['RESTORE_DATABASE'] = '&Aring;terst&auml;ll databas';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup av samtliga tabeller i databasen';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup av endast tabeller f&ouml;r WB';
+$TEXT['BACKUP_MEDIA'] = 'Backup av media';
+$TEXT['RESTORE_MEDIA'] = '&Aring;terst&auml;ll media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administrationsverktyg';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captchaverifiering (&auml;ven kallat verifierings nummer) ';
+$TEXT['VERIFICATION'] = 'Verifikation';
+$TEXT['DEFAULT_CHARSET'] = 'Standardtypsnitt';
+$TEXT['CHARSET'] = 'Typsnitt';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Tyv&auml;rr, du har inte till&aring;telse att titta p&aring; denna sida';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Du har inte till&aring;telse att vara h&auml;r';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Skriv in ditt anv&auml;ndarnamn & L&ouml;senord';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Skriv ditt anv&auml;ndarnamn';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Skriv ditt l&ouml;senord';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Anv&auml;ndarnamnet &auml;r f&ouml;r kort';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'L&ouml;senordet &auml;r f&ouml;r kort';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Anv&auml;ndarnamnet &auml;r f&ouml;r l&aring;ngt';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'L&ouml;senordet &auml;r f&ouml;r l&aring;ngt';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Felaktigt anv&auml;ndarnamn eller l&ouml;senord';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Du m&aring;ste skriva en e-postadress';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Skriv din e-postadress';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'E-postadressen som du skrev in kan inte hittas i v&aring;r databas';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Kunde inte skicka l&ouml;senordet, v&auml;nligen kontakta administratat&ouml;ren';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Ditt anv&auml;ndarnamn & l&ouml;senord har skickats till din e-postadress';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'L&ouml;senordet kan bara &auml;ndras max en g&aring;ng per timme';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'V&auml;lkommen till administrationen av Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'VARNING, installationsmappen finns fortfarande kvar!';
+$MESSAGE['START']['CURRENT_USER'] = 'Du &auml;r inloggad som:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Kunde inte &ouml;ppna konfigurationsfilen';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Kan inte skriva till konfigurationsfilen';
+$MESSAGE['SETTINGS']['SAVED'] = 'Inst&auml;llningarna sparades';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Observera: Om du klickar p&aring; denna knapp s&aring; f&ouml;rsvinner all ny information som inte sparats';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Observera: detta rekomenderas endast f&ouml;r tillf&auml;llig pr&ouml;vning av sidorna';
+
+$MESSAGE['USERS']['ADDED'] = 'Anv&auml;ndaren lades till';
+$MESSAGE['USERS']['SAVED'] = 'Anv&auml;ndaren sparades';
+$MESSAGE['USERS']['DELETED'] = 'Anv&auml;ndaren Raderades';
+$MESSAGE['USERS']['NO_GROUP'] = 'Ingen grupp valdes';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Anv&auml;ndarnamnet &auml;r f&ouml;r kort';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'L&ouml;senordet &auml;r for kort';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'L&ouml;senorden du skrev var inte lika';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'E-post adressen &auml;r felaktig';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'E-post adressen du skrev finns redan i v&aring;r Databas';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Anv&auml;ndarnamnet du skrev &auml;r upptaget';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Observera: Dessa f&auml;lt ska du bara skriva i om du vill &Auml;NDRA L&ouml;senordet';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Vill du verkligen radera anv&auml;ndaren?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Gruppen lades till';
+$MESSAGE['GROUPS']['SAVED'] = 'Gruppen sparades';
+$MESSAGE['GROUPS']['DELETED'] = 'Gruppen raderades';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Gruppen m&aring;ste ha ett namn';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Vill du verkligen radera gruppen med alla dess anv&auml;ndare?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Ingen grupp hittades';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Gruppnamnet finns redan';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Uppgifterna sparades';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-postadressen uppdaterades';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Det (nuvarande) l&ouml;senordet du skrev &auml;r inte r&auml;tt';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'L&ouml;senordet &auml;ndrades';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Observera: f&ouml;r att &auml;ndra Mall, m&aring;ste du g&aring; till Sektionen Inst&auml;llningar';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Kan inte inkludera ../ i mappens namn';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Mappen finns inte';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Kan inte ha ../ i mappens m&aring;l';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Kan inte inkludera ../ i namnet';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Kan inte anv&auml;nda index.php som Namn';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Ingen media hittades i mappen';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Filen hittades inte';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Filen raderades';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Mappen raderades';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Vill du verkligen radera f&auml;ljande fil/mapp?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Kan inte radera filen';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Kan inte radera mappen';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Du skrev inget nytt namn';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Du skrev ingen fil&auml;ndelse';
+$MESSAGE['MEDIA']['RENAMED'] = 'Namn&auml;ndring utf&ouml;rdes';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Namn&auml;ndring utf&ouml;rdes INTE';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Det finns redan en fil med samma namn';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Det finns redan en mapp med samma namn';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Mappen skapades';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Kunde inte skapa mapp';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' filen laddades upp';
+$MESSAGE['MEDIA']['UPLOADED'] = ' filerna laddades upp';
+
+$MESSAGE['PAGES']['ADDED'] = 'Sidan lades till';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Sidans huvud lades till';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'En sida med samma eller liknande titel finns redan';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Fel vid skapande av fil (otillr&auml;cklig till&aring;telse)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Fel vid radering av fil (otillr&auml;cklig till&aring;telse)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Sidan hittades inte';
+$MESSAGE['PAGES']['SAVED'] = 'Sidan sparades';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Sidans inst&auml;llningar sparades';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Fel n&auml;r sidan sparades';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Vill du verkligen radera sidan med alla dess undersidor?';
+$MESSAGE['PAGES']['DELETED'] = 'Sidan raderades';
+$MESSAGE['PAGES']['RESTORED'] = 'Sidan &aring;terskapades';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Skriv en titel p&aring; sidan';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Skriv en titel p&aring; menyn';
+$MESSAGE['PAGES']['REORDERED'] = 'Sidorna omordnades';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Fel vid omordning av sidorna';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Du har inte til&aring;telse att redigera denna sida';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Kan inte skriva till filen /pages/intro.php (otillr&auml;klig till&aring;telse)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'F&ouml;rstasidan sparades';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Senast redigerad av';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Klicka h&auml;r f&ouml;r att redigera F&ouml;rstasidan';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Sektionens inst&auml;llningar sparades';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Tillbaka till Sidor';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'G&aring; tillbaka och fyll i alla f&auml;lt';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Observera att filen du laddar upp m&aring;ste vara i formatet:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Observera att filen du laddar upp m&aring;ste vara i ett av f&ouml;ljande format:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Kan inte ladda upp fil';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Redan installerat';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Inte installerat';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Kan inte avinstallera';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Kan inte packa upp filen';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installerat';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Uppgradering genomf&ouml;rd';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Avinstallerat';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kan inte skriva i m&aring;lmappen';
+$MESSAGE['GENERIC']['INVALID'] = 'Filen du laddade upp &auml;r ogilltig';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kan inte avinstallera: filen anv&auml;nds just nu';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'V&auml;nligen kom tillbaka snart...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'V&auml;nligen ha t&aring;lamod, det h&auml;r kan ta en stund.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Fel vid &ouml;ppnande av fil.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Du m&aring;ste fylla i f&ouml;ljande f&auml;lt';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Tyv&auml;rr, detta formul&auml;r har skickats f&ouml;r m&aring;nga g&aring;nger inom denna timme. F&ouml;rs&ouml;k igen om ett tag.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Verifieringsnumret (ocks&aring; k&auml;nt som Captcha) som du angav &auml;r felaktigt. Om du har problem med att l&auml;sa ut Captcha, v&auml;nligen s&auml;nd email till: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'V&auml;nligen v&auml;lj vilka till&auml;gg du vill ladda om';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduler laddades om';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Mallar laddades om';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Spr&aring;k laddades om';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/SE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/ES.php
===================================================================
--- tags/2.7.0/wb/languages/ES.php	(nonexistent)
+++ tags/2.7.0/wb/languages/ES.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'ES';
+$language_name = 'Spanish';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Samuel Mateo, Jr. | samuelmateo.com';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Inicio';
+$MENU['PAGES'] = 'P&aacute;ginas';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Add-ons';
+$MENU['MODULES'] = 'M&oacute;dulos';
+$MENU['TEMPLATES'] = 'Plantillas';
+$MENU['LANGUAGES'] = 'Lenguajes';
+$MENU['PREFERENCES'] = 'Preferencias';
+$MENU['SETTINGS'] = 'Configuraci&oacute;n';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Acceso';
+$MENU['USERS'] = 'Usuarios';
+$MENU['GROUPS'] = 'Grupos';
+$MENU['HELP'] = 'Ayuda';
+$MENU['VIEW'] = 'Vista Preliminar';
+$MENU['LOGOUT'] = 'Salir';
+$MENU['LOGIN'] = 'Entrar';
+$MENU['FORGOT'] = 'Recuperar los detalles de registro';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administraci&oacute;n General';
+$OVERVIEW['PAGES'] = 'Administrar p&aacute;ginas del web...';
+$OVERVIEW['MEDIA'] = 'Administrar archivos en la carpeta Media...';
+$OVERVIEW['MODULES'] = 'Administrar m&oacute;dulos de Website Baker...';
+$OVERVIEW['TEMPLATES'] = 'Administrar plantillas de apariencia...';
+$OVERVIEW['LANGUAGES'] = 'Administrar lenguajes...';
+$OVERVIEW['PREFERENCES'] = 'Cambiar preferencias de email, contrase&ntilde;a, etc... ';
+$OVERVIEW['SETTINGS'] = 'Configurar Website Baker...';
+$OVERVIEW['USERS'] = 'Administrar acceso de usuarios a Website Baker...';
+$OVERVIEW['GROUPS'] = 'Administrar groups de usuarios y sus permisos...';
+$OVERVIEW['HELP'] = 'Respuestas a tus preguntas...';
+$OVERVIEW['VIEW'] = 'Ver y explorar tu sitio en una nueva ventana...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modificar/Eliminar P&aacute;gina';
+$HEADING['DELETED_PAGES'] = 'P&aacute;ginas Eliminadas';
+$HEADING['ADD_PAGE'] = 'Agregar P&aacute;gina';
+$HEADING['ADD_HEADING'] = 'Agregar Encabezado';
+$HEADING['MODIFY_PAGE'] = 'Modificar P&aacute;gina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modificar Configuraci&oacute;n de P&aacute;gina';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modificar Configuraci&oacute;n Avanzada de P&aacute;gina';
+$HEADING['MANAGE_SECTIONS'] = 'Administrar Secciones';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modificar P&aacute;gina Intro';
+
+$HEADING['BROWSE_MEDIA'] = 'Explorar Media';
+$HEADING['CREATE_FOLDER'] = 'Crear Carpeta';
+$HEADING['UPLOAD_FILES'] = 'Subir Archivo(s)';
+
+$HEADING['INSTALL_MODULE'] = 'Instalar M&oacute;dulo';
+$HEADING['UNINSTALL_MODULE'] = 'Desinstalar M&oacute;dulo';
+$HEADING['MODULE_DETAILS'] = 'Detalles de M&oacute;dulo';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Instalar Plantilla';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Desinstalar Plantilla';
+$HEADING['TEMPLATE_DETAILS'] = 'Detalles de Plantilla';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Instalar Lenguaje';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Desinstalar Lenguaje';
+$HEADING['LANGUAGE_DETAILS'] = 'Detalles del Lenguaje';
+
+$HEADING['MY_SETTINGS'] = 'Mi Configuraci&oacute;n';
+$HEADING['MY_EMAIL'] = 'Mi Email';
+$HEADING['MY_PASSWORD'] = 'Mi Contrase&ntilde;a';
+
+$HEADING['GENERAL_SETTINGS'] = 'Configuraci&oacute;n General';
+$HEADING['DEFAULT_SETTINGS'] = 'Configuraci&oacute;n Original';
+$HEADING['SEARCH_SETTINGS'] = 'Configuraci&oacute;n del Search';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Configuraci&oacute;n del sistema de Ficheros';
+$HEADING['SERVER_SETTINGS'] = 'Configuraci&oacute;n del Servidor';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Herramientas de administraci&oacute;n';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modificar/Eliminar Usuario';
+$HEADING['ADD_USER'] = 'Agregar Usuario';
+$HEADING['MODIFY_USER'] = 'Modificar Usuario';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modificar/Eliminar Grupo';
+$HEADING['ADD_GROUP'] = 'Agregar Grupo';
+$HEADING['MODIFY_GROUP'] = 'Modificar Grupo';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Agregar';
+$TEXT['MODIFY'] = 'Modificar';
+$TEXT['SETTINGS'] = 'Configuraci&oacute;n';
+$TEXT['DELETE'] = 'Eliminar';
+$TEXT['SAVE'] = 'Guardar';
+$TEXT['RESET'] = 'Reiniciar';
+$TEXT['LOGIN'] = 'Entrar';
+$TEXT['RELOAD'] = 'Recargar';
+$TEXT['CANCEL'] = 'Cancelar';
+$TEXT['NAME'] = 'nombre';
+$TEXT['PLEASE_SELECT'] = 'Elegir';
+$TEXT['TITLE'] = 'T&iacute;tulo';
+$TEXT['PARENT'] = 'Padre';
+$TEXT['TYPE'] = 'Tipo';
+$TEXT['VISIBILITY'] = 'Visibilidad';
+$TEXT['PRIVATE'] = 'Privada';
+$TEXT['PUBLIC'] = 'P&uacute;blica';
+$TEXT['NONE'] = 'Ninguno';
+$TEXT['NONE_FOUND'] = 'Ninguna';
+$TEXT['CURRENT'] = 'Corriente';
+$TEXT['CHANGE'] = 'Cambiar';
+$TEXT['WINDOW'] = 'Ventana';
+$TEXT['DESCRIPTION'] = 'Descripci&oacute;n';
+$TEXT['KEYWORDS'] = 'Palabras Clave';
+$TEXT['ADMINISTRATORS'] = 'Administradores';
+$TEXT['PRIVATE_VIEWERS'] = 'Usuarios privados';
+$TEXT['EXPAND'] = 'Expandir';
+$TEXT['COLLAPSE'] = 'Colapsar';
+$TEXT['MOVE_UP'] = 'Subir';
+$TEXT['MOVE_DOWN'] = 'Bajar';
+$TEXT['RENAME'] = 'Renombrar';
+$TEXT['MODIFY_SETTINGS'] = 'Cambiar Configuraci&oacute;n';
+$TEXT['MODIFY_CONTENT'] = 'Modificar Contenido';
+$TEXT['VIEW'] = 'Ver';
+$TEXT['UP'] = 'Arriba';
+$TEXT['FORGOTTEN_DETAILS'] = '&iquest;Lo ha olvidado?';
+$TEXT['NEED_TO_LOGIN'] = '&iquest;Necesita Entrar?';
+$TEXT['SEND_DETAILS'] = 'Enviar Detalles';
+$TEXT['USERNAME'] = 'Usuario';
+$TEXT['PASSWORD'] = 'Contrase&ntilde;a';
+$TEXT['HOME'] = 'Inicio';
+$TEXT['TARGET_FOLDER'] = 'Carpeta';
+$TEXT['OVERWRITE_EXISTING'] = 'Sobreescribir';
+$TEXT['FILE'] = 'Archivo';
+$TEXT['FILES'] = 'Archivos';
+$TEXT['FOLDER'] = 'Carpeta';
+$TEXT['FOLDERS'] = 'Carpetas';
+$TEXT['CREATE_FOLDER'] = 'Crear Carpeta';
+$TEXT['UPLOAD_FILES'] = 'Subir Archivo(s)';
+$TEXT['CURRENT_FOLDER'] = 'Carpeta Actual';
+$TEXT['TO'] = 'Para';
+$TEXT['FROM'] = 'De';
+$TEXT['INSTALL'] = 'Instalar';
+$TEXT['UNINSTALL'] = 'Desinstalar';
+$TEXT['VIEW_DETAILS'] = 'Ver Detalles';
+$TEXT['DISPLAY_NAME'] = 'Mostrar Nombre';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Versi&oacute;n';
+$TEXT['DESIGNED_FOR'] = 'Dise&ntilde;ado para';
+$TEXT['DESCRIPTION'] = 'Descripci&oacute;n';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Lenguaje';
+$TEXT['TIMEZONE'] = 'Huso Horario';
+$TEXT['CURRENT_PASSWORD'] = 'Contrase&ntilde;a Actual';
+$TEXT['NEW_PASSWORD'] = 'Nueva Contrase&ntilde;a';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Repetir Nueva Contrase&ntilde;a';
+$TEXT['ACTIVE'] = 'Activo';
+$TEXT['DISABLED'] = 'Deshabilitado';
+$TEXT['ENABLED'] = 'Habilitado';
+$TEXT['RETYPE_PASSWORD'] = 'Repetir Contrase&ntilde;a';
+$TEXT['GROUP'] = 'Grupo';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Permisos de Sistema';
+$TEXT['MODULE_PERMISSIONS'] = 'Permisos de Modulo';
+$TEXT['SHOW_ADVANCED'] = 'Ver Opciones Avanzadas';
+$TEXT['HIDE_ADVANCED'] = 'Ocultar Opciones Avanzadas';
+$TEXT['BASIC'] = 'Basico';
+$TEXT['ADVANCED'] = 'Avanzado';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Original';
+$TEXT['KEYWORDS'] = 'Palabras Clave';
+$TEXT['TEXT'] = 'Texto';
+$TEXT['HEADER'] = 'Encabezado';
+$TEXT['FOOTER'] = 'Pie de p&aacute;gina';
+$TEXT['TEMPLATE'] = 'Plantilla';
+$TEXT['INSTALLATION'] = 'Instalaci&oacute;n';
+$TEXT['DATABASE'] = 'Base de datos';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'P&aacute;gina';
+$TEXT['SIGNUP'] = 'Firmar';
+$TEXT['PHP_ERROR_LEVEL'] = 'Nivel de Reporte de Errores de PHP';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Ruta de acceso';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Extensi&oacute;n';
+$TEXT['TABLE_PREFIX'] = 'Prefijo de tablas';
+$TEXT['CHANGES'] = 'Cambios';
+$TEXT['ADMINISTRATION'] = 'Administraci&oacute;n';
+$TEXT['FORGOT_DETAILS'] = '&iquest;Olvid&oacute; los detalles?';
+$TEXT['LOGGED_IN'] = 'Conectado';
+$TEXT['WELCOME_BACK'] = 'Bienvenido';
+$TEXT['FULL_NAME'] = 'Nombre Completo';
+$TEXT['ACCOUNT_SIGNUP'] = 'Abrir Cuenta';
+$TEXT['LINK'] = 'Enlace';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Objetivo';
+$TEXT['NEW_WINDOW'] = 'Nueva Ventana';
+$TEXT['SAME_WINDOW'] = 'Misma Ventana';
+$TEXT['TOP_FRAME'] = 'Marco Superior';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Niveles de P&aacute;ginas';
+$TEXT['SUCCESS'] = '&Eacute;xito';
+$TEXT['ERROR'] = 'Error';
+$TEXT['ARE_YOU_SURE'] = '&iquest;Esta seguro?';
+$TEXT['YES'] = 'Si';
+$TEXT['NO'] = 'No';
+$TEXT['SYSTEM_DEFAULT'] = 'Original del Sistema';
+$TEXT['PAGE_TITLE'] = 'T&iacute;tulo de la P&aacute;gina';
+$TEXT['MENU_TITLE'] = 'T&iacute;tulo del Men&uacute;';
+$TEXT['ACTIONS'] = 'Acciones';
+$TEXT['UNKNOWN'] = 'Desconocido';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'Buscar';
+$TEXT['SEARCHING'] = 'Buscando';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Comentario';
+$TEXT['COMMENTS'] = 'Comentarios';
+$TEXT['COMMENTING'] = 'Comentando';
+$TEXT['SHORT'] = 'Corto';
+$TEXT['LONG'] = 'Largo';
+$TEXT['LOOP'] = 'Bucle';
+$TEXT['FIELD'] = 'Campo';
+$TEXT['REQUIRED'] = 'Obligatorio';
+$TEXT['LENGTH'] = 'Largo';
+$TEXT['MESSAGE'] = 'Mensaje';
+$TEXT['SUBJECT'] = 'Asunto';
+$TEXT['MATCH'] = 'Coincidencia';
+$TEXT['ALL_WORDS'] = 'Todas las palabras';
+$TEXT['ANY_WORDS'] = 'Alguna de las palabras';
+$TEXT['EXACT_MATCH'] = 'Frase exacta';
+$TEXT['SHOW'] = 'Ver';
+$TEXT['HIDE'] = 'Ocultar';
+$TEXT['START_PUBLISHING'] = 'Iniciar Publicaci&oacute;n';
+$TEXT['FINISH_PUBLISHING'] = 'Terminar Publicaci&oacute;n';
+$TEXT['DATE'] = 'Fecha';
+$TEXT['START'] = 'Inicio';
+$TEXT['END'] = 'Fin';
+$TEXT['IMAGE'] = 'Imagen';
+$TEXT['ICON'] = 'Icono';
+$TEXT['SECTION'] = 'Secci&oacute;n';
+$TEXT['DATE_FORMAT'] = 'Formato de Fecha';
+$TEXT['TIME_FORMAT'] = 'Formato de Hora';
+$TEXT['RESULTS'] = 'Resultados';
+$TEXT['RESIZE'] = 'Tama&ntilde;o';
+$TEXT['MANAGE'] = 'Administrar';
+$TEXT['CODE'] = 'C&oacute;digo';
+$TEXT['WIDTH'] = 'Ancho';
+$TEXT['HEIGHT'] = 'Altura';
+$TEXT['MORE'] = 'M&aacute;s';
+$TEXT['READ_MORE'] = 'M&aacute;s Inforomaci&oacute;n';
+$TEXT['CHANGE_SETTINGS'] = 'Cambiar Configuraci&oacute;n';
+$TEXT['CURRENT_PAGE'] = 'P&aacute;gina Actual';
+$TEXT['CLOSE'] = 'Cerrar';
+$TEXT['INTRO_PAGE'] = 'P&aacute;gina Intro';
+$TEXT['INSTALLATION_URL'] = 'URL de Instalaci&oacute;n';
+$TEXT['INSTALLATION_PATH'] = 'Ruta de Instalaci&oacute;n';
+$TEXT['PAGE_EXTENSION'] = 'Extensi&oacute;n de P&aacute;gina';
+$TEXT['NO_RESULTS'] = 'Ning&uacute;n Resultado';
+$TEXT['WEBSITE_TITLE'] = 'T&iacute;tulo del Web';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Descripci&oacute;n del Web';
+$TEXT['WEBSITE_KEYWORDS'] = 'Palabras Clave del Web';
+$TEXT['WEBSITE_HEADER'] = 'Encabezado del Web';
+$TEXT['WEBSITE_FOOTER'] = 'Pie de p&aacute;gina del Web';
+$TEXT['RESULTS_HEADER'] = 'Encabezado de Resultados';
+$TEXT['RESULTS_LOOP'] = 'Bucle de Resultados';
+$TEXT['RESULTS_FOOTER'] = 'Pie de P&aacute;gina de Resultados';
+$TEXT['LEVEL'] = 'Nivel';
+$TEXT['NOT_FOUND'] = 'No Encontrado.';
+$TEXT['PAGE_SPACER'] = 'Separador de P&aacute;gina';
+$TEXT['MATCHING'] = 'Coincidencia';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Permisos de plantilla';
+$TEXT['PAGES_DIRECTORY'] = 'Directorio de P&aacute;ginas';
+$TEXT['MEDIA_DIRECTORY'] = 'Directorio de Media';
+$TEXT['FILE_MODE'] = 'Modo de Archivo';
+$TEXT['USER'] = 'Ususario';
+$TEXT['OTHERS'] = 'Otros';
+$TEXT['READ'] = 'Lectura';
+$TEXT['WRITE'] = 'Escritura';
+$TEXT['EXECUTE'] = 'Ejecuci&oacute;n';
+$TEXT['SMART_LOGIN'] = 'Entrada Inteligente';
+$TEXT['REMEMBER_ME'] = 'Recu&eacute;rdame';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Permisos del Sistema de Archivos';
+$TEXT['DIRECTORIES'] = 'Directorios';
+$TEXT['DIRECTORY_MODE'] = 'Modo de Directorios';
+$TEXT['LIST_OPTIONS'] = 'Opciones de Lista';
+$TEXT['OPTION'] = 'Opci&oacute;n';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Selecciones M&uacute;ltiples';
+$TEXT['TEXTFIELD'] = 'Campo de texto';
+$TEXT['TEXTAREA'] = 'Textarea';
+$TEXT['SELECT_BOX'] = 'Caja de selecci&oacute;n';
+$TEXT['CHECKBOX_GROUP'] = 'Grupo de Checkbox ';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Gupo Bot&oacute;n de Radio';
+$TEXT['SIZE'] = 'Tama&ntilde;o';
+$TEXT['DEFAULT_TEXT'] = 'Texto Predeterminado';
+$TEXT['SEPERATOR'] = 'Separador';
+$TEXT['BACK'] = 'Volver';
+$TEXT['UNDER_CONSTRUCTION'] = 'En Construcci&oacute;n';
+$TEXT['MULTISELECT'] = 'Multi-selecci&oacute;n';
+$TEXT['SHORT_TEXT'] = 'Texto Corto';
+$TEXT['LONG_TEXT'] = 'Texto largo';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirecci&oacute;n a la p&aacute;gina de Inicio';
+$TEXT['HEADING'] = 'Encabezado';
+$TEXT['MULTIPLE_MENUS'] = 'Men&uacute;s M&uacute;ltiples';
+$TEXT['REGISTERED'] = 'Registrado';
+$TEXT['SECTION_BLOCKS'] = 'Bloques de la Secci&oacute;n';
+$TEXT['REGISTERED_VIEWERS'] = 'Visitantes Registrados';
+$TEXT['ALLOWED_VIEWERS'] = 'Espectadores Permitidos';
+$TEXT['SUBMISSION_ID'] = 'Presentaci&oacute;n ID';
+$TEXT['SUBMISSIONS'] = 'Presentaciones';
+$TEXT['SUBMITTED'] = 'Presentado';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Presentaciones por hora';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Presenciaciones Guardadas en la base de datos';
+$TEXT['EMAIL_ADDRESS'] = 'Direcci&oacute;n de Email';
+$TEXT['CUSTOM'] = 'Personalizado';
+$TEXT['ANONYMOUS'] = 'An&oacute;nimo';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Sistema Operativo del Servidor';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Permisos de escritura para todos';
+$TEXT['LINUX_UNIX_BASED'] = 'basado en Linux/Unix ';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Carpeta Inicio';
+$TEXT['HOME_FOLDERS'] = 'Carpetas Inicio';
+$TEXT['PAGE_TRASH'] = 'Papelera en P&aacute;gina';
+$TEXT['INLINE'] = 'En l&iacute;nea';
+$TEXT['SEPARATE'] = 'Separado';
+$TEXT['DELETED'] = 'Eliminado';
+$TEXT['VIEW_DELETED_PAGES'] = 'Ver P&aacute;ginas Eliminadas';
+$TEXT['EMPTY_TRASH'] = 'Vaciar Papelera';
+$TEXT['TRASH_EMPTIED'] = 'Papelera Vac&iacute;a';
+$TEXT['ADD_SECTION'] = 'Agregar Secci&oacute;n';
+$TEXT['POST_HEADER'] = 'Post Encabezado';
+$TEXT['POST_FOOTER'] = 'Post Pie';
+$TEXT['POSTS_PER_PAGE'] = 'Posts Por P&aacute;gina';
+$TEXT['RESIZE_IMAGE_TO'] = 'Redimensionar imagen a';
+$TEXT['UNLIMITED'] = 'Ilimitado';
+$TEXT['OF'] = 'De';
+$TEXT['OUT_OF'] = 'Fuera De';
+$TEXT['NEXT'] = 'Siguiente';
+$TEXT['PREVIOUS'] = 'Anterior';
+$TEXT['NEXT_PAGE'] = 'Siguiente P&aacute;gina';
+$TEXT['PREVIOUS_PAGE'] = 'P&aacute;gina Anterior';
+$TEXT['ON'] = 'En';
+$TEXT['LAST_UPDATED_BY'] = 'Editado por';
+$TEXT['RESULTS_FOR'] = 'Resultados para';
+$TEXT['TIME'] = 'Hora';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG';
+$TEXT['WYSIWYG_EDITOR'] = 'Editor WYSIWYG';
+$TEXT['SERVER_EMAIL'] = 'Servidor de Email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Administrar Grupos';
+$TEXT['MANAGE_USERS'] = 'Administrar Usuarios';
+$TEXT['PAGE_LANGUAGES'] = 'Lenguages de P&aacute;gina';
+$TEXT['HIDDEN'] = 'Oculto';
+$TEXT['MAIN'] = 'Principal';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Renombrar los ficheros en la subida';
+$TEXT['APP_NAME'] = 'Nombre de aplicaci&oacute;n';
+$TEXT['SESSION_IDENTIFIER'] = 'Identificador de Sesi&oacute;n';
+$TEXT['BACKUP'] = 'Copia de seguridad';
+$TEXT['RESTORE'] = 'Restaurar';
+$TEXT['BACKUP_DATABASE'] = 'Base de datos de seguridad';
+$TEXT['RESTORE_DATABASE'] = 'Restaurar base de datos';
+$TEXT['BACKUP_ALL_TABLES'] = 'Reserva todas las Tablas de la Base de Datos';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Reserva solamente las tablas de WB';
+$TEXT['BACKUP_MEDIA'] = 'Copia de seguridad de los Medios';
+$TEXT['RESTORE_MEDIA'] = 'Restaurar Medios';
+$TEXT['ADMINISTRATION_TOOL'] = 'Herramienta de Administraci&oacute;n';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Verificaci&oacute;n de Captcha (clave)';
+$TEXT['VERIFICATION'] = 'Verificaci&oacute;n';
+$TEXT['DEFAULT_CHARSET'] = 'Conjunto de caracteres por defecto';
+$TEXT['CHARSET'] = 'Conjunto de Caraceteres';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Perd&oacute;n, no tiene permiso para ver esta p&aacute;gina';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Privilegios insuficientes para estar aqu&iacute;';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Ingrese su Nombre de Usuario y Contrase&ntilde;a';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Ingrese su Nombre de Usuario';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'ingrese su Contrase&ntilde;a';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Nombre de Usuario muy corto';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Contrase&ntilde;a muy corta';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Nombre de Usuario muy largo';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Contrase&ntilde;a muy larga';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'El Nombre de Usuario o Pasword incorrecto';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Debe ingresar una direccion de email';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Por favor ingrese su direccion de email';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Email no encontrado en base de datos';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'No puedo enviarle la contrase&ntilde;a, contacte a su Administrador';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Nombre de Usuario y Contrase&ntilde;a enviados a su direccion de email';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'La contrase&ntilde;a no puede ser cambiada m&aacute;s de una vez por hora';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Bienvenido a la consola de Administraci&oacute;n';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'El directorio de instalaci&oacute;n todav&iacute;a existe. Es buena idea eliminarlo!';
+$MESSAGE['START']['CURRENT_USER'] = 'Est&aacute;s conectado como:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'No se pudo abrir el archivo de configuraci&oacute;n';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'No se pudo escribir en el archivo de configuraci&oacute;n';
+$MESSAGE['SETTINGS']['SAVED'] = 'Configuraci&oacute;n guardada';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Atenci&oacute;n: Este bot&oacute;n eliminar&aacute; los cambios que no hayan sido guardados.';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Atenci&oacute;n: S&oacute;lo recomendado para entornos de prueba';
+
+$MESSAGE['USERS']['ADDED'] = 'Nuevo usuario agregado';
+$MESSAGE['USERS']['SAVED'] = 'Usuario guardado';
+$MESSAGE['USERS']['DELETED'] = 'Usuario eliminado';
+$MESSAGE['USERS']['NO_GROUP'] = 'Ning&uacute;n grupo fue seleccionado';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Nombre de Usuario muy corto';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Contrase&ntilde;a muy corta';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Las contrase&ntilde;as no coinciden';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Email inv&aacute;lido';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Email en uso';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Nombre de Usuario ocupado';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Atenci&oacute;n: Solo debe escribir en estos campos si desea cambiar la contrase&ntilde;a de este usuario.';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = '&iquest;Esta seguro que desea eliminar el usuario?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Nuevo grupo agregado';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupo guardado';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupo eliminado';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'El nombre del grupo est&aacute; vaci&oacute;';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = '&iquest;Est&aacute; seguro que desea eliminar el grupo selecciondo (y los usuarios que lo componen)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'No hay ning&ntilde;n grupo';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Nombre de grupo ya existe';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detalles guardados';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email guardado';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'El (actual) es incorrecto';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Contrase&ntilde;a cambiada';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Atenci&oacute;n: para cambiar la plantilla ir a la secci&oacute;n de Configuraci&oacute;n';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'No puede incluir ../ en el nombre de carpeta';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'El directorio no existe';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'No puede tener ../ en el nombre de carpeta';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'No puede incluir ../ en el nombre';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'No se puede usar index.php como nombre';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'No hay medias en esta carpeta';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Archivo no encontrado';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Archivo eliminado';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Carpeta eliminada';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = '&iquest;Est&aacute; seguro que desea eliminar la siguiente carpeta o archivo?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'No se puede eliminar el archivo seleccionado';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'No se puede eliminar la carpeta seleccionada';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'No ha ingresado un nombre nuevo';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'No ha ingresado una extensi&oacute;n de archivo';
+$MESSAGE['MEDIA']['RENAMED'] = 'El Nombre ha sido cambiado';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'El Nombre no ha sido cambiado';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Ese archivo ya existe';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Esa carpeta ya existe';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Carpeta creada';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'No se pudo crear carpeta';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' archivo recibido correctamente';
+$MESSAGE['MEDIA']['UPLOADED'] = ' archivos recibidos correctamente';
+
+$MESSAGE['PAGES']['ADDED'] = 'P&aacute;gina agregada';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Encabezado de P&aacute;gina agregado';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Ya existe una p&aacute;gina con un t&iacute;tulo igual o similar';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Error creando archivo de acceso en el directorio /pages (privilegios insuficientes)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Error eliminando archivo de acceso en el directorio /pages (privilegios insuficientes)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'No se ha encontrado la p&aacute;gina';
+$MESSAGE['PAGES']['SAVED'] = 'P&aacute;gina guardada correctamente';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Configuraci&oacute;n de P&aacute;gina guardada';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Error guardando la p&aacute;gina';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Est&aacute; seguro que desea eliminar esta p&aacute;gina y todas sus sub-p&aacute;ginas';
+$MESSAGE['PAGES']['DELETED'] = 'P&aacute;gina eliminada';
+$MESSAGE['PAGES']['RESTORED'] = 'P&aacute;gina recuperada';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Ingrese un t&iacute;tulo de p&aacute;gina';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Inagrese un t&iacute;tulo de men&uacute;';
+$MESSAGE['PAGES']['REORDERED'] = 'Orden de p&aacute;gina cambiado';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Error reordenando la p&aacute;gina';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Usted no tiene permiso para modificar esta p&aacute;gina';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'No se pudo escribir en el archivo /pages/intro.php (privilegios insuficientes)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Intro guardada';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = '&Uacute;ltima modificaci&oacute;n hecha por';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Pinche aqu&iacute; para modificar Intro';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Propiedades de la secci&oacute;n guardadas';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Volver a las p&aacute;ginas';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Vuelva y complete todos los campos';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'El archivo a subir debe ser del siguiente formato:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'El archivo a subir debe ser de uno de los siguientes formatos:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'No se pudos subir archivo';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Ya instalado';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'No instalado';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'No se puede desinstalar';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'No se pudo descomprimir (zip)';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Instalaci&oacute;n correcta';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Actualizaci&oacute;n Completada';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Desinstalaci&oacute;n correcta';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'No se pudo escribir en el directorio';
+$MESSAGE['GENERIC']['INVALID'] = 'Archivo inv&aacute;lido';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Desinstalaci&oacute;n erronea: el archivo seleccionado est&aacute; en uso';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Vuelva pronto...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Por favor, sea paciente. Esto puede tardar un rato.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Error abriendo fichero.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Debe completar los siguiente campos';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Disculpe este formulario ha sido enviado demasiadas veces seguidas. Vuelva a intentarlo en una hora.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'El n&uacute;mero de verificaci&oacute;n que ha introducido es incorrecto. Si est&aacute;s teniendo problemas ley&eacute;ndolo, por favor, env&iacute;e un e-mail a: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Por favor, seleccione qu&eacute; add-on quiere que se recargue';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'M&oacute;dulos recargados correctamente';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Plantillas recargadas correctamente';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Lenguajes recargados correctamente';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/ES.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/FR.php
===================================================================
--- tags/2.7.0/wb/languages/FR.php	(nonexistent)
+++ tags/2.7.0/wb/languages/FR.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'FR';
+$language_name = 'Fran&ccedil;ais';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Marin Susac';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Accueil';
+$MENU['PAGES'] = 'Contenu';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Ajouts';
+$MENU['MODULES'] = 'Modules';
+$MENU['TEMPLATES'] = 'Mod&egrave;les';
+$MENU['LANGUAGES'] = 'Langages';
+$MENU['PREFERENCES'] = 'Pr&eacute;f&eacute;rences';
+$MENU['SETTINGS'] = 'R&eacute;glages';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Acc&egrave;s';
+$MENU['USERS'] = 'Utilisateurs';
+$MENU['GROUPS'] = 'Groupes';
+$MENU['HELP'] = 'Aide';
+$MENU['VIEW'] = 'Voir le site';
+$MENU['LOGOUT'] = 'D&eacute;connexion';
+$MENU['LOGIN'] = 'Connexion';
+$MENU['FORGOT'] = 'Retrouver vos identifiants de connexion';
+
+// Section overviews
+$OVERVIEW['START'] = 'Pr&eacute;sentation de l\'Administration';
+$OVERVIEW['PAGES'] = 'Gestion du contenu du site';
+$OVERVIEW['MEDIA'] = 'Gestion des fichiers media (images, t&eacute;l&eacute;chargements,...)';
+$OVERVIEW['MODULES'] = 'Gestion des modules du site';
+$OVERVIEW['TEMPLATES'] = 'Gestion des mod&egrave;les et modification de l\'apparence du site';
+$OVERVIEW['LANGUAGES'] = 'Gestion des langages du site';
+$OVERVIEW['PREFERENCES'] = 'Gestion de vos pr&eacute;f&eacute;rences (email, mot de passe, etc.) ';
+$OVERVIEW['SETTINGS'] = 'Configuration du site';
+$OVERVIEW['USERS'] = 'Gestion des acc&egrave;s au site';
+$OVERVIEW['GROUPS'] = 'Gestions des groupes d\'utilisateurs et des permissions';
+$OVERVIEW['HELP'] = 'Aide et FAQ sur l\'utilisation du site';
+$OVERVIEW['VIEW'] = 'Aper&ccedil;u du site dans une nouvelle fen&ecirc;tre';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modifier/Supprimer une page';
+$HEADING['DELETED_PAGES'] = 'Pages effac&eacute;e';
+$HEADING['ADD_PAGE'] = 'Ajouter une page';
+$HEADING['ADD_HEADING'] = 'Ajouter un ent&ecirc;te';
+$HEADING['MODIFY_PAGE'] = 'Modifier une page';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modifier les propri&eacute;t&eacute;s de la page';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modifier les propri&eacute;t&eacute;s avanc&eacute;es de la page';
+$HEADING['MANAGE_SECTIONS'] = 'Gestion des rubriques';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modifier la page d\'Accueil';
+
+$HEADING['BROWSE_MEDIA'] = 'Parcourir le dossier Media';
+$HEADING['CREATE_FOLDER'] = 'Cr&eacute;er un dossier';
+$HEADING['UPLOAD_FILES'] = 'Chargement des fichiers';
+
+$HEADING['INSTALL_MODULE'] = 'Installer un module';
+$HEADING['UNINSTALL_MODULE'] = 'D&eacute;sinstaller un module';
+$HEADING['MODULE_DETAILS'] = 'Propri&eacute;t&eacute;s du module';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Installer un mod&egrave;le';
+$HEADING['UNINSTALL_TEMPLATE'] = 'D&eacute;sinstaller un mod&egrave;le';
+$HEADING['TEMPLATE_DETAILS'] = 'Propri&eacute;t&eacute;s du mod&egrave;le';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Installer un langage';
+$HEADING['UNINSTALL_LANGUAGE'] = 'D&eacute;sinstaller un langage';
+$HEADING['LANGUAGE_DETAILS'] = 'Propri&eacute;t&eacute;s du langage';
+
+$HEADING['MY_SETTINGS'] = 'Les pr&eacute;f&eacute;rences';
+$HEADING['MY_EMAIL'] = 'Mon email';
+$HEADING['MY_PASSWORD'] = 'Mon mot de passe';
+
+$HEADING['GENERAL_SETTINGS'] = 'R&eacute;glages';
+$HEADING['DEFAULT_SETTINGS'] = 'R&eacute;glages par d&eacute;faut';
+$HEADING['SEARCH_SETTINGS'] = 'R&eacute;glages de recherche';
+$HEADING['FILESYSTEM_SETTINGS'] = 'R&eacute;glages des fichiers syst&egrave;mes';
+$HEADING['SERVER_SETTINGS'] = 'R&eacute;glages Serveur';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Outils d\'Administration';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modifier/Supprimer un utilisateur';
+$HEADING['ADD_USER'] = 'Ajouter un utilisateur';
+$HEADING['MODIFY_USER'] = 'Modifier un utilisateur';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modifier/Supprimer un groupe';
+$HEADING['ADD_GROUP'] = 'Ajouter un groupe';
+$HEADING['MODIFY_GROUP'] = 'Modifier un groupe';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Ajouter';
+$TEXT['MODIFY'] = 'Modifier';
+$TEXT['SETTINGS'] = 'R&eacute;glages';
+$TEXT['DELETE'] = 'Supprimer';
+$TEXT['SAVE'] = 'Sauvegarder';
+$TEXT['RESET'] = 'R&eacute;-initialiser';
+$TEXT['LOGIN'] = 'Connexion';
+$TEXT['RELOAD'] = 'Recharger';
+$TEXT['CANCEL'] = 'Annuler';
+$TEXT['NAME'] = 'Nom';
+$TEXT['PLEASE_SELECT'] = 'S&eacute;lectionnez';
+$TEXT['TITLE'] = 'Titre';
+$TEXT['PARENT'] = 'Parent';
+$TEXT['TYPE'] = 'Type';
+$TEXT['VISIBILITY'] = 'Visibilit&eacute;';
+$TEXT['PRIVATE'] = 'Priv&eacute;';
+$TEXT['PUBLIC'] = 'Public';
+$TEXT['NONE'] = 'Aucun';
+$TEXT['NONE_FOUND'] = 'Introuvable';
+$TEXT['CURRENT'] = 'Courant';
+$TEXT['CHANGE'] = 'Changer';
+$TEXT['WINDOW'] = 'Fen&ecirc;tre';
+$TEXT['DESCRIPTION'] = 'Description';
+$TEXT['KEYWORDS'] = 'Mots cl&eacute;s';
+$TEXT['ADMINISTRATORS'] = 'Administrateurs';
+$TEXT['PRIVATE_VIEWERS'] = 'Utilisateurs priv&eacute;s';
+$TEXT['EXPAND'] = 'D&eacute;velopper';
+$TEXT['COLLAPSE'] = 'R&eacute;sumer';
+$TEXT['MOVE_UP'] = 'Au dessus';
+$TEXT['MOVE_DOWN'] = 'Au dessous';
+$TEXT['RENAME'] = 'Renommer';
+$TEXT['MODIFY_SETTINGS'] = 'Modifier les r&eacute;glages';
+$TEXT['MODIFY_CONTENT'] = 'Modifier le contenu';
+$TEXT['VIEW'] = 'Aper&ccedil;u';
+$TEXT['UP'] = 'Haut';
+$TEXT['FORGOTTEN_DETAILS'] = 'Identifiants oubli&eacute;s ?';
+$TEXT['NEED_TO_LOGIN'] = 'Obligatoire &agrave; la connexion';
+$TEXT['SEND_DETAILS'] = 'Valider';
+$TEXT['USERNAME'] = 'Identifiant';
+$TEXT['PASSWORD'] = 'Mot de passe';
+$TEXT['HOME'] = 'Accueil';
+$TEXT['TARGET_FOLDER'] = 'Dossier de destination';
+$TEXT['OVERWRITE_EXISTING'] = 'Ecraser les donn&eacute;es';
+$TEXT['FILE'] = 'Fichier';
+$TEXT['FILES'] = 'Fichiers';
+$TEXT['FOLDER'] = 'Dossier';
+$TEXT['FOLDERS'] = 'Dossiers';
+$TEXT['CREATE_FOLDER'] = 'Cr&eacute;er un dossier';
+$TEXT['UPLOAD_FILES'] = 'Charger un/des fichier(s)';
+$TEXT['CURRENT_FOLDER'] = 'Dossier courant';
+$TEXT['TO'] = 'vers';
+$TEXT['FROM'] = 'de';
+$TEXT['INSTALL'] = 'Installer';
+$TEXT['UNINSTALL'] = 'D&eacute;sinstaller';
+$TEXT['VIEW_DETAILS'] = 'Propri&eacute;t&eacute;s';
+$TEXT['DISPLAY_NAME'] = 'Afficher le nom';
+$TEXT['AUTHOR'] = 'Auteur';
+$TEXT['VERSION'] = 'Version';
+$TEXT['DESIGNED_FOR'] = 'Cr&eacute;&eacute; par';
+$TEXT['DESCRIPTION'] = 'Description';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Langage';
+$TEXT['TIMEZONE'] = 'Fuseau horaire';
+$TEXT['CURRENT_PASSWORD'] = 'Mot de passe actuel';
+$TEXT['NEW_PASSWORD'] = 'Nouveau mot de passe';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Ressaisissez votre nouveau mot de passe';
+$TEXT['ACTIVE'] = 'Actif';
+$TEXT['DISABLED'] = 'D&eacute;sactiv&eacute;';
+$TEXT['ENABLED'] = 'Activ&eacute;';
+$TEXT['RETYPE_PASSWORD'] = 'Re-saisir le mot de passe';
+$TEXT['GROUP'] = 'Groupe';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Autorisations Syst&egrave;me';
+$TEXT['MODULE_PERMISSIONS'] = 'Autorisations Module';
+$TEXT['SHOW_ADVANCED'] = 'Afficher les options avanc&eacute;es';
+$TEXT['HIDE_ADVANCED'] = 'Cacher les options avanc&eacute;es';
+$TEXT['BASIC'] = 'Classique';
+$TEXT['ADVANCED'] = 'Avanc&eacute;';
+$TEXT['WEBSITE'] = 'Site Internet';
+$TEXT['DEFAULT'] = 'D&eacute;faut';
+$TEXT['KEYWORDS'] = 'Mots cl&eacute;s';
+$TEXT['TEXT'] = 'Texte';
+$TEXT['HEADER'] = 'Ent&ecirc;te';
+$TEXT['FOOTER'] = 'Pied de page';
+$TEXT['TEMPLATE'] = 'Mod&egrave;le';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Base de donn&eacute;es';
+$TEXT['HOST'] = 'H&ocirc;te';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Page';
+$TEXT['SIGNUP'] = 'Cr&eacute;er un compte';
+$TEXT['PHP_ERROR_LEVEL'] = 'Niveau d\'erreur PHP';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Chemin';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Page d\'Accueil';
+$TEXT['EXTENSION'] = 'Extension';
+$TEXT['TABLE_PREFIX'] = 'Pr&eacute;fixe de la table';
+$TEXT['CHANGES'] = 'Changements';
+$TEXT['ADMINISTRATION'] = 'Administration';
+$TEXT['FORGOT_DETAILS'] = 'Identifiants oubli&eacute;s ?';
+$TEXT['LOGGED_IN'] = 'Connect&eacute;';
+$TEXT['WELCOME_BACK'] = 'Re-Bienvenue';
+$TEXT['FULL_NAME'] = 'Nom complet';
+$TEXT['ACCOUNT_SIGNUP'] = 'Cr&eacute;er un compte';
+$TEXT['LINK'] = 'Lien';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Cible';
+$TEXT['NEW_WINDOW'] = 'Nouvelle fen&ecirc;tre';
+$TEXT['SAME_WINDOW'] = 'M&ecirc;me fen&ecirc;tre';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limite de niveau de page';
+$TEXT['SUCCESS'] = 'Op&eacute;ration r&eacute;ussie';
+$TEXT['ERROR'] = 'Erreur';
+$TEXT['ARE_YOU_SURE'] = 'Etes-vous s&ucirc;r ?';
+$TEXT['YES'] = 'Oui';
+$TEXT['NO'] = 'Non';
+$TEXT['SYSTEM_DEFAULT'] = 'Syst&egrave;me par d&eacute;faut';
+$TEXT['PAGE_TITLE'] = 'Titre de la page';
+$TEXT['MENU_TITLE'] = 'Titre du menu';
+$TEXT['ACTIONS'] = 'Actions';
+$TEXT['UNKNOWN'] = 'Inconnu';
+$TEXT['BLOCK'] = 'Bloc';
+$TEXT['SEARCH'] = 'Rechercher';
+$TEXT['SEARCHING'] = 'Recherche en cours';
+$TEXT['POST'] = 'Poster';
+$TEXT['COMMENT'] = 'Commentaire';
+$TEXT['COMMENTS'] = 'Commentaires';
+$TEXT['COMMENTING'] = 'Commentaire en cours';
+$TEXT['SHORT'] = 'Court';
+$TEXT['LONG'] = 'Long';
+$TEXT['LOOP'] = 'Boucle';
+$TEXT['FIELD'] = 'Champ';
+$TEXT['REQUIRED'] = 'Obligatoire';
+$TEXT['LENGTH'] = 'Longueur';
+$TEXT['MESSAGE'] = 'Message';
+$TEXT['SUBJECT'] = 'Sujet';
+$TEXT['MATCH'] = 'montrer';
+$TEXT['ALL_WORDS'] = 'Tous les mots';
+$TEXT['ANY_WORDS'] = 'Chaque mot';
+$TEXT['EXACT_MATCH'] = 'Terme exact';
+$TEXT['SHOW'] = 'Montrer';
+$TEXT['HIDE'] = 'Cacher';
+$TEXT['START_PUBLISHING'] = 'D&eacute;but de publication';
+$TEXT['FINISH_PUBLISHING'] = 'Fin de publication';
+$TEXT['DATE'] = 'Date';
+$TEXT['START'] = 'D&eacute;buter';
+$TEXT['END'] = 'Fin';
+$TEXT['IMAGE'] = 'Image';
+$TEXT['ICON'] = 'Ic&ocirc;ne';
+$TEXT['SECTION'] = 'Rubrique';
+$TEXT['DATE_FORMAT'] = 'Format de la date';
+$TEXT['TIME_FORMAT'] = 'Format de l\'heure';
+$TEXT['RESULTS'] = 'R&eacute;sultats';
+$TEXT['RESIZE'] = 'Redimensionner';
+$TEXT['MANAGE'] = 'G&eacute;rer';
+$TEXT['CODE'] = 'Code';
+$TEXT['WIDTH'] = 'Largeur';
+$TEXT['HEIGHT'] = 'Hauteur';
+$TEXT['MORE'] = 'Plus';
+$TEXT['READ_MORE'] = 'En savoir plus';
+$TEXT['CHANGE_SETTINGS'] = 'Modifier les r&eacute;glages';
+$TEXT['CURRENT_PAGE'] = 'Page courante';
+$TEXT['CLOSE'] = 'Fermer';
+$TEXT['INTRO_PAGE'] = 'Page d\'Intro';
+$TEXT['INSTALLATION_URL'] = 'Adresse (URL) d\'installation';
+$TEXT['INSTALLATION_PATH'] = 'Chemin d\'installation';
+$TEXT['PAGE_EXTENSION'] = 'Extension des pages';
+$TEXT['NO_RESULTS'] = 'Aucun r&eacute;sultat';
+$TEXT['WEBSITE_TITLE'] = 'Titre du site';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Description du site';
+$TEXT['WEBSITE_KEYWORDS'] = 'Mots cl&eacute;s du site';
+$TEXT['WEBSITE_HEADER'] = 'Ent&ecirc;te du site';
+$TEXT['WEBSITE_FOOTER'] = 'Pied de page du site';
+$TEXT['RESULTS_HEADER'] = 'Ent&ecirc;te du mod&egrave;le de recherche';
+$TEXT['RESULTS_LOOP'] = 'Mod&egrave;le d\'afichage de la boucle de recherche';
+$TEXT['RESULTS_FOOTER'] = 'Pied de page du mod&egrave;le de recherche';
+$TEXT['LEVEL'] = 'Niveau';
+$TEXT['NOT_FOUND'] = 'Impossible de trouver';
+$TEXT['PAGE_SPACER'] = 'Ecart de page';
+$TEXT['MATCHING'] = 'Matching';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Permissions sur les mod&egrave;les';
+$TEXT['PAGES_DIRECTORY'] = 'R&eacute;pertoire des pages';
+$TEXT['MEDIA_DIRECTORY'] = 'R&eacute;pertoire des fichiers media';
+$TEXT['FILE_MODE'] = 'Propri&eacute;t&eacute;s fichiers';
+$TEXT['USER'] = 'Utilisateur';
+$TEXT['OTHERS'] = 'Autres';
+$TEXT['READ'] = 'Lire';
+$TEXT['WRITE'] = 'Ecrire';
+$TEXT['EXECUTE'] = 'Executer';
+$TEXT['SMART_LOGIN'] = 'Identification rapide';
+$TEXT['REMEMBER_ME'] = 'Se souvenir de moi';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Permissions des fichiers syst&egrave;me';
+$TEXT['DIRECTORIES'] = 'R&eacute;pertoires';
+$TEXT['DIRECTORY_MODE'] = 'Propri&eacute;t&eacute;s r&eacute;pertoire';
+$TEXT['LIST_OPTIONS'] = 'Liste des options';
+$TEXT['OPTION'] = 'Option';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Autoriser la s&eacute;lection multiple';
+$TEXT['TEXTFIELD'] = 'Champ de texte';
+$TEXT['TEXTAREA'] = 'Zone de texte';
+$TEXT['SELECT_BOX'] = 'S&eacute;lection des bo&icirc;tes';
+$TEXT['CHECKBOX_GROUP'] = 'Groupe bouton Box';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Groupe bouton Radio';
+$TEXT['SIZE'] = 'Taille';
+$TEXT['DEFAULT_TEXT'] = 'Texte par d&eacute;faut';
+$TEXT['SEPERATOR'] = 'S&eacute;parateur';
+$TEXT['BACK'] = 'Retour';
+$TEXT['UNDER_CONSTRUCTION'] = 'En construction';
+$TEXT['MULTISELECT'] = 'Multi-s&eacute;lection';
+$TEXT['SHORT_TEXT'] = 'Texte court';
+$TEXT['LONG_TEXT'] = 'Texte long';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirection de la page d\'Accueil';
+$TEXT['HEADING'] = 'Haut de page';
+$TEXT['MULTIPLE_MENUS'] = 'Menus multiples';
+$TEXT['REGISTERED'] = 'Enregistr&eacute;';
+$TEXT['SECTION_BLOCKS'] = 'Bloc de rubrique';
+$TEXT['REGISTERED_VIEWERS'] = 'Utilisateurs enregistr&eacute;s';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Soummission ID';
+$TEXT['SUBMISSIONS'] = 'Soummissions';
+$TEXT['SUBMITTED'] = 'Soumis';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Soummissions maximales par heure';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Soumission dans la base de donn&eacute;es';
+$TEXT['EMAIL_ADDRESS'] = 'Adresse email';
+$TEXT['CUSTOM'] = 'Adapter';
+$TEXT['ANONYMOUS'] = 'Anonyme';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serveur sur lequel est bas&eacute; le syst&egrave;me';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Permissions d\'&eacute;criture sur fichier';
+$TEXT['LINUX_UNIX_BASED'] = 'Bas&eacute; sur Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Fichier d\'Accueil';
+$TEXT['HOME_FOLDERS'] = 'Fichiers d\'Accueil';
+$TEXT['PAGE_TRASH'] = 'Page &agrave; la corbeille';
+$TEXT['INLINE'] = 'En ligne';
+$TEXT['SEPARATE'] = 'S&eacute;parer';
+$TEXT['DELETED'] = 'Supprim&eacute;';
+$TEXT['VIEW_DELETED_PAGES'] = 'Voir les pages supprim&eacute;es';
+$TEXT['EMPTY_TRASH'] = 'Corbeille vide';
+$TEXT['TRASH_EMPTIED'] = 'Corbeille vid&eacute;e';
+$TEXT['ADD_SECTION'] = 'Ajouter une rubrique';
+$TEXT['POST_HEADER'] = 'Ajouter un ent&ecirc;te';
+$TEXT['POST_FOOTER'] = 'Ajouter un pied de page';
+$TEXT['POSTS_PER_PAGE'] = 'Envoi par page';
+$TEXT['RESIZE_IMAGE_TO'] = 'Redimensionner l\'image';
+$TEXT['UNLIMITED'] = 'Illimit&eacute;';
+$TEXT['OF'] = 'De';
+$TEXT['OUT_OF'] = 'Hors de';
+$TEXT['NEXT'] = 'Suivant';
+$TEXT['PREVIOUS'] = 'Pr&eacute;c&eacute;dent';
+$TEXT['NEXT_PAGE'] = 'Pas suivante';
+$TEXT['PREVIOUS_PAGE'] = 'Page pr&eacute;c&eacute;dente';
+$TEXT['ON'] = 'Sur';
+$TEXT['LAST_UPDATED_BY'] = 'Mis &agrave; jour par';
+$TEXT['RESULTS_FOR'] = 'R&eacute;sultats';
+$TEXT['TIME'] = 'Heure';
+$TEXT['WYSIWYG_STYLE'] = 'Style WYSIWYG';
+$TEXT['WYSIWYG_EDITOR'] = 'Editeur WYSIWYG';
+$TEXT['SERVER_EMAIL'] = 'Serveur email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Gestion des groupes';
+$TEXT['MANAGE_USERS'] = 'Gestion des utilisateurs';
+$TEXT['PAGE_LANGUAGES'] = 'Langages';
+$TEXT['HIDDEN'] = 'Cach&eacute;';
+$TEXT['MAIN'] = 'Principal';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Renommer les fichiers au chargement';
+$TEXT['APP_NAME'] = 'Nom de lapplication';
+$TEXT['SESSION_IDENTIFIER'] = 'Identifiant de session';
+$TEXT['BACKUP'] = 'Sauvegarde';
+$TEXT['RESTORE'] = 'Restaurer';
+$TEXT['BACKUP_DATABASE'] = 'Sauvegarde de la base de donn&eacute;es';
+$TEXT['RESTORE_DATABASE'] = 'Restauration de la base de donn&eacute;es';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Sauvegarde des fichiers medias';
+$TEXT['RESTORE_MEDIA'] = 'Restauration des fichiers medias';
+$TEXT['ADMINISTRATION_TOOL'] = 'Outils d\'administration';
+$TEXT['CAPTCHA_VERIFICATION'] = 'V&eacute;rification par Captcha ';
+$TEXT['VERIFICATION'] = 'V&eacute;rification';
+$TEXT['DEFAULT_CHARSET'] = 'Encodage par d&eacute;faut';
+$TEXT['CHARSET'] = 'Encodage';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'D&eacute;sol&eacute;, vous n\'avez pas les droits pour visualiser cette page';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Droits insuffisants pour &ecirc;tre ici';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Merci de saisir vos identifiants de connexion';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Merci de saisir votre nom d\'utilisateur';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Merci de saisir votre mot de passe';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Votre nom d\'utilisateur est trop court';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Votre mot de passe est trop court';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Votre nom d\'utilisateur est trop long';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Votre mot de passe est trop long';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Votre nom d\'utilisateur ou votre mot de passe est incorrect';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'L\'adresse email est obligatoire';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Merci de saisir votre adresse email';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'L\'adresse email que vous avez saisi est introuvable dans la base de donn&eacute;es';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Impossible de trouver le mot de passe associ&eacute; &ccedil; votre adresse email, merci de contacter l\'administrateur du site';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Vos identifiants vous ont &eacute;t&eacute; envoy&eacute; par email';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'D&eacute;sol&eacute;, vous ne pouvez pas modifier votre mot de passe plus d\'une fois par heure';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Bienvenue dans la zone d\'administration';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'ATTENTION : le r&eacute;pertoire d\'installation existe toujours';
+$MESSAGE['START']['CURRENT_USER'] = 'Vous &ecirc;tes connect&eacute; en tant que : ';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Impossible d\'ouvrir le fichier de configuration';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Impossible d\'&eacute;crire dans le fichier de configuration';
+$MESSAGE['SETTINGS']['SAVED'] = 'Sauvegarde r&eacute;ussie avec succ&egrave;s';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'En cliquant sur ce bouton, vous r&eacute;initialiser tous les changement NON-sauvegard&eacute;s';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Recommand&eacute; uniquement pour les environnement de test';
+
+$MESSAGE['USERS']['ADDED'] = 'Utilisateur ajout&eacute; avec succ&egrave;s';
+$MESSAGE['USERS']['SAVED'] = 'Utilisateur sauvegard&eacute; avec succ&egrave;s';
+$MESSAGE['USERS']['DELETED'] = 'Utilisateur supprim&eacute; avec succ&egrave;s';
+$MESSAGE['USERS']['NO_GROUP'] = 'Aucun groupe n\'a &eacute;t&eacute; s&eacute;lectionn&eacute;';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Le nom d\'utilisateur est trop court';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Le mot de passe est trop court';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Le mot de passe est introuvable';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'L\'adresse email n\'est pas valide';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'L\'adresse email est d&eacute;ja utilis&eacute;e';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Le nom d\'utilisateur est d&eacute;ja utilis&eacute;';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Vous ne devez modifier les valeurs ci-dessus uniquement lors d\'une modification de mot de passe';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Etes-vous s&ucirc;r de bien vouloir supprimer cet utilisateur ?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Groupe ajout&eacute; avec succ&egrave;s';
+$MESSAGE['GROUPS']['SAVED'] = 'Groupe sauvegard&eacute; avec succ&egrave;s';
+$MESSAGE['GROUPS']['DELETED'] = 'Groupe supprim&eacute; avec succ&egrave;s';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Le nom du groupe est vide';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Etes-vous s&ucirc;r debien ouloir supprimer ce groupe (ainsi que tous les utilisateurs de ce groupe) ?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Groupe introuvable';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Le nom du groupe est d&eacute;ja existant';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Donn&eacute;es sauvegard&eacute;es avec succ&egrave;s';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Adresse email sauvegard&eacute;e avec succ&egrave;s';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'le mot de passe entr&eacute; est incorrect';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Mot de passe modifi&eacute; avec succ&egrave;s';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Pour modifier le mod&egrave;le du site, vous devez vous rendre dans la rubrique R&eacute;glages';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Impossible d\'inclure ../ dans le nom du dossier';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Le r&eacute;pertoire n\'existe pas';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Impossible d\'avoir ../ dans le nom du dossier cible';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Impossible d\'inclure ../ dans le nom';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Vous ne pouvez pas utiliser INDEX.PHP comme nom';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Aucun media trouv&eacute; dans ce dossier';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Fichier introuvable';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Fichier supprim&eacute; avec succ&egrave;s';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Dossier supprim&eacute; avec succ&egrave;s';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Etes-vous s&ucirc;r de bien vouloir supprimer ce fichier/dossier ?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Impossible de supprimer le fichier s&eacute;lectionn&eacute;';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Impossible de supprimer le dossier s&eacute;lctionn&eacute;';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Vous n\'avezpas entr&eacute; de nouveau nom';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Vous n\'avez pas entr&eacute; d\'extension';
+$MESSAGE['MEDIA']['RENAMED'] = 'Renommage r&eacute;ussi avec succ&egrave;s';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Impossible de renommer';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Un fichier portant ce nom est d&eacute;j&agrave; existant';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Un dossier portant ce nom est d&eacute;j&agrave; existant';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Cr&eacute;ation du dossier r&eacute;ussie avec succ&egrave;s';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Impossible de cr&eacute;er le dossier';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = 'Le fichier a &eacute;t&eacute; charg&eacute; avec succ&egrave;s';
+$MESSAGE['MEDIA']['UPLOADED'] = 'Les fichiers ont &eacute;t&eacute; charg&eacute;s succ&egrave;s';
+
+$MESSAGE['PAGES']['ADDED'] = 'Page ajout&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'L\'ent&ecirc;te de la page a &eacute;t&eacute; ajout&eacute; avec succ&egrave;s';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Une page avec le m&ecirc;me nom existe d&eacute;j&agrave;';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Erreur lors de la cr&eacute;ation d\'un fichier dans le r&eacute;pertoire des pages (privil&egrave;ges insuffisants)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Erreur lors de la suppression d\'un fichier dans le r&eacute;pertoire des pages (privil&egrave;ges insuffisants)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Page introuvable';
+$MESSAGE['PAGES']['SAVED'] = 'Page sauvegard&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Param&egrave;tres de la page sauvegard&eacute;s avec succ&egrave;s';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Erreur lors de la sauvegarde de la page';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Etes-vous s&ucirc;r de bien vouloir supprimer la page s&eacute;lectionn&eacute;e (ainsi que ses sous-rubriques)';
+$MESSAGE['PAGES']['DELETED'] = 'Page supprim&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['RESTORED'] = 'Page restaur&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Entrez un titre de page';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Entrez un titre de menu';
+$MESSAGE['PAGES']['REORDERED'] = 'Page r&eacute;ordonn&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Erreur lors du r&eacute;agencement des pages';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Vous n\'avez pas les droits pour modifier cette pages';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Impossible d\'&eacute;crire dans le fichier d\'intro (privil&egrave;ges insuffisants)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Page d\'intro sauvegard&eacute;e avec succ&egrave;s';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Mis &agrave; jour par';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Cliqiez ici pour modifier la page d\'intro';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Les propri&eacute;t&eacute;s de la rubrique ont &eacute;t&eacute; sauvegard&eacute;es avec succ&egrave;s';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Retour au contenu';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Merci de remplir tous les champs';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Les fichiers charg&eacute;s doivent avoir les extensions suivantes : ';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Les fichiers charg&eacute;s doivent &ecirc;tre aux formats suivants : ';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Impossible de charger le fichier';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'D&eacute;j&agrave; install&eacute;';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Not installed';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Impossible de d&eacute;sinstaller';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Impossible de d&eacute;zipper le fichier';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installation r&eacute;ussie avec succ&egrave;s';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Mise &agrave; jour r&eacute;ussie avec succ&egrave;s';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'D&eacute;sinstallation r&eacute;ussie avec succ&egrave;s';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Impossible d\'&eacute;crire dans le r&eacute;pertoire cible';
+$MESSAGE['GENERIC']['INVALID'] = 'Le fichier charg&eacute; est invalide';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'D&eacute;sinstallation impossible : fichier en cours d\'utilisation';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Site en construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Merci de revenir plus tard';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Merci de patienter';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Erreur lors de l\'ouverture du fichier';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Vous devez renseigner les champs suivants';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'D&eacute;sol&eacute; mais vous avez utilis&eacute; ce formulaire trop de fois durant cette heure. Merci de r&eacute;essayer &agrave; l\'heure suivante';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Le num&eacute;ro de v&eacute;rification (Captcha) que vous avez entr&eacute; est incorrect. Si vous rencontrez des probl&egrave;mes quant &agrave; la lecture de ce num&eacute;ro, merci d\'envoyer un email &agrave; : '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'S&eacute;lectionnez les ADD-ON que vous souhaitez r&eacute;installer';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules r&eacute;install&eacute;s avec succ&egrave;s';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Mod&egrave;les r&eacute;install&eacute;s avec succ&egrave;s';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Langages r&eacute;install&eacute;s avec succ&egrave;s';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/FR.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/ET.php
===================================================================
--- tags/2.7.0/wb/languages/ET.php	(nonexistent)
+++ tags/2.7.0/wb/languages/ET.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'ET';
+$language_name = 'Eesti';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Heiko H&auml;ng';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Start';
+$MENU['PAGES'] = 'Lehed';
+$MENU['MEDIA'] = 'Meedia';
+$MENU['ADDONS'] = 'Lisad';
+$MENU['MODULES'] = 'Moodulid';
+$MENU['TEMPLATES'] = 'Kujundused';
+$MENU['LANGUAGES'] = 'Keeled';
+$MENU['PREFERENCES'] = 'Valikud';
+$MENU['SETTINGS'] = 'Seaded';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Ligip&auml;&auml;s';
+$MENU['USERS'] = 'Kasutajad';
+$MENU['GROUPS'] = 'Grupid';
+$MENU['HELP'] = 'Abi';
+$MENU['VIEW'] = 'Vaata';
+$MENU['LOGOUT'] = 'Logi V&auml;lja';
+$MENU['LOGIN'] = 'Logi Sisse';
+$MENU['FORGOT'] = 'Retrieve Login Details';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administratsiooni &uuml;levaade';
+$OVERVIEW['PAGES'] = 'Halda oma veebisaidi lehek&uuml;lgi...';
+$OVERVIEW['MEDIA'] = 'Halda faile mis on media kaustas...';
+$OVERVIEW['MODULES'] = 'Halda Website Bakeri mooduleid...';
+$OVERVIEW['TEMPLATES'] = 'Change the look and feel of your website with templates...';
+$OVERVIEW['LANGUAGES'] = 'Halda Website Bakeri keeli...';
+$OVERVIEW['PREFERENCES'] = 'Muuda eelistusi nagu emaili aadress, parool, jne... ';
+$OVERVIEW['SETTINGS'] = 'Muuda seadeid Website Bakeri jaoks...';
+$OVERVIEW['USERS'] = 'Halda kasutajaid kes saavad logida Website Bakerisse...';
+$OVERVIEW['GROUPS'] = 'Halda kasutajate gruppe ja nende &otilde;iguseid...';
+$OVERVIEW['HELP'] = 'On k&uuml;simusi? Leia oma vastus...';
+$OVERVIEW['VIEW'] = 'Kiirelt vaata ja lehitse oma veebisaiti uues aknas...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Muuda/Kustuta Leht';
+$HEADING['DELETED_PAGES'] = 'Kustutatud Lehed';
+$HEADING['ADD_PAGE'] = 'Lisa Leht';
+$HEADING['ADD_HEADING'] = 'Add Heading';
+$HEADING['MODIFY_PAGE'] = 'Muuda Lehte';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Muuda Lehe Seadeid';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Muuda Arenenud Lehe Seadeid';
+$HEADING['MANAGE_SECTIONS'] = 'Muuda Sektsioone';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Muuda Intro Lehte';
+
+$HEADING['BROWSE_MEDIA'] = 'Sirvi Meediat';
+$HEADING['CREATE_FOLDER'] = 'Loo Kaust';
+$HEADING['UPLOAD_FILES'] = 'Saada Fail(id)';
+
+$HEADING['INSTALL_MODULE'] = 'Paigalda Moodul';
+$HEADING['UNINSTALL_MODULE'] = 'Eemalda Moodul';
+$HEADING['MODULE_DETAILS'] = 'Mooduli Detailid';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Paigalda Kujundus';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Eemalda Kujundus';
+$HEADING['TEMPLATE_DETAILS'] = 'Kujunduse Detailid';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Paigalda Keel';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Eemalda Keel';
+$HEADING['LANGUAGE_DETAILS'] = 'Keele Detailid';
+
+$HEADING['MY_SETTINGS'] = 'Minu Seaded';
+$HEADING['MY_EMAIL'] = 'Minu Email';
+$HEADING['MY_PASSWORD'] = 'Minu Parool';
+
+$HEADING['GENERAL_SETTINGS'] = '&Uuml;ldised Seaded';
+$HEADING['DEFAULT_SETTINGS'] = 'Vaikimisi Seaded';
+$HEADING['SEARCH_SETTINGS'] = 'Otsingu Seaded';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Failis&uuml;steemi Seaded';
+$HEADING['SERVER_SETTINGS'] = 'Server Settings';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administration Tools';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Muuda/Kustuta Kasutaja';
+$HEADING['ADD_USER'] = 'Lisa Kasutaja';
+$HEADING['MODIFY_USER'] = 'Muuda Kasutajat';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Muuda/Kustuta Grupp';
+$HEADING['ADD_GROUP'] = 'Lisa Grupp';
+$HEADING['MODIFY_GROUP'] = 'Muuda Gruppi';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Lisa';
+$TEXT['MODIFY'] = 'Muuda';
+$TEXT['SETTINGS'] = 'Seaded';
+$TEXT['DELETE'] = 'Kustuta';
+$TEXT['SAVE'] = 'Salvesta';
+$TEXT['RESET'] = 'Tagasta';
+$TEXT['LOGIN'] = 'Logi Sisse';
+$TEXT['RELOAD'] = 'Lae Uuesti';
+$TEXT['CANCEL'] = 'Katkesta';
+$TEXT['NAME'] = 'Nimi';
+$TEXT['PLEASE_SELECT'] = 'Palun vali';
+$TEXT['TITLE'] = 'Pealkiri';
+$TEXT['PARENT'] = 'Vanem';
+$TEXT['TYPE'] = 'T&uuml;&uuml;p';
+$TEXT['VISIBILITY'] = 'N&auml;htavus';
+$TEXT['PRIVATE'] = 'Privaatne';
+$TEXT['PUBLIC'] = 'Avalik';
+$TEXT['NONE'] = 'Mitte &Uuml;kski';
+$TEXT['NONE_FOUND'] = 'Ei Leitud';
+$TEXT['CURRENT'] = 'Praegune';
+$TEXT['CHANGE'] = 'Muuda';
+$TEXT['WINDOW'] = 'Aken';
+$TEXT['DESCRIPTION'] = 'Kirjeldus';
+$TEXT['KEYWORDS'] = 'M&auml;rks&otilde;nad';
+$TEXT['ADMINISTRATORS'] = 'Administraatorid';
+$TEXT['PRIVATE_VIEWERS'] = 'Privaatsed Vaatajad';
+$TEXT['EXPAND'] = 'Laienda';
+$TEXT['COLLAPSE'] = 'Kollaps';
+$TEXT['MOVE_UP'] = 'Liigu &Uuml;lesse';
+$TEXT['MOVE_DOWN'] = 'Liigu Alla';
+$TEXT['RENAME'] = 'Nimeta &Uuml;mber';
+$TEXT['MODIFY_SETTINGS'] = 'Muuda Seadeid';
+$TEXT['MODIFY_CONTENT'] = 'Muuda Sisu';
+$TEXT['VIEW'] = 'Vaata';
+$TEXT['UP'] = '&Uuml;lesse';
+$TEXT['FORGOTTEN_DETAILS'] = 'Unustasid oma detailid?';
+$TEXT['NEED_TO_LOGIN'] = 'Vajad sisselogimist?';
+$TEXT['SEND_DETAILS'] = 'Saada detailid';
+$TEXT['USERNAME'] = 'Kasutajanimi';
+$TEXT['PASSWORD'] = 'Parool';
+$TEXT['HOME'] = 'Kodu';
+$TEXT['TARGET_FOLDER'] = 'Siht kaust';
+$TEXT['OVERWRITE_EXISTING'] = 'Kirjuta olemasolev &uuml;le';
+$TEXT['FILE'] = 'Fail';
+$TEXT['FILES'] = 'Failid';
+$TEXT['FOLDER'] = 'Kaust';
+$TEXT['FOLDERS'] = 'Kaustad';
+$TEXT['CREATE_FOLDER'] = 'Loo Kaust';
+$TEXT['UPLOAD_FILES'] = 'Saada Fail(id)';
+$TEXT['CURRENT_FOLDER'] = 'Praegune Kaust';
+$TEXT['TO'] = 'Kellele';
+$TEXT['FROM'] = 'Kellelt';
+$TEXT['INSTALL'] = 'Paigalda';
+$TEXT['UNINSTALL'] = 'Eemalda';
+$TEXT['VIEW_DETAILS'] = 'Vaata Detaile';
+$TEXT['DISPLAY_NAME'] = 'Vaate Nimi';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Versioon';
+$TEXT['DESIGNED_FOR'] = 'Kavandatud';
+$TEXT['DESCRIPTION'] = 'Kirjeldus';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Keel';
+$TEXT['TIMEZONE'] = 'Ajatsoon';
+$TEXT['CURRENT_PASSWORD'] = 'Praegune Parool';
+$TEXT['NEW_PASSWORD'] = 'Uus Parool';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Korda Uut Parooli';
+$TEXT['ACTIVE'] = 'Aktiivne';
+$TEXT['DISABLED'] = 'Blokeeritud';
+$TEXT['ENABLED'] = 'Lubatud';
+$TEXT['RETYPE_PASSWORD'] = 'Korda Parooli';
+$TEXT['GROUP'] = 'Grupp';
+$TEXT['SYSTEM_PERMISSIONS'] = 'S&uuml;steemi &Otilde;igused';
+$TEXT['MODULE_PERMISSIONS'] = 'Mooduli &Otilde;igused';
+$TEXT['SHOW_ADVANCED'] = 'N&auml;ita Arenenud Valikuid';
+$TEXT['HIDE_ADVANCED'] = 'Peida Arenenud Valikud';
+$TEXT['BASIC'] = 'Alus';
+$TEXT['ADVANCED'] = 'Arenenud';
+$TEXT['WEBSITE'] = 'Veebisait';
+$TEXT['DEFAULT'] = 'Vaikimisi';
+$TEXT['KEYWORDS'] = 'M&auml;rks&otilde;nad';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'P&auml;is';
+$TEXT['FOOTER'] = 'Jalus';
+$TEXT['TEMPLATE'] = 'Kujundus';
+$TEXT['INSTALLATION'] = 'Installatsioon';
+$TEXT['DATABASE'] = 'Andmebaas';
+$TEXT['HOST'] = 'Hostia';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Lehek&uuml;lg';
+$TEXT['SIGNUP'] = 'Registreeri';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Vea Esitamise Tase';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Rada';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Frondi-l&otilde;pp';
+$TEXT['EXTENSION'] = 'Ulatus';
+$TEXT['TABLE_PREFIX'] = 'Tabelite Prefiks';
+$TEXT['CHANGES'] = 'Muudatused';
+$TEXT['ADMINISTRATION'] = 'Administratsioon';
+$TEXT['FORGOT_DETAILS'] = 'Unustasid Andmed?';
+$TEXT['LOGGED_IN'] = 'Sisse Logitud';
+$TEXT['WELCOME_BACK'] = 'Teretulemast tagasi';
+$TEXT['FULL_NAME'] = 'T&auml;isnimi';
+$TEXT['ACCOUNT_SIGNUP'] = 'Registreerimine';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Sihtm&auml;rk';
+$TEXT['NEW_WINDOW'] = 'Uus Aken';
+$TEXT['SAME_WINDOW'] = 'Sama Aken';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Lehek&uuml;lje Taseme Limiit';
+$TEXT['SUCCESS'] = 'Edu';
+$TEXT['ERROR'] = 'Viga';
+$TEXT['ARE_YOU_SURE'] = 'Oled sa kindel?';
+$TEXT['YES'] = 'Jah';
+$TEXT['NO'] = 'Ei';
+$TEXT['SYSTEM_DEFAULT'] = 'S&uuml;steemi Vaikimisi Valik';
+$TEXT['PAGE_TITLE'] = 'Lehek&uuml;lje Pealkiri';
+$TEXT['MENU_TITLE'] = 'Men&uuml;&uuml; Pealkiri';
+$TEXT['ACTIONS'] = 'Actions';
+$TEXT['UNKNOWN'] = 'Teadmata';
+$TEXT['BLOCK'] = 'Blokeeri';
+$TEXT['SEARCH'] = 'Otsi';
+$TEXT['SEARCHING'] = 'Otsib';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Kommentaar';
+$TEXT['COMMENTS'] = 'Kommentaarid';
+$TEXT['COMMENTING'] = 'Kommenteerimine';
+$TEXT['SHORT'] = 'L&uuml;hike';
+$TEXT['LONG'] = 'Pikk';
+$TEXT['LOOP'] = 'Ts&uuml;kkel';
+$TEXT['FIELD'] = 'V&auml;li';
+$TEXT['REQUIRED'] = 'Required';
+$TEXT['LENGTH'] = 'Pikkus';
+$TEXT['MESSAGE'] = 'Teade';
+$TEXT['SUBJECT'] = 'Pealkiri';
+$TEXT['MATCH'] = 'Sobima';
+$TEXT['ALL_WORDS'] = 'K&otilde;ik S&otilde;nad';
+$TEXT['ANY_WORDS'] = 'Mistages S&otilde;nad';
+$TEXT['EXACT_MATCH'] = 'T&auml;pne Sobivus';
+$TEXT['SHOW'] = 'N&auml;ita';
+$TEXT['HIDE'] = 'Peida';
+$TEXT['START_PUBLISHING'] = 'Alusta Avaldamist';
+$TEXT['FINISH_PUBLISHING'] = 'L&otilde;peta Avaldamine';
+$TEXT['DATE'] = 'Kuup&auml;ev';
+$TEXT['START'] = 'Alusta';
+$TEXT['END'] = 'L&otilde;pp';
+$TEXT['IMAGE'] = 'Pilt';
+$TEXT['ICON'] = 'Ikoon';
+$TEXT['SECTION'] = 'Sektsioon';
+$TEXT['DATE_FORMAT'] = 'Kuup&auml;eva Formaat';
+$TEXT['TIME_FORMAT'] = 'Aja Formaat';
+$TEXT['RESULTS'] = 'Tulemused';
+$TEXT['RESIZE'] = 'Re-size';
+$TEXT['MANAGE'] = 'Halda';
+$TEXT['CODE'] = 'Kood';
+$TEXT['WIDTH'] = 'Laius';
+$TEXT['HEIGHT'] = 'K&otilde;rgus';
+$TEXT['MORE'] = 'Rohkem';
+$TEXT['READ_MORE'] = 'Loe Rohkem';
+$TEXT['CHANGE_SETTINGS'] = 'Muuda Seadeid';
+$TEXT['CURRENT_PAGE'] = 'Praegune Lehek&uuml;lg';
+$TEXT['CLOSE'] = 'Sulge';
+$TEXT['INTRO_PAGE'] = 'Intro Lehek&uuml;lg';
+$TEXT['INSTALLATION_URL'] = 'Installatsiooni URL';
+$TEXT['INSTALLATION_PATH'] = 'Installatsiooni Rada';
+$TEXT['PAGE_EXTENSION'] = 'Lehek&uuml;lje Ulatus';
+$TEXT['NO_RESULTS'] = 'Tulemusi Ei Ole';
+$TEXT['WEBSITE_TITLE'] = 'Veebisaidi Pealkiri';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Veebisaidi Kirjeldus';
+$TEXT['WEBSITE_KEYWORDS'] = 'Veebisaidi M&auml;rks&otilde;nad';
+$TEXT['WEBSITE_HEADER'] = 'Veebisaidi P&auml;is';
+$TEXT['WEBSITE_FOOTER'] = 'Veebisaidi Jalus';
+$TEXT['RESULTS_HEADER'] = 'Tulemuste P&auml;is';
+$TEXT['RESULTS_LOOP'] = 'Tulemuste Ts&uuml;kkel';
+$TEXT['RESULTS_FOOTER'] = 'Tulemuste Jalus';
+$TEXT['LEVEL'] = 'Tase';
+$TEXT['NOT_FOUND'] = 'Ei Leitud';
+$TEXT['PAGE_SPACER'] = 'Lehek&uuml;lje Vahepuks';
+$TEXT['MATCHING'] = 'Sobiv';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Kujunduse &Otilde;igused';
+$TEXT['PAGES_DIRECTORY'] = 'Lehek&uuml;lgede Kataloog';
+$TEXT['MEDIA_DIRECTORY'] = 'Meedia Kataloog';
+$TEXT['FILE_MODE'] = 'Faili T&ouml;&ouml;reziim';
+$TEXT['USER'] = 'Kasutaja';
+$TEXT['OTHERS'] = 'Teise';
+$TEXT['READ'] = 'Loe';
+$TEXT['WRITE'] = 'Kirjuta';
+$TEXT['EXECUTE'] = 'T&auml;ida';
+$TEXT['SMART_LOGIN'] = 'Nutikas Sisselogimine';
+$TEXT['REMEMBER_ME'] = 'Pea Mind Meeles';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Failis&uuml;steemi &Otilde;igused';
+$TEXT['DIRECTORIES'] = 'Kataloogid';
+$TEXT['DIRECTORY_MODE'] = 'Kataloogi T&ouml;&ouml;reziim';
+$TEXT['LIST_OPTIONS'] = 'Nimekirja Valikud';
+$TEXT['OPTION'] = 'Valikud';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Luba Arvukad Valikud';
+$TEXT['TEXTFIELD'] = 'Tekstilahter';
+$TEXT['TEXTAREA'] = 'Tekstikast';
+$TEXT['SELECT_BOX'] = 'Selekteeri Kast';
+$TEXT['CHECKBOX_GROUP'] = 'M&auml;rkeruut Grupp';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Nupu Grupp';
+$TEXT['SIZE'] = 'Suurus';
+$TEXT['DEFAULT_TEXT'] = 'Vaikimisi Tekst';
+$TEXT['SEPERATOR'] = 'Seperator';
+$TEXT['BACK'] = 'Tagasi';
+$TEXT['UNDER_CONSTRUCTION'] = 'Ehitamisel';
+$TEXT['MULTISELECT'] = 'Multi-valik';
+$TEXT['SHORT_TEXT'] = 'L&uuml;hike Tekst';
+$TEXT['LONG_TEXT'] = 'Pikk Tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Kodulehe &Uuml;mbersuunamine';
+$TEXT['HEADING'] = 'P&auml;is';
+$TEXT['MULTIPLE_MENUS'] = 'Arvukas Men&uuml;&uuml;\'s';
+$TEXT['REGISTERED'] = 'Registreeritud';
+$TEXT['SECTION_BLOCKS'] = 'Sektsiooni Blokid';
+$TEXT['REGISTERED_VIEWERS'] = 'Registered Viewers';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Kaast&ouml;&ouml; ID';
+$TEXT['SUBMISSIONS'] = 'Kaast&ouml;&ouml;d';
+$TEXT['SUBMITTED'] = 'Saadetud';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Kaast&ouml;id Tunnis';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Kaast&ouml;&ouml;d Salvestatud Andmebaasi';
+$TEXT['EMAIL_ADDRESS'] = 'Emaili Aadress';
+$TEXT['CUSTOM'] = 'Tava';
+$TEXT['ANONYMOUS'] = 'Anon&uuml;&uuml;mne';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serveri Operatsioonis&uuml;steem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-writeable file permissions';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix tuginev';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Kodu Kaust';
+$TEXT['HOME_FOLDERS'] = 'Kodu Kaustad';
+$TEXT['PAGE_TRASH'] = 'Lehek&uuml;lje Pr&uuml;gi';
+$TEXT['INLINE'] = 'Rivis';
+$TEXT['SEPARATE'] = 'Eralduma';
+$TEXT['DELETED'] = 'Kustutatud';
+$TEXT['VIEW_DELETED_PAGES'] = 'Vaata Kustutatud Lehek&uuml;lgi';
+$TEXT['EMPTY_TRASH'] = 'T&uuml;hi Pr&uuml;gikast';
+$TEXT['TRASH_EMPTIED'] = 'Pr&uuml;gikast T&uuml;hjendatud';
+$TEXT['ADD_SECTION'] = 'Lisa Sektsioon';
+$TEXT['POST_HEADER'] = 'Posti P&auml;is';
+$TEXT['POST_FOOTER'] = 'Posti Jalus';
+$TEXT['POSTS_PER_PAGE'] = 'Postitusi Lehele';
+$TEXT['RESIZE_IMAGE_TO'] = 'Resize Image To';
+$TEXT['UNLIMITED'] = 'Piiramatu';
+$TEXT['OF'] = 'Of';
+$TEXT['OUT_OF'] = 'Out Of';
+$TEXT['NEXT'] = 'J&auml;rgmine';
+$TEXT['PREVIOUS'] = 'Eelmine';
+$TEXT['NEXT_PAGE'] = 'J&auml;rgmine Lehek&uuml;lg';
+$TEXT['PREVIOUS_PAGE'] = 'Eelmine lehek&uuml;lg';
+$TEXT['ON'] = 'Edasi';
+$TEXT['LAST_UPDATED_BY'] = 'Viimati Uuendatud';
+$TEXT['RESULTS_FOR'] = 'Tulemused';
+$TEXT['TIME'] = 'Aeg';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Stiil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Serveri Email';
+$TEXT['MENU'] = 'Men&uuml;&uuml;';
+$TEXT['MANAGE_GROUPS'] = 'Halda Gruppe';
+$TEXT['MANAGE_USERS'] = 'Halda Kasutajaid';
+$TEXT['PAGE_LANGUAGES'] = 'Lehek&uuml;lje Keeled';
+$TEXT['HIDDEN'] = 'Varjatud';
+$TEXT['MAIN'] = 'Peamine';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Rename Files On Upload';
+$TEXT['APP_NAME'] = 'Application Name';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restore';
+$TEXT['BACKUP_DATABASE'] = 'Backup Database';
+$TEXT['RESTORE_DATABASE'] = 'Restore Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Restore Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administration tool';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Verification';
+$TEXT['VERIFICATION'] = 'Verification';
+$TEXT['DEFAULT_CHARSET'] = 'Default Charset';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Vabandame, sul ei ole &otilde;igusi selle lehe vaatamiseks';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Insufficient privelliges to be here';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Palun sisesta oma kasutajanimi ja parool allapoole';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Palun sisesta kasutajanimi';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Palun sisesta parool';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Sisestatud kasutajanimi on liiga l&uuml;hike';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Sisestatud parool on liiga l&uuml;hike';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Sisestatud kasutajanimi on liiga pikk';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Sisestatud parool on liiga pikk';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Kasutajanimi v&otilde;i parool on vigane';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Sa pead sisestama emaili aadressi';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Palun sisesta oma emaili aadress allapoole';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Sisestatud emaili eileitud andmebaasist';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'V&otilde;imetu emailima parooli, palun kontakteeru s&uuml;steemi administraatoriga';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Sinukasutajanimi ja parool on saadetud su emaili aadressile';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Parooliei saa taastada rohkem kui &uuml;ks kord tunnis, vabandame';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Teretulemast Website Baker Administratsiooni';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Hoiatus, Installatsiooni kataloog eksisteerib!';
+$MESSAGE['START']['CURRENT_USER'] = 'Sa oled praegu sisse logitud:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'V&otilde;imetu avama konfiguratsioonifaili';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Ei saa kirjutada konfiguratsioonifaili';
+$MESSAGE['SETTINGS']['SAVED'] = 'Seaded edukalt salvestatud';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'M&auml;rge: Selle nupu vajutamine algseadistab k&otilde;ik salvestamata failid';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'M&auml;rge: see on vajalik ainult &uuml;mbruse testimiseks';
+
+$MESSAGE['USERS']['ADDED'] = 'Kasutaja edukalt lisatud';
+$MESSAGE['USERS']['SAVED'] = 'Kasutaja edukalt salvestatud';
+$MESSAGE['USERS']['DELETED'] = 'Kasutaja edukalt kustutatud';
+$MESSAGE['USERS']['NO_GROUP'] = 'Grupp selekteerimata';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Sisestatud kasutajanimi on liiga l&uuml;hike';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Sisestatud parool on liiga l&uuml;hike';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Sisestatud paroolid ei kattu';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Sisestatud emaili aadress on vigane';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Sisestatud e-mail on juba kasutusel';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Sisestatud kasutajanimi on jubakasutusel';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'M&auml;rge: Sa pead ainult sisestama p&otilde;him&otilde;tted alumistesse lahtritesse kui sa tahad muuta selle kasutaja parooli';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Kas sa oled kindel et tahad seda kasutajat kustutada?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grupp edukalt lisatud';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupp edukalt salvestatud';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupp edukalt kustutatud';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Grupi nimi on t&uuml;hi';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Oled sa kindel et tahad seda gruppi kustutada (ja k&otilde;ik kasutajad mis kuuluvad selle alla)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Gruppe ei leitud';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Group name already exists';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detailid edukalt salvestatud';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email edukalt uuendatud';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Pragune parool mida sa sisestasid on vigane';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Parool edukalt muudetud';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'M&auml;rge: kujunduse muutmiseks sa pead minema Seadete sektsiooni';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Ei saa sisaldada ../ kausta nimes';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Directory does not exist';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Cannot have ../ in the folder target';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Ei saa sisaldada ../ nimes';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Ei saa kasutada index.php nimena';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Meediat ei leitud praeguses kataloogis';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Faili ei leitud';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Fail edukalt kustutatud';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Kaust edukalt kustutatud';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Oled sa kindel et tahad kustutada j&auml;rgnevat faili v&otilde;i kausta?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Ei saa selekteeritud faili kustutada';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Ei saa selekteeritud kausta kustutada';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Sa ei sisestanud uut nime';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Sa ei sisestanud faili ulatust';
+$MESSAGE['MEDIA']['RENAMED'] = 'Edukalt &uuml;mber nimetatud';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = '&Uuml;mbernimetamine eba&otilde;nnestus';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Sisestatud faili nimi eksisteerib';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Sisestatud kausta nimi eksisteerib';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Kaust edukalt loodud';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'V&otilde;imetu looma kausta';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' fail edukalt &uuml;les laetud';
+$MESSAGE['MEDIA']['UPLOADED'] = ' failid edukalt &uuml;les laetud';
+
+$MESSAGE['PAGES']['ADDED'] = 'Lehek&uuml;lg edukalt lisatud';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Lehek&uuml;lje p&auml;is edukalt lisatud';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Lehek&uuml;lg sama v&otilde;i sarnase pealkirjaga eksisteerib';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Viga faili tekitamisel kausta /pages kataloog';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Viga faili kustutamisel kaustast /pages kataloog';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Lehek&uuml;lge ei leitud';
+$MESSAGE['PAGES']['SAVED'] = 'Lehek&uuml;lg edukalt salvestatud';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Lehek&uuml;lje seaded edukalt salvestatud';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Viga lehek&uuml;lje salvestamisel';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Oled sa kindel et tahad seda lehek&uuml;lge kustutada (ja k&otilde;iki selle alamlehti ka)';
+$MESSAGE['PAGES']['DELETED'] = 'Lehek&uuml;lg edukalt kustutatud';
+$MESSAGE['PAGES']['RESTORED'] = 'Lehek&uuml;lg edukalt taastatud';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Sisesta lehek&uuml;lje pealkiri';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Sisesta men&uuml;&uuml; pealkiri';
+$MESSAGE['PAGES']['REORDERED'] = 'Lehek&uuml;lje taaskorrastamine &otilde;nnestus';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Viga lehek&uuml;lje taaskorrastamisel';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Sul pole selle lehek&uuml;lje muutmiseks &otilde;igusi';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Ei saa kirjutada faili /pages/intro.php';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Intro lehek&uuml;lg edukalt salvestatud';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Vimane muudatus';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Vajuta siia et muta intro lehek&uuml;lge';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Sektsiooni atribuudud edukalt salvestatud';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Naase lehek&uuml;lgedele';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Palun mine tagasi ja t&auml;ida k&otilde;ik v&auml;ljad';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Pea meeles et &uuml;les laetav fail peab olema j&auml;rgmistes formaatides:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Pea meeles et &uuml;les laetavad failid peavad olema j&auml;rgmistes formaatides:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Ei saa faili &uuml;les laadida';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Juba paigaldatud';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Ei ole paigaldatud';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Cannot uninstall';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Ei saa faili lahti pakkida';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Edukalt paigaldatud';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgraded successfully';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Edukalt eemaldatud';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'V&otilde;imetu kirjutama siht kataloogi';
+$MESSAGE['GENERIC']['INVALID'] = '&Uuml;les laetud fail on vigane';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Ei saa eemaldada: selekteeritud fail on kasutuses';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'K&uuml;lasta hiljem uuesti...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Please be patient, this might take a while.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Error opening file.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Sa pead detailid sisestama j&auml;rgnevatesse lahtritesse';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Vabandame, see vorm on juba liiga palju kordi selle tunni jooksul saadetud. Palun proovi j&auml;rgmine tund uuesti.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'The verification number (also known as Captcha) that you entered is incorrect. If you are having problems reading the Captcha, please email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/ET.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/HR.php
===================================================================
--- tags/2.7.0/wb/languages/HR.php	(nonexistent)
+++ tags/2.7.0/wb/languages/HR.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'HR';
+$language_name = 'Hrvatski';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Vedran Presecki';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Start';
+$MENU['PAGES'] = 'Stranice';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Dodaci';
+$MENU['MODULES'] = 'Moduli';
+$MENU['TEMPLATES'] = 'Predlo&scaron;ci';
+$MENU['LANGUAGES'] = 'Jezici';
+$MENU['PREFERENCES'] = 'Pode&scaron;avanja';
+$MENU['SETTINGS'] = 'Postavke';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Pristup';
+$MENU['USERS'] = 'Korisnici';
+$MENU['GROUPS'] = 'Grupe';
+$MENU['HELP'] = 'Pomo&aelig;';
+$MENU['VIEW'] = 'Pogled';
+$MENU['LOGOUT'] = 'Odlogiranje';
+$MENU['LOGIN'] = 'Logiranje';
+$MENU['FORGOT'] = 'Dobivanje detalja lozinke';
+
+// Section overviews
+$OVERVIEW['START'] = 'Pregled administracije';
+$OVERVIEW['PAGES'] = 'Uredite va&scaron;e web stranice...';
+$OVERVIEW['MEDIA'] = 'Uredite fileove pohranjene u direktoriju "Media"...';
+$OVERVIEW['MODULES'] = 'Uredite Website Baker module...';
+$OVERVIEW['TEMPLATES'] = 'Promijenite izgled i do&#382;ivljaj va&scaron;eg weba s predlo&scaron;cima...';
+$OVERVIEW['LANGUAGES'] = 'Uredite Website Baker jezike...';
+$OVERVIEW['PREFERENCES'] = 'Izmjenite postavke email adresa, lozinka i sl.... ';
+$OVERVIEW['SETTINGS'] = 'Promjenite postavke za Website Baker...';
+$OVERVIEW['USERS'] = 'Upravljajte korisnicima koji se mogu logirati na Website Baker...';
+$OVERVIEW['GROUPS'] = 'Upravljajte grupama korisnika i njihovim sistemskim dopu&scaron;tenjima.';
+$OVERVIEW['HELP'] = 'Imate pitanje? Prona&eth;ite odgovor...';
+$OVERVIEW['VIEW'] = 'Brzo pogledajte i listajte Va&scaron; web u novom prozoru...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Izmenj/Obri&scaron;i stranicu';
+$HEADING['DELETED_PAGES'] = 'Obrisane stranice';
+$HEADING['ADD_PAGE'] = 'Dodaj stranicu';
+$HEADING['ADD_HEADING'] = 'Dodaj zaglavlje';
+$HEADING['MODIFY_PAGE'] = 'Izmjeni stranicu';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Mijenjaj postavke stranice';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Mijenjaj napredne postavke stranice';
+$HEADING['MANAGE_SECTIONS'] = 'Upravljaj dijelovima';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modificiraj intro stranicu';
+
+$HEADING['BROWSE_MEDIA'] = 'Pogledaj Mediu';
+$HEADING['CREATE_FOLDER'] = 'napravi direktorij';
+$HEADING['UPLOAD_FILES'] = 'Nasnimi fileove';
+
+$HEADING['INSTALL_MODULE'] = 'Instaliraj module';
+$HEADING['UNINSTALL_MODULE'] = 'Deinstaliraj module';
+$HEADING['MODULE_DETAILS'] = 'Detalji modula';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Instaliraj predlo&#382;ak';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Deinstaliraj predlo&#382;ak';
+$HEADING['TEMPLATE_DETAILS'] = 'Detalji predlo&scaron;ka';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Instaliraj jezik';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Deinstaliraj jezik';
+$HEADING['LANGUAGE_DETAILS'] = 'Detalji jezika';
+
+$HEADING['MY_SETTINGS'] = 'Moje postavke';
+$HEADING['MY_EMAIL'] = 'Moj Email';
+$HEADING['MY_PASSWORD'] = 'Moja Lozinka';
+
+$HEADING['GENERAL_SETTINGS'] = 'Glavne postavke';
+$HEADING['DEFAULT_SETTINGS'] = 'Prija&scaron;nje postavke';
+$HEADING['SEARCH_SETTINGS'] = 'Tra&#382;enje postavki';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Postavke sistema direktorija';
+$HEADING['SERVER_SETTINGS'] = 'Postavke servera';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administracijski alati';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Izmjeni/Obri&scaron;i korisnika';
+$HEADING['ADD_USER'] = 'Dodaj korisnika';
+$HEADING['MODIFY_USER'] = 'Izmjeni korisnika';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Izmjeni/Obri&scaron;i Grupu';
+$HEADING['ADD_GROUP'] = 'Dodaj grupu';
+$HEADING['MODIFY_GROUP'] = 'Izmjeni grupu';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Dodaj';
+$TEXT['MODIFY'] = 'Izmjeni';
+$TEXT['SETTINGS'] = 'Postavke';
+$TEXT['DELETE'] = 'Obri&scaron;i';
+$TEXT['SAVE'] = 'Snimi';
+$TEXT['RESET'] = 'Resetiraj';
+$TEXT['LOGIN'] = 'Logiranje';
+$TEXT['RELOAD'] = 'Ponovo u&egrave;itavanje';
+$TEXT['CANCEL'] = 'Otka&#382;i';
+$TEXT['NAME'] = 'Ime';
+$TEXT['PLEASE_SELECT'] = 'Odaberite';
+$TEXT['TITLE'] = 'Naslov';
+$TEXT['PARENT'] = 'Vezan';
+$TEXT['TYPE'] = 'Tip';
+$TEXT['VISIBILITY'] = 'Vidljivost';
+$TEXT['PRIVATE'] = 'Privatni';
+$TEXT['PUBLIC'] = 'Javni';
+$TEXT['NONE'] = 'Nijedan';
+$TEXT['NONE_FOUND'] = 'Nijedan na&eth;en';
+$TEXT['CURRENT'] = 'Postoje&aelig;i';
+$TEXT['CHANGE'] = 'Izmjeni';
+$TEXT['WINDOW'] = 'Prozor';
+$TEXT['DESCRIPTION'] = 'Opis';
+$TEXT['KEYWORDS'] = 'Klju&egrave;ne rije&egrave;i';
+$TEXT['ADMINISTRATORS'] = 'Administratori';
+$TEXT['PRIVATE_VIEWERS'] = 'Privatni pregledatelji';
+$TEXT['EXPAND'] = 'Pro&scaron;iri';
+$TEXT['COLLAPSE'] = 'Kolaps';
+$TEXT['MOVE_UP'] = 'Podigni gore';
+$TEXT['MOVE_DOWN'] = 'Spusti dolje';
+$TEXT['RENAME'] = 'Preimenuj';
+$TEXT['MODIFY_SETTINGS'] = 'Izmjeni postavke';
+$TEXT['MODIFY_CONTENT'] = 'Izmjeni sadr&#382;aj';
+$TEXT['VIEW'] = 'Pogled';
+$TEXT['UP'] = 'Gore';
+$TEXT['FORGOTTEN_DETAILS'] = 'Zaboravili ste va&scaron;e podatke?';
+$TEXT['NEED_TO_LOGIN'] = 'Molimo logirajte se?';
+$TEXT['SEND_DETAILS'] = '&Scaron;aljite podatke';
+$TEXT['USERNAME'] = 'Korisni&egrave;ko ime';
+$TEXT['PASSWORD'] = 'Lozinka';
+$TEXT['HOME'] = 'Po&egrave;etak';
+$TEXT['TARGET_FOLDER'] = 'Ciljani direktorij';
+$TEXT['OVERWRITE_EXISTING'] = 'Napi&scaron;ite preko postoje&aelig;eg';
+$TEXT['FILE'] = 'File';
+$TEXT['FILES'] = 'Fileovi';
+$TEXT['FOLDER'] = 'Direktorij';
+$TEXT['FOLDERS'] = 'Direktoriji';
+$TEXT['CREATE_FOLDER'] = 'napravi direktorij';
+$TEXT['UPLOAD_FILES'] = 'Nasnimi fajlove)';
+$TEXT['CURRENT_FOLDER'] = 'Postoje&aelig;i direktorij';
+$TEXT['TO'] = 'Za';
+$TEXT['FROM'] = 'Od';
+$TEXT['INSTALL'] = 'Instaliraj';
+$TEXT['UNINSTALL'] = 'Deinstaliraj';
+$TEXT['VIEW_DETAILS'] = 'Vidi detalje';
+$TEXT['DISPLAY_NAME'] = 'Prika&#382;i ime';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'VVerzija';
+$TEXT['DESIGNED_FOR'] = 'Dizajniran za';
+$TEXT['DESCRIPTION'] = 'Opis';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Jezik';
+$TEXT['TIMEZONE'] = 'Vremenska zona';
+$TEXT['CURRENT_PASSWORD'] = 'Potoje&aelig;a lozinka';
+$TEXT['NEW_PASSWORD'] = 'Nova lozinka';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Ponovo otipkaj novu lozinku';
+$TEXT['ACTIVE'] = 'Aktivan';
+$TEXT['DISABLED'] = 'Onesposobljen';
+$TEXT['ENABLED'] = 'Omogu&aelig;en';
+$TEXT['RETYPE_PASSWORD'] = 'Ponovo otipkaj novu lozinku';
+$TEXT['GROUP'] = 'Grupa';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Sistemske dozvole';
+$TEXT['MODULE_PERMISSIONS'] = 'Modulske dozvole';
+$TEXT['SHOW_ADVANCED'] = 'Prika&#382;i napredne opcije';
+$TEXT['HIDE_ADVANCED'] = 'Sakrij napredne opcije';
+$TEXT['BASIC'] = 'Osnovno';
+$TEXT['ADVANCED'] = 'Napredno';
+$TEXT['WEBSITE'] = 'Web stranica';
+$TEXT['DEFAULT'] = 'Postoje&aelig;i';
+$TEXT['KEYWORDS'] = 'Klju&egrave;ne rije&egrave;i';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Zaglavlje';
+$TEXT['FOOTER'] = 'Podno&#382;je';
+$TEXT['TEMPLATE'] = 'Predlo&#382;ak';
+$TEXT['INSTALLATION'] = 'Instalacija';
+$TEXT['DATABASE'] = 'Baza podataka';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Strenica';
+$TEXT['SIGNUP'] = 'Upi&scaron;i se';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Gre&scaron;ka Izvje&scaron;taj nivoa';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Dio';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Po&egrave;etak-kraj';
+$TEXT['EXTENSION'] = 'Ekstenzija';
+$TEXT['TABLE_PREFIX'] = 'Prefix tablice';
+$TEXT['CHANGES'] = 'Izmjene';
+$TEXT['ADMINISTRATION'] = 'Administracija';
+$TEXT['FORGOT_DETAILS'] = 'Zaboravili ste datelje?';
+$TEXT['LOGGED_IN'] = 'Logiran';
+$TEXT['WELCOME_BACK'] = 'Dobro do&scaron;li nazad';
+$TEXT['FULL_NAME'] = 'Puno ime';
+$TEXT['ACCOUNT_SIGNUP'] = 'Logiranje na Account';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Cilj';
+$TEXT['NEW_WINDOW'] = 'Novi prozor';
+$TEXT['SAME_WINDOW'] = 'Isti prozor';
+$TEXT['TOP_FRAME'] = 'Gornji okvir';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Nivo limita stranice';
+$TEXT['SUCCESS'] = 'Uspjeh';
+$TEXT['ERROR'] = 'Gre&scaron;ka';
+$TEXT['ARE_YOU_SURE'] = 'Jeste li sigurni?';
+$TEXT['YES'] = 'Da';
+$TEXT['NO'] = 'Ne';
+$TEXT['SYSTEM_DEFAULT'] = 'Postoje&aelig;i sistem';
+$TEXT['PAGE_TITLE'] = 'Naslov stranice';
+$TEXT['MENU_TITLE'] = 'Naslov menia';
+$TEXT['ACTIONS'] = 'Akcije';
+$TEXT['UNKNOWN'] = 'Nepoznat';
+$TEXT['BLOCK'] = 'Blokiraj';
+$TEXT['SEARCH'] = 'Tra&#382;i';
+$TEXT['SEARCHING'] = 'Pretra&#382;ivanje';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Komentar';
+$TEXT['COMMENTS'] = 'Komentari';
+$TEXT['COMMENTING'] = 'Komentiranje';
+$TEXT['SHORT'] = 'Kratko';
+$TEXT['LONG'] = 'Dugo';
+$TEXT['LOOP'] = 'Petlja';
+$TEXT['FIELD'] = 'Polje';
+$TEXT['REQUIRED'] = 'Tra&#382;eno';
+$TEXT['LENGTH'] = 'Du&#382;ina';
+$TEXT['MESSAGE'] = 'Poruka';
+$TEXT['SUBJECT'] = 'Subjekt';
+$TEXT['MATCH'] = 'Usporedi';
+$TEXT['ALL_WORDS'] = 'Sve rije&egrave;i';
+$TEXT['ANY_WORDS'] = 'Neke rije&egrave;i';
+$TEXT['EXACT_MATCH'] = 'To&egrave;no odgovara';
+$TEXT['SHOW'] = 'Prika&#382;i';
+$TEXT['HIDE'] = 'Sakrij';
+$TEXT['START_PUBLISHING'] = 'Zapo&egrave;ni objavljivanje';
+$TEXT['FINISH_PUBLISHING'] = 'Zavr&scaron;i objavljivanje';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Kraj';
+$TEXT['IMAGE'] = 'Slika';
+$TEXT['ICON'] = 'Ikona';
+$TEXT['SECTION'] = 'Dio';
+$TEXT['DATE_FORMAT'] = 'Format datuma';
+$TEXT['TIME_FORMAT'] = 'Format vrmena';
+$TEXT['RESULTS'] = 'Rezultati';
+$TEXT['RESIZE'] = 'Izmjeni veli&egrave;inu';
+$TEXT['MANAGE'] = 'Upravljaj';
+$TEXT['CODE'] = 'Kod';
+$TEXT['WIDTH'] = '&Scaron;irina';
+$TEXT['HEIGHT'] = 'Visina';
+$TEXT['MORE'] = 'Vi&scaron;e';
+$TEXT['READ_MORE'] = '&Egrave;itaj vi&scaron;e';
+$TEXT['CHANGE_SETTINGS'] = 'Promjeni postavke';
+$TEXT['CURRENT_PAGE'] = 'Trenutna stranica';
+$TEXT['CLOSE'] = 'Zatvori';
+$TEXT['INTRO_PAGE'] = 'Intro Stranica';
+$TEXT['INSTALLATION_URL'] = 'Instalacija URL';
+$TEXT['INSTALLATION_PATH'] = 'Instalacijski dio';
+$TEXT['PAGE_EXTENSION'] = 'EKstenzije stranice';
+$TEXT['NO_RESULTS'] = 'Nema rezultata';
+$TEXT['WEBSITE_TITLE'] = 'Ime web stranice';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Opis web stranice';
+$TEXT['WEBSITE_KEYWORDS'] = 'Klju&egrave;ne rije&egrave;i web stranice';
+$TEXT['WEBSITE_HEADER'] = 'Zaglavlje web stranice';
+$TEXT['WEBSITE_FOOTER'] = 'Podno&#382;je web stranice';
+$TEXT['RESULTS_HEADER'] = 'Rezultati zaglavlja';
+$TEXT['RESULTS_LOOP'] = 'Rezultati petlje';
+$TEXT['RESULTS_FOOTER'] = 'Rezultati podno&#382;ja';
+$TEXT['LEVEL'] = 'Nivo';
+$TEXT['NOT_FOUND'] = 'Neprona&eth;eno';
+$TEXT['PAGE_SPACER'] = 'Razmaknica stranica';
+$TEXT['MATCHING'] = 'Podudaranje';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Pristup predlo&scaron;cima';
+$TEXT['PAGES_DIRECTORY'] = 'Direktorij stranica';
+$TEXT['MEDIA_DIRECTORY'] = 'Direktorij medije';
+$TEXT['FILE_MODE'] = 'File Mod';
+$TEXT['USER'] = 'Korisnik';
+$TEXT['OTHERS'] = 'Drugi';
+$TEXT['READ'] = '&Egrave;itaj';
+$TEXT['WRITE'] = 'Pi&scaron;i';
+$TEXT['EXECUTE'] = 'Izvr&scaron;i';
+$TEXT['SMART_LOGIN'] = 'Inteligentno logiranje';
+$TEXT['REMEMBER_ME'] = 'Sjeti me';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Dopu&scaron;tanja sitema fileova';
+$TEXT['DIRECTORIES'] = 'direktoriji';
+$TEXT['DIRECTORY_MODE'] = 'Mod direktorija';
+$TEXT['LIST_OPTIONS'] = 'Lista opcija';
+$TEXT['OPTION'] = 'Opcija';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Dopusti vi&scaron;estruki odabir';
+$TEXT['TEXTFIELD'] = 'Pole teksta';
+$TEXT['TEXTAREA'] = 'Podru&egrave;je teksta';
+$TEXT['SELECT_BOX'] = 'Ozna&egrave;i kvadrat';
+$TEXT['CHECKBOX_GROUP'] = 'Ozna&egrave;i kvadrat grupe';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio gumb grupe';
+$TEXT['SIZE'] = 'Veli&egrave;ina';
+$TEXT['DEFAULT_TEXT'] = 'Postoje&aelig;i tekstt';
+$TEXT['SEPERATOR'] = 'Odvajanje';
+$TEXT['BACK'] = 'Nazad';
+$TEXT['UNDER_CONSTRUCTION'] = 'U izradi';
+$TEXT['MULTISELECT'] = 'Vi&scaron;estruki odabir';
+$TEXT['SHORT_TEXT'] = 'Kratki tekst';
+$TEXT['LONG_TEXT'] = 'Dugi tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirekcija po&egrave;etne stranice';
+$TEXT['HEADING'] = 'Zaglavlje';
+$TEXT['MULTIPLE_MENUS'] = 'Ve&scaron;estruki menii';
+$TEXT['REGISTERED'] = 'Registriran';
+$TEXT['SECTION_BLOCKS'] = 'Kvadrati sekcije';
+$TEXT['REGISTERED_VIEWERS'] = 'Registrirani promatra&egrave;i';
+$TEXT['ALLOWED_VIEWERS'] = 'Dopu&scaron;teni promatra&egrave;i';
+$TEXT['SUBMISSION_ID'] = 'Podpristupni ID';
+$TEXT['SUBMISSIONS'] = 'Podpristupe';
+$TEXT['SUBMITTED'] = 'Pristupljen';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Maximalan podpristup po satu';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Podpristupi pohranjeni u bazi podataka';
+$TEXT['EMAIL_ADDRESS'] = 'Email adresa';
+$TEXT['CUSTOM'] = 'Korisni&egrave;ki';
+$TEXT['ANONYMOUS'] = 'anoniman';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Serverski operacijski sutav';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-zapisuju&aelig;i prisup fileovima';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix baziran';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Po&egrave;etni direktoriji';
+$TEXT['HOME_FOLDERS'] = 'Po&egrave;etni direktoriji';
+$TEXT['PAGE_TRASH'] = 'Sme&aelig;e stranice';
+$TEXT['INLINE'] = 'U liniji';
+$TEXT['SEPARATE'] = 'Odvojen';
+$TEXT['DELETED'] = 'Obrisan';
+$TEXT['VIEW_DELETED_PAGES'] = 'Pogledaj obrisane stranice';
+$TEXT['EMPTY_TRASH'] = 'Isprazni sme&aelig;e';
+$TEXT['TRASH_EMPTIED'] = 'Sme&aelig;e ispra&#382;njeno';
+$TEXT['ADD_SECTION'] = 'Dodaj sekciju';
+$TEXT['POST_HEADER'] = 'Objavi zaglavlje';
+$TEXT['POST_FOOTER'] = 'Objavi podno&#382;je';
+$TEXT['POSTS_PER_PAGE'] = 'Broj objava po stranici';
+$TEXT['RESIZE_IMAGE_TO'] = 'Izmjeni veli&egrave;inu slike na';
+$TEXT['UNLIMITED'] = 'Neograni&egrave;en';
+$TEXT['OF'] = 'Of';
+$TEXT['OUT_OF'] = 'Izvan Of';
+$TEXT['NEXT'] = 'Slijede&aelig;i';
+$TEXT['PREVIOUS'] = 'Prethodni';
+$TEXT['NEXT_PAGE'] = 'Nova stranica';
+$TEXT['PREVIOUS_PAGE'] = 'Prethodna stranica';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = 'Zadnje izmjenjen od';
+$TEXT['RESULTS_FOR'] = 'Rezultati za';
+$TEXT['TIME'] = 'Vrijeme';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server Email';
+$TEXT['MENU'] = 'Meni';
+$TEXT['MANAGE_GROUPS'] = 'Upravljanje grupama';
+$TEXT['MANAGE_USERS'] = 'Upravljanje korisnicima';
+$TEXT['PAGE_LANGUAGES'] = 'Jezici stranice';
+$TEXT['HIDDEN'] = 'Skriven';
+$TEXT['MAIN'] = 'Glevni';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Izmjeni fileove kod ponovnog upisa';
+$TEXT['APP_NAME'] = 'Ime aplikacije';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Povrati';
+$TEXT['BACKUP_DATABASE'] = 'Backup baze podataka';
+$TEXT['RESTORE_DATABASE'] = 'Povrati bazu podataka';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backupiraj sve tablice u bazi podataka';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backupiraj samo WB-specificirane tablice';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Povrati Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administracijski alati';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha verifikacija';
+$TEXT['VERIFICATION'] = 'Verifikacija';
+$TEXT['DEFAULT_CHARSET'] = 'Po&egrave;etna postavka znakova';
+$TEXT['CHARSET'] = 'Postavka znakova';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Nemate dopu&scaron;tenje za gledanje ove stranice';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Nedovoljne privilegije tu';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Molimo unesite svoje korisni&egrave;ko ime i lozinku ispod';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Molimo unesite svoje korisni&egrave;ko ime';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Molimo unesite svoju lozinku';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Korisni&egrave;ko ime je prekratko';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Lozinka je prekratka';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Korisni&egrave;ko ime je predugo';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Lozinka je preduga';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Krivo korisni&egrave;ko ime ili lozinka';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Unesite email adresu';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Unesite svoju email adresu ispod';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Email adresu koju ste unjeli nemamo upisanu u bazi';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Ne mo&#382;emo vam emailom poslati lozinku, molimo kontakirajte sistemskog administratora';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Va&scaron;e korisni&egrave;ko ime i lozinka poslani su na va&scaron;u email adresu';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Na&#382;alost lozinka ne mo&#382;e biti resetirana/izmjenjena vi&scaron;e od jednom u jednom satu';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Dobro do&scaron;li u Website Baker administraciju';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Upozorenje, instalacijski direktoriji nije jo&scaron; obrisan!';
+$MESSAGE['START']['CURRENT_USER'] = 'Trenutno ste logirani kao:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Nemogu&aelig;e je otvoriti konfiguracijski file';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Ne mo&#382;e zapisivati u konfiguracijski file';
+$MESSAGE['SETTINGS']['SAVED'] = 'Postavke su uspje&scaron;no snimljene';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Obavijest: Pritisnite ovaj gumb za reset svih nesnimljenih izmjena';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Obavijest: ovo je preporu&egrave;ljivo samo za uvijete testiranja';
+
+$MESSAGE['USERS']['ADDED'] = 'Korisnik je dodan supje&scaron;no';
+$MESSAGE['USERS']['SAVED'] = 'Korisnik je snimljen uspje&scaron;no';
+$MESSAGE['USERS']['DELETED'] = 'Korisnik je uspje&scaron;no obrisan';
+$MESSAGE['USERS']['NO_GROUP'] = 'Niti jedna grupa nije odabrana';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Predlo&#382;eno korisni&egrave;ko ime je prekratko';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Predlo&#382;ena lozinka je prekratka';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Une&scaron;ena lozinka ne odgovara';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Une&scaron;ena email adresa je nepotpuna';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Une&scaron;en email je ve&aelig; u upotrebi';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Predlo&#382;eno korisni&egrave;ko ime ve&aelig; je netko odabrao prije vas';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Obavijest: Trebate samo unjeti vrijednosti u polja ispod ako &#382;elite izmjeniti korisni&egrave;ku lozinku';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Jeste li sigurni da &#382;elite obrisati odabranog korisnika?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grupa je uspje&scaron;no dodana';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupa je uspje&scaron;no snimljena';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupa je uspje&scaron;no obrisana';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Ime grupe je prazno';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Jeste li sigurni da &#382;elite obrisati odabranu gurupu i sve korisnike koji joj pripadaju?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Grupa nije na&eth;ena';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Ime grupe ve&aelig; postoji';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detalji su uspje&scaron;no snimljeni';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email je snimljen uspje&scaron;no';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Une&scaron;ena lozinka nije to&egrave;na';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Lozinka je uspje&scaron;no izmjenjena';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Obavijest: Za promjenu predlo&scaron;ka idite na dio s Postavkama';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Ne mo&#382;e uklju&egrave;iti ../ u ime direktorija';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Direktorij ne postoji';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Ne mo&#382;e ../ u cilj direktorija';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Ne mo&#382;e uklju&egrave;iti ../ u ime';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Ne mo&#382;e koristiti index.php kao ime';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Ni jedna medija nije na&eth;ena u postoje&aelig;em direktoriju';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'File nije prona&eth;en';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'File je uspje&scaron;no obrisan';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Folder je uspje&scaron;no obrisan';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Jeste li sigurni da &#382;elite obrisati file ili direktorij?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Ne mo&#382;e obrisati odabrani file';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Ne mo&#382;e obrisati odabrani direktorij';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Niste unjeli novo ime';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Niste unjeli ekstenziju file-a';
+$MESSAGE['MEDIA']['RENAMED'] = 'Preimenovanje je uspje&scaron;no';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Preimenovanje je neuspje&scaron;no';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'File se podudara s imenom koje ste unjeli, a koje ve&aelig; postoji';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Direktorij se podudara s imenom koje ste unjeli, a koje ve&aelig; postoji';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Direktorij je uspje&scaron;no stvoren';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Ne mo&#382;e napraviti direktorij';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' file je uspje&scaron;no nasnimljen';
+$MESSAGE['MEDIA']['UPLOADED'] = ' fileovi su supje&scaron;no nasnimljeni';
+
+$MESSAGE['PAGES']['ADDED'] = 'Stranica je uspje&scaron;no dodana';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Zaglavlje stranice uspje&scaron;no je dodano';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Stranica s sli&egrave;nim ili istim imenom ve&aelig; postoji';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Gre&scaron;ka pri stvaranju pristupnog filea u stranicama direktorija(nedovoljne privilegije)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Gre&scaron;ka pri brisanju pristupnog filea u stranicama direktorija(nedovoljne privilegije)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Stranica nije na&eth;ena';
+$MESSAGE['PAGES']['SAVED'] = 'Stranica je uspje&scaron;no snimljena';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Postavke stranice uspje&scaron;no su snimljene';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Gre&scaron;ka pri snimanju stranice';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Jeste li sigurni da &#382;elite obrisati odabranu stranicu i sve njene podstranice';
+$MESSAGE['PAGES']['DELETED'] = 'Stranice su supje&scaron;no obrisane';
+$MESSAGE['PAGES']['RESTORED'] = 'Stranice su supje&scaron;no obnovljene';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Unesite naslov stranice';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Unesite naziv menia';
+$MESSAGE['PAGES']['REORDERED'] = 'Stranice re-ordered uspje&scaron;no';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Gre&scaron;ka pri re-ordering stranice';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Nemate dopu&scaron;tenje za izmjenu stranice';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Ne mo&#382;e pisati file /pages/intro.php (nedovoljne privilegije)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Intro stranica je uspje&scaron;no snimljena';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Zadnje izmjene';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Kliknite OVDJE za izmjenu intro stranice';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Sekcijske postavke snimljene uspje&scaron;no';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Povratak na stranice';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Molimo, vratite se nazad i popunite sva polja';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'File koji nasnimavate mora biti slijede&aelig;eg formata:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'File koji nasnimavate mora biti u jednom od slijede&aelig;ih formata:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Ne mo&#382;e nasnimiti file';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Ve&aelig; instalirano';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Nije instalirano';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Ne mo&#382;e deinstalirati';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Ne mo&#382;e unzipirati file';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Instaliran uspje&scaron;no';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Nadogra&eth;en uspje&scaron;no';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Deinstaliran uspje&scaron;no';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Ne mo&#382;e zapisati u ciljani direktorij';
+$MESSAGE['GENERIC']['INVALID'] = 'Instaliran file je nevaljal';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Ne mo&#382;e deinstalirati: odabrani file je trenutno u upotrebi';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Webstranica u izradi';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Molimo poku&scaron;ajte ponovo za&egrave;as...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Budite strpljivo, ovo mo&#382;e potrajati.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Gre&scaron;ka pri otvaranju filea.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Morate unjeti detaljen podatke u nadoilaze&aelig;a polja';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Ova forma je pregledavana previ&scaron;e puta u jednom satu. Molimo poku&scaron;ajte slijede&aelig;i sat.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Broj provjere (poznat kao Captcha) neto&egrave;no je une&scaron;en. Ako imate problema s &egrave;itanjem Captcha, molimo po&scaron;aljite email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Molimo odaberite koje dodatke &#382;elite ponovo nasnimiti';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Uspje&scaron;no nasnimljeni moduli';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Uspje&scaron;no nasnimljeni predlo&scaron;ci';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Uspje&scaron;no nasnimljeni jezici';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/HR.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/NL.php
===================================================================
--- tags/2.7.0/wb/languages/NL.php	(nonexistent)
+++ tags/2.7.0/wb/languages/NL.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'NL';
+$language_name = 'Nederlands';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Bramus, CodeALot';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Naar het hoofdmenu';
+$MENU['PAGES'] = 'Pagina&rsquo;s';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Extra&rsquo;s';
+$MENU['MODULES'] = 'Modules';
+$MENU['TEMPLATES'] = 'Templates';
+$MENU['LANGUAGES'] = 'Talen';
+$MENU['PREFERENCES'] = 'Profiel';
+$MENU['SETTINGS'] = 'Instellingen';
+$MENU['ADMINTOOLS'] = 'Beheerinstellingen';
+$MENU['ACCESS'] = 'Toegang';
+$MENU['USERS'] = 'Gebruikers';
+$MENU['GROUPS'] = 'Groepen';
+$MENU['HELP'] = 'Help';
+$MENU['VIEW'] = 'Website';
+$MENU['LOGOUT'] = 'Uitloggen';
+$MENU['LOGIN'] = 'Inloggen';
+$MENU['FORGOT'] = 'Inlog-gegevens opnieuw aanvragen';
+
+// Section overviews
+$OVERVIEW['START'] = 'Website-beheer';
+$OVERVIEW['PAGES'] = 'Aanmaken en beheren van de site-structuur en pagina&rsquo;s.';
+$OVERVIEW['MEDIA'] = 'Beheren van bestanden in de Media-folder.';
+$OVERVIEW['MODULES'] = 'Beheren van modules die extra functies toevoegen aan uw site.';
+$OVERVIEW['TEMPLATES'] = 'Beheren van de website-designs die u kunt toepassen.';
+$OVERVIEW['LANGUAGES'] = 'Beheren van de aanwezige taalbestanden.';
+$OVERVIEW['PREFERENCES'] = 'Beheren van uw persoonlijk profiel.';
+$OVERVIEW['SETTINGS'] = 'Beheren van de technische website-instellingen.';
+$OVERVIEW['USERS'] = 'Beheren van de gebruikers van uw website.';
+$OVERVIEW['GROUPS'] = 'Beheren van de gebruikersgroepen en hun rechten.';
+$OVERVIEW['HELP'] = 'Uitgebreide (Engelstalige) hulp voor het gebruik van dit systeem.';
+$OVERVIEW['VIEW'] = 'Bekijk uw website zoals deze voor bezoekers te zien is (nieuw scherm).';
+$OVERVIEW['ADMINTOOLS'] = 'Wijzig diverse beheerinstellingen...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Beheer bestaande pagina&rsquo;s';
+$HEADING['DELETED_PAGES'] = 'Gewiste pagina&rsquo;s';
+$HEADING['ADD_PAGE'] = 'Toevoegen nieuwe pagina';
+$HEADING['ADD_HEADING'] = 'Toevoegen Heading';
+$HEADING['MODIFY_PAGE'] = 'Aanpassen pagina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Pagina-instellingen';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Geavanceerde pagina-instellingen';
+$HEADING['MANAGE_SECTIONS'] = 'Beheer secties';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Wijzig introductiepagina';
+
+$HEADING['BROWSE_MEDIA'] = 'Bladeren door Media-map';
+$HEADING['CREATE_FOLDER'] = 'Toevoegen nieuwe map';
+$HEADING['UPLOAD_FILES'] = 'Uploaden bestanden';
+
+$HEADING['INSTALL_MODULE'] = 'Toevoegen module';
+$HEADING['UNINSTALL_MODULE'] = 'Verwijderen module';
+$HEADING['MODULE_DETAILS'] = 'Modulegegevens';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Toevoegen template';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Verwijderen template';
+$HEADING['TEMPLATE_DETAILS'] = 'Template-gegevens';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Toevoegen taalbestand';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Verwijderen taalbestand';
+$HEADING['LANGUAGE_DETAILS'] = 'Taalbestandgegevens';
+
+$HEADING['MY_SETTINGS'] = 'Mijn gegevens';
+$HEADING['MY_EMAIL'] = 'Mijn e-mailadres';
+$HEADING['MY_PASSWORD'] = 'Mijn wachtwoord';
+
+$HEADING['GENERAL_SETTINGS'] = 'Algemene instellingen';
+$HEADING['DEFAULT_SETTINGS'] = 'Standaardinstellingen';
+$HEADING['SEARCH_SETTINGS'] = 'Zoekinstellingen';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Bestandssysteeminstellingen';
+$HEADING['SERVER_SETTINGS'] = 'Server-instellingen';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Beheerinstellingen';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Beheren gebruikers';
+$HEADING['ADD_USER'] = 'Toevoegen gebruiker';
+$HEADING['MODIFY_USER'] = 'Gebruikersgegevens';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Beheren groep';
+$HEADING['ADD_GROUP'] = 'Toevoegen groep';
+$HEADING['MODIFY_GROUP'] = 'Groepsgegevens';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Toevoegen';
+$TEXT['MODIFY'] = 'Wijzigen';
+$TEXT['SETTINGS'] = 'Instellingen';
+$TEXT['DELETE'] = 'Verwijderen';
+$TEXT['SAVE'] = 'Opslaan';
+$TEXT['RESET'] = 'Opnieuw';
+$TEXT['LOGIN'] = 'Inloggen';
+$TEXT['RELOAD'] = 'Vernieuwen';
+$TEXT['CANCEL'] = 'Annuleren';
+$TEXT['NAME'] = 'Naam';
+$TEXT['PLEASE_SELECT'] = 'Selecteer';
+$TEXT['TITLE'] = 'Titel';
+$TEXT['PARENT'] = 'Ouder';
+$TEXT['TYPE'] = 'Type';
+$TEXT['VISIBILITY'] = 'Zichtbaarheid';
+$TEXT['PRIVATE'] = 'Alleen aangemelde bezoekers';
+$TEXT['PUBLIC'] = 'Iedereen';
+$TEXT['NONE'] = 'Geen';
+$TEXT['NONE_FOUND'] = 'Niet gevonden';
+$TEXT['CURRENT'] = 'Huidig(e)';
+$TEXT['CHANGE'] = 'Verander';
+$TEXT['WINDOW'] = 'Scherm';
+$TEXT['DESCRIPTION'] = 'Omschrijving';
+$TEXT['KEYWORDS'] = 'Zoektermen';
+$TEXT['ADMINISTRATORS'] = 'Beheerders';
+$TEXT['PRIVATE_VIEWERS'] = 'Aangemelde bezoekers';
+$TEXT['EXPAND'] = 'Uitklappen';
+$TEXT['COLLAPSE'] = 'Inklappen';
+$TEXT['MOVE_UP'] = 'Naar boven';
+$TEXT['MOVE_DOWN'] = 'Naar beneden';
+$TEXT['RENAME'] = 'Hernoemen';
+$TEXT['MODIFY_SETTINGS'] = 'Wijzig instellingen';
+$TEXT['MODIFY_CONTENT'] = 'Wijzig inhoud';
+$TEXT['VIEW'] = 'Bekijken';
+$TEXT['UP'] = 'Omhoog';
+$TEXT['FORGOTTEN_DETAILS'] = 'Gegevens vergeten?';
+$TEXT['NEED_TO_LOGIN'] = 'Inloggen?';
+$TEXT['SEND_DETAILS'] = 'Stuur gegevens';
+$TEXT['USERNAME'] = 'Gebruikersnaam';
+$TEXT['PASSWORD'] = 'Wachtwoord';
+$TEXT['HOME'] = 'Home';
+$TEXT['TARGET_FOLDER'] = 'Doelmap';
+$TEXT['OVERWRITE_EXISTING'] = 'Overschrijf bestaand(e)';
+$TEXT['FILE'] = 'Bestand';
+$TEXT['FILES'] = 'bestanden';
+$TEXT['FOLDER'] = 'Map';
+$TEXT['FOLDERS'] = 'Mappen';
+$TEXT['CREATE_FOLDER'] = 'Cre&euml;er map';
+$TEXT['UPLOAD_FILES'] = 'Upload bestand(en)';
+$TEXT['CURRENT_FOLDER'] = 'Huidige map';
+$TEXT['TO'] = 'Naar';
+$TEXT['FROM'] = 'Van';
+$TEXT['INSTALL'] = 'Installeren';
+$TEXT['UNINSTALL'] = 'Verwijderen';
+$TEXT['VIEW_DETAILS'] = 'Gegevens bekijken';
+$TEXT['DISPLAY_NAME'] = 'Naamweergave';
+$TEXT['AUTHOR'] = 'Auteur';
+$TEXT['VERSION'] = 'Versie';
+$TEXT['DESIGNED_FOR'] = 'Ontworpen voor';
+$TEXT['DESCRIPTION'] = 'Omschrijving';
+$TEXT['EMAIL'] = 'E-mail';
+$TEXT['LANGUAGE'] = 'Taal';
+$TEXT['TIMEZONE'] = 'Tijdzone';
+$TEXT['CURRENT_PASSWORD'] = 'Huidig wachtwoord';
+$TEXT['NEW_PASSWORD'] = 'Nieuw wachtwoord';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Herhaal nieuw wachtwoord';
+$TEXT['ACTIVE'] = 'Actief';
+$TEXT['DISABLED'] = 'Uit';
+$TEXT['ENABLED'] = 'Aan';
+$TEXT['RETYPE_PASSWORD'] = 'Herhaal wachtwoord';
+$TEXT['GROUP'] = 'Groep';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Systeembevoegdheden';
+$TEXT['MODULE_PERMISSIONS'] = 'Modulebevoegdheden';
+$TEXT['SHOW_ADVANCED'] = 'Bekijk geavanceerde opties';
+$TEXT['HIDE_ADVANCED'] = 'Verberg geavanceerde opties';
+$TEXT['BASIC'] = 'Basis';
+$TEXT['ADVANCED'] = 'Geavanceerd';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Standaard';
+$TEXT['KEYWORDS'] = 'Zoektermen';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Koptekst';
+$TEXT['FOOTER'] = 'Voettekst';
+$TEXT['TEMPLATE'] = 'Template';
+$TEXT['INSTALLATION'] = 'Installatie';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Introductie';
+$TEXT['PAGE'] = 'Pagina';
+$TEXT['SIGNUP'] = 'Aanmelden';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP-foutmeldingsniveau';
+$TEXT['ADMIN'] = 'Beheerder';
+$TEXT['PATH'] = 'Pad';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Bezoekersversie van website';
+$TEXT['EXTENSION'] = 'Extensie';
+$TEXT['TABLE_PREFIX'] = 'Tabelvoorvoegsel';
+$TEXT['CHANGES'] = 'Veranderingen';
+$TEXT['ADMINISTRATION'] = 'Beheer';
+$TEXT['FORGOT_DETAILS'] = 'Gegevens vergeten?';
+$TEXT['LOGGED_IN'] = 'Ingelogd';
+$TEXT['WELCOME_BACK'] = 'Welkom terug';
+$TEXT['FULL_NAME'] = 'Volledige naam';
+$TEXT['ACCOUNT_SIGNUP'] = 'Aanmelden als gebruiker';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anker';
+$TEXT['TARGET'] = 'Doel';
+$TEXT['NEW_WINDOW'] = 'Nieuw scherm';
+$TEXT['SAME_WINDOW'] = 'Zelfde scherm';
+$TEXT['TOP_FRAME'] = 'Bovenste Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Paginaniveaulimiet';
+$TEXT['SUCCESS'] = 'Succes';
+$TEXT['ERROR'] = 'Fout';
+$TEXT['ARE_YOU_SURE'] = 'Weet u het zeker?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Nee';
+$TEXT['SYSTEM_DEFAULT'] = 'Standaardinstellingen';
+$TEXT['PAGE_TITLE'] = 'Paginatitel';
+$TEXT['MENU_TITLE'] = 'Menutitel';
+$TEXT['ACTIONS'] = 'Acties';
+$TEXT['UNKNOWN'] = 'Onbekend(e)';
+$TEXT['BLOCK'] = 'Blok';
+$TEXT['SEARCH'] = 'Zoeken';
+$TEXT['SEARCHING'] = 'Zoekfunctie';
+$TEXT['POST'] = 'Bericht';
+$TEXT['COMMENT'] = 'Commentaar';
+$TEXT['COMMENTS'] = 'Commentaren';
+$TEXT['COMMENTING'] = 'Commentaar-opties';
+$TEXT['SHORT'] = 'Kort';
+$TEXT['LONG'] = 'Lang';
+$TEXT['LOOP'] = 'Herhaling';
+$TEXT['FIELD'] = 'Veld';
+$TEXT['REQUIRED'] = 'Verplicht';
+$TEXT['LENGTH'] = 'Lengte';
+$TEXT['MESSAGE'] = 'Bericht';
+$TEXT['SUBJECT'] = 'Onderwerp';
+$TEXT['MATCH'] = 'Gelijk aan';
+$TEXT['ALL_WORDS'] = 'Term of deel van term';
+$TEXT['ANY_WORDS'] = 'E&eacute;n van de termen';
+$TEXT['EXACT_MATCH'] = 'Exacte term';
+$TEXT['SHOW'] = 'Tonen';
+$TEXT['HIDE'] = 'Verbergen';
+$TEXT['START_PUBLISHING'] = 'Start publicatie';
+$TEXT['FINISH_PUBLISHING'] = 'Einde publicatie';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Einde';
+$TEXT['IMAGE'] = 'Afbeelding';
+$TEXT['ICON'] = 'Icoon';
+$TEXT['SECTION'] = 'Sectie';
+$TEXT['DATE_FORMAT'] = 'Datumweergave';
+$TEXT['TIME_FORMAT'] = 'Tijdweergave';
+$TEXT['RESULTS'] = 'Resultaten';
+$TEXT['RESIZE'] = 'Veranderen grootte';
+$TEXT['MANAGE'] = 'Beheren';
+$TEXT['CODE'] = 'Code';
+$TEXT['WIDTH'] = 'Breedte';
+$TEXT['HEIGHT'] = 'Hoogte';
+$TEXT['MORE'] = 'Meer';
+$TEXT['READ_MORE'] = 'Lees verder';
+$TEXT['CHANGE_SETTINGS'] = 'Verander instellingen';
+$TEXT['CURRENT_PAGE'] = 'Huidige pagina';
+$TEXT['CLOSE'] = 'Sluiten';
+$TEXT['INTRO_PAGE'] = 'Introductiepagina';
+$TEXT['INSTALLATION_URL'] = 'Installatie-URL';
+$TEXT['INSTALLATION_PATH'] = 'Installatiepad';
+$TEXT['PAGE_EXTENSION'] = 'Pagina-extensie';
+$TEXT['NO_RESULTS'] = 'Geen resultaten';
+$TEXT['WEBSITE_TITLE'] = 'Website-titel';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Website-omschrijving';
+$TEXT['WEBSITE_KEYWORDS'] = 'Website-keywords';
+$TEXT['WEBSITE_HEADER'] = 'Website-header';
+$TEXT['WEBSITE_FOOTER'] = 'Website-footer';
+$TEXT['RESULTS_HEADER'] = 'Resultaten-header';
+$TEXT['RESULTS_LOOP'] = 'Zoekresultaten';
+$TEXT['RESULTS_FOOTER'] = 'Zoekresultaten-footer';
+$TEXT['LEVEL'] = 'Niveau';
+$TEXT['NOT_FOUND'] = 'Niet gevonden';
+$TEXT['PAGE_SPACER'] = 'Pagina-spacer';
+$TEXT['MATCHING'] = 'Overeenkomend';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Template-bevoegdheden';
+$TEXT['PAGES_DIRECTORY'] = 'Pagina&rsquo;s directory';
+$TEXT['MEDIA_DIRECTORY'] = 'Media-directory';
+$TEXT['FILE_MODE'] = 'Bestandsmodus';
+$TEXT['USER'] = 'Gebruiker';
+$TEXT['OTHERS'] = 'Anderen';
+$TEXT['READ'] = 'Lees';
+$TEXT['WRITE'] = 'Schrijf';
+$TEXT['EXECUTE'] = 'Uitvoeren';
+$TEXT['SMART_LOGIN'] = 'Slim inloggen';
+$TEXT['REMEMBER_ME'] = 'Onthoud mijn gegevens.';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Bestandssysteembevoegdheden';
+$TEXT['DIRECTORIES'] = 'Mappen';
+$TEXT['DIRECTORY_MODE'] = 'Directory-modus';
+$TEXT['LIST_OPTIONS'] = 'Lijstopties';
+$TEXT['OPTION'] = 'Opties';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Meerdere selecties toestaan';
+$TEXT['TEXTFIELD'] = 'Tekstveld';
+$TEXT['TEXTAREA'] = 'Tekstomgeving';
+$TEXT['SELECT_BOX'] = 'Selectievakje';
+$TEXT['CHECKBOX_GROUP'] = 'Aankruisvakjesgroep';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio-buttongroep';
+$TEXT['SIZE'] = 'Grootte';
+$TEXT['DEFAULT_TEXT'] = 'Standaard tekst';
+$TEXT['SEPERATOR'] = 'Scheidingslijn';
+$TEXT['BACK'] = 'Terug';
+$TEXT['UNDER_CONSTRUCTION'] = 'In bewerking';
+$TEXT['MULTISELECT'] = 'Meervoudige selectie';
+$TEXT['SHORT_TEXT'] = 'Korte tekst';
+$TEXT['LONG_TEXT'] = 'Lange tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Homepage redirection';
+$TEXT['HEADING'] = 'Titel';
+$TEXT['MULTIPLE_MENUS'] = 'Meervoudige menu&rsquo;s';
+$TEXT['REGISTERED'] = 'Geregistreerd';
+$TEXT['SECTION_BLOCKS'] = 'Sectieblokken';
+$TEXT['REGISTERED_VIEWERS'] = 'Geregistreerde bezoekers';
+$TEXT['ALLOWED_VIEWERS'] = 'Toegestane kijkers';
+$TEXT['SUBMISSION_ID'] = 'Toegevoegd bericht';
+$TEXT['SUBMISSIONS'] = 'Toevoegingen';
+$TEXT['SUBMITTED'] = 'Toegevoegd';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. toevoegingen per uur';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Toevoegingen opgeslagen in database';
+$TEXT['EMAIL_ADDRESS'] = 'E-mailadres';
+$TEXT['CUSTOM'] = 'Maatwerk';
+$TEXT['ANONYMOUS'] = 'Anoniem';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server-besturingssysteem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Volledig veranderbare bestandspermissies';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix-gebaseerd';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home-map';
+$TEXT['HOME_FOLDERS'] = 'Home-mappen';
+$TEXT['PAGE_TRASH'] = 'Pagina-prullenbak';
+$TEXT['INLINE'] = 'Inline';
+$TEXT['SEPARATE'] = 'Gescheiden';
+$TEXT['DELETED'] = 'Gewist';
+$TEXT['VIEW_DELETED_PAGES'] = 'Bekijk gewiste pagina&rsquo;s';
+$TEXT['EMPTY_TRASH'] = 'Legen prullenbak';
+$TEXT['TRASH_EMPTIED'] = 'Prullenbak geleegd';
+$TEXT['ADD_SECTION'] = 'Toevoegen sectie';
+$TEXT['POST_HEADER'] = 'Bericht-header';
+$TEXT['POST_FOOTER'] = 'Bericht-footer';
+$TEXT['POSTS_PER_PAGE'] = 'Berichten per pagina';
+$TEXT['RESIZE_IMAGE_TO'] = 'Verander afbeeldingsgrootte naar';
+$TEXT['UNLIMITED'] = 'Ongelimiteerd';
+$TEXT['OF'] = 'Uit';
+$TEXT['OUT_OF'] = 'Buiten';
+$TEXT['NEXT'] = 'Volgende';
+$TEXT['PREVIOUS'] = 'Vorige';
+$TEXT['NEXT_PAGE'] = 'Volgende pagina';
+$TEXT['PREVIOUS_PAGE'] = 'Vorige pagina';
+$TEXT['ON'] = 'Op';
+$TEXT['LAST_UPDATED_BY'] = 'Laatst vernieuwd door';
+$TEXT['RESULTS_FOR'] = 'Resultaten voor';
+$TEXT['TIME'] = 'Tijd';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG-stijl';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG-editor';
+$TEXT['SERVER_EMAIL'] = 'Server e-mail';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Beheer groepen';
+$TEXT['MANAGE_USERS'] = 'Beheer gebruikers';
+$TEXT['PAGE_LANGUAGES'] = 'Talen';
+$TEXT['HIDDEN'] = 'Verborgen';
+$TEXT['MAIN'] = 'Primair(e)';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Bestanden hernoemen bij uploaden';
+$TEXT['APP_NAME'] = 'Applicatienaam';
+$TEXT['SESSION_IDENTIFIER'] = 'Sessie-identificatie';
+$TEXT['BACKUP'] = 'Backup maken';
+$TEXT['RESTORE'] = 'Backup terugzetten';
+$TEXT['BACKUP_DATABASE'] = 'Database-backup maken';
+$TEXT['RESTORE_DATABASE'] = 'Database-backup terugzetten';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup van alle tabellen in de database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup van enkel WB-gerelateerde tabellen';
+$TEXT['BACKUP_MEDIA'] = 'Backuppen Media-folder';
+$TEXT['RESTORE_MEDIA'] = 'Terugzetten Media-folder';
+$TEXT['ADMINISTRATION_TOOL'] = 'Beheeropties';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha-verificatie';
+$TEXT['VERIFICATION'] = 'Verificatie';
+$TEXT['DEFAULT_CHARSET'] = 'Standaard tekenset';
+$TEXT['CHARSET'] = 'Tekenset';
+$TEXT['MODULE_ORDER'] = 'Module volgorde om te zoeken';
+$TEXT['MAX_EXCERPT'] = 'Max lijnen per zoeksessie';
+$TEXT['TIME_LIMIT'] = 'Max tijd om gegevens te zoeken per module';
+$TEXT['PUBL_START_DATE'] = 'Start datum';
+$TEXT['PUBL_END_DATE'] = 'Eind datum';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Wis datum';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Specifieer hieronder een standaard "VAN" adres en "AFZENDER" naam. Het is aanbevolen om een VAN adres zoals: <strong>admin@yourdomain.com</strong> te gebruiken. Om spam te verhinderen kunnen sommige mailproviders (vb <em>mail.com</em>) mails verwerpen met een VAN: adres zoals <em>name@mail.com</em>, die verzonden worden vanaf een vreemde relay-server.<br /><br />Onderstaande standaardwaarden worden enkel gebruikt indien geen andere waarden gespecifieerd worden door Website Baker. Indien uw server <acronym title="Simple mail transfer protocol">SMTP</acronym> ondersteunt kunt u deze optie gebruiken voor het versturen van uitgaande mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Standaard mail Van';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Standaard Afzender Naam';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Instellingen:</strong><br />Onderstaande instellingen zijn enkel van toepassing indien u mails wenst te verzenden via <acronym title="Simple mail transfer protocol">SMTP</acronym>. Indien u de naam of instellingen van de SMTP server niet kent, selecteer dan bij de standaard mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP authenticatie';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'Enkel wanneer men zich dient aan te melden op de SMTP Host';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP gebruikersnaam';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Paswoord';
+$TEXT['PLEASE_LOGIN'] = 'Inloggen aub';
+$TEXT['CAP_EDIT_CSS'] = 'Wijzig CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actuele module bestand: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Wijzig de CSS definities in het textveld hieronder.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Sorry, u heeft geen bevoegdheden om deze pagina te bekijken';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, niets om af te beelden';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Onvoldoende rechten om hier te zijn';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Vul uw gebruikersnaam en wachtwoord in:';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Vul uw gebruikersnaam in';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Vul uw wachtwoord in';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Deze gebruikersnaam is te kort';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Dit wachtwoord is te kort';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Deze gebruikersnaam is te lang';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Dit wachtwoord is te lang';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Gebruikersnaam en/of wachtwoord incorrect';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'U moet een e-mailadres invullen';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Vult u alstublieft uw e-mailadres hieronder in';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Het door u opgegeven e-mailadres is niet gevonden in onze database';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Het is niet mogelijk uw wachtwoord per e-mail te versturen. Neem contact op met de beheerder';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Uw gebruikersnaam en wachtwoord zijn verzonden naar het opgegeven e-mailadres';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Sorry, het wachtwoord kan maximaal eens per uur worden aangepast.';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Welkom bij het website-beheer';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Waarschuwing, de installatiemap bestaat nog steeds!';
+$MESSAGE['START']['CURRENT_USER'] = 'U bent ingelogd als';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Het configuratiebestand kan niet worden geopend';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Kan niet wegschrijven naar het configuratiebestand';
+$MESSAGE['SETTINGS']['SAVED'] = 'Instellingen succesvol opgeslagen';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Opgelet: sla eerst de wijzigingen op die u eventueel zojuist heeft aangebracht!';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Opgelet: dit is alleen bedoeld voor testdoeleinden!';
+
+$MESSAGE['USERS']['ADDED'] = 'Gebruiker succesvol toegevoegd';
+$MESSAGE['USERS']['SAVED'] = 'Gebruiker succesvol opgeslagen';
+$MESSAGE['USERS']['DELETED'] = 'Gebruiker succesvol verwijderd';
+$MESSAGE['USERS']['NO_GROUP'] = 'Geen groep geselecteerd';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'De ingevoerde  gebruikersnaam is te kort';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Het ingevoerde wachtwoord is te kort';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'De ingevoerde wachtwoorden komen niet overeen';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Het ingevoerde e-mailadres is niet correct';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Het ingevoerde e-mailadres is al in gebruik';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'De ingevoerde gebruikersnaam is al in gebruik';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Attentie: vul alleen de bovenstaande velden in wanneer u het wachtwoord van de gebruiker wilt veranderen';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Weet u zeker dat u de geselecteerde gebruiker wilt verwijderen?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Groep succesvol toegevoegd';
+$MESSAGE['GROUPS']['SAVED'] = 'Groep succesvol opgeslagen';
+$MESSAGE['GROUPS']['DELETED'] = 'Groep succesvol verwijderd';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Groepsnaam is niet ingevuld';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Weet u zeker dat u de geselecteerde groep wilt verwijderen (en alle daarbij behorende gebruikers)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Geen groep gevonden';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Groepnaam is reeds in gebruik';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Details succesvol opgeslagen';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-mail succesvol gewijzigd';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Het (huidige) ingevoerde wachtwoord is niet correct';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Wachtwoord succesvol gewijzigd';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Attentie: Om de template aan te passen moet u naar de instellingensectie';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Gebruik van ../ in de mapnaam is niet toegestaan';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Map bestaat niet';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Gebruik van ../ in de map is niet toegestaan';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Gebruik van ../ in de naam is niet toegestaan';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'index.php als naam is niet toegestaan';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Geen media bestanden gevonden in de huidige map';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Bestand niet gevonden';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Bestand succesvol verwijderd';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Map succesvol verwijderd';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Weet u zeker dat u het volgende bestand of map wilt verwijderen?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Kan geselecteerde bestand niet verwijderen';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Kan geselecteerde map niet verwijderen';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'U heeft geen nieuwe naam opgegeven';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'U heeft geen bestandsextensie opgegeven';
+$MESSAGE['MEDIA']['RENAMED'] = 'Succesvol hernoemd';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Hernoemen niet gelukt';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Opgegeven bestandsnaam bestaat al';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Opgegeven naam van de map bestaat al';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Folder succesvol aangemaakt';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Aanmaken map mislukt';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' succesvol geupload';
+$MESSAGE['MEDIA']['UPLOADED'] = ' succesvol geupload';
+
+$MESSAGE['PAGES']['ADDED'] = 'Pagina succesvol opgeslagen';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Pagina-heading succesvol opgeslagen';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Een pagina met dezelfde naam bestaat al';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Kan geen bestanden opslaan in de /pages-map (onvoldoende rechten)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Kan geen bestanden verwijderen uit de /pages-map (onvoldoende rechten)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Pagina niet gevonden';
+$MESSAGE['PAGES']['SAVED'] = 'Pagina succesvol opgeslagen';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Pagina-instellingen succesvol opgeslagen';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Fout tijdens opslaan pagina';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Weet u zeker dat u deze pagina wilt verwijderen (en al zijn subpagina&rsquo;s)';
+$MESSAGE['PAGES']['DELETED'] = 'Pagina succesvol verwijderd';
+$MESSAGE['PAGES']['RESTORED'] = 'Pagina succesvol teruggehaald';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Vul aub een paginatitel in';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Vul aub een menutitel in';
+$MESSAGE['PAGES']['REORDERED'] = 'Pagina succesvol herordend';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Fout bij herordenen pagina';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'U heeft niet de rechten om deze pagina aan te passen';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Kan instellingen niet wegschrijven naar het bestand /pages/intro.php (onvoldoende rechten)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Introductiepagina succesvol opgeslagen';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Als laatste aangepast door';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Klik hier om de introductiepagina aan te passen';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Sectie-instellingen succesvol opgeslagen';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Keer terug naar pagina&rsquo;s';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Niet alle velden zijn ingevuld. Probeert u het nog eens';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Let op: het bestand moet het volgende formaat hebben:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Let op: de bestanden moeten het volgende formaat hebben:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Kan niet uploaden';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Is al ge&iuml;nstalleerd';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Niet ge&iuml;nstalleerd';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Kan niet de&iuml;nstalleren';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Kan het bestand niet uitpakken';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installatie succesvol';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgrade succesvol';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'De&iuml;nstallatie succesvol';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kan niet schrijven naar doelmap';
+$MESSAGE['GENERIC']['INVALID'] = 'Ongeldig bestand';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kan niet de&iuml;nstalleren: het geselecteerde bestand is in gebruik';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Probeert u aub het binnenkort nog eens.';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Even geduld aub, dit kan even duren.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Kan bestand niet openen.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'De volgende velden zijn verplicht';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Sorry, dit formulier is te vaak verstuurd binnen dit uur. Probeert u het over een uur nog eens.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Het verificatienummer (ook wel Captcha genoemd) dat u hebt ingevoerd is incorrect. Als u de Captcha niet goed kunt lezen, stuur dan een e-mail naar: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Selecteer de extra&rsquo;s die u opnieuw wilt laden';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules succesvol herladen';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates succesvol herladen';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Taalbestanden succesvol herladen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/NL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/PL.php
===================================================================
--- tags/2.7.0/wb/languages/PL.php	(nonexistent)
+++ tags/2.7.0/wb/languages/PL.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'PL';
+$language_name = 'Polski';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Marek St&#281;pie&#324;';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Pocz&#261;tek';
+$MENU['PAGES'] = 'Strony';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Dodatki';
+$MENU['MODULES'] = 'Modu&#322;y';
+$MENU['TEMPLATES'] = 'Szablony';
+$MENU['LANGUAGES'] = 'J&#281;zyki';
+$MENU['PREFERENCES'] = 'Preferencje';
+$MENU['SETTINGS'] = 'Ustawienia';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Dost&#281;p';
+$MENU['USERS'] = 'U&#380;ytkownicy';
+$MENU['GROUPS'] = 'Grupy';
+$MENU['HELP'] = 'Pomoc';
+$MENU['VIEW'] = 'Podgl&#261;d';
+$MENU['LOGOUT'] = 'Wyloguj';
+$MENU['LOGIN'] = 'Zaloguj si&#281;';
+$MENU['FORGOT'] = 'Odzyskaj dane logowania';
+
+// Section overviews
+$OVERVIEW['START'] = 'Panel administracyjny';
+$OVERVIEW['PAGES'] = 'Zarz&#261;dzaj stronami...';
+$OVERVIEW['MEDIA'] = 'Zarz&#261;dzaj plikami przechowywanymi w folderze medi&oacute;w...';
+$OVERVIEW['MODULES'] = 'Zarz&#261;dzaj modu&#322;ami Website Bakera...';
+$OVERVIEW['TEMPLATES'] = 'Zmie&#324; wygl&#261;d swojej strony za pomoc&#261; szablon&oacute;w...';
+$OVERVIEW['LANGUAGES'] = 'Zarz&#261;dzaj j&#281;zykami Website Bakera...';
+$OVERVIEW['PREFERENCES'] = 'Zmie&#324; preferencje, takie jak adres e-mail, has&#322;o itp... ';
+$OVERVIEW['SETTINGS'] = 'Zmie&#324; ustawienia Website Bakera...';
+$OVERVIEW['USERS'] = 'Zarz&#261;dzaj u&#380;ytkownikami mog&#261;cymi logowa&#263; si&#281; do Website Bakera...';
+$OVERVIEW['GROUPS'] = 'Zarz&#261;dzaj gropami u&#380;ytkownik&oacute;w i ich uprawnieniami systemowymi...';
+$OVERVIEW['HELP'] = 'Masz pytania? Znajd&#378; odpowiedzi...';
+$OVERVIEW['VIEW'] = 'Podgl&#261;d witryny w nowym oknie...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Zmie&#324;/Usu&#324; stron&#281;';
+$HEADING['DELETED_PAGES'] = 'Usuni&#281;te strony';
+$HEADING['ADD_PAGE'] = 'Dodaj stron&#281;';
+$HEADING['ADD_HEADING'] = 'Dodaj nag&#322;&oacute;wek';
+$HEADING['MODIFY_PAGE'] = 'Zmie&#324; stron&#281;';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Zmie&#324; ustawienia strony';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Zmie&#324; zaawansowane ustawienia strony';
+$HEADING['MANAGE_SECTIONS'] = 'Zarz&#261;dzaj sekcjami';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Zmie&#324; stron&#281; pocz&#261;tkow&#261;';
+
+$HEADING['BROWSE_MEDIA'] = 'Przegl&#261;daj media';
+$HEADING['CREATE_FOLDER'] = 'Utw&oacute;rz folder';
+$HEADING['UPLOAD_FILES'] = 'Za&#322;aduj plik(i)';
+
+$HEADING['INSTALL_MODULE'] = 'Zainstaluj modu&#322;';
+$HEADING['UNINSTALL_MODULE'] = 'Odinstaluj modu&#322;';
+$HEADING['MODULE_DETAILS'] = 'Szczeg&oacute;&#322;y modu&#322;u';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Zainstaluj szablon';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Odinstaluj szablon';
+$HEADING['TEMPLATE_DETAILS'] = 'Szczeg&oacute;&#322;y szablonu';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Zainstaluj j&#281;zyk';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Odinstaluj j&#281;zyk';
+$HEADING['LANGUAGE_DETAILS'] = 'Szczeg&oacute;&#322;y j&#281;zyka';
+
+$HEADING['MY_SETTINGS'] = 'Moje ustawienia';
+$HEADING['MY_EMAIL'] = 'M&oacute;j e-mail';
+$HEADING['MY_PASSWORD'] = 'Moje has&#322;o';
+
+$HEADING['GENERAL_SETTINGS'] = 'Ustawienia og&oacute;lne';
+$HEADING['DEFAULT_SETTINGS'] = 'Ustawienia domy&#347;lne';
+$HEADING['SEARCH_SETTINGS'] = 'Ustawienia wyszukiwania';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Ustawienia systemy plik&oacute;w';
+$HEADING['SERVER_SETTINGS'] = 'Ustawienia serwera';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Narz&#281;dzia administracyjne';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Zmie&#324;/usu&#324; u&#380;ytkownika';
+$HEADING['ADD_USER'] = 'Dodaj u&#380;ytkownika';
+$HEADING['MODIFY_USER'] = 'Zmie&#324; u&#380;ytkownika';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Zmie&#324;/usu&#324; grup&#281;';
+$HEADING['ADD_GROUP'] = 'Dodaj grup&#281;';
+$HEADING['MODIFY_GROUP'] = 'Zmie&#324; grup&#281;';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Dodaj';
+$TEXT['MODIFY'] = 'Zmie&#324;';
+$TEXT['SETTINGS'] = 'Ustawienia';
+$TEXT['DELETE'] = 'Usu&#324;';
+$TEXT['SAVE'] = 'Zapisz';
+$TEXT['RESET'] = 'Resetuj';
+$TEXT['LOGIN'] = 'Zaloguj';
+$TEXT['RELOAD'] = 'Reload';
+$TEXT['CANCEL'] = 'Anuluj';
+$TEXT['NAME'] = 'Nazwa';
+$TEXT['PLEASE_SELECT'] = 'Prosz&#281; wybra&#263;';
+$TEXT['TITLE'] = 'Tytu&#322;';
+$TEXT['PARENT'] = 'Nadrz&#281;dny';
+$TEXT['TYPE'] = 'Rodzaj';
+$TEXT['VISIBILITY'] = 'Widoczno&#347;&#263;';
+$TEXT['PRIVATE'] = 'Prywatna';
+$TEXT['PUBLIC'] = 'Publiczna';
+$TEXT['NONE'] = 'Brak';
+$TEXT['NONE_FOUND'] = 'Nie odnaleziono';
+$TEXT['CURRENT'] = 'Bie&#380;&#261;cy';
+$TEXT['CHANGE'] = 'Zmie&#324;';
+$TEXT['WINDOW'] = 'Okno';
+$TEXT['DESCRIPTION'] = 'Opis';
+$TEXT['KEYWORDS'] = 'S&#322;owa kluczowe';
+$TEXT['ADMINISTRATORS'] = 'Administratorzy';
+$TEXT['PRIVATE_VIEWERS'] = 'Prywatni obserwatorzy';
+$TEXT['EXPAND'] = 'Rozwi&#324;';
+$TEXT['COLLAPSE'] = 'Zwi&#324;';
+$TEXT['MOVE_UP'] = 'Do g&oacute;ry';
+$TEXT['MOVE_DOWN'] = 'W d&oacute;&#322;';
+$TEXT['RENAME'] = 'Zmie&#324; nazw&#281;';
+$TEXT['MODIFY_SETTINGS'] = 'Zmie&#324; ustawienia';
+$TEXT['MODIFY_CONTENT'] = 'Zmie&#324; zawarto&#347;&#263;';
+$TEXT['VIEW'] = 'Widok';
+$TEXT['UP'] = 'G&oacute;ra';
+$TEXT['FORGOTTEN_DETAILS'] = 'Zapomnia&#322;e&#347;(-a&#347;) has&#322;a?';
+$TEXT['NEED_TO_LOGIN'] = 'Potrzebujesz si&#281; zalogowa&#263;?';
+$TEXT['SEND_DETAILS'] = 'Wy&#347;lij szczeg&oacute;&#322;y';
+$TEXT['USERNAME'] = 'Nazwa u&#380;ytkownika';
+$TEXT['PASSWORD'] = 'Has&#322;o';
+$TEXT['HOME'] = 'Strona domowa';
+$TEXT['TARGET_FOLDER'] = 'Folder docelowy';
+$TEXT['OVERWRITE_EXISTING'] = 'Nadpisz istniej&#261;cy(-e)';
+$TEXT['FILE'] = 'plik';
+$TEXT['FILES'] = 'pliki';
+$TEXT['FOLDER'] = 'folder';
+$TEXT['FOLDERS'] = 'foldery';
+$TEXT['CREATE_FOLDER'] = 'Utw&oacute;rz folder';
+$TEXT['UPLOAD_FILES'] = 'Za&#322;aduj plik(i)';
+$TEXT['CURRENT_FOLDER'] = 'Bie&#380;&#261;cy folder';
+$TEXT['TO'] = 'Do';
+$TEXT['FROM'] = 'Od';
+$TEXT['INSTALL'] = 'Zainstaluj';
+$TEXT['UNINSTALL'] = 'Odinstaluj';
+$TEXT['VIEW_DETAILS'] = 'Poka&#380; szczeg&oacute;&#322;y';
+$TEXT['DISPLAY_NAME'] = 'Nazwa';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Wersja';
+$TEXT['DESIGNED_FOR'] = 'Zaprojektowane dla';
+$TEXT['DESCRIPTION'] = 'Opis';
+$TEXT['EMAIL'] = 'E-mail';
+$TEXT['LANGUAGE'] = 'J&#281;zyk';
+$TEXT['TIMEZONE'] = 'Strefa czasowa';
+$TEXT['CURRENT_PASSWORD'] = 'Bie&#380;&#261;ce has&#322;o';
+$TEXT['NEW_PASSWORD'] = 'Nowe has&#322;o';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Powt&oacute;rz nowe has&#322;o';
+$TEXT['ACTIVE'] = 'Aktywne';
+$TEXT['DISABLED'] = 'Wy&#322;&#261;czone';
+$TEXT['ENABLED'] = 'W&#322;&#261;czone';
+$TEXT['RETYPE_PASSWORD'] = 'Powt&oacute;rz has&#322;o';
+$TEXT['GROUP'] = 'Grupa';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Uprawnienia systemowe';
+$TEXT['MODULE_PERMISSIONS'] = 'Uprawnienia do modu&#322;&oacute;w';
+$TEXT['SHOW_ADVANCED'] = 'Wy&#347;wietl opcje zaawansowane';
+$TEXT['HIDE_ADVANCED'] = 'Schowaj opcje zaawansowane';
+$TEXT['BASIC'] = 'Podstawowe';
+$TEXT['ADVANCED'] = 'Zaawansowane';
+$TEXT['WEBSITE'] = 'Witryna';
+$TEXT['DEFAULT'] = 'Domy&#347;lne';
+$TEXT['KEYWORDS'] = 'S&#322;owa kluczowe';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Nag&#322;&oacute;wek';
+$TEXT['FOOTER'] = 'Stopka';
+$TEXT['TEMPLATE'] = 'Szablon';
+$TEXT['INSTALLATION'] = 'Instalacja';
+$TEXT['DATABASE'] = 'Baza danych';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Intro';
+$TEXT['PAGE'] = 'Strona';
+$TEXT['SIGNUP'] = 'Zapisz si&#281;';
+$TEXT['PHP_ERROR_LEVEL'] = 'Poziom raportowania b&#322;&#281;d&oacute;w PHP';
+$TEXT['ADMIN'] = 'Administrator';
+$TEXT['PATH'] = '&#346;cie&#380;ka';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Panel przedni';
+$TEXT['EXTENSION'] = 'Rozszerzenie';
+$TEXT['TABLE_PREFIX'] = 'Przedrostek tabeli';
+$TEXT['CHANGES'] = 'Zmiany';
+$TEXT['ADMINISTRATION'] = 'Administracja';
+$TEXT['FORGOT_DETAILS'] = 'Zapomnia&#322;e&#347;(-a&#347;) szczeg&oacute;&#322;&oacute;w?';
+$TEXT['LOGGED_IN'] = 'Zalogowany';
+$TEXT['WELCOME_BACK'] = 'Witamy ponownie';
+$TEXT['FULL_NAME'] = 'Imi&#281; i nazwisko';
+$TEXT['ACCOUNT_SIGNUP'] = 'Nowe konto';
+$TEXT['LINK'] = 'Odno&#347;nik';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Cel';
+$TEXT['NEW_WINDOW'] = 'Nowe okno';
+$TEXT['SAME_WINDOW'] = 'To samo okno';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limit poziom&oacute;w stron';
+$TEXT['SUCCESS'] = 'Sukces';
+$TEXT['ERROR'] = 'B&#322;&#261;d';
+$TEXT['ARE_YOU_SURE'] = 'Czy aby na pewno?';
+$TEXT['YES'] = 'Tak';
+$TEXT['NO'] = 'Nie';
+$TEXT['SYSTEM_DEFAULT'] = 'Domy&#347;lne ustawienia systemu';
+$TEXT['PAGE_TITLE'] = 'Tytu&#322; strony';
+$TEXT['MENU_TITLE'] = 'Tytu&#322; menu';
+$TEXT['ACTIONS'] = 'Czynno&#347;ci';
+$TEXT['UNKNOWN'] = 'Nieznany';
+$TEXT['BLOCK'] = 'Blokuj';
+$TEXT['SEARCH'] = 'Szukaj';
+$TEXT['SEARCHING'] = 'Wyszukiwanie';
+$TEXT['POST'] = 'Wiadomo&#347;&#263;';
+$TEXT['COMMENT'] = 'Komentarz';
+$TEXT['COMMENTS'] = 'Komentarze';
+$TEXT['COMMENTING'] = 'Komentowanie';
+$TEXT['SHORT'] = 'Kr&oacute;tki';
+$TEXT['LONG'] = 'D&#322;ugi';
+$TEXT['LOOP'] = 'P&#281;tla';
+$TEXT['FIELD'] = 'Pole';
+$TEXT['REQUIRED'] = 'Wymagany';
+$TEXT['LENGTH'] = 'D&#322;ugo&#347;&#263;';
+$TEXT['MESSAGE'] = 'Wiadomo&#347;&#263;';
+$TEXT['SUBJECT'] = 'Temat';
+$TEXT['MATCH'] = 'Dopasuj';
+$TEXT['ALL_WORDS'] = 'Wszystkie s&#322;owa';
+$TEXT['ANY_WORDS'] = 'Dowolne ze s&#322;&oacute;w';
+$TEXT['EXACT_MATCH'] = 'Dopasowanie dok&#322;adne';
+$TEXT['SHOW'] = 'Wy&#347;wietl';
+$TEXT['HIDE'] = 'Schowaj';
+$TEXT['START_PUBLISHING'] = 'Rozpocznij publikowanie';
+$TEXT['FINISH_PUBLISHING'] = 'Zako&#324;cz publikowanie';
+$TEXT['DATE'] = 'Data';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Koniec';
+$TEXT['IMAGE'] = 'Obrazek';
+$TEXT['ICON'] = 'Ikona';
+$TEXT['SECTION'] = 'Sekcja';
+$TEXT['DATE_FORMAT'] = 'Format daty';
+$TEXT['TIME_FORMAT'] = 'Format czasu';
+$TEXT['RESULTS'] = 'Wyniki';
+$TEXT['RESIZE'] = 'Zmie&#324; rozmiar';
+$TEXT['MANAGE'] = 'Zarz&#261;dzaj';
+$TEXT['CODE'] = 'Kod';
+$TEXT['WIDTH'] = 'Szeroko&#347;&#263;';
+$TEXT['HEIGHT'] = 'Wysoko&#347;&#263;';
+$TEXT['MORE'] = 'Wi&#281;cej';
+$TEXT['READ_MORE'] = 'Czytaj dalej';
+$TEXT['CHANGE_SETTINGS'] = 'Zmie&#324; ustawienia';
+$TEXT['CURRENT_PAGE'] = 'Bie&#380;&#261;ca strona';
+$TEXT['CLOSE'] = 'Zamknij';
+$TEXT['INTRO_PAGE'] = 'Strona wprowadzaj&#261;ca';
+$TEXT['INSTALLATION_URL'] = 'URL instalacji';
+$TEXT['INSTALLATION_PATH'] = '&#346;cie&#380;ka instalacju';
+$TEXT['PAGE_EXTENSION'] = 'Rozszerzenie strony';
+$TEXT['NO_RESULTS'] = 'Brak wynik&oacute;w';
+$TEXT['WEBSITE_TITLE'] = 'Tytu&#322; witryny';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Opis witryny';
+$TEXT['WEBSITE_KEYWORDS'] = 'S&#322;owa kluczowe witryny';
+$TEXT['WEBSITE_HEADER'] = 'Nag&#322;&oacute;wek witryny';
+$TEXT['WEBSITE_FOOTER'] = 'Stopka witryny';
+$TEXT['RESULTS_HEADER'] = 'Nag&#322;&oacute;wek wynik&oacute;w';
+$TEXT['RESULTS_LOOP'] = 'P&#281;tla wynik&oacute;w';
+$TEXT['RESULTS_FOOTER'] = 'Stopka wynik&oacute;w';
+$TEXT['LEVEL'] = 'Poziom';
+$TEXT['NOT_FOUND'] = 'Nie odnaleziono';
+$TEXT['PAGE_SPACER'] = 'Spacer strony';
+$TEXT['MATCHING'] = 'Pasuj&#261;ce';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Uprawnienia szablon&oacute;w';
+$TEXT['PAGES_DIRECTORY'] = 'Katalog stron';
+$TEXT['MEDIA_DIRECTORY'] = 'Katalog medi&oacute;w';
+$TEXT['FILE_MODE'] = 'Tryb plikw';
+$TEXT['USER'] = 'U&#380;ytkownik';
+$TEXT['OTHERS'] = 'Inni';
+$TEXT['READ'] = 'Odczytaj';
+$TEXT['WRITE'] = 'Zapisz';
+$TEXT['EXECUTE'] = 'Wykonaj';
+$TEXT['SMART_LOGIN'] = 'Inteligentne logowanie';
+$TEXT['REMEMBER_ME'] = 'Zapami&#281;taj mnie';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Uprawnienia systemu plik&oacute;w';
+$TEXT['DIRECTORIES'] = 'Katalogi';
+$TEXT['DIRECTORY_MODE'] = 'Tryb katalog&oacute;w';
+$TEXT['LIST_OPTIONS'] = 'Listuj opcje';
+$TEXT['OPTION'] = 'Opcja';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Pozw&oacute;l na wielokrotne wybory';
+$TEXT['TEXTFIELD'] = 'Pole tekstowe';
+$TEXT['TEXTAREA'] = 'Obszar tekstowy';
+$TEXT['SELECT_BOX'] = 'Pole wyboru';
+$TEXT['CHECKBOX_GROUP'] = 'Grupa p&oacute;l zaznaczanych';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Grupa p&oacute;l prze&#322;&#261;czanych';
+$TEXT['SIZE'] = 'Rozmiar';
+$TEXT['DEFAULT_TEXT'] = 'Domy&#347;lny tekst';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Wstecz';
+$TEXT['UNDER_CONSTRUCTION'] = 'W trakcie tworzenia';
+$TEXT['MULTISELECT'] = 'Wyb&oacute;r wielokrotny';
+$TEXT['SHORT_TEXT'] = 'Kr&oacute;tki tekst';
+$TEXT['LONG_TEXT'] = 'D&#322;ugi tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Przekierowanie strony domowej';
+$TEXT['HEADING'] = 'Nag&#322;&oacute;wek';
+$TEXT['MULTIPLE_MENUS'] = 'Wielokrotne menu';
+$TEXT['REGISTERED'] = 'Zarejestrowany';
+$TEXT['SECTION_BLOCKS'] = 'Bloki sekcji';
+$TEXT['REGISTERED_VIEWERS'] = 'Zarejestrowani obserwatorzy';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'ID zg&#322;oszenia';
+$TEXT['SUBMISSIONS'] = 'Zg&#322;oszenia';
+$TEXT['SUBMITTED'] = 'Zg&#322;oszone';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Maks. zg&#322;osze&#324; na godzin&#281;';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Zg&#322;oszenia przechowywane w bazie danych';
+$TEXT['EMAIL_ADDRESS'] = 'Adres e-mail';
+$TEXT['CUSTOM'] = 'W&#322;asny';
+$TEXT['ANONYMOUS'] = 'Anonimowy';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'System operacyjny serwera';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Uprawnienia zapisywania plik&oacute;w przez wszystkich';
+$TEXT['LINUX_UNIX_BASED'] = 'oparty na Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Folder domowy';
+$TEXT['HOME_FOLDERS'] = 'Foldery domowe';
+$TEXT['PAGE_TRASH'] = '&#346;mietnik stron';
+$TEXT['INLINE'] = 'Inline';
+$TEXT['SEPARATE'] = 'Osobno';
+$TEXT['DELETED'] = 'Usuni&#281;te';
+$TEXT['VIEW_DELETED_PAGES'] = 'Wy&#347;wietl usuni&#281;te strony';
+$TEXT['EMPTY_TRASH'] = 'Opr&oacute;&#380;nij &#347;mietnik';
+$TEXT['TRASH_EMPTIED'] = '&#346;mietnik opr&oacute;&#380;niony';
+$TEXT['ADD_SECTION'] = 'Dodaj sekcj&#281;';
+$TEXT['POST_HEADER'] = 'Nag&#322;&oacute;wek wiadomo&#347;ci';
+$TEXT['POST_FOOTER'] = 'Stopka wiadomo&#347;ci';
+$TEXT['POSTS_PER_PAGE'] = 'Wiadomo&#347;ci na stron&#281;';
+$TEXT['RESIZE_IMAGE_TO'] = 'Zmie&#324; rozmiar obrazk&oacute;w na';
+$TEXT['UNLIMITED'] = 'Nieograniczony';
+$TEXT['OF'] = 'z';
+$TEXT['OUT_OF'] = 'spoza';
+$TEXT['NEXT'] = 'Nast&#281;pny';
+$TEXT['PREVIOUS'] = 'Poprzedni';
+$TEXT['NEXT_PAGE'] = 'Nast&#281;pna strona';
+$TEXT['PREVIOUS_PAGE'] = 'Poprzednia strona';
+$TEXT['ON'] = 'dnia';
+$TEXT['LAST_UPDATED_BY'] = 'Ostatnio zmienione przez';
+$TEXT['RESULTS_FOR'] = 'Wyniki dla';
+$TEXT['TIME'] = 'Czas';
+$TEXT['WYSIWYG_STYLE'] = 'Styl WYSIWYG';
+$TEXT['WYSIWYG_EDITOR'] = 'Edytor WYSIWYG';
+$TEXT['SERVER_EMAIL'] = 'E-mail serwera';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Zarz&#261;dzaj grupami';
+$TEXT['MANAGE_USERS'] = 'Zarz&#261;dzaj u&#380;ytkownikami';
+$TEXT['PAGE_LANGUAGES'] = 'J&#281;zyki stron';
+$TEXT['HIDDEN'] = 'Ukryty';
+$TEXT['MAIN'] = 'G&#322;&oacute;wny';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Zmie&#324; nazwy plik&oacute;w przy za&#322;adowywaniu';
+$TEXT['APP_NAME'] = 'Nazwa aplikacju';
+$TEXT['SESSION_IDENTIFIER'] = 'Identyfikator sesji';
+$TEXT['BACKUP'] = 'Kopia zapasowa';
+$TEXT['RESTORE'] = 'Przywr&oacute;&#263;';
+$TEXT['BACKUP_DATABASE'] = 'Kopia zapasowa bazy danych';
+$TEXT['RESTORE_DATABASE'] = 'Przywr&oacute;&#263; baz&#281; danych';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Kopia zapasowa medi&oacute;w';
+$TEXT['RESTORE_MEDIA'] = 'Przywr&oacute;&#263; media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Narz&#281;dzie administracyjne';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Weryfikacja Captcha';
+$TEXT['VERIFICATION'] = 'Weryfikacja';
+$TEXT['DEFAULT_CHARSET'] = 'Domy&#347;lne kodowanie znak&oacute;w';
+$TEXT['CHARSET'] = 'Kodowanie znak&oacute;w';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Niestety, nie masz uprawnie&#324; do ogl&#261;dania tej strony.';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Niewystarczaj&#261;ce uprawnienia do ogl&#261;dania tej strony.';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Prosz&#281; wprowadzi&#263; poni&#380;ej swoj&#261; nazw&#281; u&#380;ytkownika i has&#322;o';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Prosz&#281; wprowadzi&#263; nazw&#281; u&#380;ytkownika';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Prosz&#281; wprowadzi&#263; has&#322;o';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Wprowadzona nawa u&#380;ytkownika zbyt kr&oacute;tka';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Wprowadzone has&#322;o zbyt kr&oacute;tkie';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Wprowadzona nazwa u&#380;ytkownika zbyt d&#322;uga';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Wprowadzone has&#322;o zbyt kr&oacute;tkie';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Nieprawid&#322;owa nazwa u&#380;ytkownika lub has&#322;o';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Nale&#380;y wprowadzi&#263; adres e-mail';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Prosz&#281; wprowadzi&#263; poni&#380;ej sw&oacute;j adres e-mail';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Wprowadzonego adresu e-mail nie ma w bazie danych';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Nie uda&#322;o si&#281; wys&#322;a&#263; has&#322;a, prosz&#281; si&#281; skontaktowa&#263; z administratorem';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Twoja nazwa u&#380;ytkownika i has&#322;o zosta&#322;y wys&#322;ane na Tw&oacute;j adres e-mail';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Has&#322;o mo&#380;na resetowa&#263; tylko raz na godzin&#281;';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Witamy w panelu administracyjnym Website Bakera';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Uwaga: katalog instalacyjny wci&#261;&#380; istnieje!';
+$MESSAGE['START']['CURRENT_USER'] = 'Jeste&#347; obecnie zalogowany(-a) jako:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Nie mo&#380;na otworzy&#263; pliku konfiguracyjnego';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Nie mo&#380;na zapisa&#263; pliku konfiguracyjnego';
+$MESSAGE['SETTINGS']['SAVED'] = 'Ustawienia zosta&#322;y zapisane';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Uwaga: naci&#347;ni&#281;cie tego przycisku resetuje wszystkie niezapisane zmiany';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Uwaga: to jest zalecane wy&#322;&#261;cznie w &#347;rodowiskach testowych';
+
+$MESSAGE['USERS']['ADDED'] = 'U&#380;ytkownik zosta&#322; dodany';
+$MESSAGE['USERS']['SAVED'] = 'U&#380;ytkownik zosta&#322; zapisany';
+$MESSAGE['USERS']['DELETED'] = 'U&#380;ytkownik zosta&#322; usuni&#281;ty';
+$MESSAGE['USERS']['NO_GROUP'] = 'Nie wybrano grupy';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Wprowadzona nazwa u&#380;ytkownika by&#322;a za kr&oacute;tka';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Wprowadzone has&#322;o by&#322;o za kr&oacute;tkie';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Wprowadzone has&#322;a nie pasuj&#261;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Wprowadzony adres e-mail jest nieprawid&#322;owy';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Wprowadzony adres e-mail jest ju&#380; u&#380;ywany';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Wprowadzona nazwa u&#380;ytkownika jest ju&#380; zaj&#281;ta';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Uwaga: Powy&#380;sze pola nale&#380;y wype&#322;ni&#263; tylko, je&#347;li chce si&#281; zmieni&#263; has&#322;o tego u&#380;ytkownika';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Czy aby na pewno usun&#261;&#263; wybranego u&#380;ytkownika?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grupa zosta&#322;a dodana';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupa zosta&#322;a zapisana';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupa zosta&#322;a usuni&#281;ta';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Nazwa grupy jest pusta';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Czy aby na pewno usun&#261;&#263; wybran&#261; grup&#281; (i wszystkich u&#380;ytkownik&oacute;w, kt&oacute;rzy do niej nale&#380;&#261;)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Nie odnaleziono &#380;adnych grup';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Grupa o takiej nazwie ju&#380; istnieje';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Szczeg&oacute;&#322;y zosta&#322;y zapisane';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-mail zosta&#322; zaktualizowany';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = '(Bie&#380;&#261;ce) has&#322;o jest nieprawid&#322;owe';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Has&#322;o zosta&#322;o zmienione';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Uwaga: aby zmieni&#263; szablon, nale&#380;y przej&#347;&#263; do sekcji Ustawienia';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Nazwa folderu nie mo&#380;e zawiera&#263; ../';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Katalog nie istnieje';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Folder docelowy nie mo&#380;e zawiera&#263; ../';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Nazwa nie mo&#380;e zawiera&#263; ../';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Nie mo&#380;na u&#380;y&#263; index.php jako nazwy';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Nie odnaleziono &#380;adnych medi&oacute;w w bie&#380;&#261;cym folderze';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Plik nieodnaleziony';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Plik zosta&#322; usuni&#281;ty';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Folder zosta&#322; usuni&#281;ty';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Czy aby na pewno usun&#261;&#263; nast&#281;puj&#261;ce pliki lub foldery?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Nie mo&#380;na usun&#261;&#263; wybranego pliku';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Nie mo&#380;na usun&#261;&#263; wybranego folderu';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Nie wprowadzono nazwy u&#380;ytkownika';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Nie wprowadzono rozszerzenia pliku';
+$MESSAGE['MEDIA']['RENAMED'] = 'Nazwa zosta&#322;a zmieniona';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Nie uda&#322;o si&#281; zmieni&#263; nazwy';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Plik pasuj&#261;cy do wprowadzonej nazwy ju&#380; istnieje';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Folder pasuj&#261;cy do wprowadzonej nazwy ju&#380; istnieje';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Folder zosta&#322; utworzony';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Nie uda&#322;o si&#281; utworzy&#263; folderu';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' plik zosta&#322; pomy&#347;lnie za&#322;adowany';
+$MESSAGE['MEDIA']['UPLOADED'] = ' pliki zosta&#322;y pomy&#347;lnie za&#322;adowane';
+
+$MESSAGE['PAGES']['ADDED'] = 'Strona zosta&#322;a dodana';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Nag&#322;&oacute;wek strony zosta&#322; dodany';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Strona o tym lub podobnym tytule ju&#380; istnieje';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'B&#322;&#261;d podczas tworzenia pliku dost&#281;powego w katalogu /pages (niewystarczaj&#261;ce uprawnienia)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'B&#322;&#261;d podczas usuwania pliku dost&#281;powego w katalogu /pages (niewystarczaj&#261;ce uprawnienia)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Strona nie znaleziona';
+$MESSAGE['PAGES']['SAVED'] = 'Strona zosta&#322;a zapisana';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Ustawienia strony zosta&#322;y zapisane';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'B&#322;&#261;d podczas zapisywania strony';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Czy aby na pewno usun&#261;&#263; wybran&#261; stron&#281; (i wszystkie jej podstrony)';
+$MESSAGE['PAGES']['DELETED'] = 'Strona zosta&#322;a usuni&#281;ta';
+$MESSAGE['PAGES']['RESTORED'] = 'Strona zosta&#322;a przywr&oacute;cona';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Prosz&#281; wprowadzi&#263; tytu&#322; strony';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Prosz&#281; wprowadzi&#263; tytu&#322; menu';
+$MESSAGE['PAGES']['REORDERED'] = 'Zmieniono kolejno&#347;&#263; stron';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'B&#322;&#261;d podczas zmieniania kolejno&#347;ci stron';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Nie masz uprawnie&#324; do modyfikowania tej strony';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Nie mo&#380;na zapisa&#263; pliku /pages/intro.php (niewystarczaj&#261;ce uprawnienia)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Strona wprowadzaj&#261;ca zosta&#322;&#261; zapisana';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Ostatnio zmodyfikowane przez';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Kliknij TUTAJ by zmieni&#263; stron&#281; wprowadzaj&#261;c&#261;';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'W&#322;a&#347;ciwo&#347;ci sekcji zosta&#322;y zapisane';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Powr&oacute;t do stron';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Prosz&#281; si&#281; cofn&#261;&#263; i wype&#322;ni&#263; wszystkie pola';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Prosz&#281; zwr&oacute;ci&#263; uwag&#281;, &#380;e &#322;adowany plik musi by&#263; w formacie:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Prosz&#281; zwr&oacute;ci&#263; uwag&#281;, &#380;e &#322;adowany plik musi by&#263; w jednym z format&oacute;w:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Nie mo&#380;na za&#322;adowa&#263; pliku';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Ju&#380; zainstalowany';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Niezainstalowany';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Nie mo&#380;na odinstalowa&#263;';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Nie mo&#380;na rozpakowa&#263; pliku';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Zainstalowano pomy&#347;lnie';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Zaktualizowano pomy&#347;lnie';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Odinstalowano pomy&#347;lnie';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Nie mo&#380;a zapisa&#263; do katalogu docelowego';
+$MESSAGE['GENERIC']['INVALID'] = 'Za&#322;adowany plik jest nieprawid&#322;owy';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Nie mo&#380;na odinstalowa&#263;: wybrany plik jest obecnie u&#380;ywany';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Witryna w trakcie tworzenia';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Zapraszamy wkr&oacute;tce...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Prosimy o cierpliwo&#347;&#263;, to mo&#380;e troch&#281; potrwa&#263;.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'B&#322;&#261;d podczas otwierania pliku.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Nale&#380;y wprowadzi&#263; szczeg&oacute;&#322;y dla nast&#281;puj&#261;cych p&oacute;l';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Niestety, ten formularz zosta&#322; wys&#322;any zbyt wiele razy w ci&#261;gu tej godziny. Prosimy spr&oacute;bowa&#263; ponownie za godzin&#281;.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Wprowadzony numer weryfikacyjny (tzw. Captcha) jest nieprawid&#322;owy. Je&#347;li masz problemy z odczytaniem Captcha, napisz do: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Prosz&#281; wskaza&#263;, kt&oacute;re dodatki maj&#261; zosta&#263; za&#322;adowane ponownie';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modu&#322;y zosta&#322;y za&#322;adowane ponownie';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Szablony zosta&#322;y za&#322;adowane ponownie';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'J&#281;zyki zosta&#322;y za&#322;adowane ponownie';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/PL.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/HU.php
===================================================================
--- tags/2.7.0/wb/languages/HU.php	(nonexistent)
+++ tags/2.7.0/wb/languages/HU.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'HU';
+$language_name = 'Magyar';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Zsolt';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Kezd&otilde;lap';
+$MENU['PAGES'] = 'Weblapok';
+$MENU['MEDIA'] = 'M&eacute;dia';
+$MENU['ADDONS'] = 'Add-on';
+$MENU['MODULES'] = 'Modulok';
+$MENU['TEMPLATES'] = 'Sablonok';
+$MENU['LANGUAGES'] = 'Nyelvek';
+$MENU['PREFERENCES'] = 'Saj&aacute;t adatok';
+$MENU['SETTINGS'] = 'Param&eacute;terek';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Jogosults&aacute;gok';
+$MENU['USERS'] = 'Felhaszn&aacute;l&oacute;k';
+$MENU['GROUPS'] = 'Csoportok';
+$MENU['HELP'] = 'S&uacute;g&oacute;';
+$MENU['VIEW'] = 'Port&aacute;l n&eacute;zet';
+$MENU['LOGOUT'] = 'Kil&eacute;p&eacute;s';
+$MENU['LOGIN'] = 'Bel&eacute;p&eacute;s';
+$MENU['FORGOT'] = 'Elfelejtett jelsz&oacute;';
+
+// Section overviews
+$OVERVIEW['START'] = 'Admin &aacute;ttekint&eacute;s';
+$OVERVIEW['PAGES'] = 'A Port&aacute;l Weblapjainak kezel&eacute;se...';
+$OVERVIEW['MEDIA'] = 'A "media" k&ouml;nyvt&aacute;rban t&aacute;rolt fileok kezel&eacute;se...';
+$OVERVIEW['MODULES'] = 'Website Baker modulok kezel&eacute;se...';
+$OVERVIEW['TEMPLATES'] = 'A Honlap megjelen&eacute;s&eacute;nek v&aacute;ltoztat&aacute;sa Sablonokkal...';
+$OVERVIEW['LANGUAGES'] = 'Website Baker nyelvi be&aacute;ll&iacute;t&aacute;sok...';
+$OVERVIEW['PREFERENCES'] = 'Be&aacute;ll&iacute;t&aacute;sok megv&aacute;ltoztat&aacute;sa mint: email, jelsz&oacute;, stb... ';
+$OVERVIEW['SETTINGS'] = 'A rendszer glob&aacute;lis be&aacute;ll&iacute;t&aacute;sa...';
+$OVERVIEW['USERS'] = 'Felhaszn&aacute;l&oacute;k bejelentkez&eacute;si enged&eacute;lyei...';
+$OVERVIEW['GROUPS'] = 'Csoportok &eacute;s azok rendszer jogainak kezel&eacute;se...';
+$OVERVIEW['HELP'] = 'K&eacute;rd&eacute;sed van? itt tal&aacute;lsz v&aacute;laszt...  (Angol)';
+$OVERVIEW['VIEW'] = 'A k&eacute;sz Port&aacute;l megtekint&eacute;se &uacute;j ablakban...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Lap m&oacute;dos&iacute;t&aacute;sa/T&ouml;rl&eacute;se';
+$HEADING['DELETED_PAGES'] = 'T&ouml;r&ouml;lt Lapok';
+$HEADING['ADD_PAGE'] = 'Lap hozz&aacute;ad&aacute;sa';
+$HEADING['ADD_HEADING'] = 'Fejl&eacute;c hozz&aacute;ad&aacute;sa';
+$HEADING['MODIFY_PAGE'] = 'Lap m&oacute;dos&iacute;t&aacute;sa';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Lap be&aacute;ll&iacute;t&aacute;sainak m&oacute;dos&iacute;t&aacute;sa';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Speci&aacute;lis be&aacute;ll&iacute;t&aacute;sok';
+$HEADING['MANAGE_SECTIONS'] = 'Szakaszok kezel&eacute;se';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Bevezet&otilde; lap m&oacute;dos&iacute;t&aacute;sa';
+
+$HEADING['BROWSE_MEDIA'] = 'M&eacute;dia b&ouml;ng&eacute;sz&eacute;se';
+$HEADING['CREATE_FOLDER'] = '&uacute;j k&ouml;nyvt&aacute;r';
+$HEADING['UPLOAD_FILES'] = 'Upload File(s)';
+
+$HEADING['INSTALL_MODULE'] = 'Modul telep&iacute;t&eacute;s';
+$HEADING['UNINSTALL_MODULE'] = 'Modul elt&aacute;vol&iacute;t&aacute;s';
+$HEADING['MODULE_DETAILS'] = 'Modul inf&oacute;';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Sablon telep&iacute;t&eacute;s';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Sablon elt&aacute;vol&iacute;t&aacute;s';
+$HEADING['TEMPLATE_DETAILS'] = 'Sablon inf&oacute;';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Nyelv telep&iacute;t&eacute;s';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Nyelv elt&aacute;vol&iacute;t&aacute;s';
+$HEADING['LANGUAGE_DETAILS'] = 'Nyelv Inf&oacute;';
+
+$HEADING['MY_SETTINGS'] = 'Be&aacute;ll&iacute;t&aacute;sok';
+$HEADING['MY_EMAIL'] = 'E-mail';
+$HEADING['MY_PASSWORD'] = 'Jelsz&oacute;';
+
+$HEADING['GENERAL_SETTINGS'] = '&Aacute;ltal&aacute;nos be&aacute;ll&iacute;t&aacute;sok';
+$HEADING['DEFAULT_SETTINGS'] = 'Alap&eacute;rtelmezett Be&aacute;ll&iacute;t&aacute;sok';
+$HEADING['SEARCH_SETTINGS'] = 'Keres&eacute;si be&aacute;ll&iacute;t&aacute;sok';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Filerendszer';
+$HEADING['SERVER_SETTINGS'] = 'Server Settings';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administration Tools';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Felhaszn&aacute;l&oacute; m&oacute;dos&iacute;t&aacute;sa/t&ouml;rl&eacute;se';
+$HEADING['ADD_USER'] = 'Felhaszn&aacute;l&oacute; hozz&aacute;ad&aacute;sa';
+$HEADING['MODIFY_USER'] = 'Felhaszn&aacute;l&oacute; m&oacute;dos&iacute;t&aacute;sa';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Csoport m&oacute;dos&iacute;t&aacute;sa/t&ouml;rl&eacute;se';
+$HEADING['ADD_GROUP'] = 'Csoport m&oacute;dos&iacute;t&aacute;sa';
+$HEADING['MODIFY_GROUP'] = 'csoport m&oacute;dos&iacute;t&aacute;sa';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Hozz&aacute;ad';
+$TEXT['MODIFY'] = 'M&oacute;dos&iacute;t&aacute;s';
+$TEXT['SETTINGS'] = 'Be&aacute;ll&iacute;t&aacute;s';
+$TEXT['DELETE'] = 'T&ouml;rl&eacute;s';
+$TEXT['SAVE'] = 'Ment&eacute;s';
+$TEXT['RESET'] = 'Visszavon';
+$TEXT['LOGIN'] = 'Bel&eacute;p&eacute;s';
+$TEXT['RELOAD'] = '&uacute;jrat&ouml;lt&eacute;s';
+$TEXT['CANCEL'] = 'M&eacute;gse';
+$TEXT['NAME'] = 'N&eacute;v';
+$TEXT['PLEASE_SELECT'] = 'K&eacute;rem v&aacute;lasszon';
+$TEXT['TITLE'] = 'C&iacute;m';
+$TEXT['PARENT'] = 'Almen&uuml;je ennek';
+$TEXT['TYPE'] = 'T&iacute;pus';
+$TEXT['VISIBILITY'] = 'Megjelen&eacute;s';
+$TEXT['PRIVATE'] = 'Priv&aacute;t';
+$TEXT['PUBLIC'] = 'Publikus';
+$TEXT['NONE'] = 'egyik sem';
+$TEXT['NONE_FOUND'] = 'Nem tal&aacute;lhat&oacute;';
+$TEXT['CURRENT'] = 'Aktu&aacute;lis';
+$TEXT['CHANGE'] = 'M&oacute;dos&iacute;t';
+$TEXT['WINDOW'] = 'ablak';
+$TEXT['DESCRIPTION'] = 'Le&iacute;r&aacute;s';
+$TEXT['KEYWORDS'] = 'Kulcsszavak';
+$TEXT['ADMINISTRATORS'] = 'Adminisztr&aacute;torok';
+$TEXT['PRIVATE_VIEWERS'] = 'Priv&aacute;t jogosultak';
+$TEXT['EXPAND'] = 'Kibont';
+$TEXT['COLLAPSE'] = '&Ouml;sszecsuk';
+$TEXT['MOVE_UP'] = 'Mozgat Fel';
+$TEXT['MOVE_DOWN'] = 'Mozgat Le';
+$TEXT['RENAME'] = '&Aacute;tnevez';
+$TEXT['MODIFY_SETTINGS'] = 'Be&aacute;ll&iacute;t&aacute;sok m&oacute;dos&iacute;t&aacute;sa';
+$TEXT['MODIFY_CONTENT'] = 'Tartalom m&oacute;dos&iacute;t&aacute;sa';
+$TEXT['VIEW'] = 'N&eacute;zet';
+$TEXT['UP'] = 'Fel';
+$TEXT['FORGOTTEN_DETAILS'] = 'Mi is a jelsz&oacute;?';
+$TEXT['NEED_TO_LOGIN'] = 'Vissza a bel&eacute;p&eacute;shez';
+$TEXT['SEND_DETAILS'] = 'Jelsz&oacute; elk&uuml;ld&eacute;se';
+$TEXT['USERNAME'] = 'Felhaszn&aacute;l&oacute;n&eacute;v';
+$TEXT['PASSWORD'] = 'Jelsz&oacute;';
+$TEXT['HOME'] = 'Kezd&otilde;lap';
+$TEXT['TARGET_FOLDER'] = 'C&eacute;l k&ouml;nyvt&aacute;r';
+$TEXT['OVERWRITE_EXISTING'] = 'Megl&eacute;v&otilde; fel&uuml;l&iacute;r&aacute;sa';
+$TEXT['FILE'] = 'File';
+$TEXT['FILES'] = 'File-ok';
+$TEXT['FOLDER'] = 'Folder';
+$TEXT['FOLDERS'] = 'K&ouml;nyvt&aacute;rak';
+$TEXT['CREATE_FOLDER'] = 'K&ouml;nyvt&aacute;r l&eacute;trehoz&aacute;sa';
+$TEXT['UPLOAD_FILES'] = 'File felt&ouml;lt&eacute;s';
+$TEXT['CURRENT_FOLDER'] = 'aktu&aacute;lis k&ouml;nyvt&aacute;r';
+$TEXT['TO'] = 'C&iacute;mzett';
+$TEXT['FROM'] = 'Felad&oacute;';
+$TEXT['INSTALL'] = 'Telep&iacute;t';
+$TEXT['UNINSTALL'] = 'Elt&aacute;vol&iacute;t';
+$TEXT['VIEW_DETAILS'] = 'inf&oacute;t megz&eacute;z';
+$TEXT['DISPLAY_NAME'] = 'Megjelen&otilde; N&eacute;v';
+$TEXT['AUTHOR'] = 'Szerz&otilde;';
+$TEXT['VERSION'] = 'Verzi&oacute;';
+$TEXT['DESIGNED_FOR'] = 'tervezve';
+$TEXT['DESCRIPTION'] = 'Le&iacute;r&aacute;s';
+$TEXT['EMAIL'] = 'E-mail';
+$TEXT['LANGUAGE'] = 'Nyelv';
+$TEXT['TIMEZONE'] = 'Id&otilde;z&oacute;na';
+$TEXT['CURRENT_PASSWORD'] = 'Aktu&aacute;lis Jelsz&oacute;';
+$TEXT['NEW_PASSWORD'] = '&Uacute;j Jelsz&oacute;';
+$TEXT['RETYPE_NEW_PASSWORD'] = '&uacute;j Jelsz&oacute; m&eacute;gegyszer';
+$TEXT['ACTIVE'] = 'Akt&iacute;v';
+$TEXT['DISABLED'] = 'Letiltva';
+$TEXT['ENABLED'] = 'Enged&eacute;lyezve';
+$TEXT['RETYPE_PASSWORD'] = 'Jelsz&oacute; m&eacute;gegyszer';
+$TEXT['GROUP'] = 'Csoport';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Rendzser enged&eacute;lyek';
+$TEXT['MODULE_PERMISSIONS'] = 'Modul enged&eacute;lyek';
+$TEXT['SHOW_ADVANCED'] = 'Speci&aacute;lis be&aacute;ll&iacute;t&aacute;sok mutat&aacute;sa';
+$TEXT['HIDE_ADVANCED'] = 'Speci&aacute;lis be&aacute;ll&iacute;t&aacute;sok elrejt&eacute;se';
+$TEXT['BASIC'] = 'Alap';
+$TEXT['ADVANCED'] = 'B&otilde;v&iacute;tett';
+$TEXT['WEBSITE'] = 'Weblap';
+$TEXT['DEFAULT'] = 'Alap&eacute;rtelmezett';
+$TEXT['KEYWORDS'] = 'Kulcsszavak';
+$TEXT['TEXT'] = 'Sz&ouml;veg';
+$TEXT['HEADER'] = 'Fejl&eacute;c';
+$TEXT['FOOTER'] = 'L&aacute;bl&eacute;c';
+$TEXT['TEMPLATE'] = 'Sablon';
+$TEXT['INSTALLATION'] = 'Telep&iacute;t&eacute;s';
+$TEXT['DATABASE'] = 'Adatb&aacute;zis';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Bevezet&otilde;';
+$TEXT['PAGE'] = 'Lap';
+$TEXT['SIGNUP'] = 'Regisztr&aacute;l&aacute;s...';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP hibajelent&eacute;si szint';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Path';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Megjelen&otilde; fel&uuml;let';
+$TEXT['EXTENSION'] = 'kiterjeszt&eacute;s';
+$TEXT['TABLE_PREFIX'] = 'T&aacute;bla el&otilde;tag';
+$TEXT['CHANGES'] = 'V&aacute;toz&aacute;sok';
+$TEXT['ADMINISTRATION'] = 'Adminisztr&aacute;l&aacute;s';
+$TEXT['FORGOT_DETAILS'] = 'Elfelejtettem a jelsz&oacute;t.';
+$TEXT['LOGGED_IN'] = 'Bejelentkezve';
+$TEXT['WELCOME_BACK'] = '&Uuml;dv';
+$TEXT['FULL_NAME'] = 'Teljes n&eacute;v';
+$TEXT['ACCOUNT_SIGNUP'] = 'Account Sign-Up';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'c&eacute;l';
+$TEXT['NEW_WINDOW'] = '&Uacute;j ablak';
+$TEXT['SAME_WINDOW'] = 'Azonos Ablak';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Lap szint limit';
+$TEXT['SUCCESS'] = 'Sikeres';
+$TEXT['ERROR'] = 'Hiba';
+$TEXT['ARE_YOU_SURE'] = 'Biztos?';
+$TEXT['YES'] = 'Igen';
+$TEXT['NO'] = 'Nem';
+$TEXT['SYSTEM_DEFAULT'] = 'Rendszer alap&eacute;rtelmezett';
+$TEXT['PAGE_TITLE'] = 'Lap c&iacute;m';
+$TEXT['MENU_TITLE'] = 'Menu C&iacute;m';
+$TEXT['ACTIONS'] = 'Tev&eacute;kenys&eacute;gek';
+$TEXT['UNKNOWN'] = 'Ismeretlen';
+$TEXT['BLOCK'] = 'Blokk';
+$TEXT['SEARCH'] = 'Keres&eacute;s';
+$TEXT['SEARCHING'] = 'Keres&eacute;s...';
+$TEXT['POST'] = 'Cikk';
+$TEXT['COMMENT'] = 'Megjegyz&eacute;s';
+$TEXT['COMMENTS'] = 'Megjegyz&eacute;sek';
+$TEXT['COMMENTING'] = 'Komment&aacute;l&aacute;s';
+$TEXT['SHORT'] = 'R&ouml;vid';
+$TEXT['LONG'] = 'Hossz&ucirc;';
+$TEXT['LOOP'] = 'ism&eacute;tl&otilde;d&otilde;</br> t&ouml;rzs szakasz';
+$TEXT['FIELD'] = 'Mez&otilde;';
+$TEXT['REQUIRED'] = 'K&ouml;telez&otilde;';
+$TEXT['LENGTH'] = 'hossz';
+$TEXT['MESSAGE'] = '&Uuml;zenet';
+$TEXT['SUBJECT'] = 'T&aacute;rgy';
+$TEXT['MATCH'] = 'egyezik';
+$TEXT['ALL_WORDS'] = 'Minden sz&oacute;';
+$TEXT['ANY_WORDS'] = 'B&aacute;rmely sz&oacute;';
+$TEXT['EXACT_MATCH'] = 'Pontos egyez&eacute;s';
+$TEXT['SHOW'] = 'Mutat';
+$TEXT['HIDE'] = 'Elrejt';
+$TEXT['START_PUBLISHING'] = 'Publik&aacute;l&aacute;s kezdete';
+$TEXT['FINISH_PUBLISHING'] = 'Publik&aacute;l&aacute;s v&eacute;ge';
+$TEXT['DATE'] = 'D&aacute;tum';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'v&eacute;ge';
+$TEXT['IMAGE'] = 'K&eacute;p';
+$TEXT['ICON'] = 'Ikon';
+$TEXT['SECTION'] = 'Szakasz';
+$TEXT['DATE_FORMAT'] = 'D&aacute;tum form&aacute;tum';
+$TEXT['TIME_FORMAT'] = 'Id&otilde; form&aacute;tum';
+$TEXT['RESULTS'] = 'Eredm&eacute;nyek';
+$TEXT['RESIZE'] = '&uacute;jra m&eacute;retez';
+$TEXT['MANAGE'] = 'Kezel';
+$TEXT['CODE'] = 'K&oacute;d';
+$TEXT['WIDTH'] = 'Sz&eacute;less&eacute;g';
+$TEXT['HEIGHT'] = 'Magass&aacute;g';
+$TEXT['MORE'] = 'B&otilde;vebben';
+$TEXT['READ_MORE'] = '</br>Tov&aacute;bb...</br>';
+$TEXT['CHANGE_SETTINGS'] = 'Be&aacute;ll&iacute;t&aacute;sok megv&aacute;ltoztat&aacute;sa';
+$TEXT['CURRENT_PAGE'] = 'Aktu&aacute;lis Lap';
+$TEXT['CLOSE'] = 'Bez&aacute;r';
+$TEXT['INTRO_PAGE'] = 'Bevezet&otilde; Lap';
+$TEXT['INSTALLATION_URL'] = 'Telep&iacute;t&eacute;si URL';
+$TEXT['INSTALLATION_PATH'] = 'Telep&iacute;t&eacute;si &uacute;tvonal';
+$TEXT['PAGE_EXTENSION'] = 'Lap kiterjeszt&eacute;s';
+$TEXT['NO_RESULTS'] = 'Nincs eredm&eacute;ny';
+$TEXT['WEBSITE_TITLE'] = 'Weblap C&iacute;m';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Weblap le&iacute;r&aacute;s';
+$TEXT['WEBSITE_KEYWORDS'] = 'Weblap kulcsszavak';
+$TEXT['WEBSITE_HEADER'] = 'Weblap fejl&eacute;c';
+$TEXT['WEBSITE_FOOTER'] = 'Weblap l&aacute;bl&eacute;c';
+$TEXT['RESULTS_HEADER'] = 'Eredm&eacute;nyek fejl&eacute;c';
+$TEXT['RESULTS_LOOP'] = 'Eredm&eacute;nyek ciklus';
+$TEXT['RESULTS_FOOTER'] = 'Eredm&eacute;nyek l&aacute;bl&eacute;c';
+$TEXT['LEVEL'] = 'Szint';
+$TEXT['NOT_FOUND'] = 'Nem tal&aacute;lhat&oacute;';
+$TEXT['PAGE_SPACER'] = 'Lap filen&eacute;v elv&aacute;laszt&oacute;';
+$TEXT['MATCHING'] = 'Egyez&eacute;s';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Sablon jogosults&aacute;gok';
+$TEXT['PAGES_DIRECTORY'] = 'Lap k&ouml;nyvt&aacute;r';
+$TEXT['MEDIA_DIRECTORY'] = 'M&eacute;dia k&ouml;nyvt&aacute;r';
+$TEXT['FILE_MODE'] = 'File M&oacute;d';
+$TEXT['USER'] = 'Felhaszn&aacute;l&oacute;';
+$TEXT['OTHERS'] = 'Egyebek';
+$TEXT['READ'] = 'Olvas&aacute;s';
+$TEXT['WRITE'] = '&Iacute;r&aacute;s';
+$TEXT['EXECUTE'] = 'V&eacute;grehajt&aacute;s';
+$TEXT['SMART_LOGIN'] = 'Okos bejelentkez&eacute;s';
+$TEXT['REMEMBER_ME'] = 'Eml&eacute;kezzen';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'File rendszer jogosults&aacute;gok';
+$TEXT['DIRECTORIES'] = 'K&ouml;nyvt&aacute;rak';
+$TEXT['DIRECTORY_MODE'] = 'K&ouml;nyvt&aacute;r m&oacute;d';
+$TEXT['LIST_OPTIONS'] = 'Lista opci&oacute;k';
+$TEXT['OPTION'] = 'Opci&oacute;k';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'T&ouml;bbet is kiv&aacute;laszthat';
+$TEXT['TEXTFIELD'] = 'Sz&ouml;vegmez&otilde;';
+$TEXT['TEXTAREA'] = 'Sz&ouml;vegter&uuml;let';
+$TEXT['SELECT_BOX'] = 'Jel&ouml;l&otilde; n&eacute;gyzet';
+$TEXT['CHECKBOX_GROUP'] = 'Jel&ouml;l&otilde; n&eacute;gyzet csoport';
+$TEXT['RADIO_BUTTON_GROUP'] = 'V&aacute;laszt&oacute; gomb csoport';
+$TEXT['SIZE'] = 'm&eacute;ret';
+$TEXT['DEFAULT_TEXT'] = 'Alap&eacute;rtelmezett sz&ouml;veg';
+$TEXT['SEPERATOR'] = 'Elv&aacute;laszt&oacute;';
+$TEXT['BACK'] = 'Vissza';
+$TEXT['UNDER_CONSTRUCTION'] = 'Fejleszt&eacute;s alatt';
+$TEXT['MULTISELECT'] = 'T&ouml;bb v&aacute;laszt&aacute;sos';
+$TEXT['SHORT_TEXT'] = 'R&ouml;vid sz&ouml;veg';
+$TEXT['LONG_TEXT'] = 'Hossz&uacute; sz&ouml;veg';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Honlap &aacute;tir&aacute;ny&iacute;t&aacute;s';
+$TEXT['HEADING'] = 'C&iacute;msor';
+$TEXT['MULTIPLE_MENUS'] = 'T&ouml;bbszint&ucirc; men&uuml;';
+$TEXT['REGISTERED'] = 'Regisztr&aacute;lva';
+$TEXT['SECTION_BLOCKS'] = 'Szakaszok';
+$TEXT['REGISTERED_VIEWERS'] = 'Regisztr&aacute;lt l&aacute;togat&oacute;k';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Bek&uuml;ld&eacute;s azonos&iacute;t&oacute;';
+$TEXT['SUBMISSIONS'] = 'Bek&uuml;ld&eacute;sek';
+$TEXT['SUBMITTED'] = 'Elk&uuml;ldve';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. bek&uuml;ld&eacute;s &oacute;r&aacute;nk&eacute;nt';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'T&aacute;rolva az adatb&aacute;zisban';
+$TEXT['EMAIL_ADDRESS'] = 'E-mail C&iacute;m';
+$TEXT['CUSTOM'] = 'Egy&eacute;ni';
+$TEXT['ANONYMOUS'] = 'Anonymous';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Szerver Oper&aacute;ci&oacute;s Rendszer';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Mindenki &aacute;ltal &iacute;rhat&oacute; file jogok';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home K&ouml;nyvt&aacute;r';
+$TEXT['HOME_FOLDERS'] = 'Home K&ouml;nyvt&aacute;rak';
+$TEXT['PAGE_TRASH'] = 'Lap kuka';
+$TEXT['INLINE'] = 'sorban';
+$TEXT['SEPARATE'] = 'k&uuml;l&ouml;n&aacute;ll&oacute;';
+$TEXT['DELETED'] = 'T&ouml;r&ouml;lve';
+$TEXT['VIEW_DELETED_PAGES'] = 'T&ouml;r&ouml;lt Lapok megtekint&eacute;se';
+$TEXT['EMPTY_TRASH'] = 'Kuka &uuml;r&iacute;t&eacute;se';
+$TEXT['TRASH_EMPTIED'] = 'Kuka ki&uuml;r&iacute;tve';
+$TEXT['ADD_SECTION'] = 'Szakasz hozz&aacute;ad&aacute;sa';
+$TEXT['POST_HEADER'] = '&Uuml;zenet fejl&eacute;c';
+$TEXT['POST_FOOTER'] = '&Uuml;zenet l&aacute;bl&eacute;c';
+$TEXT['POSTS_PER_PAGE'] = '&Uuml;zenetek laponk&eacute;nt';
+$TEXT['RESIZE_IMAGE_TO'] = 'K&eacute;p &aacute;tm&eacute;retez&eacute;se';
+$TEXT['UNLIMITED'] = 'V&eacute;gtelen';
+$TEXT['OF'] = '&ouml;sszesen:';
+$TEXT['OUT_OF'] = 'T&uacute;l';
+$TEXT['NEXT'] = 'K&ouml;vetkez&otilde;';
+$TEXT['PREVIOUS'] = 'El&otilde;z&otilde;';
+$TEXT['NEXT_PAGE'] = 'K&ouml;vetkez&otilde; oldal';
+$TEXT['PREVIOUS_PAGE'] = 'El&otilde;z&otilde; oldal';
+$TEXT['ON'] = 'Be';
+$TEXT['LAST_UPDATED_BY'] = 'M&oacute;dos&iacute;totta';
+$TEXT['RESULTS_FOR'] = 'Keresett';
+$TEXT['TIME'] = 'Id&otilde;';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Port&aacute;l E-mail c&iacute;me';
+$TEXT['MENU'] = 'Men&uuml;';
+$TEXT['MANAGE_GROUPS'] = 'Csoportok kezel&eacute;se';
+$TEXT['MANAGE_USERS'] = 'Felhaszn&aacute;l&oacute;k kezel&eacute;se';
+$TEXT['PAGE_LANGUAGES'] = 'Lap nyelv';
+$TEXT['HIDDEN'] = 'Rejtett';
+$TEXT['MAIN'] = 'F&otilde;';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Rename Files On Upload';
+$TEXT['APP_NAME'] = 'Application Name';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restore';
+$TEXT['BACKUP_DATABASE'] = 'Backup Database';
+$TEXT['RESTORE_DATABASE'] = 'Restore Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Restore Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administration tool';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Verification';
+$TEXT['VERIFICATION'] = 'Verification';
+$TEXT['DEFAULT_CHARSET'] = 'Default Charset';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Sajn&aacute;ljuk, de a megjelen&iacute;t&eacute;shez nincs jogosults&aacute;ga!';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Itt nincs elegend&otilde; jogosults&aacute;god!';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'K&eacute;rem adja meg a Felhaszn&aacute;l&oacute;nevet &eacute;s a jelsz&oacute;t';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'K&eacute;rem adja meg a Felhaszn&aacute;l&oacute;nevet';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'K&eacute;rem adja meg a jelsz&oacute;t';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'T&uacute;l r&ouml;vid Felhaszn&aacute;l&oacute;n&eacute;v';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'T&uacute;l r&ouml;vid jelsz&oacute;';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'T&uacute;l hossz&uacute; Felhaszn&aacute;l&oacute;n&eacute;v';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'T&uacute;l hossz&uacute; jelsz&oacute;';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Felhaszn&aacute;l&oacute;n&eacute;v vagy a jelsz&oacute; nem megfelel&otilde;!';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'E-mail c&iacute;met meg kell adnia';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'K&eacute;rem &iacute;rja be az E-mail c&iacute;m&eacute;t';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Az &Ouml;n &aacute;ltal megadott E-mail c&iacute;m nem talalhat&oacute; adatb&aacute;zisunkban';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Az E-mail k&uuml;ld&eacute;s probl&eacute;m&aacute;ba &uuml;tk&ouml;z&ouml;tt, k&eacute;rem vegye fel a kapcsolatot az adminisztr&aacute;torral';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'A Felhaszn&aacute;l&oacute;nev&eacute;t &eacute;s jelszav&aacute;t elk&uuml;ldt&uuml;k az &Ouml;n E-mail c&iacute;m&eacute;re';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Sajn&aacute;ljuk, de a jelsz&oacute;t nem lehet egy &oacute;r&aacute;n bel&uuml;l t&ouml;bbsz&ouml;r &uacute;jrak&eacute;rni';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = '&Uuml;dv a Website Baker Admin fel&uuml;let&eacute;n';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Figyelmeztet&eacute;s! A telep&iacute;t&eacute;si k&ouml;nyvt&aacute;r m&eacute;g nem lett t&ouml;r&ouml;lve!';
+$MESSAGE['START']['CURRENT_USER'] = 'Bejelentkezve mint:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'A konfigur&aacute;ci&oacute;s file nem nyithat&oacute; meg';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Nem lehets&eacute;ges a konfigur&aacute;ci&oacute;s file &iacute;r&aacute;sa';
+$MESSAGE['SETTINGS']['SAVED'] = 'Be&aacute;ll&iacute;t&aacute;sok sikeresen elmentve';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Figyelmeztet&eacute;s: A nem mentett v&aacute;ltoz&aacute;sok elvesznek';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Figyelmeztet&eacute;s: Ez csak tesztk&ouml;rnyezetben javasolt';
+
+$MESSAGE['USERS']['ADDED'] = 'Felhaszn&aacute;l&oacute; sikeresen hozz&aacute;adva';
+$MESSAGE['USERS']['SAVED'] = 'Felhaszn&aacute;l&oacute; sikeresen mentve';
+$MESSAGE['USERS']['DELETED'] = 'Felhaszn&aacute;l&oacute; t&ouml;r&ouml;lve';
+$MESSAGE['USERS']['NO_GROUP'] = 'Csoport nincs kiv&aacute;lasztva';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'A be&iacute;rt Felhaszn&aacute;l&oacute;n&eacute;v t&uacute;l r&ouml;vid';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'A be&iacute;rt jelsz&oacute; t&uacute;l r&ouml;vid';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'A be&iacute;rt jelsz&oacute; nem eggyezik';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Az E-mail c&iacute;m nem val&oacute;s';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Sajnos a megadott E-mail c&iacute;met m&aacute;r haszn&aacute;latban van';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'M&aacute;r foglalt Felhaszn&aacute;l&oacute;n&eacute;v';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Figyelem: A jelsz&oacute;t itt csak annak megv&aacute;ltoztat&aacute;sakor kell megadni';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Biztos, hogy t&ouml;r&ouml;lni a kiv&aacute;lasztott felhaszn&aacute;l&oacute;t?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Csoport sikeresen hozz&aacute;adva';
+$MESSAGE['GROUPS']['SAVED'] = 'Csoport elmentve';
+$MESSAGE['GROUPS']['DELETED'] = 'Csoport t&ouml;r&ouml;lve';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = '&Uuml;res a csoportn&eacute;v';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Biztos, hogy t&ouml;r&ouml;lni akarja a kijel&ouml;lt csoportot? (Minden felhaszn&aacute;l&oacute;ja t&ouml;rl&otilde;dik)';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Nincs csoport';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Group name already exists';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Sikeres ment&eacute;s';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-mail friss&iacute;tve';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'A jelenlegi jelsz&oacute; hib&aacute;s';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'A jelsz&oacute; sikeresen megv&aacute;ltozott';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Figyelem: A sablon megv&aacute;ltoztat&aacute;s&aacute;t a be&aacute;ll&iacute;t&aacute;sokban teheti meg';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Nem tartalmazhat ../ -t a k&ouml;nyvt&aacute;r n&eacute;v';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Nem lehet ../ a c&eacute;l mez&otilde;ben';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Cannot have ../ in the folder target';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Nem lehet ../ a n&eacute;vben';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Nem lehet index.php a n&eacute;v';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Nem tal&aacute;lhat&oacute; semmilyen m&eacute;dia file az aktu&aacute;lis k&ouml;nyvt&aacute;rban';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'File nem tal&aacute;lhat&oacute;';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'File t&ouml;r&ouml;lve';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'K&ouml;nyvt&aacute;r t&ouml;r&ouml;lve';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Biztos hogy t&ouml;rli a k&ouml;vetkez&otilde; file-t vagy k&ouml;nyvt&aacute;rat?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Nem lehet t&ouml;r&ouml;lni a kiv&aacute;lasztott file-t';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Nem lehet t&ouml;r&ouml;lni a kiv&aacute;lasztott k&ouml;nyvt&aacute;rat';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Nem adott meg &uacute;j nevet';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Nem adott meg file kiterjeszt&eacute;st';
+$MESSAGE['MEDIA']['RENAMED'] = '&Aacute;tnevez&eacute;s sikeres';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Nem siker&uuml;lt &aacute;tnevezni';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Ilyen nev&ucirc; file m&aacute;r l&eacute;tezik';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Ilyen nev&ucirc; k&ouml;nyvt&aacute;r m&aacute;r l&eacute;tezik';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'A k&ouml;nyvt&aacute;r sikeresen l&eacute;trehozva';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'nem siker&uuml;lt l&eacute;trehozni a k&ouml;nyvt&aacute;rat';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' file sikeresen felt&ouml;ltve';
+$MESSAGE['MEDIA']['UPLOADED'] = ' file sikeresen felt&ouml;ltve';
+
+$MESSAGE['PAGES']['ADDED'] = 'Lap sikeresen hozz&aacute;adva';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Lap c&iacute;msor sikeresen hozz&aacute;adva';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Ilyen lap m&aacute;r l&eacute;tezik';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Nem lehet l&eacute;trehozni az access filet a /pages k&ouml;nyvt&aacute;rban (nem megfelel&otilde; jogosults&aacute;gok)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Nem lehet t&ouml;r&ouml;lni az access filet a /pages k&ouml;nyvt&aacute;rban (nem megfelel&otilde; jogosults&aacute;gok)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Lap nem tal&aacute;lhat&oacute;';
+$MESSAGE['PAGES']['SAVED'] = 'Lap sikeresen elmentve';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Lap be&aacute;ll&iacute;t&aacute;sok elmentve';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Hiba a lap ment&eacute;se k&ouml;zben';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Biztos, hogy t&ouml;r&ouml;lni akarja az adott lapot? (&eacute;s az &ouml;sszes al lapj&aacute;t)';
+$MESSAGE['PAGES']['DELETED'] = 'Lap t&ouml;r&ouml;lve';
+$MESSAGE['PAGES']['RESTORED'] = 'lap vissza&aacute;ll&iacute;tva';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'K&eacute;rem adjon meg Lap c&iacute;met';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'K&eacute;rem adjon meg men&uuml; nevet';
+$MESSAGE['PAGES']['REORDERED'] = 'Lap sikeresen &aacute;trendezve';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Hiba a Lap &aacute;trendez&eacute;s k&ouml;zben';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Nincs joga m&oacute;dos&iacute;tani ezt a lapot';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Nem lehet l&eacute;trehozni /pages/intro.php file-t (nincs megfelel&otilde; jogosults&aacute;g)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Bevezet&otilde; lap sikeresen elmentve';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Utolj&aacute;ra m&oacute;dos&iacute;totta:';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Kattintson ide az Bevezet&otilde; Lap m&oacute;dos&iacute;t&aacute;s&aacute;hoz';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Szakasz tulajdons&aacute;gok elmentve';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Visszat&eacute;r&eacute;s a lapokhoz';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'K&eacute;rem t&eacute;rjen vissza &eacute;s t&ouml;lts&ouml;n ki minden mez&otilde;t';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'A felt&ouml;lt&ouml;tt file csak ilyen form&aacute;tum&uacute; lehet:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'A felt&ouml;lt&ouml;tt file-ok csak a k&ouml;vetkez&otilde; form&aacute;tumuak lehetnek:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'File felt&ouml;lt&eacute;s nem lehets&eacute;ges';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'M&aacute;r telep&iacute;tve';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Nincs telp&iacute;tve';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Nem lehet elt&aacute;vol&iacute;tani';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Kicsomagol&aacute;s nem lehets&eacute;ges';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Telep&iacute;t&eacute;s sikeres';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgraded successfully';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Elt&aacute;vol&iacute;t&aacute;s sikeres';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'A c&eacute;l k&ouml;nyvt&aacute;r nem &iacute;rhat&oacute;';
+$MESSAGE['GENERIC']['INVALID'] = 'A felt&ouml;lt&ouml;tt file nem megfelel&otilde;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Nem lehet elt&aacute;volt&iacute;tani! A file haszn&aacute;latban van.';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'K&eacute;rem t&eacute;rjen vissza k&eacute;s&otilde;bb!';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Please be patient, this might take a while.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Error opening file.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'A k&ouml;vetkez&otilde; mez&otilde;ket k&ouml;telez&otilde; kit&ouml;ltenie';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Sajn&aacute;ljuk, de ez az &ucirc;rlap t&uacute;l sokszor lett kit&ouml;ltve egy &oacute;ran bel&uuml;l! K&eacute;rem pr&oacute;b&aacute;lja meg egy &oacute;ra m&uacute;lva.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'The verification number (also known as Captcha) that you entered is incorrect. If you are having problems reading the Captcha, please email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/HU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/IT.php
===================================================================
--- tags/2.7.0/wb/languages/IT.php	(nonexistent)
+++ tags/2.7.0/wb/languages/IT.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'IT';
+$language_name = 'Italiano';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Roberto Rossi';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Avvio';
+$MENU['PAGES'] = 'Pagine';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Add-ons';
+$MENU['MODULES'] = 'Moduli';
+$MENU['TEMPLATES'] = 'Templates';
+$MENU['LANGUAGES'] = 'Lingua';
+$MENU['PREFERENCES'] = 'Preferenze';
+$MENU['SETTINGS'] = 'Impostazioni';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Accesso';
+$MENU['USERS'] = 'Utenti';
+$MENU['GROUPS'] = 'Gruppi';
+$MENU['HELP'] = 'Aiuto';
+$MENU['VIEW'] = 'Visualizza';
+$MENU['LOGOUT'] = 'Log-out';
+$MENU['LOGIN'] = 'Login';
+$MENU['FORGOT'] = 'Recupera dati di login';
+
+// Section overviews
+$OVERVIEW['START'] = 'Funzioni di amministrazione';
+$OVERVIEW['PAGES'] = 'Gestisci le pagine del sito...';
+$OVERVIEW['MEDIA'] = 'Gestisci i file nella cartella Media...';
+$OVERVIEW['MODULES'] = 'Gestisci i moduli di Website Baker...';
+$OVERVIEW['TEMPLATES'] = 'Cambia la grafica del sito con i templates...';
+$OVERVIEW['LANGUAGES'] = 'Gestisci le lingue del sito...';
+$OVERVIEW['PREFERENCES'] = 'Cambia preferenze come email, password, etc... ';
+$OVERVIEW['SETTINGS'] = 'Cambia le impostazioni di Website Baker...';
+$OVERVIEW['USERS'] = 'Gestisci gli utenti che possono collegarsi a Website Baker...';
+$OVERVIEW['GROUPS'] = 'Gestisci gruppi utenti e permessi...';
+$OVERVIEW['HELP'] = 'Trova risposte alle tue domande...';
+$OVERVIEW['VIEW'] = 'Visualizza il sito in una nuova finestra...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modifica/Elimina una pagina';
+$HEADING['DELETED_PAGES'] = 'Pagine cancellate';
+$HEADING['ADD_PAGE'] = 'Aggiungi una pagina';
+$HEADING['ADD_HEADING'] = 'Aggiungi una Intestazione';
+$HEADING['MODIFY_PAGE'] = 'Modifica la pagina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modifica Page Settings';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modifica impostazioni avanzate';
+$HEADING['MANAGE_SECTIONS'] = 'Gestisci le sezioni';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modifica la pagina d\'introduzione';
+
+$HEADING['BROWSE_MEDIA'] = 'Sfoglia i Media';
+$HEADING['CREATE_FOLDER'] = 'Crea cartella';
+$HEADING['UPLOAD_FILES'] = 'Carica i File';
+
+$HEADING['INSTALL_MODULE'] = 'Installa il Modulo';
+$HEADING['UNINSTALL_MODULE'] = 'Disinstalla il Modulo';
+$HEADING['MODULE_DETAILS'] = 'Dettagli del Modulo';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Installa un Template';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Disinstalla il Template';
+$HEADING['TEMPLATE_DETAILS'] = 'Dettagli Template';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Installa lingua';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Disinstalla lingua';
+$HEADING['LANGUAGE_DETAILS'] = 'Dettagli lingua';
+
+$HEADING['MY_SETTINGS'] = 'Mie impostazioni';
+$HEADING['MY_EMAIL'] = 'Mia Email';
+$HEADING['MY_PASSWORD'] = 'Mia Password';
+
+$HEADING['GENERAL_SETTINGS'] = 'Impostazioni Generali';
+$HEADING['DEFAULT_SETTINGS'] = 'Impostazioni Default';
+$HEADING['SEARCH_SETTINGS'] = 'Impostazioni di Ricerca';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Impostazioni del Filesystem';
+$HEADING['SERVER_SETTINGS'] = 'Impostazioni del Server ';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Tool di Amministrazione';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modifica/Elimina Utente';
+$HEADING['ADD_USER'] = 'Aggiungi Utente';
+$HEADING['MODIFY_USER'] = 'Modifica Utente';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modifica/Elimina Gruppo';
+$HEADING['ADD_GROUP'] = 'Aggiungi Gruppo';
+$HEADING['MODIFY_GROUP'] = 'Modifica Gruppo';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Aggiungi';
+$TEXT['MODIFY'] = 'Modifica';
+$TEXT['SETTINGS'] = 'Settings';
+$TEXT['DELETE'] = 'Elimina';
+$TEXT['SAVE'] = 'Salva';
+$TEXT['RESET'] = 'Resetta';
+$TEXT['LOGIN'] = 'Login';
+$TEXT['RELOAD'] = 'Ricarica';
+$TEXT['CANCEL'] = 'Annulla';
+$TEXT['NAME'] = 'Nome';
+$TEXT['PLEASE_SELECT'] = 'Prego seleziona';
+$TEXT['TITLE'] = 'Titolo';
+$TEXT['PARENT'] = 'Parente';
+$TEXT['TYPE'] = 'Tipo';
+$TEXT['VISIBILITY'] = 'Visibilit&agrave;';
+$TEXT['PRIVATE'] = 'Privato';
+$TEXT['PUBLIC'] = 'Pubblico';
+$TEXT['NONE'] = 'Nessuna';
+$TEXT['NONE_FOUND'] = 'Nessuno trovato';
+$TEXT['CURRENT'] = 'Corrente';
+$TEXT['CHANGE'] = 'Cambia';
+$TEXT['WINDOW'] = 'Finestra';
+$TEXT['DESCRIPTION'] = 'Descrizione';
+$TEXT['KEYWORDS'] = 'Parole chiave';
+$TEXT['ADMINISTRATORS'] = 'Amministratori';
+$TEXT['PRIVATE_VIEWERS'] = 'Visione privata';
+$TEXT['EXPAND'] = 'Espandi';
+$TEXT['COLLAPSE'] = 'Restringi';
+$TEXT['MOVE_UP'] = 'Muovi su';
+$TEXT['MOVE_DOWN'] = 'Muovi gi&Atilde;&sup1;';
+$TEXT['RENAME'] = 'Rinomina';
+$TEXT['MODIFY_SETTINGS'] = 'Modifica Impostazioni';
+$TEXT['MODIFY_CONTENT'] = 'Modifica Contenuto';
+$TEXT['VIEW'] = 'Vedi';
+$TEXT['UP'] = 'Su';
+$TEXT['FORGOTTEN_DETAILS'] = 'Dimenticati i dati?';
+$TEXT['NEED_TO_LOGIN'] = 'Bisogno di login?';
+$TEXT['SEND_DETAILS'] = 'Invia i dati';
+$TEXT['USERNAME'] = 'Username';
+$TEXT['PASSWORD'] = 'Password';
+$TEXT['HOME'] = 'Home';
+$TEXT['TARGET_FOLDER'] = 'Cartella di destinazione';
+$TEXT['OVERWRITE_EXISTING'] = 'Sovrascrivi esistenti';
+$TEXT['FILE'] = 'File';
+$TEXT['FILES'] = 'Files';
+$TEXT['FOLDER'] = 'Cartella';
+$TEXT['FOLDERS'] = 'Folders';
+$TEXT['CREATE_FOLDER'] = 'Crea Cartella';
+$TEXT['UPLOAD_FILES'] = 'Carica File(s)';
+$TEXT['CURRENT_FOLDER'] = 'Cartella corrente';
+$TEXT['TO'] = 'A';
+$TEXT['FROM'] = 'Da';
+$TEXT['INSTALL'] = 'Installa';
+$TEXT['UNINSTALL'] = 'Disinstalla';
+$TEXT['VIEW_DETAILS'] = 'Vedi dettagli';
+$TEXT['DISPLAY_NAME'] = 'Mostra il nome';
+$TEXT['AUTHOR'] = 'Autore';
+$TEXT['VERSION'] = 'Versione';
+$TEXT['DESIGNED_FOR'] = 'Progettato per';
+$TEXT['DESCRIPTION'] = 'Descrizione';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Lingua';
+$TEXT['TIMEZONE'] = 'Fuso orario';
+$TEXT['CURRENT_PASSWORD'] = 'Password corrente';
+$TEXT['NEW_PASSWORD'] = 'Nuova Password';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Riscrivi Nuova Password';
+$TEXT['ACTIVE'] = 'Attivo';
+$TEXT['DISABLED'] = 'Disabilitato';
+$TEXT['ENABLED'] = 'Abilitato';
+$TEXT['RETYPE_PASSWORD'] = 'Riscrivi Password';
+$TEXT['GROUP'] = 'Gruppo';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Permessi di sistema';
+$TEXT['MODULE_PERMISSIONS'] = 'Permessi del Modulo';
+$TEXT['SHOW_ADVANCED'] = 'Mostra opzioni avanzate';
+$TEXT['HIDE_ADVANCED'] = 'Nascondi opzioni avanzate';
+$TEXT['BASIC'] = 'Base';
+$TEXT['ADVANCED'] = 'Avanzato';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Default';
+$TEXT['KEYWORDS'] = 'Parole chiave';
+$TEXT['TEXT'] = 'Testo';
+$TEXT['HEADER'] = 'Intestazione';
+$TEXT['FOOTER'] = 'Pi&egrave; di pagina';
+$TEXT['TEMPLATE'] = 'Template';
+$TEXT['INSTALLATION'] = 'Installazione';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Introduzione';
+$TEXT['PAGE'] = 'Pagina';
+$TEXT['SIGNUP'] = 'Iscrizione';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Error Reporting Level';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Path';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Estensioni';
+$TEXT['TABLE_PREFIX'] = 'Table Prefix';
+$TEXT['CHANGES'] = 'Modifiche';
+$TEXT['ADMINISTRATION'] = 'Amministrazione';
+$TEXT['FORGOT_DETAILS'] = 'Dimenticato i dati?';
+$TEXT['LOGGED_IN'] = 'Logged-In';
+$TEXT['WELCOME_BACK'] = 'Bentornato';
+$TEXT['FULL_NAME'] = 'Nome completo';
+$TEXT['ACCOUNT_SIGNUP'] = 'Iscrizione Account';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Destinazione';
+$TEXT['NEW_WINDOW'] = 'Nuova finestra';
+$TEXT['SAME_WINDOW'] = 'Stessa finestra';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limite del livello di pagina';
+$TEXT['SUCCESS'] = 'Successo';
+$TEXT['ERROR'] = 'Errore';
+$TEXT['ARE_YOU_SURE'] = 'Sei sicuro?';
+$TEXT['YES'] = 'S&igrave;';
+$TEXT['NO'] = 'No';
+$TEXT['SYSTEM_DEFAULT'] = 'Default di sistema';
+$TEXT['PAGE_TITLE'] = 'Titolo Pagina';
+$TEXT['MENU_TITLE'] = 'Titolo Menu';
+$TEXT['ACTIONS'] = 'Azioni';
+$TEXT['UNKNOWN'] = 'Sconosciuto';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'Ricerca';
+$TEXT['SEARCHING'] = 'Ricerca';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Commento';
+$TEXT['COMMENTS'] = 'Commenti';
+$TEXT['COMMENTING'] = 'Commentare';
+$TEXT['SHORT'] = 'Breve';
+$TEXT['LONG'] = 'Estesa';
+$TEXT['LOOP'] = 'Loop';
+$TEXT['FIELD'] = 'Campo';
+$TEXT['REQUIRED'] = 'Obbligatorio';
+$TEXT['LENGTH'] = 'Lunghezza';
+$TEXT['MESSAGE'] = 'Messaggio';
+$TEXT['SUBJECT'] = 'Soggetto';
+$TEXT['MATCH'] = 'Confronto';
+$TEXT['ALL_WORDS'] = 'Tutte le parole';
+$TEXT['ANY_WORDS'] = 'Qualsiasi parola';
+$TEXT['EXACT_MATCH'] = 'Confronto Esatto';
+$TEXT['SHOW'] = 'Mostra';
+$TEXT['HIDE'] = 'Nascondi';
+$TEXT['START_PUBLISHING'] = 'Inizio pubblicazione';
+$TEXT['FINISH_PUBLISHING'] = 'Fine publicazione';
+$TEXT['DATE'] = 'Data';
+$TEXT['START'] = 'Avvio';
+$TEXT['END'] = 'Fine';
+$TEXT['IMAGE'] = 'Immagine';
+$TEXT['ICON'] = 'Icona';
+$TEXT['SECTION'] = 'Sezione';
+$TEXT['DATE_FORMAT'] = 'Formato data';
+$TEXT['TIME_FORMAT'] = 'Formato ora';
+$TEXT['RESULTS'] = 'Risultati';
+$TEXT['RESIZE'] = 'Ridimensiona';
+$TEXT['MANAGE'] = 'Gestisci';
+$TEXT['CODE'] = 'Codice';
+$TEXT['WIDTH'] = 'Larghezza';
+$TEXT['HEIGHT'] = 'Altezza';
+$TEXT['MORE'] = 'Continua';
+$TEXT['READ_MORE'] = 'Continua a leggere';
+$TEXT['CHANGE_SETTINGS'] = 'Cambia Impostazioni';
+$TEXT['CURRENT_PAGE'] = 'Pagina corrente';
+$TEXT['CLOSE'] = 'Chiudi';
+$TEXT['INTRO_PAGE'] = 'Pagina d\'introduzione';
+$TEXT['INSTALLATION_URL'] = 'URL di installazione';
+$TEXT['INSTALLATION_PATH'] = 'Path di installazione';
+$TEXT['PAGE_EXTENSION'] = 'Estensione di Pagina';
+$TEXT['NO_RESULTS'] = 'Nessun risultato';
+$TEXT['WEBSITE_TITLE'] = 'Website Titolo';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Website Descrizione';
+$TEXT['WEBSITE_KEYWORDS'] = 'Website Parole chiave';
+$TEXT['WEBSITE_HEADER'] = 'Website Intestazione';
+$TEXT['WEBSITE_FOOTER'] = 'Website Pi&egrave; di pagina';
+$TEXT['RESULTS_HEADER'] = 'Risultati Intestazione';
+$TEXT['RESULTS_LOOP'] = 'Risultati Loop';
+$TEXT['RESULTS_FOOTER'] = 'Risultati Pi&egrave; di pagina';
+$TEXT['LEVEL'] = 'Livello';
+$TEXT['NOT_FOUND'] = 'Non trovato';
+$TEXT['PAGE_SPACER'] = 'Separatore di Pagina';
+$TEXT['MATCHING'] = 'Confronto';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Permessi dei Template';
+$TEXT['PAGES_DIRECTORY'] = 'Pagine Directory';
+$TEXT['MEDIA_DIRECTORY'] = 'Media Directory';
+$TEXT['FILE_MODE'] = 'Modalit&agrave; File';
+$TEXT['USER'] = 'User';
+$TEXT['OTHERS'] = 'Altri';
+$TEXT['READ'] = 'Lettura';
+$TEXT['WRITE'] = 'Scrittura';
+$TEXT['EXECUTE'] = 'Esecuzione';
+$TEXT['SMART_LOGIN'] = 'Smart Login';
+$TEXT['REMEMBER_ME'] = 'Ricordami';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Permessi del Filesystem';
+$TEXT['DIRECTORIES'] = 'Directories';
+$TEXT['DIRECTORY_MODE'] = 'Modalit&agrave; Directory';
+$TEXT['LIST_OPTIONS'] = 'Opzioni di elenco';
+$TEXT['OPTION'] = 'Opzioni';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Permetti selezioni multiple';
+$TEXT['TEXTFIELD'] = 'Campo di testo';
+$TEXT['TEXTAREA'] = 'Area di testo';
+$TEXT['SELECT_BOX'] = 'Campo di selezione';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox Gruppo';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Button Gruppo';
+$TEXT['SIZE'] = 'Dimensione';
+$TEXT['DEFAULT_TEXT'] = 'Testo di default';
+$TEXT['SEPERATOR'] = 'Separatore';
+$TEXT['BACK'] = 'Indietro';
+$TEXT['UNDER_CONSTRUCTION'] = 'In costruzione';
+$TEXT['MULTISELECT'] = 'Multi-selezione';
+$TEXT['SHORT_TEXT'] = 'Testo breve';
+$TEXT['LONG_TEXT'] = 'Testo lungo';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Homepage Redirezione';
+$TEXT['HEADING'] = 'Intestazione';
+$TEXT['MULTIPLE_MENUS'] = 'Menu multipli';
+$TEXT['REGISTERED'] = 'Registrato';
+$TEXT['SECTION_BLOCKS'] = 'Blocchi di Sezione';
+$TEXT['REGISTERED_VIEWERS'] = 'Utenti registrati';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Iscrizione ID';
+$TEXT['SUBMISSIONS'] = 'Iscrizioni';
+$TEXT['SUBMITTED'] = 'Iscritto';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Iscizioni per ora';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Iscrizioni memorizzate nel Database';
+$TEXT['EMAIL_ADDRESS'] = 'Indirizzo Email';
+$TEXT['CUSTOM'] = 'Custom';
+$TEXT['ANONYMOUS'] = 'Anonimo';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server Operating System';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Permesso di scrittura file a chiunque';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix based';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Cartella Home';
+$TEXT['HOME_FOLDERS'] = 'Cartelle Home';
+$TEXT['PAGE_TRASH'] = 'Cestino';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Separa';
+$TEXT['DELETED'] = 'Eliminato';
+$TEXT['VIEW_DELETED_PAGES'] = 'Vedi Pagine Eliminate';
+$TEXT['EMPTY_TRASH'] = 'Svuota Cestino';
+$TEXT['TRASH_EMPTIED'] = 'Cestino Svuotato';
+$TEXT['ADD_SECTION'] = 'Aggiungi Sezione';
+$TEXT['POST_HEADER'] = 'Post Intestazione';
+$TEXT['POST_FOOTER'] = 'Post Pi&egrave; di pagina';
+$TEXT['POSTS_PER_PAGE'] = 'Post Per Pagina';
+$TEXT['RESIZE_IMAGE_TO'] = 'Ridimensiona immagine a';
+$TEXT['UNLIMITED'] = 'Illimitato';
+$TEXT['OF'] = 'Di';
+$TEXT['OUT_OF'] = 'Di';
+$TEXT['NEXT'] = 'Successivo';
+$TEXT['PREVIOUS'] = 'Precedente';
+$TEXT['NEXT_PAGE'] = 'Pagina successiva';
+$TEXT['PREVIOUS_PAGE'] = 'Pagina precedente';
+$TEXT['ON'] = 'Su';
+$TEXT['LAST_UPDATED_BY'] = 'Ultima modifica di';
+$TEXT['RESULTS_FOR'] = 'Risultati per';
+$TEXT['TIME'] = 'Ora';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server Email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Gestisci i Gruppi';
+$TEXT['MANAGE_USERS'] = 'Gestisci gli Utenti';
+$TEXT['PAGE_LANGUAGES'] = 'Pagina Lingue';
+$TEXT['HIDDEN'] = 'Nascosto';
+$TEXT['MAIN'] = 'Principale';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Rinomina i Files per il Caricamento';
+$TEXT['APP_NAME'] = 'Nome Applicazione';
+$TEXT['SESSION_IDENTIFIER'] = 'Identificazione della sessione';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restore';
+$TEXT['BACKUP_DATABASE'] = 'Backup del Database';
+$TEXT['RESTORE_DATABASE'] = 'Restore del Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Restore Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Tool di Amministrazione';
+$TEXT['CAPTCHA_VERIFICATION'] = 'verificaCaptcha ';
+$TEXT['VERIFICATION'] = 'Verifica';
+$TEXT['DEFAULT_CHARSET'] = 'Carattere di Default';
+$TEXT['CHARSET'] = 'Caratteri';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Spaicente, non ha i permessi per vedere la pagina';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Privilegi insufficienti per essere qui';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Prego inserire username e password';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Prego inserire lo username';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Prego inserire una password';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Username troppo corto';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Password troppo corta';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Username troppo lungo';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Password troppo lunga';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Username o password errati';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Deve inserire un indirizzo di email';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Prego inserire email';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'L\'Email inserita non &egrave; stata trovata nel database';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Impossibile inviare l\'email. Contattare l\'ammnistratore';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Username e password sono stati inviati per email';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'La Password non pu&Atilde;&sup2; essere modificata pi&Atilde;&sup1; di una volta all\'ora';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Benvenuto alla pagina di Amministrazione di Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Attenzione, la directory di installazione esiste gi&agrave;!';
+$MESSAGE['START']['CURRENT_USER'] = 'Sei registrato come:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Impossibile aprire il file di configurazione';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Impossibile scrivere il file di configurazione';
+$MESSAGE['SETTINGS']['SAVED'] = 'Impostazioni salvate con successo';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Attenzione: premendo questo pulsante si resettano le impostazioni modificate e non salvate';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Raccomandato solo in fase di test';
+
+$MESSAGE['USERS']['ADDED'] = 'Utente aggiunto';
+$MESSAGE['USERS']['SAVED'] = 'Utente salvato';
+$MESSAGE['USERS']['DELETED'] = 'Utente eliminato';
+$MESSAGE['USERS']['NO_GROUP'] = 'Nessun gruppo selezionato';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Username troppo corto';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Password troppo corta';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Le password non coincidono';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Email non valida';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Email gi&agrave; in uso';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Username gi&agrave; utilizzato';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Attenzione: devi inserire solo valori validi se vuoi cambiare la password utente';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Sei sicuro di voler eliminare gli utenti selezionati?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Gruppo aggiunto';
+$MESSAGE['GROUPS']['SAVED'] = 'Gruppo salvato';
+$MESSAGE['GROUPS']['DELETED'] = 'Gruppo eliminato';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Il nome del Gruppo &egrave; vuoto';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Sei sicuro di voler eliminare il gruppo selezionato e tutti i suoi utenti?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Nessun gruppo trovato';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Nome di Gruppo gia Esistente';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Dettagli salvati';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email aggiornata';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'La password corrente inserita &egrave; errata';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Password cambiata';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Per cambiare il Template andare alla sezione Impostazioni';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Impossibile includere ../ nel nome della cartella';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'La Cartella non esiste';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Impossibile avere ../ nella cartella di destinazione';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Impossibile includere ../ nel nome';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Impossibile usare index.php come nome';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Nessun Media trovato nella cartella corrente';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'File non trovato';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'File eliminato';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Cartella eliminata';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Sei sicuro di voler eliminare il file o la cartella corrente?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Impossibile eliminare il file';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'impossibile eliminare la cartella';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Non hai inserito un nuovo nome';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Non hai inserito una estensione del file';
+$MESSAGE['MEDIA']['RENAMED'] = 'Rinominato con successo';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Impossibile rinominare';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Esiste gi&agrave; un file con lo stesso nome';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Esiste gi&agrave; una cartella con lo stesso nome';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Cartella creata';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Impossibile creare la cartella';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' file caricato con successo';
+$MESSAGE['MEDIA']['UPLOADED'] = ' file sono stati caricati con successo';
+
+$MESSAGE['PAGES']['ADDED'] = 'Pagina aggiunta';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Pagina intestazione aggiunta';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Esiste gi&agrave; una pagina con lo stesso nome';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Errore nel creare un file di permessi (privilegi insufficienti)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Errore nel cancellare un file di permessi (privilegi insufficienti)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Pagina non trovata';
+$MESSAGE['PAGES']['SAVED'] = 'Pagina salvata';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Impostazioni della pagina salvate';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Errore nel salvare la pagina';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Sei sicuro di voler eliminare la pagina e tutte le sotto-pagine?';
+$MESSAGE['PAGES']['DELETED'] = 'Pagina eliminata';
+$MESSAGE['PAGES']['RESTORED'] = 'Pagina recuperata';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Prego inserisci un titolo';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Prego inserisci un titolo';
+$MESSAGE['PAGES']['REORDERED'] = 'Pagina riordinata';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Errore nel riordinare la pagina';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Non hai i permessi per modificare la pagina';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Impossibile scrivere sul file /pages/intro.php (privilegi insufficienti)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Pagina di introduzione salvata';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Ultima modifica di';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Clicca qui per modificare la pagina d\'introduzione';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Propriet&agrave; di sezione salvate';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Ritorna alle pagine';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Prego torna indietro e compila tutti i campi';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Nota che il file caricato deve essere dei seguenti formati:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Nota che i file caricati devono essere dei seguenti formati:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Impossibile caricare i file';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Gi&agrave; installato';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Non installato';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Impossibile disinstallare';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'impossibile decomprimere il file';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installato con successo';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Aggiornato con successo';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Disinstallato con successo';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Impossibile scrivere sulla directory';
+$MESSAGE['GENERIC']['INVALID'] = 'Il file caricato &egrave; non valido';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Impossibile disisntallare: file in uso';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Torna presto...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Attendi pazientemente...';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Errore nella apertura del file.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Devi inserire tutti i dati nei seguenti campi';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Spiacente: hai compilato questa form troppe volte nell\'ultima ora.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Il numero di controllo (chiama Captcha) che hai inserito non &egrave; valido. Se hai problemi con la lettura del Captcha, invia un email email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Seleziona gli add-ons che desideri ricaricare';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduli ricaricati con successo';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates ricaricati con successo';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Lingue ricaricate con successo';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/IT.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/NO.php
===================================================================
--- tags/2.7.0/wb/languages/NO.php	(nonexistent)
+++ tags/2.7.0/wb/languages/NO.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'NO';
+$language_name = 'Norsk';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Odd Egil Hansen';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Start';
+$MENU['PAGES'] = 'Sider';
+$MENU['MEDIA'] = 'Media';
+$MENU['ADDONS'] = 'Tillegg';
+$MENU['MODULES'] = 'Moduler';
+$MENU['TEMPLATES'] = 'Maler';
+$MENU['LANGUAGES'] = 'Spr&aring;k';
+$MENU['PREFERENCES'] = 'Bruker innstillinger';
+$MENU['SETTINGS'] = 'Innstillinger';
+$MENU['ADMINTOOLS'] = 'Admin-verkt&oslash;y';
+$MENU['ACCESS'] = 'Tilgang';
+$MENU['USERS'] = 'Brukere';
+$MENU['GROUPS'] = 'Grupper';
+$MENU['HELP'] = 'Hjelp';
+$MENU['VIEW'] = 'Forh&aring;ndsvis';
+$MENU['LOGOUT'] = 'Logg ut';
+$MENU['LOGIN'] = 'Logg inn';
+$MENU['FORGOT'] = 'Hent innloggings informasjon';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administrasjons oversikt';
+$OVERVIEW['PAGES'] = 'Administrer dine internett sider...';
+$OVERVIEW['MEDIA'] = 'Administrer filer lagret i media katalogen...';
+$OVERVIEW['MODULES'] = 'Administrer Website Baker moduler...';
+$OVERVIEW['TEMPLATES'] = 'Forandre utseende p&aring; internett siden med maler...';
+$OVERVIEW['LANGUAGES'] = 'Administrer Website Baker spr&aring;k...';
+$OVERVIEW['PREFERENCES'] = 'Forandre innstillinger som epost adresse, passord, o.l....';
+$OVERVIEW['SETTINGS'] = 'Forandre instillinger for Website Baker...';
+$OVERVIEW['USERS'] = 'Velg hvilke brukere som kan logge inn i Website Baker...';
+$OVERVIEW['GROUPS'] = 'Administrer grupper og deres system adgang...';
+$OVERVIEW['HELP'] = 'Har du et sp&oslash;rsm&aring;l? Finn svaret...';
+$OVERVIEW['VIEW'] = 'Forh&aring;ndsvis internett siden din i et nytt vindu...';
+$OVERVIEW['ADMINTOOLS'] = 'G&aring; inn p&aring; Website Baker sine administrasjonsverkt&oslash;y...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Endre/Slett side';
+$HEADING['DELETED_PAGES'] = 'Slettede sider';
+$HEADING['ADD_PAGE'] = 'Legg til side';
+$HEADING['ADD_HEADING'] = 'Tilf&oslash;y overskrift';
+$HEADING['MODIFY_PAGE'] = 'Endre side';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Endre sideinnstillinger';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Endre avansert sideinnstillinger';
+$HEADING['MANAGE_SECTIONS'] = 'Administrer seksjoner';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Endre introduksjons side';
+
+$HEADING['BROWSE_MEDIA'] = 'Utforsk Media';
+$HEADING['CREATE_FOLDER'] = 'Opprett Katalog';
+$HEADING['UPLOAD_FILES'] = 'Last opp fil(er)';
+
+$HEADING['INSTALL_MODULE'] = 'Innstaller Modul';
+$HEADING['UNINSTALL_MODULE'] = 'Avinstaller Modul';
+$HEADING['MODULE_DETAILS'] = 'Modul Detaljer';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Installer Mal';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Avinstaller Mal';
+$HEADING['TEMPLATE_DETAILS'] = 'Mal Detaljer';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Installer Spr&aring;k';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Avinstaller Spr&aring;k';
+$HEADING['LANGUAGE_DETAILS'] = 'Spr&aring;k Detaljer';
+
+$HEADING['MY_SETTINGS'] = 'Mine Innstillinger';
+$HEADING['MY_EMAIL'] = 'Min Epost';
+$HEADING['MY_PASSWORD'] = 'Mitt Passord';
+
+$HEADING['GENERAL_SETTINGS'] = 'Generelle Instillinger';
+$HEADING['DEFAULT_SETTINGS'] = 'Standard Innstillinger';
+$HEADING['SEARCH_SETTINGS'] = 'S&oslash;ke Innstillinger';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Filsystem Innstillinger';
+$HEADING['SERVER_SETTINGS'] = 'Server Innstillinger';
+$HEADING['WBMAILER_SETTINGS'] = 'Innstillinger for e-post senderen';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administrasjonsverkt&oslash;y';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Endre/Slette Bruker';
+$HEADING['ADD_USER'] = 'Legg til Bruker';
+$HEADING['MODIFY_USER'] = 'Endre Bruker';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Endre/Slette Gruppe';
+$HEADING['ADD_GROUP'] = 'Legg til Gruppe';
+$HEADING['MODIFY_GROUP'] = 'Endre Gruppe';
+
+// Other text
+$TEXT['OPEN'] = '&Aring;pne';
+$TEXT['ADD'] = 'Tilf&oslash;y';
+$TEXT['MODIFY'] = 'Endre';
+$TEXT['SETTINGS'] = 'Innstillinger';
+$TEXT['DELETE'] = 'Slett';
+$TEXT['SAVE'] = 'Lagre';
+$TEXT['RESET'] = 'Tilbakestill';
+$TEXT['LOGIN'] = 'Logg inn';
+$TEXT['RELOAD'] = 'Oppdater';
+$TEXT['CANCEL'] = 'Avbryt';
+$TEXT['NAME'] = 'Navn';
+$TEXT['PLEASE_SELECT'] = 'Vennligst velg';
+$TEXT['TITLE'] = 'Tittel';
+$TEXT['PARENT'] = 'Hovedkategori';
+$TEXT['TYPE'] = 'Type';
+$TEXT['VISIBILITY'] = 'Synlighet';
+$TEXT['PRIVATE'] = 'Privat';
+$TEXT['PUBLIC'] = 'Offentlig';
+$TEXT['NONE'] = 'Ingen';
+$TEXT['NONE_FOUND'] = 'Ingen funnet';
+$TEXT['CURRENT'] = 'Aktuell';
+$TEXT['CHANGE'] = 'Forandre';
+$TEXT['WINDOW'] = 'Vindu';
+$TEXT['DESCRIPTION'] = 'Beskrivelse';
+$TEXT['KEYWORDS'] = 'N&oslash;kkelord';
+$TEXT['ADMINISTRATORS'] = 'Administratorer';
+$TEXT['PRIVATE_VIEWERS'] = 'Private Seere';
+$TEXT['EXPAND'] = 'Utvid';
+$TEXT['COLLAPSE'] = 'Fall sammen';
+$TEXT['MOVE_UP'] = 'Flytt opp';
+$TEXT['MOVE_DOWN'] = 'Flytt ned';
+$TEXT['RENAME'] = 'Endre navn';
+$TEXT['MODIFY_SETTINGS'] = 'Endre innstillinger';
+$TEXT['MODIFY_CONTENT'] = 'Endre innhold';
+$TEXT['VIEW'] = 'Se';
+$TEXT['UP'] = 'Opp';
+$TEXT['FORGOTTEN_DETAILS'] = 'Glemt dine detaljer?';
+$TEXT['NEED_TO_LOGIN'] = 'Trenger du &aring; logge inn?';
+$TEXT['SEND_DETAILS'] = 'Send detaljer';
+$TEXT['USERNAME'] = 'Brukernavn';
+$TEXT['PASSWORD'] = 'Passord';
+$TEXT['HOME'] = 'Hjem';
+$TEXT['TARGET_FOLDER'] = 'Gjelende katalog';
+$TEXT['OVERWRITE_EXISTING'] = 'Overskriv eksisterende';
+$TEXT['FILE'] = 'Fil';
+$TEXT['FILES'] = 'Filer';
+$TEXT['FOLDER'] = 'Katalog';
+$TEXT['FOLDERS'] = 'Kataloger';
+$TEXT['CREATE_FOLDER'] = 'Opprett Katalog';
+$TEXT['UPLOAD_FILES'] = 'Last opp fil(er)';
+$TEXT['CURRENT_FOLDER'] = 'Gjelende Katalog';
+$TEXT['TO'] = 'Til';
+$TEXT['FROM'] = 'Fra';
+$TEXT['INSTALL'] = 'Innstaller';
+$TEXT['UNINSTALL'] = 'Avinstaller';
+$TEXT['VIEW_DETAILS'] = 'Se Detaljer';
+$TEXT['DISPLAY_NAME'] = 'Vis Navn';
+$TEXT['AUTHOR'] = 'Skribent';
+$TEXT['VERSION'] = 'Versjon';
+$TEXT['DESIGNED_FOR'] = 'Laget For';
+$TEXT['DESCRIPTION'] = 'Beskrivelse';
+$TEXT['EMAIL'] = 'Epost';
+$TEXT['LANGUAGE'] = 'Spr&aring;k';
+$TEXT['TIMEZONE'] = 'Tidssone';
+$TEXT['CURRENT_PASSWORD'] = 'Gjeldende Passord';
+$TEXT['NEW_PASSWORD'] = 'Nytt Passord';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Skriv Passordet P&aring; Nytt';
+$TEXT['ACTIVE'] = 'Aktivt';
+$TEXT['DISABLED'] = 'Deaktivert';
+$TEXT['ENABLED'] = 'Aktivert';
+$TEXT['RETYPE_PASSWORD'] = 'Skriv Passord P&aring; Nytt';
+$TEXT['GROUP'] = 'Gruppe';
+$TEXT['SYSTEM_PERMISSIONS'] = 'System Adgang';
+$TEXT['MODULE_PERMISSIONS'] = 'Modul Adgang';
+$TEXT['SHOW_ADVANCED'] = 'Vis Avanserte Valg';
+$TEXT['HIDE_ADVANCED'] = 'Skjul Avanserte Valg';
+$TEXT['BASIC'] = 'Grunnleggende';
+$TEXT['ADVANCED'] = 'Avansert';
+$TEXT['WEBSITE'] = 'Internett Side';
+$TEXT['DEFAULT'] = 'Standard';
+$TEXT['KEYWORDS'] = 'N&oslash;kkelord';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Topptekst';
+$TEXT['FOOTER'] = 'Bunntekst ';
+$TEXT['TEMPLATE'] = 'Mal';
+$TEXT['INSTALLATION'] = 'Installsjon';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Vert';
+$TEXT['INTRO'] = 'Introduksjon';
+$TEXT['PAGE'] = 'Side';
+$TEXT['SIGNUP'] = 'Registrer';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Feil rapporteringsniv&aring;';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Bane';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Forside';
+$TEXT['EXTENSION'] = 'Ekspansjon';
+$TEXT['TABLE_PREFIX'] = 'Tabell Prefiks';
+$TEXT['CHANGES'] = 'Endringer';
+$TEXT['ADMINISTRATION'] = 'Administrasjon';
+$TEXT['FORGOT_DETAILS'] = 'Glemt detaljer?';
+$TEXT['LOGGED_IN'] = 'Innlogget';
+$TEXT['WELCOME_BACK'] = 'Velkommen tilbake';
+$TEXT['FULL_NAME'] = 'Fult Navn';
+$TEXT['ACCOUNT_SIGNUP'] = 'Konto Registrering';
+$TEXT['LINK'] = 'Lenke';
+$TEXT['ANCHOR'] = 'Anker';
+$TEXT['TARGET'] = 'M&aring;l';
+$TEXT['NEW_WINDOW'] = 'Nytt Vindu';
+$TEXT['SAME_WINDOW'] = 'Samme Vindu';
+$TEXT['TOP_FRAME'] = 'Topp ramme';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Side Niv&aring; Begrensning';
+$TEXT['SUCCESS'] = 'Suksess';
+$TEXT['ERROR'] = 'Feil';
+$TEXT['ARE_YOU_SURE'] = 'Er du sikker?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Nei';
+$TEXT['SYSTEM_DEFAULT'] = 'System Standard';
+$TEXT['PAGE_TITLE'] = 'Side Tittel';
+$TEXT['MENU_TITLE'] = 'Meny Tittel';
+$TEXT['ACTIONS'] = 'Valg';
+$TEXT['UNKNOWN'] = 'Ukjent';
+$TEXT['BLOCK'] = 'Blokker';
+$TEXT['SEARCH'] = 'S&oslash;k';
+$TEXT['SEARCHING'] = 'S&oslash;ker';
+$TEXT['POST'] = 'Innlegg';
+$TEXT['COMMENT'] = 'Kommentar';
+$TEXT['COMMENTS'] = 'Kommentarer';
+$TEXT['COMMENTING'] = 'Kommenterer';
+$TEXT['SHORT'] = 'Kort';
+$TEXT['LONG'] = 'Langt';
+$TEXT['LOOP'] = 'L&oslash;kke';
+$TEXT['FIELD'] = 'Felt';
+$TEXT['REQUIRED'] = 'P&aring;budt';
+$TEXT['LENGTH'] = 'Lengde';
+$TEXT['MESSAGE'] = 'Melding';
+$TEXT['SUBJECT'] = 'Emne';
+$TEXT['MATCH'] = 'Treff';
+$TEXT['ALL_WORDS'] = 'Alle Ord';
+$TEXT['ANY_WORDS'] = 'Samme Hvilke Ord';
+$TEXT['EXACT_MATCH'] = 'Eksakt Treff';
+$TEXT['SHOW'] = 'Vis';
+$TEXT['HIDE'] = 'Skjul';
+$TEXT['START_PUBLISHING'] = 'Start Publisering';
+$TEXT['FINISH_PUBLISHING'] = 'Avslutt Publisering';
+$TEXT['DATE'] = 'Dato';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Slutt';
+$TEXT['IMAGE'] = 'Bilde';
+$TEXT['ICON'] = 'Ikon';
+$TEXT['SECTION'] = 'Seksjon';
+$TEXT['DATE_FORMAT'] = 'Dato format';
+$TEXT['TIME_FORMAT'] = 'Tids format';
+$TEXT['RESULTS'] = 'Resultat';
+$TEXT['RESIZE'] = 'Endre St&oslash;rrelse';
+$TEXT['MANAGE'] = 'Administrer';
+$TEXT['CODE'] = 'Kode';
+$TEXT['WIDTH'] = 'Bredde';
+$TEXT['HEIGHT'] = 'H&oslash;yde';
+$TEXT['MORE'] = 'Mer';
+$TEXT['READ_MORE'] = 'Les Mer';
+$TEXT['CHANGE_SETTINGS'] = 'Endre Innstillinger';
+$TEXT['CURRENT_PAGE'] = 'Aktuell Side';
+$TEXT['CLOSE'] = 'Lukk';
+$TEXT['INTRO_PAGE'] = 'Intro Side';
+$TEXT['INSTALLATION_URL'] = 'Installasjons URL';
+$TEXT['INSTALLATION_PATH'] = 'Innstallasjons Bane';
+$TEXT['PAGE_EXTENSION'] = 'Side Tillegg';
+$TEXT['NO_RESULTS'] = 'Ingen Resultater';
+$TEXT['WEBSITE_TITLE'] = 'Nettstedets Tittel';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Nettstedets Beskrivelse';
+$TEXT['WEBSITE_KEYWORDS'] = 'Nettsted N&oslash;kkelord';
+$TEXT['WEBSITE_HEADER'] = 'Nettsted Header';
+$TEXT['WEBSITE_FOOTER'] = 'Nettsted Footer';
+$TEXT['RESULTS_HEADER'] = 'Resultat Header';
+$TEXT['RESULTS_LOOP'] = 'Resultat L&oslash;kke';
+$TEXT['RESULTS_FOOTER'] = 'Resultat Footer';
+$TEXT['LEVEL'] = 'Niv&aring;';
+$TEXT['NOT_FOUND'] = 'Ikke Funnet';
+$TEXT['PAGE_SPACER'] = 'Side Mellomrom';
+$TEXT['MATCHING'] = 'Finner Motstykke';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Mal Adgang';
+$TEXT['PAGES_DIRECTORY'] = 'Side Katalog';
+$TEXT['MEDIA_DIRECTORY'] = 'Media Katalog';
+$TEXT['FILE_MODE'] = 'Fil Modus';
+$TEXT['USER'] = 'Bruker';
+$TEXT['OTHERS'] = 'Andre';
+$TEXT['READ'] = 'Les';
+$TEXT['WRITE'] = 'Skriv';
+$TEXT['EXECUTE'] = 'Utf&oslash;re';
+$TEXT['SMART_LOGIN'] = 'Smart Innlogging';
+$TEXT['REMEMBER_ME'] = 'Husk Meg';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Filsystem Adgang';
+$TEXT['DIRECTORIES'] = 'Kataloger';
+$TEXT['DIRECTORY_MODE'] = 'Katalog Modus';
+$TEXT['LIST_OPTIONS'] = 'Vis Valg';
+$TEXT['OPTION'] = 'Valg';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Tillatt Flere Valg';
+$TEXT['TEXTFIELD'] = 'Tekstfelt';
+$TEXT['TEXTAREA'] = 'Tekstomr&aring;de';
+$TEXT['SELECT_BOX'] = 'Velg Boks';
+$TEXT['CHECKBOX_GROUP'] = 'Valgboks Gruppe';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radioknapp Gruppe';
+$TEXT['SIZE'] = 'St&oslash;rrelse';
+$TEXT['DEFAULT_TEXT'] = 'Standard Tekst';
+$TEXT['SEPERATOR'] = 'Mellomrom';
+$TEXT['BACK'] = 'Tilbake';
+$TEXT['UNDER_CONSTRUCTION'] = 'Under Konstruksjon';
+$TEXT['MULTISELECT'] = 'Flere Valg';
+$TEXT['SHORT_TEXT'] = 'Kort tekst';
+$TEXT['LONG_TEXT'] = 'Lang Tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Hjemmeside Omadressering';
+$TEXT['HEADING'] = 'Overskrift';
+$TEXT['MULTIPLE_MENUS'] = 'Mangfoldige Menyer';
+$TEXT['REGISTERED'] = 'Registrert';
+$TEXT['SECTION_BLOCKS'] = 'Sekjsons Blokker';
+$TEXT['REGISTERED_VIEWERS'] = 'Registrerte Seere';
+$TEXT['ALLOWED_VIEWERS'] = 'Tillatte lesere';
+$TEXT['SUBMISSION_ID'] = 'Avgitt ID';
+$TEXT['SUBMISSIONS'] = 'Avgivelser';
+$TEXT['SUBMITTED'] = 'Avgitt';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Avgivelser Per Time';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Avgivelser Lagret i Database';
+$TEXT['EMAIL_ADDRESS'] = 'Epost Adresse';
+$TEXT['CUSTOM'] = 'Egendefinert';
+$TEXT['ANONYMOUS'] = 'Anonym';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server Operativ System';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-writeable fil tilgang';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix bassert';
+$TEXT['WINDOWS'] = 'WINDOWS';
+$TEXT['HOME_FOLDER'] = 'Hjemmekatalog';
+$TEXT['HOME_FOLDERS'] = 'Hjemmekataloger';
+$TEXT['PAGE_TRASH'] = 'Sides&oslash;ppel';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Seperat';
+$TEXT['DELETED'] = 'Slettet';
+$TEXT['VIEW_DELETED_PAGES'] = 'Vis Slettete Sider';
+$TEXT['EMPTY_TRASH'] = 'T&oslash;m S&oslash;ppel';
+$TEXT['TRASH_EMPTIED'] = 'S&oslash;ppelet er T&oslash;mt';
+$TEXT['ADD_SECTION'] = 'Legg Til Seksjon';
+$TEXT['POST_HEADER'] = 'Legg Til Header';
+$TEXT['POST_FOOTER'] = 'Legg Til Footer';
+$TEXT['POSTS_PER_PAGE'] = 'Innlegg Per Side';
+$TEXT['RESIZE_IMAGE_TO'] = 'Resize Bilde Til';
+$TEXT['UNLIMITED'] = 'Ubegrenset';
+$TEXT['OF'] = 'Av';
+$TEXT['OUT_OF'] = 'Ut av';
+$TEXT['NEXT'] = 'Neste';
+$TEXT['PREVIOUS'] = 'Forrige';
+$TEXT['NEXT_PAGE'] = 'Neste Side';
+$TEXT['PREVIOUS_PAGE'] = 'Forrige Side';
+$TEXT['ON'] = 'P&aring;';
+$TEXT['LAST_UPDATED_BY'] = 'Sist Endret Av';
+$TEXT['RESULTS_FOR'] = 'Resultat For';
+$TEXT['TIME'] = 'Tid';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Stil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server Epost';
+$TEXT['MENU'] = 'Meny';
+$TEXT['MANAGE_GROUPS'] = 'Administrer Grupper';
+$TEXT['MANAGE_USERS'] = 'Administrer Brukere';
+$TEXT['PAGE_LANGUAGES'] = 'Side Spr&aring;k';
+$TEXT['HIDDEN'] = 'Skjult';
+$TEXT['MAIN'] = 'Hoved';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Gi filer nytt navn etter opplastningen';
+$TEXT['APP_NAME'] = 'Applikasjonsnavn';
+$TEXT['SESSION_IDENTIFIER'] = 'Sesjons id-navn';
+$TEXT['BACKUP'] = 'Sikkerhetskopiere';
+$TEXT['RESTORE'] = 'Gjenopprett';
+$TEXT['BACKUP_DATABASE'] = 'Sikkerhetskopiere database';
+$TEXT['RESTORE_DATABASE'] = 'Gjenopprett Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Sikkerhetskoppiere alle tabeller i databasen';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Sikkerhetskoppiere bare WB-specifike tabeller';
+$TEXT['BACKUP_MEDIA'] = 'Sikkerhetskoppi Medie';
+$TEXT['RESTORE_MEDIA'] = 'Gjenopprett Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administrasjonsverkt&oslash;y';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha bekreftelse';
+$TEXT['VERIFICATION'] = 'Bekreftelse';
+$TEXT['DEFAULT_CHARSET'] = 'Standard Charset';
+$TEXT['CHARSET'] = 'Tegnsett';
+$TEXT['MODULE_ORDER'] = 'Modul-rekkef&oslash;lge for s&oslash;king';
+$TEXT['MAX_EXCERPT'] = 'Maksimum antall linjer for utdrag';
+$TEXT['TIME_LIMIT'] = 'Maksimum tid for &aring; samle utrag per modul';
+$TEXT['PUBL_START_DATE'] = 'Start dato';
+$TEXT['PUBL_END_DATE'] = 'Slutt dato';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Slette dato';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Spesifiser en standard "FRA" addresse og "AVSENDER" navn under. Det er annbefalt &aring; bruke en FRA adresse som: <strong>admin@yourdomain.com</strong>. Noen e-post leverand&oslash;rer(f.eks. <em>mail.com</em>) kan muligens avvise e-poster med en FRA: addresse som <em>name@mail.com</em> sendt igjennom en frmmed sent via en fremmed "relay" for &aring; unng&aring; spam.<br /><br />Standard verdiene brukes kun hvis det ikke er spessifisert andre verdier av Website Baker. Hvis serveren din st&oslash;tter <acronym title="Simple mail transfer protocol">SMTP</acronym>, b&oslash;r du muligens benytte denne muligheten for utg&aring;ende e-post.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Standard Fra e-post';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Standard Avsender Navn';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP e-post innstillinger:</strong><br />Innstillingene under er kun p&aring;krevet hvis du vil sende e-post via <acronym title="Simple mail transfer protocol">SMTP</acronym>. Hvis du ikke vet hvem som er din "SMTP" leverand&oslash;r, eller du ikke er sikker p&aring; innstillingene som kreves, b&oslash;r du bruke standard e-post rutinen: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'e-post rutine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP V&aelig;rt';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Autentifisering';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'aktiveres kun hvis din SMTP v&aelig;rt krever autentifisering';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Brukernavn';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Passord';
+$TEXT['PLEASE_LOGIN'] = 'Venligst log p&aring;';
+$TEXT['CAP_EDIT_CSS'] = 'Rediger CSS koden';
+$TEXT['HEADING_CSS_FILE'] = 'Faktisk modul fil: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Rediger  CSS koden i tekst viduet nedenfor.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Beklager, du har ikke adgang til &aring; se denne siden';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Beklager, ikke noe aktivt innhold &aring; vise.';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Mangelfull adgangs rettigheter';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Vennligst skriv brukernavn og passord nedenfor';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Vennligst skriv et brukernavn';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Vennligst skriv et passord';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Angitt brukernavn for kort';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Angitt passord for kort';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Angitt brukernavn for langt';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Angitt passord for langt';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Brukernavn eller passord feil';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Du m&aring; skrive inn en epost adresse';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Vennligst skriv epost adressen nedenfor';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Epost adressen ble ikke funnet i databasen';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Kunne ikke sende passord. Kontakt system administrator';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Brukernavn og passord er sendt i epost';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Passord kan ikke bli tilbakestilt mer enn en gang i timen, beklager';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Velkommen til Website Baker Administrasjon';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Advarsel, installasjonskatalogen eksisterer forsatt!';
+$MESSAGE['START']['CURRENT_USER'] = 'Du er logget inn som:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Kunne ikke &aring;pne konfigurasjons filen';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Kunne ikke skrive til konfigurasjons filen';
+$MESSAGE['SETTINGS']['SAVED'] = 'Lykkes &aring; lagre endringer';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Merk: Ved &aring; klikke denne knappen lagres ikke endringer';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Merk: Dette er kun ment for teste milj&oslash;er';
+
+$MESSAGE['USERS']['ADDED'] = 'Lykkes &aring; lagre ny bruker';
+$MESSAGE['USERS']['SAVED'] = 'Lykkes &aring; lagre bruker';
+$MESSAGE['USERS']['DELETED'] = 'Lykkes &aring; slette bruker';
+$MESSAGE['USERS']['NO_GROUP'] = 'Ingen gruppe ble valgt';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Angitt brukernavn for kort';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Angitt passord for kort';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Passordene er ikke like';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Epost adresse ikke gyldig';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Epost adresse allerede i bruk';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Brukernavn er allerede brukt, finn et annet';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Merk: Kun skriv verdier i feltene ovenfor hvis du vil endre passord til denne brukeren';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Vil du virkelig slette den valgte brukeren?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Lykkes &aring; legge til gruppe';
+$MESSAGE['GROUPS']['SAVED'] = 'Lykkes &aring; lagre gruppe';
+$MESSAGE['GROUPS']['DELETED'] = 'Lykkes &aring; slette gruppe';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Gruppe navn ikke angitt';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Slette valgte gruppe (og dermed ogs&aring; alle tilh&oslash;rende brukere)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Ingen gruppe funnet';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Gruppenavn finnes allerede';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Lykkes &aring; lagre detaljer';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Lykkes &aring; oppdatere epost';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Inntasting av gjeldende passord ikke riktig';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Lykkes &aring; endre passord';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Merk: For &aring; endre malen m&aring; man gj&oslash;re dette i Instillinger seksjonen';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Kan ikke inkludere ../ i katalog navnet';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Katalogen finnes ikke';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Kan ikke ha ../ i katalog m&aring;let';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Kan ikke inkludere ../ i navnet';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Kan ikke bruke index.php som navnet';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Ingen media funnet i gjeldende katalog';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Fant ikke fil';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Lykkes &aring; slette fil';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Lykkes &aring; slette katalog';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Vil du virkelig slette fil eller katalog?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Kan ikke slette valgte fil';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Kan ikke slette valgte katalog';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Du tastet ikke inn et nytt navn';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Du tastet ikke inn en fil utvidelse';
+$MESSAGE['MEDIA']['RENAMED'] = 'Lykkes &aring; endre navn';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Mislykkes &aring; endre navn';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'En fil med samme navn eksisterer';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'En katalog med samme navn eksisterer';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Lykkes &aring; opprette katalog';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Mislykkes &aring; opprette katalog';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' lykkes &aring; laste opp fil';
+$MESSAGE['MEDIA']['UPLOADED'] = ' lykkes &aring; laste opp filer';
+
+$MESSAGE['PAGES']['ADDED'] = 'Lykkes &aring; legge til side';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Lykkes &aring; legge til side overskrift';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'En side med lik eller samme tittel eksisterer';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Feilet &aring; opprette adgang fil i /pages katalog (manglende rettigheter)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Feilet &aring; slette adgang fil i /pages katalog (manglende rettigheter)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Fant ikke side';
+$MESSAGE['PAGES']['SAVED'] = 'Lykkes &aring; lagre side';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Lykkes &aring; lagre side innstillinger';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Kunne ikke lagre side';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Er du sikker p&aring; at du vil slette valgte side (og dermed alle under-sider)?';
+$MESSAGE['PAGES']['DELETED'] = 'Lykkes &aring; slette side';
+$MESSAGE['PAGES']['RESTORED'] = 'Lykkes &aring; gjenopprette side';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Vennligst skriv inn side tittel';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Vennligst skriv inn meny tittel';
+$MESSAGE['PAGES']['REORDERED'] = 'Lykkes &aring; endre side rekkef&oslash;lge';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Feilet &aring; endre rekkef&oslash;lge';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Du har ikke rettigheter til &aring; endre denne siden';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Kunne ikke skrive til fil /pages/intro.php (manglende rettigheter)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Lykkes &aring; lagre intro side';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Sist modifisert av';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Klikk HER for &aring; endre intro siden';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Lykkes &aring; lagre seksjons innstillinger';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Tilbake til sider';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Vennligst g&aring; tilbake og fyll inn alle felter';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Vennligst merk at filen du vil laste opp m&aring; v&aelig;re av f&oslash;lgende format:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Vennligst merk at filen du vil laste opp m&aring; v&aelig;re en av f&oslash;lgende formater:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Kan ikke laste opp fil';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Allerede installert';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Ikke installert';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Kan ikke avinstallere';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Kan ikke pakke ut fil';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Lykkes &aring; installere';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Lykkes &aring; oppdatere';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Lykkes &aring; avinstallere';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kunne ikke skrive til m&aring;l katalogen';
+$MESSAGE['GENERIC']['INVALID'] = 'Filen du lastet opp er ikke gyldig';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kan ikke avinstallere: Valgte fil er i bruk';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Vennligst kom tilbake p&aring; et annet tidspunkt...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Vennligst v&aelig;r t&aring;lmodig, dette kan ta en stund.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Feil ved &aring;pningen av filen.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Du m&aring; skrive inn detaljer for f&oslash;lgende felt';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Beklager, denne form har blitt sendt for mange ganger denne timen. Vennligst pr&oslash;v igjen neste time.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Bekreftelsesnummeret (ogs&aring; kjent som Captcha) som du skrev inn er feil. Hvis du har problemer med &aring; lese Captcha, vennligst kontakt: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Vennligst velg hvilket tillegg du vil oppdatere';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Lykkes i &aring; oppdatere moduler';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Lykkes i &aring; oppdatere maler';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Lykkes i &aring; oppdatere spr&aring;k';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/NO.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/LV.php
===================================================================
--- tags/2.7.0/wb/languages/LV.php	(nonexistent)
+++ tags/2.7.0/wb/languages/LV.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'LV';
+$language_name = 'Latvie&scaron;u';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Kri&scaron;janis Rijnieks';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Sakums';
+$MENU['PAGES'] = 'Lapas';
+$MENU['MEDIA'] = 'Mediji';
+$MENU['ADDONS'] = 'Papildinajumi';
+$MENU['MODULES'] = 'Moduli';
+$MENU['TEMPLATES'] = '&scaron;abloni';
+$MENU['LANGUAGES'] = 'Valodas';
+$MENU['PREFERENCES'] = 'Preferences';
+$MENU['SETTINGS'] = 'Iestatijumi';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Piekluve';
+$MENU['USERS'] = 'Lietotaji';
+$MENU['GROUPS'] = 'Grupas';
+$MENU['HELP'] = 'Palidziba';
+$MENU['VIEW'] = 'Apskatit';
+$MENU['LOGOUT'] = 'Izlogoties';
+$MENU['LOGIN'] = 'Ielogoties';
+$MENU['FORGOT'] = 'Informacija par kontu';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administracijas parskats';
+$OVERVIEW['PAGES'] = 'Mened&#382;et lapas...';
+$OVERVIEW['MEDIA'] = 'Mened&#382;et failus iek&scaron; media mapes...';
+$OVERVIEW['MODULES'] = 'Mened&#382;et Website Baker modulus...';
+$OVERVIEW['TEMPLATES'] = 'Mened&#382;et &scaron;ablonus...';
+$OVERVIEW['LANGUAGES'] = 'Mened&#382;et Website Baker valodas...';
+$OVERVIEW['PREFERENCES'] = 'Mainit preferences - e-pasta adresi, paroli, utt...';
+$OVERVIEW['SETTINGS'] = 'Mainit Website Baker iestatijumus...';
+$OVERVIEW['USERS'] = 'Mened&#382;et lietotajus, kas var ielogties Website Baker sistema...';
+$OVERVIEW['GROUPS'] = 'Mened&#382;et lietotaju grupas un noteikt to atlaujas...';
+$OVERVIEW['HELP'] = 'Jautajumi? Atrodi atbildi...';
+$OVERVIEW['VIEW'] = 'Apskatit majas lapu jauna loga...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Mainit/Izdzest lapu';
+$HEADING['DELETED_PAGES'] = 'Izdzestas lapas';
+$HEADING['ADD_PAGE'] = 'Pievienot lapu';
+$HEADING['ADD_HEADING'] = 'Pievienot virsrakstu';
+$HEADING['MODIFY_PAGE'] = 'Mainit lapu';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Mainit lapas iestatijumus';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Mainit papla&scaron;inatos lapas iestatijumus';
+$HEADING['MANAGE_SECTIONS'] = 'Mened&#382;et sadalas';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Mainit pirmo lapu';
+
+$HEADING['BROWSE_MEDIA'] = 'Parlukot medijus';
+$HEADING['CREATE_FOLDER'] = 'Izveidot mapi';
+$HEADING['UPLOAD_FILES'] = 'Aug&scaron;upieladet datni(-es)';
+
+$HEADING['INSTALL_MODULE'] = 'Instalet moduli';
+$HEADING['UNINSTALL_MODULE'] = 'Atinstalet moduli';
+$HEADING['MODULE_DETAILS'] = 'Informacija par moduli';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Instalet &scaron;ablonu';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Atinstalet &scaron;ablonu';
+$HEADING['TEMPLATE_DETAILS'] = 'Informacija par &scaron;ablonu';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Instalet valodu';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Atinstalet valodu';
+$HEADING['LANGUAGE_DETAILS'] = 'Informacija par valodu';
+
+$HEADING['MY_SETTINGS'] = 'Mani iestatijumi';
+$HEADING['MY_EMAIL'] = 'Mana e-pasta adrese';
+$HEADING['MY_PASSWORD'] = 'Mana parole';
+
+$HEADING['GENERAL_SETTINGS'] = 'Visparigie iestatijumi';
+$HEADING['DEFAULT_SETTINGS'] = 'Noklusetie iestatijumi';
+$HEADING['SEARCH_SETTINGS'] = 'Mekle&scaron;anas iestatijumi';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Datnu sistemas iestatijumi';
+$HEADING['SERVER_SETTINGS'] = 'Servera iestatijumi';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administre&scaron;anas riki';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Mainit/dzest lietotaju';
+$HEADING['ADD_USER'] = 'Pievienot lietotaju';
+$HEADING['MODIFY_USER'] = 'Mainit lietotaju';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Mainit/dzest grupu';
+$HEADING['ADD_GROUP'] = 'Pievienot grupu';
+$HEADING['MODIFY_GROUP'] = 'Mainit grupu';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Pievienot';
+$TEXT['MODIFY'] = 'Mainit';
+$TEXT['SETTINGS'] = 'Iestatijumi';
+$TEXT['DELETE'] = 'Dzest';
+$TEXT['SAVE'] = 'Saglabat';
+$TEXT['RESET'] = 'Parladet';
+$TEXT['LOGIN'] = 'Ielogo&scaron;anas';
+$TEXT['RELOAD'] = 'Parladet';
+$TEXT['CANCEL'] = 'Atcelt';
+$TEXT['NAME'] = 'Nosaukums';
+$TEXT['PLEASE_SELECT'] = 'Izvelies, ludzu';
+$TEXT['TITLE'] = 'Nosaukums';
+$TEXT['PARENT'] = 'Vecaks';
+$TEXT['TYPE'] = 'Tips';
+$TEXT['VISIBILITY'] = 'Redzamiba';
+$TEXT['PRIVATE'] = 'Privats';
+$TEXT['PUBLIC'] = 'Publisks';
+$TEXT['NONE'] = 'Tuk&scaron;s';
+$TEXT['NONE_FOUND'] = 'Nekas netika atrasts';
+$TEXT['CURRENT'] = 'Eso&scaron;ais';
+$TEXT['CHANGE'] = 'Mainit';
+$TEXT['WINDOW'] = 'Logs';
+$TEXT['DESCRIPTION'] = 'Apraksts';
+$TEXT['KEYWORDS'] = 'Atslegvardi';
+$TEXT['ADMINISTRATORS'] = 'Administratori';
+$TEXT['PRIVATE_VIEWERS'] = 'Iek&scaron;ejie verotaji';
+$TEXT['EXPAND'] = 'Atvert';
+$TEXT['COLLAPSE'] = 'Aizvert';
+$TEXT['MOVE_UP'] = 'Bidit aug&scaron;up';
+$TEXT['MOVE_DOWN'] = 'Bidit lejup';
+$TEXT['RENAME'] = 'Parsaukt';
+$TEXT['MODIFY_SETTINGS'] = 'Mainir iestatijumus';
+$TEXT['MODIFY_CONTENT'] = 'Mainit saturu';
+$TEXT['VIEW'] = 'Radit';
+$TEXT['UP'] = 'Uz aug&scaron;u';
+$TEXT['FORGOTTEN_DETAILS'] = 'Kaut ko nevari atcereties?';
+$TEXT['NEED_TO_LOGIN'] = 'Gribi ielogoties?';
+$TEXT['SEND_DETAILS'] = 'Sutit konta datus';
+$TEXT['USERNAME'] = 'Lietotajvards';
+$TEXT['PASSWORD'] = 'Parole';
+$TEXT['HOME'] = 'Galvena lapa';
+$TEXT['TARGET_FOLDER'] = 'Merkmape';
+$TEXT['OVERWRITE_EXISTING'] = 'Parrakstit eso&scaron;as';
+$TEXT['FILE'] = 'Datne';
+$TEXT['FILES'] = 'Datnes';
+$TEXT['FOLDER'] = 'Mape';
+$TEXT['FOLDERS'] = 'Mapes';
+$TEXT['CREATE_FOLDER'] = 'Izveidot mapi';
+$TEXT['UPLOAD_FILES'] = 'Aug&scaron;upieladet failus';
+$TEXT['CURRENT_FOLDER'] = 'Pa&scaron;reizeja mape';
+$TEXT['TO'] = 'Uz';
+$TEXT['FROM'] = 'No';
+$TEXT['INSTALL'] = 'Instalet';
+$TEXT['UNINSTALL'] = 'Atinstalet';
+$TEXT['VIEW_DETAILS'] = 'Radit detalas';
+$TEXT['DISPLAY_NAME'] = 'Vards';
+$TEXT['AUTHOR'] = 'Autors';
+$TEXT['VERSION'] = 'Versija';
+$TEXT['DESIGNED_FOR'] = 'Dizainets priek&scaron;';
+$TEXT['DESCRIPTION'] = 'Apraksts';
+$TEXT['EMAIL'] = 'E-pasta adrese';
+$TEXT['LANGUAGE'] = 'Valoda';
+$TEXT['TIMEZONE'] = 'Laika zona';
+$TEXT['CURRENT_PASSWORD'] = 'Eso&scaron;a parole';
+$TEXT['NEW_PASSWORD'] = 'Jauna parole';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Parole velreiz';
+$TEXT['ACTIVE'] = 'Aktivs';
+$TEXT['DISABLED'] = 'Izslegts';
+$TEXT['ENABLED'] = 'Ieslegts';
+$TEXT['RETYPE_PASSWORD'] = 'Parole velreiz';
+$TEXT['GROUP'] = 'Grupa';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Atlaujas attieciba uz sistemu';
+$TEXT['MODULE_PERMISSIONS'] = 'Atlaujas attieciba uz moduliem';
+$TEXT['SHOW_ADVANCED'] = 'Radit papla&scaron;inatas opcijas';
+$TEXT['HIDE_ADVANCED'] = 'Slept papla&scaron;inatas opcijas';
+$TEXT['BASIC'] = 'Pamata';
+$TEXT['ADVANCED'] = 'Papla&scaron;inats';
+$TEXT['WEBSITE'] = 'Timekla vietne';
+$TEXT['DEFAULT'] = 'Noklusetais';
+$TEXT['KEYWORDS'] = 'Atslegvardi';
+$TEXT['TEXT'] = 'Teksts';
+$TEXT['HEADER'] = 'Galvene';
+$TEXT['FOOTER'] = 'Kajene';
+$TEXT['TEMPLATE'] = '&scaron;ablons';
+$TEXT['INSTALLATION'] = 'Instalacija';
+$TEXT['DATABASE'] = 'Datu baze';
+$TEXT['HOST'] = 'Hosts';
+$TEXT['INTRO'] = 'Ievads';
+$TEXT['PAGE'] = 'Lapa';
+$TEXT['SIGNUP'] = 'Registracija';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Kludu zino&scaron;anas limenis';
+$TEXT['ADMIN'] = 'Admins';
+$TEXT['PATH'] = 'Cel&scaron;';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Ekstensija';
+$TEXT['TABLE_PREFIX'] = 'Tabulas prefikss';
+$TEXT['CHANGES'] = 'Izmainas';
+$TEXT['ADMINISTRATION'] = 'Administracija';
+$TEXT['FORGOT_DETAILS'] = 'Aizmirsi detalas?';
+$TEXT['LOGGED_IN'] = 'Ielogojies';
+$TEXT['WELCOME_BACK'] = 'Ar atgrie&scaron;anos';
+$TEXT['FULL_NAME'] = 'Vards';
+$TEXT['ACCOUNT_SIGNUP'] = 'Registreties';
+$TEXT['LINK'] = 'Links';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Merkis';
+$TEXT['NEW_WINDOW'] = 'Jauns logs';
+$TEXT['SAME_WINDOW'] = 'Tas pats logs';
+$TEXT['TOP_FRAME'] = 'Freims vienu limeni augstak';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Lapu apak&scaron;limenu limits';
+$TEXT['SUCCESS'] = 'Kartibnieks';
+$TEXT['ERROR'] = 'Keza';
+$TEXT['ARE_YOU_SURE'] = 'Esi parliecinats?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Ne';
+$TEXT['SYSTEM_DEFAULT'] = 'Sistemas noklusetais';
+$TEXT['PAGE_TITLE'] = 'Lapas nosaukums';
+$TEXT['MENU_TITLE'] = 'Izvelnes nosaukums';
+$TEXT['ACTIONS'] = 'Darbibas';
+$TEXT['UNKNOWN'] = 'Nezinams';
+$TEXT['BLOCK'] = 'Bloks';
+$TEXT['SEARCH'] = 'Meklet';
+$TEXT['SEARCHING'] = 'Tiek meklets';
+$TEXT['POST'] = 'Pievienot';
+$TEXT['COMMENT'] = 'Komentars';
+$TEXT['COMMENTS'] = 'Komentari';
+$TEXT['COMMENTING'] = 'Tiek komentets';
+$TEXT['SHORT'] = 'Iss';
+$TEXT['LONG'] = 'Gar&scaron;s';
+$TEXT['LOOP'] = 'Cikls';
+$TEXT['FIELD'] = 'Lauks';
+$TEXT['REQUIRED'] = 'Obligats';
+$TEXT['LENGTH'] = 'Garums';
+$TEXT['MESSAGE'] = 'Zina';
+$TEXT['SUBJECT'] = 'Nosaukums';
+$TEXT['MATCH'] = 'Sakritiba';
+$TEXT['ALL_WORDS'] = 'Visi vardi';
+$TEXT['ANY_WORDS'] = 'Jebkuri vardi';
+$TEXT['EXACT_MATCH'] = 'Viens pret vienu';
+$TEXT['SHOW'] = 'Radit';
+$TEXT['HIDE'] = 'Slept';
+$TEXT['START_PUBLISHING'] = 'Sakt publicet';
+$TEXT['FINISH_PUBLISHING'] = 'Beigt publicet';
+$TEXT['DATE'] = 'Datums';
+$TEXT['START'] = 'Sakums';
+$TEXT['END'] = 'Beigas';
+$TEXT['IMAGE'] = 'Attels';
+$TEXT['ICON'] = 'Ikona';
+$TEXT['SECTION'] = 'Sadala';
+$TEXT['DATE_FORMAT'] = 'Datuma formats';
+$TEXT['TIME_FORMAT'] = 'Laika formats';
+$TEXT['RESULTS'] = 'Rezultati';
+$TEXT['RESIZE'] = 'Mainit izmeru';
+$TEXT['MANAGE'] = 'Mened&#382;et';
+$TEXT['CODE'] = 'Kods';
+$TEXT['WIDTH'] = 'Platums';
+$TEXT['HEIGHT'] = 'Augstums';
+$TEXT['MORE'] = 'Vel';
+$TEXT['READ_MORE'] = 'Lasit vel';
+$TEXT['CHANGE_SETTINGS'] = 'Mainit iestatijumus';
+$TEXT['CURRENT_PAGE'] = 'Pa&scaron;reizeja lapa';
+$TEXT['CLOSE'] = 'Aizvert';
+$TEXT['INTRO_PAGE'] = 'Ievada lapa';
+$TEXT['INSTALLATION_URL'] = 'Instalacijas URL';
+$TEXT['INSTALLATION_PATH'] = 'Cel&scaron; uz instalaciju';
+$TEXT['PAGE_EXTENSION'] = 'Lapas papla&scaron;inajums';
+$TEXT['NO_RESULTS'] = 'Rezultatu nav';
+$TEXT['WEBSITE_TITLE'] = 'Tikla vietnes nosaukums';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Tikla vietnes apraksts';
+$TEXT['WEBSITE_KEYWORDS'] = 'Tikla vietnes atslegvardi';
+$TEXT['WEBSITE_HEADER'] = 'Tikla vietnes galvene';
+$TEXT['WEBSITE_FOOTER'] = 'Tikla vietnes kajene';
+$TEXT['RESULTS_HEADER'] = 'Rezultatu galvene';
+$TEXT['RESULTS_LOOP'] = 'Rezultatu cikls';
+$TEXT['RESULTS_FOOTER'] = 'Rezultatu kajene';
+$TEXT['LEVEL'] = 'Limenis';
+$TEXT['NOT_FOUND'] = 'Netika atrasts';
+$TEXT['PAGE_SPACER'] = 'Lapas starplika';
+$TEXT['MATCHING'] = 'Saskan';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Atlaujas attieciba uz &scaron;abloniem';
+$TEXT['PAGES_DIRECTORY'] = 'Lapu mape';
+$TEXT['MEDIA_DIRECTORY'] = 'Mediju mape';
+$TEXT['FILE_MODE'] = 'Datnu re&#382;ims';
+$TEXT['USER'] = 'Lietotajs';
+$TEXT['OTHERS'] = 'Citi';
+$TEXT['READ'] = 'Lasit';
+$TEXT['WRITE'] = 'Rakstit';
+$TEXT['EXECUTE'] = 'Izpildit';
+$TEXT['SMART_LOGIN'] = 'Atjautiga ielogo&scaron;anas';
+$TEXT['REMEMBER_ME'] = 'Atmineties mani';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Datnu sistemas atlaujas';
+$TEXT['DIRECTORIES'] = 'Mapes';
+$TEXT['DIRECTORY_MODE'] = 'Mapju re&#382;ims';
+$TEXT['LIST_OPTIONS'] = 'Listes opcijas';
+$TEXT['OPTION'] = 'Opcija';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Atlaut multiiezime&scaron;anu';
+$TEXT['TEXTFIELD'] = 'Teksta laucin&scaron; (Textfield)';
+$TEXT['TEXTAREA'] = 'Teksta lauks (Textarea)';
+$TEXT['SELECT_BOX'] = 'Select kaste (Select Box)';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox grupa';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio pogu grupa';
+$TEXT['SIZE'] = 'Izmers';
+$TEXT['DEFAULT_TEXT'] = 'Noklusetais teksts';
+$TEXT['SEPERATOR'] = 'Atdalitajs';
+$TEXT['BACK'] = 'Atpakal';
+$TEXT['UNDER_CONSTRUCTION'] = 'Lapa vel nav gatava';
+$TEXT['MULTISELECT'] = 'Multiiezime&scaron;ana';
+$TEXT['SHORT_TEXT'] = 'Iss teksts';
+$TEXT['LONG_TEXT'] = 'Gar&scaron; teksts';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirekcija';
+$TEXT['HEADING'] = 'Virsraksts';
+$TEXT['MULTIPLE_MENUS'] = 'Vairakas izvelnes';
+$TEXT['REGISTERED'] = 'Registrets';
+$TEXT['SECTION_BLOCKS'] = 'Sadalu bloki';
+$TEXT['REGISTERED_VIEWERS'] = 'Registreti lukotaji';
+$TEXT['ALLOWED_VIEWERS'] = 'Atlauti lukotaji';
+$TEXT['SUBMISSION_ID'] = 'Pieteikuma ID';
+$TEXT['SUBMISSIONS'] = 'Pieteikumi';
+$TEXT['SUBMITTED'] = 'Pieteikts';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Pieteikumi stunda';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Pieteikumi tiek glabati datu baze';
+$TEXT['EMAIL_ADDRESS'] = 'E-pasta adrese';
+$TEXT['CUSTOM'] = 'Savs';
+$TEXT['ANONYMOUS'] = 'Anonims';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Servera Operetajsistema';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Datnu permicijas iespejams mainit visiem, kam tas ienak prata';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Galvenas lapas mape';
+$TEXT['HOME_FOLDERS'] = 'Galvenas lapas mapes';
+$TEXT['PAGE_TRASH'] = 'Atkritumu tvertne lapam';
+$TEXT['INLINE'] = 'Ieslegts';
+$TEXT['SEPARATE'] = 'Atsevi&scaron;ki';
+$TEXT['DELETED'] = 'Dzests';
+$TEXT['VIEW_DELETED_PAGES'] = 'Radit izdzestas lapas';
+$TEXT['EMPTY_TRASH'] = 'Iztuk&scaron;ot musaru';
+$TEXT['TRASH_EMPTIED'] = 'Miskaste tira';
+$TEXT['ADD_SECTION'] = 'Pievienot sadalu';
+$TEXT['POST_HEADER'] = 'Puksta galvene';
+$TEXT['POST_FOOTER'] = 'Puksta kajene';
+$TEXT['POSTS_PER_PAGE'] = 'Puksti lapa';
+$TEXT['RESIZE_IMAGE_TO'] = 'Mainit attela izmeru uz';
+$TEXT['UNLIMITED'] = 'Neierobe&#382;ots';
+$TEXT['OF'] = 'No';
+$TEXT['OUT_OF'] = 'Ara no';
+$TEXT['NEXT'] = 'Nakamais';
+$TEXT['PREVIOUS'] = 'Iepriek&scaron;ejais';
+$TEXT['NEXT_PAGE'] = 'Nakama lapa';
+$TEXT['PREVIOUS_PAGE'] = 'Iepriek&scaron;eja lapa';
+$TEXT['ON'] = 'ieslegts';
+$TEXT['LAST_UPDATED_BY'] = 'Pedejo reizi mainits';
+$TEXT['RESULTS_FOR'] = 'Rezultati';
+$TEXT['TIME'] = 'Laiks';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG stils';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG redaktors';
+$TEXT['SERVER_EMAIL'] = 'Servera e-pasta adrese';
+$TEXT['MENU'] = 'Izvelne';
+$TEXT['MANAGE_GROUPS'] = 'Mened&#382;et grupas';
+$TEXT['MANAGE_USERS'] = 'Mened&#382;et lietotajus';
+$TEXT['PAGE_LANGUAGES'] = 'Lapas valodas';
+$TEXT['HIDDEN'] = 'Slepts';
+$TEXT['MAIN'] = 'Galvenais';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Datnes, kuram aug&scaron;upieladejot jamaina nosaukumi';
+$TEXT['APP_NAME'] = 'Programmas nosaukums';
+$TEXT['SESSION_IDENTIFIER'] = 'Sesijas identifikators';
+$TEXT['BACKUP'] = 'Duble&scaron;ana';
+$TEXT['RESTORE'] = 'Atjaunot';
+$TEXT['BACKUP_DATABASE'] = 'Dublet datu bazi';
+$TEXT['RESTORE_DATABASE'] = 'Atjaunot datu bazi';
+$TEXT['BACKUP_ALL_TABLES'] = 'Atjaunot visas tabulas datu baze';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Atjaunot tikai WB raksturigas tabulas';
+$TEXT['BACKUP_MEDIA'] = 'Dublet medijus';
+$TEXT['RESTORE_MEDIA'] = 'Atjaunot medijus';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administracijas riks';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Parbaudes kods';
+$TEXT['VERIFICATION'] = 'Parbaude';
+$TEXT['DEFAULT_CHARSET'] = 'Nokluseta simbolu kopa';
+$TEXT['CHARSET'] = 'Simbolu kopa';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Piedod, bet Tev nav tiesibu aplukot &scaron;o lapu';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Nepietiekams atlauju limenis';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Ludzu ievadi lietotajvardu un paroli zemak redzamajos laukos';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Ludzu ievadi lietotajvardu';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Ludzu ievadi paroli';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Ievaditais lietotajvards par isu';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Ievadita parole par isu';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Ievaditais lietotajvards par garu';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Ievadita parole par garu';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Nepareizs lietotajvards vai parole';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Jaievada e-pasta adrese';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Ludzu ievadi savu e-pasta adresi zemak redzamaja lauka';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Ievadito e-pasta adresi nebija iespejams atrast datu baze';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Lietotajvardu un paroli pa e-pastu nebija iespejams nosutit, ludzu sakontakte sistemas administratoru';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Lietotajvards un parole tika nosutiti uz Tavu e-pasta adresi';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Paroli nav iespejams atkalatjaunot bie&#382;ak ka reizi stunda';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Esi sveicinats Website Baker administracija';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Bridinajums, instalacijas mape vel arvien eksiste!';
+$MESSAGE['START']['CURRENT_USER'] = 'Tu &scaron;obrid esi ielogojies ka:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Nebija iespejams atvert konfiguracijas datni';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Nebija iespejams ierakstit konfiguracijas datne';
+$MESSAGE['SETTINGS']['SAVED'] = 'Iestatijumi tika veiksmigi noglabati';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Ludzu iegaume: spie&#382;ot &scaron;o pogu, visas nesaglabatas izmainas tiks neatgriezeniski dzestas';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Ludzu iegaume: &scaron;is te ir ieteicams vienigi teste&scaron;anas re&#382;ima';
+
+$MESSAGE['USERS']['ADDED'] = 'Lietotajs veiksmigi pievienots';
+$MESSAGE['USERS']['SAVED'] = 'Lietotajs veiksmigi saglabats';
+$MESSAGE['USERS']['DELETED'] = 'Lietotajs veiksmigi izdzests';
+$MESSAGE['USERS']['NO_GROUP'] = 'Netika iezimeta neviena grupa';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Ievaditais lietotajvards bija par isu';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Ievadita parole bija par isu';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Ievaditas paroles nesakrit';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Ievadita e-pasta adrese nav pareiza';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'ievadita e-pasta adrese jau tiek &scaron;eit lietota';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Izveletais lietotajvards ir jau aiznemts';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Ludzu iegaume: Vertibas jaievada augstak redzamajos laukos, ja gribas nomainit &scaron;i lietotaja paroli';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Vai patie&scaron;am gribi izdzest iezimeto lietotaju?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grupa veiksmigi pievienota';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupa veiksmigi saglabata';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupa veiksmigi izdzesta';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Grupas nosaukums ir tuk&scaron;s';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Vai patie&scaron;am gribi izdzest iezimeto grupu (un visus lietotajus taja)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Netika atrasta neviena grupa';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = '&scaron;ads grupas nosaukums jau ir';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detalas tika veiksmigi noglabatas';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-pasta adrese tika veiksmigi atjauninata';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Ievadita (eso&scaron;a) parole nav pareiza';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Parole veiksmigi nomainita';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Ludzu iegaume: lai mainitu &scaron;ablonu, jadotas uz iestatijumu sadalu';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Nevar ieklaut ../ mapes nosaukuma';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Mape neeksiste';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Nav iespejams ieklaut ../ mapes merki (target)';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Nav iespejams ieklaut ../ nosaukuma';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Nedrikst lietot index.php ka nosaukumu';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Mape netika atrasts neviena mediju datne';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Datne netika atrasta';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Datne veiksmigi izdzesta';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Mape izdzesta veikmigi';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Vai esi parliecinats, ka gribi izdzest &scaron;o datni vai mapi?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Nav iespejams izdzest iezimeto datni';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Nav iespejams izdzest iezimeto mapi';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Netika ievadits jauns nosaukums';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Netika ievadits datnes papla&scaron;inajums';
+$MESSAGE['MEDIA']['RENAMED'] = 'Parsauk&scaron;ana veiksmiga';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Parsauk&scaron;ana neveiksmiga';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Datne ar &scaron;adu nosaukumu jau eksiste';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Mape ar &scaron;adu naosaukumu jau eksiste';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Mape veiksmigi izveidota';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Nav iespejams izveidot mapi';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' datne veiksmigi aug&scaron;upieladeta';
+$MESSAGE['MEDIA']['UPLOADED'] = ' datnes tika veiksmigi aug&scaron;upieladetas';
+
+$MESSAGE['PAGES']['ADDED'] = 'Lapa veiksmigi pievienota';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Lapas virsraksts pievienots veiksmigi';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Lapa ar tadu pa&scaron;u vai lidzigu virsrakstu jau eksiste';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Keza radot piekluves datni /pages mape (nepietiekamas privilegijas)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Keza dze&scaron;ot piekluves datni /pages mape';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Lapa netika atrasta';
+$MESSAGE['PAGES']['SAVED'] = 'Lapa saglabata veiksmigi';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Lapas iestatijumi saglabati veiksmigi';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Keza saglabajot lapue';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Vai esi parliecinats, ka velies izdzest iezimeto lapu (un visas tas apak&scaron;lapas)?';
+$MESSAGE['PAGES']['DELETED'] = 'Lapa veiksmigi izdzesta';
+$MESSAGE['PAGES']['RESTORED'] = 'Lapa atjaunota veiksmigi';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Ludzu ievadiet lapas nosaukumu';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Ludzu ievadiet izvelnes nosaukumu';
+$MESSAGE['PAGES']['REORDERED'] = 'Lapa veiksmigi parkartota';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Keza parkartojot lapu';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Tev nav atlaujas &scaron;o lapu mainit';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Nav iespejams ierakstit datne /pages/intro.php (nepietiekamas privilegijas)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Ievada lapa saglabata veiksmigi';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Pedejas izmainas veicis';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Klik&scaron;kini &scaron;eit, lai veiktu izmainas ievada lapa';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Sadalas parametri veiksmigi saglabati';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Atgriezties pie lapam';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Ludzu atgriezies un aizpildi visus laukus';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Ludzu iegaume, ka datnei, ko gribi aug&scaron;upieladet jabut &scaron;aja formata:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Ludzu iegaume, ka failam, ko gribi aug&scaron;upieladet jabu viena no &scaron;iem formatiem:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Nebija iespejams aug&scaron;upieladet datni';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Jau uzinstalets';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Nav instalets';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Nav iespejams atinstalet';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Datni nav iespejams atzipot';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Uzinstalets veiksmigi';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Apgreidots veiksmigi';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Atinstalets veiksmigi';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Nav iespejams ierakstit noraditaja mape';
+$MESSAGE['GENERIC']['INVALID'] = 'Datne, ko nupat aug&scaron;upieladeji, ir invalids';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Nav iespejams atinstalet: iezimetais fails tiek lietots';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Lapa tiek veidota';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Nac driz atkal!';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Esi paceitigs, tas var kadu bridi ievilkties.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Keza atverot datni';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Ievadi detalas sekojo&scaron;ajos laukos';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Atvaino, &scaron;i forma ir tikusi aizpildita parak daudz rei&#382;u &scaron;is stundas laika. Ludzu pamegini velreiz pec stundas.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Ievaditais parbaudes numurs ir nepareizs. Ja radu&scaron;as problemas ar parbaudes koda nolasi&scaron;anu, suti zinu uz: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Ludzu atzime, kurus papildinajumus velies parladet';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduli veiksmigi parladeti';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = '&scaron;abloni veiksmigi parladeti';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Valodas veiksmigi parladetas';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/LV.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/CA.php
===================================================================
--- tags/2.7.0/wb/languages/CA.php	(nonexistent)
+++ tags/2.7.0/wb/languages/CA.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'CA';
+$language_name = 'Catalan';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Carles Escrig (simkin)';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Inici';
+$MENU['PAGES'] = 'P&agrave;gines';
+$MENU['MEDIA'] = 'Fitxers';
+$MENU['ADDONS'] = 'Afegits';
+$MENU['MODULES'] = 'M&ograve;duls';
+$MENU['TEMPLATES'] = 'Plantilles';
+$MENU['LANGUAGES'] = 'Idiomes';
+$MENU['PREFERENCES'] = 'Perfil';
+$MENU['SETTINGS'] = 'Par&agrave;metres';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Acc&eacute;s';
+$MENU['USERS'] = 'Usuaris';
+$MENU['GROUPS'] = 'Grups';
+$MENU['HELP'] = 'Ajuda';
+$MENU['VIEW'] = 'Veure';
+$MENU['LOGOUT'] = 'Eixir';
+$MENU['LOGIN'] = 'Entrar';
+$MENU['FORGOT'] = 'Demanar Dades del Compte';
+
+// Section overviews
+$OVERVIEW['START'] = '&Iacute;ndex d\'Administraci&oacute;';
+$OVERVIEW['PAGES'] = 'Administreu les p&agrave;gines de la vostra web...';
+$OVERVIEW['MEDIA'] = 'Administreu la carpeta de fitxers...';
+$OVERVIEW['MODULES'] = 'Administreu els m&ograve;duls de Website Baker...';
+$OVERVIEW['TEMPLATES'] = 'Canvieu l\'aspecte i estil de la vostra p&agrave;gina amb plantilles...';
+$OVERVIEW['LANGUAGES'] = 'Administreu els idiomes de Website Baker...';
+$OVERVIEW['PREFERENCES'] = 'Canvieu les prefer&egrave;ncies com l\'adre&ccedil;a de correu electr&ograve;nic, contrasenya, etc... ';
+$OVERVIEW['SETTINGS'] = 'Canvieu els par&agrave;metres de Website Baker...';
+$OVERVIEW['USERS'] = 'Administreu els usuaris que poden identificar-se a Website Baker...';
+$OVERVIEW['GROUPS'] = 'Administreu els grups d\'usuaris i els seus permisos de sistema...';
+$OVERVIEW['HELP'] = 'Teniu una pregunta? Trobeu la vostra resposta...';
+$OVERVIEW['VIEW'] = 'Veure i navegar r&agrave;pidament la vostra p&agrave;gina web en una nova finestra...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modifica/Esborra P&agrave;gina';
+$HEADING['DELETED_PAGES'] = 'P&agrave;gines Esborrades';
+$HEADING['ADD_PAGE'] = 'Afegeix P&agrave;gina';
+$HEADING['ADD_HEADING'] = 'Afegeix Encap&ccedil;alament';
+$HEADING['MODIFY_PAGE'] = 'Modifica P&agrave;gina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modifica els Par&agrave;metres de la P&agrave;gina';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modifica els Par&agrave;metres Avan&ccedil;ats de la P&agrave;gina';
+$HEADING['MANAGE_SECTIONS'] = 'Administra les Seccions';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modifica P&agrave;gina Introduct&ograve;ria';
+
+$HEADING['BROWSE_MEDIA'] = 'Explorar Fitxers';
+$HEADING['CREATE_FOLDER'] = 'Crea Carpeta';
+$HEADING['UPLOAD_FILES'] = 'Penja Fitxer(s)';
+
+$HEADING['INSTALL_MODULE'] = 'Instal&middot;la M&ograve;dul';
+$HEADING['UNINSTALL_MODULE'] = 'Desinstal&middot;la M&ograve;dul';
+$HEADING['MODULE_DETAILS'] = 'Detalls del M&ograve;dul';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Instal&middot;la Plantilla';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Desinstal&middot;la Plantilla';
+$HEADING['TEMPLATE_DETAILS'] = 'Detalls de la Plantilla';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Instal&middot;la Idioma';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Desinstal&middot;la Idioma';
+$HEADING['LANGUAGE_DETAILS'] = 'Detalls de l\'Idioma';
+
+$HEADING['MY_SETTINGS'] = 'Els meus Par&agrave;metres';
+$HEADING['MY_EMAIL'] = 'El meu Correu';
+$HEADING['MY_PASSWORD'] = 'La meua Contrasenya';
+
+$HEADING['GENERAL_SETTINGS'] = 'Par&agrave;metres Generals';
+$HEADING['DEFAULT_SETTINGS'] = 'Par&agrave;metres per Defecte';
+$HEADING['SEARCH_SETTINGS'] = 'Par&agrave;metres de Cerca';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Par&agrave;metres del Sistema de Fitxers';
+$HEADING['SERVER_SETTINGS'] = 'Server Settings';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administration Tools';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modifica/Esborra Usuari';
+$HEADING['ADD_USER'] = 'Afegeix Usuari';
+$HEADING['MODIFY_USER'] = 'Modifica Usuari';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modifica/Esborra Grup';
+$HEADING['ADD_GROUP'] = 'Afegeix Grup';
+$HEADING['MODIFY_GROUP'] = 'Modifica Grup';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Afegeix';
+$TEXT['MODIFY'] = 'Modifica';
+$TEXT['SETTINGS'] = 'Par&agrave;metres';
+$TEXT['DELETE'] = 'Esborra';
+$TEXT['SAVE'] = 'Desa';
+$TEXT['RESET'] = 'Reinicia';
+$TEXT['LOGIN'] = 'Identificaci&oacute;';
+$TEXT['RELOAD'] = 'Recarrega';
+$TEXT['CANCEL'] = 'Cancel&middot;la';
+$TEXT['NAME'] = 'Nom';
+$TEXT['PLEASE_SELECT'] = 'Per favor trieu';
+$TEXT['TITLE'] = 'T&iacute;tol';
+$TEXT['PARENT'] = 'Mare';
+$TEXT['TYPE'] = 'Tipus';
+$TEXT['VISIBILITY'] = 'Visibilitat';
+$TEXT['PRIVATE'] = 'Privat';
+$TEXT['PUBLIC'] = 'P&uacute;blic';
+$TEXT['NONE'] = 'Cap';
+$TEXT['NONE_FOUND'] = 'No s\'ha trobat cap';
+$TEXT['CURRENT'] = 'Actual';
+$TEXT['CHANGE'] = 'Canvia';
+$TEXT['WINDOW'] = 'Finestra';
+$TEXT['DESCRIPTION'] = 'Descripci&oacute;';
+$TEXT['KEYWORDS'] = 'Paraules Clau';
+$TEXT['ADMINISTRATORS'] = 'Administradors';
+$TEXT['PRIVATE_VIEWERS'] = 'Visualitzadors Privats';
+$TEXT['EXPAND'] = 'Expandeix';
+$TEXT['COLLAPSE'] = 'Contrau';
+$TEXT['MOVE_UP'] = 'Mou Amunt';
+$TEXT['MOVE_DOWN'] = 'Mou Avall';
+$TEXT['RENAME'] = 'Reanomena';
+$TEXT['MODIFY_SETTINGS'] = 'Modifica Par&agrave;metres';
+$TEXT['MODIFY_CONTENT'] = 'Modifica Contingut';
+$TEXT['VIEW'] = 'Veure';
+$TEXT['UP'] = 'Amunt';
+$TEXT['FORGOTTEN_DETAILS'] = 'Heu oblidat la contrasenya?';
+$TEXT['NEED_TO_LOGIN'] = 'Voleu identificar-vos?';
+$TEXT['SEND_DETAILS'] = 'Envia les Dades';
+$TEXT['USERNAME'] = 'Nom d\'Usuari';
+$TEXT['PASSWORD'] = 'Contrasenya';
+$TEXT['HOME'] = 'Inici';
+$TEXT['TARGET_FOLDER'] = 'Carpeta de dest&iacute;';
+$TEXT['OVERWRITE_EXISTING'] = 'Sobreescriure';
+$TEXT['FILE'] = 'fitxer';
+$TEXT['FILES'] = 'fitxers';
+$TEXT['FOLDER'] = 'carpeta';
+$TEXT['FOLDERS'] = 'carpetes';
+$TEXT['CREATE_FOLDER'] = 'Crea Carpeta';
+$TEXT['UPLOAD_FILES'] = 'Penja Fitxer(s)';
+$TEXT['CURRENT_FOLDER'] = 'Carpeta Actual';
+$TEXT['TO'] = 'a';
+$TEXT['FROM'] = 'des de';
+$TEXT['INSTALL'] = 'Instal&middot;la';
+$TEXT['UNINSTALL'] = 'Desinstal&middot;la';
+$TEXT['VIEW_DETAILS'] = 'Veure Detalls';
+$TEXT['DISPLAY_NAME'] = 'Nom a Mostrar';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Versi&oacute;';
+$TEXT['DESIGNED_FOR'] = 'Dissenyat Per';
+$TEXT['DESCRIPTION'] = 'Descripci&oacute;';
+$TEXT['EMAIL'] = 'Correu';
+$TEXT['LANGUAGE'] = 'Idioma';
+$TEXT['TIMEZONE'] = 'Fus Horari';
+$TEXT['CURRENT_PASSWORD'] = 'Contrasenya Actual';
+$TEXT['NEW_PASSWORD'] = 'Nova Contrasenya';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Nova Contrasenya (de nou)';
+$TEXT['ACTIVE'] = 'Actiu';
+$TEXT['DISABLED'] = 'Inhabilitat';
+$TEXT['ENABLED'] = 'Habilitat';
+$TEXT['RETYPE_PASSWORD'] = 'Contrasenya (de nou)';
+$TEXT['GROUP'] = 'Grup';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Permisos de Sistema';
+$TEXT['MODULE_PERMISSIONS'] = 'Permisos de M&ograve;dul';
+$TEXT['SHOW_ADVANCED'] = 'Mostra Opcions Avan&ccedil;ades';
+$TEXT['HIDE_ADVANCED'] = 'Oculta Opcions Avan&ccedil;ades';
+$TEXT['BASIC'] = 'B&agrave;sic';
+$TEXT['ADVANCED'] = 'Avan&ccedil;at';
+$TEXT['WEBSITE'] = 'P&agrave;gina Web';
+$TEXT['DEFAULT'] = 'Per defecte';
+$TEXT['KEYWORDS'] = 'Paraules Clau';
+$TEXT['TEXT'] = 'Text';
+$TEXT['HEADER'] = 'Cap&ccedil;alera';
+$TEXT['FOOTER'] = 'Peu';
+$TEXT['TEMPLATE'] = 'Plantilla';
+$TEXT['INSTALLATION'] = 'Instal&middot;laci&oacute;';
+$TEXT['DATABASE'] = 'Base de Dades';
+$TEXT['HOST'] = 'Servidor';
+$TEXT['INTRO'] = 'Entrada';
+$TEXT['PAGE'] = 'P&agrave;gina';
+$TEXT['SIGNUP'] = 'Registre';
+$TEXT['PHP_ERROR_LEVEL'] = 'Nivell d\'Informe d\'Error de PHP';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Ruta';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Frontal';
+$TEXT['EXTENSION'] = 'Extensions';
+$TEXT['TABLE_PREFIX'] = 'Prefix de Taula';
+$TEXT['CHANGES'] = 'Canvis';
+$TEXT['ADMINISTRATION'] = 'Administraci&oacute;';
+$TEXT['FORGOT_DETAILS'] = 'Heu oblidat els Detalls?';
+$TEXT['LOGGED_IN'] = 'Identificat';
+$TEXT['WELCOME_BACK'] = 'Benvingut de nou';
+$TEXT['FULL_NAME'] = 'Nom Complet';
+$TEXT['ACCOUNT_SIGNUP'] = 'Registre de Compte';
+$TEXT['LINK'] = 'Enlla&ccedil;';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Dest&iacute;';
+$TEXT['NEW_WINDOW'] = 'Nova Finestra';
+$TEXT['SAME_WINDOW'] = 'La Mateixa Finestra';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'L&iacute;mit de Nivell de P&agrave;gina';
+$TEXT['SUCCESS'] = '&Egrave;xit';
+$TEXT['ERROR'] = 'Error';
+$TEXT['ARE_YOU_SURE'] = 'Esteu segur?';
+$TEXT['YES'] = 'S&iacute;';
+$TEXT['NO'] = 'No';
+$TEXT['SYSTEM_DEFAULT'] = 'Per Defecte del Sistema';
+$TEXT['PAGE_TITLE'] = 'T&iacute;tol de la P&agrave;gina';
+$TEXT['MENU_TITLE'] = 'T&iacute;tol del Men&uacute;';
+$TEXT['ACTIONS'] = 'Accions';
+$TEXT['UNKNOWN'] = 'Desconegut';
+$TEXT['BLOCK'] = 'Bloc';
+$TEXT['SEARCH'] = 'Cerca';
+$TEXT['SEARCHING'] = 'Recerca';
+$TEXT['POST'] = 'Missatge';
+$TEXT['COMMENT'] = 'Comentari';
+$TEXT['COMMENTS'] = 'Comentaris';
+$TEXT['COMMENTING'] = 'Comentaris';
+$TEXT['SHORT'] = 'Curt';
+$TEXT['LONG'] = 'Llarg';
+$TEXT['LOOP'] = 'Repetici&oacute;';
+$TEXT['FIELD'] = 'Camp';
+$TEXT['REQUIRED'] = 'Requerit';
+$TEXT['LENGTH'] = 'Longitud';
+$TEXT['MESSAGE'] = 'Missatge';
+$TEXT['SUBJECT'] = 'Assumpte';
+$TEXT['MATCH'] = 'Coincidir';
+$TEXT['ALL_WORDS'] = 'Totes les Paraules';
+$TEXT['ANY_WORDS'] = 'Qualsevol Paraula';
+$TEXT['EXACT_MATCH'] = 'Coincid&egrave;ncia Exacta';
+$TEXT['SHOW'] = 'Mostra';
+$TEXT['HIDE'] = 'Amaga';
+$TEXT['START_PUBLISHING'] = 'Inici de Publicaci&oacute;';
+$TEXT['FINISH_PUBLISHING'] = 'Fi de Publicaci&oacute;';
+$TEXT['DATE'] = 'Data';
+$TEXT['START'] = 'Inici';
+$TEXT['END'] = 'Fi';
+$TEXT['IMAGE'] = 'Imatge';
+$TEXT['ICON'] = 'Icona';
+$TEXT['SECTION'] = 'Secci&oacute;';
+$TEXT['DATE_FORMAT'] = 'Format de Data';
+$TEXT['TIME_FORMAT'] = 'Format de Temps';
+$TEXT['RESULTS'] = 'Resultats';
+$TEXT['RESIZE'] = 'Redimensiona';
+$TEXT['MANAGE'] = 'Administreu';
+$TEXT['CODE'] = 'Codi';
+$TEXT['WIDTH'] = 'Amplada';
+$TEXT['HEIGHT'] = 'Al&ccedil;ada';
+$TEXT['MORE'] = 'M&eacute;s';
+$TEXT['READ_MORE'] = 'Llegir M&eacute;s';
+$TEXT['CHANGE_SETTINGS'] = 'Canvia Par&agrave;metres';
+$TEXT['CURRENT_PAGE'] = 'P&agrave;gina Actual';
+$TEXT['CLOSE'] = 'Tanca';
+$TEXT['INTRO_PAGE'] = 'P&agrave;gina d\'Entrada';
+$TEXT['INSTALLATION_URL'] = 'URL d\'Instal&middot;laci&oacute;';
+$TEXT['INSTALLATION_PATH'] = 'Ruta d\'Instal&middot;laci&oacute;';
+$TEXT['PAGE_EXTENSION'] = 'Extensi&oacute; de P&agrave;gina';
+$TEXT['NO_RESULTS'] = 'Cap Resultat';
+$TEXT['WEBSITE_TITLE'] = 'T&iacute;tol del Lloc Web';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Descripci&oacute; del Lloc Web';
+$TEXT['WEBSITE_KEYWORDS'] = 'Paraules clau del Lloc Web';
+$TEXT['WEBSITE_HEADER'] = 'Cap&ccedil;alera del Lloc Web';
+$TEXT['WEBSITE_FOOTER'] = 'Peu del Lloc Web';
+$TEXT['RESULTS_HEADER'] = 'Cap&ccedil;alera de Resultats';
+$TEXT['RESULTS_LOOP'] = 'Bucle de Resultats';
+$TEXT['RESULTS_FOOTER'] = 'Peu de Resultats';
+$TEXT['LEVEL'] = 'Nivell';
+$TEXT['NOT_FOUND'] = 'No Trobat';
+$TEXT['PAGE_SPACER'] = 'Separador de P&agrave;gina';
+$TEXT['MATCHING'] = 'Matching';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Permisos de Plantilla';
+$TEXT['PAGES_DIRECTORY'] = 'Directori de P&agrave;gines';
+$TEXT['MEDIA_DIRECTORY'] = 'Directori de Fitxers';
+$TEXT['FILE_MODE'] = 'Mode Fitxer';
+$TEXT['USER'] = 'Usuari';
+$TEXT['OTHERS'] = 'Altres';
+$TEXT['READ'] = 'Lectura';
+$TEXT['WRITE'] = 'Escriptura';
+$TEXT['EXECUTE'] = 'Execuci&oacute;';
+$TEXT['SMART_LOGIN'] = 'Identificaci&oacute; R&agrave;pida';
+$TEXT['REMEMBER_ME'] = 'Recorda les meues dades';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Permisos del Sistema de Fitxers';
+$TEXT['DIRECTORIES'] = 'Directoris';
+$TEXT['DIRECTORY_MODE'] = 'Mode Directori';
+$TEXT['LIST_OPTIONS'] = 'Llista Opcions';
+$TEXT['OPTION'] = 'Opci&oacute;';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Permetre Diverses Seleccions';
+$TEXT['TEXTFIELD'] = 'Camp de text';
+$TEXT['TEXTAREA'] = '&Agrave;rea de text';
+$TEXT['SELECT_BOX'] = 'Quadre de Selecci&oacute;';
+$TEXT['CHECKBOX_GROUP'] = 'Grup de quadres de verificaci&oacute;';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Grup de Botons';
+$TEXT['SIZE'] = 'Mida';
+$TEXT['DEFAULT_TEXT'] = 'Text per defecte';
+$TEXT['SEPERATOR'] = 'Separador';
+$TEXT['BACK'] = 'Arrere';
+$TEXT['UNDER_CONSTRUCTION'] = 'En Construcci&oacute;';
+$TEXT['MULTISELECT'] = 'Multi-selecci&oacute;';
+$TEXT['SHORT_TEXT'] = 'Text Curt';
+$TEXT['LONG_TEXT'] = 'Text Llarg';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirecci&oacute; de P&agrave;gina Inicial';
+$TEXT['HEADING'] = 'Encap&ccedil;alament';
+$TEXT['MULTIPLE_MENUS'] = 'Diversos Men&uacute;s';
+$TEXT['REGISTERED'] = 'Registrat';
+$TEXT['SECTION_BLOCKS'] = 'Blocs de la Secci&oacute;';
+$TEXT['REGISTERED_VIEWERS'] = 'Visualitzadors Registrats';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'ID de Tramesa';
+$TEXT['SUBMISSIONS'] = 'Trameses';
+$TEXT['SUBMITTED'] = 'Tram&eacute;s';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Trameses M&agrave;x. Per Hora';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Trameses Emmagatzemades a la Base de Dades';
+$TEXT['EMAIL_ADDRESS'] = 'Adre&ccedil;a de Correu';
+$TEXT['CUSTOM'] = 'Personalitzat';
+$TEXT['ANONYMOUS'] = 'An&ograve;nim';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Sistema Operatiu del Servidor';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Permisos d\'escriptura de fitxer per a tothom';
+$TEXT['LINUX_UNIX_BASED'] = 'Basat en Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Carpeta de l\'usuari';
+$TEXT['HOME_FOLDERS'] = 'Carpetes dels usuaris';
+$TEXT['PAGE_TRASH'] = 'Paperera';
+$TEXT['INLINE'] = 'Inserida';
+$TEXT['SEPARATE'] = 'Separada';
+$TEXT['DELETED'] = 'Esborrat';
+$TEXT['VIEW_DELETED_PAGES'] = 'Mostra P&agrave;gines Esborrades';
+$TEXT['EMPTY_TRASH'] = 'Buida la Paperera';
+$TEXT['TRASH_EMPTIED'] = 'Paperera Buidada';
+$TEXT['ADD_SECTION'] = 'Afegeix Secci&oacute;';
+$TEXT['POST_HEADER'] = 'Post Header';
+$TEXT['POST_FOOTER'] = 'Post Footer';
+$TEXT['POSTS_PER_PAGE'] = 'Posts Per Page';
+$TEXT['RESIZE_IMAGE_TO'] = 'Redimensiona Imatge A';
+$TEXT['UNLIMITED'] = 'Il&middot;limitat';
+$TEXT['OF'] = 'De';
+$TEXT['OUT_OF'] = 'Fora De';
+$TEXT['NEXT'] = 'Seg&uuml;ent';
+$TEXT['PREVIOUS'] = 'Anterior';
+$TEXT['NEXT_PAGE'] = 'P&agrave;gina Seg&uuml;ent';
+$TEXT['PREVIOUS_PAGE'] = 'P&agrave;gina Anterior';
+$TEXT['ON'] = 'A';
+$TEXT['LAST_UPDATED_BY'] = '&Uacute;ltima Actualitzaci&oacute; Per';
+$TEXT['RESULTS_FOR'] = 'Resultats De';
+$TEXT['TIME'] = 'Temps';
+$TEXT['WYSIWYG_STYLE'] = 'Estil WYSIWYG';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Correu del Servidor';
+$TEXT['MENU'] = 'Men&uacute;';
+$TEXT['MANAGE_GROUPS'] = 'Administra els Grups';
+$TEXT['MANAGE_USERS'] = 'Administra els Usuaris';
+$TEXT['PAGE_LANGUAGES'] = 'Idiomes de la p&agrave;gina';
+$TEXT['HIDDEN'] = 'Amagat';
+$TEXT['MAIN'] = 'Principal';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Rename Files On Upload';
+$TEXT['APP_NAME'] = 'Application Name';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restore';
+$TEXT['BACKUP_DATABASE'] = 'Backup Database';
+$TEXT['RESTORE_DATABASE'] = 'Restore Database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Backup Media';
+$TEXT['RESTORE_MEDIA'] = 'Restore Media';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administration tool';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Verification';
+$TEXT['VERIFICATION'] = 'Verification';
+$TEXT['DEFAULT_CHARSET'] = 'Default Charset';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Ho sentim, no teniu permisos per a veure aquesta p&agrave;gina';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'No teniu privilegis suficients per estar ac&iacute;';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Per favor introdu&iuml;u el vostre nom d\'usuari i contrasenya a baix';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Per favor introdu&iuml;u un nom d\'usuari';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Per favor introdu&iuml;u una contrasenya';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'El nom d\'usuari &eacute;s massa curt';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'La contrasenya &eacute;s massa curta';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'El nom d\'usuari &eacute;s massa llarg';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'La contrasenya &eacute;s massa llarga';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Nom d\'usuari o contrasenya incorrectes';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Heu d\'Introduir una adre&ccedil;a de correu';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Per favor introdu&iuml;u la vostra adre&ccedil;a de correu a baix';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'El correu que heu introdu&iuml;t no s\'ha trobat a la base de dades';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'No ha estat possible enviar la contrasenya, per favor contacteu amb l\'administrador del sistema';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'El nom d\'usuari i contrasenya han estat enviats a la vostra adre&ccedil;a de correu';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'La contrasenya no es pot reiniciar m&eacute;s d\'un cop per hora, disculpeu';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Benvingut/da al Panell de Control de Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Atenci&oacute;, el Directori d\'Instal&middot;laci&oacute; Encara Existeix!';
+$MESSAGE['START']['CURRENT_USER'] = 'Actualment esteu identificat com a:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'No ha estat possible obrir el fitxer de configuraci&oacute;';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'No es pot escriure al fitxer de configuraci&oacute;';
+$MESSAGE['SETTINGS']['SAVED'] = 'Par&agrave;metres desats amb &egrave;xit';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Av&iacute;s: Pr&eacute;mer aquest bot&oacute; reinicia tots els canvis no desats';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Av&iacute;s: a&ccedil;&ograve; nom&eacute;s &eacute;s recomana per a entorns de proves';
+
+$MESSAGE['USERS']['ADDED'] = 'Usuari afegit amb &egrave;xit';
+$MESSAGE['USERS']['SAVED'] = 'Usuari desat amb &egrave;xit';
+$MESSAGE['USERS']['DELETED'] = 'Usuari esborrat amb &egrave;xit';
+$MESSAGE['USERS']['NO_GROUP'] = 'No s\'ha seleccionat cap grup';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'El nom d\'usuari introdu&iuml;t &eacute;s massa curt';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'La contrasenya introdu&iuml;da &eacute;s massa curta';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'La contrasenya introdu&iuml;da no coincideix';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'L\'adre&ccedil;a de correu introdu&iuml;da &eacute;s inv&agrave;lida';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'L\'adre&ccedil;a de correu que heu introdu&iuml;t ja est&agrave; en &uacute;s';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'El nom d\'usuari introdu&iuml;t ja est&agrave; en &uacute;s';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Av&iacute;s: Nom&eacute;s haur&iacute;eu d\'introduir valors als camps superiors si voleu canviar aquestes contrasenyes d\'usuari';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Esteu segur de voler esborrar l\'usuari seleccionat?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grup afegit amb &egrave;xit';
+$MESSAGE['GROUPS']['SAVED'] = 'Grup desat amb &egrave;xit';
+$MESSAGE['GROUPS']['DELETED'] = 'Grup esborrat amb &egrave;xit';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'El nom del grup &eacute;s buit';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Esteu segur de voler esborrar el grup seleccionat (i qualsevol usuari que pertanyi a aquest)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'No s\'han trobat grups';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Group name already exists';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Dades desades amb &egrave;xit';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Correu actualitzat amb &egrave;xit';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'La contrasenya (actual) que heu introdu&iuml;t &eacute;s incorrecta';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Contrasenya canviada amb &egrave;xit';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Av&iacute;s: per a canviar la plantilla heu d\'anar a la secci&oacute; Par&agrave;metres';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'No es pot incloure ../ al nom de la carpeta';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Directory does not exist';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'No es pot tenir ../ a la carpeta de dest&iacute;';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'No es pot incloure ../ al nom';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'No es pot usar index.php com a nom';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'No s\'han trobat fitxers a la carpeta actual';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Fitxer no trobat';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Fitxer esborrat amb &egrave;xit';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Carpeta esborrada amb &egrave;xit';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Esteu segur que voleu esborrar el seg&uuml;ent fitxer o carpeta?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'No es pot esborrar el fitxer seleccionat';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'No es pot esborrar la carpeta seleccionada';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'No heu introdu&iuml;t un nou nom';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'No heu introdu&iuml;t una extensi&oacute; de fitxer';
+$MESSAGE['MEDIA']['RENAMED'] = 'S\'ha canviat el nom amb &egrave;xit';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'No s\'ha pogut canviar el nom';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Ja existeix un fitxer amb el nom que heu introdu&iuml;t';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Ja existeix una carpeta amb el nom que heu introdu&iuml;t';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Carpeta creada amb &egrave;xit';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'No s\'ha pogut crear la carpeta';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' fitxer s\'ha penjat amb &egrave;xit';
+$MESSAGE['MEDIA']['UPLOADED'] = ' fitxers han estat penjats amb &egrave;xit';
+
+$MESSAGE['PAGES']['ADDED'] = 'P&agrave;gina afegida amb &egrave;xit';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Cap&ccedil;alera de p&agrave;gina afegida amb &egrave;xit';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Existeix una p&agrave;gina amb el mateix t&iacute;tol o similar';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Error creant el fitxer d\'acc&eacute;s al directori /pages (privilegis insuficients)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Error esborrant el fitxer d\'acc&eacute;s al directori /pages (privilegis insuficients)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'No s\'ha trobat la p&agrave;gina';
+$MESSAGE['PAGES']['SAVED'] = 'P&agrave;gina desada amb &egrave;xit';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Par&agrave;metres de p&agrave;gina desats amb &egrave;xit';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Error desant la p&agrave;gina';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Esteu segur de voler esborrar la p&agrave;gina seleccionada';
+$MESSAGE['PAGES']['DELETED'] = 'P&agrave;gina esborrada amb &egrave;xit';
+$MESSAGE['PAGES']['RESTORED'] = 'P&agrave;gina restaurada amb &egrave;xit';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Per favor introdu&iuml;u un t&iacute;tol de p&agrave;gina';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Per favor introdu&iuml;u un t&iacute;tol per al men&uacute;';
+$MESSAGE['PAGES']['REORDERED'] = 'P&agrave;gina re-ordenada amb &egrave;xit';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Error re-ordenant p&agrave;gina';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'No teniu permisos per a modificar aquesta p&agrave;gina';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'No s\'ha pogut escriure al fitxer /pages/intro.php (privilegis insuficients)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'P&agrave;gina d\'entrada desada amb &egrave;xit';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = '&Uacute;ltima modificaci&oacute; per';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Premeu AC&Iacute; per a modificar la p&agrave;gina d\'entrada';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Propietats de la secci&oacute; desades amb &egrave;xit';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Torna a les p&agrave;gines';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Per favor torneu arrere i completeu tots els camps';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Per favor recordeu que el fitxer que pengeu ha d\'estar en un dels seg&uuml;ents formats:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Per favor recordeu que els fitxers que pengeu han d\'estar en un dels seg&uuml;ents formats:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'No s\'ha pogut penjar el fitxer';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Ja est&agrave; instal&middot;lat';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'No est&agrave; instal&middot;lat';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'No s\'ha pogut desinstal&middot;lar';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'No s\'ha pogut descomprimir el fitxer';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Instal&middot;lat amb &egrave;xit';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Upgraded successfully';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Desinstal&middot;lat amb &egrave;xit';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'No s\'ha pogut escriure al directori de dest&iacute;';
+$MESSAGE['GENERIC']['INVALID'] = 'El fitxer que heu penjat no &eacute;s v&agrave;lid';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'No s\'ha pogut desinstal&middot;lar: s\'est&agrave; usant el fitxer seleccionat';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Lloc Web en Construcci&oacute;';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Per favor torneu-ho a intentar prompte...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Please be patient, this might take a while.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Error opening file.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Heu d\'introduir les dades per als seg&uuml;ents camps';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Ho sentim, aquest formulari ha estat enviat massa vegades durant l\'&uacute;ltima hora. Per favor torneu-ho a intentar d\'ac&iacute; una hora.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'The verification number (also known as Captcha) that you entered is incorrect. If you are having problems reading the Captcha, please email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/CA.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/PT.php
===================================================================
--- tags/2.7.0/wb/languages/PT.php	(nonexistent)
+++ tags/2.7.0/wb/languages/PT.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'PT';
+$language_name = 'Portuguese (Brazil)';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Daniel Neto';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'In&iacute;cio';
+$MENU['PAGES'] = 'P&aacute;ginas';
+$MENU['MEDIA'] = 'M&iacute;dia';
+$MENU['ADDONS'] = 'Add-ons';
+$MENU['MODULES'] = 'M&oacute;dulos';
+$MENU['TEMPLATES'] = 'Temas (Templates)';
+$MENU['LANGUAGES'] = 'Idiomas';
+$MENU['PREFERENCES'] = 'Prefer&ecirc;ncias';
+$MENU['SETTINGS'] = 'Configura&ccdil;&otilde;es';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Acessos';
+$MENU['USERS'] = 'Usu&aacute;rios';
+$MENU['GROUPS'] = 'Grupos';
+$MENU['HELP'] = 'Ajuda';
+$MENU['VIEW'] = 'Visualizar';
+$MENU['LOGOUT'] = 'Log-out';
+$MENU['LOGIN'] = 'Login';
+$MENU['FORGOT'] = 'Receber Detalhes do Login';
+
+// Section overviews
+$OVERVIEW['START'] = 'Vis&atilde;o Geral da Administra&ccdil;&atilde;o';
+$OVERVIEW['PAGES'] = 'Gerencie as P&aacute;ginas do seu site...';
+$OVERVIEW['MEDIA'] = 'Gerencie os arquivos armazenados na pasta Media...';
+$OVERVIEW['MODULES'] = 'Gerencie os M&oacute;dulos do Website Baker...';
+$OVERVIEW['TEMPLATES'] = 'Altere a apar&ecirc;ncia do seu site com temas(templates)...';
+$OVERVIEW['LANGUAGES'] = 'Gerencie os idiomas do seu website...';
+$OVERVIEW['PREFERENCES'] = 'Altere suas prefer&ecirc;ncias como email, senha, etc... ';
+$OVERVIEW['SETTINGS'] = 'Altere as configura&ccdil;&otilde;es do Website Baker...';
+$OVERVIEW['USERS'] = 'Gerencie os usu&aacute;rios que podem logar no Website Baker...';
+$OVERVIEW['GROUPS'] = 'Gerencie os grupos de usu&aacute;rios e suas permiss&otilde;es de sistema...';
+$OVERVIEW['HELP'] = 'D&uacute;vidas? Encontre respostas...';
+$OVERVIEW['VIEW'] = 'Visualize e navegue em seu website atrav&eacute;s de uma nova janela...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Modificar/Apagar P&aacute;gina';
+$HEADING['DELETED_PAGES'] = 'P&aacute;ginas apagadas';
+$HEADING['ADD_PAGE'] = 'Adicionar P&aacute;gina';
+$HEADING['ADD_HEADING'] = 'Adicionar Cabe&ccdil;alho';
+$HEADING['MODIFY_PAGE'] = 'Modificar P&aacute;gina';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Modificar Configura&ccdil;&otilde;es da P&aacute;gina';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Modificar Configura&ccdil;&otilde;es Avan&ccdil;adas da P&aacute;gina';
+$HEADING['MANAGE_SECTIONS'] = 'Gerenciar Sess&otilde;es';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Modificar P&aacute;gina de Introdu&ccdil;&atilde;o';
+
+$HEADING['BROWSE_MEDIA'] = 'Navegar pela M&iacute;dia';
+$HEADING['CREATE_FOLDER'] = 'Criar Pasta';
+$HEADING['UPLOAD_FILES'] = 'Enviar Arquivo(s)';
+
+$HEADING['INSTALL_MODULE'] = 'Instalar M&oacute;dulo';
+$HEADING['UNINSTALL_MODULE'] = 'Desinstalar M&oacute;dulo';
+$HEADING['MODULE_DETAILS'] = 'Detalhes do M&oacute;dulo';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Instalar Tema (Template)';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Desinstalar Tema (Template)';
+$HEADING['TEMPLATE_DETAILS'] = 'Detalhes do Tema (Template)';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Instalar Idioma';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Desinstalar Idioma';
+$HEADING['LANGUAGE_DETAILS'] = 'Detalhes do Idioma';
+
+$HEADING['MY_SETTINGS'] = 'Minhas Configura&ccdil;&otilde;es';
+$HEADING['MY_EMAIL'] = 'Meu Email';
+$HEADING['MY_PASSWORD'] = 'Minha Senha';
+
+$HEADING['GENERAL_SETTINGS'] = 'Configura&ccdil;&otilde;es Gerais';
+$HEADING['DEFAULT_SETTINGS'] = 'Configura&ccdil;&otilde;es Padr&atilde;o';
+$HEADING['SEARCH_SETTINGS'] = 'Configura&ccdil;&otilde;es de Busca';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Configura&ccdil;&otilde;es de Sistema de Arquivos';
+$HEADING['SERVER_SETTINGS'] = 'Configura&ccdil;&otilde;es do Servidor';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Ferramentas de Administra&ccdil;&atilde;o';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Modificar/Apagar Usu&aacute;rio';
+$HEADING['ADD_USER'] = 'Adicionar Usu&aacute;rio';
+$HEADING['MODIFY_USER'] = 'Modificar Usu&aacute;rio';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Modificar/Apagar Grupo';
+$HEADING['ADD_GROUP'] = 'Adicionar Grupo';
+$HEADING['MODIFY_GROUP'] = 'Modificar Grupo';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Adicionar';
+$TEXT['MODIFY'] = 'Modificar';
+$TEXT['SETTINGS'] = 'Configura&ccdil;&otilde;es';
+$TEXT['DELETE'] = 'Apagar';
+$TEXT['SAVE'] = 'Salvar';
+$TEXT['RESET'] = 'Redefinir';
+$TEXT['LOGIN'] = 'Login';
+$TEXT['RELOAD'] = 'Recarregar';
+$TEXT['CANCEL'] = 'Cancelar';
+$TEXT['NAME'] = 'Nome';
+$TEXT['PLEASE_SELECT'] = 'Por Favor escolha';
+$TEXT['TITLE'] = 'T&iacute;tulo';
+$TEXT['PARENT'] = 'Parent';
+$TEXT['TYPE'] = 'Tipo';
+$TEXT['VISIBILITY'] = 'Visibilidade';
+$TEXT['PRIVATE'] = 'Privado';
+$TEXT['PUBLIC'] = 'P&uacute;blico';
+$TEXT['NONE'] = 'Nenhum';
+$TEXT['NONE_FOUND'] = 'Nada Encontrado';
+$TEXT['CURRENT'] = 'Atual';
+$TEXT['CHANGE'] = 'Alterar';
+$TEXT['WINDOW'] = 'Window';
+$TEXT['DESCRIPTION'] = 'Descri&ccdil;&atilde;o';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['ADMINISTRATORS'] = 'Administrators';
+$TEXT['PRIVATE_VIEWERS'] = 'Private Viewers';
+$TEXT['EXPAND'] = 'Expand';
+$TEXT['COLLAPSE'] = 'Collapse';
+$TEXT['MOVE_UP'] = 'Mover para Cima';
+$TEXT['MOVE_DOWN'] = 'Mover para Baixo';
+$TEXT['RENAME'] = 'Renomear';
+$TEXT['MODIFY_SETTINGS'] = 'Modificar Configura&ccdil;&otilde;es';
+$TEXT['MODIFY_CONTENT'] = 'Modificar Conte&uacute;do';
+$TEXT['VIEW'] = 'Ver';
+$TEXT['UP'] = 'Cima';
+$TEXT['FORGOTTEN_DETAILS'] = 'Esqueceu suas credenciais?';
+$TEXT['NEED_TO_LOGIN'] = 'Precisar fazer log-in?';
+$TEXT['SEND_DETAILS'] = 'Enviar credenciais';
+$TEXT['USERNAME'] = 'Usu&aacute;rio';
+$TEXT['PASSWORD'] = 'Senha';
+$TEXT['HOME'] = 'Home';
+$TEXT['TARGET_FOLDER'] = 'Pasta Alvo';
+$TEXT['OVERWRITE_EXISTING'] = 'Substituir Existente';
+$TEXT['FILE'] = 'Arquivo';
+$TEXT['FILES'] = 'Arquivos';
+$TEXT['FOLDER'] = 'Pasta';
+$TEXT['FOLDERS'] = 'Pastas';
+$TEXT['CREATE_FOLDER'] = 'Criar Pasta';
+$TEXT['UPLOAD_FILES'] = 'Enviar Arquivo(s)';
+$TEXT['CURRENT_FOLDER'] = 'Pasta Atual';
+$TEXT['TO'] = 'Para';
+$TEXT['FROM'] = 'De';
+$TEXT['INSTALL'] = 'Instalar';
+$TEXT['UNINSTALL'] = 'Desinstalar';
+$TEXT['VIEW_DETAILS'] = 'Ver Detalhes';
+$TEXT['DISPLAY_NAME'] = 'Nome de Exibi&ccdil;&atilde;o';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Vers&atilde;o';
+$TEXT['DESIGNED_FOR'] = 'Designado para';
+$TEXT['DESCRIPTION'] = 'Descri&ccdil;&atilde;o';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Idioma';
+$TEXT['TIMEZONE'] = 'Fuso Hor&aacute;rio';
+$TEXT['CURRENT_PASSWORD'] = 'Senha Atual';
+$TEXT['NEW_PASSWORD'] = 'Nova Senha';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Confirme a Nova Senha';
+$TEXT['ACTIVE'] = 'Ativo';
+$TEXT['DISABLED'] = 'Desabilitado';
+$TEXT['ENABLED'] = 'Habilitado';
+$TEXT['RETYPE_PASSWORD'] = 'Confirme a Senha';
+$TEXT['GROUP'] = 'Grupo';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Permiss&otilde;es de Sistema';
+$TEXT['MODULE_PERMISSIONS'] = 'Permiss&otilde;es de M&oacute;dulo';
+$TEXT['SHOW_ADVANCED'] = 'Exibir Op&ccdil;&otilde;es Avan&ccdil;adas';
+$TEXT['HIDE_ADVANCED'] = 'Ocultar Op&ccdil;&otilde;es Avan&ccdil;adas';
+$TEXT['BASIC'] = 'B&aacute;sico';
+$TEXT['ADVANCED'] = 'Avan&ccdil;ado';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Padr&atilde;o';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['TEXT'] = 'Texto';
+$TEXT['HEADER'] = 'Cabe&ccdil;alho';
+$TEXT['FOOTER'] = 'Rodap&eacute;';
+$TEXT['TEMPLATE'] = 'Tema (Template)';
+$TEXT['INSTALLATION'] = 'Instala&ccdil;&atilde;o';
+$TEXT['DATABASE'] = 'Banco de Dados';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Introdu&ccdil;&atilde;o';
+$TEXT['PAGE'] = 'P&aacute;gina';
+$TEXT['SIGNUP'] = 'Inscrever';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Error Reporting Level';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Caminho';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = 'Extens&atilde;o';
+$TEXT['TABLE_PREFIX'] = 'Prefixo da Tabela';
+$TEXT['CHANGES'] = 'Altera&ccdil;&otilde;es';
+$TEXT['ADMINISTRATION'] = 'Administra&ccdil;&atilde;o';
+$TEXT['FORGOT_DETAILS'] = 'Esqueceu as credenciais?';
+$TEXT['LOGGED_IN'] = 'Logado';
+$TEXT['WELCOME_BACK'] = 'Bem-Vindo';
+$TEXT['FULL_NAME'] = 'Nome Completo';
+$TEXT['ACCOUNT_SIGNUP'] = 'Assinatura de Conta';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Target';
+$TEXT['NEW_WINDOW'] = 'New Window';
+$TEXT['SAME_WINDOW'] = 'Same Window';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limite de N&iacute;veis de P&aacute;gina';
+$TEXT['SUCCESS'] = 'Sucesso';
+$TEXT['ERROR'] = 'Erro';
+$TEXT['ARE_YOU_SURE'] = 'Voc&ecirc; tem certeza?';
+$TEXT['YES'] = 'Sim';
+$TEXT['NO'] = 'N&atilde;o';
+$TEXT['SYSTEM_DEFAULT'] = 'Padr&atilde;o do Sistema';
+$TEXT['PAGE_TITLE'] = 'T&iacute;tulo da P&aacute;gina';
+$TEXT['MENU_TITLE'] = 'T&iacute;tulo do Menu';
+$TEXT['ACTIONS'] = 'A&ccdil;&otilde;es';
+$TEXT['UNKNOWN'] = 'Desconhecido';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'Busca';
+$TEXT['SEARCHING'] = 'Buscando';
+$TEXT['POST'] = 'Post';
+$TEXT['COMMENT'] = 'Coment&aacute;rio';
+$TEXT['COMMENTS'] = 'Coment&aacute;rios';
+$TEXT['COMMENTING'] = 'Coment&aacute;rios';
+$TEXT['SHORT'] = 'Curto';
+$TEXT['LONG'] = 'Longo';
+$TEXT['LOOP'] = 'La&ccdil;o de Repeti&ccdil;&atilde;o';
+$TEXT['FIELD'] = 'Campo';
+$TEXT['REQUIRED'] = 'Requerido';
+$TEXT['LENGTH'] = 'Tamanho';
+$TEXT['MESSAGE'] = 'Mensagem';
+$TEXT['SUBJECT'] = 'Assunto';
+$TEXT['MATCH'] = 'Possua';
+$TEXT['ALL_WORDS'] = 'Todas as Palavras';
+$TEXT['ANY_WORDS'] = 'Qualquer Palavra';
+$TEXT['EXACT_MATCH'] = 'Express&atilde;o Exata';
+$TEXT['SHOW'] = 'Exibir';
+$TEXT['HIDE'] = 'Ocultar';
+$TEXT['START_PUBLISHING'] = 'Start Publishing';
+$TEXT['FINISH_PUBLISHING'] = 'Finish Publishing';
+$TEXT['DATE'] = 'Data';
+$TEXT['START'] = 'In&iacute;cio';
+$TEXT['END'] = 'Fim';
+$TEXT['IMAGE'] = 'Imagem';
+$TEXT['ICON'] = '&Iacute;cone';
+$TEXT['SECTION'] = 'Sess&atilde;o';
+$TEXT['DATE_FORMAT'] = 'Formato de Data';
+$TEXT['TIME_FORMAT'] = 'Formato de Hora';
+$TEXT['RESULTS'] = 'Resultados';
+$TEXT['RESIZE'] = 'Redimentsionar';
+$TEXT['MANAGE'] = 'Gerenciar';
+$TEXT['CODE'] = 'C&oacute;digo';
+$TEXT['WIDTH'] = 'Altura';
+$TEXT['HEIGHT'] = 'Largura';
+$TEXT['MORE'] = 'Mais';
+$TEXT['READ_MORE'] = 'Leia Mais';
+$TEXT['CHANGE_SETTINGS'] = 'Alterar Configura&ccdil;&otilde;es';
+$TEXT['CURRENT_PAGE'] = 'P&aacute;gina Atual';
+$TEXT['CLOSE'] = 'Fechar';
+$TEXT['INTRO_PAGE'] = 'P&aacute;gina de Introdu&ccdil;&atilde;o';
+$TEXT['INSTALLATION_URL'] = 'URL de Instala&ccdil;&atilde;o';
+$TEXT['INSTALLATION_PATH'] = 'Caminho de Instala&ccdil;&atilde;o';
+$TEXT['PAGE_EXTENSION'] = 'Extens&atilde;o da P&aacute;gina';
+$TEXT['NO_RESULTS'] = 'Sem Resultados';
+$TEXT['WEBSITE_TITLE'] = 'T&iacute;tulo do Website';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Descri&ccdil;&atilde;o do Website';
+$TEXT['WEBSITE_KEYWORDS'] = 'Website Keywords';
+$TEXT['WEBSITE_HEADER'] = 'Cabe&ccdil;alho do Website';
+$TEXT['WEBSITE_FOOTER'] = 'Rodap&eacute; do Website';
+$TEXT['RESULTS_HEADER'] = 'Cabe&ccdil;alho dos Resultados';
+$TEXT['RESULTS_LOOP'] = 'La&ccdil;o de Repeti&ccdil;&atilde;o dos Resultados';
+$TEXT['RESULTS_FOOTER'] = 'Rodap&eacute; dos Resultados';
+$TEXT['LEVEL'] = 'N&iacute;vel';
+$TEXT['NOT_FOUND'] = 'N&atilde;o Encotnrado';
+$TEXT['PAGE_SPACER'] = 'Espa&ccdil;ador de P&aacute;gina';
+$TEXT['MATCHING'] = 'Matching';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Permiss&otilde;es do Tema (Template)';
+$TEXT['PAGES_DIRECTORY'] = 'Diret&oacute;rio de P&aacute;ginas';
+$TEXT['MEDIA_DIRECTORY'] = 'Diret&oacute;rio de M&iacute;dia';
+$TEXT['FILE_MODE'] = 'Modo de Arquivo';
+$TEXT['USER'] = 'Usu&aacute;rio';
+$TEXT['OTHERS'] = 'Outros';
+$TEXT['READ'] = 'Ler';
+$TEXT['WRITE'] = 'Escrever';
+$TEXT['EXECUTE'] = 'Executar';
+$TEXT['SMART_LOGIN'] = 'Login Inteligente';
+$TEXT['REMEMBER_ME'] = 'Lembrar-me';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Permiss&otilde;es de Sistema de Arquivos';
+$TEXT['DIRECTORIES'] = 'Diret&oacute;rios';
+$TEXT['DIRECTORY_MODE'] = 'Modo de Diret&oacute;rio';
+$TEXT['LIST_OPTIONS'] = 'Op&ccdil;&otilde;es de Lista';
+$TEXT['OPTION'] = 'Op&ccdil;&atilde;o';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Permitir Multipla Sele&ccdil;&atilde;o';
+$TEXT['TEXTFIELD'] = 'Textfield';
+$TEXT['TEXTAREA'] = 'Textarea';
+$TEXT['SELECT_BOX'] = 'Select Box';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox Group';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Button Group';
+$TEXT['SIZE'] = 'Tamanho';
+$TEXT['DEFAULT_TEXT'] = 'Testo Padr&atilde;o';
+$TEXT['SEPERATOR'] = 'Separador';
+$TEXT['BACK'] = 'Volta';
+$TEXT['UNDER_CONSTRUCTION'] = 'Em Constru&ccdil;&atilde;o';
+$TEXT['MULTISELECT'] = 'Multipla-Sele&ccdil;&atilde;o';
+$TEXT['SHORT_TEXT'] = 'Texto Curto';
+$TEXT['LONG_TEXT'] = 'Texto Longo';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Redirecionamento de P&aacute;gina';
+$TEXT['HEADING'] = 'Cabe&ccdil;alho';
+$TEXT['MULTIPLE_MENUS'] = 'M&uacute;ltiplos Menus';
+$TEXT['REGISTERED'] = 'Registrado';
+$TEXT['SECTION_BLOCKS'] = 'Section Blocks';
+$TEXT['REGISTERED_VIEWERS'] = 'Registered Viewers';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Submission ID';
+$TEXT['SUBMISSIONS'] = 'Submiss&otilde;es';
+$TEXT['SUBMITTED'] = 'Submetido';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Submiss&otilde;es por Hora';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Submiss&otilde;es armazenadas no banco de dados';
+$TEXT['EMAIL_ADDRESS'] = 'Endre&ccdil;or de Email';
+$TEXT['CUSTOM'] = 'Pr&oacute;prio';
+$TEXT['ANONYMOUS'] = 'An&ocirc;nimo';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Sistema Operacional do Servidor';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-writeable file permissions';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix based';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home Folder';
+$TEXT['HOME_FOLDERS'] = 'Home Folders';
+$TEXT['PAGE_TRASH'] = 'Page Trash';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Separado';
+$TEXT['DELETED'] = 'Apagado';
+$TEXT['VIEW_DELETED_PAGES'] = 'Exibir P&aacute;ginas Exclu&iacute;das';
+$TEXT['EMPTY_TRASH'] = 'Esvaziar Lixeira';
+$TEXT['TRASH_EMPTIED'] = 'Lixiera Vazia';
+$TEXT['ADD_SECTION'] = 'Adicionar Sess&atilde;o';
+$TEXT['POST_HEADER'] = 'Cabe&ccdil;alho do Post';
+$TEXT['POST_FOOTER'] = 'Rodap&eacute; do Post';
+$TEXT['POSTS_PER_PAGE'] = 'Posts por P&aacute;gina';
+$TEXT['RESIZE_IMAGE_TO'] = 'Redimensionar Imagem Para';
+$TEXT['UNLIMITED'] = 'Ilimitado';
+$TEXT['OF'] = 'de';
+$TEXT['OUT_OF'] = 'Out Of';
+$TEXT['NEXT'] = 'Pr&oacute;ximo';
+$TEXT['PREVIOUS'] = 'Anterior';
+$TEXT['NEXT_PAGE'] = 'Pr&oacute;xima P&aacute;gina';
+$TEXT['PREVIOUS_PAGE'] = 'P&aacute;gina Anterior';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = '&Uacute;ltima atualiza&ccdil;&atilde;o por';
+$TEXT['RESULTS_FOR'] = 'Resultados para';
+$TEXT['TIME'] = 'Hora';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Servidor de Email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Gerenciar Grupos';
+$TEXT['MANAGE_USERS'] = 'Gerenciar Usu&aacute;rios';
+$TEXT['PAGE_LANGUAGES'] = 'Idioma da P&aacute;gina';
+$TEXT['HIDDEN'] = 'Oculto';
+$TEXT['MAIN'] = 'Principal';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Renomear Arquivos ao Enviar';
+$TEXT['APP_NAME'] = 'Nome da Aplica&ccdil;&atilde;o';
+$TEXT['SESSION_IDENTIFIER'] = 'Identificador de Sess&atilde;o';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Restaurar';
+$TEXT['BACKUP_DATABASE'] = 'Backup do Banco de Dados';
+$TEXT['RESTORE_DATABASE'] = 'Restaurar Banco de Dados';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup de Todas as Tabelas no Banco de Dados';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup somente tabelas espec&iacute;ficas';
+$TEXT['BACKUP_MEDIA'] = 'Backup M&iacute;dia';
+$TEXT['RESTORE_MEDIA'] = 'Restaurar M&iacute;dia';
+$TEXT['ADMINISTRATION_TOOL'] = 'Ferramenta de Administra&ccdil;&atilde;o';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Verifica&ccdil;&atilde;o Captcha';
+$TEXT['VERIFICATION'] = 'Verifica&ccdil;&atilde;o';
+$TEXT['DEFAULT_CHARSET'] = 'Codifica&ccdil;&atilde;o Padr&atilde;o';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Desculpe, voc&ecirc; n&atilde;o tem permiss&atilde;o para ver essa p&aacute;gina';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Privil&eacute;gios Insuficientes para estar aqui';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Favor inserir usu&aacute;rio e senha abaixo';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Favor Inserir o usu&aacute;rio';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Favor Inserir a senha';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'O usu&aacute;rio fornecido &eacute; curto demais';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'A senha fornecida &eacute; curta demais';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'O usu&aacute;rio fornecido &eacute; longo demais';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'A senha fornecida &eacute; longa demais';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Usu&aacute;rio ou senha incorretos';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Voc&ecirc; precisa informar um endere&ccdil;o de email';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Favor inserir seu email abaixo';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'O email informado n&atilde;o pode ser encontrado no banco de dados';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'N&atilde;o foi poss&iacute;vel enviar a senha, favor contatar o administrador do sistema';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Seu usu&aacute;rio e senha foram enviados para seu endere&ccdil;o de email';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'A senha n&atilde;o pode ser redefinida mais de uma vez por hora, desculpe';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Bem-Vindo &agrave; Administra&ccdil;&atilde;o do Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Aviso, O diret&oacute;rio "INSTALL" ainda existe!';
+$MESSAGE['START']['CURRENT_USER'] = 'Voc&ecirc; est&aacute; logado como:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'N&atilde;o foi possivel abrir o arquivo de configura&ccdil;&atilde;o';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'N&atilde;o foi possivel gravar no aquivo de configura&ccdil;&atilde;o';
+$MESSAGE['SETTINGS']['SAVED'] = 'Altera&ccdil;&otilde;es armazenadas com sucesso';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Aten&ccdil;&atilde;o: Pressionando esse bot&atilde;o, todas as altera&ccdil;&otilde;es n&atilde;o salvas, ser&atilde;o perdidas';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Aten&ccdil;&atilde;o: Somente recomendado para ambientes de teste';
+
+$MESSAGE['USERS']['ADDED'] = 'Usu&aacute;rio adicionado com sucesso';
+$MESSAGE['USERS']['SAVED'] = 'Usu&aacute;rio armazenado com sucesso';
+$MESSAGE['USERS']['DELETED'] = 'Usu&aacute;rio apagado com sucesso';
+$MESSAGE['USERS']['NO_GROUP'] = 'Nenhum grupo selecionado';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'O usu&aacute;rio fornecido &eacute; curto demais';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'A senha fornecida &eacute; curta demais';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'As senhas fornecidas n&atilde;o conferem';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'O email fornecido &eacute; inv&aacute;lido';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'O endere&ccdil;o de email informado j&aacute; est&aacute; sendo utilizado';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'O usu&aacute;rio informado j&aacute; est&aacute; sendo utilizado';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Aten&ccdil;&atilde;o: Voc&ecirc; deve preencher os campos abaixo se deseja alterar a senha';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Voc&ecirc; tem certeza que deseja apagar o usu&aacute;rio selecionado?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grupo adicionado com sucesso';
+$MESSAGE['GROUPS']['SAVED'] = 'Grupo armazenado com sucesso';
+$MESSAGE['GROUPS']['DELETED'] = 'Grupo apagado com sucesso';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'O nome do grupo est&aacute; em branco';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Voc&ecirc; tem certeza que deseja apagar o grupo selecionado (e usu&aacute;rios pertencentes ao grupo)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'N&atilde;o foram encotrados grupos';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Nome do Grupo j&aacute; existe';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Detalhes armazenados  com sucesso';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email atualizado com sucesso';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'A senha(atual) informada n&atilde;o est&aacute; correta';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Senha alterada com sucesso';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Aten&ccdil;&atilde;o: para alterar o tema (template) voc&ecirc; precisa ir at&eacute; a sess&atilde;o Configura&ccdil;&otilde;es';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'N&atilde;o foi poss&iacute;vel incluir ../ no nome da pasta';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Diret&oacute;rio n&atilde;o existe';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'N&atilde;o pode possuir ../ na pasta alvo';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'N&atilde;o foi possivel incluir ../ no nome';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'N&atilde;o &eacute; possivel usar index.php como nome';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Nenhuma arquivo de m&iacute;dia encontrado na pasta atual';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Arquivo n&atilde;o encontrado';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Arquivo apagado com sucesso';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Pasta apagada com sucesso';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Tem certeza que deseja apagar o seguinte arquivo ou pasta?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'N&atilde;o foi poss&iacute;vel apagar o arquivo selecionado';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'N&atilde;o foi poss&iacute;vel apagar a pasta selecionada';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Voc&ecirc; n&atilde;o inseriu um nome novo';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Voc&ecirc; n&atilde;o inseriou uma extens&atilde;o de arquivo';
+$MESSAGE['MEDIA']['RENAMED'] = 'Renomeado com sucesso';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Erro ao Renomear';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Um arquivo com esse nome j&aacute; existe';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Uma pasta com esse nome j&aacute; existe';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Pasta criada com sucesso';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'N&atilde;o foi poss&iacute;vel criar a pasta';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' arquivo enviado com sucesso';
+$MESSAGE['MEDIA']['UPLOADED'] = ' arquivos enviados com sucesso';
+
+$MESSAGE['PAGES']['ADDED'] = 'P&aacute;gina adicionada com sucesso';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Cabe&ccdil;alho da P&aacute;gina adicionado com sucesso.';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Uma p&aacute;gina com o mesmo nome ou similar j&aacute; existe';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Erro ao criar o arquivo no diret&oacute;rio /pages (Privil&eacute;gios Insuficientes)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Erro ao apagar o arquivo no diret&oacute;rio /pages (Privil&eacute;gios Insuficientes)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'P&aacute;gina n&atilde;o encontrada';
+$MESSAGE['PAGES']['SAVED'] = 'P&aacute;gina armazenada com sucesso';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Configura&ccdil;&otilde;es de P&aacute;gina armazenadas com sucesso';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Erro ao armazenar a p&aacute;gina';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Tem certeza que deseja apagar a p&aacute;gina selecionada(e todas as suas sub-p&aacute;ginas)';
+$MESSAGE['PAGES']['DELETED'] = 'P&aacute;gina apagada com sucesso';
+$MESSAGE['PAGES']['RESTORED'] = 'Pagina Restaurada com sucesso';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Favor Inserir T&iacute;tulo da P&aacute;gina';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Favor Inserir T&iacute;tulo do Menu';
+$MESSAGE['PAGES']['REORDERED'] = 'Re-ordena&ccdil;&atilde;o feita com sucesso';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Erro na re-ordena&ccdil;&atilde;o da p&aacute;gina';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Voc&ecirc; n&atilde;o tem permiss&atilde;o para Modificar essa p&aacute;gina';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'N&atilde;o foi poss&iacute;vel gravar o arquivo /pages/intro.php (Privil&eacute;gios Insuficientes)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'P&aacute;gina de Introdu&ccdil;&atilde;o armazenada com sucesso';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = '&Uacute;ltima modifica&ccdil;&atilde;o por';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Clique AQUI para modificar a P&aacute;gina de Introdu&ccdil;&atilde;o';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Propriedades da Sess&atilde;o foram armazenadas com sucesso';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Retornar &agrave; P&aacute;ginas';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Favor retornar e preencher todos os campos';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'O arquivo a ser enviado precisa ser do seguinte formato:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'O arquivo a ser enviado precisa ser de algum dos seguintes formatos:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'N&atilde;o foi poss&iacute;vel enviar o arquivo';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'J&aacute; est&aacute; instalado';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'N&atilde;o Instalado';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'N&atilde;o foi poss&iacute;vel desinstalar';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'N&atilde;o foi poss&iacute;vel descompactar';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Instalado com Sucesso';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Atualizado com Sucesso';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Desinstalado com Sucesso';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'N&atilde;o foi poss&iacute;vel gravar no diret&oacute;rio de destino';
+$MESSAGE['GENERIC']['INVALID'] = 'O arquivo enviado &eacute; inv&aacute;lido';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'N&atilde;o foi poss&iacute;vel desinstalar: O arquivo selecionado est&aacute; em uso';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Em Constru&ccdil;&atilde;o';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Favor retornar em breve...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Aguarde, isso pode levar algum tempo.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Erro ao abrir o arquivo.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Voc&ecirc; precisa preencher os seguintes campos';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Desculpe, este formul&aacute;rio foi submetido v&aacute;rias vezes nessa hora. Favor tentar novamente dentro de uma hora.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'O N&uacute;mero de Verifica&ccdil;&atilde;o (conhecido como Captcha) que voc&ecirc; entrou, &eacute; inv&aacute;lido. Se estiver tendo problemas usando o Captcha, envie uma mensagem para: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Favor selecionar quais add-ons deseja recarregar';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'M&oacute;dulos recarregados com sucesso';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Temas (Templates) recarregados com sucesso';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Idiomas recarregados com sucesso';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/PT.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/DA.php
===================================================================
--- tags/2.7.0/wb/languages/DA.php	(nonexistent)
+++ tags/2.7.0/wb/languages/DA.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'DA';
+$language_name = 'Danish';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Webstedbaker.dk + Achrist';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Hjem';
+$MENU['PAGES'] = 'Sider';
+$MENU['MEDIA'] = 'Medie-filer';
+$MENU['ADDONS'] = 'Add-ons';
+$MENU['MODULES'] = 'Moduler';
+$MENU['TEMPLATES'] = 'Skabeloner';
+$MENU['LANGUAGES'] = 'Sprog';
+$MENU['PREFERENCES'] = 'Pr&aelig;ferencer';
+$MENU['SETTINGS'] = 'Indstillinger';
+$MENU['ADMINTOOLS'] = 'Admin-v&aelig;rkt&aring;jer';
+$MENU['ACCESS'] = 'Adgang';
+$MENU['USERS'] = 'Brugere';
+$MENU['GROUPS'] = 'Grupper';
+$MENU['HELP'] = 'Hj&aelig;lp';
+$MENU['VIEW'] = 'Vis';
+$MENU['LOGOUT'] = 'Log ud';
+$MENU['LOGIN'] = 'Log ind';
+$MENU['FORGOT'] = 'Modtag login oplysninger';
+
+// Section overviews
+$OVERVIEW['START'] = 'Administrationsoversigt';
+$OVERVIEW['PAGES'] = 'Administr&eacute;r dine websider...';
+$OVERVIEW['MEDIA'] = 'Administr&eacute;r filer i mappen medier...';
+$OVERVIEW['MODULES'] = 'Administr&eacute;r Website Baker moduler...';
+$OVERVIEW['TEMPLATES'] = 'Skift udseende og layout/design p&aring; din webside v.h.a. skabeloner....';
+$OVERVIEW['LANGUAGES'] = 'Administration af sprog i Website Baker...';
+$OVERVIEW['PREFERENCES'] = 'Tilpas pr&aelig;ferencer s&aring;som email-adresse, adgangskode, etc... ';
+$OVERVIEW['SETTINGS'] = 'Tilpas indstillinger for Website Baker...';
+$OVERVIEW['USERS'] = 'Administr&eacute;r brugere som kan logge ind p&aring; Website Baker systemet...';
+$OVERVIEW['GROUPS'] = 'Administr&eacute;r brugergrupper og deres systemrettigheder...';
+$OVERVIEW['HELP'] = 'Sp&oslash;rgsm&aring;l? Find dine svar her...';
+$OVERVIEW['VIEW'] = 'Hurtig visning og gennemsyn af dit Websted i et nyt vindue..';
+$OVERVIEW['ADMINTOOLS'] = 'Website Baker administrationsv&aelig;rkt&oslash;jer...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Ret/slet side';
+$HEADING['DELETED_PAGES'] = 'Slettede sider';
+$HEADING['ADD_PAGE'] = 'Tilf&oslash;j side';
+$HEADING['ADD_HEADING'] = 'Tilf&oslash;j overskrift';
+$HEADING['MODIFY_PAGE'] = 'Rediger side';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Rediger side-indstillinger';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Rediger avancerede indstillinger for hjemmesiden';
+$HEADING['MANAGE_SECTIONS'] = 'Administr&eacute;r sektioner';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Rediger intro-side';
+
+$HEADING['BROWSE_MEDIA'] = 'Gennemse medie-mappe';
+$HEADING['CREATE_FOLDER'] = 'Opret mappe';
+$HEADING['UPLOAD_FILES'] = 'Upload fil(er)';
+
+$HEADING['INSTALL_MODULE'] = 'Install&eacute;r modul';
+$HEADING['UNINSTALL_MODULE'] = 'Afinstall&eacute;r modul';
+$HEADING['MODULE_DETAILS'] = 'Info om modul';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Install&eacute;r skabelon';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Afinstall&eacute;r skabelon';
+$HEADING['TEMPLATE_DETAILS'] = 'Info om skabelon';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Install&eacute;r sprog';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Afinstall&eacute;r sprog';
+$HEADING['LANGUAGE_DETAILS'] = 'Info om sprog';
+
+$HEADING['MY_SETTINGS'] = 'Mine indstillinger';
+$HEADING['MY_EMAIL'] = 'Min email-adresse';
+$HEADING['MY_PASSWORD'] = 'Min adgangskode';
+
+$HEADING['GENERAL_SETTINGS'] = 'Generelle indstillinger';
+$HEADING['DEFAULT_SETTINGS'] = 'Standard indstillinger';
+$HEADING['SEARCH_SETTINGS'] = 'S&oslash;ge-indstillinger';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Filsystem-indstillinger';
+$HEADING['SERVER_SETTINGS'] = 'Server-indstillinger';
+$HEADING['WBMAILER_SETTINGS'] = 'E-mail-indstillinger';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administrationsv&aelig;rkt&oslash;jer';
+
+$HEADING['MODIFY_DELETE_USER'] = 'Ret/slet bruger';
+$HEADING['ADD_USER'] = 'Tilf&oslash;j bruger';
+$HEADING['MODIFY_USER'] = 'Ret bruger';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'Ret/slet gruppe';
+$HEADING['ADD_GROUP'] = 'Tilf&oslash;j gruppe';
+$HEADING['MODIFY_GROUP'] = 'Ret gruppe';
+
+// Other text
+$TEXT['OPEN'] = '&Aring;ben';
+$TEXT['ADD'] = 'Tilf&oslash;j';
+$TEXT['MODIFY'] = 'Ret';
+$TEXT['SETTINGS'] = 'Indstillinger';
+$TEXT['DELETE'] = 'Slet';
+$TEXT['SAVE'] = 'Gem';
+$TEXT['RESET'] = 'Nulstil';
+$TEXT['LOGIN'] = 'Log ind';
+$TEXT['RELOAD'] = 'Opdat&eacute;r';
+$TEXT['CANCEL'] = 'Annull&eacute;r';
+$TEXT['NAME'] = 'Navn';
+$TEXT['PLEASE_SELECT'] = 'V&aelig;lg venligst';
+$TEXT['TITLE'] = 'Titel';
+$TEXT['PARENT'] = 'Hovedoversigt';
+$TEXT['TYPE'] = 'Type';
+$TEXT['VISIBILITY'] = 'Synlighed';
+$TEXT['PRIVATE'] = 'Privat';
+$TEXT['PUBLIC'] = 'Offentlig';
+$TEXT['NONE'] = 'Usynlig';
+$TEXT['NONE_FOUND'] = 'Ingen fundet';
+$TEXT['CURRENT'] = 'Nuv&aelig;rende';
+$TEXT['CHANGE'] = 'Ret';
+$TEXT['WINDOW'] = 'Vindue';
+$TEXT['DESCRIPTION'] = 'Beskrivelse';
+$TEXT['KEYWORDS'] = 'N&oslash;gleord';
+$TEXT['ADMINISTRATORS'] = 'Administratorer';
+$TEXT['PRIVATE_VIEWERS'] = 'Private bes&oslash;gende';
+$TEXT['EXPAND'] = 'Fold ud';
+$TEXT['COLLAPSE'] = 'Fold sammen';
+$TEXT['MOVE_UP'] = 'Flyt op';
+$TEXT['MOVE_DOWN'] = 'Flyt ned';
+$TEXT['RENAME'] = 'Omd&oslash;b';
+$TEXT['MODIFY_SETTINGS'] = 'Skift indstillinger';
+$TEXT['MODIFY_CONTENT'] = 'Ret indhold';
+$TEXT['VIEW'] = 'Se';
+$TEXT['UP'] = 'Op';
+$TEXT['FORGOTTEN_DETAILS'] = 'Har du glemt dine login-oplysninger?';
+$TEXT['NEED_TO_LOGIN'] = 'Brug for at logge ind?';
+$TEXT['SEND_DETAILS'] = 'Send oplysninger';
+$TEXT['USERNAME'] = 'Brugernavn';
+$TEXT['PASSWORD'] = 'Adgangskode';
+$TEXT['HOME'] = 'Hjem';
+$TEXT['TARGET_FOLDER'] = 'Mappeplacering';
+$TEXT['OVERWRITE_EXISTING'] = 'Overskriv eksisterende';
+$TEXT['FILE'] = 'Fil';
+$TEXT['FILES'] = 'Filer';
+$TEXT['FOLDER'] = 'Mappe';
+$TEXT['FOLDERS'] = 'Mapper';
+$TEXT['CREATE_FOLDER'] = 'Opret mappe';
+$TEXT['UPLOAD_FILES'] = 'Upload fil(er)';
+$TEXT['CURRENT_FOLDER'] = 'Nuv&aelig;rende mappe';
+$TEXT['TO'] = 'Til';
+$TEXT['FROM'] = 'Fra';
+$TEXT['INSTALL'] = 'Install&eacute;r';
+$TEXT['UNINSTALL'] = 'Afinstall&eacute;r';
+$TEXT['VIEW_DETAILS'] = 'Se oplysninger';
+$TEXT['DISPLAY_NAME'] = 'Vis navn';
+$TEXT['AUTHOR'] = 'Udvikler/forfatter';
+$TEXT['VERSION'] = 'Version';
+$TEXT['DESIGNED_FOR'] = 'Designet til';
+$TEXT['DESCRIPTION'] = 'Beskrivelse';
+$TEXT['EMAIL'] = 'Email-adresse';
+$TEXT['LANGUAGE'] = 'Sprog';
+$TEXT['TIMEZONE'] = 'Tidszone';
+$TEXT['CURRENT_PASSWORD'] = 'Nuv&aelig;rende adgangskode';
+$TEXT['NEW_PASSWORD'] = 'Ny adgangskode';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Skriv ny adgangskode igen';
+$TEXT['ACTIVE'] = 'Aktiv';
+$TEXT['DISABLED'] = 'Deaktiveret';
+$TEXT['ENABLED'] = 'Aktiveret';
+$TEXT['RETYPE_PASSWORD'] = 'Indtast adgangskode igen';
+$TEXT['GROUP'] = 'Gruppe';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Systemrettigheder';
+$TEXT['MODULE_PERMISSIONS'] = 'Modulrettigheder';
+$TEXT['SHOW_ADVANCED'] = 'Vis avancerede muligheder';
+$TEXT['HIDE_ADVANCED'] = 'Skjul avancerede muligheder';
+$TEXT['BASIC'] = 'Basisindstillinger';
+$TEXT['ADVANCED'] = 'Avanceret';
+$TEXT['WEBSITE'] = 'Websted';
+$TEXT['DEFAULT'] = 'Standard';
+$TEXT['KEYWORDS'] = 'N&oslash;gleord';
+$TEXT['TEXT'] = 'Tekst';
+$TEXT['HEADER'] = 'Hoved (overligger)';
+$TEXT['FOOTER'] = 'Fod (bund)';
+$TEXT['TEMPLATE'] = 'Skabelon';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'V&aelig;rt';
+$TEXT['INTRO'] = 'Introduktion';
+$TEXT['PAGE'] = 'Side';
+$TEXT['SIGNUP'] = 'Tilmeld dig';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP fejlrapporteringsniveau';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Sti';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Websted (vis siden)';
+$TEXT['EXTENSION'] = 'Udvidelse';
+$TEXT['TABLE_PREFIX'] = 'Tabelpr&aelig;fix';
+$TEXT['CHANGES'] = '&AElig;ndringer';
+$TEXT['ADMINISTRATION'] = 'Administr&eacute;r';
+$TEXT['FORGOT_DETAILS'] = 'Glemt login-oplysninger?';
+$TEXT['LOGGED_IN'] = 'Logget ind';
+$TEXT['WELCOME_BACK'] = 'Velkommen igen';
+$TEXT['FULL_NAME'] = 'Fulde navn';
+$TEXT['ACCOUNT_SIGNUP'] = 'Kontoregistrering';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Bogm&aelig;rke';
+$TEXT['TARGET'] = 'M&aring;l';
+$TEXT['NEW_WINDOW'] = 'Nyt vindue';
+$TEXT['SAME_WINDOW'] = 'Samme vindue';
+$TEXT['TOP_FRAME'] = 'Top frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Max. sideantal';
+$TEXT['SUCCESS'] = 'Oplysninger gemt';
+$TEXT['ERROR'] = 'Der opstod en fejl';
+$TEXT['ARE_YOU_SURE'] = 'Er du sikker?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Nej';
+$TEXT['SYSTEM_DEFAULT'] = 'Systemstandard';
+$TEXT['PAGE_TITLE'] = 'Titel p&aring; side';
+$TEXT['MENU_TITLE'] = 'Menutitel';
+$TEXT['ACTIONS'] = 'Handlinger';
+$TEXT['UNKNOWN'] = 'Ukendt';
+$TEXT['BLOCK'] = 'Blok';
+$TEXT['SEARCH'] = 'S&oslash;g';
+$TEXT['SEARCHING'] = 'S&oslash;gefunktion';
+$TEXT['POST'] = 'Indl&aelig;g';
+$TEXT['COMMENT'] = 'Kommentar';
+$TEXT['COMMENTS'] = 'Kommentarer';
+$TEXT['COMMENTING'] = 'Kommentarer';
+$TEXT['SHORT'] = 'Kort';
+$TEXT['LONG'] = 'Lang';
+$TEXT['LOOP'] = 'Liste';
+$TEXT['FIELD'] = 'Felt';
+$TEXT['REQUIRED'] = 'Kr&aelig;vet';
+$TEXT['LENGTH'] = 'L&aelig;ngde';
+$TEXT['MESSAGE'] = 'Indl&aelig;g';
+$TEXT['SUBJECT'] = 'Emne';
+$TEXT['MATCH'] = 'Match';
+$TEXT['ALL_WORDS'] = 'Alle ordene';
+$TEXT['ANY_WORDS'] = 'Bare et af ordene';
+$TEXT['EXACT_MATCH'] = 'Eksakt s&oslash;gning';
+$TEXT['SHOW'] = 'Vis';
+$TEXT['HIDE'] = 'Skjul';
+$TEXT['START_PUBLISHING'] = 'Start offentligg&oslash;relse';
+$TEXT['FINISH_PUBLISHING'] = 'Afslut offentligg&oslash;relse';
+$TEXT['DATE'] = 'Dato';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Oph&oslash;r';
+$TEXT['IMAGE'] = 'Billede';
+$TEXT['ICON'] = 'Ikon';
+$TEXT['SECTION'] = 'Sektion';
+$TEXT['DATE_FORMAT'] = 'Datoformat';
+$TEXT['TIME_FORMAT'] = 'Tidsformat';
+$TEXT['RESULTS'] = 'Resultater';
+$TEXT['RESIZE'] = 'Skift st&oslash;rrelse';
+$TEXT['MANAGE'] = 'Administr&eacute;r';
+$TEXT['CODE'] = 'Kode';
+$TEXT['WIDTH'] = 'Bredde';
+$TEXT['HEIGHT'] = 'H&oslash;jde';
+$TEXT['MORE'] = 'Mere';
+$TEXT['READ_MORE'] = 'L&aelig;s mere';
+$TEXT['CHANGE_SETTINGS'] = 'Skift indstillinger';
+$TEXT['CURRENT_PAGE'] = 'Nuv&aelig;rende side';
+$TEXT['CLOSE'] = 'Luk';
+$TEXT['INTRO_PAGE'] = 'Intro-side';
+$TEXT['INSTALLATION_URL'] = 'Installations URL';
+$TEXT['INSTALLATION_PATH'] = 'Installationssti';
+$TEXT['PAGE_EXTENSION'] = 'Side-udvidelse';
+$TEXT['NO_RESULTS'] = 'Intet fundet';
+$TEXT['WEBSITE_TITLE'] = 'Titel p&aring; dit websted';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Beskrivelse af dit websted';
+$TEXT['WEBSITE_KEYWORDS'] = 'Webstedsn&oslash;gleord';
+$TEXT['WEBSITE_HEADER'] = 'Webstedshoved';
+$TEXT['WEBSITE_FOOTER'] = 'Webstedsfod (bund)';
+$TEXT['RESULTS_HEADER'] = 'Resultathoved';
+$TEXT['RESULTS_LOOP'] = 'Resultatliste';
+$TEXT['RESULTS_FOOTER'] = 'Resultatfod (bund)';
+$TEXT['LEVEL'] = 'Niveau';
+$TEXT['NOT_FOUND'] = 'Ikke fundet';
+$TEXT['PAGE_SPACER'] = 'Side pladsmark&oslash;r';
+$TEXT['MATCHING'] = 'Matchende';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Skabelon-tilladelser';
+$TEXT['PAGES_DIRECTORY'] = 'Sidebibliotek (mappe)';
+$TEXT['MEDIA_DIRECTORY'] = 'Mediebibliotek (mappe)';
+$TEXT['FILE_MODE'] = 'Filtilstand';
+$TEXT['USER'] = 'Bruger';
+$TEXT['OTHERS'] = 'Andre';
+$TEXT['READ'] = 'L&aelig;s';
+$TEXT['WRITE'] = 'Skriv';
+$TEXT['EXECUTE'] = 'Udf&oslash;r';
+$TEXT['SMART_LOGIN'] = 'Smart Log-ind';
+$TEXT['REMEMBER_ME'] = 'Husk mig';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Filesystem - Tilladelser';
+$TEXT['DIRECTORIES'] = 'Biblioteker (mapper)';
+$TEXT['DIRECTORY_MODE'] = 'Bibliotekstilstand';
+$TEXT['LIST_OPTIONS'] = 'Vis valgmuligheder';
+$TEXT['OPTION'] = 'Mulighed';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Tillad flere valg samtidig';
+$TEXT['TEXTFIELD'] = 'Tekstfelt';
+$TEXT['TEXTAREA'] = 'Tekstomr&aring;de';
+$TEXT['SELECT_BOX'] = 'Afkrydsningsboks';
+$TEXT['CHECKBOX_GROUP'] = 'Afkrydsningsgruppe';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radioknap-gruppe';
+$TEXT['SIZE'] = 'St&oslash;rrelse';
+$TEXT['DEFAULT_TEXT'] = 'Standardtekst';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Tilbage';
+$TEXT['UNDER_CONSTRUCTION'] = 'Under konstruktion';
+$TEXT['MULTISELECT'] = 'Multi-valg';
+$TEXT['SHORT_TEXT'] = 'Kort tekst';
+$TEXT['LONG_TEXT'] = 'Lang tekst';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Viderestilling af hjemmeside';
+$TEXT['HEADING'] = 'Overskrift';
+$TEXT['MULTIPLE_MENUS'] = 'Flere menuer';
+$TEXT['REGISTERED'] = 'Registrerede';
+$TEXT['SECTION_BLOCKS'] = 'Sektionsblokke';
+$TEXT['REGISTERED_VIEWERS'] = 'Registrerede brugere';
+$TEXT['ALLOWED_VIEWERS'] = 'Tilladte brugere';
+$TEXT['SUBMISSION_ID'] = 'Tilmeldings-ID';
+$TEXT['SUBMISSIONS'] = 'Indsendte bidrag';
+$TEXT['SUBMITTED'] = 'Indsendt';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. indsendte bidrag pr. time';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Indsendte bidrag gemt i databasen';
+$TEXT['EMAIL_ADDRESS'] = 'Email-adresse';
+$TEXT['CUSTOM'] = '&AElig;ndret';
+$TEXT['ANONYMOUS'] = 'Anonym';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server operativsystem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Globale skriverettigheder';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix baseret';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Hjemmebibliotek (mappe)';
+$TEXT['HOME_FOLDERS'] = 'Hjemmebiblioteker (mapper)';
+$TEXT['PAGE_TRASH'] = 'Papirkurv til sider';
+$TEXT['INLINE'] = 'Indbygget';
+$TEXT['SEPARATE'] = 'Adskilt';
+$TEXT['DELETED'] = 'Slettet';
+$TEXT['VIEW_DELETED_PAGES'] = 'Vis slettede sider';
+$TEXT['EMPTY_TRASH'] = 'T&oslash;m papirkurv';
+$TEXT['TRASH_EMPTIED'] = 'Papirkurv t&oslash;mt!';
+$TEXT['ADD_SECTION'] = 'Tilf&oslash;j sektion';
+$TEXT['POST_HEADER'] = 'Hoved p&aring; indl&aelig;g';
+$TEXT['POST_FOOTER'] = 'Fod (bund) p&aring; indl&aelig;g';
+$TEXT['POSTS_PER_PAGE'] = 'Indl&aelig;g pr. side';
+$TEXT['RESIZE_IMAGE_TO'] = 'Forst&oslash;r/formindsk billede til';
+$TEXT['UNLIMITED'] = 'Ubegr&aelig;nset';
+$TEXT['OF'] = 'af';
+$TEXT['OUT_OF'] = 'ud af i alt';
+$TEXT['NEXT'] = 'N&aelig;ste';
+$TEXT['PREVIOUS'] = 'Forrige';
+$TEXT['NEXT_PAGE'] = 'N&aelig;ste side';
+$TEXT['PREVIOUS_PAGE'] = 'Forrige side';
+$TEXT['ON'] = 'D.';
+$TEXT['LAST_UPDATED_BY'] = 'Sidst opdateret af:';
+$TEXT['RESULTS_FOR'] = 'Resultater for';
+$TEXT['TIME'] = 'Tid';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG-stil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG-editor';
+$TEXT['SERVER_EMAIL'] = 'Server email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Administr&eacute;r grupper';
+$TEXT['MANAGE_USERS'] = 'Administr&eacute;r brugere';
+$TEXT['PAGE_LANGUAGES'] = 'Sprog';
+$TEXT['HIDDEN'] = 'Skjult';
+$TEXT['MAIN'] = 'Hovedoversigt';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Omd&oslash;b filer under opload';
+$TEXT['APP_NAME'] = 'Applikationsnavn';
+$TEXT['SESSION_IDENTIFIER'] = 'Sessions-ID';
+$TEXT['BACKUP'] = 'Backup';
+$TEXT['RESTORE'] = 'Gendannelse';
+$TEXT['BACKUP_DATABASE'] = 'Backup af database';
+$TEXT['RESTORE_DATABASE'] = 'Gendan database';
+$TEXT['BACKUP_ALL_TABLES'] = 'Lav backup af alle tabeller i databasen';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Lav kun backup af WB-specifikke tabeller';
+$TEXT['BACKUP_MEDIA'] = 'Backup medie-filer';
+$TEXT['RESTORE_MEDIA'] = 'Gendan medie-filer';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administrationsv&aelig;rkt&oslash;jer';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha verifikation';
+$TEXT['VERIFICATION'] = 'Indtast verifikationstal';
+$TEXT['DEFAULT_CHARSET'] = 'Standard tegns&aelig;t';
+$TEXT['CHARSET'] = 'Tegns&aelig;t';
+$TEXT['MODULE_ORDER'] = 'Modul-r&aelig;kkef&oslash;lge ved s&oslash;gning';
+$TEXT['MAX_EXCERPT'] = 'Max linier i uddrag';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Startdato';
+$TEXT['PUBL_END_DATE'] = 'Slutdato';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Slettet-dato';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Angiv standard "FRA"-adresse og "AFSENDER"-navn nedenfor. Det anbefales at angive FRA-adresse som: <strong>admin@dit-dom&aelig;ne.dk</strong>. Nogle udbydere (f.eks. <em>mail.com</em>) kan afvise emails med en FRA-adresse som <em>navn@mail.com</em>, hvis de er sendt via en anden udbyger, for at undg&aring; spam.<br /><br />Standardv&aelig;rdierne benyttes kun hvis ingen andre v&aelig;rdier angives i Website Baker. Hvis din server underst&oslash;tter <acronym title="Simple mail transfer protocol">SMTP</acronym>, kan du v&aelig;lge at bruge denne til udg&aring;ende emails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Standard fra-adresse';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Standard afsendernavn';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP mail-program indstillinger:</strong><br />Indstillingerne nedenfor er kun n&oslash;dvendige, hvis du vil sende emails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. Hvis du ikke kender adressen p&aring; sin SMTP-v&aelig;rt eller de kr&aelig;vede indstillinger, s&aring; hold dig til standardprogrammet, PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mailprogram';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP-v&aelig;rt';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP brugeradgangskontrol';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = '- skal kun anvendes hvis din SMTP-v&aelig;rt bruger adgangskontrol';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP brugernavn';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP adgangskode';
+$TEXT['PLEASE_LOGIN'] = 'Log ind';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Beklager - du har ikke adgang til at se denne side';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Beklager - intet aktivit indhold at vise';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Du har ikke den forn&oslash;dne adgang til dette omr&aring;de';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Indtast venligst dit brugernavn og din adgangskode nedenfor';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'V&aelig;r venlig at indtaste et brugernavn';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'V&aelig;r venlig at indtaste en adgangskode ';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Det indtastede brugernavn er for KORT';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Den indtastede adgangskode er for KORT';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Det indtastede brugernavn er for LANGT';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Den indtastede adgangskode er for LANG';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Brugernavn og/eller adgangskode er ikke korrekt';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Du SKAL indtaste en gyldig email-adresse';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Indtast venligst din email-adresse nedenfor';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Den email-adresse du indtastede findes ikke i vores database';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Kunne ikke sende din adgangskode til din email-adresse - Kontak venligst en administrator !';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Dit brugernavn og din adgangskode er nu afsendt til din email-adresse';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Adgangskode kan kun nulstilles 1 gang i timen - Vi beklager !';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Velkommen til administration af din Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'ADVARSEL! Installationsmappen findes stadig p&aring; serveren. Du b&oslash;r slette den straks af hensyn til sikkerheden!';
+$MESSAGE['START']['CURRENT_USER'] = 'Du er lige nu logget ind som:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Er ikke i stand til at &aring;bne konfigurationsfilen';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Kan ikke skrive til konfigurationsfilen (check rettigheder for filen!';
+$MESSAGE['SETTINGS']['SAVED'] = 'Indstillingerne er gemt';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = '<br>OBS: Ved at klikke p&aring; denne knap tabes alle &aelig;ndringer, der ikke er gemt!';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'OBS! Dette anbefales KUN i testmilj&oslash;er med en lokal placering - IKKE offentligt';
+
+$MESSAGE['USERS']['ADDED'] = 'Brugeren er oprettet';
+$MESSAGE['USERS']['SAVED'] = 'Brugeren er gemt';
+$MESSAGE['USERS']['DELETED'] = 'Brugeren er slettet';
+$MESSAGE['USERS']['NO_GROUP'] = 'Ingen gruppe er valgt';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Brugernavnet du indtastede var for kort';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Adgangskoden du indtastede var for kort';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'De to adgangskoder du indtastede passer ikke sammen - de skal v&aelig;re ENS';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Email-adressen du indtastede er ugyldig !';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Den email-adresse du indtastede findes allerede i vores database i forvejen !';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Brugernavnet du indtastede er allerede optaget af en anden bruger';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'OBS! Du skal kun indtaste v&aelig;rdier i felterne ovenfor, s&aring;fremt du &oslash;nsker at &aelig;ndre denne brugers adgangskode';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Er du sikker p&aring; at du vil slette den valgte bruger?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Gruppen er tilf&oslash;jet';
+$MESSAGE['GROUPS']['SAVED'] = 'Gruppen er gemt';
+$MESSAGE['GROUPS']['DELETED'] = 'Gruppen er slettet';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Gruppenavn er blank!';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Er du HELT sikker p&aring; du vil slette denne gruppe (og alle brugere som findes i denne)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Der blev ikke fundet nogen grupper!';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Gruppens navn eksisterer allerede';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Oplysningerne er gemt';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email-adresse opdateret';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Den (nuv&aelig;rende) adgangskode som du indtastede er ikke korrekt!';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Adgangskode &aelig;ndret';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'OBS: For at &aelig;ndre skabelonen skal du g&aring; ind i sektionen med indstillinger!';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Kan ikke inkludere ../ i mappenavnet';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Mappen eksisterer ikke';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Kan ikke have ../ i placeringen af biblioteket(mappen)';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Kan ikke inkludere ../ i navnet';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Kan ikke anvende index.php som navn';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Der blev ikke fundet medie-filer i det p&aring;g&aelig;ldende bibliotek (mappe)';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Filen ikke fundet';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Filen er slettet!';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Bibliotek slettet';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Er du sikker p&aring; du &oslash;nsker at slette flg. fil/bibliotek (mappe)?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Kan IKKE slette den valgte fil';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Kan IKKE slette det valgte bibliotek (mappe)';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Du indtastede ikke et NYT navn';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Du har ikke angivet en filtype!';
+$MESSAGE['MEDIA']['RENAMED'] = 'Omd&oslash;bning gennemf&oslash;rt';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Omd&oslash;bning kunne ikke gennemf&oslash;res';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Der findes allerede en fil med det navn du indtastede! ';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Der findes allerede et bibliotek (mappe) med det navn du indtastede!';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Bibliotek (mappe) blev oprettet';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Kunne ikke oprette bibliotek (mappe)';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' fil blev uploadet';
+$MESSAGE['MEDIA']['UPLOADED'] = ' filer blev uploadet';
+
+$MESSAGE['PAGES']['ADDED'] = 'Side blev tilf&oslash;jet';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Overskrift til side tilf&oslash;jet';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Der findes allerede en side med dette eller lign. navn i forvejen!';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Fejl under oprettelse af access fil i /pages biblioteket (mappen) (utilstr&aelig;kkelige rettigheder)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Fejl under sletning af access fil i /pages biblioteket  (utilstr&aelig;kkelige privilegier)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Siden blev ikke fundet';
+$MESSAGE['PAGES']['SAVED'] = 'Siden er gemt';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Side-indstillinger er gemt';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Der opstod en fejl under fors&oslash;get p&aring; at gemme siden';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Er du sikker p&aring; du &oslash;nsker at slette den valgte side (og alle dens undersider)';
+$MESSAGE['PAGES']['DELETED'] = 'Siden er slettet';
+$MESSAGE['PAGES']['RESTORED'] = 'Siden er gendannet';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Indtast venligst en overskrift til siden';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Indtast venligst en overskrift til menuen';
+$MESSAGE['PAGES']['REORDERED'] = 'Siden er omstruktureret';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Fejl ved fors&oslash;g p&aring; at omstrukturere siden';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Du har ikke rettigheder til at &aelig;ndre denne side';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Kan ikke skrive til filen /pages/intro.php (utilstr&aelig;kkelige privilegier)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Introside gemt';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Sidste &aelig;ndring blev foretaget af :';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Klik HER for at &aelig;ndre din intro-side!';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Egenskaber for SEKTION er &aelig;ndret';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Tilbage til sider';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'G&aring; venligst tilbage og udfyld ALLE felter';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'OBS: V&aelig;r venligst opm&aelig;rksom p&aring; at den fil du vil uploade skal v&aelig;re i flg. format:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'OBS: V&aelig;r venligst opm&aelig;rksom p&aring; at den fil du vil uploade skal v&aelig;re i et af flg. formater:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Kunne ikke uploade filen';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Er allerede installeret';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Ikke installeret';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Kan ikke afinstallere';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Kan ikke udpakke fil';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Installeret';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Opgraderet';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Afinstalleret';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kan ikke skrive i det valgte modtagebibliotek';
+$MESSAGE['GENERIC']['INVALID'] = 'Filen du uploadede er fejlbeh&aelig;ftet';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kan ikke afinstallere: Den valgte fil er i brug!';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Kom venligst igen senere...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'V&aelig;r venligst t&aring;lmodig, dette kan godt vare et stykke tid.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Fejl ved &aring;bning af filen.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Du SKAL udfylde f&oslash;lgende felter:';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Beklager! Denne formular er blevet afsendt for mange gange indenfor den sidste time, og du vil derfor blive afvist - Pr&oslash;v igen om en times tid!';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Verifikations tallene (ogs&aring; kendt som Captcha) som du tastede er ikke korrekte. Hvis du har problemer med at l&aelig;se Captha tallene, s&aring; kontakt venligst sidens Administrator p&aring; denne mailadresse: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'V&aelig;lg venligst hvilke add-ons du vil have opdateret';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Moduler opdateret med succes';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates opdateret med succes';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Sprog opdateret med succes';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/DA.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/TR.php
===================================================================
--- tags/2.7.0/wb/languages/TR.php	(nonexistent)
+++ tags/2.7.0/wb/languages/TR.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'TR';
+$language_name = 'Turkish';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Atakan KO&Ccedil;';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Ba&thorn;lat';
+$MENU['PAGES'] = 'Sayfalar';
+$MENU['MEDIA'] = 'Resimler';
+$MENU['ADDONS'] = 'Eklentiler';
+$MENU['MODULES'] = 'Mod&uuml;ller';
+$MENU['TEMPLATES'] = 'Kal&yacute;plar';
+$MENU['LANGUAGES'] = 'Diller';
+$MENU['PREFERENCES'] = 'Tercihler';
+$MENU['SETTINGS'] = 'Ayarlar';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Giri&thorn;';
+$MENU['USERS'] = 'Kullan&yacute;c&yacute;lar';
+$MENU['GROUPS'] = 'Gruplar';
+$MENU['HELP'] = 'Yard&yacute;m';
+$MENU['VIEW'] = 'G&ouml;r&uuml;nt&uuml;le';
+$MENU['LOGOUT'] = '&Ccedil;&yacute;k&yacute;&thorn;';
+$MENU['LOGIN'] = 'Giri&thorn;';
+$MENU['FORGOT'] = 'Giri&thorn; Bilgilerini Gerial';
+
+// Section overviews
+$OVERVIEW['START'] = 'Y&ouml;netici G&ouml;r&uuml;n&uuml;m&uuml;';
+$OVERVIEW['PAGES'] = 'Website Sayfalar&yacute;n&yacute; Y&ouml;netme...';
+$OVERVIEW['MEDIA'] = 'Resim Deposundaki Dosyalar&yacute; Y&ouml;netme...';
+$OVERVIEW['MODULES'] = 'Website Baker Mod&uuml;llerini Y&ouml;netme...';
+$OVERVIEW['TEMPLATES'] = 'Websitenizdeki Kal&yacute;plar&yacute; De&eth;i&thorn;tirme Ve D&uuml;zenleme...';
+$OVERVIEW['LANGUAGES'] = 'Website Baker Dilleri D&uuml;zenleme...';
+$OVERVIEW['PREFERENCES'] = 'Email, &THORN;ifre gibi ayarlar&yacute; d&uuml;zenleme... ';
+$OVERVIEW['SETTINGS'] = 'Website Baker i&ccedil;in ayarlar&yacute; d&uuml;zenleme...';
+$OVERVIEW['USERS'] = 'Website Baker kullan&yacute;c&yacute;lar&yacute;n&yacute; d&uuml;zenleme...';
+$OVERVIEW['GROUPS'] = 'Kullan&yacute;c&yacute; Gruplar&yacute;n&yacute;n &Yacute;zinlerini D&uuml;zenleme...';
+$OVERVIEW['HELP'] = 'Sorular&yacute;n&yacute;z? Cevaplar&yacute;...';
+$OVERVIEW['VIEW'] = 'Yeni bir pencerede sitenizin &ouml;ng&ouml;r&uuml;n&uuml;m&uuml;...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'De&eth;i&thorn;tir/Sil Sayfa';
+$HEADING['DELETED_PAGES'] = 'Sayfay&yacute; Sil';
+$HEADING['ADD_PAGE'] = 'Sayfa Ekle';
+$HEADING['ADD_HEADING'] = 'Ba&thorn;l&yacute;k Ekle';
+$HEADING['MODIFY_PAGE'] = 'Sayfay&yacute; De&eth;i&thorn;tir';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Sayfa Ayarlar&yacute;n&yacute; De&eth;i&thorn;tir';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Geli&thorn;tirilmi&thorn; Sayfa Ayarlar&yacute;n&yacute; De&eth;i&thorn;tir';
+$HEADING['MANAGE_SECTIONS'] = 'K&yacute;s&yacute;mlar&yacute; Y&ouml;net';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Ba&thorn;lang&yacute;&ccedil; Sayfas&yacute;n&yacute; D&uuml;zenle';
+
+$HEADING['BROWSE_MEDIA'] = 'Resimleri Y&ouml;netme';
+$HEADING['CREATE_FOLDER'] = 'Dizin Yarat';
+$HEADING['UPLOAD_FILES'] = 'Dosya Y&uuml;kle';
+
+$HEADING['INSTALL_MODULE'] = 'Mod&uuml;l Y&uuml;kle';
+$HEADING['UNINSTALL_MODULE'] = 'Mod&uuml;l Kald&yacute;r';
+$HEADING['MODULE_DETAILS'] = 'Mod&uuml;l A&ccedil;&yacute;klamas&yacute;';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Kal&yacute;p Y&uuml;kle';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Kal&yacute;p Kald&yacute;r';
+$HEADING['TEMPLATE_DETAILS'] = 'Kal&yacute;p A&ccedil;&yacute;klamas&yacute;';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Dil Y&uuml;kle';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Dil Kald&yacute;r';
+$HEADING['LANGUAGE_DETAILS'] = 'Dil A&ccedil;&yacute;klamas&yacute;';
+
+$HEADING['MY_SETTINGS'] = 'Ayarlar&yacute;m';
+$HEADING['MY_EMAIL'] = 'Emailim';
+$HEADING['MY_PASSWORD'] = '&THORN;ifrem';
+
+$HEADING['GENERAL_SETTINGS'] = 'Genel Ayarlar';
+$HEADING['DEFAULT_SETTINGS'] = 'Varsay&yacute;lan Ayarlar';
+$HEADING['SEARCH_SETTINGS'] = 'Arama Ayarlar&yacute;';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Dosya Sistemi Ayarlar&yacute;';
+$HEADING['SERVER_SETTINGS'] = 'Server Ayarlar&yacute;';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Administration Ara&ccedil;lar&yacute;';
+
+$HEADING['MODIFY_DELETE_USER'] = 'De&eth;i&thorn;tir/Sil kullan&yacute;c&yacute;';
+$HEADING['ADD_USER'] = 'Kullan&yacute;c&yacute; Ekle';
+$HEADING['MODIFY_USER'] = 'Kullan&yacute;c&yacute; D&uuml;zenle';
+
+$HEADING['MODIFY_DELETE_GROUP'] = 'De&eth;i&thorn;tir/Sil Grup';
+$HEADING['ADD_GROUP'] = 'Grup Ekle';
+$HEADING['MODIFY_GROUP'] = 'Grup D&uuml;zenle';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = 'Ekle';
+$TEXT['MODIFY'] = 'D&uuml;zenle';
+$TEXT['SETTINGS'] = 'Ayarlar';
+$TEXT['DELETE'] = 'Sil';
+$TEXT['SAVE'] = 'Kay&yacute;t et';
+$TEXT['RESET'] = 'S&yacute;f&yacute;rla';
+$TEXT['LOGIN'] = 'Giri&thorn;';
+$TEXT['RELOAD'] = 'Tekrarla';
+$TEXT['CANCEL'] = '&Yacute;ptal';
+$TEXT['NAME'] = '&Yacute;sim';
+$TEXT['PLEASE_SELECT'] = 'L&uuml;tfen Se&ccedil;in';
+$TEXT['TITLE'] = 'Ba&thorn;l&yacute;k';
+$TEXT['PARENT'] = 'Ana Grup';
+$TEXT['TYPE'] = 'Tip';
+$TEXT['VISIBILITY'] = 'G&ouml;r&uuml;n&uuml;rl&uuml;k';
+$TEXT['PRIVATE'] = '&Ouml;zel';
+$TEXT['PUBLIC'] = 'Herkez';
+$TEXT['NONE'] = 'Yok';
+$TEXT['NONE_FOUND'] = 'Hi&ccedil;biri bulmad&yacute;';
+$TEXT['CURRENT'] = 'Kullan&yacute;lan';
+$TEXT['CHANGE'] = 'De&eth;i&thorn;tir';
+$TEXT['WINDOW'] = 'Pencere';
+$TEXT['DESCRIPTION'] = 'A&ccedil;&yacute;klama';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['ADMINISTRATORS'] = 'Y&ouml;nerici';
+$TEXT['PRIVATE_VIEWERS'] = '&Ouml;zel izleyiciler';
+$TEXT['EXPAND'] = 'Geni&thorn;let';
+$TEXT['COLLAPSE'] = 'Daralt';
+$TEXT['MOVE_UP'] = 'Yukar&yacute; Ta&thorn;&yacute;';
+$TEXT['MOVE_DOWN'] = 'A&thorn;a&eth;&yacute; Ta&thorn;&yacute;';
+$TEXT['RENAME'] = 'Yeni isim ver';
+$TEXT['MODIFY_SETTINGS'] = 'Ayarlar&yacute; De&eth;i&thorn;tir';
+$TEXT['MODIFY_CONTENT'] = 'D&uuml;zeni De&eth;i&thorn;tir';
+$TEXT['VIEW'] = 'G&ouml;r&uuml;n&uuml;&thorn;';
+$TEXT['UP'] = 'Yukar&yacute;';
+$TEXT['FORGOTTEN_DETAILS'] = 'Sizin Ayr&yacute;nt&yacute;l&yacute; Detaylar&yacute;n&yacute;z?';
+$TEXT['NEED_TO_LOGIN'] = 'Need to log-in?';
+$TEXT['SEND_DETAILS'] = 'Detaylar&yacute; G&ouml;nder';
+$TEXT['USERNAME'] = 'Kullan&yacute;c&yacute; Ad&yacute;';
+$TEXT['PASSWORD'] = '&THORN;ifre';
+$TEXT['HOME'] = 'Ana Sayfa';
+$TEXT['TARGET_FOLDER'] = 'Hedef Dizin';
+$TEXT['OVERWRITE_EXISTING'] = '&Uuml;st&uuml;ne Yaz';
+$TEXT['FILE'] = 'Dosya';
+$TEXT['FILES'] = 'Dosyalar';
+$TEXT['FOLDER'] = 'Dizin';
+$TEXT['FOLDERS'] = 'Dizinler';
+$TEXT['CREATE_FOLDER'] = 'Dizin Yarat';
+$TEXT['UPLOAD_FILES'] = 'Dosya Y&uuml;kle';
+$TEXT['CURRENT_FOLDER'] = 'Kullan&yacute;lan Dizin';
+$TEXT['TO'] = 'To';
+$TEXT['FROM'] = 'From';
+$TEXT['INSTALL'] = 'Y&uuml;kle';
+$TEXT['UNINSTALL'] = 'Kald&yacute;r';
+$TEXT['VIEW_DETAILS'] = 'Detaylar';
+$TEXT['DISPLAY_NAME'] = 'G&ouml;r&uuml;n&uuml;m Ad&yacute;';
+$TEXT['AUTHOR'] = 'Yazar';
+$TEXT['VERSION'] = 'Versiyon';
+$TEXT['DESIGNED_FOR'] = 'D&uuml;zenleyen';
+$TEXT['DESCRIPTION'] = 'A&ccedil;&yacute;klama';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = 'Dil';
+$TEXT['TIMEZONE'] = 'Zaman Dilimi';
+$TEXT['CURRENT_PASSWORD'] = 'Kullan&yacute;lan &THORN;ifre';
+$TEXT['NEW_PASSWORD'] = 'Yeni &THORN;ifre';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Tekrarla Yeni &THORN;ifre';
+$TEXT['ACTIVE'] = 'Aktif';
+$TEXT['DISABLED'] = '&Yacute;ptal';
+$TEXT['ENABLED'] = '&Yacute;zin Ver';
+$TEXT['RETYPE_PASSWORD'] = '&THORN;ifreyi Tekrarla';
+$TEXT['GROUP'] = 'Grup';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Sistem &Yacute;zinleri';
+$TEXT['MODULE_PERMISSIONS'] = 'Mod&uuml;l &Yacute;zinleri';
+$TEXT['SHOW_ADVANCED'] = '&Yacute;leri Se&ccedil;enekleri G&ouml;ster';
+$TEXT['HIDE_ADVANCED'] = '&Yacute;leri Se&ccedil;enekleri Gizle';
+$TEXT['BASIC'] = 'Ba&thorn;lang&yacute;&ccedil;';
+$TEXT['ADVANCED'] = '&Yacute;leri';
+$TEXT['WEBSITE'] = 'Website';
+$TEXT['DEFAULT'] = 'Varsay&yacute;lan';
+$TEXT['KEYWORDS'] = 'Keywords';
+$TEXT['TEXT'] = 'Yaz&yacute;';
+$TEXT['HEADER'] = '&Uuml;st K&yacute;s&yacute;m';
+$TEXT['FOOTER'] = 'Alt K&yacute;s&yacute;m';
+$TEXT['TEMPLATE'] = 'Kal&yacute;p';
+$TEXT['INSTALLATION'] = 'Y&uuml;kle';
+$TEXT['DATABASE'] = 'Database';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Demo';
+$TEXT['PAGE'] = 'Sayfa';
+$TEXT['SIGNUP'] = 'Kay&yacute;t Ol';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Hata Rapor D&uuml;zeyi';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Yol';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Son Kullan&yacute;c&yacute;';
+$TEXT['EXTENSION'] = 'Uzatma';
+$TEXT['TABLE_PREFIX'] = 'Table D&uuml;zen Ad&yacute;';
+$TEXT['CHANGES'] = 'De&eth;i&thorn;iklikler';
+$TEXT['ADMINISTRATION'] = 'Y&ouml;netici';
+$TEXT['FORGOT_DETAILS'] = 'Detay Hat&yacute;rlat?';
+$TEXT['LOGGED_IN'] = 'Giri&thorn; Kaydet';
+$TEXT['WELCOME_BACK'] = 'Ho&thorn;geldiniz';
+$TEXT['FULL_NAME'] = 'Tam Ad&yacute;n&yacute;z';
+$TEXT['ACCOUNT_SIGNUP'] = 'Kull&yacute;c&yacute; Kay&yacute;t Ol';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = 'Hedef';
+$TEXT['NEW_WINDOW'] = 'Yeni Pencere';
+$TEXT['SAME_WINDOW'] = 'Ayn&yacute; Pencere';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Sayfa Alt Limiti';
+$TEXT['SUCCESS'] = '&Yacute;&thorn;lem Ba&thorn;ar&yacute;ld&yacute;';
+$TEXT['ERROR'] = 'Hata';
+$TEXT['ARE_YOU_SURE'] = 'eminmisin?';
+$TEXT['YES'] = 'Evet';
+$TEXT['NO'] = 'Hay&yacute;r';
+$TEXT['SYSTEM_DEFAULT'] = 'Sistem Varsay&yacute;lan&yacute;';
+$TEXT['PAGE_TITLE'] = 'Sayfa Ba&thorn;l&yacute;&eth;&yacute;';
+$TEXT['MENU_TITLE'] = 'Menu Ba&thorn;l&yacute;&eth;&yacute;';
+$TEXT['ACTIONS'] = 'Hareketler';
+$TEXT['UNKNOWN'] = 'Bilinmeyen';
+$TEXT['BLOCK'] = 'Blok';
+$TEXT['SEARCH'] = 'Ara';
+$TEXT['SEARCHING'] = 'Arama';
+$TEXT['POST'] = 'Mesaj';
+$TEXT['COMMENT'] = 'Yorum';
+$TEXT['COMMENTS'] = 'Yorumlar';
+$TEXT['COMMENTING'] = 'Yorum yapan';
+$TEXT['SHORT'] = 'K&yacute;sa';
+$TEXT['LONG'] = 'Uzun';
+$TEXT['LOOP'] = 'S&uuml;rekli';
+$TEXT['FIELD'] = 'Alan';
+$TEXT['REQUIRED'] = 'Gerekli';
+$TEXT['LENGTH'] = 'Uzunluk';
+$TEXT['MESSAGE'] = 'Mesaj';
+$TEXT['SUBJECT'] = 'Konu';
+$TEXT['MATCH'] = 'Bul';
+$TEXT['ALL_WORDS'] = 'B&uuml;t&uuml;n Kelimeler';
+$TEXT['ANY_WORDS'] = 'Herhangi bir s&ouml;zc&uuml;k';
+$TEXT['EXACT_MATCH'] = 'Tam Bul';
+$TEXT['SHOW'] = 'G&ouml;ster';
+$TEXT['HIDE'] = 'Gizle';
+$TEXT['START_PUBLISHING'] = 'Yay&yacute;na Ba&thorn;la';
+$TEXT['FINISH_PUBLISHING'] = 'Yay&yacute;n&yacute; Bitir';
+$TEXT['DATE'] = 'Tarih';
+$TEXT['START'] = 'Ba&thorn;lat';
+$TEXT['END'] = 'Son';
+$TEXT['IMAGE'] = 'Resim';
+$TEXT['ICON'] = 'Ikon';
+$TEXT['SECTION'] = 'K&yacute;s&yacute;m';
+$TEXT['DATE_FORMAT'] = 'Tarih Format&yacute;';
+$TEXT['TIME_FORMAT'] = 'Saat Format&yacute;';
+$TEXT['RESULTS'] = 'Sonu&ccedil;lar';
+$TEXT['RESIZE'] = 'Tekrar Boyutland&yacute;r';
+$TEXT['MANAGE'] = 'Y&ouml;net';
+$TEXT['CODE'] = 'Kod';
+$TEXT['WIDTH'] = 'Geni&thorn;lik';
+$TEXT['HEIGHT'] = 'Y&uuml;kseklik';
+$TEXT['MORE'] = 'Daha &Ccedil;ok';
+$TEXT['READ_MORE'] = 'Oku';
+$TEXT['CHANGE_SETTINGS'] = 'Ayarlar&yacute; De&eth;i&thorn;tir';
+$TEXT['CURRENT_PAGE'] = 'Kullan&yacute;lan Sayfa';
+$TEXT['CLOSE'] = 'Kapat';
+$TEXT['INTRO_PAGE'] = 'Demo Sayfas&yacute;';
+$TEXT['INSTALLATION_URL'] = 'Y&uuml;keleme URL';
+$TEXT['INSTALLATION_PATH'] = 'Y&uuml;kleme Yolu';
+$TEXT['PAGE_EXTENSION'] = 'Sayfa Uzant&yacute;s&yacute;';
+$TEXT['NO_RESULTS'] = 'Bulunamad&yacute;';
+$TEXT['WEBSITE_TITLE'] = 'Website Ba&thorn;l&yacute;&eth;&yacute;';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Website A&ccedil;&yacute;klamas&yacute;';
+$TEXT['WEBSITE_KEYWORDS'] = 'Website Keywords';
+$TEXT['WEBSITE_HEADER'] = 'Website &Uuml;st K&yacute;s&yacute;m';
+$TEXT['WEBSITE_FOOTER'] = 'Website Alt K&yacute;s&yacute;m';
+$TEXT['RESULTS_HEADER'] = 'Bulundu&eth;unda &Uuml;st K&yacute;s&yacute;m';
+$TEXT['RESULTS_LOOP'] = 'Bulundu&eth;unda D&ouml;ng&uuml;';
+$TEXT['RESULTS_FOOTER'] = 'Bulundu&eth;unda Alt K&yacute;s&yacute;m';
+$TEXT['LEVEL'] = 'Limit';
+$TEXT['NOT_FOUND'] = 'Bulunamad&yacute;';
+$TEXT['PAGE_SPACER'] = 'Sayfa Bo&thorn;lu&eth;u';
+$TEXT['MATCHING'] = 'Bulunanlar';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Kal&yacute;p &Yacute;zinleri';
+$TEXT['PAGES_DIRECTORY'] = 'Sayfa Dizini';
+$TEXT['MEDIA_DIRECTORY'] = 'Resim Dizini';
+$TEXT['FILE_MODE'] = 'Dosya &Yacute;zini';
+$TEXT['USER'] = 'Kullan&yacute;c&yacute;';
+$TEXT['OTHERS'] = 'Di&eth;erleri';
+$TEXT['READ'] = 'Oku';
+$TEXT['WRITE'] = 'Yaz';
+$TEXT['EXECUTE'] = '&Ccedil;al&yacute;&thorn;t&yacute;r';
+$TEXT['SMART_LOGIN'] = 'G&uuml;venli Giri&thorn;';
+$TEXT['REMEMBER_ME'] = 'Haz&yacute;rla';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Dosya Sistemi &Yacute;zinleri';
+$TEXT['DIRECTORIES'] = 'Dizinler';
+$TEXT['DIRECTORY_MODE'] = 'Dizin Modu';
+$TEXT['LIST_OPTIONS'] = 'Liste se&ccedil;enekleri';
+$TEXT['OPTION'] = 'Se&ccedil;enekler';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = '&Ccedil;oklu se&ccedil;imlere izin ver';
+$TEXT['TEXTFIELD'] = 'Textfield';
+$TEXT['TEXTAREA'] = 'Textarea';
+$TEXT['SELECT_BOX'] = 'Se&ccedil;meli Men&uuml;';
+$TEXT['CHECKBOX_GROUP'] = 'T&yacute;klamal&yacute; Se&ccedil;im';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radyo D&uuml;&eth;meleri';
+$TEXT['SIZE'] = 'Boyut';
+$TEXT['DEFAULT_TEXT'] = 'Varsay&yacute;lan Yaz&yacute;';
+$TEXT['SEPERATOR'] = 'B&ouml;l&uuml;c&uuml;';
+$TEXT['BACK'] = 'Geri';
+$TEXT['UNDER_CONSTRUCTION'] = 'Yap&yacute;m A&thorn;amas&yacute;nda';
+$TEXT['MULTISELECT'] = '&Ccedil;oklu Se&ccedil;im';
+$TEXT['SHORT_TEXT'] = 'K&yacute;sa Yaz&yacute;';
+$TEXT['LONG_TEXT'] = 'Uzun Yaz&yacute;';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Ana sayfa y&ouml;nlendir';
+$TEXT['HEADING'] = 'Ba&thorn;l&yacute;k';
+$TEXT['MULTIPLE_MENUS'] = '&Ccedil;oklu men&uuml;ler';
+$TEXT['REGISTERED'] = 'Kay&yacute;tl&yacute; Kullan&yacute;c&yacute;';
+$TEXT['SECTION_BLOCKS'] = 'K&yacute;s&yacute;m bloklar&yacute;';
+$TEXT['REGISTERED_VIEWERS'] = '&Yacute;zleyiciler kaydetti';
+$TEXT['ALLOWED_VIEWERS'] = 'Allowed Viewers';
+$TEXT['SUBMISSION_ID'] = 'Sunu&thorn;lar ID';
+$TEXT['SUBMISSIONS'] = 'Sunu&thorn;lar';
+$TEXT['SUBMITTED'] = 'G&ouml;nderildi';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Maksimum Saat Ba&thorn;&yacute; Sunum';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Sunu&thorn;lar, veritaban&yacute;nda depolad&yacute;';
+$TEXT['EMAIL_ADDRESS'] = 'Email Adresi';
+$TEXT['CUSTOM'] = 'Custom';
+$TEXT['ANONYMOUS'] = 'Bilinmeyen';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server &Yacute;&thorn;letim Sistemi';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Yaz&yacute;labilir dosya izinleri';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix tabanl&yacute;';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Ana Dizin';
+$TEXT['HOME_FOLDERS'] = 'Ana Dizinler';
+$TEXT['PAGE_TRASH'] = 'Sayfay&yacute; Sil';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Ay&yacute;r&yacute;c&yacute;';
+$TEXT['DELETED'] = 'Silindi';
+$TEXT['VIEW_DELETED_PAGES'] = 'Silinen Sayfay&yacute; G&ouml;ster';
+$TEXT['EMPTY_TRASH'] = '&Ccedil;&ouml;p kutusu bo&thorn;';
+$TEXT['TRASH_EMPTIED'] = '&Ccedil;&ouml;p kutusu bo&thorn;alt&yacute;ld&yacute;';
+$TEXT['ADD_SECTION'] = 'K&yacute;s&yacute;m Ekle';
+$TEXT['POST_HEADER'] = '&Uuml;st Mesaj&yacute;';
+$TEXT['POST_FOOTER'] = 'Alt Mesaj';
+$TEXT['POSTS_PER_PAGE'] = 'Sayfa ba&thorn;&yacute;na mesajlar';
+$TEXT['RESIZE_IMAGE_TO'] = 'Boyutland&yacute;r resimi';
+$TEXT['UNLIMITED'] = 'S&yacute;n&yacute;rs&yacute;z';
+$TEXT['OF'] = 'Of';
+$TEXT['OUT_OF'] = 'D&yacute;&thorn;ar&yacute;';
+$TEXT['NEXT'] = 'Sonraki';
+$TEXT['PREVIOUS'] = '&Ouml;nceki';
+$TEXT['NEXT_PAGE'] = 'Sonraki Sayfa';
+$TEXT['PREVIOUS_PAGE'] = '&Ouml;nceki Sayfa';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = 'Son G&uuml;ncelleyen';
+$TEXT['RESULTS_FOR'] = 'Sonu&ccedil;lar';
+$TEXT['TIME'] = 'Saat';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Style';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server Email';
+$TEXT['MENU'] = 'Menu';
+$TEXT['MANAGE_GROUPS'] = 'Grup Y&ouml;netimi';
+$TEXT['MANAGE_USERS'] = 'Kullan&yacute;c&yacute; Y&ouml;netimi';
+$TEXT['PAGE_LANGUAGES'] = 'Sayfa Dili';
+$TEXT['HIDDEN'] = 'Gizli';
+$TEXT['MAIN'] = 'Ana';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Y&uuml;klenen dosyan&yacute;n ad&yacute;n&yacute; de&eth;i&thorn;tir';
+$TEXT['APP_NAME'] = 'Application Ad&yacute;';
+$TEXT['SESSION_IDENTIFIER'] = 'Session Identifier';
+$TEXT['BACKUP'] = 'Yedek Al';
+$TEXT['RESTORE'] = 'Yede&eth;i y&uuml;kle';
+$TEXT['BACKUP_DATABASE'] = 'Database Yedekle';
+$TEXT['RESTORE_DATABASE'] = 'Database Geri Y&uuml;kle';
+$TEXT['BACKUP_ALL_TABLES'] = 'Backup all tables in database';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'Backup only WB-specific tables';
+$TEXT['BACKUP_MEDIA'] = 'Media Yedekle';
+$TEXT['RESTORE_MEDIA'] = 'Media Geri Y&uuml;kle';
+$TEXT['ADMINISTRATION_TOOL'] = 'Administration tool';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Verification';
+$TEXT['VERIFICATION'] = 'Verification';
+$TEXT['DEFAULT_CHARSET'] = 'Default Charset';
+$TEXT['CHARSET'] = 'Charset';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = '&Uuml;zg&uuml;n&uuml;m, bu sayfay&yacute; g&ouml;r&uuml;nt&uuml;lemeye yetkiniz yok';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Insufficient privelliges to be here';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Kullan&yacute;c&yacute; ad&yacute; ve &thorn;ifre giriniz';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'L&uuml;tfen kullanc&yacute; ad&yacute; girin';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'L&uuml;tfen &thorn;ifre girin';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Kullan&yacute;c&yacute; ad&yacute; &ccedil;ok k&yacute;sa';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = '&THORN;ifreniz &ccedil;ok k&yacute;sa';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Kullan&yacute;c&yacute; ad&yacute;n&yacute;z &ccedil;ok uzun';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = '&THORN;ifreniz &ccedil;ok uzun';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Kullan&yacute;c&yacute; ad&yacute; ve &thorn;ifreniz yanl&yacute;&thorn;';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Bir email adresi girmelisiniz.';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'L&uuml;tfen email adresini girin';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Bu email adresi veritaban&yacute;nda bulunamad&yacute;';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Uygunsuz email &thorn;ifresi, L&uuml;tfen Y&ouml;netici ile Kontak kurun';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Sizin kullan&yacute;c&yacute; ad&yacute;n&yacute;z ve &thorn;ifreniz email adresinize g&ouml;nderildi';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Paralonuzu 1 saat aral&yacute;klarla de&eth;i&thorn;tirebilirsiniz.';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Ho&thorn;geldiniz Website Baker Y&ouml;netimine';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Uyar&yacute;! Y&uuml;kleme dizini halen duruyor!';
+$MESSAGE['START']['CURRENT_USER'] = 'Sizin kulland&yacute;&eth;&yacute;n&yacute;z giri&thorn; ismi:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Unable to open the configuration file';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Cannot write to configuration file';
+$MESSAGE['SETTINGS']['SAVED'] = 'Ayarlar ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Not Edin: Bu buton b&uuml;t&uuml;n de&eth;i&thorn;iklikleri ilk haline geri getirir';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Please note: this is only recommended for testing environments';
+
+$MESSAGE['USERS']['ADDED'] = 'Kullan&yacute;c&yacute;, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde ekledi';
+$MESSAGE['USERS']['SAVED'] = 'Kullan&yacute;c&yacute;, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['USERS']['DELETED'] = 'Kullan&yacute;c&yacute;, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde silindi';
+$MESSAGE['USERS']['NO_GROUP'] = 'Hi&ccedil;bir grup se&ccedil;ilmedi';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Girdi&eth;iniz kullan&yacute;c&yacute; ad&yacute; k&yacute;sa';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Girdi&eth;iniz &thorn;ifre k&yacute;sa';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Girdi&eth;iniz &thorn;ifre bulunamad&yacute;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Girdi&eth;iniz email adresi ge&ccedil;ersiz';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Girdi&eth;iniz email ba&thorn;kas&yacute; taraf&yacute;ndan kullan&yacute;l&yacute;yor';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Girdi&eth;iniz kullan&yacute;c&yacute; ad&yacute; ba&thorn;kas&yacute; taraf&yacute;ndan kullan&yacute;l&yacute;yor';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Not Edin: Sen sadece yukar&yacute;daki alanlara de&eth;erleri gir. E&eth;er bu kullan&yacute;c&yacute;lar&yacute; dile de&eth;i&thorn;tirseydin.';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Se&ccedil;ti&eth;iniz kullan&yacute;c&yacute;lar&yacute; silmek istedi&eth;inizden eminmisiniz?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Grup, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde ekledi';
+$MESSAGE['GROUPS']['SAVED'] = 'Grup, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['GROUPS']['DELETED'] = 'Grup, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde silindi';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Grup ad&yacute; bo&thorn;';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Se&ccedil;ti&eth;iniz grubu silmek istedi&eth;inizden eminmisiniz? (ve bu gruba ekli kullan&yacute;c&yacute;lar&yacute;)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Hi&ccedil;bir grup bulmad&yacute;';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Bu grup ad&yacute; zaten var';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Ayr&yacute;nt&yacute;lar, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde g&uuml;ncelle&thorn;tirdi';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Girdi&eth;iniz &thorn;ifre yanl&yacute;&thorn;';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Parola, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde de&eth;i&thorn;tirdi';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Please note: to change the template you must go to the Settings section';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Giremezsiniz ../ i&ccedil;indeki dizin ad&yacute;';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Directory does not exist';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Cannot have ../ in the folder target';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Giremezsiniz ../ ismine';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'index.php isimini kullanamazs&yacute;n&yacute;z';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'No media found in the current folder';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Dosya Bulunamad&yacute;';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Dosya, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde silindi';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Dizin, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde silindi';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Dosya ve dizinleri silmek istedi&eth;inizden eminmisiniz?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Se&ccedil;ti&eth;iniz dosya silinemiyor';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Se&ccedil;ti&eth;iniz dizin silinemiyor';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Mutlaka bir isim girmelisiniz';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Mutlaka bir uzant&yacute; girmelisinz';
+$MESSAGE['MEDIA']['RENAMED'] = 'Yeni isim ver ba&thorn;ar&yacute;l&yacute;.';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Yeni isim ver ba&thorn;ar&yacute;s&yacute;z';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Girmi&thorn; oldu&eth;unuz dosya zaten var';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Girmi&thorn; oldu&eth;unuz dizin zaten var';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Dizin, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde yaratt&yacute;';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Dizin yaratma ba&thorn;ar&yacute;s&yacute;z';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' Dosya ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde y&uuml;klendi';
+$MESSAGE['MEDIA']['UPLOADED'] = ' Dosyalar ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde y&uuml;klendi';
+
+$MESSAGE['PAGES']['ADDED'] = 'Sayfa, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde ekledi';
+$MESSAGE['PAGES']['ADDED_HEADING'] = '&Uuml;st sayfa, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde ekledi';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Bu sayfa veya dosya zaten var.';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Yarat&yacute;rken hatal&yacute; giri&thorn; /pages dizini i&ccedil;in (Yetersiz yetki)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Silinirken hatal&yacute; giri&thorn; /pages dizini i&ccedil;in (Yetersiz yetki)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Sayfa bulunamad&yacute;';
+$MESSAGE['PAGES']['SAVED'] = 'Sayfa, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Sayfa ayarlar&yacute; ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Kay&yacute;t edilen sayfa hatal&yacute;';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Se&ccedil;ti&eth;iniz sayfay&yacute; silmek istedi&eth;inizden eminmisiniz (B&uuml;t&uuml;n alt sayfalar silinecektir)';
+$MESSAGE['PAGES']['DELETED'] = 'Sayfa, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde silindi';
+$MESSAGE['PAGES']['RESTORED'] = 'Sayfa, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kurtar&yacute;ld&yacute;';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'L&uuml;tfen sayfa ba&thorn;l&yacute;&eth;&yacute;n&yacute; girin';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'L&uuml;tfen men&uuml; ba&thorn;l&yacute;&eth;&yacute;n&yacute; girin';
+$MESSAGE['PAGES']['REORDERED'] = 'Ba&thorn;ar&yacute;l&yacute; bi&ccedil;imde yenilendi';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Yenilenen sayfada hata var';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Sizin bu sayfay&yacute; de&eth;i&thorn;tirme izininiz yok';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Dosyaya yaz&yacute;lam&yacute;yor /pages/intro.php (Yetersiz yetki)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Giri&thorn; sayfas&yacute; ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kay&yacute;t edildi';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Son de&eth;i&thorn;iklik yapan';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Buraya t&yacute;klayarak Giri&thorn; Sayfas&yacute;n&yacute; D&uuml;zenleye Bilirsiniz.';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Section properties saved successfully';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Sayfaya Git';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'L&uuml;tfen geri d&ouml;n&uuml;p b&uuml;t&uuml;n alanlar&yacute; doldurunuz';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Y&uuml;kledi&eth;in dosyan&yacute;n izin verilen dosya olmas&yacute;na dikkat edin:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Y&uuml;kledi&eth;in dosyalar&yacute;n izin verilen dosya olmas&yacute;na dikkat edin:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Dosya Y&uuml;klenemiyor';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Daha &ouml;nce y&uuml;klenmi&thorn;ti';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Y&uuml;klenemiyor';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Kald&yacute;r&yacute;lam&yacute;yor';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Dosya unzip edilemiyor';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde yerle&thorn;tirildi';
+$MESSAGE['GENERIC']['UPGRADED'] = 'G&uuml;ncelleme ba&thorn;ar&yacute;l&yacute; bir&thorn;ekilde yap&yacute;ld&yacute;';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Ba&thorn;ar&yacute;l&yacute; bir &thorn;ekilde kald&yacute;r&yacute;ld&yacute;';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Uygunsuz, hedef dizin yaz&yacute;lam&yacute;yor';
+$MESSAGE['GENERIC']['INVALID'] = 'Senin y&uuml;kledi&eth;in dosya, ge&ccedil;ersizdir';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Kald&yacute;rama: Se&ccedil;ilen dosya, kullan&yacute;mdad&yacute;r';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Website Under Construction';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'L&uuml;tfen daha sonra kontrol edin...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Ol hasta memnun et, bu, bir anda alabilirdi.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Dosya a&ccedil;arken hata.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'You must enter details for the following fields';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Sorry, this form has been submitted too many times so far this hour. Please retry in the next hour.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'The verification number (also known as Captcha) that you entered is incorrect. If you are having problems reading the Captcha, please email: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Mod&uuml;l, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Kal&yacute;plar, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Diller, ba&thorn;ar&yacute;l&yacute; bir &thorn;ekildeninkini tekrar y&uuml;klendi';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/TR.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/RU.php
===================================================================
--- tags/2.7.0/wb/languages/RU.php	(nonexistent)
+++ tags/2.7.0/wb/languages/RU.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'RU';
+$language_name = 'Russian';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Kirill Karakulko (kirill@nadosoft.com)';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = '&#1057;&#1090;&#1072;&#1088;&#1090;';
+$MENU['PAGES'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$MENU['MEDIA'] = '&#1060;&#1072;&#1081;&#1083;&#1099;';
+$MENU['ADDONS'] = '&#1044;&#1086;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1077; &#1092;&#1091;&#1085;&#1082;&#1094;&#1080;&#1080;';
+$MENU['MODULES'] = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080;';
+$MENU['TEMPLATES'] = '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;&#1099;';
+$MENU['LANGUAGES'] = '&#1071;&#1079;&#1099;&#1082;&#1080;';
+$MENU['PREFERENCES'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072;';
+$MENU['SETTINGS'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$MENU['ADMINTOOLS'] = '&#1040;&#1076;&#1084;&#1080;&#1085;-&#1087;&#1072;&#1085;&#1077;&#1083;&#1100;';
+$MENU['ACCESS'] = '&#1044;&#1086;&#1089;&#1090;&#1091;&#1087;';
+$MENU['USERS'] = '&#1055;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1080;';
+$MENU['GROUPS'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1099;';
+$MENU['HELP'] = '&#1055;&#1086;&#1084;&#1086;&#1097;&#1100;';
+$MENU['VIEW'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100;';
+$MENU['LOGOUT'] = '&#1042;&#1099;&#1093;&#1086;&#1076;';
+$MENU['LOGIN'] = '&#1042;&#1093;&#1086;&#1076;';
+$MENU['FORGOT'] = '&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;?';
+
+// Section overviews
+$OVERVIEW['START'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
+$OVERVIEW['PAGES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1084;&#1080; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$OVERVIEW['MEDIA'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1092;&#1072;&#1081;&#1083;&#1072;&#1084;&#1080;';
+$OVERVIEW['MODULES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103;&#1084;&#1080; &#1084;&#1086;&#1076;&#1091;&#1083;&#1103;&#1084;&#1080;';
+$OVERVIEW['TEMPLATES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;&#1084;&#1080;';
+$OVERVIEW['LANGUAGES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1103;&#1079;&#1099;&#1082;&#1086;&#1074;&#1099;&#1084;&#1080; &#1087;&#1072;&#1082;&#1077;&#1090;&#1072;&#1084;&#1080;';
+$OVERVIEW['PREFERENCES'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;, &#1090;&#1072;&#1082;&#1080;&#1077; &#1082;&#1072;&#1082; &#1072;&#1076;&#1088;&#1077;&#1089; e-mail, &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;...';
+$OVERVIEW['SETTINGS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1072;&#1084;';
+$OVERVIEW['USERS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&#1084;&#1080;';
+$OVERVIEW['GROUPS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1075;&#1088;&#1091;&#1087;&#1087;&#1072;&#1084;&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1081; &#1080; &#1087;&#1088;&#1072;&#1074;&#1072; &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1072;';
+$OVERVIEW['HELP'] = '&#1054;&#1090;&#1074;&#1077;&#1090;&#1099; &#1085;&#1072; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099;';
+$OVERVIEW['VIEW'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1077; &#1074; &#1085;&#1086;&#1074;&#1086;&#1084; &#1086;&#1082;&#1085;&#1077;';
+$OVERVIEW['ADMINTOOLS'] = '&#1044;&#1086;&#1089;&#1090;&#1091;&#1087; &#1082; &#1089;&#1088;&#1077;&#1076;&#1089;&#1090;&#1074;&#1072;&#1084; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;/&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';
+$HEADING['DELETED_PAGES'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$HEADING['ADD_PAGE'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';
+$HEADING['ADD_HEADING'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;';
+$HEADING['MODIFY_PAGE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';
+$HEADING['MODIFY_PAGE_SETTINGS'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1088;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$HEADING['MANAGE_SECTIONS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1089;&#1077;&#1082;&#1094;&#1080;&#1103;&#1084;&#1080;';
+$HEADING['MODIFY_INTRO_PAGE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1075;&#1083;&#1072;&#1074;&#1085;&#1091;&#1102; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';
+
+$HEADING['BROWSE_MEDIA'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083;&#1099;';
+$HEADING['CREATE_FOLDER'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1087;&#1072;&#1087;&#1082;&#1091;';
+$HEADING['UPLOAD_FILES'] = '&#1047;&#1072;&#1082;&#1072;&#1095;&#1072;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083;(&#1099;)';
+
+$HEADING['INSTALL_MODULE'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1084;&#1086;&#1076;&#1091;&#1083;&#1100;';
+$HEADING['UNINSTALL_MODULE'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1084;&#1086;&#1076;&#1091;&#1083;&#1100;';
+$HEADING['MODULE_DETAILS'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1084;&#1086;&#1076;&#1091;&#1083;&#1103;';
+
+$HEADING['INSTALL_TEMPLATE'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$HEADING['UNINSTALL_TEMPLATE'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$HEADING['TEMPLATE_DETAILS'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;';
+
+$HEADING['INSTALL_LANGUAGE'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1103;&#1079;&#1099;&#1082;';
+$HEADING['UNINSTALL_LANGUAGE'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1103;&#1079;&#1099;&#1082;';
+$HEADING['LANGUAGE_DETAILS'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1103;&#1079;&#1099;&#1082;&#1072;';
+
+$HEADING['MY_SETTINGS'] = '&#1052;&#1086;&#1080; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$HEADING['MY_EMAIL'] = '&#1052;&#1086;&#1081; &#1072;&#1076;&#1088;&#1077;&#1089; e-mail';
+$HEADING['MY_PASSWORD'] = '&#1052;&#1086;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+
+$HEADING['GENERAL_SETTINGS'] = '&#1054;&#1073;&#1097;&#1080;&#1077; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$HEADING['DEFAULT_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1087;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
+$HEADING['SEARCH_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1087;&#1086;&#1080;&#1089;&#1082;&#1072;';
+$HEADING['FILESYSTEM_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1086;&#1081; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1099;';
+$HEADING['SERVER_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1089;&#1088;&#1077;&#1074;&#1077;&#1088;&#1072;';
+$HEADING['WBMAILER_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1087;&#1086;&#1095;&#1090;&#1086;&#1074;&#1086;&#1081; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1084;&#1099;';
+$HEADING['ADMINISTRATION_TOOLS'] = '&#1057;&#1088;&#1077;&#1076;&#1089;&#1090;&#1074;&#1072; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;';
+
+$HEADING['MODIFY_DELETE_USER'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;/&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;';
+$HEADING['ADD_USER'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;';
+$HEADING['MODIFY_USER'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;';
+
+$HEADING['MODIFY_DELETE_GROUP'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;/&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1075;&#1088;&#1091;&#1087;&#1087;&#1091;';
+$HEADING['ADD_GROUP'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1075;&#1088;&#1091;&#1087;&#1087;&#1091;';
+$HEADING['MODIFY_GROUP'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1075;&#1088;&#1091;&#1087;&#1087;&#1091;';
+
+// Other text
+$TEXT['OPEN'] = '&#1054;&#1090;&#1082;&#1088;&#1099;&#1090;&#1100;';
+$TEXT['ADD'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100;';
+$TEXT['MODIFY'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;';
+$TEXT['SETTINGS'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$TEXT['DELETE'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;';
+$TEXT['SAVE'] = '&#1057;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090;&#1100;';
+$TEXT['RESET'] = '&#1057;&#1073;&#1088;&#1086;&#1089;&#1080;&#1090;&#1100;';
+$TEXT['LOGIN'] = '&#1042;&#1093;&#1086;&#1076;';
+$TEXT['RELOAD'] = '&#1055;&#1077;&#1088;&#1077;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1100;';
+$TEXT['CANCEL'] = '&#1054;&#1090;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;';
+$TEXT['NAME'] = '&#1048;&#1084;&#1103;';
+$TEXT['PLEASE_SELECT'] = '&#1042;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077;';
+$TEXT['TITLE'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;';
+$TEXT['PARENT'] = '&#1056;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1100;';
+$TEXT['TYPE'] = '&#1058;&#1080;&#1087;';
+$TEXT['VISIBILITY'] = '&#1042;&#1080;&#1076;&#1080;&#1084;&#1086;&#1089;&#1090;&#1100;';
+$TEXT['PRIVATE'] = '&#1047;&#1072;&#1082;&#1088;&#1099;&#1090;&#1072;&#1103;';
+$TEXT['PUBLIC'] = '&#1044;&#1083;&#1103; &#1054;&#1073;&#1097;&#1077;&#1075;&#1086; &#1044;&#1086;&#1089;&#1090;&#1091;&#1087;&#1072;';
+$TEXT['NONE'] = '&#1053;&#1077;&#1090;';
+$TEXT['NONE_FOUND'] = '&#1053;&#1080;&#1095;&#1077;&#1075;&#1086; &#1053;&#1077; &#1053;&#1072;&#1081;&#1076;&#1077;&#1085;&#1086;';
+$TEXT['CURRENT'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072;&#1103;';
+$TEXT['CHANGE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;';
+$TEXT['WINDOW'] = '&#1054;&#1082;&#1085;&#1086;';
+$TEXT['DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1077;&#1074;&#1099;&#1077; &#1089;&#1083;&#1086;&#1074;&#1072;';
+$TEXT['ADMINISTRATORS'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1099;';
+$TEXT['PRIVATE_VIEWERS'] = 'Private Viewers';
+$TEXT['EXPAND'] = '&#1056;&#1072;&#1089;&#1082;&#1088;&#1099;&#1090;&#1100;';
+$TEXT['COLLAPSE'] = '&#1057;&#1074;&#1077;&#1088;&#1085;&#1091;&#1090;&#1100;';
+$TEXT['MOVE_UP'] = '&#1055;&#1077;&#1088;&#1077;&#1076;&#1074;&#1080;&#1085;&#1091;&#1090;&#1100; &#1074;&#1074;&#1077;&#1088;&#1093;';
+$TEXT['MOVE_DOWN'] = '&#1055;&#1077;&#1088;&#1077;&#1076;&#1074;&#1080;&#1085;&#1091;&#1090;&#1100; &#1074;&#1085;&#1080;&#1079;';
+$TEXT['RENAME'] = '&#1055;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$TEXT['MODIFY_SETTINGS'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+$TEXT['MODIFY_CONTENT'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['VIEW'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100;';
+$TEXT['UP'] = '&#1042;&#1074;&#1077;&#1088;&#1093;';
+$TEXT['FORGOTTEN_DETAILS'] = '&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1074;&#1072;&#1096;&#1080; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;?';
+$TEXT['NEED_TO_LOGIN'] = '&#1053;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1086; &#1074;&#1086;&#1081;&#1090;&#1080;?';
+$TEXT['SEND_DETAILS'] = '&#1055;&#1086;&#1089;&#1083;&#1072;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;';
+$TEXT['USERNAME'] = '&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;';
+$TEXT['PASSWORD'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['HOME'] = '&#1043;&#1083;&#1072;&#1074;&#1085;&#1072;&#1103;';
+$TEXT['TARGET_FOLDER'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072;&#1103; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['OVERWRITE_EXISTING'] = '&#1055;&#1077;&#1088;&#1077;&#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1090;&#1100; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1102;&#1097;&#1080;&#1081;(&#1091;&#1102;)';
+$TEXT['FILE'] = '&#1060;&#1072;&#1081;&#1083;';
+$TEXT['FILES'] = '&#1060;&#1072;&#1081;&#1083;&#1099;';
+$TEXT['FOLDER'] = '&#1055;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['FOLDERS'] = '&#1055;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['CREATE_FOLDER'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1087;&#1072;&#1087;&#1082;&#1091;';
+$TEXT['UPLOAD_FILES'] = '&#1047;&#1072;&#1082;&#1072;&#1095;&#1072;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083;(&#1099;)';
+$TEXT['CURRENT_FOLDER'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072;&#1103; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['TO'] = '&#1074;';
+$TEXT['FROM'] = '&#1080;&#1079;';
+$TEXT['INSTALL'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100;';
+$TEXT['UNINSTALL'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;';
+$TEXT['VIEW_DETAILS'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1076;&#1077;&#1090;&#1072;&#1083;&#1080;';
+$TEXT['DISPLAY_NAME'] = '&#1042;&#1099;&#1074;&#1077;&#1089;&#1090;&#1080; &#1053;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['AUTHOR'] = '&#1040;&#1074;&#1090;&#1086;&#1088;';
+$TEXT['VERSION'] = '&#1042;&#1077;&#1088;&#1089;&#1080;&#1103;';
+$TEXT['DESIGNED_FOR'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1085;&#1086; &#1076;&#1083;&#1103;';
+$TEXT['DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = '&#1071;&#1079;&#1099;&#1082;';
+$TEXT['TIMEZONE'] = '&#1042;&#1088;&#1077;&#1084;&#1077;&#1085;&#1085;&#1072;&#1103; &#1079;&#1086;&#1085;&#1072;';
+$TEXT['CURRENT_PASSWORD'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1080;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['NEW_PASSWORD'] = '&#1053;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['RETYPE_NEW_PASSWORD'] = '&#1055;&#1086;&#1074;&#1090;&#1086;&#1088;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['ACTIVE'] = '&#1040;&#1082;&#1090;&#1080;&#1074;&#1085;&#1072;&#1103;';
+$TEXT['DISABLED'] = '&#1054;&#1090;&#1089;&#1091;&#1090;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$TEXT['ENABLED'] = '&#1055;&#1088;&#1080;&#1089;&#1091;&#1090;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$TEXT['RETYPE_PASSWORD'] = '&#1055;&#1086;&#1074;&#1090;&#1086;&#1088;&#1080;&#1090;&#1100; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['GROUP'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1072;';
+$TEXT['SYSTEM_PERMISSIONS'] = '&#1057;&#1080;&#1089;&#1090;&#1077;&#1084;&#1085;&#1099;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072;';
+$TEXT['MODULE_PERMISSIONS'] = '&#1055;&#1088;&#1072;&#1074;&#1072; &#1074; &#1084;&#1086;&#1076;&#1091;&#1083;&#1077;';
+$TEXT['SHOW_ADVANCED'] = '&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1088;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1085;&#1099;&#1077; &#1086;&#1087;&#1094;&#1080;&#1080;';
+$TEXT['HIDE_ADVANCED'] = '&#1057;&#1087;&#1088;&#1103;&#1090;&#1103;&#1090;&#1100; &#1088;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1085;&#1099;&#1077; &#1086;&#1087;&#1094;&#1080;&#1080;';
+$TEXT['BASIC'] = '&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1099;&#1077;';
+$TEXT['ADVANCED'] = '&#1056;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1085;&#1099;&#1077;';
+$TEXT['WEBSITE'] = '&#1042;&#1077;&#1073;&#1089;&#1072;&#1081;&#1090;';
+$TEXT['DEFAULT'] = '&#1055;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
+$TEXT['KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1077;&#1074;&#1099;&#1077; &#1089;&#1083;&#1086;&#1074;&#1072;';
+$TEXT['TEXT'] = '&#1058;&#1077;&#1082;&#1089;&#1090;';
+$TEXT['HEADER'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;';
+$TEXT['FOOTER'] = '&#1053;&#1080;&#1078;&#1085;&#1103;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100;';
+$TEXT['TEMPLATE'] = '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$TEXT['INSTALLATION'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1072;';
+$TEXT['DATABASE'] = '&#1041;&#1072;&#1079;&#1072; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093;';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = '&#1047;&#1072;&#1089;&#1090;&#1072;&#1074;&#1082;&#1072;';
+$TEXT['PAGE'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['SIGNUP'] = '&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['PHP_ERROR_LEVEL'] = '&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100; &#1074;&#1099;&#1074;&#1086;&#1076;&#1072; &#1086;&#1096;&#1080;&#1073;&#1086;&#1082; PHP';
+$TEXT['ADMIN'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;';
+$TEXT['PATH'] = '&#1055;&#1091;&#1090;&#1100;';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = '&#1056;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['TABLE_PREFIX'] = '&#1055;&#1088;&#1077;&#1092;&#1080;&#1082;&#1089; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;';
+$TEXT['CHANGES'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['ADMINISTRATION'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['FORGOT_DETAILS'] = '&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;?';
+$TEXT['LOGGED_IN'] = '&#1042;&#1093;&#1086;&#1076; &#1086;&#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1083;&#1077;&#1085;';
+$TEXT['WELCOME_BACK'] = '&#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$TEXT['FULL_NAME'] = '&#1055;&#1086;&#1083;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103;';
+$TEXT['ACCOUNT_SIGNUP'] = 'Account Sign-Up';
+$TEXT['LINK'] = '&#1057;&#1089;&#1099;&#1083;&#1082;&#1072;';
+$TEXT['ANCHOR'] = '&#1071;&#1082;&#1086;&#1088;&#1100;';
+$TEXT['TARGET'] = '&#1054;&#1090;&#1082;&#1088;&#1099;&#1074;&#1072;&#1090;&#1100; &#1074;';
+$TEXT['NEW_WINDOW'] = '&#1053;&#1086;&#1074;&#1086;&#1077; &#1086;&#1082;&#1085;&#1086;';
+$TEXT['SAME_WINDOW'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1077;&#1077; &#1086;&#1082;&#1085;&#1086;';
+$TEXT['TOP_FRAME'] = '&#1043;&#1083;&#1072;&#1074;&#1085;&#1099;&#1081; &#1092;&#1088;&#1077;&#1081;&#1084;';
+$TEXT['PAGE_LEVEL_LIMIT'] = '&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100; &#1074;&#1083;&#1086;&#1078;&#1077;&#1085;&#1085;&#1086;&#1089;&#1090;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;';
+$TEXT['SUCCESS'] = '&#1059;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$TEXT['ERROR'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072;';
+$TEXT['ARE_YOU_SURE'] = '&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;?';
+$TEXT['YES'] = '&#1044;&#1072;';
+$TEXT['NO'] = '&#1053;&#1077;&#1090;';
+$TEXT['SYSTEM_DEFAULT'] = '&#1055;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
+$TEXT['PAGE_TITLE'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$TEXT['MENU_TITLE'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1084;&#1077;&#1085;&#1102;';
+$TEXT['ACTIONS'] = '&#1044;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;';
+$TEXT['UNKNOWN'] = '&#1053;&#1077;&#1080;&#1079;&#1074;&#1077;&#1089;&#1090;&#1085;&#1086;';
+$TEXT['BLOCK'] = '&#1041;&#1083;&#1086;&#1082;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$TEXT['SEARCH'] = '&#1055;&#1086;&#1080;&#1089;&#1082;';
+$TEXT['SEARCHING'] = '&#1048;&#1076;&#1077;&#1090; &#1087;&#1086;&#1080;&#1089;&#1082;';
+$TEXT['POST'] = '&#1054;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100;';
+$TEXT['COMMENT'] = '&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$TEXT['COMMENTS'] = '&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;';
+$TEXT['COMMENTING'] = '&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1080;&#1088;&#1091;&#1102;';
+$TEXT['SHORT'] = '&#1042; &#1082;&#1088;&#1072;&#1090;&#1094;&#1077;';
+$TEXT['LONG'] = '&#1055;&#1086;&#1083;&#1085;&#1086;&#1089;&#1090;&#1100;&#1102;';
+$TEXT['LOOP'] = '&#1086;&#1089;&#1085;&#1086;&#1074;&#1085;&#1072;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100;';
+$TEXT['FIELD'] = '&#1055;&#1086;&#1083;&#1077;';
+$TEXT['REQUIRED'] = '&#1053;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1077;';
+$TEXT['LENGTH'] = '&#1044;&#1083;&#1080;&#1085;&#1072;';
+$TEXT['MESSAGE'] = '&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['SUBJECT'] = '&#1058;&#1077;&#1084;&#1072;';
+$TEXT['MATCH'] = '&#1057;&#1086;&#1074;&#1087;&#1072;&#1076;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['ALL_WORDS'] = '&#1042;&#1089;&#1077; &#1089;&#1083;&#1086;&#1074;&#1072;';
+$TEXT['ANY_WORDS'] = '&#1051;&#1102;&#1073;&#1086;&#1077; &#1089;&#1083;&#1086;&#1074;&#1086;';
+$TEXT['EXACT_MATCH'] = '&#1058;&#1086;&#1095;&#1085;&#1086;&#1077; &#1089;&#1086;&#1074;&#1087;&#1072;&#1076;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['SHOW'] = '&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100;';
+$TEXT['HIDE'] = '&#1057;&#1087;&#1088;&#1103;&#1090;&#1072;&#1090;&#1100;';
+$TEXT['START_PUBLISHING'] = '&#1053;&#1072;&#1095;&#1072;&#1090;&#1100; &#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1072;&#1094;&#1080;&#1102;';
+$TEXT['FINISH_PUBLISHING'] = '&#1047;&#1072;&#1082;&#1086;&#1085;&#1095;&#1080;&#1090;&#1100; &#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1072;&#1094;&#1080;&#1102;';
+$TEXT['DATE'] = '&#1044;&#1072;&#1090;&#1072;';
+$TEXT['START'] = '&#1057;&#1090;&#1072;&#1088;&#1090;';
+$TEXT['END'] = '&#1047;&#1072;&#1082;&#1086;&#1085;&#1095;&#1080;&#1090;&#1100;';
+$TEXT['IMAGE'] = '&#1050;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1091;';
+$TEXT['ICON'] = '&#1048;&#1082;&#1086;&#1085;&#1082;&#1072;';
+$TEXT['SECTION'] = '&#1057;&#1077;&#1082;&#1094;&#1080;&#1103;';
+$TEXT['DATE_FORMAT'] = '&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1076;&#1072;&#1090;&#1099;';
+$TEXT['TIME_FORMAT'] = '&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080;';
+$TEXT['RESULTS'] = '&#1056;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1099;';
+$TEXT['RESIZE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1088;&#1072;&#1079;&#1084;&#1077;&#1088;';
+$TEXT['MANAGE'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;:';
+$TEXT['CODE'] = '&#1050;&#1086;&#1076;';
+$TEXT['WIDTH'] = '&#1064;&#1080;&#1088;&#1080;&#1085;&#1072;';
+$TEXT['HEIGHT'] = '&#1042;&#1099;&#1089;&#1086;&#1090;&#1072;';
+$TEXT['MORE'] = '&#1041;&#1086;&#1083;&#1100;&#1096;&#1077;';
+$TEXT['READ_MORE'] = '&#1063;&#1080;&#1090;&#1072;&#1090;&#1100; &#1076;&#1072;&#1083;&#1100;&#1096;&#1077;';
+$TEXT['CHANGE_SETTINGS'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1077; &#1089;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;';
+$TEXT['CURRENT_PAGE'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['CLOSE'] = '&#1047;&#1072;&#1082;&#1088;&#1099;&#1090;&#1100;';
+$TEXT['INTRO_PAGE'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;-&#1079;&#1072;&#1089;&#1090;&#1072;&#1074;&#1082;&#1072;';
+$TEXT['INSTALLATION_URL'] = 'URL &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$TEXT['INSTALLATION_PATH'] = '&#1055;&#1091;&#1090;&#1100; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;';
+$TEXT['PAGE_EXTENSION'] = '&#1056;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$TEXT['NO_RESULTS'] = '&#1053;&#1077;&#1090; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1086;&#1074;';
+$TEXT['WEBSITE_TITLE'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1077;&#1074;&#1099;&#1077; &#1089;&#1083;&#1086;&#1074;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_HEADER'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_FOOTER'] = '&#1053;&#1080;&#1078;&#1085;&#1103;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['RESULTS_HEADER'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1086;&#1074;';
+$TEXT['RESULTS_LOOP'] = '&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1086;&#1081; &#1073;&#1083;&#1086;&#1082;';
+$TEXT['RESULTS_FOOTER'] = '&#1053;&#1080;&#1078;&#1085;&#1103;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1086;&#1074;';
+$TEXT['LEVEL'] = '&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100;';
+$TEXT['NOT_FOUND'] = '&#1053;&#1077; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085;&#1086;';
+$TEXT['PAGE_SPACER'] = '&#1056;&#1072;&#1079;&#1076;&#1077;&#1083;&#1080;&#1090;&#1077;&#1083;&#1100;';
+$TEXT['MATCHING'] = '&#1057;&#1086;&#1074;&#1087;&#1072;&#1076;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['TEMPLATE_PERMISSIONS'] = '&#1055;&#1088;&#1072;&#1074;&#1072; &#1074; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;&#1093;';
+$TEXT['PAGES_DIRECTORY'] = '&#1044;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;';
+$TEXT['MEDIA_DIRECTORY'] = '&#1044;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;';
+$TEXT['FILE_MODE'] = 'File Mode';
+$TEXT['USER'] = '&#1042;&#1083;&#1072;&#1076;&#1077;&#1083;&#1077;&#1094;';
+$TEXT['OTHERS'] = '&#1054;&#1089;&#1090;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077;';
+$TEXT['READ'] = '&#1063;&#1090;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['WRITE'] = '&#1047;&#1072;&#1087;&#1080;&#1089;&#1100;';
+$TEXT['EXECUTE'] = '&#1047;&#1072;&#1087;&#1091;&#1089;&#1082;';
+$TEXT['SMART_LOGIN'] = '&#1059;&#1084;&#1085;&#1099;&#1081; Login';
+$TEXT['REMEMBER_ME'] = '&#1047;&#1072;&#1087;&#1086;&#1084;&#1085;&#1080;&#1090;&#1100; &#1084;&#1077;&#1085;&#1103;';
+$TEXT['FILESYSTEM_PERMISSIONS'] = '&#1055;&#1088;&#1072;&#1074;&#1072; &#1085;&#1072; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1086;&#1081; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1077;';
+$TEXT['DIRECTORIES'] = '&#1055;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['DIRECTORY_MODE'] = 'Directory Mode';
+$TEXT['LIST_OPTIONS'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1089;&#1087;&#1080;&#1089;&#1082;&#1072;';
+$TEXT['OPTION'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1086;';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = '&#1056;&#1072;&#1079;&#1088;&#1077;&#1096;&#1080;&#1090;&#1100; &#1084;&#1091;&#1083;&#1100;&#1090;&#1080;-&#1074;&#1099;&#1073;&#1086;&#1088;';
+$TEXT['TEXTFIELD'] = 'Textfield';
+$TEXT['TEXTAREA'] = 'Textarea';
+$TEXT['SELECT_BOX'] = 'Select Box';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox &#1075;&#1088;&#1091;&#1087;&#1087;&#1072;';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Button &#1075;&#1088;&#1091;&#1087;&#1087;&#1072;';
+$TEXT['SIZE'] = '&#1056;&#1072;&#1079;&#1084;&#1077;&#1088;';
+$TEXT['DEFAULT_TEXT'] = '&#1058;&#1077;&#1082;&#1089;&#1090; &#1087;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
+$TEXT['SEPERATOR'] = '&#1056;&#1072;&#1079;&#1076;&#1077;&#1083;&#1080;&#1090;&#1077;&#1083;&#1100;';
+$TEXT['BACK'] = '&#1053;&#1072;&#1079;&#1072;&#1076;';
+$TEXT['UNDER_CONSTRUCTION'] = '&#1042; &#1089;&#1090;&#1072;&#1076;&#1080;&#1080; &#1088;&#1072;&#1079;&#1088;&#1072;&#1073;&#1086;&#1090;&#1082;&#1080;';
+$TEXT['MULTISELECT'] = '&#1052;&#1091;&#1083;&#1100;&#1090;&#1080;-&#1074;&#1099;&#1073;&#1086;&#1088;';
+$TEXT['SHORT_TEXT'] = '&#1050;&#1088;&#1072;&#1090;&#1082;&#1080;&#1081; &#1090;&#1077;&#1082;&#1089;&#1090;';
+$TEXT['LONG_TEXT'] = '&#1058;&#1077;&#1082;&#1089;&#1090; &#1087;&#1086;&#1083;&#1085;&#1086;&#1089;&#1090;&#1100;&#1102;';
+$TEXT['HOMEPAGE_REDIRECTION'] = '&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1084;&#1072;&#1096;&#1085;&#1077;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$TEXT['HEADING'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;';
+$TEXT['MULTIPLE_MENUS'] = '&#1052;&#1091;&#1083;&#1100;&#1090;&#1080;-&#1084;&#1077;&#1085;&#1102;';
+$TEXT['REGISTERED'] = '&#1047;&#1072;&#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1099;&#1077;';
+$TEXT['SECTION_BLOCKS'] = '&#1041;&#1083;&#1086;&#1082;&#1080; &#1089;&#1077;&#1082;&#1094;&#1080;&#1081;';
+$TEXT['REGISTERED_VIEWERS'] = '&#1047;&#1072;&#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1085;&#1099;&#1077; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1080;';
+$TEXT['ALLOWED_VIEWERS'] = '&#1056;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1085;&#1099;&#1077; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1080;';
+$TEXT['SUBMISSION_ID'] = 'ID &#1087;&#1086;&#1076;&#1087;&#1080;&#1089;&#1082;&#1080;';
+$TEXT['SUBMISSIONS'] = '&#1055;&#1086;&#1076;&#1087;&#1080;&#1089;&#1082;&#1080;';
+$TEXT['SUBMITTED'] = '&#1054;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1086;';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1081; &#1074; &#1095;&#1072;&#1089;';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = '&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1081;, &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1103;&#1077;&#1084;&#1099;&#1093; &#1074; &#1073;&#1072;&#1079;&#1077;';
+$TEXT['EMAIL_ADDRESS'] = 'Email &#1072;&#1076;&#1088;&#1077;&#1089;';
+$TEXT['CUSTOM'] = '&#1047;&#1072;&#1076;&#1072;&#1090;&#1100; e-mail';
+$TEXT['ANONYMOUS'] = 'Anonymous';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'OS &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = '&#1047;&#1072;&#1087;&#1080;&#1089;&#1100; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1072; &#1074;&#1089;&#1077;&#1084;';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = '&#1044;&#1086;&#1084;&#1072;&#1096;&#1085;&#1103;&#1103; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['HOME_FOLDERS'] = '&#1044;&#1086;&#1084;&#1072;&#1096;&#1085;&#1080;&#1077; &#1087;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['PAGE_TRASH'] = '&#1050;&#1086;&#1088;&#1079;&#1080;&#1085;&#1072;';
+$TEXT['INLINE'] = '&#1042;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085;&#1085;&#1072;&#1103;';
+$TEXT['SEPARATE'] = '&#1056;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077;&#1085;&#1085;&#1099;&#1081;';
+$TEXT['DELETED'] = '&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1085;&#1072;&#1103;';
+$TEXT['VIEW_DELETED_PAGES'] = '&#1055;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1085;&#1099;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$TEXT['EMPTY_TRASH'] = '&#1054;&#1095;&#1080;&#1089;&#1090;&#1080;&#1090;&#1100; &#1082;&#1086;&#1088;&#1079;&#1080;&#1085;&#1091;';
+$TEXT['TRASH_EMPTIED'] = '&#1050;&#1086;&#1088;&#1079;&#1080;&#1085;&#1072; &#1086;&#1095;&#1080;&#1097;&#1077;&#1085;&#1072;';
+$TEXT['ADD_SECTION'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1089;&#1077;&#1082;&#1094;&#1080;&#1102;';
+$TEXT['POST_HEADER'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['POST_FOOTER'] = '&#1053;&#1080;&#1078;&#1085;&#1103;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['POSTS_PER_PAGE'] = '&#1057;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1081; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';
+$TEXT['RESIZE_IMAGE_TO'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1103;&#1090;&#1100; &#1088;&#1072;&#1079;&#1084;&#1077;&#1088; &#1082;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1080; &#1085;&#1072;';
+$TEXT['UNLIMITED'] = '&#1053;&#1077;&#1086;&#1075;&#1088;&#1072;&#1085;&#1080;&#1095;&#1077;&#1085;&#1085;&#1086;';
+$TEXT['OF'] = '&#1080;&#1079;';
+$TEXT['OUT_OF'] = '&#1089;&#1074;&#1099;&#1096;&#1077;';
+$TEXT['NEXT'] = '&#1076;&#1072;&#1083;&#1077;&#1077;';
+$TEXT['PREVIOUS'] = '&#1085;&#1072;&#1079;&#1072;&#1076;';
+$TEXT['NEXT_PAGE'] = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['PREVIOUS_PAGE'] = '&#1055;&#1088;&#1077;&#1076;&#1099;&#1076;&#1091;&#1097;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['ON'] = '&#1085;&#1072;';
+$TEXT['LAST_UPDATED_BY'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1077;&#1077; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;: ';
+$TEXT['RESULTS_FOR'] = '&#1056;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1099; &#1076;&#1083;&#1103;';
+$TEXT['TIME'] = '&#1042;&#1088;&#1077;&#1084;&#1103;';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG &#1089;&#1090;&#1080;&#1083;&#1100;';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1086;&#1088;';
+$TEXT['SERVER_EMAIL'] = 'Email &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';
+$TEXT['MENU'] = '&#1052;&#1077;&#1085;&#1102;';
+$TEXT['MANAGE_GROUPS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1075;&#1088;&#1091;&#1087;&#1087;&#1072;&#1084;&#1080;';
+$TEXT['MANAGE_USERS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&#1084;&#1080;';
+$TEXT['PAGE_LANGUAGES'] = '&#1071;&#1079;&#1099;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$TEXT['HIDDEN'] = '&#1057;&#1082;&#1088;&#1099;&#1090;&#1099;&#1081;(&#1072;&#1103;)';
+$TEXT['MAIN'] = '&#1043;&#1083;&#1072;&#1074;&#1085;&#1072;&#1103;';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = '&#1055;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083; &#1087;&#1088;&#1080; &#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1082;&#1077;';
+$TEXT['APP_NAME'] = '&#1048;&#1084;&#1103; &#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1103;';
+$TEXT['SESSION_IDENTIFIER'] = '&#1048;&#1076;&#1077;&#1085;&#1090;&#1080;&#1092;&#1080;&#1082;&#1072;&#1090;&#1086;&#1088; &#1089;&#1077;&#1089;&#1089;&#1080;&#1080;';
+$TEXT['BACKUP'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['RESTORE'] = '&#1042;&#1086;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['BACKUP_DATABASE'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1073;&#1072;&#1079;&#1099; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093;';
+$TEXT['RESTORE_DATABASE'] = '&#1042;&#1086;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1073;&#1072;&#1079;&#1091; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093;';
+$TEXT['BACKUP_ALL_TABLES'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1074;&#1089;&#1077;&#1093; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094; &#1073;&#1072;&#1079;&#1099;';
+$TEXT['BACKUP_WB_SPECIFIC'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094; CMS';
+$TEXT['BACKUP_MEDIA'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; Media';
+$TEXT['RESTORE_MEDIA'] = '&#1042;&#1086;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; Media';
+$TEXT['ADMINISTRATION_TOOL'] = '&#1057;&#1088;&#1077;&#1076;&#1089;&#1090;&#1074;&#1072; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;';
+$TEXT['CAPTCHA_VERIFICATION'] = '&#1043;&#1088;&#1072;&#1092;&#1080;&#1095;&#1077;&#1089;&#1082;&#1072;&#1103; &#1074;&#1077;&#1088;&#1080;&#1092;&#1080;&#1082;&#1080;&#1094;&#1080;&#1103;';
+$TEXT['VERIFICATION'] = '&#1048;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1082;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1077;';
+$TEXT['DEFAULT_CHARSET'] = '&#1050;&#1086;&#1076;&#1080;&#1088;&#1086;&#1074;&#1082;&#1072; &#1087;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
+$TEXT['CHARSET'] = '&#1050;&#1086;&#1076;&#1080;&#1088;&#1086;&#1074;&#1082;&#1072;';
+$TEXT['MODULE_ORDER'] = '&#1055;&#1086;&#1088;&#1103;&#1076;&#1086;&#1082; &#1084;&#1086;&#1076;&#1091;&#1083;&#1077;&#1081; &#1087;&#1088;&#1080; &#1087;&#1086;&#1080;&#1089;&#1082;&#1077;';
+$TEXT['MAX_EXCERPT'] = 'Max &#1089;&#1090;&#1088;&#1086;&#1082; &#1089; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1072;&#1084;&#1080;';
+$TEXT['TIME_LIMIT'] = 'Max &#1074;&#1088;&#1077;&#1084;&#1103; &#1087;&#1086;&#1080;&#1089;&#1082;&#1072; &#1074; &#1084;&#1086;&#1076;&#1091;&#1083;&#1077;';
+$TEXT['PUBL_START_DATE'] = '&#1044;&#1072;&#1090;&#1072; &#1089;&#1090;&#1072;&#1088;&#1090;&#1072;';
+$TEXT['PUBL_END_DATE'] = '&#1044;&#1072;&#1090;&#1072; &#1086;&#1082;&#1086;&#1085;&#1095;&#1072;&#1085;&#1080;&#1103;';
+$TEXT['CALENDAR'] = '&#1050;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1100;';
+$TEXT['DELETE_DATE'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1076;&#1072;&#1090;&#1091;';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1079;&#1072;&#1076;&#1072;&#1081;&#1090;&#1077; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1077; &#1087;&#1086;&#1083;&#1103; "&#1055;&#1080;&#1089;&#1100;&#1084;&#1086; &#1086;&#1090;" &#1080; "&#1048;&#1084;&#1103; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1077;&#1083;&#1103;". &#1044;&#1083;&#1103; &#1087;&#1086;&#1083;&#1103; "&#1055;&#1080;&#1089;&#1100;&#1084;&#1086; &#1086;&#1090;" &#1088;&#1077;&#1082;&#1086;&#1084;&#1077;&#1085;&#1076;&#1091;&#1077;&#1090;&#1089;&#1103; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1074;&#1080;&#1076;&#1072;: <strong>admin@yourdomain.com</strong>. &#1053;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1087;&#1086;&#1095;&#1090;&#1086;&#1074;&#1099;&#1077; &#1087;&#1088;&#1086;&#1074;&#1072;&#1081;&#1076;&#1077;&#1088;&#1099; (&#1085;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088; <em>mail.com</em>) &#1084;&#1086;&#1075;&#1091;&#1090; &#1080;&#1075;&#1085;&#1086;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1074;&#1080;&#1076;&#1072; <em>name@mail.com</em>, &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1085;&#1099;&#1077; &#1089; &#1095;&#1091;&#1078;&#1086;&#1075;&#1086; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;, &#1076;&#1083;&#1103; &#1073;&#1086;&#1088;&#1100;&#1073;&#1099; &#1089;&#1086; &#1089;&#1087;&#1072;&#1084;&#1086;&#1084;.<br /><br />&#1044;&#1072;&#1085;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1073;&#1091;&#1076;&#1091;&#1090; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100;&#1089;&#1103; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1077;&#1089;&#1083;&#1080; &#1074; CMS &#1085;&#1077; &#1079;&#1072;&#1076;&#1072;&#1085;&#1099; &#1076;&#1088;&#1091;&#1075;&#1080;&#1077; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1099;. &#1045;&#1089;&#1083;&#1080; &#1042;&#1072;&#1096; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090; <acronym title="Simple mail transfer protocol">SMTP</acronym>, &#1074;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; &#1101;&#1090;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1076;&#1083;&#1103; &#1080;&#1089;&#1093;&#1086;&#1076;&#1103;&#1097;&#1077;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = '&#1055;&#1080;&#1089;&#1100;&#1084;&#1086; &#1086;&#1090;';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = '&#1048;&#1084;&#1103; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1077;&#1083;&#1103;';
+$TEXT['WBMAILER_NOTICE'] = '<strong>&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; SMTP:</strong><br />&#1044;&#1072;&#1085;&#1085;&#1099;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1077;&#1089;&#1083;&#1080; &#1042;&#1099; &#1087;&#1083;&#1072;&#1085;&#1080;&#1088;&#1091;&#1077;&#1090;&#1077; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1090;&#1100; &#1087;&#1080;&#1089;&#1100;&#1084;&#1072;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; <acronym title="Simple mail transfer protocol">SMTP</acronym>. &#1045;&#1089;&#1083;&#1080; &#1074;&#1099; &#1085;&#1077; &#1079;&#1085;&#1072;&#1077;&#1090;&#1077; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1099; &#1042;&#1072;&#1096;&#1077;&#1075;&#1086; SMTP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &#1080;&#1083;&#1080; &#1085;&#1077; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099; &#1074; &#1074;&#1099;&#1073;&#1086;&#1088;&#1077;, &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1081;&#1090;&#1077; PHP MAIL &#1074; &#1082;&#1072;&#1095;&#1077;&#1089;&#1090;&#1074;&#1077; &#1087;&#1086;&#1095;&#1090;&#1086;&#1074;&#1086;&#1081; &#1089;&#1083;&#1091;&#1078;&#1073;&#1099;.';
+$TEXT['WBMAILER_FUNCTION'] = '&#1055;&#1086;&#1095;&#1090;&#1086;&#1074;&#1072;&#1103; &#1089;&#1083;&#1091;&#1078;&#1073;&#1072;';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP &#1072;&#1074;&#1090;&#1086;&#1088;&#1080;&#1079;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = '&#1086;&#1090;&#1084;&#1077;&#1090;&#1100;&#1090;&#1077;, &#1077;&#1089;&#1083;&#1080; &#1042;&#1072;&#1096; SMTP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088; &#1090;&#1088;&#1077;&#1073;&#1091;&#1077;&#1090; &#1072;&#1074;&#1090;&#1086;&#1088;&#1080;&#1079;&#1072;&#1094;&#1080;&#1102;';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP &#1083;&#1086;&#1075;&#1080;&#1085;';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$TEXT['PLEASE_LOGIN'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1099;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1093;&#1086;&#1076;';
+$TEXT['CAP_EDIT_CSS'] = '&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; CSS';
+$TEXT['HEADING_CSS_FILE'] = '&#1048;&#1084;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072;: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = '&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1077; CSS &#1092;&#1072;&#1081;&#1083;, &#1077;&#1089;&#1083;&#1080; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1086;:';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = '&#1048;&#1079;&#1074;&#1080;&#1085;&#1080;&#1090;&#1077;, &#1091; &#1074;&#1072;&#1089; &#1085;&#1077;&#1090; &#1087;&#1088;&#1072;&#1074; &#1076;&#1083;&#1103; &#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1072; &#1101;&#1090;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = '&#1048;&#1079;&#1074;&#1080;&#1085;&#1080;&#1090;&#1077;, &#1085;&#1077;&#1090; &#1072;&#1082;&#1090;&#1080;&#1074;&#1085;&#1099;&#1093; &#1089;&#1077;&#1082;&#1094;&#1080;&#1081;';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = '&#1053;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1087;&#1088;&#1072;&#1074; &#1076;&#1083;&#1103; &#1085;&#1072;&#1093;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103; &#1074; &#1101;&#1090;&#1086;&#1081; &#1089;&#1077;&#1082;&#1094;&#1080;&#1080;';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1080;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1080;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = '&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103; &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1086;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = '&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1080;&#1081;';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = '&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103; &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1076;&#1083;&#1080;&#1085;&#1085;&#1086;&#1077;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = '&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1076;&#1083;&#1080;&#1085;&#1085;&#1099;&#1081;';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = '&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = '&#1042;&#1099; &#1076;&#1086;&#1083;&#1078;&#1085;&#1099; &#1074;&#1074;&#1077;&#1089;&#1090;&#1080; email &#1072;&#1076;&#1088;&#1077;&#1089;';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1072;&#1096; email';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Email, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074;&#1099; &#1074;&#1074;&#1077;&#1083;&#1080;, &#1085;&#1077; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085; &#1074; &#1073;&#1072;&#1079;&#1077;';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1099;&#1089;&#1083;&#1072;&#1090;&#1100; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1086;&#1073;&#1088;&#1072;&#1090;&#1080;&#1090;&#1077;&#1089;&#1100; &#1082; &#1074;&#1072;&#1096;&#1077;&#1084;&#1091; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1091;';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = '&#1042;&#1072;&#1096;&#1077; &#1080;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1099; &#1085;&#1072; &#1042;&#1072;&#1096; email';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = '&#1048;&#1079;&#1074;&#1080;&#1085;&#1080;&#1090;&#1077;, &#1085;&#1086; &#1074;&#1099; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1084;&#1077;&#1085;&#1103;&#1090;&#1100; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1085;&#1077; &#1095;&#1072;&#1097;&#1077; 1 &#1088;&#1072;&#1079;&#1072; &#1074; &#1095;&#1072;&#1089;';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = '&#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1052;&#1077;&#1085;&#1102; &#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103; &#1057;&#1072;&#1081;&#1090;&#1072;';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;, &#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1103;&#1094;&#1080;&#1086;&#1085;&#1085;&#1072;&#1103; &#1076;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103; &#1074;&#1089;&#1077; &#1077;&#1097;&#1077; &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072;!';
+$MESSAGE['START']['CURRENT_USER'] = '&#1042;&#1099; &#1074;&#1086;&#1096;&#1083;&#1080; &#1082;&#1072;&#1082;:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1086;&#1090;&#1082;&#1088;&#1099;&#1090;&#1100; &#1082;&#1086;&#1085;&#1092;&#1080;&#1075;&#1091;&#1088;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1072; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100; &#1074; &#1082;&#1086;&#1085;&#1092;&#1080;&#1075;&#1091;&#1088;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['SETTINGS']['SAVED'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = '&#1048;&#1084;&#1077;&#1081;&#1090;&#1077; &#1074;&#1074;&#1080;&#1076;&#1091;, &#1095;&#1090;&#1086; &#1087;&#1088;&#1080; &#1085;&#1072;&#1078;&#1072;&#1090;&#1080;&#1080; &#1085;&#1072; &#1101;&#1090;&#1091; &#1082;&#1085;&#1086;&#1087;&#1082;&#1091; &#1087;&#1088;&#1086;&#1080;&#1079;&#1086;&#1081;&#1076;&#1077;&#1090; &#1089;&#1073;&#1088;&#1086;&#1089; &#1085;&#1077;&#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1085;&#1099;&#1093; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093;';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = '&#1048;&#1084;&#1077;&#1081;&#1090;&#1077; &#1074;&#1074;&#1080;&#1076;&#1091;, &#1095;&#1090;&#1086; &#1101;&#1090;&#1086; &#1088;&#1077;&#1082;&#1086;&#1084;&#1077;&#1085;&#1076;&#1086;&#1074;&#1072;&#1085;&#1086; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1076;&#1083;&#1103; &#1090;&#1077;&#1089;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;';
+
+$MESSAGE['USERS']['ADDED'] = '&#1055;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['USERS']['SAVED'] = '&#1044;&#1072;&#1085;&#1085;&#1099;&#1077; &#1086; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['USERS']['DELETED'] = '&#1055;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1073;&#1099;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;';
+$MESSAGE['USERS']['NO_GROUP'] = '&#1053;&#1077; &#1086;&#1076;&#1085;&#1086;&#1081; &#1075;&#1088;&#1091;&#1087;&#1087;&#1099; &#1085;&#1077; &#1073;&#1099;&#1083;&#1086; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1086;';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = '&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1077; &#1073;&#1099;&#1083;&#1086; &#1074;&#1074;&#1077;&#1076;&#1077;&#1085;&#1086;, &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1086;';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1073;&#1099;&#1083; &#1074;&#1074;&#1077;&#1076;&#1077;&#1085;, &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1082;&#1086;&#1088;&#1086;&#1090;&#1086;&#1082;';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1080;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1074;&#1099; &#1074;&#1074;&#1077;&#1083;&#1080;, &#1085;&#1077; &#1089;&#1086;&#1074;&#1087;&#1072;&#1076;&#1072;&#1102;&#1090;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = '&#1042;&#1099; &#1074;&#1074;&#1077;&#1083;&#1080; &#1085;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; email';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Email, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074;&#1099; &#1074;&#1074;&#1077;&#1083;&#1080;, &#1091;&#1078;&#1077; &#1077;&#1089;&#1090;&#1100; &#1074; &#1073;&#1072;&#1079;&#1077;';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = '&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1077; &#1074;&#1099; &#1074;&#1099;&#1073;&#1088;&#1072;&#1083;&#1080;, &#1091;&#1078;&#1077; &#1079;&#1072;&#1085;&#1103;&#1090;&#1086;';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = '&#1048;&#1084;&#1077;&#1081;&#1090;&#1077; &#1074;&#1074;&#1080;&#1076;&#1091;, &#1095;&#1090;&#1086; &#1074;&#1072;&#1084; &#1089;&#1083;&#1077;&#1076;&#1091;&#1077;&#1090; &#1074;&#1074;&#1077;&#1089;&#1090;&#1080; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1074; &#1074;&#1077;&#1088;&#1093;&#1085;&#1080;&#1093; &#1087;&#1086;&#1083;&#1103;&#1093; &#1077;&#1089;&#1083;&#1080; &#1074;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = '&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1085;&#1086;&#1075;&#1086; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;?';
+
+$MESSAGE['GROUPS']['ADDED'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1072; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GROUPS']['SAVED'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1072; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GROUPS']['DELETED'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072;';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = '&#1048;&#1084;&#1103; &#1075;&#1088;&#1091;&#1087;&#1087;&#1099; &#1087;&#1091;&#1089;&#1090;&#1086;&#1077;';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = '&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1074;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1085;&#1091;&#1102; &#1075;&#1088;&#1091;&#1087;&#1087;&#1091; (&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1081; &#1074; &#1085;&#1077;&#1081;)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = '&#1043;&#1088;&#1091;&#1087;&#1087; &#1085;&#1077; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085;&#1086;';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = '&#1043;&#1088;&#1091;&#1087;&#1087;&#1072; &#1089; &#1090;&#1072;&#1082;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = '&#1044;&#1072;&#1085;&#1085;&#1099;&#1077; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1080;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074;&#1099; &#1074;&#1074;&#1077;&#1083;&#1080;, &#1085;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081;';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1100; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;! &#1063;&#1090;&#1086;&#1073;&#1099; &#1095;&#1090;&#1086;&#1073;&#1099; &#1089;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085; &#1087;&#1077;&#1088;&#1077;&#1081;&#1076;&#1080;&#1090;&#1077; &#1074; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083; "&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080;"';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = '&#1053;&#1077;&#1083;&#1100;&#1079;&#1103; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; ../ &#1074; &#1080;&#1084;&#1077;&#1085;&#1080; &#1087;&#1072;&#1087;&#1082;&#1080;';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = '&#1044;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103; &#1085;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = '&#1053;&#1077;&#1083;&#1100;&#1079;&#1103; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; ../ &#1074; &#1080;&#1084;&#1077;&#1085;&#1080;';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = '&#1053;&#1077;&#1083;&#1100;&#1079;&#1103; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; ../ &#1074; &#1080;&#1084;&#1077;&#1085;&#1080;';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = '&#1053;&#1077;&#1083;&#1100;&#1079;&#1103; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; index.php &#1074; &#1082;&#1072;&#1095;&#1077;&#1089;&#1090;&#1074;&#1077; &#1080;&#1084;&#1077;&#1085;&#1080;';
+$MESSAGE['MEDIA']['NONE_FOUND'] = '&#1042; &#1076;&#1072;&#1085;&#1085;&#1086;&#1081; &#1087;&#1072;&#1087;&#1082;&#1077; &#1085;&#1077;&#1090; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = '&#1060;&#1072;&#1081;&#1083; &#1085;&#1077; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085;';
+$MESSAGE['MEDIA']['DELETED_FILE'] = '&#1060;&#1072;&#1081;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;';
+$MESSAGE['MEDIA']['DELETED_DIR'] = '&#1055;&#1072;&#1087;&#1082;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072;';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = '&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1080;&#1083;&#1080; &#1087;&#1072;&#1087;&#1082;&#1091;?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1091;&#1102; &#1087;&#1072;&#1087;&#1082;&#1091;';
+$MESSAGE['MEDIA']['BLANK_NAME'] = '&#1042;&#1099; &#1085;&#1077; &#1074;&#1074;&#1077;&#1083;&#1080; &#1085;&#1086;&#1074;&#1086;&#1077; &#1080;&#1084;&#1103;';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = '&#1042;&#1099; &#1085;&#1077; &#1074;&#1074;&#1077;&#1083;&#1080; &#1088;&#1072;&#1089;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1077; &#1092;&#1072;&#1081;&#1083;&#1072;';
+$MESSAGE['MEDIA']['RENAMED'] = '&#1059;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1087;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1085;&#1086;';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1087;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100;';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = '&#1060;&#1072;&#1081;&#1083; &#1089; &#1090;&#1072;&#1082;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = '&#1055;&#1072;&#1087;&#1082;&#1072; &#1089; &#1090;&#1072;&#1082;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$MESSAGE['MEDIA']['DIR_MADE'] = '&#1055;&#1072;&#1087;&#1082;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1086;&#1079;&#1076;&#1072;&#1085;&#1072;';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1087;&#1072;&#1087;&#1082;&#1091;';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' &#1092;&#1072;&#1081;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1079;&#1072;&#1082;&#1072;&#1095;&#1072;&#1085;';
+$MESSAGE['MEDIA']['UPLOADED'] = ' &#1092;&#1072;&#1081;&#1083;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1079;&#1072;&#1082;&#1072;&#1095;&#1072;&#1085;&#1099;';
+
+$MESSAGE['PAGES']['ADDED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['ADDED_HEADING'] = '&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1089; &#1090;&#1072;&#1082;&#1080;&#1084; &#1080;&#1083;&#1080; &#1089;&#1093;&#1086;&#1078;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1089;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072; &#1074; &#1087;&#1072;&#1087;&#1082;&#1077; /pages  (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1087;&#1088;&#1072;&#1074;)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072; &#1074; &#1087;&#1072;&#1087;&#1082;&#1077; /pages  (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1087;&#1088;&#1072;&#1074;)';
+$MESSAGE['PAGES']['NOT_FOUND'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1085;&#1077; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['SAVED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099;';
+$MESSAGE['PAGES']['NOT_SAVED'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1080;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = '&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1095;&#1090;&#1086; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1091;&#1102; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; (&#1080; &#1074;&#1089;&#1077; &#1077;&#1105; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1099;)';
+$MESSAGE['PAGES']['DELETED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['RESTORED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1074;&#1086;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = '&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = '&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1084;&#1077;&#1085;&#1102;';
+$MESSAGE['PAGES']['REORDERED'] = '&#1055;&#1086;&#1088;&#1103;&#1076;&#1086;&#1082; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103; &#1087;&#1086;&#1088;&#1103;&#1076;&#1082;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = '&#1059; &#1074;&#1072;&#1089; &#1085;&#1077;&#1090; &#1087;&#1088;&#1072;&#1074; &#1076;&#1083;&#1103; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103; &#1101;&#1090;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1090;&#1100; &#1074; /pages/intro.php (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1087;&#1088;&#1072;&#1074;)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;-&#1079;&#1072;&#1089;&#1090;&#1072;&#1074;&#1082;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1077;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1077;:';
+$MESSAGE['PAGES']['INTRO_LINK'] = '&#1053;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1047;&#1044;&#1045;&#1057;&#1068; &#1076;&#1083;&#1103; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;-&#1079;&#1072;&#1089;&#1090;&#1072;&#1074;&#1082;&#1080;';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = '&#1057;&#1074;&#1086;&#1081;&#1089;&#1090;&#1074;&#1072; &#1089;&#1077;&#1082;&#1094;&#1080;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1099;';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = '&#1050; &#1089;&#1087;&#1080;&#1089;&#1082;&#1091; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1077;&#1088;&#1085;&#1080;&#1090;&#1077;&#1089;&#1100; &#1080; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077; &#1074;&#1089;&#1077; &#1087;&#1086;&#1083;&#1103;';
+$MESSAGE['GENERIC']['FILE_TYPE'] = '&#1047;&#1072;&#1075;&#1088;&#1091;&#1078;&#1072;&#1077;&#1084;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1080;&#1084;&#1077;&#1090;&#1100; &#1089;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = '&#1047;&#1072;&#1075;&#1088;&#1091;&#1078;&#1072;&#1077;&#1084;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1080;&#1084;&#1077;&#1090;&#1100; &#1090;&#1080;&#1087;:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = '&#1059;&#1078;&#1077; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1086;';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = '&#1053;&#1077;&#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1086;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1088;&#1072;&#1079;&#1072;&#1088;&#1093;&#1080;&#1074;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['GENERIC']['INSTALLED'] = '&#1059;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1072; &#1087;&#1088;&#1086;&#1096;&#1083;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1072;';
+$MESSAGE['GENERIC']['UPGRADED'] = '&#1054;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1087;&#1088;&#1086;&#1096;&#1083;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GENERIC']['UNINSTALLED'] = '&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1090;&#1100; &#1074; &#1074;&#1099;&#1073;&#1088;&#1072;&#1085;&#1085;&#1091;&#1102; &#1076;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1102;';
+$MESSAGE['GENERIC']['INVALID'] = '&#1047;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1087;&#1086;&#1074;&#1088;&#1077;&#1078;&#1076;&#1077;&#1085;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = '&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;: &#1092;&#1072;&#1081;&#1083; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1077;&#1090;&#1089;&#1103;';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = '&#1042;&#1077;&#1073;&#1089;&#1072;&#1081;&#1090; &#1074; &#1088;&#1072;&#1079;&#1088;&#1072;&#1073;&#1086;&#1090;&#1082;&#1077;';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = '&#1047;&#1072;&#1081;&#1076;&#1080;&#1090;&#1077; &#1087;&#1086;&#1087;&#1086;&#1079;&#1078;&#1077;...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1087;&#1086;&#1076;&#1086;&#1078;&#1076;&#1080;&#1090;&#1077;, &#1101;&#1090;&#1086; &#1084;&#1086;&#1078;&#1077;&#1090; &#1079;&#1072;&#1085;&#1103;&#1090;&#1100; &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103;.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = '&#1054;&#1096;&#1080;&#1073;&#1082;&#1072; &#1086;&#1090;&#1082;&#1088;&#1099;&#1090;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072;.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = '&#1042;&#1053;&#1048;&#1052;&#1040;&#1053;&#1048;&#1045;! &#1042;&#1099; &#1076;&#1086;&#1083;&#1078;&#1085;&#1099; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1100; &#1087;&#1086;&#1083;&#1077;';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = '&#1048;&#1079;&#1074;&#1080;&#1085;&#1080;&#1090;&#1077;, &#1089;&#1083;&#1080;&#1096;&#1082;&#1086;&#1084; &#1084;&#1085;&#1086;&#1075;&#1086; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1081; &#1079;&#1072; &#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1081; &#1095;&#1072;&#1089;. &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1087;&#1086;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081;&#1090;&#1077; &#1087;&#1086;&#1074;&#1090;&#1086;&#1088;&#1080;&#1090;&#1100; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1082;&#1091; &#1095;&#1077;&#1088;&#1077;&#1079; &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103;.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = '&#1050;&#1086;&#1076; &#1087;&#1086;&#1076;&#1090;&#1074;&#1077;&#1088;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103; &#1074;&#1074;&#1077;&#1076;&#1077;&#1085; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1086;. &#1045;&#1089;&#1083;&#1080; &#1074;&#1099; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1087;&#1088;&#1086;&#1095;&#1077;&#1089;&#1090;&#1100; &#1082;&#1086;&#1076;, &#1087;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1089;&#1086;&#1086;&#1073;&#1097;&#1080;&#1090;&#1077; &#1088;&#1072;&#1079;&#1088;&#1072;&#1073;&#1086;&#1090;&#1095;&#1080;&#1082;&#1072;&#1084;: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1074;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; &#1095;&#1090;&#1086; &#1074;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1100;';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;&#1099; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = '&#1071;&#1079;&#1099;&#1082;&#1080; &#1087;&#1077;&#1088;&#1077;&#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1099; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/RU.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/DE.php
===================================================================
--- tags/2.7.0/wb/languages/DE.php	(nonexistent)
+++ tags/2.7.0/wb/languages/DE.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'DE';
+$language_name = 'Deutsch';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Stefan Braunewell, Matthias Gallas, Dave Camenisch, Klaus Weitzel, Michael Tenschert';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = 'Start';
+$MENU['PAGES'] = 'Seiten';
+$MENU['MEDIA'] = 'Medien';
+$MENU['ADDONS'] = 'Erweiterungen';
+$MENU['MODULES'] = 'Module';
+$MENU['TEMPLATES'] = 'Designvorlagen';
+$MENU['LANGUAGES'] = 'Sprachen';
+$MENU['PREFERENCES'] = 'Einstellungen';
+$MENU['SETTINGS'] = 'Optionen';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = 'Benutzerverwaltung';
+$MENU['USERS'] = 'Benutzer';
+$MENU['GROUPS'] = 'Gruppen';
+$MENU['HELP'] = 'Hilfe';
+$MENU['VIEW'] = 'Ansicht';
+$MENU['LOGOUT'] = 'Abmelden';
+$MENU['LOGIN'] = 'Anmeldung';
+$MENU['FORGOT'] = 'Anmelde-Details anfordern';
+
+// Section overviews
+$OVERVIEW['START'] = '&Uuml;berblick &uuml;ber die Verwaltung';
+$OVERVIEW['PAGES'] = 'Verwaltung Ihrer Webseiten...';
+$OVERVIEW['MEDIA'] = 'Verwaltung der im Medienordner gespeicherten Dateien...';
+$OVERVIEW['MODULES'] = 'Verwaltung der Website Baker Module...';
+$OVERVIEW['TEMPLATES'] = '&Auml;ndern des Designs Ihrer Webseite mit Vorlagen...';
+$OVERVIEW['LANGUAGES'] = 'Sprachen verwalten...';
+$OVERVIEW['PREFERENCES'] = '&Auml;ndern pers&ouml;nlicher Einstellungen wie E-Mail-Adresse, Passwort, usw.... ';
+$OVERVIEW['SETTINGS'] = '&Auml;ndern der Optionen f&uuml;r Website Baker...';
+$OVERVIEW['USERS'] = 'Verwaltung von Benutzern, die sich in Website Baker einloggen d&uuml;rfen...';
+$OVERVIEW['GROUPS'] = 'Verwaltung von Gruppen und Ihrer Zugangsberechtigungen...';
+$OVERVIEW['HELP'] = 'Noch Fragen? Hier finden Sie Antworten';
+$OVERVIEW['VIEW'] = 'Ansicht Ihrer Webseite in einem neuen Fenster...';
+$OVERVIEW['ADMINTOOLS'] = 'Zugriff auf die Website Baker Verwaltungsprogramme...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = 'Seite &auml;ndern/Seite l&ouml;schen';
+$HEADING['DELETED_PAGES'] = 'gel&ouml;schte Seiten';
+$HEADING['ADD_PAGE'] = 'Seite hinzuf&uuml;gen';
+$HEADING['ADD_HEADING'] = 'Kopf hinzuf&uuml;gen';
+$HEADING['MODIFY_PAGE'] = 'Seite &auml;ndern';
+$HEADING['MODIFY_PAGE_SETTINGS'] = 'Seitenoptionen &auml;ndern';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = 'Erweiterte Seitenoptionen &auml;ndern';
+$HEADING['MANAGE_SECTIONS'] = 'Abschnitte verwalten';
+$HEADING['MODIFY_INTRO_PAGE'] = 'Eingangsseite &auml;ndern';
+
+$HEADING['BROWSE_MEDIA'] = 'Medien durchsuchen';
+$HEADING['CREATE_FOLDER'] = 'Ordner erstellen';
+$HEADING['UPLOAD_FILES'] = 'Datei(en) &uuml;bertragen';
+
+$HEADING['INSTALL_MODULE'] = 'Modul installieren';
+$HEADING['UNINSTALL_MODULE'] = 'Modul deinstallieren';
+$HEADING['MODULE_DETAILS'] = 'Details zum Modul';
+
+$HEADING['INSTALL_TEMPLATE'] = 'Designvorlage installieren';
+$HEADING['UNINSTALL_TEMPLATE'] = 'Designvorlage deinstallieren';
+$HEADING['TEMPLATE_DETAILS'] = 'Details zur Designvorlage';
+
+$HEADING['INSTALL_LANGUAGE'] = 'Sprache hinzuf&uuml;gen';
+$HEADING['UNINSTALL_LANGUAGE'] = 'Sprache l&ouml;schen';
+$HEADING['LANGUAGE_DETAILS'] = 'Details zur Sprache';
+
+$HEADING['MY_SETTINGS'] = 'Einstellungen';
+$HEADING['MY_EMAIL'] = 'E-Mail-Adresse';
+$HEADING['MY_PASSWORD'] = 'Passwort';
+
+$HEADING['GENERAL_SETTINGS'] = 'Allgemeine Optionen';
+$HEADING['DEFAULT_SETTINGS'] = 'Standardeinstellungen';
+$HEADING['SEARCH_SETTINGS'] = 'Suchoptionen';
+$HEADING['FILESYSTEM_SETTINGS'] = 'Dateisystemoptionen';
+$HEADING['SERVER_SETTINGS'] = 'Servereinstellungen';
+$HEADING['WBMAILER_SETTINGS'] = 'Maileinstellungen';
+$HEADING['ADMINISTRATION_TOOLS'] = 'Verwaltungsprogramme';
+
+$HEADING['MODIFY_DELETE_USER'] = '&Auml;ndern/L&ouml;schen von Benutzern';
+$HEADING['ADD_USER'] = 'Benutzer hinzuf&uuml;gen';
+$HEADING['MODIFY_USER'] = 'Benutzer &auml;ndern';
+
+$HEADING['MODIFY_DELETE_GROUP'] = '&Auml;ndern/L&ouml;schen von Gruppen';
+$HEADING['ADD_GROUP'] = 'Gruppen hinzuf&uuml;gen';
+$HEADING['MODIFY_GROUP'] = 'Gruppen &auml;ndern';
+
+// Other text
+$TEXT['OPEN'] = '&Ouml;ffnen';
+$TEXT['ADD'] = 'Hinzuf&uuml;gen';
+$TEXT['MODIFY'] = '&Auml;ndern';
+$TEXT['SETTINGS'] = 'Optionen';
+$TEXT['DELETE'] = 'Entfernen';
+$TEXT['SAVE'] = 'Speichern';
+$TEXT['RESET'] = 'Zur&uuml;cksetzen';
+$TEXT['LOGIN'] = 'Anmeldung';
+$TEXT['RELOAD'] = 'Neu laden';
+$TEXT['CANCEL'] = 'Abbrechen';
+$TEXT['NAME'] = 'Name';
+$TEXT['PLEASE_SELECT'] = 'Bitte ausw&auml;hlen';
+$TEXT['TITLE'] = 'Titel';
+$TEXT['PARENT'] = '&Uuml;bergeordnete Datei';
+$TEXT['TYPE'] = 'Art';
+$TEXT['VISIBILITY'] = 'Sichtbarkeit';
+$TEXT['PRIVATE'] = 'Privat';
+$TEXT['PUBLIC'] = '&Ouml;ffentlich';
+$TEXT['NONE'] = 'Keine';
+$TEXT['NONE_FOUND'] = 'Keine gefunden';
+$TEXT['CURRENT'] = 'Aktuell';
+$TEXT['CHANGE'] = '&Auml;ndern';
+$TEXT['WINDOW'] = 'Fenster';
+$TEXT['DESCRIPTION'] = 'Beschreibung';
+$TEXT['KEYWORDS'] = 'Schl&uuml;sselw&ouml;rter';
+$TEXT['ADMINISTRATORS'] = 'Administratoren';
+$TEXT['PRIVATE_VIEWERS'] = 'Private Nutzer';
+$TEXT['EXPAND'] = 'Erweitern';
+$TEXT['COLLAPSE'] = 'Reduzieren';
+$TEXT['MOVE_UP'] = 'Aufw&auml;rts verschieben';
+$TEXT['MOVE_DOWN'] = 'Abw&auml;rts verschieben';
+$TEXT['RENAME'] = 'Umbenennen';
+$TEXT['MODIFY_SETTINGS'] = 'Optionen &auml;ndern';
+$TEXT['MODIFY_CONTENT'] = 'Inhalt &auml;ndern';
+$TEXT['VIEW'] = 'Ansicht';
+$TEXT['UP'] = 'Aufw&auml;rts';
+$TEXT['FORGOTTEN_DETAILS'] = 'Haben Sie Ihre pers&ouml;nlichen Daten vergessen?';
+$TEXT['NEED_TO_LOGIN'] = 'M&uuml;ssen Sie sich einloggen?';
+$TEXT['SEND_DETAILS'] = 'Anmeldedaten senden';
+$TEXT['USERNAME'] = 'Benutzername';
+$TEXT['PASSWORD'] = 'Passwort';
+$TEXT['HOME'] = 'Home';
+$TEXT['TARGET_FOLDER'] = 'Zielordner';
+$TEXT['OVERWRITE_EXISTING'] = '&Uuml;berschreibe bestehende';
+$TEXT['FILE'] = 'Datei';
+$TEXT['FILES'] = 'Dateien';
+$TEXT['FOLDER'] = 'Ordner';
+$TEXT['FOLDERS'] = 'Ordner';
+$TEXT['CREATE_FOLDER'] = 'Ordner anlegen';
+$TEXT['UPLOAD_FILES'] = 'Datei(en) &uuml;bertragen';
+$TEXT['CURRENT_FOLDER'] = 'Aktueller Ordner';
+$TEXT['TO'] = 'an';
+$TEXT['FROM'] = 'von';
+$TEXT['INSTALL'] = 'Installieren';
+$TEXT['UNINSTALL'] = 'Deinstallieren';
+$TEXT['VIEW_DETAILS'] = 'Details';
+$TEXT['DISPLAY_NAME'] = 'Angezeigter Name';
+$TEXT['AUTHOR'] = 'Autor';
+$TEXT['VERSION'] = 'Version';
+$TEXT['DESIGNED_FOR'] = 'Entworfen f&uuml;r';
+$TEXT['DESCRIPTION'] = 'Beschreibung';
+$TEXT['EMAIL'] = 'E-Mail-Adresse';
+$TEXT['LANGUAGE'] = 'Sprache';
+$TEXT['TIMEZONE'] = 'Zeitzone';
+$TEXT['CURRENT_PASSWORD'] = 'Bisheriges Passwort';
+$TEXT['NEW_PASSWORD'] = 'Neues Passwort';
+$TEXT['RETYPE_NEW_PASSWORD'] = 'Neues Passwort wiederholen';
+$TEXT['ACTIVE'] = 'Aktiv';
+$TEXT['DISABLED'] = 'Ausgeschaltet';
+$TEXT['ENABLED'] = 'Eingeschaltet';
+$TEXT['RETYPE_PASSWORD'] = 'Geben Sie bitte Ihr Passwort nochmal ein';
+$TEXT['GROUP'] = 'Gruppe';
+$TEXT['SYSTEM_PERMISSIONS'] = 'Zugangsberechtigungen';
+$TEXT['MODULE_PERMISSIONS'] = 'Modulberechtigungen';
+$TEXT['SHOW_ADVANCED'] = 'Erweiterte Optionen anzeigen';
+$TEXT['HIDE_ADVANCED'] = 'Erweiterte Optionen verdecken';
+$TEXT['BASIC'] = 'Einfach';
+$TEXT['ADVANCED'] = 'Erweitert';
+$TEXT['WEBSITE'] = 'Webseite';
+$TEXT['DEFAULT'] = 'Standard';
+$TEXT['KEYWORDS'] = 'Schl&uuml;sselw&ouml;rter';
+$TEXT['TEXT'] = 'Text';
+$TEXT['HEADER'] = 'Kopfzeile';
+$TEXT['FOOTER'] = 'Fusszeile';
+$TEXT['TEMPLATE'] = 'Dokumentenvorlage';
+$TEXT['INSTALLATION'] = 'Installation';
+$TEXT['DATABASE'] = 'Datenbank';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = 'Eingangs';
+$TEXT['PAGE'] = 'Seite';
+$TEXT['SIGNUP'] = 'Registrierung';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Fehlerberichte';
+$TEXT['ADMIN'] = 'Admin';
+$TEXT['PATH'] = 'Pfad';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Frontend';
+$TEXT['EXTENSION'] = 'Endungen';
+$TEXT['TABLE_PREFIX'] = 'TabellenPr&auml;fix';
+$TEXT['CHANGES'] = '&Auml;nderungen';
+$TEXT['ADMINISTRATION'] = 'Verwaltung';
+$TEXT['FORGOT_DETAILS'] = 'Haben Sie Ihre pers&ouml;nlichen Daten vergessen?';
+$TEXT['LOGGED_IN'] = 'Angemeldet';
+$TEXT['WELCOME_BACK'] = 'Willkommen zur&uuml;ck';
+$TEXT['FULL_NAME'] = 'Voller Name';
+$TEXT['ACCOUNT_SIGNUP'] = 'Registrierung';
+$TEXT['LINK'] = 'Link';
+$TEXT['ANCHOR'] = 'Anker';
+$TEXT['TARGET'] = 'Ziel';
+$TEXT['NEW_WINDOW'] = 'Neues Fenster';
+$TEXT['SAME_WINDOW'] = 'Gleiches Fenster';
+$TEXT['TOP_FRAME'] = 'Frameset sprengen';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Limit der Seitenebenen';
+$TEXT['SUCCESS'] = 'Erfolgreich';
+$TEXT['ERROR'] = 'Fehler';
+$TEXT['ARE_YOU_SURE'] = 'Sind Sie sicher?';
+$TEXT['YES'] = 'Ja';
+$TEXT['NO'] = 'Nein';
+$TEXT['SYSTEM_DEFAULT'] = 'Standardeinstellung';
+$TEXT['PAGE_TITLE'] = 'Seitentitel';
+$TEXT['MENU_TITLE'] = 'Men&uuml;titel';
+$TEXT['ACTIONS'] = 'Aktionen';
+$TEXT['UNKNOWN'] = 'Unbekannt';
+$TEXT['BLOCK'] = 'Block';
+$TEXT['SEARCH'] = 'Suche';
+$TEXT['SEARCHING'] = 'suchen';
+$TEXT['POST'] = 'Beitrag';
+$TEXT['COMMENT'] = 'Kommentar';
+$TEXT['COMMENTS'] = 'Kommentare';
+$TEXT['COMMENTING'] = 'kommentieren';
+$TEXT['SHORT'] = 'Kurz';
+$TEXT['LONG'] = 'Lang';
+$TEXT['LOOP'] = 'Schleife';
+$TEXT['FIELD'] = 'Feld';
+$TEXT['REQUIRED'] = 'Erforderlich';
+$TEXT['LENGTH'] = 'L&auml;nge';
+$TEXT['MESSAGE'] = 'Nachricht';
+$TEXT['SUBJECT'] = 'Betreff';
+$TEXT['MATCH'] = '&Uuml;bereinstimmung';
+$TEXT['ALL_WORDS'] = 'Alle W&ouml;rter';
+$TEXT['ANY_WORDS'] = 'Einzelne W&ouml;rter';
+$TEXT['EXACT_MATCH'] = 'Genaue Wortfolge';
+$TEXT['SHOW'] = 'zeigen';
+$TEXT['HIDE'] = 'verstecken';
+$TEXT['START_PUBLISHING'] = 'Beginn der Ver&ouml;ffentlichung';
+$TEXT['FINISH_PUBLISHING'] = 'Ende der Ver&ouml;ffentlichung';
+$TEXT['DATE'] = 'Datum';
+$TEXT['START'] = 'Start';
+$TEXT['END'] = 'Ende';
+$TEXT['IMAGE'] = 'Bild';
+$TEXT['ICON'] = 'Symbol';
+$TEXT['SECTION'] = 'Abschnitt';
+$TEXT['DATE_FORMAT'] = 'Datumsformat';
+$TEXT['TIME_FORMAT'] = 'Zeitformat';
+$TEXT['RESULTS'] = 'Resultate';
+$TEXT['RESIZE'] = 'Gr&ouml;sse &auml;ndern';
+$TEXT['MANAGE'] = 'Verwalten Sie';
+$TEXT['CODE'] = 'Code';
+$TEXT['WIDTH'] = 'Breite';
+$TEXT['HEIGHT'] = 'H&ouml;he';
+$TEXT['MORE'] = 'Mehr';
+$TEXT['READ_MORE'] = 'Weiterlesen';
+$TEXT['CHANGE_SETTINGS'] = 'Einstellungen &auml;ndern';
+$TEXT['CURRENT_PAGE'] = 'Aktuelle Seite';
+$TEXT['CLOSE'] = 'Schliessen';
+$TEXT['INTRO_PAGE'] = 'Eingangsseite';
+$TEXT['INSTALLATION_URL'] = 'Installationsadresse(URL)';
+$TEXT['INSTALLATION_PATH'] = 'Installationspfad';
+$TEXT['PAGE_EXTENSION'] = 'Dateiendungen';
+$TEXT['NO_RESULTS'] = 'Keine Ergebnisse';
+$TEXT['WEBSITE_TITLE'] = 'Webseitentitel';
+$TEXT['WEBSITE_DESCRIPTION'] = 'Webseitenbeschreibung';
+$TEXT['WEBSITE_KEYWORDS'] = 'Schl&uuml;sselw&ouml;rter';
+$TEXT['WEBSITE_HEADER'] = 'Kopfzeile';
+$TEXT['WEBSITE_FOOTER'] = 'Fusszeile';
+$TEXT['RESULTS_HEADER'] = 'Ergebnisse &Uuml;berschrift';
+$TEXT['RESULTS_LOOP'] = 'Ergebnisse Schleife';
+$TEXT['RESULTS_FOOTER'] = 'Ergebnisse Fusszeile';
+$TEXT['LEVEL'] = 'Ebene';
+$TEXT['NOT_FOUND'] = 'Nicht gefunden';
+$TEXT['PAGE_SPACER'] = 'Leerzeichen';
+$TEXT['MATCHING'] = 'passende';
+$TEXT['TEMPLATE_PERMISSIONS'] = 'Zugriffsrechte f&uuml;r Vorlagen';
+$TEXT['PAGES_DIRECTORY'] = 'Seitenverzeichnis';
+$TEXT['MEDIA_DIRECTORY'] = 'Medienverzeichnis';
+$TEXT['FILE_MODE'] = 'Dateimodus';
+$TEXT['USER'] = 'Besitzer';
+$TEXT['OTHERS'] = 'Alle';
+$TEXT['READ'] = 'Lesen';
+$TEXT['WRITE'] = 'Schreiben';
+$TEXT['EXECUTE'] = 'Ausf&uuml;hren';
+$TEXT['SMART_LOGIN'] = 'Intelligente Anmeldung';
+$TEXT['REMEMBER_ME'] = 'Passwort speichern';
+$TEXT['FILESYSTEM_PERMISSIONS'] = 'Zugriffsrechte';
+$TEXT['DIRECTORIES'] = 'Verzeichnisse';
+$TEXT['DIRECTORY_MODE'] = 'Verzeichnismodus';
+$TEXT['LIST_OPTIONS'] = 'Auswahlliste';
+$TEXT['OPTION'] = 'Option';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = 'Mehrfachauswahl';
+$TEXT['TEXTFIELD'] = 'Kurztext';
+$TEXT['TEXTAREA'] = 'Langtext';
+$TEXT['SELECT_BOX'] = 'Auswahlliste';
+$TEXT['CHECKBOX_GROUP'] = 'Kontrollk&auml;stchen';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Optionsfeld';
+$TEXT['SIZE'] = 'Gr&ouml;sse';
+$TEXT['DEFAULT_TEXT'] = 'Standardtext';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = 'Zur&uuml;ck';
+$TEXT['UNDER_CONSTRUCTION'] = 'In Bearbeitung';
+$TEXT['MULTISELECT'] = 'Mehfachauswahl';
+$TEXT['SHORT_TEXT'] = 'Kurztext';
+$TEXT['LONG_TEXT'] = 'Langtext';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'URL Umleitung zur Homepage';
+$TEXT['HEADING'] = '&Uuml;berschrift';
+$TEXT['MULTIPLE_MENUS'] = 'Mehrere Men&uuml;s';
+$TEXT['REGISTERED'] = 'registriert';
+$TEXT['SECTION_BLOCKS'] = 'Bl&ouml;cke';
+$TEXT['REGISTERED_VIEWERS'] = 'registrierter Besucher';
+$TEXT['ALLOWED_VIEWERS'] = 'genehmigter Besucher';
+$TEXT['SUBMISSION_ID'] = 'Eintragungs-ID';
+$TEXT['SUBMISSIONS'] = 'Eintragungen';
+$TEXT['SUBMITTED'] = 'eingetragen';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = 'Max. Eintragungen pro Stunde';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = 'Max. gespeicherte Eintragungen';
+$TEXT['EMAIL_ADDRESS'] = 'E-Mail Addresse';
+$TEXT['CUSTOM'] = 'Benutzerdefiniert';
+$TEXT['ANONYMOUS'] = 'Anonym';
+$TEXT['SERVER_OPERATING_SYSTEM'] = 'Server Betriebssystem';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'Einstellungen f&uuml;r Schreibrechte';
+$TEXT['LINUX_UNIX_BASED'] = 'Linux/Unix basierend';
+$TEXT['WINDOWS'] = 'Windows';
+$TEXT['HOME_FOLDER'] = 'Home Verzeichnis';
+$TEXT['HOME_FOLDERS'] = 'Home Verzeichnisse';
+$TEXT['PAGE_TRASH'] = 'Seiten M&uuml;lleimer';
+$TEXT['INLINE'] = 'Integriert';
+$TEXT['SEPARATE'] = 'Separat';
+$TEXT['DELETED'] = 'Gel&ouml;scht';
+$TEXT['VIEW_DELETED_PAGES'] = 'gel&ouml;schte Seiten anschauen';
+$TEXT['EMPTY_TRASH'] = 'M&uuml;lleimer leeren';
+$TEXT['TRASH_EMPTIED'] = 'M&uuml;lleimer geleert';
+$TEXT['ADD_SECTION'] = 'Abschnitt hinzuf&uuml;gen';
+$TEXT['POST_HEADER'] = 'Nachricht Kopfzeile';
+$TEXT['POST_FOOTER'] = 'Nachricht Fusszeile';
+$TEXT['POSTS_PER_PAGE'] = 'Nachrichten pro Seite';
+$TEXT['RESIZE_IMAGE_TO'] = 'Bildgr&ouml;sse ver&auml;ndern auf';
+$TEXT['UNLIMITED'] = 'Unbegrenzt';
+$TEXT['OF'] = 'von';
+$TEXT['OUT_OF'] = 'von';
+$TEXT['NEXT'] = 'n&auml;chste';
+$TEXT['PREVIOUS'] = 'vorherige';
+$TEXT['NEXT_PAGE'] = 'n&auml;chste Seite';
+$TEXT['PREVIOUS_PAGE'] = 'vorherige Seite';
+$TEXT['ON'] = 'Am';
+$TEXT['LAST_UPDATED_BY'] = 'zuletzt ge&auml;ndert von';
+$TEXT['RESULTS_FOR'] = 'Ergebnisse f&uuml;r';
+$TEXT['TIME'] = 'Zeit';
+$TEXT['WYSIWYG_STYLE'] = 'WYSIWYG Stil';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG Editor';
+$TEXT['SERVER_EMAIL'] = 'Server E-Mail';
+$TEXT['MENU'] = 'Men&uuml;';
+$TEXT['MANAGE_GROUPS'] = 'Gruppen verwalten';
+$TEXT['MANAGE_USERS'] = 'Benutzer verwalten';
+$TEXT['PAGE_LANGUAGES'] = 'Seitensprache';
+$TEXT['HIDDEN'] = 'Versteckt';
+$TEXT['MAIN'] = 'Hauptblock';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = 'Datei nach Hochladen umbenennen';
+$TEXT['APP_NAME'] = 'Verwaltungswerkzeuge';
+$TEXT['SESSION_IDENTIFIER'] = 'Sitzungs ID';
+$TEXT['BACKUP'] = 'Sichern';
+$TEXT['RESTORE'] = 'Wiederherstellen';
+$TEXT['BACKUP_DATABASE'] = 'Datenbank sichern';
+$TEXT['RESTORE_DATABASE'] = 'Datenbank wiederherstellen';
+$TEXT['BACKUP_ALL_TABLES'] = 'komplette Datenbank sichern';
+$TEXT['BACKUP_WB_SPECIFIC'] = 'nur WB Tabellen sichern';
+$TEXT['BACKUP_MEDIA'] = 'Dateien sichern';
+$TEXT['RESTORE_MEDIA'] = 'Dateien wiederherstellen';
+$TEXT['ADMINISTRATION_TOOL'] = 'Verwaltungsprogramme';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha Pr&uuml;fziffer';
+$TEXT['VERIFICATION'] = 'Pr&uuml;fziffer';
+$TEXT['DEFAULT_CHARSET'] = 'Standard Zeichensatz';
+$TEXT['CHARSET'] = 'Zeichensatz';
+$TEXT['MODULE_ORDER'] = 'Modulreihenfolge f&uuml;r die Suche';
+$TEXT['MAX_EXCERPT'] = 'Max Anzahl Zitate pro Seite';
+$TEXT['TIME_LIMIT'] = 'Zeitlimit zur Erstellung der Zitate pro Modul';
+$TEXT['PUBL_START_DATE'] = 'Start Datum';
+$TEXT['PUBL_END_DATE'] = 'End Datum';
+$TEXT['CALENDAR'] = 'Kalender';
+$TEXT['DELETE_DATE'] = 'Datum l&ouml;schen';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Bitte geben Sie eine Standard "VON" Adresse und einen Sendernamen an. Als Absender Adresse empfiehlt sich ein Format wie: <strong>admin@IhreWebseite.de</strong>. Manche E-Mail-Provider (z.B. <em>mail.de</em>) stellen keine E-Mails zu, die nicht &uuml;ber den Provider selbst verschickt wurden, in der Absenderadresse aber den Namen des E-Mail-Providers <em>name@mail.de</em> enthalten. Die Standard Werte werden nur verwendet, wenn keine anderen Werte von Website Baker gesetzt wurden. Wenn Ihr Service Provider <acronym title="Simple Mail Transfer Protocol">SMTP</acronym> anbietet, sollten Sie diese Option f&uuml;r ausgehende E-Mails verwenden.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Standard "VON" Adresse';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Standard Absender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Maileinstellungen:</strong><br />Die nachfolgenden Einstellungen m&uuml;ssen nur angepasst werden, wenn Sie E-Mail &uuml;ber <acronym title="Simple Mail Transfer Protocol">SMTP</acronym> verschicken wollen. Wenn Sie Ihren SMTP Server nicht kennen, oder Sie sich unsicher bei den Einstellungen sind, verwenden Sie einfach die Standard E-Mailroutine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'E-Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentifikation';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'nur aktivieren, wenn SMTP Authentifikation ben&ouml;tigt wird';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Benutzername';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Passwort';
+$TEXT['PLEASE_LOGIN'] = 'Bitte anmelden';
+$TEXT['CAP_EDIT_CSS'] = 'Bearbeite CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Aktuelle Moduldatei: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Bearbeite die CSS Definitionen im nachfolgenden Textfeld.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = 'Sie sind nicht berechtigt, diese Seite zu sehen';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Kein aktiver Inhalt auf dieser Seite vorhanden';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = 'Ungen&uuml;gende Zugangsberechtigungen';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = 'Bitte geben Sie unten Ihren Benutzernamen und Passwort ein';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = 'Bitte geben Sie Ihren Benutzernamen ein';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = 'Bitte geben Sie Ihr Passwort ein';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = 'Der angegebene Benutzername ist zu kurz';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = 'Das angegebene Passwort ist zu kurz';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = 'Der angegebene Benutzername ist zu lang';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = 'Das angegebene Passwort ist zu lang';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = 'Der Benutzername oder das Passwort ist nicht korrekt';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = 'Bitte geben Sie Ihre E-Mail-Adresse an';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = 'Bitte geben Sie nachfolgend Ihre E-Mail-Adresse an';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = 'Die angegebene E-Mail-Adresse wurde nicht in der Datenbank gefunden';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = 'Das Passwort konnte nicht versendet werden, bitte kontaktieren Sie den Systemadministrator';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = 'Ihr Benutzername und Ihr Passwort wurden an Ihre E-Mail-Adresse gesendet';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = 'Das Passwort kann nur einmal pro Stunde zur&uuml;ckgesetzt werden';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = 'Willkommen in der Website Baker Verwaltung';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = 'Das Installations-Verzeichnis "/install" existiert noch! Dies stellt ein Sicherheitsrisiko dar. Bitte l&ouml;schen.';
+$MESSAGE['START']['CURRENT_USER'] = 'Sie sind momentan angemeldet als:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = 'Konfigurationsdatei konnte nicht ge&ouml;ffnet werden';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = 'Die Konfigurationsdatei konnte nicht geschrieben werden';
+$MESSAGE['SETTINGS']['SAVED'] = 'Die Optionen wurden erfolgreich gespeichert';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = 'Bitte beachten Sie: Wenn Sie dieses Feld anklicken, werden alle ungespeicherten &Auml;nderungen zur&uuml;ckgesetzt';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = 'Bitte beachten Sie: Dies wird nur zu Testzwecken empfohlen';
+
+$MESSAGE['USERS']['ADDED'] = 'Der Benutzer wurde erfolgreich hinzugef&uuml;gt';
+$MESSAGE['USERS']['SAVED'] = 'Der Benutzer wurde erfolgreich gespeichert';
+$MESSAGE['USERS']['DELETED'] = 'Der Benutzer wurde erfolgreich gel&ouml;scht';
+$MESSAGE['USERS']['NO_GROUP'] = 'Es wurde keine Gruppe ausgew&auml;hlt';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = 'Der eingegebene Benutzername war zu kurz';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = 'Das eingegebene Passwort war zu kurz';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = 'Das angegebene Passwort ist ung&uuml;ltig';
+$MESSAGE['USERS']['INVALID_EMAIL'] = 'Die angegebene E-Mail-Adresse ist ung&uuml;ltig';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = 'Die angegebene E-Mail-Adresse wird bereits verwendet';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = 'Der angegebene Benutzername wird bereits verwendet';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = 'Bitte beachten Sie: Sie sollten in die obigen Felder nur Werte eingeben, wenn Sie das Passwort dieses Benutzers &auml;ndern m&ouml;chten';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = 'Sind Sie sicher, dass Sie den ausgew&auml;hlten Benutzer l&ouml;schen m&ouml;chten?';
+
+$MESSAGE['GROUPS']['ADDED'] = 'Die Gruppe wurde erfolgreich hinzugef&uuml;gt';
+$MESSAGE['GROUPS']['SAVED'] = 'Die Gruppe wurde erfolgreich gespeichert';
+$MESSAGE['GROUPS']['DELETED'] = 'Die Gruppe wurde erfolgreich gel&ouml;scht';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = 'Der Gruppenname wurde nicht angegeben';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = 'Sind Sie sicher, dass Sie die ausgew&auml;hlte Gruppe l&ouml;schen m&ouml;chten (und alle Benutzer, die dazugeh&ouml;ren)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = 'Keine Gruppen gefunden';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = 'Der Gruppenname existiert bereits';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = 'Pers&ouml;nliche Daten wurden erfolgreich gespeichert';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'E-Mail-Einstellung ge&auml;ndert';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = 'Das alte Passwort, das Sie angegeben haben, ist ung&uuml;ltig';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = 'Das Passwort wurde erfolgreich ge&auml;ndert';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = 'Bitte beachten Sie: Um eine andere Designvorlage auszuw&auml;hlen, benutzen Sie den Bereich "Optionen"';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = 'Der Verzeichnisname darf nicht ../ enthalten';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = 'Verzeichnis existiert nicht';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = 'Der Name des Zielverzeichnises darf nicht ../ enthalten';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = 'Der Name darf nicht ../ enthalten';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = 'Der Dateiname index.php kann nicht verwendet werden';
+$MESSAGE['MEDIA']['NONE_FOUND'] = 'Im aktuellen Verzeichnis konnten keine Dateien (z.B. Bilder) gefunden werden';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = 'Die Datei konnte nicht gefunden werden';
+$MESSAGE['MEDIA']['DELETED_FILE'] = 'Die Datei wurde gel&ouml;scht';
+$MESSAGE['MEDIA']['DELETED_DIR'] = 'Das Verzeichnis wurde gel&ouml;scht';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = 'Sind Sie sicher, dass Sie die folgende Datei oder Verzeichnis l&ouml;schen m&ouml;chten?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = 'Die ausgew&auml;hlte Datei konnte nicht gel&ouml;scht werden';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = 'Das ausgew&auml;hlte Verzeichnis konnte nicht gel&ouml;scht werden';
+$MESSAGE['MEDIA']['BLANK_NAME'] = 'Sie haben keinen neuen Namen angegeben';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = 'Sie haben keine Dateiendung angegeben';
+$MESSAGE['MEDIA']['RENAMED'] = 'Das Umbenennen war erfolgreich';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = 'Das Umbenennen war nicht erfolgreich';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = 'Eine Datei mit dem angegebenen Namen existiert bereits';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = 'Ein Verzeichnis mit dem angegebenen Namen existiert bereits';
+$MESSAGE['MEDIA']['DIR_MADE'] = 'Das Verzeichnis wurde erfolgreich angelegt';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = 'Das Verzeichnis konnte nicht angelegt werden';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = 'Datei wurde erfolgreich &uuml;bertragen';
+$MESSAGE['MEDIA']['UPLOADED'] = 'Dateien wurden erfolgreich &uuml;bertragen';
+
+$MESSAGE['PAGES']['ADDED'] = 'Die Seite wurde erfolgreich hinzugef&uuml;gt';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Seitenkopf erfolgreich hinzufgef&uuml;gt';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = 'Eine Seite mit einem &auml;hnlichen oder demselben Titel existiert bereits';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = 'Beim Anlegen der Zugangsdatei im Verzeichnis /pages ist ein Fehler aufgetreten (Ungen&uuml;gende Zugangsrechte)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = 'Beim L&ouml;schen der Zugangsdatei im Verzeichnis /pages ist ein Fehler aufgetreten (Ungen&uuml;gende Zugangsrechte)';
+$MESSAGE['PAGES']['NOT_FOUND'] = 'Die Seite konnte nicht gefunden werden';
+$MESSAGE['PAGES']['SAVED'] = 'Die Seite wurde erfolgreich gespeichert';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = 'Die Seiteneinstellungen wurden erfolgreich gespeichert';
+$MESSAGE['PAGES']['NOT_SAVED'] = 'Beim Speichern der Seite ist ein Fehler aufgetreten';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = 'Sind Sie sicher, dass Sie die ausgew&auml;hlte Seite l&ouml;schen m&ouml;chten';
+$MESSAGE['PAGES']['DELETED'] = 'Die Seite wurde erfolgreich gel&ouml;scht';
+$MESSAGE['PAGES']['RESTORED'] = 'Die Seite wurde erfolgreich wiederhergestellt';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = 'Bitte geben Sie einen Titel f&uuml;r die Seite ein';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = 'Bitte geben Sie einen Men&uuml;titel ein';
+$MESSAGE['PAGES']['REORDERED'] = 'Die Seite wurde erfolgreich neu zusammengestellt';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = 'Bei der Zusammenstellung der Seite ist ein Fehler aufgetreten';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = 'Sie haben keine Berechtigung, diese Seite zu &auml;ndern';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = 'Es konnte nicht in die Datei /pages/intro.php geschrieben werden (ungen&uuml;gende Zugangsrechte)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = 'Eingangsseite wurde erfolgreich gespeichert';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = 'Die letzte &Auml;nderung wurde durchgef&uuml;hrt von';
+$MESSAGE['PAGES']['INTRO_LINK'] = 'Bitte klicken Sie HIER um die Eingangsseite zu &auml;ndern';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = 'Einstellungen f&uuml;r diesen Abschnitt erfolgreich gespeichert';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = 'Zur&uuml;ck zum Seitenmen&uuml;';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = 'Bitte alle Felder ausf&uuml;llen';
+$MESSAGE['GENERIC']['FILE_TYPE'] = 'Bitte beachten Sie, dass Sie nur den folgenden Dateityp ausw&auml;hlen k&ouml;nnen:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = 'Bitte beachten Sie, dass Sie nur folgende Dateitypen ausw&auml;hlen k&ouml;nnen:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = 'Die Datei kann nicht &uuml;bertragen werden';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = 'Bereits installiert';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = 'Nicht installiert';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = 'Deinstallation fehlgeschlagen';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'Fehler beim Entpacken';
+$MESSAGE['GENERIC']['INSTALLED'] = 'Erfolgreich installiert';
+$MESSAGE['GENERIC']['UPGRADED'] = 'Erfolgreich aktualisiert';
+$MESSAGE['GENERIC']['UNINSTALLED'] = 'Erfolgreich deinstalliert';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = 'Kann im Zielverzeichnis nicht schreiben';
+$MESSAGE['GENERIC']['INVALID'] = 'Die &uuml;bertragene Datei ist ung&uuml;ltig';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = 'Deinstallation nicht m&ouml;glich: Datei wird benutzt';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = 'Momentan in Bearbeitung';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = 'Bitte versuchen Sie es sp&auml;ter noch einmal ...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = 'Die Datenbanksicherung kann je nach Gr&ouml;&szlig;e der Datenbank einige Zeit dauern.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = 'Fehler beim &Ouml;ffnen der Datei.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = 'Bitte folgende Angaben erg&auml;nzen';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = 'Dieses Formular wurde zu oft aufgerufen. Bitte versuchen Sie es in einer Stunde noch einmal.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = 'Die eingegebene Pr&uuml;fziffer stimmt nicht &uuml;berein. Wenn Sie Probleme mit dem Lesen der Pr&uuml;fziffer haben, bitte schreiben Sie eine E-Mail an uns: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Bitte w&auml;hlen Sie aus, welche Erweiterungen neu geladen werden sollen';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Module erfolgreich geladen';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Designvorlagen erfolgreich geladen';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Sprachen erfolgreich geladen';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/DE.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/BG.php
===================================================================
--- tags/2.7.0/wb/languages/BG.php	(nonexistent)
+++ tags/2.7.0/wb/languages/BG.php	(revision 838)
@@ -0,0 +1,564 @@
+<?php
+
+// $Id$
+
+/*
+
+Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+Website Baker is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Website Baker is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Website Baker; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// use languageedit-module to modify this file
+
+// Define that this file is loaded
+if(!defined('LANGUAGE_LOADED')) {
+define('LANGUAGE_LOADED', true);
+}
+
+// Set the language information
+$language_code = 'BG';
+$language_name = 'Bulgarian';
+$language_version = '2.7';
+$language_platform = '2.7.x';
+$language_author = 'Hristo Benev(&#1061;&#1088;&#1080;&#1089;&#1090;&#1086; &#1041;&#1077;&#1085;&#1077;&#1074;)';
+$language_license = 'GNU General Public License';
+
+// Menu titles
+$MENU['START'] = '&#1053;&#1072;&#1095;&#1072;&#1083;&#1086;';
+$MENU['PAGES'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;';
+$MENU['MEDIA'] = '&#1052;&#1077;&#1076;&#1080;&#1072;';
+$MENU['ADDONS'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1082;&#1080;';
+$MENU['MODULES'] = '&#1052;&#1086;&#1076;&#1091;&#1083;&#1080;';
+$MENU['TEMPLATES'] = '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;&#1080;';
+$MENU['LANGUAGES'] = '&#1045;&#1079;&#1080;&#1094;&#1080;';
+$MENU['PREFERENCES'] = '&#1055;&#1088;&#1077;&#1076;&#1087;&#1086;&#1095;&#1080;&#1090;&#1072;&#1085;&#1080;&#1103;';
+$MENU['SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+$MENU['ADMINTOOLS'] = 'Admin-Tools';
+$MENU['ACCESS'] = '&#1044;&#1086;&#1089;&#1090;&#1098;&#1087;';
+$MENU['USERS'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1080;';
+$MENU['GROUPS'] = '&#1043;&#1088;&#1091;&#1087;&#1080;';
+$MENU['HELP'] = '&#1055;&#1086;&#1084;&#1086;&#1097;';
+$MENU['VIEW'] = '&#1042;&#1080;&#1078;';
+$MENU['LOGOUT'] = '&#1048;&#1079;&#1093;&#1086;&#1076;';
+$MENU['LOGIN'] = '&#1042;&#1093;&#1086;&#1076;';
+$MENU['FORGOT'] = '&#1047;&#1072;&#1073;&#1088;&#1072;&#1074;&#1080;&#1093; &#1076;&#1072;&#1085;&#1085;&#1080;&#1090;&#1077; &#1079;&#1072; &#1074;&#1093;&#1086;&#1076;';
+
+// Section overviews
+$OVERVIEW['START'] = '&#1055;&#1088;&#1077;&#1075;&#1083;&#1077;&#1076; &#1085;&#1072; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$OVERVIEW['PAGES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;&#1090;&#1077;...';
+$OVERVIEW['MEDIA'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;&#1090;&#1077; &#1074; &#1087;&#1072;&#1087;&#1082;&#1072; &#1084;&#1077;&#1076;&#1080;&#1103;...';
+$OVERVIEW['MODULES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1084;&#1086;&#1076;&#1091;&#1083;&#1080;&#1090;&#1077; &#1085;&#1072; Website Baker...';
+$OVERVIEW['TEMPLATES'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1080;&#1079;&#1075;&#1083;&#1077;&#1076;&#1072; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072; &#1095;&#1088;&#1077;&#1079; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1080;...';
+$OVERVIEW['LANGUAGES'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1077;&#1079;&#1080;&#1094;&#1080;&#1090;&#1077; &#1085;&#1072; Website Baker...';
+$OVERVIEW['PREFERENCES'] = '&#1057;&#1084;&#1077;&#1085;&#1080; &#1087;&#1088;&#1077;&#1076;&#1087;&#1086;&#1095;&#1080;&#1090;&#1072;&#1085;&#1080;&#1103;&#1090;&#1072; &#1086;&#1090;&#1085;&#1086;&#1089;&#1085;&#1086; email &#1072;&#1076;&#1088;&#1077;&#1089;, &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1080; &#1076;&#1088;. ';
+$OVERVIEW['SETTINGS'] = '&#1057;&#1084;&#1077;&#1085;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077; &#1085;&#1072; Website Baker...';
+$OVERVIEW['USERS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1080;&#1090;&#1077; &#1084;&#1086;&#1078;&#1077;&#1097;&#1080; &#1076;&#1072; &#1074;&#1083;&#1103;&#1079;&#1072;&#1090; &#1074; Website Baker...';
+$OVERVIEW['GROUPS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1080;&#1090;&#1077; &#1075;&#1088;&#1091;&#1087;&#1080; &#1080; &#1090;&#1103;&#1093;&#1085;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072;...';
+$OVERVIEW['HELP'] = '&#1048;&#1084;&#1072;&#1090;&#1077; &#1074;&#1098;&#1087;&#1088;&#1086;&#1089;&#1080;? &#1053;&#1072;&#1084;&#1077;&#1088;&#1077;&#1090;&#1077; &#1086;&#1090;&#1075;&#1086;&#1074;&#1086;&#1088;...';
+$OVERVIEW['VIEW'] = '&#1042;&#1080;&#1078; &#1089;&#1074;&#1086;&#1103; &#1089;&#1072;&#1081;&#1090; &#1074; &#1085;&#1086;&#1074; &#1087;&#1088;&#1086;&#1079;&#1086;&#1088;&#1077;&#1094;...';
+$OVERVIEW['ADMINTOOLS'] = 'Access the Website Baker administration tools...';
+
+// Headings
+$HEADING['MODIFY_DELETE_PAGE'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;/&#1048;&#1079;&#1090;&#1088;&#1080;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$HEADING['DELETED_PAGES'] = '&#1048;&#1079;&#1090;&#1088;&#1080;&#1090;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;';
+$HEADING['ADD_PAGE'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$HEADING['ADD_HEADING'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080; &#1079;&#1072;&#1075;&#1083;&#1072;&#1074;&#1080;&#1077;';
+$HEADING['MODIFY_PAGE'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$HEADING['MODIFY_PAGE_SETTINGS'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$HEADING['MODIFY_ADVANCED_PAGE_SETTINGS'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1088;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1090;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$HEADING['MANAGE_SECTIONS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072; &#1089;&#1077;&#1082;&#1094;&#1080;&#1080;&#1090;&#1077;';
+$HEADING['MODIFY_INTRO_PAGE'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1074;&#1098;&#1074;&#1077;&#1078;&#1076;&#1072;&#1097;&#1072;&#1090;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+
+$HEADING['BROWSE_MEDIA'] = '&#1055;&#1088;&#1077;&#1075;&#1083;&#1077;&#1076; &#1085;&#1072; &#1052;&#1077;&#1076;&#1080;&#1103;';
+$HEADING['CREATE_FOLDER'] = '&#1057;&#1098;&#1079;&#1076;&#1072;&#1081; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$HEADING['UPLOAD_FILES'] = '&#1050;&#1072;&#1095;&#1074;&#1072;&#1085;&#1077; &#1085;&#1072; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;';
+
+$HEADING['INSTALL_MODULE'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1084;&#1086;&#1076;&#1091;&#1083;';
+$HEADING['UNINSTALL_MODULE'] = '&#1044;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1084;&#1086;&#1076;&#1091;&#1083;';
+$HEADING['MODULE_DETAILS'] = '&#1044;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080; &#1079;&#1072; &#1084;&#1086;&#1076;&#1091;&#1083;';
+
+$HEADING['INSTALL_TEMPLATE'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$HEADING['UNINSTALL_TEMPLATE'] = '&#1044;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$HEADING['TEMPLATE_DETAILS'] = '&#1044;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080; &#1079;&#1072; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+
+$HEADING['INSTALL_LANGUAGE'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1077;&#1079;&#1080;&#1082;';
+$HEADING['UNINSTALL_LANGUAGE'] = '&#1044;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081; &#1077;&#1079;&#1080;&#1082;';
+$HEADING['LANGUAGE_DETAILS'] = '&#1044;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080; &#1079;&#1072; &#1077;&#1079;&#1080;&#1082;';
+
+$HEADING['MY_SETTINGS'] = '&#1052;&#1086;&#1080;&#1090;&#1077; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+$HEADING['MY_EMAIL'] = '&#1052;&#1086;&#1103;&#1090; e-mail';
+$HEADING['MY_PASSWORD'] = '&#1052;&#1086;&#1103;&#1090;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+
+$HEADING['GENERAL_SETTINGS'] = '&#1054;&#1073;&#1097;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+$HEADING['DEFAULT_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1087;&#1086; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1073;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$HEADING['SEARCH_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1090;&#1098;&#1088;&#1089;&#1077;&#1085;&#1077;';
+$HEADING['FILESYSTEM_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1081;&#1082;&#1080; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1072; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072;';
+$HEADING['SERVER_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080; &#1089;&#1098;&#1088;&#1074;&#1098;&#1088;';
+$HEADING['WBMAILER_SETTINGS'] = 'Mailer Settings';
+$HEADING['ADMINISTRATION_TOOLS'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1080; &#1080;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090;&#1080;';
+
+$HEADING['MODIFY_DELETE_USER'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;/&#1048;&#1079;&#1090;&#1088;&#1080;&#1081; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;';
+$HEADING['ADD_USER'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;';
+$HEADING['MODIFY_USER'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;';
+
+$HEADING['MODIFY_DELETE_GROUP'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;/&#1048;&#1079;&#1090;&#1088;&#1080;&#1081; &#1075;&#1088;&#1091;&#1087;&#1072;';
+$HEADING['ADD_GROUP'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080; &#1075;&#1088;&#1091;&#1087;&#1072;';
+$HEADING['MODIFY_GROUP'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1075;&#1088;&#1091;&#1087;&#1072;';
+
+// Other text
+$TEXT['OPEN'] = 'Open';
+$TEXT['ADD'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;';
+$TEXT['MODIFY'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;';
+$TEXT['SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+$TEXT['DELETE'] = '&#1048;&#1079;&#1090;&#1088;&#1080;&#1081;';
+$TEXT['SAVE'] = '&#1047;&#1072;&#1087;&#1072;&#1079;&#1080;';
+$TEXT['RESET'] = '&#1053;&#1091;&#1083;&#1080;&#1088;&#1072;&#1081;';
+$TEXT['LOGIN'] = '&#1042;&#1093;&#1086;&#1076;';
+$TEXT['RELOAD'] = '&#1054;&#1073;&#1085;&#1086;&#1074;&#1080;';
+$TEXT['CANCEL'] = '&#1054;&#1090;&#1082;&#1072;&#1079;';
+$TEXT['NAME'] = '&#1048;&#1084;&#1077;';
+$TEXT['PLEASE_SELECT'] = '&#1052;&#1086;&#1083;&#1103; &#1080;&#1079;&#1073;&#1077;&#1088;&#1077;&#1090;&#1077;';
+$TEXT['TITLE'] = '&#1058;&#1080;&#1090;&#1083;&#1072;';
+$TEXT['PARENT'] = '&#1056;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;';
+$TEXT['TYPE'] = '&#1058;&#1080;&#1087;';
+$TEXT['VISIBILITY'] = '&#1042;&#1080;&#1076;&#1080;&#1084;&#1086;&#1089;&#1090;';
+$TEXT['PRIVATE'] = '&#1047;&#1072;&#1082;&#1088;&#1080;&#1090; &#1076;&#1086;&#1089;&#1090;&#1098;&#1087;';
+$TEXT['PUBLIC'] = '&#1055;&#1091;&#1073;&#1083;&#1080;&#1095;&#1085;&#1072;';
+$TEXT['NONE'] = '&#1053;&#1080;&#1097;&#1086;';
+$TEXT['NONE_FOUND'] = '&#1053;&#1080;&#1097;&#1086; &#1085;&#1077; &#1077; &#1085;&#1072;&#1084;&#1077;&#1088;&#1077;&#1085;&#1086;';
+$TEXT['CURRENT'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072;';
+$TEXT['CHANGE'] = '&#1057;&#1084;&#1077;&#1085;&#1080;';
+$TEXT['WINDOW'] = '&#1055;&#1088;&#1086;&#1079;&#1086;&#1088;&#1077;&#1094;';
+$TEXT['DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1086;&#1074;&#1080; &#1076;&#1091;&#1084;&#1080;';
+$TEXT['ADMINISTRATORS'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1080;';
+$TEXT['PRIVATE_VIEWERS'] = '&#1047;&#1072;&#1082;&#1088;&#1080;&#1090; &#1076;&#1086;&#1089;&#1090;&#1098;&#1087;';
+$TEXT['EXPAND'] = '&#1056;&#1072;&#1079;&#1096;&#1080;&#1088;&#1080;';
+$TEXT['COLLAPSE'] = '&#1057;&#1074;&#1080;&#1081;';
+$TEXT['MOVE_UP'] = '&#1053;&#1072;&#1075;&#1086;&#1088;&#1077;';
+$TEXT['MOVE_DOWN'] = '&#1053;&#1072;&#1076;&#1086;&#1083;&#1091;';
+$TEXT['RENAME'] = '&#1055;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1091;&#1074;&#1072;&#1081;';
+$TEXT['MODIFY_SETTINGS'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077;';
+$TEXT['MODIFY_CONTENT'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1089;&#1098;&#1076;&#1098;&#1088;&#1078;&#1072;&#1085;&#1080;&#1077;&#1090;&#1086;';
+$TEXT['VIEW'] = '&#1055;&#1088;&#1077;&#1075;&#1083;&#1077;&#1076;';
+$TEXT['UP'] = '&#1053;&#1072;&#1075;&#1086;&#1088;&#1077;';
+$TEXT['FORGOTTEN_DETAILS'] = '&#1047;&#1072;&#1073;&#1088;&#1072;&#1074;&#1077;&#1085;&#1080; &#1076;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080;?';
+$TEXT['NEED_TO_LOGIN'] = '&#1048;&#1089;&#1082;&#1072;&#1090;&#1077; &#1076;&#1072; &#1074;&#1083;&#1077;&#1079;&#1077;&#1090;&#1077;?';
+$TEXT['SEND_DETAILS'] = '&#1048;&#1079;&#1087;&#1088;&#1072;&#1090;&#1080; &#1076;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080;&#1090;&#1077;';
+$TEXT['USERNAME'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1080;&#1084;&#1077;';
+$TEXT['PASSWORD'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$TEXT['HOME'] = '&#1053;&#1072;&#1095;&#1072;&#1083;&#1086;';
+$TEXT['TARGET_FOLDER'] = '&#1050;&#1098;&#1084; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['OVERWRITE_EXISTING'] = '&#1055;&#1088;&#1077;&#1079;&#1072;&#1087;&#1080;&#1096;&#1080; &#1089;&#1098;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1074;&#1072;&#1097;';
+$TEXT['FILE'] = '&#1060;&#1072;&#1081;&#1083;';
+$TEXT['FILES'] = '&#1060;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;';
+$TEXT['FOLDER'] = '&#1055;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['FOLDERS'] = '&#1055;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['CREATE_FOLDER'] = '&#1057;&#1098;&#1079;&#1076;&#1072;&#1081; &#1087;&#1072;&#1087;&#1082;&#1072;/&#1080;/';
+$TEXT['UPLOAD_FILES'] = '&#1050;&#1072;&#1095;&#1080; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;';
+$TEXT['CURRENT_FOLDER'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$TEXT['TO'] = '&#1044;&#1086;';
+$TEXT['FROM'] = '&#1054;&#1090;';
+$TEXT['INSTALL'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081;';
+$TEXT['UNINSTALL'] = '&#1044;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1081;';
+$TEXT['VIEW_DETAILS'] = '&#1042;&#1080;&#1078; &#1076;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080;&#1090;&#1077;';
+$TEXT['DISPLAY_NAME'] = '&#1055;&#1086;&#1082;&#1072;&#1078;&#1080; &#1080;&#1084;&#1077;';
+$TEXT['AUTHOR'] = '&#1040;&#1074;&#1090;&#1086;&#1088;';
+$TEXT['VERSION'] = '&#1042;&#1077;&#1088;&#1089;&#1080;&#1103;';
+$TEXT['DESIGNED_FOR'] = '&#1053;&#1072;&#1087;&#1088;&#1072;&#1074;&#1077;&#1085; &#1079;&#1072;';
+$TEXT['DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077;';
+$TEXT['EMAIL'] = 'Email';
+$TEXT['LANGUAGE'] = '&#1045;&#1079;&#1080;&#1082;';
+$TEXT['TIMEZONE'] = '&#1042;&#1088;&#1077;&#1084;&#1077;&#1074;&#1072; &#1079;&#1086;&#1085;&#1072;';
+$TEXT['CURRENT_PASSWORD'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$TEXT['NEW_PASSWORD'] = '&#1053;&#1086;&#1074;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$TEXT['RETYPE_NEW_PASSWORD'] = '&#1054;&#1097;&#1077; &#1074;&#1077;&#1076;&#1085;&#1098;&#1078; &#1085;&#1086;&#1074;&#1072;&#1090;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$TEXT['ACTIVE'] = '&#1040;&#1082;&#1090;&#1080;&#1074;&#1080;&#1088;&#1072;&#1085;';
+$TEXT['DISABLED'] = '&#1044;&#1077;&#1072;&#1082;&#1090;&#1080;&#1074;&#1080;&#1088;&#1072;&#1085;';
+$TEXT['ENABLED'] = '&#1055;&#1086;&#1079;&#1074;&#1086;&#1083;&#1077;&#1085;';
+$TEXT['RETYPE_PASSWORD'] = '&#1054;&#1097;&#1077; &#1074;&#1077;&#1076;&#1085;&#1098;&#1078; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;&#1090;&#1072;';
+$TEXT['GROUP'] = '&#1043;&#1088;&#1091;&#1087;&#1072;';
+$TEXT['SYSTEM_PERMISSIONS'] = '&#1057;&#1080;&#1089;&#1090;&#1077;&#1084;&#1085;&#1080; &#1087;&#1088;&#1072;&#1074;&#1072;';
+$TEXT['MODULE_PERMISSIONS'] = '&#1055;&#1088;&#1072;&#1074;&#1072; &#1084;&#1086;&#1076;&#1091;&#1083;&#1080;';
+$TEXT['SHOW_ADVANCED'] = '&#1055;&#1086;&#1082;&#1072;&#1078;&#1080; &#1088;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080; &#1086;&#1087;&#1094;&#1080;&#1080;';
+$TEXT['HIDE_ADVANCED'] = '&#1057;&#1082;&#1088;&#1080;&#1081; &#1088;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1090;&#1077; &#1086;&#1087;&#1094;&#1080;&#1080;';
+$TEXT['BASIC'] = '&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1072;';
+$TEXT['ADVANCED'] = '&#1056;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1072;';
+$TEXT['WEBSITE'] = '&#1057;&#1072;&#1081;&#1090;';
+$TEXT['DEFAULT'] = '&#1055;&#1086; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1073;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$TEXT['KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1086;&#1074;&#1080; &#1076;&#1091;&#1084;&#1080;';
+$TEXT['TEXT'] = '&#1058;&#1077;&#1082;&#1089;&#1090;';
+$TEXT['HEADER'] = 'Header';
+$TEXT['FOOTER'] = 'Footer';
+$TEXT['TEMPLATE'] = '&#1064;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$TEXT['INSTALLATION'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['DATABASE'] = '&#1041;&#1072;&#1079;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$TEXT['HOST'] = 'Host';
+$TEXT['INTRO'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['PAGE'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['SIGNUP'] = '&#1047;&#1072;&#1087;&#1080;&#1097;&#1080; &#1089;&#1077;';
+$TEXT['PHP_ERROR_LEVEL'] = 'PHP Error Reporting Level';
+$TEXT['ADMIN'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;';
+$TEXT['PATH'] = '&#1055;&#1098;&#1090;';
+$TEXT['URL'] = 'URL';
+$TEXT['FRONTEND'] = 'Front-end';
+$TEXT['EXTENSION'] = '&#1056;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['TABLE_PREFIX'] = '&#1055;&#1088;&#1077;&#1092;&#1080;&#1082;&#1089; &#1085;&#1072; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072;';
+$TEXT['CHANGES'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;';
+$TEXT['ADMINISTRATION'] = '&#1040;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['FORGOT_DETAILS'] = '&#1047;&#1072;&#1073;&#1088;&#1072;&#1074;&#1077;&#1085;&#1080; &#1076;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080;?';
+$TEXT['LOGGED_IN'] = 'Logged-In';
+$TEXT['WELCOME_BACK'] = '&#1044;&#1086;&#1073;&#1088;&#1077; &#1076;&#1086;&#1096;&#1083;&#1080;';
+$TEXT['FULL_NAME'] = '&#1055;&#1098;&#1083;&#1085;&#1086; &#1080;&#1084;&#1077;';
+$TEXT['ACCOUNT_SIGNUP'] = '&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['LINK'] = '&#1042;&#1088;&#1098;&#1079;&#1082;&#1072;';
+$TEXT['ANCHOR'] = 'Anchor';
+$TEXT['TARGET'] = '&#1062;&#1077;&#1083;';
+$TEXT['NEW_WINDOW'] = '&#1053;&#1086;&#1074; &#1087;&#1088;&#1086;&#1079;&#1086;&#1088;&#1077;&#1094;';
+$TEXT['SAME_WINDOW'] = '&#1057;&#1098;&#1097;&#1080;&#1103; &#1087;&#1088;&#1086;&#1079;&#1086;&#1088;&#1077;&#1094;';
+$TEXT['TOP_FRAME'] = 'Top Frame';
+$TEXT['PAGE_LEVEL_LIMIT'] = 'Page Level Limit';
+$TEXT['SUCCESS'] = '&#1059;&#1089;&#1087;&#1077;&#1093;';
+$TEXT['ERROR'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072;';
+$TEXT['ARE_YOU_SURE'] = '&#1057;&#1080;&#1075;&#1091;&#1088;&#1085;&#1080; &#1083;&#1080; &#1089;&#1090;&#1077;?';
+$TEXT['YES'] = '&#1044;&#1072;';
+$TEXT['NO'] = '&#1053;&#1077;';
+$TEXT['SYSTEM_DEFAULT'] = '&#1055;&#1086; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1073;&#1080;&#1088;&#1072;&#1085;&#1077; &#1085;&#1072; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072;&#1090;&#1072;';
+$TEXT['PAGE_TITLE'] = '&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1080;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072;';
+$TEXT['MENU_TITLE'] = '&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1080;&#1077; &#1085;&#1072; &#1084;&#1077;&#1085;&#1102;&#1090;&#1086;';
+$TEXT['ACTIONS'] = '&#1044;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;';
+$TEXT['UNKNOWN'] = '&#1053;&#1077;&#1080;&#1079;&#1074;&#1077;&#1089;&#1090;&#1085;&#1086;';
+$TEXT['BLOCK'] = '&#1041;&#1083;&#1086;&#1082;&#1080;&#1088;&#1072;&#1081;';
+$TEXT['SEARCH'] = '&#1058;&#1098;&#1088;&#1089;&#1080;';
+$TEXT['SEARCHING'] = '&#1058;&#1098;&#1088;&#1089;&#1103;';
+$TEXT['POST'] = '&#1054;&#1089;&#1090;&#1072;&#1074;&#1080;';
+$TEXT['COMMENT'] = '&#1050;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;';
+$TEXT['COMMENTS'] = '&#1050;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;';
+$TEXT['COMMENTING'] = '&#1050;&#1086;&#1084;&#1077;&#1085;&#1090;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$TEXT['SHORT'] = '&#1050;&#1098;&#1089;';
+$TEXT['LONG'] = '&#1044;&#1098;&#1083;&#1098;&#1075;';
+$TEXT['LOOP'] = 'Loop';
+$TEXT['FIELD'] = '&#1055;&#1086;&#1083;&#1077;';
+$TEXT['REQUIRED'] = '&#1047;&#1072;&#1076;&#1098;&#1083;&#1078;&#1080;&#1090;&#1077;&#1083;&#1085;&#1086;';
+$TEXT['LENGTH'] = '&#1044;&#1098;&#1083;&#1078;&#1080;&#1085;&#1072;';
+$TEXT['MESSAGE'] = '&#1057;&#1098;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['SUBJECT'] = '&#1057;&#1102;&#1078;&#1077;&#1090;';
+$TEXT['MATCH'] = '&#1055;&#1086;&#1076;&#1086;&#1073;&#1077;&#1085;';
+$TEXT['ALL_WORDS'] = '&#1042;&#1089;&#1080;&#1095;&#1082;&#1080; &#1076;&#1091;&#1084;&#1080;';
+$TEXT['ANY_WORDS'] = '&#1050;&#1086;&#1103;&#1090;&#1086; &#1080; &#1076;&#1072; &#1077; &#1076;&#1091;&#1084;&#1072;';
+$TEXT['EXACT_MATCH'] = '&#1058;&#1086;&#1095;&#1085;&#1086; &#1089;&#1098;&#1074;&#1087;&#1072;&#1076;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['SHOW'] = '&#1055;&#1086;&#1082;&#1072;&#1078;&#1080;';
+$TEXT['HIDE'] = '&#1057;&#1082;&#1088;&#1080;&#1081;';
+$TEXT['START_PUBLISHING'] = '&#1047;&#1072;&#1087;&#1086;&#1095;&#1085;&#1080; &#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1091;&#1074;&#1072;&#1085;&#1077;';
+$TEXT['FINISH_PUBLISHING'] = '&#1050;&#1088;&#1072;&#1081; &#1085;&#1072; &#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1091;&#1074;&#1072;&#1085;&#1077;';
+$TEXT['DATE'] = '&#1044;&#1072;&#1090;&#1072;';
+$TEXT['START'] = '&#1053;&#1072;&#1095;&#1072;&#1083;&#1086;';
+$TEXT['END'] = '&#1050;&#1088;&#1072;&#1081;';
+$TEXT['IMAGE'] = '&#1050;&#1072;&#1088;&#1090;&#1080;&#1085;&#1082;&#1072;';
+$TEXT['ICON'] = '&#1048;&#1082;&#1086;&#1085;&#1072;';
+$TEXT['SECTION'] = '&#1057;&#1077;&#1082;&#1094;&#1080;&#1103;';
+$TEXT['DATE_FORMAT'] = '&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1076;&#1072;&#1090;&#1072;';
+$TEXT['TIME_FORMAT'] = '&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1074;&#1088;&#1077;&#1084;&#1077;';
+$TEXT['RESULTS'] = '&#1056;&#1077;&#1079;&#1091;&#1083;&#1090;&#1072;&#1090;&#1080;';
+$TEXT['RESIZE'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1088;&#1072;&#1079;&#1084;&#1077;&#1088;&#1072;';
+$TEXT['MANAGE'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['CODE'] = '&#1050;&#1086;&#1076;';
+$TEXT['WIDTH'] = '&#1064;&#1080;&#1088;&#1080;&#1085;&#1072;';
+$TEXT['HEIGHT'] = '&#1042;&#1080;&#1089;&#1086;&#1095;&#1080;&#1085;&#1072;';
+$TEXT['MORE'] = '&#1055;&#1086;&#1074;&#1077;&#1095;&#1077;';
+$TEXT['READ_MORE'] = '&#1055;&#1088;&#1086;&#1095;&#1077;&#1090;&#1080; &#1087;&#1086;&#1074;&#1077;&#1095;&#1077;';
+$TEXT['CHANGE_SETTINGS'] = '&#1055;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077;';
+$TEXT['CURRENT_PAGE'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['CLOSE'] = '&#1047;&#1072;&#1090;&#1074;&#1086;&#1088;&#1080;';
+$TEXT['INTRO_PAGE'] = '&#1042;&#1098;&#1074;&#1077;&#1078;&#1076;&#1072;&#1097;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['INSTALLATION_URL'] = 'URL - &#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['INSTALLATION_PATH'] = '&#1055;&#1098;&#1090; - &#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1072;&#1094;&#1080;&#1103;';
+$TEXT['PAGE_EXTENSION'] = '&#1056;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['NO_RESULTS'] = '&#1053;&#1103;&#1084;&#1072; &#1088;&#1077;&#1079;&#1091;&#1083;&#1090;&#1072;&#1090;&#1080;';
+$TEXT['WEBSITE_TITLE'] = '&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1080;&#1077; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_DESCRIPTION'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_KEYWORDS'] = '&#1050;&#1083;&#1102;&#1095;&#1086;&#1074;&#1080; &#1076;&#1091;&#1084;&#1072; &#1085;&#1072; &#1089;&#1072;&#1081;&#1090;&#1072;';
+$TEXT['WEBSITE_HEADER'] = 'Website Header';
+$TEXT['WEBSITE_FOOTER'] = 'Website Footer';
+$TEXT['RESULTS_HEADER'] = 'Results Header';
+$TEXT['RESULTS_LOOP'] = 'Results Loop';
+$TEXT['RESULTS_FOOTER'] = 'Results Footer';
+$TEXT['LEVEL'] = '&#1053;&#1080;&#1074;&#1086;';
+$TEXT['NOT_FOUND'] = '&#1053;&#1077; &#1077; &#1085;&#1072;&#1084;&#1077;&#1088;&#1077;&#1085;';
+$TEXT['PAGE_SPACER'] = 'Page Spacer';
+$TEXT['MATCHING'] = '&#1057;&#1098;&#1074;&#1087;&#1072;&#1076;&#1072;';
+$TEXT['TEMPLATE_PERMISSIONS'] = '&#1055;&#1086;&#1079;&#1074;&#1086;&#1083;&#1077;&#1085;&#1080;&#1103; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
+$TEXT['PAGES_DIRECTORY'] = '&#1055;&#1072;&#1087;&#1082;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;';
+$TEXT['MEDIA_DIRECTORY'] = '&#1055;&#1072;&#1087;&#1082;&#1072; &#1084;&#1077;&#1076;&#1080;&#1103;';
+$TEXT['FILE_MODE'] = '&#1060;&#1072;&#1081;&#1083;&#1086;&#1074; &#1088;&#1077;&#1078;&#1080;&#1084;';
+$TEXT['USER'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;';
+$TEXT['OTHERS'] = '&#1044;&#1088;&#1091;&#1075;&#1080;';
+$TEXT['READ'] = '&#1063;&#1077;&#1090;&#1077;&#1085;&#1077;';
+$TEXT['WRITE'] = '&#1047;&#1072;&#1087;&#1080;&#1089;';
+$TEXT['EXECUTE'] = '&#1048;&#1079;&#1087;&#1098;&#1083;&#1085;&#1077;&#1085;&#1080;&#1077;';
+$TEXT['SMART_LOGIN'] = 'Smart Login';
+$TEXT['REMEMBER_ME'] = '&#1047;&#1072;&#1087;&#1086;&#1084;&#1085;&#1080; &#1084;&#1077;';
+$TEXT['FILESYSTEM_PERMISSIONS'] = '&#1055;&#1086;&#1079;&#1074;&#1086;&#1083;&#1077;&#1085;&#1080;&#1103; - &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1072; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072;';
+$TEXT['DIRECTORIES'] = '&#1055;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['DIRECTORY_MODE'] = '&#1056;&#1077;&#1078;&#1080;&#1084; &#1087;&#1072;&#1087;&#1082;&#1080;';
+$TEXT['LIST_OPTIONS'] = '&#1057;&#1087;&#1080;&#1089;&#1098;&#1082; - &#1086;&#1087;&#1094;&#1080;&#1080;';
+$TEXT['OPTION'] = '&#1054;&#1087;&#1094;&#1080;&#1103;';
+$TEXT['ALLOW_MULTIPLE_SELECTIONS'] = '&#1055;&#1086;&#1079;&#1074;&#1086;&#1083;&#1080; &#1084;&#1085;&#1086;&#1078;&#1077;&#1089;&#1090;&#1074;&#1077;&#1085; &#1080;&#1079;&#1073;&#1086;&#1088;';
+$TEXT['TEXTFIELD'] = '&#1058;&#1077;&#1082;&#1089;&#1090;&#1086;&#1074;&#1086; &#1087;&#1086;&#1083;&#1077;';
+$TEXT['TEXTAREA'] = '&#1058;&#1077;&#1082;&#1089;&#1090;&#1086;&#1074;&#1086; &#1087;&#1088;&#1086;&#1089;&#1090;&#1088;&#1072;&#1085;&#1089;&#1090;&#1074;&#1086;';
+$TEXT['SELECT_BOX'] = '&#1050;&#1091;&#1090;&#1080;&#1103; &#1080;&#1079;&#1073;&#1086;&#1088;';
+$TEXT['CHECKBOX_GROUP'] = 'Checkbox &#1075;&#1088;&#1091;&#1087;&#1072;';
+$TEXT['RADIO_BUTTON_GROUP'] = 'Radio Button &#1075;&#1088;&#1091;&#1087;&#1072;';
+$TEXT['SIZE'] = '&#1043;&#1086;&#1083;&#1077;&#1084;&#1080;&#1085;&#1072;';
+$TEXT['DEFAULT_TEXT'] = '&#1058;&#1077;&#1082;&#1089;&#1090; &#1087;&#1086; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1073;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$TEXT['SEPERATOR'] = 'Separator';
+$TEXT['BACK'] = '&#1053;&#1072;&#1079;&#1072;&#1076;';
+$TEXT['UNDER_CONSTRUCTION'] = '&#1042; &#1087;&#1088;&#1086;&#1094;&#1077;&#1089; &#1085;&#1072; &#1089;&#1098;&#1079;&#1076;&#1072;&#1074;&#1072;&#1085;&#1077;';
+$TEXT['MULTISELECT'] = 'Multi-select';
+$TEXT['SHORT_TEXT'] = '&#1050;&#1088;&#1072;&#1090;&#1098;&#1082; &#1090;&#1077;&#1082;&#1089;&#1090;';
+$TEXT['LONG_TEXT'] = '&#1044;&#1098;&#1083;&#1098;&#1075; &#1090;&#1077;&#1082;&#1089;&#1090;';
+$TEXT['HOMEPAGE_REDIRECTION'] = 'Homepage Redirection';
+$TEXT['HEADING'] = 'Heading';
+$TEXT['MULTIPLE_MENUS'] = '&#1052;&#1085;&#1086;&#1078;&#1077;&#1089;&#1090;&#1074;&#1086; &#1084;&#1077;&#1085;&#1102;&#1090;&#1072;';
+$TEXT['REGISTERED'] = '&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1072;&#1085;';
+$TEXT['SECTION_BLOCKS'] = 'Section Blocks';
+$TEXT['REGISTERED_VIEWERS'] = '&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1072;&#1085;&#1080; &#1079;&#1088;&#1080;&#1090;&#1077;&#1083;&#1080;';
+$TEXT['ALLOWED_VIEWERS'] = '&#1055;&#1086;&#1079;&#1074;&#1086;&#1083;&#1077;&#1085;&#1080; &#1079;&#1088;&#1080;&#1090;&#1077;&#1083;&#1080;';
+$TEXT['SUBMISSION_ID'] = '&#1055;&#1086;&#1076;&#1072;&#1076;&#1077;&#1085; ID';
+$TEXT['SUBMISSIONS'] = '&#1055;&#1086;&#1076;&#1072;&#1076;&#1077;&#1085;&#1080;';
+$TEXT['SUBMITTED'] = '&#1055;&#1086;&#1076;&#1072;&#1076;&#1077;&#1085;';
+$TEXT['MAX_SUBMISSIONS_PER_HOUR'] = '&#1052;&#1072;&#1082;&#1089;. &#1055;&#1086;&#1076;&#1072;&#1074;&#1072;&#1085;&#1080;&#1103; &#1079;&#1072; &#1095;&#1072;&#1089;';
+$TEXT['SUBMISSIONS_STORED_IN_DATABASE'] = '&#1055;&#1086;&#1076;&#1072;&#1074;&#1072;&#1085;&#1080;&#1103;&#1090;&#1072; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1080; &#1074; &#1073;&#1072;&#1079;&#1072;&#1090;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$TEXT['EMAIL_ADDRESS'] = 'Email &#1072;&#1076;&#1088;&#1077;&#1089;';
+$TEXT['CUSTOM'] = '&#1055;&#1086; &#1084;&#1103;&#1088;&#1082;&#1072;';
+$TEXT['ANONYMOUS'] = '&#1040;&#1085;&#1086;&#1085;&#1080;&#1084;&#1077;&#1085;';
+$TEXT['SERVER_OPERATING_SYSTEM'] = '&#1054;&#1087;&#1077;&#1088;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1072; &#1089;&#1080;&#1090;&#1077;&#1084;&#1072; &#1085;&#1072; &#1089;&#1098;&#1088;&#1074;&#1098;&#1088;&#1072;';
+$TEXT['WORLD_WRITEABLE_FILE_PERMISSIONS'] = 'World-writeable file permissions';
+$TEXT['LINUX_UNIX_BASED'] = '&#1051;&#1080;&#1085;&#1091;&#1082;&#1089;/&#1070;&#1085;&#1080;&#1082;&#1089; &#1073;&#1072;&#1079;&#1080;&#1088;&#1072;&#1085;&#1072;';
+$TEXT['WINDOWS'] = '&#1059;&#1080;&#1085;&#1076;&#1086;&#1091;&#1089;';
+$TEXT['HOME_FOLDER'] = 'Home Folder';
+$TEXT['HOME_FOLDERS'] = 'Home Folders';
+$TEXT['PAGE_TRASH'] = 'Page Trash';
+$TEXT['INLINE'] = 'In-line';
+$TEXT['SEPARATE'] = 'Separate';
+$TEXT['DELETED'] = '&#1048;&#1079;&#1090;&#1088;&#1080;&#1090;&#1072;';
+$TEXT['VIEW_DELETED_PAGES'] = '&#1042;&#1080;&#1079; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;&#1080;&#1090;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;';
+$TEXT['EMPTY_TRASH'] = '&#1048;&#1079;&#1087;&#1088;&#1072;&#1079;&#1085;&#1080; &#1082;&#1086;&#1096;&#1095;&#1077;&#1090;&#1086;';
+$TEXT['TRASH_EMPTIED'] = '&#1050;&#1086;&#1096;&#1095;&#1077;&#1090;&#1086; &#1080;&#1079;&#1087;&#1088;&#1072;&#1079;&#1085;&#1077;&#1085;&#1086;';
+$TEXT['ADD_SECTION'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080; &#1089;&#1077;&#1082;&#1094;&#1080;&#1103;';
+$TEXT['POST_HEADER'] = 'Post Header';
+$TEXT['POST_FOOTER'] = 'Post Footer';
+$TEXT['POSTS_PER_PAGE'] = 'Posts Per Page';
+$TEXT['RESIZE_IMAGE_TO'] = 'Resize Image To';
+$TEXT['UNLIMITED'] = '&#1041;&#1077;&#1079; &#1083;&#1080;&#1084;&#1080;&#1090;';
+$TEXT['OF'] = '&#1054;&#1090;';
+$TEXT['OUT_OF'] = '&#1086;&#1090;';
+$TEXT['NEXT'] = '&#1057;&#1083;&#1077;&#1076;&#1074;&#1072;&#1097;';
+$TEXT['PREVIOUS'] = '&#1055;&#1088;&#1077;&#1076;&#1080;&#1096;&#1077;&#1085;';
+$TEXT['NEXT_PAGE'] = '&#1057;&#1083;&#1076;&#1074;&#1072;&#1097;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['PREVIOUS_PAGE'] = '&#1055;&#1088;&#1077;&#1076;&#1080;&#1096;&#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$TEXT['ON'] = 'On';
+$TEXT['LAST_UPDATED_BY'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1077;&#1085; &#1086;&#1090;';
+$TEXT['RESULTS_FOR'] = '&#1056;&#1077;&#1079;&#1091;&#1083;&#1090;&#1072;&#1090;&#1080; &#1079;&#1072;';
+$TEXT['TIME'] = '&#1063;&#1072;&#1089;';
+$TEXT['WYSIWYG_STYLE'] = '&#1057;&#1090;&#1080;&#1083; WYSIWYG';
+$TEXT['WYSIWYG_EDITOR'] = 'WYSIWYG &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1086;&#1088;';
+$TEXT['SERVER_EMAIL'] = 'Email &#1085;&#1072; &#1089;&#1098;&#1088;&#1074;&#1098;&#1088;&#1072;';
+$TEXT['MENU'] = '&#1052;&#1077;&#1085;&#1102;';
+$TEXT['MANAGE_GROUPS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1075;&#1088;&#1091;&#1087;&#1080;';
+$TEXT['MANAGE_USERS'] = '&#1059;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1080;';
+$TEXT['PAGE_LANGUAGES'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1077;&#1079;&#1080;&#1094;&#1080;';
+$TEXT['HIDDEN'] = '&#1057;&#1082;&#1088;&#1080;&#1090;';
+$TEXT['MAIN'] = '&#1054;&#1089;&#1085;&#1086;&#1074;&#1077;&#1085;';
+$TEXT['RENAME_FILES_ON_UPLOAD'] = '&#1055;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1091;&#1074;&#1072;&#1081; &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;&#1090;&#1077; &#1087;&#1088;&#1080; &#1082;&#1072;&#1095;&#1074;&#1072;&#1085;&#1077;';
+$TEXT['APP_NAME'] = '&#1048;&#1084;&#1077; &#1085;&#1072; &#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077;&#1090;&#1086;';
+$TEXT['SESSION_IDENTIFIER'] = '&#1048;&#1076;&#1077;&#1085;&#1090;&#1080;&#1092;&#1080;&#1082;&#1072;&#1090;&#1086;&#1088; &#1089;&#1077;&#1089;&#1080;&#1103;';
+$TEXT['BACKUP'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086; &#1082;&#1086;&#1087;&#1080;&#1077;';
+$TEXT['RESTORE'] = '&#1042;&#1098;&#1079;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;';
+$TEXT['BACKUP_DATABASE'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086; &#1082;&#1086;&#1087;&#1080;&#1077; &#1085;&#1072; &#1073;&#1072;&#1079;&#1072;&#1090;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$TEXT['RESTORE_DATABASE'] = '&#1042;&#1098;&#1079;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080; &#1073;&#1072;&#1079;&#1072;&#1090;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$TEXT['BACKUP_ALL_TABLES'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086; &#1082;&#1086;&#1087;&#1080;&#1077; &#1085;&#1072; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1080;&#1090;&#1077; &#1074; &#1073;&#1072;&#1079;&#1072;&#1090;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$TEXT['BACKUP_WB_SPECIFIC'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086; &#1082;&#1086;&#1087;&#1080;&#1077; &#1089;&#1072;&#1084;&#1086; &#1085;&#1072; WB-&#1089;&#1087;&#1077;&#1094;&#1080;&#1092;&#1080;&#1095;&#1085;&#1080; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1080;';
+$TEXT['BACKUP_MEDIA'] = '&#1056;&#1077;&#1079;&#1077;&#1088;&#1074;&#1085;&#1086; &#1082;&#1086;&#1087;&#1080;&#1077; - &#1084;&#1077;&#1076;&#1080;&#1103;';
+$TEXT['RESTORE_MEDIA'] = '&#1042;&#1098;&#1079;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080; &#1084;&#1077;&#1076;&#1080;&#1103;';
+$TEXT['ADMINISTRATION_TOOL'] = '&#1048;&#1085;&#1089;&#1090;&#1088;&#1091;&#1084;&#1077;&#1085;&#1090; &#1079;&#1072; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$TEXT['CAPTCHA_VERIFICATION'] = 'Captcha &#1087;&#1088;&#1086;&#1074;&#1077;&#1088;&#1082;&#1072;';
+$TEXT['VERIFICATION'] = '&#1055;&#1088;&#1086;&#1074;&#1077;&#1088;&#1082;&#1072;';
+$TEXT['DEFAULT_CHARSET'] = '&#1050;&#1086;&#1076;&#1086;&#1074;&#1072; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072; &#1087;&#1086; &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1073;&#1080;&#1088;&#1072;&#1085;&#1077;';
+$TEXT['CHARSET'] = '&#1050;&#1086;&#1076;&#1086;&#1074;&#1072; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072;';
+$TEXT['MODULE_ORDER'] = 'Module-order for searching';
+$TEXT['MAX_EXCERPT'] = 'Max lines of excerpt';
+$TEXT['TIME_LIMIT'] = 'Max time to gather excerpts per module';
+$TEXT['PUBL_START_DATE'] = 'Start date';
+$TEXT['PUBL_END_DATE'] = 'End date';
+$TEXT['CALENDAR'] = 'Calender';
+$TEXT['DELETE_DATE'] = 'Delete date';
+$TEXT['WBMAILER_DEFAULT_SETTINGS_NOTICE'] = 'Please specify a default "FROM" address and "SENDER" name below. It is recommended to use a FROM address like: <strong>admin@yourdomain.com</strong>. Some mail provider (e.g. <em>mail.com</em>) may reject mails with a FROM: address like <em>name@mail.com</em> sent via a foreign relay to avoid spam.<br /><br />The default values are only used if no other values are specified by Website Baker. If your server supports <acronym title="Simple mail transfer protocol">SMTP</acronym>, you may want use this option for outgoing mails.';
+$TEXT['WBMAILER_DEFAULT_SENDER_MAIL'] = 'Default From Mail';
+$TEXT['WBMAILER_DEFAULT_SENDER_NAME'] = 'Default Sender Name';
+$TEXT['WBMAILER_NOTICE'] = '<strong>SMTP Mailer Settings:</strong><br />The settings below are only required if you want to send mails via <acronym title="Simple mail transfer protocol">SMTP</acronym>. If you do not know your SMTP host or you are not sure about the required settings, simply stay with the default mail routine: PHP MAIL.';
+$TEXT['WBMAILER_FUNCTION'] = 'Mail Routine';
+$TEXT['WBMAILER_SMTP_HOST'] = 'SMTP Host';
+$TEXT['WBMAILER_PHP'] = 'PHP MAIL';
+$TEXT['WBMAILER_SMTP'] = 'SMTP';
+$TEXT['WBMAILER_SMTP_AUTH'] = 'SMTP Authentification';
+$TEXT['WBMAILER_SMTP_AUTH_NOTICE'] = 'only activate if your SMTP host requires authentification';
+$TEXT['WBMAILER_SMTP_USERNAME'] = 'SMTP Username';
+$TEXT['WBMAILER_SMTP_PASSWORD'] = 'SMTP Password';
+$TEXT['PLEASE_LOGIN'] = 'Please login';
+$TEXT['CAP_EDIT_CSS'] = 'Edit CSS';
+$TEXT['HEADING_CSS_FILE'] = 'Actual module file: ';
+$TEXT['TXT_EDIT_CSS_FILE'] = 'Edit the CSS definitions in the textarea below.';
+
+// Success/error messages
+$MESSAGE['FRONTEND']['SORRY_NO_VIEWING_PERMISSIONS'] = '&#1057;&#1098;&#1078;&#1072;&#1083;&#1103;&#1074;&#1072;&#1084;&#1077; ,&#1085;&#1086; &#1085;&#1103;&#1084;&#1072;&#1090;&#1077; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1080;&#1077; &#1076;&#1072; &#1074;&#1080;&#1076;&#1080;&#1090;&#1077; &#1090;&#1072;&#1079;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$MESSAGE['FRONTEND']['SORRY_NO_ACTIVE_SECTIONS'] = 'Sorry, no active content to display';
+
+$MESSAGE['ADMIN']['INSUFFICIENT_PRIVELLIGES'] = '&#1053;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1098;&#1095;&#1085;&#1080; &#1087;&#1088;&#1080;&#1074;&#1080;&#1083;&#1077;&#1075;&#1080;&#1080; &#1079;&#1072; &#1076;&#1072; &#1089;&#1090;&#1077; &#1090;&#1091;&#1082;';
+
+$MESSAGE['LOGIN']['BOTH_BLANK'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086;&#1090;&#1086; &#1074;&#1080; &#1080;&#1084;&#1077; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$MESSAGE['LOGIN']['USERNAME_BLANK'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1080;&#1084;&#1077;';
+$MESSAGE['LOGIN']['PASSWORD_BLANK'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+$MESSAGE['LOGIN']['USERNAME_TOO_SHORT'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1086;&#1090;&#1086; &#1080;&#1084;&#1077; &#1077; &#1084;&#1085;&#1086;&#1075;&#1086; &#1082;&#1098;&#1089;&#1086;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_SHORT'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1072;&#1090;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1077; &#1084;&#1085;&#1086;&#1075;&#1086; &#1082;&#1098;&#1089;&#1072;';
+$MESSAGE['LOGIN']['USERNAME_TOO_LONG'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1086;&#1090;&#1086; &#1080;&#1084;&#1077; &#1077; &#1084;&#1085;&#1086;&#1075;&#1086; &#1076;&#1098;&#1083;&#1075;&#1086;';
+$MESSAGE['LOGIN']['PASSWORD_TOO_LONG'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1072;&#1090;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1077; &#1084;&#1085;&#1086;&#1075;&#1086; &#1076;&#1098;&#1083;&#1075;&#1072;';
+$MESSAGE['LOGIN']['AUTHENTICATION_FAILED'] = '&#1053;&#1077;&#1082;&#1086;&#1088;&#1077;&#1082;&#1090;&#1072;&#1085; &#1082;&#1086;&#1084;&#1073;&#1080;&#1085;&#1072;&#1094;&#1080;&#1103; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1080;&#1084;&#1077; / &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;';
+
+$MESSAGE['SIGNUP']['NO_EMAIL'] = '&#1058;&#1088;&#1103;&#1073;&#1074;&#1072; &#1076;&#1072; &#1074;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; e-mail &#1072;&#1076;&#1088;&#1077;&#1089;';
+
+$MESSAGE['FORGOT_PASS']['NO_DATA'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; email &#1072;&#1076;&#1088;&#1077;&#1089;';
+$MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1080;&#1103; email &#1085;&#1077; &#1077; &#1074; &#1073;&#1072;&#1079;&#1072;&#1090;&#1072; &#1076;&#1072;&#1085;&#1085;&#1080;';
+$MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'] = '&#1055;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084; &#1089; &#1080;&#1079;&#1087;&#1088;&#1072;&#1097;&#1072;&#1085;&#1077;&#1090;&#1086; &#1085;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;&#1090;&#1072; &#1087;&#1086; email - &#1082;&#1086;&#1085;&#1090;&#1072;&#1082;&#1090;&#1091;&#1074;&#1072;&#1081;&#1090;&#1077; &#1089;&#1098;&#1089; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1085;&#1080;&#1103; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;';
+$MESSAGE['FORGOT_PASS']['PASSWORD_RESET'] = '&#1042;&#1072;&#1096;&#1077;&#1090;&#1086; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1080;&#1084;&#1077; &#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1089;&#1072; &#1080;&#1079;&#1087;&#1088;&#1072;&#1090;&#1077;&#1085;&#1080; &#1085;&#1072; email &#1072;&#1076;&#1088;&#1077;&#1089;&#1072;';
+$MESSAGE['FORGOT_PASS']['ALREADY_RESET'] = '&#1057;&#1098;&#1078;&#1072;&#1083;&#1103;&#1074;&#1072;&#1084;&#1077;, &#1087;&#1072;&#1088;&#1086;&#1083;&#1072;&#1090;&#1072; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1085;&#1091;&#1083;&#1080;&#1088;&#1072; &#1087;&#1086;-&#1095;&#1077;&#1089;&#1090;&#1086; &#1086;&#1090; &#1077;&#1076;&#1080;&#1085; &#1087;&#1098;&#1090; &#1085;&#1072; &#1095;&#1072;&#1089;';
+
+$MESSAGE['START']['WELCOME_MESSAGE'] = '&#1044;&#1086;&#1073;&#1088;&#1077; &#1076;&#1086;&#1096;&#1083;&#1080; &#1074; &#1040;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1072;&#1090;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1085;&#1072; Website Baker';
+$MESSAGE['START']['INSTALL_DIR_EXISTS'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;, &#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1072;&#1090;&#1072; &#1076;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103; &#1074;&#1089;&#1077; &#1086;&#1097;&#1077; &#1089;&#1098;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1074;&#1072;!';
+$MESSAGE['START']['CURRENT_USER'] = '&#1042;&#1080;&#1077; &#1074;&#1083;&#1103;&#1079;&#1086;&#1093;&#1090;&#1077; &#1082;&#1072;&#1090;&#1086;:';
+
+$MESSAGE['SETTINGS']['UNABLE_OPEN_CONFIG'] = '&#1050;&#1086;&#1085;&#1092;&#1080;&#1075;&#1091;&#1088;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1086;&#1090;&#1074;&#1086;&#1088;&#1077;&#1085;';
+$MESSAGE['SETTINGS']['UNABLE_WRITE_CONFIG'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1074;&#1072; &#1074; &#1082;&#1086;&#1085;&#1092;&#1080;&#1075;&#1091;&#1088;&#1072;&#1094;&#1080;&#1086;&#1085;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['SETTINGS']['SAVED'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077; &#1089;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1080;';
+$MESSAGE['SETTINGS']['MODE_SWITCH_WARNING'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;: &#1040;&#1082;&#1086; &#1085;&#1072;&#1090;&#1080;&#1089;&#1085;&#1077;&#1090;&#1077; &#1090;&#1086;&#1079;&#1080; &#1073;&#1091;&#1090;&#1086;&#1085; &#1075;&#1091;&#1073;&#1080;&#1090;&#1077; &#1074;&#1089;&#1080;&#1095;&#1082;&#1080; &#1085;&#1077;&#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080; &#1087;&#1088;&#1086;&#1084;&#1077;&#1085;&#1080;';
+$MESSAGE['SETTINGS']['WORLD_WRITEABLE_WARNING'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;: &#1090;&#1086;&#1074;&#1072; &#1089;&#1077; &#1087;&#1088;&#1077;&#1087;&#1086;&#1088;&#1098;&#1095;&#1074;&#1072; &#1089;&#1072;&#1084;&#1086; &#1074; &#1090;&#1077;&#1089;&#1090;&#1086;&#1074;&#1086; &#1086;&#1073;&#1082;&#1088;&#1098;&#1078;&#1077;&#1085;&#1080;&#1077;';
+
+$MESSAGE['USERS']['ADDED'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1103; &#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['USERS']['SAVED'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1103; &#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['USERS']['DELETED'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1103; &#1077; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['USERS']['NO_GROUP'] = '&#1053;&#1077; &#1073;&#1077;&#1096;&#1077; &#1080;&#1079;&#1073;&#1088;&#1072;&#1085;&#1072; &#1075;&#1088;&#1091;&#1087;&#1072;';
+$MESSAGE['USERS']['USERNAME_TOO_SHORT'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1086;&#1090;&#1086; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086; &#1080;&#1084;&#1077; &#1077; &#1090;&#1074;&#1098;&#1088;&#1076;&#1077; &#1082;&#1098;&#1089;&#1086;';
+$MESSAGE['USERS']['PASSWORD_TOO_SHORT'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1072;&#1090;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1077; &#1090;&#1074;&#1098;&#1088;&#1076;&#1077; &#1082;&#1098;&#1089;&#1072;';
+$MESSAGE['USERS']['PASSWORD_MISMATCH'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1080;&#1090;&#1077; &#1087;&#1072;&#1088;&#1086;&#1083;&#1080; &#1085;&#1077; &#1089;&#1098;&#1074;&#1087;&#1072;&#1076;&#1072;&#1090;';
+$MESSAGE['USERS']['INVALID_EMAIL'] = '&#1053;&#1077;&#1074;&#1072;&#1083;&#1080;&#1076;&#1077;&#1085; email &#1072;&#1076;&#1088;&#1077;&#1089;';
+$MESSAGE['USERS']['EMAIL_TAKEN'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1080;&#1103; email &#1074;&#1077;&#1095;&#1077; &#1089;&#1077; &#1080;&#1079;&#1087;&#1086;&#1083;&#1079;&#1074;&#1072;';
+$MESSAGE['USERS']['USERNAME_TAKEN'] = '&#1055;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1089;&#1082;&#1086;&#1090;&#1086; &#1080;&#1084;&#1077;,&#1082;&#1086;&#1077;&#1090;&#1086; &#1074;&#1098;&#1074;&#1077;&#1076;&#1086;&#1093;&#1090;&#1077; &#1074;&#1077;&#1095;&#1077; &#1089;&#1077; &#1080;&#1079;&#1087;&#1086;&#1083;&#1079;&#1074;&#1072; &#1086;&#1090; &#1076;&#1088;&#1091;&#1075;';
+$MESSAGE['USERS']['CHANGING_PASSWORD'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;: &#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1076;&#1072;&#1085;&#1085;&#1080; &#1074; &#1087;&#1086;&#1083;&#1077;&#1090;&#1072;&#1090;&#1072; &#1072;&#1082;&#1086; &#1080;&#1089;&#1082;&#1072;&#1090;&#1077; &#1076;&#1072; &#1089;&#1084;&#1077;&#1085;&#1080;&#1090;&#1077; &#1087;&#1072;&#1088;&#1086;&#1083;&#1080;&#1090;&#1077; &#1085;&#1072; &#1090;&#1077;&#1079;&#1080; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1080;';
+$MESSAGE['USERS']['CONFIRM_DELETE'] = '&#1048;&#1089;&#1082;&#1072;&#1090;&#1077; &#1083;&#1080; &#1076;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1077;&#1090;&#1077; &#1080;&#1079;&#1073;&#1088;&#1072;&#1085;&#1080;&#1103; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;?';
+
+$MESSAGE['GROUPS']['ADDED'] = '&#1043;&#1088;&#1091;&#1087;&#1072;&#1090;&#1072; &#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GROUPS']['SAVED'] = '&#1043;&#1088;&#1091;&#1087;&#1072;&#1090;&#1072; &#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1072;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GROUPS']['DELETED'] = '&#1043;&#1088;&#1091;&#1087;&#1072;&#1090;&#1072; &#1073;&#1077; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GROUPS']['GROUP_NAME_BLANK'] = '&#1053;&#1103;&#1084;&#1072; &#1080;&#1084;&#1077; &#1085;&#1072; &#1075;&#1088;&#1091;&#1087;&#1072;&#1090;&#1072;';
+$MESSAGE['GROUPS']['CONFIRM_DELETE'] = '&#1048;&#1089;&#1082;&#1072;&#1090;&#1077; &#1083;&#1080; &#1076;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1077;&#1090;&#1077; &#1080;&#1079;&#1073;&#1088;&#1072;&#1085;&#1072;&#1090;&#1072; &#1075;&#1088;&#1091;&#1087;&#1072; (&#1080; &#1074;&#1089;&#1080;&#1095;&#1082;&#1080; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1080; &#1074; &#1085;&#1077;&#1103;)?';
+$MESSAGE['GROUPS']['NO_GROUPS_FOUND'] = '&#1053;&#1103;&#1084;&#1072; &#1075;&#1088;&#1091;&#1087;&#1080;';
+$MESSAGE['GROUPS']['GROUP_NAME_EXISTS'] = '&#1043;&#1088;&#1091;&#1087;&#1072; &#1089; &#1090;&#1086;&#1074;&#1072; &#1080;&#1084;&#1077; &#1074;&#1077;&#1095;&#1077; &#1089;&#1098;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1074;&#1072;';
+
+$MESSAGE['PREFERENCES']['DETAILS_SAVED'] = '&#1044;&#1077;&#1090;&#1072;&#1081;&#1083;&#1080;&#1090;&#1077; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PREFERENCES']['EMAIL_UPDATED'] = 'Email-&#1072; &#1086;&#1073;&#1085;&#1086;&#1074;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1085;&#1072;&#1090;&#1072; &#1090;&#1077;&#1082;&#1091;&#1097;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1072; &#1085;&#1077; &#1077; &#1082;&#1086;&#1088;&#1077;&#1082;&#1090;&#1085;&#1072;';
+$MESSAGE['PREFERENCES']['PASSWORD_CHANGED'] = '&#1055;&#1072;&#1088;&#1086;&#1083;&#1072;&#1090;&#1072; &#1089;&#1084;&#1077;&#1085;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+
+$MESSAGE['TEMPLATES']['CHANGE_TEMPLATE_NOTICE'] = '&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;: &#1079;&#1072; &#1076;&#1072; &#1089;&#1084;&#1077;&#1085;&#1080;&#1090;&#1077; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072; &#1086;&#1090;&#1080;&#1076;&#1077;&#1090;&#1077; &#1074; &#1085;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;';
+
+$MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1077; ../ &#1074; &#1080;&#1084;&#1077; &#1085;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$MESSAGE['MEDIA']['DIR_DOES_NOT_EXIST'] = '&#1055;&#1072;&#1087;&#1082;&#1072;&#1090;&#1072; &#1085;&#1077; &#1089;&#1098;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1074;&#1072;';
+$MESSAGE['MEDIA']['TARGET_DOT_DOT_SLASH'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1077; ../ &#1082;&#1072;&#1090;&#1086; &#1094;&#1077;&#1083; &#1085;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$MESSAGE['MEDIA']['NAME_DOT_DOT_SLASH'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1074;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1077; ../ &#1074; &#1080;&#1084;&#1077;&#1090;&#1086;';
+$MESSAGE['MEDIA']['NAME_INDEX_PHP'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1080;&#1079;&#1087;&#1086;&#1083;&#1079;&#1074;&#1072;&#1090;&#1077; index.php &#1082;&#1072;&#1090;&#1086; &#1080;&#1084;&#1077;';
+$MESSAGE['MEDIA']['NONE_FOUND'] = '&#1053;&#1103;&#1084;&#1072; &#1084;&#1077;&#1076;&#1080;&#1103; &#1074; &#1090;&#1077;&#1082;&#1091;&#1097;&#1072;&#1090;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072;';
+$MESSAGE['MEDIA']['FILE_NOT_FOUND'] = '&#1053;&#1103;&#1084;&#1072; &#1090;&#1072;&#1082;&#1098;&#1074; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['MEDIA']['DELETED_FILE'] = '&#1060;&#1072;&#1081;&#1083;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['MEDIA']['DELETED_DIR'] = '&#1055;&#1072;&#1087;&#1082;&#1072;&#1090;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;&#1072; &#1091;&#1089;&#1087;&#1103;&#1096;&#1085;&#1086;';
+$MESSAGE['MEDIA']['CONFIRM_DELETE'] = '&#1057;&#1098;&#1075;&#1091;&#1088;&#1085;&#1080; &#1083;&#1080; &#1089;&#1090;&#1077; &#1095;&#1077; &#1080;&#1089;&#1082;&#1072;&#1090;&#1077; &#1076;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1077;&#1090;&#1077;?';
+$MESSAGE['MEDIA']['CANNOT_DELETE_FILE'] = '&#1048;&#1079;&#1073;&#1088;&#1072;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;';
+$MESSAGE['MEDIA']['CANNOT_DELETE_DIR'] = '&#1048;&#1079;&#1073;&#1088;&#1072;&#1085;&#1072;&#1090;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;&#1072;';
+$MESSAGE['MEDIA']['BLANK_NAME'] = '&#1053;&#1077; &#1074;&#1098;&#1074;&#1077;&#1076;&#1086;&#1093;&#1090;&#1077; &#1085;&#1086;&#1074;&#1086; &#1080;&#1084;&#1077;';
+$MESSAGE['MEDIA']['BLANK_EXTENSION'] = '&#1053;&#1077; &#1074;&#1098;&#1074;&#1077;&#1076;&#1086;&#1093;&#1090;&#1077; &#1088;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1080;&#1077;';
+$MESSAGE['MEDIA']['RENAMED'] = '&#1055;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1091;&#1074;&#1072;&#1085;&#1077;&#1090;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['MEDIA']['CANNOT_RENAME'] = '&#1055;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1091;&#1074;&#1072;&#1085;&#1077;&#1090;&#1086; &#1085;&#1077;&#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['MEDIA']['FILE_EXISTS'] = '&#1042;&#1077;&#1095;&#1077; &#1080;&#1084;&#1072; &#1092;&#1072;&#1081;&#1083; &#1089; &#1090;&#1072;&#1082;&#1086;&#1074;&#1072; &#1080;&#1084;&#1077;';
+$MESSAGE['MEDIA']['DIR_EXISTS'] = '&#1042;&#1077;&#1095;&#1077; &#1080;&#1084;&#1072; &#1087;&#1072;&#1087;&#1082;&#1072; &#1089; &#1090;&#1072;&#1082;&#1086;&#1074;&#1072; &#1080;&#1084;&#1077;';
+$MESSAGE['MEDIA']['DIR_MADE'] = '&#1055;&#1072;&#1087;&#1082;&#1072;&#1090;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1089;&#1098;&#1079;&#1076;&#1072;&#1076;&#1077;&#1085;&#1072;';
+$MESSAGE['MEDIA']['DIR_NOT_MADE'] = '&#1055;&#1072;&#1087;&#1082;&#1072;&#1090;&#1077; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1089;&#1098;&#1079;&#1076;&#1072;&#1076;&#1077;&#1085;&#1072;';
+$MESSAGE['MEDIA']['SINGLE_UPLOADED'] = ' &#1092;&#1072;&#1081;&#1083;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1082;&#1072;&#1095;&#1077;&#1085;';
+$MESSAGE['MEDIA']['UPLOADED'] = ' &#1092;&#1072;&#1081;&#1083;&#1086;&#1074;&#1077;&#1090;&#1077; &#1073;&#1103;&#1093;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1082;&#1072;&#1095;&#1077;&#1085;&#1080;';
+
+$MESSAGE['PAGES']['ADDED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['ADDED_HEADING'] = 'Page heading &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1077;&#1085;';
+$MESSAGE['PAGES']['PAGE_EXISTS'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1089; &#1090;&#1072;&#1082;&#1086;&#1074;&#1072; &#1080;&#1084;&#1077; &#1074;&#1077;&#1095;&#1077; &#1089;&#1098;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1074;&#1072;';
+$MESSAGE['PAGES']['CANNOT_CREATE_ACCESS_FILE'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072; &#1087;&#1088;&#1080; &#1089;&#1098;&#1079;&#1076;&#1072;&#1074;&#1072;&#1085;&#1077; &#1085;&#1072; access &#1092;&#1072;&#1081;&#1083; &#1077; &#1087;&#1072;&#1087;&#1082;&#1072; /pages (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1098;&#1095;&#1085;&#1080; &#1087;&#1088;&#1080;&#1074;&#1080;&#1083;&#1077;&#1075;&#1080;&#1080;)';
+$MESSAGE['PAGES']['CANNOT_DELETE_ACCESS_FILE'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072; &#1087;&#1088;&#1080; &#1080;&#1079;&#1090;&#1088;&#1080;&#1074;&#1072;&#1085;&#1077; &#1085;&#1072; access &#1092;&#1072;&#1081;&#1083; &#1077; &#1087;&#1072;&#1087;&#1082;&#1072; /pages (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1098;&#1095;&#1085;&#1080; &#1087;&#1088;&#1080;&#1074;&#1080;&#1083;&#1077;&#1075;&#1080;&#1080;)';
+$MESSAGE['PAGES']['NOT_FOUND'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1085;&#1077; &#1077; &#1085;&#1072;&#1084;&#1077;&#1088;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['SAVED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1072;';
+$MESSAGE['PAGES']['SAVED_SETTINGS'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['NOT_SAVED'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072; &#1087;&#1088;&#1080; &#1079;&#1072;&#1087;&#1072;&#1079;&#1074;&#1072;&#1085;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072;';
+$MESSAGE['PAGES']['DELETE_CONFIRM'] = '&#1057;&#1080;&#1075;&#1091;&#1088;&#1085;&#1080; &#1083;&#1080; &#1089;&#1090;&#1077; &#1095;&#1077; &#1080;&#1089;&#1082;&#1072;&#1090;&#1077; &#1076;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1077;&#1090;&#1077; &#1080;&#1079;&#1073;&#1088;&#1072;&#1085;&#1072;&#1090;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; (&#1080; &#1074;&#1089;&#1080;&#1095;&#1082;&#1080; &#1087;&#1086;&#1076;&#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;)';
+$MESSAGE['PAGES']['DELETED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1080;&#1079;&#1090;&#1088;&#1080;&#1090;&#1072; &#1091;&#1089;&#1087;&#1103;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['RESTORED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1074;&#1098;&#1079;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['BLANK_PAGE_TITLE'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1080;&#1084;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072;';
+$MESSAGE['PAGES']['BLANK_MENU_TITLE'] = '&#1042;&#1098;&#1074;&#1077;&#1076;&#1077;&#1090;&#1077; &#1080;&#1084;&#1077; &#1085;&#1072; &#1084;&#1077;&#1085;&#1102;&#1090;&#1086;';
+$MESSAGE['PAGES']['REORDERED'] = '&#1057;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072; &#1077; &#1087;&#1088;&#1077;&#1087;&#1086;&#1076;&#1088;&#1077;&#1076;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['CANNOT_REORDER'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072; &#1087;&#1088;&#1080; &#1087;&#1088;&#1077;&#1087;&#1086;&#1076;&#1088;&#1077;&#1078;&#1076;&#1072;&#1085;&#1077;&#1090;&#1086; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&#1090;&#1072;';
+$MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS'] = '&#1053;&#1103;&#1084;&#1072;&#1090;&#1077; &#1087;&#1088;&#1080;&#1074;&#1080;&#1083;&#1077;&#1075;&#1080;&#1080; &#1079;&#1072; &#1084;&#1086;&#1076;&#1080;&#1092;&#1080;&#1094;&#1080;&#1088;&#1072;&#1085;&#1077; &#1085;&#1072; &#1090;&#1072;&#1079;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$MESSAGE['PAGES']['INTRO_NOT_WRITABLE'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1074;&#1072; &#1074; &#1092;&#1072;&#1081;&#1083;&#1072; /pages/intro.php (&#1085;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1098;&#1095;&#1085;&#1080; &#1087;&#1088;&#1080;&#1074;&#1080;&#1083;&#1077;&#1075;&#1080;&#1080;)';
+$MESSAGE['PAGES']['INTRO_SAVED'] = '&#1042;&#1098;&#1074;&#1077;&#1078;&#1076;&#1072;&#1097;&#1072;&#1090;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['LAST_MODIFIED'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1086; &#1084;&#1086;&#1076;&#1080;&#1092;&#1080;&#1094;&#1080;&#1088;&#1072;&#1085;&#1072; &#1086;&#1090;';
+$MESSAGE['PAGES']['INTRO_LINK'] = '&#1053;&#1072;&#1090;&#1080;&#1089;&#1085;&#1077;&#1090;&#1077; &#1090;&#1091;&#1082; &#1079;&#1072; &#1076;&#1072; &#1084;&#1086;&#1076;&#1080;&#1092;&#1080;&#1094;&#1080;&#1088;&#1072;&#1090;&#1077; &#1042;&#1098;&#1074;&#1077;&#1078;&#1076;&#1072;&#1097;&#1072;&#1090;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;';
+$MESSAGE['PAGES']['SECTIONS_PROPERTIES_SAVED'] = '&#1053;&#1072;&#1089;&#1090;&#1088;&#1086;&#1081;&#1082;&#1080;&#1090;&#1077; &#1085;&#1072; &#1089;&#1077;&#1082;&#1094;&#1080;&#1103;&#1090;&#1072; &#1079;&#1072;&#1087;&#1072;&#1079;&#1077;&#1085;&#1080; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['PAGES']['RETURN_TO_PAGES'] = '&#1042;&#1098;&#1088;&#1085;&#1080; &#1089;&#1077; &#1082;&#1098;&#1084; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1080;';
+
+$MESSAGE['GENERIC']['FILL_IN_ALL'] = '&#1042;&#1098;&#1088;&#1085;&#1077;&#1090;&#1077; &#1089;&#1077; &#1080; &#1087;&#1086;&#1095;&#1080;&#1083;&#1085;&#1077;&#1090;&#1077; &#1074;&#1089;&#1080;&#1095;&#1082;&#1080; &#1087;&#1086;&#1083;&#1077;&#1090;&#1072;';
+$MESSAGE['GENERIC']['FILE_TYPE'] = '&#1060;&#1072;&#1081;&#1083;&#1072;, &#1082;&#1086;&#1081;&#1090;&#1086; &#1082;&#1072;&#1095;&#1074;&#1072;&#1090;&#1077; &#1090;&#1088;&#1103;&#1073;&#1074;&#1072; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1074; &#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1103; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;:';
+$MESSAGE['GENERIC']['FILE_TYPES'] = '&#1060;&#1072;&#1081;&#1083;&#1072;, &#1082;&#1086;&#1081;&#1090;&#1086; &#1082;&#1072;&#1095;&#1074;&#1072;&#1090;&#1077; &#1090;&#1088;&#1103;&#1073;&#1074;&#1072; &#1076;&#1072; &#1073;&#1098;&#1076;&#1077; &#1074; &#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1090;&#1077; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1080;:';
+$MESSAGE['GENERIC']['CANNOT_UPLOAD'] = '&#1060;&#1072;&#1081;&#1083;&#1072; &#1085;&#1077; &#1073;&#1077;&#1096;&#1077; &#1082;&#1072;&#1095;&#1077;&#1085;';
+$MESSAGE['GENERIC']['ALREADY_INSTALLED'] = '&#1042;&#1077;&#1095;&#1077; &#1077; &#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1085;';
+$MESSAGE['GENERIC']['NOT_INSTALLED'] = '&#1053;&#1077; &#1077; &#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1085;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1076;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;';
+$MESSAGE['GENERIC']['CANNOT_UNZIP'] = 'unzip &#1085;&#1072; &#1092;&#1072;&#1081;&#1083;&#1072; &#1085;&#1077;&#1074;&#1098;&#1079;&#1084;&#1086;&#1078;&#1077;&#1085;';
+$MESSAGE['GENERIC']['INSTALLED'] = '&#1048;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GENERIC']['UPGRADED'] = '&#1054;&#1073;&#1085;&#1086;&#1074;&#1077;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GENERIC']['UNINSTALLED'] = '&#1044;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
+$MESSAGE['GENERIC']['BAD_PERMISSIONS'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1074;&#1072; &#1074; &#1094;&#1077;&#1083;&#1077;&#1074;&#1072;&#1090;&#1072; &#1076;&#1080;&#1088;&#1077;&#1082;&#1090;&#1086;&#1088;&#1080;&#1103;';
+$MESSAGE['GENERIC']['INVALID'] = '&#1053;&#1077;&#1074;&#1072;&#1083;&#1080;&#1076;&#1077;&#1085; &#1092;&#1072;&#1081;&#1083;';
+$MESSAGE['GENERIC']['CANNOT_UNINSTALL_IN_USE'] = '&#1053;&#1077; &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1089;&#1077; &#1076;&#1077;&#1080;&#1085;&#1089;&#1090;&#1072;&#1083;&#1080;&#1088;&#1072;: &#1080;&#1079;&#1087;&#1088;&#1072;&#1085;&#1080;&#1103; &#1092;&#1072;&#1081;&#1083; &#1089;&#1077; &#1080;&#1079;&#1087;&#1086;&#1083;&#1079;&#1074;&#1072; &#1074; &#1084;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;';
+$MESSAGE['GENERIC']['WEBSITE_UNDER_CONSTRUCTION'] = '&#1057;&#1072;&#1081;&#1090;&#1072; &#1077; &#1074; &#1087;&#1088;&#1086;&#1094;&#1077;&#1089; &#1085;&#1072; &#1089;&#1098;&#1079;&#1076;&#1072;&#1074;&#1072;&#1085;&#1077;';
+$MESSAGE['GENERIC']['PLEASE_CHECK_BACK_SOON'] = '&#1055;&#1088;&#1086;&#1074;&#1077;&#1088;&#1077;&#1090;&#1077; &#1087;&#1072;&#1082;...';
+$MESSAGE['GENERIC']['PLEASE_BE_PATIENT'] = '&#1041;&#1098;&#1076;&#1077;&#1090;&#1077; &#1090;&#1098;&#1088;&#1087;&#1077;&#1083;&#1080;&#1074;&#1080;, &#1084;&#1086;&#1078;&#1077; &#1076;&#1072; &#1086;&#1090;&#1085;&#1077;&#1084;&#1077; &#1074;&#1088;&#1077;&#1084;&#1077;.';
+$MESSAGE['GENERIC']['ERROR_OPENING_FILE'] = '&#1043;&#1088;&#1077;&#1096;&#1082;&#1072; &#1087;&#1088;&#1080; &#1086;&#1090;&#1074;&#1072;&#1088;&#1103;&#1085;&#1077; &#1085;&#1072; &#1092;&#1072;&#1081;&#1083;.';
+
+$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'] = '&#1058;&#1088;&#1103;&#1073;&#1074;&#1072; &#1076;&#1072; &#1087;&#1086;&#1087;&#1098;&#1083;&#1085;&#1080;&#1090;&#1077; &#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1090;&#1077; &#1087;&#1086;&#1083;&#1077;&#1090;&#1072;';
+$MESSAGE['MOD_FORM']['EXCESS_SUBMISSIONS'] = '&#1057;&#1098;&#1078;&#1072;&#1083;&#1103;&#1074;&#1072;&#1084;&#1077;, &#1090;&#1086;&#1079;&#1080; &#1092;&#1086;&#1088;&#1091;&#1083;&#1103;&#1088; &#1077; &#1087;&#1086;&#1076;&#1072;&#1076;&#1077;&#1085; &#1087;&#1086;&#1074;&#1077;&#1095;&#1077; &#1087;&#1098;&#1090;&#1080; &#1086;&#1090; &#1087;&#1086;&#1079;&#1074;&#1086;&#1083;&#1077;&#1085;&#1086;&#1090;&#1086; &#1087;&#1088;&#1077;&#1079; &#1090;&#1086;&#1079;&#1080; &#1095;&#1072;&#1089;. &#1054;&#1087;&#1080;&#1090;&#1072;&#1081;&#1090;&#1077; &#1086;&#1090;&#1085;&#1086;&#1074;&#1077; &#1087;&#1086; &#1074;&#1088;&#1077;&#1084;&#1077; &#1085;&#1072; &#1089;&#1083;&#1077;&#1076;&#1074;&#1072;&#1097;&#1080; &#1095;&#1072;&#1089;.';
+$MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'] = '&#1050;&#1086;&#1085;&#1090;&#1088;&#1086;&#1083;&#1085;&#1080;&#1103; &#1085;&#1086;&#1084;&#1077;&#1088; (&#1087;&#1086;&#1079;&#1072;&#1085;&#1090; &#1082;&#1072;&#1090;&#1086; Captcha) &#1077; &#1075;&#1088;&#1077;&#1096;&#1077;&#1085;. &#1040;&#1082;&#1086; &#1080;&#1084;&#1072;&#1090;&#1077; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084; &#1089; &#1095;&#1077;&#1090;&#1077;&#1085;&#1077;&#1090;&#1086; &#1085;&#1072; Captcha, &#1080;&#1079;&#1087;&#1088;&#1072;&#1090;&#1077;&#1090;&#1077; e-mail &#1085;&#1072;: '.SERVER_EMAIL.'';
+
+$MESSAGE['MOD_RELOAD']['PLEASE_SELECT'] = 'Please selected which add-ons you would like to have reloaded';
+$MESSAGE['MOD_RELOAD']['MODULES_RELOADED'] = 'Modules reloaded successfully';
+$MESSAGE['MOD_RELOAD']['TEMPLATES_RELOADED'] = 'Templates reloaded successfully';
+$MESSAGE['MOD_RELOAD']['LANGUAGES_RELOADED'] = 'Languages reloaded successfully';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/languages/BG.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/languages/index.php
===================================================================
--- tags/2.7.0/wb/languages/index.php	(nonexistent)
+++ tags/2.7.0/wb/languages/index.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require('../config.php');
+header('Location: '.WB_URL.'/');
+
+?>

Property changes on: tags/2.7.0/wb/languages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/install/index.php
===================================================================
--- tags/2.7.0/wb/install/index.php	(nonexistent)
+++ tags/2.7.0/wb/install/index.php	(revision 838)
@@ -0,0 +1,437 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Start a session
+if(!defined('SESSION_STARTED')) {
+	session_name('wb_session_id');
+	session_start();
+	define('SESSION_STARTED', true);
+}
+
+// Function to highlight input fields which contain wrong/missing data
+function field_error($field_name='') {
+	if(!defined('SESSION_STARTED') || $field_name == '') return;
+	if(isset($_SESSION['ERROR_FIELD']) && $_SESSION['ERROR_FIELD'] == $field_name) {
+		return ' class="wrong"';
+	}
+}
+
+// Check if the page has been reloaded
+if(!isset($_GET['sessions_checked']) OR $_GET['sessions_checked'] != 'true') {
+	// Set session variable
+	$_SESSION['session_support'] = '<font class="good">Enabled</font>';
+	// Reload page
+	header('Location: index.php?sessions_checked=true');
+	exit(0);
+} else {
+	// Check if session variable has been saved after reload
+	if(isset($_SESSION['session_support'])) {
+		$session_support = $_SESSION['session_support'];
+	} else {   
+		$session_support = '<font class="bad">Disabled</font>';
+	}
+}
+
+// Check if AddDefaultCharset is set
+$e_adc=false;
+$sapi=php_sapi_name();
+if(strpos($sapi, 'apache')!==FALSE || strpos($sapi, 'nsapi')!==FALSE) {
+	flush();
+	$apache_rheaders=apache_response_headers();
+	foreach($apache_rheaders AS $h) {
+		if(strpos($h, 'html; charset')!==FALSE) {
+			preg_match('/charset\s*=\s*([a-zA-Z0-9- _]+)/', $h, $match);
+			$apache_charset=$match[1];
+			$e_adc=$apache_charset;
+		}
+	}
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Website Baker Installation Wizard</title>
+<link href="stylesheet.css" rel="stylesheet" type="text/css">
+<script language="javascript" type="text/javascript">
+
+function confirm_link(message, url) {
+	if(confirm(message)) location.href = url;
+}
+function change_os(type) {
+	if(type == 'linux') {
+		document.getElementById('operating_system_linux').checked = true;
+		document.getElementById('operating_system_windows').checked = false;
+		document.getElementById('file_perms_box').style.display = 'block';
+	} else if(type == 'windows') {
+		document.getElementById('operating_system_linux').checked = false;
+		document.getElementById('operating_system_windows').checked = true;
+		document.getElementById('file_perms_box').style.display = 'none';
+	}
+}
+
+</script>
+</head>
+<body>
+
+<table cellpadding="0" cellspacing="0" border="0" width="750" align="center">
+<tr>
+	<td width="60" valign="top">
+		<img src="../admin/interface/logo.png" alt="Logo" />
+	</td>
+	<td width="5">&nbsp;</td>
+	<td style="font-size: 20px;">
+		<font style="color: #FFF;">Installation Wizard</font>
+	</td>
+</tr>
+</table>
+
+<form name="website_baker_installation_wizard" action="save.php" method="post">
+<input type="hidden" name="url" value="" />
+<input type="hidden" name="username_fieldname" value="admin_username" />
+<input type="hidden" name="password_fieldname" value="admin_password" />
+<input type="hidden" name="remember" id="remember" value="true" />
+
+<table cellpadding="0" cellspacing="0" border="0" width="750" align="center" style="margin-top: 10px;">
+<tr>
+	<td class="content">
+	
+		<center style="padding: 5px;">
+			Welcome to the Website Baker Installation Wizard.
+		</center>
+		
+		<?php
+		if(isset($_SESSION['message']) AND $_SESSION['message'] != '') {
+			?><div style="width: 700px; padding: 10px; margin-bottom: 5px; border: 1px solid #FF0000; background-color: #FFDBDB;"><b>Error:</b> <?php echo $_SESSION['message']; ?></div><?php
+		}
+		?>
+		<table cellpadding="3" cellspacing="0" width="100%" align="center">
+		<tr>
+			<td colspan="6"><h1>Step 1</h1>Please check the following requirements are met before continuing...</td>
+		</tr>
+		<?php if($session_support != '<font class="good">Enabled</font>') { ?>
+		<tr>
+			<td colspan="6" style="font-size: 10px;" class="bad">Please note: PHP Session Support may appear disabled if your browser does not support cookies.</td>
+		</tr>
+		<?php } ?>
+		<tr>
+			<td width="160" style="color: #666666;">PHP Version > 4.1.0</td>
+			<td width="60">
+				<?php
+				$phpversion = substr(PHP_VERSION, 0, 6);
+				if($phpversion > 4.1) {
+					?><font class="good">Yes</font><?php
+				} else {
+					?><font class="bad">No</font><?php
+				}
+				?>
+			</td>
+			<td width="140" style="color: #666666;">PHP Session Support</td>
+			<td width="105"><?php echo $session_support; ?></td>
+			<td width="115" style="color: #666666;">PHP Safe Mode</td>
+			<td>
+				<?php
+				if(ini_get('safe_mode')=='' || strpos(strtolower(ini_get('safe_mode')), 'off')!==FALSE || ini_get('safe_mode')==0) {
+					?><font class="good">Disabled</font><?php
+				} else {
+					?><font class="bad">Enabled</font><?php
+				}	
+				?>
+			</td>
+		</tr>
+		<tr>
+			<td width="160" style="color: #666666;">AddDefaultCharset unset</td>
+			<td width="60">
+				<?php
+					if($e_adc) {
+						?><font class="bad">No</font><?php
+					} else {
+						?><font class="good">Yes</font><?php
+					}
+				?>
+			</td>
+			<td colspan="4">&nbsp;</td>
+		</tr>
+		<?php if($e_adc) { ?>
+		<tr>
+			<td colspan="6" style="font-size: 10px;" class="bad">Please note: AddDefaultCharset is set to <?php echo $e_adc;?> in apache.conf.<br />If you have to use umlauts (e.g. &auml; &aacute;) please change this to Off. - Or use <?php echo $e_adc;?> inside website baker, too.</td>
+		</tr>
+		<?php } ?>
+		</table>
+		<table cellpadding="3" cellspacing="0" width="100%" align="center">
+		<tr>
+			<td colspan="8"><h1>Step 2</h1>Please check the following files/folders are writeable before continuing...</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">wb/config.php</td>
+			<td><?php if(is_writable('../config.php')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../config.php')) { echo '<font class="bad">File Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td style="color: #666666;">wb/pages/</td>
+			<td><?php if(is_writable('../pages/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../pages/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td style="color: #666666;">wb/media/</td>
+			<td><?php if(is_writable('../media/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../media/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td style="color: #666666;">wb/templates/</td>
+			<td><?php if(is_writable('../templates/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../templates/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">wb/modules/</td>
+			<td><?php if(is_writable('../modules/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../modules/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td style="color: #666666;">wb/languages/</td>
+			<td><?php if(is_writable('../languages/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../languages/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td style="color: #666666;">wb/temp/</td>
+			<td><?php if(is_writable('../temp/')) { echo '<font class="good">Writeable</font>'; } elseif(!file_exists('../temp/')) { echo '<font class="bad">Directory Not Found</font>'; } else { echo '<font class="bad">Unwriteable</font>'; } ?></td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		</table>
+		<table cellpadding="3" cellspacing="0" width="100%" align="center">
+		<tr>
+			<td colspan="2"><h1>Step 3</h1>Please check your path settings, and select a default timezone and a default backend language...</td>
+		</tr>
+		<tr>
+			<td width="125" style="color: #666666;">
+				Absolute URL:
+			</td>
+			<td>
+				<?php
+				// Try to guess installation URL
+				$guessed_url = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
+				$guessed_url = rtrim(dirname($guessed_url), 'install');
+				?>
+				<input <?php echo field_error('wb_url');?> type="text" tabindex="1" name="wb_url" style="width: 99%;" value="<?php if(isset($_SESSION['wb_url'])) { echo $_SESSION['wb_url']; } else { echo $guessed_url; } ?>" />
+			</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">
+				Default Timezone:
+			</td>
+			<td>
+				<select <?php echo field_error('default_timezone');?> tabindex="3" name="default_timezone" style="width: 100%;">
+					<?php
+					$TIMEZONES['-12'] = 'GMT - 12 Hours';
+					$TIMEZONES['-11'] = 'GMT -11 Hours';
+					$TIMEZONES['-10'] = 'GMT -10 Hours';
+					$TIMEZONES['-9'] = 'GMT -9 Hours';
+					$TIMEZONES['-8'] = 'GMT -8 Hours';
+					$TIMEZONES['-7'] = 'GMT -7 Hours';
+					$TIMEZONES['-6'] = 'GMT -6 Hours';
+					$TIMEZONES['-5'] = 'GMT -5 Hours';
+					$TIMEZONES['-4'] = 'GMT -4 Hours';
+					$TIMEZONES['-3.5'] = 'GMT -3.5 Hours';
+					$TIMEZONES['-3'] = 'GMT -3 Hours';
+					$TIMEZONES['-2'] = 'GMT -2 Hours';
+					$TIMEZONES['-1'] = 'GMT -1 Hour';
+					$TIMEZONES['0'] = 'GMT';
+					$TIMEZONES['1'] = 'GMT +1 Hour';
+					$TIMEZONES['2'] = 'GMT +2 Hours';
+					$TIMEZONES['3'] = 'GMT +3 Hours';
+					$TIMEZONES['3.5'] = 'GMT +3.5 Hours';
+					$TIMEZONES['4'] = 'GMT +4 Hours';
+					$TIMEZONES['4.5'] = 'GMT +4.5 Hours';
+					$TIMEZONES['5'] = 'GMT +5 Hours';
+					$TIMEZONES['5.5'] = 'GMT +5.5 Hours';
+					$TIMEZONES['6'] = 'GMT +6 Hours';
+					$TIMEZONES['6.5'] = 'GMT +6.5 Hours';
+					$TIMEZONES['7'] = 'GMT +7 Hours';
+					$TIMEZONES['8'] = 'GMT +8 Hours';
+					$TIMEZONES['9'] = 'GMT +9 Hours';
+					$TIMEZONES['9.5'] = 'GMT +9.5 Hours';
+					$TIMEZONES['10'] = 'GMT +10 Hours';
+					$TIMEZONES['11'] = 'GMT +11 Hours';
+					$TIMEZONES['12'] = 'GMT +12 Hours';
+					$TIMEZONES['13'] = 'GMT +13 Hours';
+					foreach($TIMEZONES AS $hour_offset => $title) {
+						?>
+							<option value="<?php echo $hour_offset; ?>"<?php if(isset($_SESSION['default_timezone']) AND $_SESSION['default_timezone'] == $hour_offset) { echo ' selected'; } elseif(!isset($_SESSION['default_timezone']) AND $hour_offset == 0) { echo 'selected'; } ?>><?php echo $title; ?></option>
+						<?php
+					}
+					?>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">
+				Default Language:
+			</td>
+			<td>
+				<select <?php echo field_error('default_language');?> tabindex="3" name="default_language" style="width: 100%;">
+					<?php
+					$DEFAULT_LANGUAGE = array(
+						'BG'=>'Bulgarian', 'CA'=>'Catalan', 'CS'=>'&#268;e&scaron;tina', 'DA'=>'Danish', 'DE'=>'Deutsch', 'EN'=>'English',
+						'ES'=>'Spanish', 'ET'=>'Eesti', 'FI'=>'Suomi', 'FR'=>'Fran&ccedil;ais',
+						'HR'=>'Hrvatski', 'HU'=>'Magyar','IT'=>'Italiano', 'LV'=>'Latviesu',
+						'NL'=>'Nederlands', 'NO'=>'Norsk', 'PL'=>'Polski', 'PT'=>'Portuguese (Brazil)', 'RU'=>'Russian', 'SE'=>'Svenska', 'TR'=>'Turkish'
+					);
+					foreach($DEFAULT_LANGUAGE as $lang_id => $lang_title) {
+						?>
+							<option value="<?php echo $lang_id; ?>"<?php if(isset($_SESSION['default_language']) AND $_SESSION['default_language'] == $lang_id) { echo ' selected'; } elseif(!isset($_SESSION['default_language']) AND $lang_id == 'EN') { echo 'selected'; } ?>><?php echo $lang_title; ?></option>
+						<?php
+					}
+					?>
+				</select>
+			</td>
+		</tr>
+		</table>
+		<table cellpadding="5" cellspacing="0" width="100%" align="center">
+		<tr>
+			<td colspan="3"><h1>Step 4</h1>Please specify your operating system information below...</td>
+		</tr>
+		<tr height="50">
+			<td width="170">
+				Server Operating System:
+			</td>
+			<td width="180">
+				<input type="radio" tabindex="4" name="operating_system" id="operating_system_linux" onclick="document.getElementById('file_perms_box').style.display = 'block';" value="linux"<?php if(!isset($_SESSION['operating_system']) OR $_SESSION['operating_system'] == 'linux') { echo ' checked'; } ?> />
+				<font style="cursor: pointer;" onclick="javascript: change_os('linux');">Linux/Unix based</font>
+				<br />
+				<input type="radio" tabindex="5" name="operating_system" id="operating_system_windows" onclick="document.getElementById('file_perms_box').style.display = 'none';" value="windows"<?php if(isset($_SESSION['operating_system']) AND $_SESSION['operating_system'] == 'windows') { echo ' checked'; } ?> />
+				<font style="cursor: pointer;" onclick="javascript: change_os('windows');">Windows</font>
+			</td>
+			<td>
+				<div name="file_perms_box" id="file_perms_box" style="margin: 0; padding: 0; display: <?php if(isset($_SESSION['operating_system']) AND $_SESSION['operating_system'] == 'windows') { echo 'none'; } else { echo 'block'; } ?>;">
+					<input type="checkbox" tabindex="6" name="world_writeable" id="world_writeable" value="true"<?php if(isset($_SESSION['world_writeable']) AND $_SESSION['world_writeable'] == true) { echo 'checked'; } ?> />
+					<label for="world_writeable">
+						World-writeable file permissions (777)
+					</label>
+					<br />
+					<font class="note">(Please note: only recommended for testing environments)</font>
+				</div>
+			</td>
+		</tr>
+		</table>
+		<table cellpadding="5" cellspacing="0" width="100%" align="center">
+		<tr>
+			<td colspan="5">Please enter your MySQL database server details below...</td>
+		</tr>
+		<tr>
+			<td width="120" style="color: #666666;">Host Name:</td>
+			<td width="230">
+				<input <?php echo field_error('database_host');?> type="text" tabindex="7" name="database_host" style="width: 98%;" value="<?php if(isset($_SESSION['database_host'])) { echo $_SESSION['database_host']; } else { echo 'localhost'; } ?>" />
+			</td>
+			<td width="7">&nbsp;</td>
+			<td width="70" style="color: #666666;">Username:</td>
+			<td>
+				<input <?php echo field_error('database_username');?> type="text" tabindex="9" name="database_username" style="width: 98%;" value="<?php if(isset($_SESSION['database_username'])) { echo $_SESSION['database_username']; } else { echo 'root'; } ?>" />
+			</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">Database Name:<br />[a-zA-Z0-9_-]</td>
+			<td>
+				<input <?php echo field_error('database_name');?> type="text" tabindex="8" name="database_name" style="width: 98%;" value="<?php if(isset($_SESSION['database_name'])) { echo $_SESSION['database_name']; } else { echo 'wb'; } ?>" />
+			</td>
+			<td>&nbsp;</td>
+			<td style="color: #666666;">Password:</td>
+			<td>
+				<input type="password" tabindex="10" name="database_password" style="width: 98%;"<?php if(isset($_SESSION['database_password'])) { echo ' value = "'.$_SESSION['database_password'].'"'; } ?> />
+			</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">Table Prefix:<br />[a-zA-Z0-9_]</td>
+			<td>
+				<input <?php echo field_error('table_prefix');?> type="text" tabindex="11" name="table_prefix" style="width: 250px;"<?php if(isset($_SESSION['table_prefix'])) { echo ' value = "'.$_SESSION['table_prefix'].'"'; } ?> />
+			</td>
+			<td>&nbsp;</td>
+			<td colspan="2">
+				<input type="checkbox" tabindex="12" name="install_tables" id="install_tables" value="true"<?php if(!isset($_SESSION['install_tables'])) { echo ' checked'; } elseif($_SESSION['install_tables'] == 'true') { echo ' checked'; } ?> />
+				<label for="install_tables" style="color: #666666;">Install Tables</label>
+				<br />
+				<span style="font-size: 10px; color: #666666;">(Please note: May remove existing tables and data)</span></td>		
+			</td>
+		</tr>
+		<tr>
+			<td colspan="5"><h1>Step 5</h1>Please enter your website title below...</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;" colspan="1">Website Title:</td>
+			<td colspan="4">
+				<input <?php echo field_error('website_title');?> type="text" tabindex="13" name="website_title" style="width: 99%;" value="<?php if(isset($_SESSION['website_title'])) { echo $_SESSION['website_title']; } ?>" />
+			</td>
+		</tr>
+		<tr>
+			<td colspan="5"><h1>Step 6</h1>Please enter your Administrator account details below...</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">Username:</td>
+			<td>
+				<input <?php echo field_error('admin_username');?> type="text" tabindex="14" name="admin_username" style="width: 98%;" value="<?php if(isset($_SESSION['admin_username'])) { echo $_SESSION['admin_username']; } else { echo 'admin'; } ?>" />
+			</td>
+			<td>&nbsp;</td>
+			<td style="color: #666666;">Password:</td>
+			<td>
+				<input <?php echo field_error('admin_password');?> type="password" tabindex="16" name="admin_password" style="width: 98%;"<?php if(isset($_SESSION['admin_password'])) { echo ' value = "'.$_SESSION['admin_password'].'"'; } ?> />
+			</td>
+		</tr>
+		<tr>
+			<td style="color: #666666;">Email:</td>
+			<td>
+				<input <?php echo field_error('admin_email');?> type="text" tabindex="15" name="admin_email" style="width: 98%;"<?php if(isset($_SESSION['admin_email'])) { echo ' value = "'.$_SESSION['admin_email'].'"'; } ?> />
+			</td>
+			<td>&nbsp;</td>
+			<td style="color: #666666;">Re-Password:</td>
+			<td>
+				<input <?php echo field_error('admin_repassword');?> type="password" tabindex="17" name="admin_repassword" style="width: 98%;"<?php if(isset($_SESSION['admin_repassword'])) { echo ' value = "'.$_SESSION['admin_repassword'].'"'; } ?> />
+			</td>
+		</tr>
+		<tr>
+			<td colspan="5" style="padding: 10px; padding-bottom: 0;"><h1 style="font-size: 0px;">&nbsp;</h1></td>
+		</tr>
+		<tr>
+			<td colspan="4">
+				<table cellpadding="0" cellspacing="0" width="100%" border="0">
+				<tr valign="top">
+					<td>Please note: &nbsp;</td>
+					<td>
+						Website Baker is released under the 
+						<a href="http://www.gnu.org/licenses/gpl.html" target="_blank" tabindex="19">GNU General Public License</a>
+						<br />
+						By clicking install, you are accepting the license.
+					</td>
+				</tr>
+				</table>
+			</td>
+			<td colspan="1" align="right">
+				<input type="submit" tabindex="20" name="submit" value="Install Website Baker" class="submit" />
+			</td>
+		</tr>
+		</table>
+	</td>
+</tr>
+</table>
+
+</form>
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" style="padding: 10px 0px 10px 0px;">
+<tr>
+	<td align="center" style="font-size: 10px;">
+		<!-- Please note: the below reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+		<a href="http://www.websitebaker.org/" style="color: #000000;" target="_blank">Website Baker</a>
+		is	released under the
+		<a href="http://www.gnu.org/licenses/gpl.html" style="color: #000000;" target="_blank">GNU General Public License</a>
+		<!-- Please note: the above reference to the GNU GPL should not be removed, as it provides a link for users to read about warranty, etc. -->
+	</td>
+</tr>
+</table>
+
+</body>
+</html>

Property changes on: tags/2.7.0/wb/install/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/install/save.php
===================================================================
--- tags/2.7.0/wb/install/save.php	(nonexistent)
+++ tags/2.7.0/wb/install/save.php	(revision 838)
@@ -0,0 +1,718 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+// Start a session
+if(!defined('SESSION_STARTED')) {
+	session_name('wb_session_id');
+	session_start();
+	define('SESSION_STARTED', true);
+}
+// get random-part for session_name()
+list($usec,$sec) = explode(' ',microtime());
+srand((float)$sec+((float)$usec*100000));
+$session_rand = rand(1000,9999);
+
+// Function to set error
+function set_error($message, $field_name = '') {
+	global $_POST;
+	if(isset($message) AND $message != '') {
+		// Copy values entered into session so user doesn't have to re-enter everything
+		if(isset($_POST['website_title'])) {
+			$_SESSION['wb_url'] = $_POST['wb_url'];
+			$_SESSION['default_timezone'] = $_POST['default_timezone'];
+			$_SESSION['default_language'] = $_POST['default_language'];
+			if(!isset($_POST['operating_system'])) {
+				$_SESSION['operating_system'] = 'linux';
+			} else {
+				$_SESSION['operating_system'] = $_POST['operating_system'];
+			}
+			if(!isset($_POST['world_writeable'])) {
+				$_SESSION['world_writeable'] = false;
+			} else {
+				$_SESSION['world_writeable'] = true;
+			}
+			$_SESSION['database_host'] = $_POST['database_host'];
+			$_SESSION['database_username'] = $_POST['database_username'];
+			$_SESSION['database_password'] = $_POST['database_password'];
+			$_SESSION['database_name'] = $_POST['database_name'];
+			$_SESSION['table_prefix'] = $_POST['table_prefix'];
+			if(!isset($_POST['install_tables'])) {
+				$_SESSION['install_tables'] = false;
+			} else {
+				$_SESSION['install_tables'] = true;
+			}
+			$_SESSION['website_title'] = $_POST['website_title'];
+			$_SESSION['admin_username'] = $_POST['admin_username'];
+			$_SESSION['admin_email'] = $_POST['admin_email'];
+			$_SESSION['admin_password'] = $_POST['admin_password'];
+			$_SESSION['admin_repassword'] = $_POST['admin_repassword'];
+		}
+		// Set the message
+		$_SESSION['message'] = $message;
+		// Set the element(s) to highlight
+		if($field_name != '') {
+			$_SESSION['ERROR_FIELD'] = $field_name;
+		}
+		// Specify that session support is enabled
+		$_SESSION['session_support'] = '<font class="good">Enabled</font>';
+		// Redirect to first page again and exit
+		header('Location: index.php?sessions_checked=true');
+		exit();
+	}
+}
+
+// Dummy class to allow modules' install scripts to call $admin->print_error
+class admin_dummy
+{
+	var $error='';
+	function print_error($message)
+	{
+		$this->error=$message;
+	}
+}
+
+// Function to workout what the default permissions are for files created by the webserver
+function default_file_mode($temp_dir) {
+	$v = explode(".",PHP_VERSION);
+	$v = $v[0].$v[1];
+	if($v > 41 AND is_writable($temp_dir)) {
+		$filename = $temp_dir.'/test_permissions.txt';
+		$handle = fopen($filename, 'w');
+		fwrite($handle, 'This file is to get the default file permissions');
+		fclose($handle);
+		$default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3);
+		unlink($filename);
+	} else {
+		$default_file_mode = '0777';
+	}
+	return $default_file_mode;
+}
+
+// Function to workout what the default permissions are for directories created by the webserver
+function default_dir_mode($temp_dir) {
+	$v = explode(".",PHP_VERSION);
+	$v = $v[0].$v[1];
+	if($v > 41 AND is_writable($temp_dir)) {
+		$dirname = $temp_dir.'/test_permissions/';
+		mkdir($dirname);
+		$default_dir_mode = '0'.substr(sprintf('%o', fileperms($dirname)), -3);
+		rmdir($dirname);
+	} else {
+		$default_dir_mode = '0777';
+	}
+	return $default_dir_mode;
+}
+
+function add_slashes($input) {
+		if ( get_magic_quotes_gpc() || ( !is_string($input) ) ) {
+			return $input;
+		}
+		$output = addslashes($input);
+		return $output;
+	}
+
+// Begin check to see if form was even submitted
+// Set error if no post vars found
+if(!isset($_POST['website_title'])) {
+	set_error('Please fill-in the form below');
+}
+// End check to see if form was even submitted
+
+// Begin path and timezone details code
+
+// Check if user has entered the installation url
+if(!isset($_POST['wb_url']) OR $_POST['wb_url'] == '') {
+	set_error('Please enter an absolute URL', 'wb_url');
+} else {
+	$wb_url = $_POST['wb_url'];
+}
+// Remove any slashes at the end of the URL
+if(substr($wb_url, strlen($wb_url)-1, 1) == "/") {
+	$wb_url = substr($wb_url, 0, strlen($wb_url)-1);
+}
+if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") {
+	$wb_url = substr($wb_url, 0, strlen($wb_url)-1);
+}
+if(substr($wb_url, strlen($wb_url)-1, 1) == "/") {
+	$wb_url = substr($wb_url, 0, strlen($wb_url)-1);
+}
+if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") {
+	$wb_url = substr($wb_url, 0, strlen($wb_url)-1);
+}
+// Get the default time zone
+if(!isset($_POST['default_timezone']) OR !is_numeric($_POST['default_timezone'])) {
+	set_error('Please select a valid default timezone', 'default_timezone');
+} else {
+	$default_timezone = $_POST['default_timezone']*60*60;
+}
+// End path and timezone details code
+
+// Get the default language
+$allowed_languages = array('BG','CA', 'CS', 'DA', 'DE', 'EN', 'ES', 'ET', 'FI', 'FR', 'HR', 'HU', 'IT', 'LV', 'NL', 'NO', 'PL', 'PT', 'RU','SE', 'TR');
+if(!isset($_POST['default_language']) OR !in_array($_POST['default_language'], $allowed_languages)) {
+	set_error('Please select a valid default backend language','default_language');
+} else {
+	$default_language = $_POST['default_language'];
+	// make sure the selected language file exists in the language folder
+	if(!file_exists('../languages/' .$default_language .'.php')) {
+		set_error('The language file: \'' .$default_language .'.php\' is missing. Upload file to language folder or choose another language','default_language');
+	}
+}
+// End default language details code
+
+// Begin operating system specific code
+// Get operating system
+if(!isset($_POST['operating_system']) OR $_POST['operating_system'] != 'linux' AND $_POST['operating_system'] != 'windows') {
+	set_error('Please select a valid operating system');
+} else {
+	$operating_system = $_POST['operating_system'];
+}
+// Work-out file permissions
+if($operating_system == 'windows') {
+	$file_mode = '0777';
+	$dir_mode = '0777';
+} elseif(isset($_POST['world_writeable']) AND $_POST['world_writeable'] == 'true') {
+	$file_mode = '0777';
+	$dir_mode = '0777';
+} else {
+	$file_mode = default_file_mode('../temp');
+	$dir_mode = default_dir_mode('../temp');
+}
+// End operating system specific code
+
+// Begin database details code
+// Check if user has entered a database host
+if(!isset($_POST['database_host']) OR $_POST['database_host'] == '') {
+	set_error('Please enter a database host name', 'database_host');
+} else {
+	$database_host = $_POST['database_host'];
+}
+// Check if user has entered a database username
+if(!isset($_POST['database_username']) OR $_POST['database_username'] == '') {
+	set_error('Please enter a database username','database_username');
+} else {
+	$database_username = $_POST['database_username'];
+}
+// Check if user has entered a database password
+if(!isset($_POST['database_password'])) {
+	set_error('Please enter a database password', 'database_password');
+} else {
+	$database_password = $_POST['database_password'];
+}
+// Check if user has entered a database name
+if(!isset($_POST['database_name']) OR $_POST['database_name'] == '') {
+	set_error('Please enter a database name', 'database_name');
+} else {
+	// make sure only allowed characters are specified
+	if(preg_match('/[^a-z0-9_-]+/i', $_POST['database_name'])) {
+		// contains invalid characters (only a-z, A-Z, 0-9 and _ allowed to avoid problems with table/field names)
+		set_error('Only characters a-z, A-Z, 0-9, - and _ allowed in database name.', 'database_name');
+	}
+	$database_name = $_POST['database_name'];
+}
+// Get table prefix
+if(preg_match('/[^a-z0-9_]+/i', $_POST['table_prefix'])) {
+	// contains invalid characters (only a-z, A-Z, 0-9 and _ allowed to avoid problems with table/field names)
+	set_error('Only characters a-z, A-Z, 0-9 and _ allowed in table_prefix.', 'table_prefix');
+} else {
+	$table_prefix = $_POST['table_prefix'];
+}
+
+// Find out if the user wants to install tables and data
+if(isset($_POST['install_tables']) AND $_POST['install_tables'] == 'true') {
+	$install_tables = true;
+} else {
+	$install_tables = false;
+}
+// End database details code
+
+// Begin website title code
+// Get website title
+if(!isset($_POST['website_title']) OR $_POST['website_title'] == '') {
+	set_error('Please enter a website title', 'website_title');
+} else {
+	$website_title = add_slashes($_POST['website_title']);
+}
+// End website title code
+
+// Begin admin user details code
+// Get admin username
+if(!isset($_POST['admin_username']) OR $_POST['admin_username'] == '') {
+	set_error('Please enter a username for the Administrator account','admin_username');
+} else {
+	$admin_username = $_POST['admin_username'];
+}
+// Get admin email and validate it
+if(!isset($_POST['admin_email']) OR $_POST['admin_email'] == '') {
+	set_error('Please enter an email for the Administrator account','admin_email');
+} else {
+	if(eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) {
+		$admin_email = $_POST['admin_email'];
+	} else {
+		set_error('Please enter a valid email address for the Administrator account','admin_email');
+	}
+}
+// Get the two admin passwords entered, and check that they match
+if(!isset($_POST['admin_password']) OR $_POST['admin_password'] == '') {
+	set_error('Please enter a password for the Administrator account','admin_password');
+} else {
+	$admin_password = $_POST['admin_password'];
+}
+if(!isset($_POST['admin_repassword']) OR $_POST['admin_repassword'] == '') {
+	set_error('Please make sure you re-enter the password for the Administrator account','admin_repassword');
+} else {
+	$admin_repassword = $_POST['admin_repassword'];
+}
+if($admin_password != $admin_repassword) {
+	set_error('Sorry, the two Administrator account passwords you entered do not match','admin_repassword');
+}
+// End admin user details code
+
+// Try and write settings to config file
+$config_content = "" .
+"<?php\n".
+"\n".
+"define('DB_TYPE', 'mysql');\n".
+"define('DB_HOST', '$database_host');\n".
+"define('DB_USERNAME', '$database_username');\n".
+"define('DB_PASSWORD', '$database_password');\n".
+"define('DB_NAME', '$database_name');\n".
+"define('TABLE_PREFIX', '$table_prefix');\n".
+"\n".
+"define('WB_PATH', dirname(__FILE__));\n".
+"define('WB_URL', '$wb_url');\n".
+"define('ADMIN_PATH', WB_PATH.'/admin');\n".
+"define('ADMIN_URL', '$wb_url/admin');\n".
+"\n".
+"require_once(WB_PATH.'/framework/initialize.php');\n".
+"\n".
+"?>";
+
+$config_filename = '../config.php';
+
+// Check if the file exists and is writable first.
+if(file_exists($config_filename) AND is_writable($config_filename)) {
+	if(!$handle = fopen($config_filename, 'w')) {
+		set_error("Cannot open the configuration file ($config_filename)");
+	} else {
+		if (fwrite($handle, $config_content) === FALSE) {
+			set_error("Cannot write to the configuration file ($config_filename)");
+		}
+		// Close file
+		fclose($handle);
+	}
+} else {
+	set_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4.");
+}
+
+// Define configuration vars
+define('DB_TYPE', 'mysql');
+define('DB_HOST', $database_host);
+define('DB_USERNAME', $database_username);
+define('DB_PASSWORD', $database_password);
+define('DB_NAME', $database_name);
+define('TABLE_PREFIX', $table_prefix);
+define('WB_PATH', str_replace(array('/install','\install'), '',dirname(__FILE__)));
+define('WB_URL', $wb_url);
+define('ADMIN_PATH', WB_PATH.'/admin');
+define('ADMIN_URL', $wb_url.'/admin');
+
+// Check if the user has entered a correct path
+if(!file_exists(WB_PATH.'/framework/class.admin.php')) {
+	set_error('It appears the Absolute path that you entered is incorrect');
+}
+
+// Try connecting to database	
+if(!mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) {
+	set_error('Database host name, username and/or password incorrect. MySQL Error:<br />'.mysql_error());
+}
+
+// Try to create the database
+mysql_query('CREATE DATABASE `'.$database_name.'`');
+
+// Close the mysql connection
+mysql_close();
+
+// Include WB functions file
+require_once(WB_PATH.'/framework/functions.php');
+
+// Re-connect to the database, this time using in-build database class
+require_once(WB_PATH.'/framework/class.login.php');
+$database=new database();
+
+// Check if we should install tables
+if($install_tables == true) {
+	
+	// Remove tables if they exist
+
+	// Pages table
+	$pages = "DROP TABLE IF EXISTS `".TABLE_PREFIX."pages`";
+	$database->query($pages);
+	// Sections table
+	$sections = "DROP TABLE IF EXISTS `".TABLE_PREFIX."sections`";
+	$database->query($sections);
+	// Settings table
+	$settings = "DROP TABLE IF EXISTS `".TABLE_PREFIX."settings`";
+	$database->query($settings);
+	// Users table
+	$users = "DROP TABLE IF EXISTS `".TABLE_PREFIX."users`";
+	$database->query($users);
+	// Groups table
+	$groups = "DROP TABLE IF EXISTS `".TABLE_PREFIX."groups`";
+	$database->query($groups);
+	// Search table
+	$search = "DROP TABLE IF EXISTS `".TABLE_PREFIX."search`";
+	$database->query($search);
+	// Addons table
+	$addons = "DROP TABLE IF EXISTS `".TABLE_PREFIX."addons`";
+	$database->query($addons);
+				
+	// Try installing tables
+	
+	// Pages table
+	$pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,'
+	       . ' `parent` INT NOT NULL DEFAULT \'0\','
+	       . ' `root_parent` INT NOT NULL DEFAULT \'0\','
+	       . ' `level` INT NOT NULL DEFAULT \'0\','
+	       . ' `link` TEXT NOT NULL,'
+	       . ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `description` TEXT NOT NULL ,'
+	       . ' `keywords` TEXT NOT NULL ,'
+	       . ' `page_trail` TEXT NOT NULL  ,'
+	       . ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `position` INT NOT NULL DEFAULT \'0\','
+	       . ' `menu` INT NOT NULL DEFAULT \'0\','
+	       . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `searching` INT NOT NULL DEFAULT \'0\','
+	       . ' `admin_groups` TEXT NOT NULL ,'
+	       . ' `admin_users` TEXT NOT NULL ,'
+	       . ' `viewing_groups` TEXT NOT NULL ,'
+	       . ' `viewing_users` TEXT NOT NULL ,'
+	       . ' `modified_when` INT NOT NULL DEFAULT \'0\','
+	       . ' `modified_by` INT NOT NULL  DEFAULT \'0\','
+	       . ' PRIMARY KEY ( `page_id` ) '
+	       . ' )';
+	$database->query($pages);
+	
+	// Sections table
+	$pages = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,'
+	       . ' `page_id` INT NOT NULL DEFAULT \'0\','
+	       . ' `position` INT NOT NULL DEFAULT \'0\','
+	       . ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `publ_start` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,'
+	       . ' `publ_end` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' 
+	       . ' PRIMARY KEY ( `section_id` ) '
+	       . ' )';
+	$database->query($pages);
+
+	require(ADMIN_PATH.'/interface/version.php');
+	
+	// Settings table
+	$settings='CREATE TABLE `'.TABLE_PREFIX.'settings` ( `setting_id` INT NOT NULL auto_increment,'
+		. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+		. ' `value` TEXT NOT NULL ,'
+		. ' PRIMARY KEY ( `setting_id` ) '
+		. ' )';
+	$database->query($settings);
+
+	$settings_rows=	"INSERT INTO `".TABLE_PREFIX."settings` "
+	." (name, value) VALUES "
+	." ('wb_version', '".VERSION."'),"
+	." ('website_title', '$website_title'),"
+	." ('website_description', ''),"
+	." ('website_keywords', ''),"
+	." ('website_header', ''),"
+	." ('website_footer', ''),"
+	." ('wysiwyg_style', 'font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;'),"
+	." ('rename_files_on_upload', 'php,asp,phpx,aspx'),"
+	." ('er_level', ''),"
+	." ('default_language', '$default_language'),"
+	." ('app_name', 'wb_$session_rand'),"
+	." ('default_timezone', '$default_timezone'),"
+	." ('default_date_format', 'M d Y'),"
+	." ('default_time_format', 'g:i A'),"
+	." ('home_folders', 'true'),"
+	." ('default_template', 'round'),"
+	." ('default_charset', 'utf-8'),"
+	." ('multiple_menus', 'false'),"
+	." ('page_level_limit', '4'),"
+	." ('intro_page', 'false'),"
+	." ('page_trash', 'disabled'),"
+	." ('homepage_redirection', 'false'),"
+	." ('page_languages', 'false'),"
+	." ('wysiwyg_editor', 'fckeditor'),"
+	." ('manage_sections', 'true'),"
+	." ('section_blocks', 'false'),"
+	." ('smart_login', 'false'),"
+	." ('frontend_login', 'false'),"
+	." ('frontend_signup', 'false'),"
+	." ('search', 'public'),"
+	." ('page_extension', '.php'),"
+	." ('page_spacer', '-'),"
+	." ('pages_directory', '/pages'),"
+	." ('media_directory', '/media'),"
+	." ('operating_system', '$operating_system'),"
+	." ('string_file_mode', '$file_mode'),"
+	." ('string_dir_mode', '$dir_mode'),"
+	." ('wbmailer_routine', 'phpmail'),"
+	." ('server_email', 'admin@yourdomain.com'),"		// avoid that mail provider (e.g. mail.com) reject mails like yourname@mail.com
+	." ('wbmailer_default_sendername', 'WB Mailer'),"
+	." ('wbmailer_smtp_host', ''),"
+	." ('wbmailer_smtp_auth', ''),"
+	." ('wbmailer_smtp_username', ''),"
+	." ('wbmailer_smtp_password', '')";
+	$database->query($settings_rows);
+	
+	// Users table
+	$users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,'
+	       . ' `group_id` INT NOT NULL DEFAULT \'0\','
+	       . ' `groups_id` VARCHAR( 255 ) NOT NULL DEFAULT \'0\','
+	       . ' `active` INT NOT NULL DEFAULT \'0\','
+	       . ' `username` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `password` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `remember_key` VARCHAR( 255 ) NOT NULL DEFAULT \'\','
+	       . ' `last_reset` INT NOT NULL DEFAULT \'0\','
+	       . ' `display_name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `email` TEXT NOT NULL ,'
+	       . ' `timezone` INT NOT NULL DEFAULT \'0\','
+	       . ' `date_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `time_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	       . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'' .$default_language .'\' ,'
+	       . ' `home_folder` TEXT NOT NULL ,'
+	       . ' `login_when` INT NOT NULL  DEFAULT \'0\','
+	       . ' `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT \'\' ,'
+	       . ' PRIMARY KEY ( `user_id` ) '
+	       . ' )';
+	$database->query($users);
+	
+	// Groups table
+	$groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,'
+	        . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	        . ' `system_permissions` TEXT NOT NULL ,'
+	        . ' `module_permissions` TEXT NOT NULL ,'
+	        . ' `template_permissions` TEXT NOT NULL ,'
+	        . ' PRIMARY KEY ( `group_id` ) '
+	        . ' )';
+	$database->query($groups);
+	
+	// Search settings table
+	$search = 'CREATE TABLE `'.TABLE_PREFIX.'search` ( `search_id` INT NOT NULL auto_increment,'
+	        . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+	        . ' `value` TEXT NOT NULL ,'
+	        . ' `extra` TEXT NOT NULL ,'
+	        . ' PRIMARY KEY ( `search_id` ) '
+	        . ' )';
+	$database->query($search);
+	
+	// Addons table
+	$addons = 'CREATE TABLE `'.TABLE_PREFIX.'addons` ( '
+			.'`addon_id` INT NOT NULL auto_increment ,'
+			.'`type` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`directory` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`description` TEXT NOT NULL ,'
+			.'`function` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`version` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`platform` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`author` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.'`license` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,'
+			.' PRIMARY KEY ( `addon_id` ) '
+			.' )';
+	$database->query($addons);
+
+	// Insert default data
+	
+	// Admin group
+	$full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools';
+	$insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', '$full_system_permissions', '', '')";
+	$database->query($insert_admin_group);
+	// Admin user
+	$insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` (user_id,group_id,groups_id,active,username,password,email,display_name) VALUES ('1','1','1','1','$admin_username','".md5($admin_password)."','$admin_email','Administrator')";
+	$database->query($insert_admin_user);
+	
+	// Search header
+	$search_header = addslashes('
+<h1>[TEXT_SEARCH]</h1>
+
+<form name="search" action="[WB_URL]/search/index.php" method="get">
+<table cellpadding="3" cellspacing="0" border="0" width="500">
+<tr>
+<td>
+<input type="hidden" name="search_path" value="[SEARCH_PATH]" />
+<input type="text" name="string" value="[SEARCH_STRING]" style="width: 100%;" />
+</td>
+<td width="150">
+<input type="submit" value="[TEXT_SEARCH]" style="width: 100%;" />
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<input type="radio" name="match" id="match_all" value="all"[ALL_CHECKED] />
+<label for="match_all">[TEXT_ALL_WORDS]</label>
+<input type="radio" name="match" id="match_any" value="any"[ANY_CHECKED] />
+<label for="match_any">[TEXT_ANY_WORDS]</label>
+<input type="radio" name="match" id="match_exact" value="exact"[EXACT_CHECKED] />
+<label for="match_exact">[TEXT_EXACT_MATCH]</label>
+</td>
+</tr>
+</table>
+
+</form>
+
+<hr />
+	');
+	$insert_search_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'header', '$search_header', '')";
+	$database->query($insert_search_header);
+	// Search footer
+	$search_footer = addslashes('');
+	$insert_search_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'footer', '$search_footer', '')";
+	$database->query($insert_search_footer);
+	// Search results header
+	$search_results_header = addslashes(''.
+'[TEXT_RESULTS_FOR] \'<b>[SEARCH_STRING]</b>\':
+<table cellpadding="2" cellspacing="0" border="0" width="100%" style="padding-top: 10px;">');
+	$insert_search_results_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_header', '$search_results_header', '')";
+	$database->query($insert_search_results_header);
+	// Search results loop
+	$search_results_loop = addslashes(''.
+'<tr style="background-color: #F0F0F0;">
+<td><a href="[LINK]">[TITLE]</a></td>
+<td align="right">[TEXT_LAST_UPDATED_BY] [DISPLAY_NAME] ([USERNAME]) [TEXT_ON] [DATE]</td>
+</tr>
+<tr><td colspan="2" style="text-align: justify; padding-bottom: 5px;">[DESCRIPTION]</td></tr>
+<tr><td colspan="2" style="text-align: justify; padding-bottom: 10px;">[EXCERPT]</td></tr>');
+
+	$insert_search_results_loop = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_loop', '$search_results_loop', '')";
+	$database->query($insert_search_results_loop);
+	// Search results footer
+	$search_results_footer = addslashes("</table>");
+	$insert_search_results_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_footer', '$search_results_footer', '')";
+	$database->query($insert_search_results_footer);
+	// Search no results
+	$search_no_results = addslashes('<br />[TEXT_NO_RESULTS]');
+	$insert_search_no_results = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'no_results', '$search_no_results', '')";
+	$database->query($insert_search_no_results);
+	// Search module-order
+	$search_module_order = addslashes('faqbaker,manual,wysiwyg');
+	$insert_search_module_order = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'module_order', '$search_module_order', '')";
+	$database->query($insert_search_module_order);
+	// Search max lines of excerpt
+	$search_max_excerpt = addslashes('15');
+	$insert_search_max_excerpt = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'max_excerpt', '$search_max_excerpt', '')";
+	$database->query($insert_search_max_excerpt);
+	// max time to search per module
+	$search_time_limit = addslashes('0');
+	$insert_search_time_limit = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'time_limit', '$search_time_limit', '')";
+	$database->query($insert_search_time_limit);
+	// some config-elements
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'cfg_enable_old_search', 'true', '')");
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'cfg_search_keywords', 'true', '')");
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'cfg_search_description', 'true', '')");
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'cfg_show_description', 'true', '')");
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'cfg_enable_flush', 'false', '')");
+	// Search template
+	$database->query("INSERT INTO `".TABLE_PREFIX."search` (name) VALUES ('template')");
+		
+	require_once(WB_PATH.'/framework/initialize.php');
+	
+	// Include the PclZip class file (thanks to 
+	require_once(WB_PATH.'/include/pclzip/pclzip.lib.php');
+			
+	// Install add-ons
+	if(file_exists(WB_PATH.'/install/modules')) {
+		// Unpack pre-packaged modules
+			
+	}
+	if(file_exists(WB_PATH.'/install/templates')) {
+		// Unpack pre-packaged templates
+		
+	}
+	if(file_exists(WB_PATH.'/install/languages')) {
+		// Unpack pre-packaged languages
+		
+	}
+	
+	$admin=new admin_dummy();
+	// Load addons into DB
+	$dirs['modules'] = WB_PATH.'/modules/';
+	$dirs['templates'] = WB_PATH.'/templates/';
+	$dirs['languages'] = WB_PATH.'/languages/';
+	foreach($dirs AS $type => $dir) {
+		if($handle = opendir($dir)) {
+			while(false !== ($file = readdir($handle))) {
+				if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') {
+					// Get addon type
+					if($type == 'modules') {
+						load_module($dir.'/'.$file, true);
+						// Pretty ugly hack to let modules run $admin->set_error
+						// See dummy class definition admin_dummy above
+						if ($admin->error!='') {
+							set_error($admin->error);
+						}
+					} elseif($type == 'templates') {
+						load_template($dir.'/'.$file);
+					} elseif($type == 'languages') {
+						load_language($dir.'/'.$file);
+					}
+				}
+			}
+		closedir($handle);
+		}
+	}
+	
+	// Check if there was a database error
+	if($database->is_error()) {
+		set_error($database->get_error());
+	}
+	
+}
+
+// Log the user in and go to Website Baker Administration
+$thisApp = new Login(
+							array(
+									"MAX_ATTEMPS" => "50",
+									"WARNING_URL" => ADMIN_URL."/login/warning.html",
+									"USERNAME_FIELDNAME" => 'admin_username',
+									"PASSWORD_FIELDNAME" => 'admin_password',
+									"REMEMBER_ME_OPTION" => SMART_LOGIN,
+									"MIN_USERNAME_LEN" => "2",
+									"MIN_PASSWORD_LEN" => "2",
+									"MAX_USERNAME_LEN" => "30",
+									"MAX_PASSWORD_LEN" => "30",
+									'LOGIN_URL' => ADMIN_URL."/login/index.php",
+									'DEFAULT_URL' => ADMIN_URL."/start/index.php",
+									'TEMPLATE_DIR' => ADMIN_PATH."/login",
+									'TEMPLATE_FILE' => "template.html",
+									'FRONTEND' => false,
+									'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php",
+									'USERS_TABLE' => TABLE_PREFIX."users",
+									'GROUPS_TABLE' => TABLE_PREFIX."groups",
+							)
+					);
+?>

Property changes on: tags/2.7.0/wb/install/save.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/install/stylesheet.css
===================================================================
--- tags/2.7.0/wb/install/stylesheet.css	(nonexistent)
+++ tags/2.7.0/wb/install/stylesheet.css	(revision 838)
@@ -0,0 +1,74 @@
+body,td,th,input,textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #A8BCCB;
+	background-image: url(../admin/interface/background.png);
+	background-repeat: repeat-x;
+	margin: 0px;
+}
+form {
+	margin: 0;
+}
+
+input:focus, select:focus {
+	background: #F1F8FD;
+}
+
+.wrong {
+	background-color: #FFDBDB;
+}
+
+.submit {
+	border : solid 1px #CCCCCC;
+	background: #E9ECEF;
+	color : #003366;
+	font-weight : bold;
+	font-size : 11px;
+	padding: 4px;
+	width: 100%;
+}
+.content {
+	background-color: #FFFFFF;
+	padding: 15px;
+	height: 350px;
+	width: 750px;
+	text-align: justify;
+	vertical-align: top;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #003366;
+	height: 1px;
+}
+h1 {
+	font-size: 15px;
+	color: #336699;
+	margin: 0px 0px 5px 0px;
+	border-bottom: 1px solid #CCCCCC;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+.bad {
+	color: #FF0000;
+	font-weight: bold;
+}
+.good {
+	color: #009900;
+	font-weight: bold;
+}
+.note {
+	color: #666666;
+	font-size: 10px;
+}
+.hide {
+	display: none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/install/stylesheet.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/signup2.php
===================================================================
--- tags/2.7.0/wb/account/signup2.php	(nonexistent)
+++ tags/2.7.0/wb/account/signup2.php	(revision 838)
@@ -0,0 +1,141 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../pages/index.php');
+	exit(0);
+}
+
+require_once(WB_PATH.'/framework/class.wb.php');
+$wb = new wb('Start', 'start', false, false);
+
+// Create new database object
+$database = new database();
+
+// Get details entered
+$groups_id = FRONTEND_SIGNUP;
+$active = 1;
+$username = strtolower(strip_tags($wb->get_post_escaped('username')));
+$display_name = strip_tags($wb->get_post_escaped('display_name'));
+$email = $wb->get_post('email');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Check values
+if($groups_id == "") {
+	$wb->print_error($MESSAGE['USERS']['NO_GROUP'], $js_back, false);
+}
+if(strlen($username) < 3) {
+	$wb->print_error($MESSAGE['USERS']['USERNAME_TOO_SHORT'], $js_back, false);
+}
+if($email != "") {
+	if($wb->validate_email($email) == false) {
+		$wb->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back, false);
+	}
+} else {
+	$wb->print_error($MESSAGE['SIGNUP']['NO_EMAIL'], $js_back, false);
+}
+
+$email = $wb->add_slashes($email);
+
+// Captcha
+if(ENABLED_CAPTCHA) {
+	if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
+		// Check for a mismatch
+		if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
+			$wb->print_error($MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'], $js_back, false);
+		}
+	} else {
+		$wb->print_error($MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'], $js_back, false);
+	}
+}
+if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
+
+// Generate a random password then update the database with it
+$new_pass = '';
+$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+srand((double)microtime()*1000000);
+$i = 0;
+while ($i <= 7) {
+	$num = rand() % 33;
+	$tmp = substr($salt, $num, 1);
+	$new_pass = $new_pass . $tmp;
+	$i++;
+}
+$md5_password = md5($new_pass);
+
+// Check if username already exists
+$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE username = '$username'");
+if($results->numRows() > 0) {
+	$wb->print_error($MESSAGE['USERS']['USERNAME_TAKEN'], $js_back, false);
+}
+
+// Check if the email already exists
+$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE email = '".$wb->add_slashes($email)."'");
+if($results->numRows() > 0) {
+	if(isset($MESSAGE['USERS']['EMAIL_TAKEN'])) {
+		$wb->print_error($MESSAGE['USERS']['EMAIL_TAKEN'], $js_back, false);
+	} else {
+		$wb->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back, false);
+	}
+}
+
+// MD5 supplied password
+$md5_password = md5($new_pass);
+
+// Inser the user into the database
+$query = "INSERT INTO ".TABLE_PREFIX."users (group_id,groups_id,active,username,password,display_name,email) VALUES ('$groups_id', '$groups_id', '$active', '$username','$md5_password','$display_name','$email')";
+$database->query($query);
+
+if($database->is_error()) {
+	// Error updating database
+	$message = $database->get_error();
+} else {
+	// Setup email to send
+	$mail_subject = 'Your login details...';
+	$mail_to = $email;
+	$mail_message = ''.
+'Hello '.$display_name.', 
+
+Your '.WEBSITE_TITLE.' login details are:
+Username: '.$username.'
+Password: '.$new_pass.'
+
+Your password has been set to the one above.
+
+If you have received this message in error, please delete it immediately.';
+
+	// Try sending the email
+	if($wb->mail(SERVER_EMAIL,$mail_to,$mail_subject,$mail_message)) { 
+		$display_form = false;
+		$wb->print_success($MESSAGE['FORGOT_PASS']['PASSWORD_RESET'], WB_URL.'/account/login.php');
+	} else {
+		$database->query("DELETE FROM ".TABLE_PREFIX."users WHERE username = '$username'");
+		$wb->print_error($MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'], $js_back, false);
+	}
+}
+
+?>

Property changes on: tags/2.7.0/wb/account/signup2.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/signup_form.php
===================================================================
--- tags/2.7.0/wb/account/signup_form.php	(nonexistent)
+++ tags/2.7.0/wb/account/signup_form.php	(revision 838)
@@ -0,0 +1,103 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+require_once(WB_PATH.'/include/captcha/captcha.php');
+
+?>
+<style type="text/css">
+.value_input input, .value_input text, .value_input select {
+	width: 300px;
+}
+<?php if(ENABLED_ASP) { ?>
+.nixhier { display:none; }
+<?php } ?>
+</style>
+
+<h1>&nbsp;<?php echo $TEXT['SIGNUP']; ?></h1>
+
+<form name="user" action="<?php echo WB_URL.'/account/signup.php'; ?>" method="post">
+
+<table cellpadding="5" cellspacing="0" border="0" width="90%">
+<tr>
+	<?php if(ENABLED_ASP) { // add some honeypot-fields
+	?>
+	<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
+	<p class="nixhier">
+	email-address:
+	<label for="email-address">Leave this field email-address blank:</label>
+	<input id="email-address" name="email-address" size="60" value="" /><br />
+	username (id):
+	<label for="name">Leave this field name blank:</label>
+	<input id="name" name="name" size="60" value="" /><br />
+	Full Name:
+	<label for="full_name">Leave this field full_name blank:</label>
+	<input id="full_name" name="full_name" size="60" value="" /><br />
+	</p>
+	<?php }
+	?>
+	<td width="180"><?php echo $TEXT['USERNAME']; ?>:</td>
+	<td class="value_input">
+		<input type="text" name="username" maxlength="30" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['DISPLAY_NAME']; ?> (<?php echo $TEXT['FULL_NAME']; ?>):</td>
+	<td class="value_input">
+		<input type="text" name="display_name" maxlength="255" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['EMAIL']; ?>:</td>
+	<td class="value_input">
+		<input type="text" name="email" maxlength="255" />
+	</td>
+</tr>
+<?php
+// Captcha
+if(ENABLED_CAPTCHA) {
+	?><tr>
+		<td class="field_title"><?php echo $TEXT['VERIFICATION']; ?>:</td>
+		<td><?php call_captcha(); ?></td>
+		</tr>
+	<?php
+}
+?>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="<?php echo $TEXT['SIGNUP']; ?>" />
+		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<br />
+&nbsp; 

Property changes on: tags/2.7.0/wb/account/signup_form.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/forgot_form.php
===================================================================
--- tags/2.7.0/wb/account/forgot_form.php	(nonexistent)
+++ tags/2.7.0/wb/account/forgot_form.php	(revision 838)
@@ -0,0 +1,147 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../pages/index.php');
+	exit(0);
+}
+
+// Create new database object
+$database = new database();
+
+// Check if the user has already submitted the form, otherwise show it
+if(isset($_POST['email']) AND $_POST['email'] != "") {
+	
+	$email = strip_tags($_POST['email']);
+	
+	// Check if the email exists in the database
+	$query = "SELECT user_id,username,display_name,email,last_reset,password FROM ".TABLE_PREFIX."users WHERE email = '".$wb->add_slashes($_POST['email'])."'";
+	$results = $database->query($query);
+	if($results->numRows() > 0) {
+	
+		// Get the id, username, email, and last_reset from the above db query
+		$results_array = $results->fetchRow();
+		
+		// Check if the password has been reset in the last 2 hours
+		$last_reset = $results_array['last_reset'];
+		$time_diff = mktime()-$last_reset; // Time since last reset in seconds
+		$time_diff = $time_diff/60/60; // Time since last reset in hours
+		if($time_diff < 2) {
+			
+			// Tell the user that their password cannot be reset more than once per hour
+			$message = $MESSAGE['FORGOT_PASS']['ALREADY_RESET'];
+			
+		} else {
+		
+			$old_pass = $results_array['password'];
+
+			// Generate a random password then update the database with it
+			$new_pass = '';
+			$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+			srand((double)microtime()*1000000);
+			$i = 0;
+			while ($i <= 7) {
+				$num = rand() % 33;
+				$tmp = substr($salt, $num, 1);
+				$new_pass = $new_pass . $tmp;
+				$i++;
+			}
+			$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".md5($new_pass)."', last_reset = '".mktime()."' WHERE user_id = '".$results_array['user_id']."'");
+			
+			if($database->is_error()) {
+				// Error updating database
+				$message = $database->get_error();
+			} else {
+				// Setup email to send
+				$mail_subject = 'Your login details...';
+				$mail_to = $email;
+				$mail_message = ''.
+'Hello '.$results_array["display_name"].', 
+
+Your '.WEBSITE_TITLE.' administration login details are:
+Username: '.$results_array["username"].'
+Password: '.$new_pass.'
+
+Your password has been reset to the one above.
+This means that your old password will no longer work.
+
+If you have received this message in error, please delete it immediately.';
+				// Try sending the email
+				if($wb->mail(SERVER_EMAIL,$mail_to,$mail_subject,$mail_message)) { 
+					$message = $MESSAGE['FORGOT_PASS']['PASSWORD_RESET'];
+					$display_form = false;
+				} else {
+					$database->query("UPDATE ".TABLE_PREFIX."users SET password = '".$old_pass."' WHERE user_id = '".$results_array['user_id']."'");
+					$message = $MESSAGE['FORGOT_PASS']['CANNOT_EMAIL'];
+				}
+			}
+		
+		}
+
+	} else {
+		// Email doesn't exist, so tell the user
+		$message = $MESSAGE['FORGOT_PASS']['EMAIL_NOT_FOUND'];
+	}
+	
+} else {
+	$email = '';
+}
+
+if(!isset($message)) {
+	$message = $MESSAGE['FORGOT_PASS']['NO_DATA'];
+	$message_color = '000000';
+} else {
+	$message_color = 'FF0000';
+}
+	
+?>
+<h1 style="text-align: center;"><?php echo $MENU['FORGOT']; ?></h1>
+
+<form name="forgot_pass" action="<?php echo WB_URL.'/account/forgot.php'; ?>" method="post">
+	<input type="hidden" name="url" value="{URL}" />
+		<table cellpadding="5" cellspacing="0" border="0" align="center" width="500">
+		<tr>
+			<td height="40" align="center" style="color: #<?php echo $message_color; ?>;" colspan="2">
+			<?php echo $message; ?>
+			</td>
+		</tr>
+		<?php if(!isset($display_form) OR $display_form != false) { ?>
+		<tr>
+			<td height="10" colspan="2"></td>
+		</tr>
+		<tr>
+			<td width="165" height="30" align="right"><?php echo $TEXT['EMAIL']; ?>:</td>
+			<td><input type="text" maxlength="255" name="email" value="<?php echo $email; ?>" style="width: 180px;" /></td>
+		</tr>
+		<tr height="30">
+			<td>&nbsp;</td>
+			<td><input type="submit" name="submit" value="<?php echo $TEXT['SEND_DETAILS']; ?>" style="width: 180px; font-size: 10px; color: #003366; border: 1px solid #336699; background-color: #DDDDDD; padding: 3px; text-transform: uppercase;"></td>
+		</tr>
+		<tr style="display: {DISPLAY_FORM}">
+			<td height="10" colspan="2"></td>
+		</tr>
+		<?php } ?>
+		</table>
+</form>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/forgot_form.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/login.php
===================================================================
--- tags/2.7.0/wb/account/login.php	(nonexistent)
+++ tags/2.7.0/wb/account/login.php	(revision 838)
@@ -0,0 +1,87 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once("../config.php");
+
+// Make sure the login is enabled
+if(!FRONTEND_LOGIN) {
+	if(INTRO_PAGE) {
+		header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
+		exit(0);
+	} else {
+		header('Location: '.WB_URL.'/index.php');
+		exit(0);
+	}
+}
+
+// Required page details
+$page_id = 0;
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', 0);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $TEXT['PLEASE_LOGIN']);
+define('MENU_TITLE', $TEXT['PLEASE_LOGIN']);
+define('VISIBILITY', 'public');
+// Set the page content include file
+define('PAGE_CONTENT', WB_PATH.'/account/login_form.php');
+
+require_once(WB_PATH.'/framework/class.login.php');
+
+// Create new login app
+$redirect = strip_tags((isset($_REQUEST['redirect'])) ? $_REQUEST['redirect'] : '');
+$thisApp = new Login(
+							array(
+									"MAX_ATTEMPS" => "3",
+									"WARNING_URL" => ADMIN_URL."/login/warning.html",
+									"USERNAME_FIELDNAME" => 'username',
+									"PASSWORD_FIELDNAME" => 'password',
+									"REMEMBER_ME_OPTION" => SMART_LOGIN,
+									"MIN_USERNAME_LEN" => "2",
+									"MIN_PASSWORD_LEN" => "2",
+									"MAX_USERNAME_LEN" => "30",
+									"MAX_PASSWORD_LEN" => "30",
+									"LOGIN_URL" => WB_URL."/account/login.php?redirect=" .$redirect,
+									"DEFAULT_URL" => WB_URL.PAGES_DIRECTORY."/index.php",
+									"TEMPLATE_DIR" => ADMIN_PATH."/login",
+									"TEMPLATE_FILE" => "template.html",
+									"FRONTEND" => true,
+									"FORGOTTEN_DETAILS_APP" => WB_URL."/account/forgot.php",
+									"USERS_TABLE" => TABLE_PREFIX."users",
+									"GROUPS_TABLE" => TABLE_PREFIX."groups",
+									"REDIRECT_URL" => $redirect
+							)
+					);
+
+// Set extra outsider var
+$globals[] = 'thisApp';
+
+// Include the index (wrapper) file
+require(WB_PATH.'/index.php');
+
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/login.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/details.php
===================================================================
--- tags/2.7.0/wb/account/details.php	(nonexistent)
+++ tags/2.7.0/wb/account/details.php	(revision 838)
@@ -0,0 +1,70 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../pages/index.php');
+	exit(0);
+}
+
+// Get entered values
+$display_name = $wb->add_slashes(strip_tags($wb->get_post('display_name')));
+$language = $wb->get_post_escaped('language');
+$timezone = $wb->get_post_escaped('timezone')*60*60;
+$date_format = $wb->get_post_escaped('date_format');
+$time_format = $wb->get_post_escaped('time_format');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET display_name = '$display_name', language = '$language', timezone = '$timezone', date_format = '$date_format', time_format = '$time_format' WHERE user_id = '".$wb->get_user_id()."'";
+$database->query($query);
+if($database->is_error()) {
+	$wb->print_error($database->get_error,'index.php',false);
+} else {
+	$wb->print_success($MESSAGE['PREFERENCES']['DETAILS_SAVED'], WB_URL.'/account/preferences.php');
+	$_SESSION['DISPLAY_NAME'] = $display_name;
+	$_SESSION['LANGUAGE'] = $language;
+	$_SESSION['TIMEZONE'] = $timezone;
+	// Update date format
+	if($date_format != '') {
+		$_SESSION['DATE_FORMAT'] = $date_format;
+		if(isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) { unset($_SESSION['USE_DEFAULT_DATE_FORMAT']); }
+	} else {
+		$_SESSION['USE_DEFAULT_DATE_FORMAT'] = true;
+		if(isset($_SESSION['DATE_FORMAT'])) { unset($_SESSION['DATE_FORMAT']); }
+	}
+	// Update time format
+	if($time_format != '') {
+		$_SESSION['TIME_FORMAT'] = $time_format;
+		if(isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) { unset($_SESSION['USE_DEFAULT_TIME_FORMAT']); }
+	} else {
+		$_SESSION['USE_DEFAULT_TIME_FORMAT'] = true;
+		if(isset($_SESSION['TIME_FORMAT'])) { unset($_SESSION['TIME_FORMAT']); }
+	}
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/details.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/signup.php
===================================================================
--- tags/2.7.0/wb/account/signup.php	(nonexistent)
+++ tags/2.7.0/wb/account/signup.php	(revision 838)
@@ -0,0 +1,83 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once('../config.php');
+
+if(!is_numeric(FRONTEND_SIGNUP)) {
+	if(INTRO_PAGE) {
+		header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
+		exit(0);
+	} else {
+		header('Location: '.WB_URL.'/index.php');
+		exit(0);
+	}
+}
+
+if(ENABLED_ASP && isset($_POST['username']) && ( // form faked? Check the honeypot-fields.
+	(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when'])) OR 
+	($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
+	(!isset($_POST['email-address']) OR $_POST['email-address']) OR
+	(!isset($_POST['name']) OR $_POST['name']) OR
+	(!isset($_POST['full_name']) OR $_POST['full_name'])
+)) {
+	exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+}
+
+// Load the language file
+if(!file_exists(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php')) {
+	exit('Error loading language file '.DEFAULT_LANGUAGE.', please check configuration');
+} else {
+	require_once(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php');
+	$load_language = false;
+}
+
+
+// Required page details
+$page_id = 0;
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', 0);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $TEXT['SIGNUP']);
+define('MENU_TITLE', $TEXT['SIGNUP']);
+define('MODULE', '');
+define('VISIBILITY', 'public');
+
+// Set the page content include file
+if(isset($_POST['username'])) {
+	define('PAGE_CONTENT', WB_PATH.'/account/signup2.php');
+} else {
+	define('PAGE_CONTENT', WB_PATH.'/account/signup_form.php');
+}
+
+// Set auto authentication to false
+$auto_auth = false;
+
+// Include the index (wrapper) file
+require(WB_PATH.'/index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/signup.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/logout.php
===================================================================
--- tags/2.7.0/wb/account/logout.php	(nonexistent)
+++ tags/2.7.0/wb/account/logout.php	(revision 838)
@@ -0,0 +1,49 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require("../config.php");
+
+if(isset($_COOKIE['REMEMBER_KEY'])) {
+	setcookie('REMEMBER_KEY', '', time()-3600, '/');
+}
+
+$_SESSION['USER_ID'] = null;
+$_SESSION['GROUP_ID'] = null;
+$_SESSION['GROUPS_ID'] = null;
+$_SESSION['USERNAME'] = null;
+$_SESSION['PAGE_PERMISSIONS'] = null;
+$_SESSION['SYSTEM_PERMISSIONS'] = null;
+$_SESSION = array();
+session_unset();
+unset($_COOKIE[session_name()]);
+session_destroy();
+
+if(INTRO_PAGE) {
+	header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
+} else {
+	header('Location: '.WB_URL.'/index.php');
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/logout.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/login_form.php
===================================================================
--- tags/2.7.0/wb/account/login_form.php	(nonexistent)
+++ tags/2.7.0/wb/account/login_form.php	(revision 838)
@@ -0,0 +1,107 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../pages/index.php');
+	exit(0);
+}
+
+if(defined('SMART_LOGIN') AND SMART_LOGIN == 'enabled') {
+	// Generate username field name
+	$username_fieldname = 'username_';
+	$password_fieldname = 'password_';
+	$salt = "abchefghjkmnpqrstuvwxyz0123456789";
+	srand((double)microtime()*1000000);
+	$i = 0;
+	while ($i <= 7) {
+		$num = rand() % 33;
+		$tmp = substr($salt, $num, 1);
+		$username_fieldname = $username_fieldname . $tmp;
+		$password_fieldname = $password_fieldname . $tmp;
+		$i++;
+	}
+} else {
+	$username_fieldname = 'username';
+	$password_fieldname = 'password';
+}
+
+?>
+<style>
+.value_input input, .value_input text, .value_input select {
+	width: 220px;
+}
+</style>
+
+<h1>&nbsp;Login</h1>
+&nbsp;<?php echo $thisApp->message; ?>
+<br />
+<br />
+
+<form name="login" action="<?php echo WB_URL.'/account/login.php'; ?>" method="post">
+<input type="hidden" name="username_fieldname" value="<?php echo $username_fieldname; ?>" />
+<input type="hidden" name="password_fieldname" value="<?php echo $password_fieldname; ?>" />
+<input type="hidden" name="redirect" value="<?php echo $thisApp->redirect_url;?>" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="90%">
+<tr>
+	<td width="100"><?php echo $TEXT['USERNAME']; ?>:</td>
+	<td class="value_input">
+		<input type="text" name="<?php echo $username_fieldname; ?>" maxlength="30" />
+		<script type="text/javascript" language="javascript">
+		document.login.<?php echo $username_fieldname; ?>.focus();
+		</script>
+	</td>
+</tr>
+<tr>
+	<td width="100"><?php echo $TEXT['PASSWORD']; ?>:</td>
+	<td class="value_input">
+		<input type="password" name="<?php echo $password_fieldname; ?>" maxlength="30" />
+	</td>
+</tr>
+<?php if($username_fieldname != 'username') { ?>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="checkbox" name="remember" id="remember" value="true" />
+		<label for="remember">
+			<?php echo $TEXT['REMEMBER_ME']; ?>
+		</label>
+	</td>
+</tr>
+<?php } ?>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="<?php echo $TEXT['LOGIN']; ?>" />
+		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+<br />
+
+<a href="<?php echo WB_URL; ?>/account/forgot.php"><?php echo $TEXT['FORGOTTEN_DETAILS']; ?></a>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/login_form.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/forgot.php
===================================================================
--- tags/2.7.0/wb/account/forgot.php	(nonexistent)
+++ tags/2.7.0/wb/account/forgot.php	(revision 838)
@@ -0,0 +1,59 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once('../config.php');
+
+// Required page details
+$page_id = 0;
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', 0);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $MENU['FORGOT']);
+define('MENU_TITLE', $MENU['FORGOT']);
+define('VISIBILITY', 'public');
+
+if(!FRONTEND_LOGIN) {
+	if(INTRO_PAGE) {
+		header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
+		exit(0);
+	} else {
+		header('Location: '.WB_URL.'/index.php');
+		exit(0);
+	}
+}
+
+// Set the page content include file
+define('PAGE_CONTENT', WB_PATH.'/account/forgot_form.php');
+
+// Set auto authentication to false
+$auto_auth = false;
+
+// Include the index (wrapper) file
+require(WB_PATH.'/index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/forgot.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/preferences.php
===================================================================
--- tags/2.7.0/wb/account/preferences.php	(nonexistent)
+++ tags/2.7.0/wb/account/preferences.php	(revision 838)
@@ -0,0 +1,71 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+require_once('../config.php');
+
+if(!FRONTEND_LOGIN) {
+	if(INTRO_PAGE) {
+		header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
+		exit(0);
+	} else {
+		header('Location: '.WB_URL.'/index.php');
+		exit(0);
+	}
+}
+
+require_once(WB_PATH.'/framework/class.wb.php');
+if (wb::is_authenticated()==false) {
+	header('Location: '.WB_URL.'/account/login.php');
+	exit(0);
+}
+
+// Required page details
+$page_id = 0;
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', 0);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $MENU['PREFERENCES']);
+define('MENU_TITLE', $MENU['PREFERENCES']);
+define('MODULE', '');
+define('VISIBILITY', 'public');
+
+// Set the page content include file
+if(isset($_POST['current_password']) AND isset($_POST['new_password'])) {
+	define('PAGE_CONTENT', WB_PATH.'/account/password.php');
+} elseif(isset($_POST['current_password']) AND isset($_POST['email'])) {
+	define('PAGE_CONTENT', WB_PATH.'/account/email.php');
+} elseif(isset($_POST['display_name'])) {
+	define('PAGE_CONTENT', WB_PATH.'/account/details.php');
+} else {
+	define('PAGE_CONTENT', WB_PATH.'/account/preferences_form.php');
+}
+
+// Include the index (wrapper) file
+require(WB_PATH.'/index.php');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/preferences.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/password.php
===================================================================
--- tags/2.7.0/wb/account/password.php	(nonexistent)
+++ tags/2.7.0/wb/account/password.php	(revision 838)
@@ -0,0 +1,69 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Get the values entered
+$current_password = $_POST['current_password'];
+$new_password = $_POST['new_password'];
+$new_password2 = $_POST['new_password2'];
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Get existing password
+$database = new database();
+$query = "SELECT user_id FROM ".TABLE_PREFIX."users WHERE user_id = '".$wb->get_user_id()."' AND password = '".md5($current_password)."'";
+$results = $database->query($query);
+
+// Validate values
+if($results->numRows() == 0) {
+	$wb->print_error($MESSAGE['PREFERENCES']['CURRENT_PASSWORD_INCORRECT'], $js_back, false);
+}
+if(strlen($new_password) < 3) {
+	$wb->print_error($MESSAGE['USERS']['PASSWORD_TOO_SHORT'], $js_back, false);
+}
+if($new_password != $new_password2) {
+	$wb->print_error($MESSAGE['USERS']['PASSWORD_MISMATCH'], $js_back, false);
+}
+
+// MD5 the password
+$md5_password = md5($new_password);
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET password = '$md5_password' WHERE user_id = '".$wb->get_user_id()."'";
+$database->query($query);
+if($database->is_error()) {
+	$wb->print_error($database->get_error, 'index.php', false);
+} else {
+	$wb->print_success($MESSAGE['PREFERENCES']['PASSWORD_CHANGED'], WB_URL.'/account/preferences.php');
+}
+
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/password.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/email.php
===================================================================
--- tags/2.7.0/wb/account/email.php	(nonexistent)
+++ tags/2.7.0/wb/account/email.php	(revision 838)
@@ -0,0 +1,65 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+// Get the values entered
+$current_password = $wb->get_post('current_password');
+$email = $wb->get_post('email');
+
+// Create a javascript back link
+$js_back = "javascript: history.go(-1);";
+
+// Get existing password
+$database = new database();
+$query = "SELECT user_id FROM ".TABLE_PREFIX."users WHERE user_id = '".$wb->get_user_id()."' AND password = '".md5($current_password)."'";
+$results = $database->query($query);
+
+// Validate values
+if($results->numRows() == 0) {
+	$wb->print_error($MESSAGE['PREFERENCES']['OLD_PASSWORD_INCORRECT'], $js_back, false);
+}
+// Validate values
+if(!$wb->validate_email($email)) {
+	$wb->print_error($MESSAGE['USERS']['INVALID_EMAIL'], $js_back, false);
+}
+
+$email = $wb->add_slashes($email);
+
+// Update the database
+$database = new database();
+$query = "UPDATE ".TABLE_PREFIX."users SET email = '$email' WHERE user_id = '".$wb->get_user_id()."' AND password = '".md5($current_password)."'";
+$database->query($query);
+if($database->is_error()) {
+	$wb->print_error($database->get_error,'index.php', false);
+} else {
+	$wb->print_success($MESSAGE['PREFERENCES']['EMAIL_UPDATED'], WB_URL.'/account/preferences.php');
+	$_SESSION['EMAIL'] = $email;
+}
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/email.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/preferences_form.php
===================================================================
--- tags/2.7.0/wb/account/preferences_form.php	(nonexistent)
+++ tags/2.7.0/wb/account/preferences_form.php	(revision 838)
@@ -0,0 +1,231 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+?>
+
+<h1>&nbsp;<?php echo $HEADING['MY_SETTINGS']; ?></h1>
+
+<form name="user" action="<?php echo WB_URL.'/account/preferences.php'; ?>" method="post" style="margin-bottom: 5px;">
+<input type="hidden" name="user_id" value="{USER_ID}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="97%">
+	<td width="140"><?php echo $TEXT['DISPLAY_NAME']; ?>:</td>
+	<td class="value_input">
+		<input type="text" name="display_name" style="width: 380px;" maxlength="255" value="<?php echo $wb->get_display_name(); ?>" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['LANGUAGE']; ?>:</td>
+	<td>
+		<select name="language" style="width: 380px;">
+		<?php
+		// Insert language values
+		if($handle = opendir(WB_PATH.'/languages/')) {
+		   while (false !== ($file = readdir($handle))) {
+				if($file != '.' AND $file != '..' AND $file != '.svn' AND $file != 'index.php') {
+					// Get language name
+					require(WB_PATH.'/languages/'.$file);
+					// Check if it is selected
+					if(LANGUAGE == $language_code) {
+						?>
+						<option value="<?php echo $language_code; ?>" selected><?php echo $language_name.' ('.$language_code.')'; ?></option>
+						<?php
+					} else {
+						?>
+						<option value="<?php echo $language_code; ?>"><?php echo $language_name.' ('.$language_code.')'; ?></option>
+						<?php
+					}
+				}
+			}
+			// Restore language to original file
+			require(WB_PATH.'/languages/'.LANGUAGE.'.php');
+		}
+		?>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['TIMEZONE']; ?>:</td>
+	<td>
+		<select name="timezone" style="width: 380px;">
+			<option value="-20"><?php echo $TEXT['PLEASE_SELECT']; ?>...</option>
+			<?php
+			// Insert default timezone values
+			require_once(ADMIN_PATH.'/interface/timezones.php');
+			foreach($TIMEZONES AS $hour_offset => $title) {
+				if($wb->get_timezone() == $hour_offset*60*60) {
+					?>
+					<option value="<?php echo $hour_offset; ?>" selected><?php echo $title; ?></option>
+					<?php
+				} else {
+					?>
+					<option value="<?php echo $hour_offset; ?>"><?php echo $title; ?></option>
+					<?php
+				}
+			}
+			?>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['DATE_FORMAT']; ?>:</td>
+	<td>
+		<select name="date_format" style="width: 98%;">
+			<option value="">Please select...</option>
+			<?php
+			// Insert date format list
+			$user_time = true;
+			require_once(ADMIN_PATH.'/interface/date_formats.php');
+			foreach($DATE_FORMATS AS $format => $title) {
+				$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+				if($format != 'system_default') {
+					$value = $format;
+				} else {
+					$value = '';
+				}
+				if(DATE_FORMAT == $format AND !isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
+					$selected = ' selected';
+				} elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
+					$selected = ' selected';
+				} else {
+					$selected = '';
+				}
+				echo '<option value="'.$value.'"'.$selected.'>'.$title.'</option>';
+			}
+			?>>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['TIME_FORMAT']; ?>:</td>
+	<td>
+		<select name="time_format" style="width: 98%;">
+			<option value="">Please select...</option>
+			<?php
+			// Insert time format list
+			$user_time = true;
+			require_once(ADMIN_PATH.'/interface/time_formats.php');
+			foreach($TIME_FORMATS AS $format => $title) {
+				$format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
+				if($format != 'system_default') {
+					$value = $format;
+				} else {
+					$value = '';
+				}
+				if(TIME_FORMAT == $format AND !isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
+					$selected = ' selected';
+				} elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
+					$selected = ' selected';
+				} else {
+					$selected = '';
+				}
+				echo '<option value="'.$value.'"'.$selected.'>'.$title.'</option>';
+			}
+			?>
+		</select>
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="<?php echo $TEXT['SAVE']; ?>" />
+		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+
+<h1>&nbsp;<?php echo $HEADING['MY_EMAIL']; ?></h1>
+
+<form name="email" action="<?php echo WB_URL.'/account/preferences.php'; ?>" method="post" style="margin-bottom: 5px;">
+<input type="hidden" name="user_id" value="{USER_ID}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="97%">
+<tr>
+	<td width="140"><?php echo $TEXT['CURRENT_PASSWORD']; ?>:</td>
+	<td>
+		<input type="password" name="current_password" style="width: 380px;" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['EMAIL']; ?>:</td>
+	<td class="value_input">
+		<input type="text" name="email" style="width: 380px;" maxlength="255" value="<?php echo $wb->get_email(); ?>" />
+	</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="<?php echo $TEXT['SAVE']; ?>" />
+		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
+	</td>
+</tr>
+</table>
+
+</form>
+
+
+<h1>&nbsp;<?php echo $HEADING['MY_PASSWORD']; ?></h1>
+
+<form name="user" action="<?php echo WB_URL.'/account/preferences.php'; ?>" method="post">
+<input type="hidden" name="user_id" value="{USER_ID}" />
+
+<table cellpadding="5" cellspacing="0" border="0" width="97%">
+<tr>
+	<td width="140"><?php echo $TEXT['CURRENT_PASSWORD']; ?>:</td>
+	<td>
+		<input type="password" name="current_password" style="width: 380px;" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['NEW_PASSWORD']; ?>:</td>
+	<td>
+		<input type="password" name="new_password" style="width: 380px;" />
+	</td>
+</tr>
+<tr>
+	<td><?php echo $TEXT['RETYPE_NEW_PASSWORD']; ?>:</td>
+	<td>
+		<input type="password" name="new_password2" style="width: 380px;" />
+	</td>
+</tr>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td>
+		<input type="submit" name="submit" value="<?php echo $TEXT['SAVE']; ?>" />
+		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
+	</td>
+</tr>
+</table>
+
+</form>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/preferences_form.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/index.php
===================================================================
--- tags/2.7.0/wb/account/index.php	(nonexistent)
+++ tags/2.7.0/wb/account/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/account/stylesheet.css
===================================================================
--- tags/2.7.0/wb/account/stylesheet.css	(nonexistent)
+++ tags/2.7.0/wb/account/stylesheet.css	(revision 838)
@@ -0,0 +1,82 @@
+body,td,th,input,textarea {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #FFFFFF;
+	margin: 0px;
+}
+form {
+	margin: 0;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #003366;
+	height: 1px;
+}
+h1 {
+	text-align: center;
+	font-size: 20px;
+	color: #003366;
+	text-transform: uppercase;
+}
+h2 {
+	font-size: 15px;
+	color: #336699;
+	margin: 5px 0px 5px 0px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+.note {
+	color: #666666;
+	font-size: 10px;
+}
+.menu {
+	margin: 0;
+	padding: 0;
+	padding-top: 10px;
+	padding-bottom: 4px;
+	padding-left: 8px;
+}
+.menu li {
+	list-style-type: none;
+	display: inline;
+	padding-right: 1px;
+}
+.menu a, .menu a:link, .menu a:active, .menu a:visited {
+	border-bottom: 0;
+	padding: 4px 5px 4px 5px;
+	color: #003366;
+}
+.menu a:hover {
+	text-decoration: none;
+	color: #336699;
+}
+.current a, .current a:link, .current a:active, .current a:visited {
+	background-color: #FFFFFF;
+	color: #000000;
+}
+.content {
+	background-color: #FFFFFF;
+	padding: 20px;
+	height: 280px;
+	width: 750px;
+	text-align: left;
+	vertical-align: top;
+}
+.row_a {
+	background-color: #EEEEEE;
+}
+.row_b {
+	background-color: #DDDDDD;
+}
+.hide {
+	display: none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/account/stylesheet.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/index.php
===================================================================
--- tags/2.7.0/wb/index.php	(nonexistent)
+++ tags/2.7.0/wb/index.php	(revision 838)
@@ -0,0 +1,108 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$starttime = array_sum(explode(" ",microtime()));
+
+// Include config file
+require_once(dirname(__FILE__).'/config.php');
+
+// Check if the config file has been set-up
+if(!defined('WB_PATH')) {
+	header("Location: install/index.php");
+	exit(0);
+}
+
+require_once(WB_PATH.'/framework/class.frontend.php');
+// Create new frontend object
+$wb = new frontend();
+
+// Figure out which page to display
+// Stop processing if intro page was shown
+$wb->page_select() or die();
+
+// Collect info about the currently viewed page
+// and check permissions
+$wb->get_page_details();
+
+// Collect general website settings
+$wb->get_website_settings();
+
+// Load functions available to templates, modules and code sections
+// also, set some aliases for backward compatibility
+require(WB_PATH.'/framework/frontend.functions.php');
+
+// redirect menu-link
+$this_page_id = PAGE_ID;
+$query_this_module = $database->query("SELECT module, block FROM ".TABLE_PREFIX."sections WHERE page_id = '$this_page_id' AND module = 'menu_link'");
+if($query_this_module->numRows() == 1) { // This is a menu_link. Get link of target-page and redirect
+	// get target_page_id
+	$table = TABLE_PREFIX.'mod_menu_link';
+	$query_tpid = $database->query("SELECT target_page_id, anchor, extern FROM $table WHERE page_id = '$this_page_id'");
+	if($query_tpid->numRows() == 1) {
+		$res=$query_tpid->fetchRow();
+		$target_page_id = $res['target_page_id'];
+		$anchor = $res['anchor'];
+		$extern = $res['extern'];
+		if($anchor != '0') $anchor = ''.$anchor;
+		else $anchor = FALSE;
+		if($target_page_id == -1) {
+			if($extern!='') {
+				header("Location: $extern".($anchor?'#'.$anchor:''));
+			}
+		} else {
+			// get link of target-page
+			$table = TABLE_PREFIX.'pages';
+			$query_link = $database->query("SELECT link FROM $table WHERE page_id = '$target_page_id'");
+			if($query_link->numRows() == 1) {
+				$res=$query_link->fetchRow();
+				$target_page_link = $res['link'];
+				// redirect
+				header('Location: '.WB_URL.PAGES_DIRECTORY.$target_page_link.PAGE_EXTENSION.($anchor?'#'.$anchor:''));
+				exit;
+			}
+		}
+	}
+}
+
+if(file_exists(WB_PATH .'/modules/output_filter/filter-routines.php')) {
+	// include the output filter module routines
+	@require_once(WB_PATH .'/modules/output_filter/filter-routines.php');
+	
+	if(function_exists('filter_frontend_output')) {
+		// store output in variable for filtering
+		@ob_start();
+		require(WB_PATH.'/templates/'.TEMPLATE.'/index.php');
+		$frontend_output = ob_get_contents();
+		@ob_end_clean();
+		// Display the filtered output on the frontend
+		echo filter_frontend_output($frontend_output);
+		die;
+	}
+}	
+
+// Display the template (no output filtering)
+require(WB_PATH.'/templates/'.TEMPLATE.'/index.php');
+
+?>

Property changes on: tags/2.7.0/wb/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/blank/index.php
===================================================================
--- tags/2.7.0/wb/templates/blank/index.php	(nonexistent)
+++ tags/2.7.0/wb/templates/blank/index.php	(revision 838)
@@ -0,0 +1,33 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+page_content();
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/blank/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/blank/info.php
===================================================================
--- tags/2.7.0/wb/templates/blank/info.php	(nonexistent)
+++ tags/2.7.0/wb/templates/blank/info.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$template_directory = 'blank';
+$template_name = 'Blank Template';
+$template_version = '2.6';
+$template_platform = '2.6.x';
+$template_author = 'Ryan Djurovich';
+$template_license = 'GNU General Public License';
+$template_description = 'This template is for use on page where you do not want anything wrapping the content';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/blank/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/screen.css
===================================================================
--- tags/2.7.0/wb/templates/allcss/screen.css	(nonexistent)
+++ tags/2.7.0/wb/templates/allcss/screen.css	(revision 838)
@@ -0,0 +1,154 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #F0F0F0;
+	background-image: url(background.jpg);
+	margin: 0;
+}
+a:link, a:visited, a:active {
+	color: #660033;
+	text-decoration: none;
+}
+a:hover {
+	color: #993366;
+	text-decoration: none;
+}
+hr {
+	margin: 5px 0px 5px 0px;
+	color: #660033;
+	border: 0;
+	border-top: 1px solid #660033;
+	height: 1px;
+	width: 580px;
+}
+h1 {
+	font-size: 16px;
+	color: #993366;
+	text-align: left;
+	margin: 8px 2px 8px 2px;
+}
+form {
+	margin: 0;
+}
+.main {
+	width: 750px;
+	margin: auto;
+	padding: 0;
+	background-color: #FFFFFF;
+}
+.banner, .search_box {
+	height: 80px;
+	background-image: url(header.jpg);
+	background-repeat: repeat-x;
+	font-size: 20px;
+	font-weight: bold;
+	color: #FFFFFF;
+	text-align: center;
+	padding-top: 20px;
+}
+.banner {
+	width: 530px;
+	padding-left: 20px;
+	float: left;
+	text-align: left;
+}
+.search_box {
+	float: right;
+	clear: right;
+	width: 200px;
+}
+.search_string {
+	width: 100px;
+	height: 16px;
+	font-size: 10px;
+	vertical-align: middle;
+}
+.search_submit {
+	width: 50px;
+	height: 22px;
+	font-size: 10px;
+	vertical-align: middle;
+}
+.highlight {
+	background-color: #D0D0D0;
+}
+.banner a {
+	color: #FFFFFF;
+}
+.menu {
+	float: left;
+	width: 140px;
+	margin: 10px;
+	margin-top: 3px;
+}
+.menu ul, .menu li {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	margin-bottom: 5px;
+}
+.menu ul ul {
+	padding-left: 8px;
+}
+.menu a:link, .menu a:visited, .menu a:active, .menu a:hover {
+	display: block;
+	padding: 2px;
+}
+.menu_default a:link, .menu_default a:visited, .menu_default a:active {
+	border-bottom: 1px dashed #999999;
+}
+.menu_default a:hover {
+	border-bottom: 1px dashed #333333;
+}
+
+.menu_current  {
+	border-bottom: 1px dashed #999999;
+	font-weight:bold;
+}
+
+.login_table {
+	border: 1px solid #D0D0D0;
+	margin-top: 20px;
+	margin-bottom: 5px;
+	text-align: center;
+	padding-bottom: 3px;
+}
+.login_table h1 {
+	color: #660033;
+	font-size: 12px;
+	text-transform: uppercase;
+	font-weight: bold;
+	text-align: center;
+	margin: 5px 0px 5px 0px;
+}
+.login_table input {
+	text-transform: uppercase;
+	font-size: 10px;
+	margin: 5px 0px 1px 0px;
+	width: 100px;
+}
+.content {
+	margin-left: 150px;
+	padding: 4px 10px 14px 10px;
+	text-align: justify;
+	clear: right;
+}
+.footer {
+	background-color: #FFFFFF;
+	clear: both;
+	height: 20px;
+	background-image: url(footer.jpg);
+	background-repeat: repeat-x;
+	font-size: 10px;
+	color: #666666;
+	text-align: center;
+	line-height: 18px;
+}
+.powered_by {
+	text-align: center;
+	font-size: 10px;
+	padding-top: 2px;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/allcss/screen.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/index.php
===================================================================
--- tags/2.7.0/wb/templates/allcss/index.php	(nonexistent)
+++ tags/2.7.0/wb/templates/allcss/index.php	(revision 838)
@@ -0,0 +1,125 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title><?php page_title(); ?></title>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php if(defined('DEFAULT_CHARSET')) { echo DEFAULT_CHARSET; } else { echo 'utf-8'; }?>" />
+<meta name="description" content="<?php page_description(); ?>" />
+<meta name="keywords" content="<?php page_keywords(); ?>" />
+<link href="<?php echo TEMPLATE_DIR; ?>/screen.css" rel="stylesheet" type="text/css" media="screen" />
+<link href="<?php echo TEMPLATE_DIR; ?>/print.css" rel="stylesheet" type="text/css" media="print" />
+<?php
+// this allows to include the optional module files (frontend.css, frontend.js) into the head section
+if(function_exists('register_frontend_modfiles')) {
+  register_frontend_modfiles('css');
+  register_frontend_modfiles('js');
+} ?>
+<?php 
+// this allows to add custom information to the head section of your template (WB-->Settings-->Website Header)
+echo WEBSITE_HEADER; 
+?>
+</head>
+<body>
+
+<div class="main">
+	
+	<div class="banner">
+		<a href="<?php echo WB_URL; ?>/" target="_top"><?php echo WEBSITE_TITLE; ?></a>
+		<font color="#D0D0D0">| <?php echo PAGE_TITLE; ?></font>
+	</div>
+	
+	<div class="search_box">
+		<?php if(SHOW_SEARCH) { ?>
+		<form name="search" action="<?php echo WB_URL.'/search/index.php'; ?>" method="get">
+		<input type="text" name="string" class="search_string" />
+		<input type="submit" name="submit" value="<?php echo $TEXT['SEARCH']; ?>" class="search_submit" />
+		</form>
+		<?php } ?>
+	</div>
+	
+	<?php
+	// Only show menu items if we are supposed to
+	if(SHOW_MENU) {
+	?>	
+	<div class="menu">
+		<?php 
+		show_menu();
+		
+		if(FRONTEND_LOGIN == 'enabled' AND VISIBILITY != 'private' AND $wb->get_session('USER_ID') == '') {
+		?>
+		<form name="login" action="<?php echo LOGIN_URL; ?>" method="post" class="login_table">
+			<h1><?php echo $TEXT['LOGIN']; ?></h1>
+			<?php echo $TEXT['USERNAME']; ?>:
+			<input type="text" name="username" style="text-transform: lowercase;" />
+			<?php echo $TEXT['PASSWORD']; ?>:
+			<input type="password" name="password" />
+			<input type="submit" name="submit" value="<?php echo $TEXT['LOGIN']; ?>" style="margin-top: 3px; text-transform: uppercase;" />
+			<a href="<?php echo FORGOT_URL; ?>"><?php echo $TEXT['FORGOT_DETAILS']; ?></a>
+				<?php if(is_numeric(FRONTEND_SIGNUP)) { ?>
+					<a href="<?php echo SIGNUP_URL; ?>"><?php echo $TEXT['SIGNUP']; ?></a>
+				<?php } ?>
+		</form>
+		<?php
+		} elseif(FRONTEND_LOGIN == 'enabled' AND is_numeric($wb->get_session('USER_ID'))) {
+		?>
+		<form name="logout" action="<?php echo LOGOUT_URL; ?>" method="post" class="login_table">
+			<h1><?php echo $TEXT['LOGGED_IN']; ?></h1>
+			<?php echo $TEXT['WELCOME_BACK']; ?>, <?php echo $wb->get_display_name(); ?>
+			<br />
+			<input type="submit" name="submit" value="<?php echo $MENU['LOGOUT']; ?>" />
+			<br />
+			<a href="<?php echo PREFERENCES_URL; ?>"><?php echo $MENU['PREFERENCES']; ?></a>
+			<a href="<?php echo ADMIN_URL; ?>/index.php"><?php echo $TEXT['ADMINISTRATION']; ?></a>
+		</form>
+		<?php
+		}
+		?>
+	</div>
+	<?php } ?>
+	
+	<div class="content">
+		<?php page_content(); ?>
+	</div>
+	
+	<div class="footer">
+		<?php page_footer(); ?>
+	</div>
+	
+</div>
+
+<div class="powered_by">
+	Powered by <a href="http://www.websitebaker.org" target="_blank">Website Baker</a>
+</div>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/allcss/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/info.php
===================================================================
--- tags/2.7.0/wb/templates/allcss/info.php	(nonexistent)
+++ tags/2.7.0/wb/templates/allcss/info.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$template_directory = 'allcss';
+$template_name = 'All CSS';
+$template_version = '2.6';
+$template_platform = '2.6.x';
+$template_author = 'Ryan Djurovich';
+$template_license = 'GNU General Public License';
+$template_description = 'This template is designed with one goal in mind: to completely control lay-out with css. In case you were wondering, that is where the name came from.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/allcss/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/print.css
===================================================================
--- tags/2.7.0/wb/templates/allcss/print.css	(nonexistent)
+++ tags/2.7.0/wb/templates/allcss/print.css	(revision 838)
@@ -0,0 +1,71 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #FFFFFF;
+	margin: 0px;
+}
+a:link, a:visited, a:active {
+	color: #660033;
+	text-decoration: none;
+}
+a:hover {
+	color: #993366;
+	text-decoration: none;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #660033;
+	height: 1px;
+	width: 100%;
+}
+h1 {
+	font-size: 15px;
+	color: #993366;
+	margin: 5px 0px 5px 0px;
+}
+form {
+	margin: 0;
+}
+.main {
+	width: 100%;
+	margin: 0;
+	padding: 0;
+}
+.banner {
+	font-size: 20px;
+	font-weight: bold;
+	color: #FFFFFF;
+	padding-bottom: 20px;
+	text-align: center;
+}
+.search_box {
+	display: none;
+}
+.menu {
+	display: none;
+}
+.menu ul, .menu li {
+	display: none;
+}
+.login_table {
+	display: none;
+}
+.content {
+	margin: 0;
+	text-align: justify;
+}
+.footer {
+	clear: both;
+	height: 20px;
+	background: #FFFFFF;
+	font-size: 10px;
+	color: #666666;
+	text-align: center;
+	padding-top: 20px;
+}
+.powered_by {
+	display: none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/allcss/print.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/header.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/allcss/header.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/footer.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/allcss/footer.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/allcss/background.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/allcss/background.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/index.php
===================================================================
--- tags/2.7.0/wb/templates/round/index.php	(nonexistent)
+++ tags/2.7.0/wb/templates/round/index.php	(revision 838)
@@ -0,0 +1,241 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title><?php page_title(); ?></title>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php if(defined('DEFAULT_CHARSET')) { echo DEFAULT_CHARSET; } else { echo 'utf-8'; }?>" />
+<meta name="description" content="<?php page_description(); ?>" />
+<meta name="keywords" content="<?php page_keywords(); ?>" />
+<link href="<?php echo TEMPLATE_DIR; ?>/screen.css" rel="stylesheet" type="text/css" media="screen" />
+<link href="<?php echo TEMPLATE_DIR; ?>/print.css" rel="stylesheet" type="text/css" media="print" />
+<?php
+// this allows to include the optional module files (frontend.css, frontend.js) into the head section
+if(function_exists('register_frontend_modfiles')) {
+  register_frontend_modfiles('css');
+  register_frontend_modfiles('js');
+} ?>
+<?php 
+// this allows to add custom information to the head section of your template (WB-->Settings-->Website Header)
+echo WEBSITE_HEADER; 
+?>
+</head>
+<body>
+
+<table cellpadding="0" cellspacing="0" border="0" align="center" class="main" width="750">
+<tr>
+	<td colspan="2" class="header" height="80">
+		<a href="<?php echo WB_URL; ?>"><img src="<?php echo TEMPLATE_DIR; ?>/banner.jpg" border="0" width="750" height="80" alt="<?php page_title('', '[WEBSITE_TITLE]'); ?>" /></a>
+	</td>
+</tr>
+<tr>
+	<?php
+	// Only show menu items if we are supposed to
+	if(SHOW_MENU) {
+	?>	
+	<td style="padding: 10px; background-color: #FFFFFF;" valign="top">
+		<table cellpadding="0" cellspacing="0" border="0" width="150" align="center" class="menu">
+		<tr>
+			<td class="border">
+				<img src="<?php echo TEMPLATE_DIR; ?>/menu_top.gif" border="0" alt="" />
+			</td>
+		</tr>
+		<tr>
+			<td width="170">
+				<?php show_menu(); ?>
+			</td>
+		</tr>
+		<tr>
+			<td class="border">
+				<img src="<?php echo TEMPLATE_DIR; ?>/menu_bottom.gif" border="0" alt="" />
+			</td>
+		</tr>
+		</table>
+		
+		<?php if(SHOW_SEARCH) { ?>
+		<form name="search" action="<?php echo WB_URL.'/search/index.php'; ?>" method="get">
+			<table cellpadding="0" cellspacing="0" border="0" width="150" align="center" style="margin-top: 10px;">
+				<tr>
+					<td class="border">
+						<img src="<?php echo TEMPLATE_DIR; ?>/menu_top.gif" border="0" alt="" />
+					</td>
+				</tr>
+				<tr>
+					<td class="login">
+						<input type="text" name="string" />
+					</td>
+				</tr>
+				<tr>
+					<td class="login">
+						<input type="submit" name="submit" value="<?php echo $TEXT['SEARCH']; ?>" />
+					</td>
+				</tr>
+				<tr>
+					<td class="border">
+						<img src="<?php echo TEMPLATE_DIR; ?>/menu_bottom.gif" border="0" alt="" />
+					</td>
+				</tr>
+			</table>
+		</form>
+		<?php } ?>
+		
+		<?php
+		if(FRONTEND_LOGIN AND !$wb->is_authenticated()) {
+		?>
+		<form name="login" action="<?php echo LOGIN_URL; ?>" method="post">
+			
+			<table cellpadding="0" cellspacing="0" border="0" width="150" align="center" style="margin-top: 10px;">
+			<tr>
+				<td class="border">
+					<img src="<?php echo TEMPLATE_DIR; ?>/menu_top.gif" border="0" alt="" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login" style="text-transform: uppercase;">
+					<b><?php echo $TEXT['LOGIN']; ?></b>
+				</td>
+			</tr>
+			<tr>
+				<td class="login" style="text-align: left;">
+					<?php echo $TEXT['USERNAME']; ?>:
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<input type="text" name="username" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login" style="text-align: left;">
+					<?php echo $TEXT['PASSWORD']; ?>:
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<input type="password" name="password" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<input type="submit" name="submit" value="<?php echo $TEXT['LOGIN']; ?>" style="margin-top: 3px; text-transform: uppercase;" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<a href="<?php echo FORGOT_URL; ?>"><?php echo $TEXT['FORGOT_DETAILS']; ?></a>
+					<?php if(is_numeric(FRONTEND_SIGNUP)) { ?>
+						<a href="<?php echo SIGNUP_URL; ?>"><?php echo $TEXT['SIGNUP']; ?></a>
+					<?php } ?>
+				</td>
+			</tr>
+			<tr>
+				<td class="border">
+					<img src="<?php echo TEMPLATE_DIR; ?>/menu_bottom.gif" border="0" alt="" />
+				</td>
+			</tr>
+			</table>
+		
+		</form>
+		<?php
+		} elseif(FRONTEND_LOGIN AND $wb->is_authenticated()) {
+		?>
+		<form name="logout" action="<?php echo LOGOUT_URL; ?>" method="post">
+			
+			<table cellpadding="0" cellspacing="0" border="0" width="150" align="center" style="margin-top: 10px;">
+			<tr>
+				<td class="border">
+					<img src="<?php echo TEMPLATE_DIR; ?>/menu_top.gif" border="0" alt="" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login" style="text-transform: uppercase;">
+					<b><?php echo $TEXT['LOGGED_IN']; ?></b>
+				</td>
+			</tr>
+			<tr>
+				<td class="login" style="padding-top: 15px; padding-bottom: 15px;">
+					<?php echo $TEXT['WELCOME_BACK']; ?>, <?php echo $wb->get_display_name(); ?>
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<input type="submit" name="submit" value="<?php echo $MENU['LOGOUT']; ?>" style="margin-top: 3px; text-transform: uppercase;" />
+				</td>
+			</tr>
+			<tr>
+				<td class="login">
+					<a href="<?php echo PREFERENCES_URL; ?>"><?php echo $MENU['PREFERENCES']; ?></a>
+				</td>
+			</tr>
+			<tr>
+				<td class="border">
+					<img src="<?php echo TEMPLATE_DIR; ?>/menu_bottom.gif" border="0" alt="" />
+				</td>
+			</tr>
+			</table>
+		
+		</form>
+		<?php
+		}
+		?>
+	</td>
+	<?php } ?>
+	<td class="content" width="600" rowspan="2">
+		<?php page_content(); ?>
+	</td>
+</tr>
+<tr>
+	<?php
+	// Only show menu items if we are supposed to
+	if(defined('SHOW_MENU') AND SHOW_MENU == true) {
+	?>	
+	<td height="20" width="155" valign="bottom" class="powered_by">
+		<a href="http://www.websitebaker.org/" target="_blank">
+			<img src="<?php echo TEMPLATE_DIR; ?>/powered.jpg" border="0" alt="Powered By Website Baker" />
+		</a>
+	</td>
+	<?php } ?>
+</tr>
+<tr>
+	<td colspan="2" class="border">
+		<img src="<?php echo TEMPLATE_DIR; ?>/footer.png" border="0" alt="" />
+	</td>
+</tr>
+<tr>
+	<td colspan="2" class="footer">
+		<?php page_footer(); ?>
+	</td>
+</tr>
+</table>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/round/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/info.php
===================================================================
--- tags/2.7.0/wb/templates/round/info.php	(nonexistent)
+++ tags/2.7.0/wb/templates/round/info.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$template_directory = 'round';
+$template_name = 'Round';
+$template_version = '2.6';
+$template_platform = '2.6.x';
+$template_author = 'Ryan Djurovich';
+$template_license = 'GNU General Public License';
+$template_description = 'Default template for Website Baker 2.2.x. Simular to the box template, but with rounded edges.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/round/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/screen.css
===================================================================
--- tags/2.7.0/wb/templates/round/screen.css	(nonexistent)
+++ tags/2.7.0/wb/templates/round/screen.css	(revision 838)
@@ -0,0 +1,120 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #003366;
+	background-image: url(background.jpg);
+	background-repeat: repeat-x;
+	margin: 10px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	color: #336699;
+	text-decoration: none;
+}
+hr {
+	margin: 15px 0px 15px 0px;
+	color: #003366;
+	height: 1px;
+	width: 100%;
+}
+h1 {
+	font-size: 18px;
+	color: #003366;
+	margin: 5px 0px 5px 0px;
+}
+h2 {
+	font-size: 15px;
+	color: #336699;
+	margin: 15px 0px 5px 0px;
+}
+form {
+	margin: 0;
+}
+.header {
+	width: 750px;
+	height: 80px;
+	background-color: #FFFFFF;
+	vertical-align: top;
+}
+.menu {
+	vertical-align: top;
+	background-color: #FFFFFF;
+	width: 170px;
+	padding: 0px;
+}
+.menu ul, .menu li{
+	list-style-type: none;
+	margin: 0;
+	padding: 0;
+}
+.menu ul {
+	border-bottom: 0px;
+	background-color: #003366;
+}
+.menu ul ul {
+	padding-left: 10px;
+}
+.menu a:link, .menu a:visited, .menu a:active {
+	padding: 4px 10px 4px 10px;
+	color: #FFFFFF;
+	display: block;
+	background-color: #003366;
+	text-decoration: none;
+}
+.menu a:hover {
+	background-color: #336699;
+	text-decoration: none;
+}
+.menu_current {
+	font-weight: bold;
+}
+.highlight {
+	background-color: #D0D0D0;
+}
+.border {
+	font-size: 1px;
+	height: 10px;
+}
+.login {
+	padding: 2px 10px 2px 10px;
+	font-size: 10px;
+	background-color: #003366;
+	color: #FFFFFF;
+	text-align: center;
+}
+.login input {
+	width: 95%;
+	font-size: 10px;
+}
+.login a:link, .login a:visited, .login a:active {
+	color: #DDDDDD;
+	text-decoration: none;
+}
+.login a:hover {
+	color: #FFFFFF;
+	text-decoration: none;
+}
+.powered_by {
+	padding: 3px 0px 0px 15px;
+	background-color: #FFFFFF;
+}
+.content {
+	padding: 10px;
+	background-color: #FFFFFF;
+	height: 300px;
+	vertical-align: top;
+	text-align: left;
+}
+.footer {
+	padding: 5px;
+	height: 20px;
+	color: #FFFFFF;
+	vertical-align: middle;
+	text-align: center;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/round/screen.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/footer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/footer.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/print.css
===================================================================
--- tags/2.7.0/wb/templates/round/print.css	(nonexistent)
+++ tags/2.7.0/wb/templates/round/print.css	(revision 838)
@@ -0,0 +1,23 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #FFFFFF;
+	margin: 0px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	color: #336699;
+	text-decoration: none;
+}
+.header, .menu, .search, .powered_by, .footer {
+	display: none;
+}
+.content {
+	vertical-align: top;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/round/print.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/banner.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/banner.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/powered.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/powered.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/menu_top.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/menu_top.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/menu_bottom.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/menu_bottom.gif
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/round/background.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/2.7.0/wb/templates/round/background.jpg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: tags/2.7.0/wb/templates/simple/screen.css
===================================================================
--- tags/2.7.0/wb/templates/simple/screen.css	(nonexistent)
+++ tags/2.7.0/wb/templates/simple/screen.css	(revision 838)
@@ -0,0 +1,63 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #333333;
+	margin: 10px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	color: #336699;
+	text-decoration: none;
+}
+form {
+	margin: 0;
+}
+h1, h2, h3, h4, h5 {
+	margin: 5px 0px 5px 0px;
+}
+.header {
+	background-color: #336699;
+	vertical-align: middle;
+	text-align: center;
+	color: #FFFFFF;
+	height: 50px;
+	font-size: 20px;
+	font-weight: bold;
+}
+.menu {
+	background-color: #EEEEEE;
+	padding: 10px;
+	width: 150px;
+	vertical-align: top;
+}
+.menu ul, .menu li {
+	list-style-type: none;
+	display: block;
+	margin: 0;
+	padding: 0;
+	padding-left: 5px;
+}
+.menu_current {
+	font-weight: bold;
+}
+.highlight {
+	background-color: #D0D0D0;
+}
+.content {
+	background-color: #FFFFFF;
+	padding: 20px;
+	height: 400px;
+	vertical-align: top;
+}
+.footer {
+	background-color: #DDDDDD;
+	text-align: center;
+	font-size: 10px;
+	height: 10px;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/simple/screen.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/simple/index.php
===================================================================
--- tags/2.7.0/wb/templates/simple/index.php	(nonexistent)
+++ tags/2.7.0/wb/templates/simple/index.php	(revision 838)
@@ -0,0 +1,96 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+if(!defined('WB_URL')) {
+	header('Location: ../index.php');
+	exit(0);
+}
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title><?php page_title(); ?></title>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php if(defined('DEFAULT_CHARSET')) { echo DEFAULT_CHARSET; } else { echo 'utf-8'; }?>" />
+<meta name="description" content="<?php page_description(); ?>" />
+<meta name="keywords" content="<?php page_keywords(); ?>" />
+<link href="<?php echo TEMPLATE_DIR; ?>/screen.css" rel="stylesheet" type="text/css" media="screen" />
+<link href="<?php echo TEMPLATE_DIR; ?>/print.css" rel="stylesheet" type="text/css" media="print" />
+<?php
+// this allows to include the optional module files (frontend.css, frontend.js) into the head section
+if(function_exists('register_frontend_modfiles')) {
+  register_frontend_modfiles('css');
+  register_frontend_modfiles('js');
+} ?>
+<?php 
+// this allows to add custom information to the head section of your template (WB-->Settings-->Website Header)
+echo WEBSITE_HEADER; 
+?>
+</head>
+<body>
+
+<table cellpadding="5" cellspacing="0" border="0" width="750" align="center">
+<tr>
+	<td colspan="2" class="header">
+		<?php page_title('','[WEBSITE_TITLE]'); ?>
+	</td>
+</tr>
+<tr>
+	<td colspan="2" class="footer">
+		&nbsp;
+	</td>
+</tr>
+<tr>
+	<td class="menu">
+		<?php if(SHOW_MENU) { /* Only shown menu if we need to */ ?>	
+			Menu: <br />
+			<?php show_menu(); ?>
+		<?php } ?>
+		
+		<?php if(SHOW_SEARCH) { /* Only show search box if search is enabled */ ?>
+			<br />
+			Search: <br />
+			<form name="search" action="<?php echo WB_URL; ?>/search/index.php" method="get">
+				<input type="text" name="string" style="width: 100%;" />
+				<input type="submit" name="submit" value="<?php echo $TEXT['SEARCH']; ?>" style="width: 100%;" />
+			</form>
+		<?php } ?>
+		
+		<br />
+		<a href="http://www.websitebaker.org" target="_blank">Powered by <br /> Website Baker</a>
+	</td>
+	<td class="content">
+		<?php page_content(); ?>
+	</td>
+</tr>
+<tr>
+	<td colspan="2" class="footer">
+		<?php page_footer(); ?>
+	</td>
+</tr>
+</table>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/simple/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/simple/info.php
===================================================================
--- tags/2.7.0/wb/templates/simple/info.php	(nonexistent)
+++ tags/2.7.0/wb/templates/simple/info.php	(revision 838)
@@ -0,0 +1,34 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$template_directory = 'simple';
+$template_name = 'Simple';
+$template_version = '2.6';
+$template_platform = '2.6.x';
+$template_author = 'Ryan Djurovich';
+$template_license = 'GNU General Public License';
+$template_description = 'This template is designed for developers to learn how to make templates easily. Please note this template only supports 2 page levels.';
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/simple/info.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/simple/print.css
===================================================================
--- tags/2.7.0/wb/templates/simple/print.css	(nonexistent)
+++ tags/2.7.0/wb/templates/simple/print.css	(revision 838)
@@ -0,0 +1,29 @@
+body,td,th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #000000;
+}
+body {
+	background-color: #FFFFFF;
+	margin: 0px;
+}
+a:link, a:visited, a:active {
+	color: #003366;
+	text-decoration: none;
+}
+a:hover {
+	color: #336699;
+	text-decoration: none;
+}
+.header {
+	display: none;
+}
+.menu {
+	display: none;
+}
+.content {
+	vertical-align: top;
+}
+.footer {
+	display: none;
+}
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/simple/print.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/templates/index.php
===================================================================
--- tags/2.7.0/wb/templates/index.php	(nonexistent)
+++ tags/2.7.0/wb/templates/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/templates/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/htaccess.txt
===================================================================
--- tags/2.7.0/wb/htaccess.txt	(nonexistent)
+++ tags/2.7.0/wb/htaccess.txt	(revision 838)
@@ -0,0 +1,2 @@
+# Example .htaccess wich allows to parse .html as php
+AddType application/x-httpd-php .html
\ No newline at end of file

Property changes on: tags/2.7.0/wb/htaccess.txt
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/media/index.php
===================================================================
--- tags/2.7.0/wb/media/index.php	(nonexistent)
+++ tags/2.7.0/wb/media/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header('Location: ../');
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/media/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/pages/index.php
===================================================================
--- tags/2.7.0/wb/pages/index.php	(nonexistent)
+++ tags/2.7.0/wb/pages/index.php	(revision 838)
@@ -0,0 +1,29 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+$no_intro = true;
+require('../config.php');
+require(WB_PATH.'/index.php');
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/pages/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/temp/index.php
===================================================================
--- tags/2.7.0/wb/temp/index.php	(nonexistent)
+++ tags/2.7.0/wb/temp/index.php	(revision 838)
@@ -0,0 +1,28 @@
+<?php
+
+// $Id$
+
+/*
+
+ Website Baker Project <http://www.websitebaker.org/>
+ Copyright (C) 2004-2008, Ryan Djurovich
+
+ Website Baker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ Website Baker is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Website Baker; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+
+header("Location: ../index.php");
+
+?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/temp/index.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/wb/config.php
===================================================================
--- tags/2.7.0/wb/config.php	(nonexistent)
+++ tags/2.7.0/wb/config.php	(revision 838)
@@ -0,0 +1 @@
+<?php ?>
\ No newline at end of file

Property changes on: tags/2.7.0/wb/config.php
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/README
===================================================================
--- tags/2.7.0/README	(nonexistent)
+++ tags/2.7.0/README	(revision 838)
@@ -0,0 +1,46 @@
+General Information
+===================
+Website Baker is a PHP-based content management system
+which enables users to produce websites with ease.
+Features include a template-based front-end, modulated
+and multi-level page support, multi-user administration,
+and much much more!
+
+
+License
+=======
+Website Baker is released under the GNU General Public License,
+Copyright (C) 2004-2007 Ryan Djurovich.
+Please refer to the COPYING file for a copy of the license.
+
+
+Installation
+============
+Please refer to the INSTALL file for instructions on installation.
+
+
+Usage
+=====
+Before using Website Baker please note: you must not remove/change any
+copyright notices in the any code contained in this package.
+Also, it is appreciated if you leave a link somewhere on your website,
+which links to the Website Baker website. (http://www.websitebaker.org/) 
+
+
+Support
+=======
+For information about finding help:
+http://www.websitebaker.org/go/help
+
+
+Bugs
+====
+To submit a bug:
+http://www.websitebaker.org/go/bugs
+
+
+Contribute
+==========
+For information about how to contribute (donating, etc):
+http://www.websitebaker.org/go/contribute
+

Property changes on: tags/2.7.0/README
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/LICENSE
===================================================================
--- tags/2.7.0/LICENSE	(nonexistent)
+++ tags/2.7.0/LICENSE	(revision 838)
@@ -0,0 +1,5 @@
+License
+=======
+Website Baker is released under the GNU General Public License,
+Copyright (C) 2004-2007 Ryan Djurovich.
+Please refer to the COPYING file for a copy of the license.
\ No newline at end of file

Property changes on: tags/2.7.0/LICENSE
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/INSTALL
===================================================================
--- tags/2.7.0/INSTALL	(nonexistent)
+++ tags/2.7.0/INSTALL	(revision 838)
@@ -0,0 +1,26 @@
+Website Baker 2 Installation Instructions
+============================================
+This will quickly explain what you will need
+to install website baker.
+
+First of all, you must have a webserver with
+PHP and MySQL installed correctly. Once you 
+have got that, place the "wb" folder 
+somewhere on your server, probably under the
+document root:
+e.g. /documentroot/wb
+
+This should be accessed by an address 
+something like this:
+e.g. http://localhost/wb/
+
+Now create a blank MySQL database
+(Commonly called "wb").
+
+Once that is all done simple run the
+install script from your browser:
+e.g. http://localhost/wb/install/index.php
+
+Fill-out the form and submit it, and if all
+the details are correct, you should be taken
+to Website Baker Administration.

Property changes on: tags/2.7.0/INSTALL
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0/COPYING
===================================================================
--- tags/2.7.0/COPYING	(nonexistent)
+++ tags/2.7.0/COPYING	(revision 838)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.

Property changes on: tags/2.7.0/COPYING
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: tags/2.7.0
===================================================================
--- tags/2.7.0	(nonexistent)
+++ tags/2.7.0	(revision 838)

Property changes on: tags/2.7.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+
+.project
